// 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 cloud. */
    namespace cloud {

        /** Namespace compute. */
        namespace compute {

            /** Namespace v1. */
            namespace v1 {

                /** Properties of a AWSV4Signature. */
                interface IAWSV4Signature {

                    /** AWSV4Signature accessKey */
                    accessKey?: (string|null);

                    /** AWSV4Signature accessKeyId */
                    accessKeyId?: (string|null);

                    /** AWSV4Signature accessKeyVersion */
                    accessKeyVersion?: (string|null);

                    /** AWSV4Signature originRegion */
                    originRegion?: (string|null);
                }

                /** Represents a AWSV4Signature. */
                class AWSV4Signature implements IAWSV4Signature {

                    /**
                     * Constructs a new AWSV4Signature.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAWSV4Signature);

                    /** AWSV4Signature accessKey. */
                    public accessKey?: (string|null);

                    /** AWSV4Signature accessKeyId. */
                    public accessKeyId?: (string|null);

                    /** AWSV4Signature accessKeyVersion. */
                    public accessKeyVersion?: (string|null);

                    /** AWSV4Signature originRegion. */
                    public originRegion?: (string|null);

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

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

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

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

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

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

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

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

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

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

                /** Properties of an AbandonInstancesInstanceGroupManagerRequest. */
                interface IAbandonInstancesInstanceGroupManagerRequest {

                    /** AbandonInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** AbandonInstancesInstanceGroupManagerRequest instanceGroupManagersAbandonInstancesRequestResource */
                    instanceGroupManagersAbandonInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersAbandonInstancesRequest|null);

                    /** AbandonInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** AbandonInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** AbandonInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AbandonInstancesInstanceGroupManagerRequest. */
                class AbandonInstancesInstanceGroupManagerRequest implements IAbandonInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new AbandonInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAbandonInstancesInstanceGroupManagerRequest);

                    /** AbandonInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** AbandonInstancesInstanceGroupManagerRequest instanceGroupManagersAbandonInstancesRequestResource. */
                    public instanceGroupManagersAbandonInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersAbandonInstancesRequest|null);

                    /** AbandonInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** AbandonInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** AbandonInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

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

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

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

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

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

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

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

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

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

                /** Properties of an AbandonInstancesRegionInstanceGroupManagerRequest. */
                interface IAbandonInstancesRegionInstanceGroupManagerRequest {

                    /** AbandonInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersAbandonInstancesRequestResource */
                    regionInstanceGroupManagersAbandonInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersAbandonInstancesRequest|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AbandonInstancesRegionInstanceGroupManagerRequest. */
                class AbandonInstancesRegionInstanceGroupManagerRequest implements IAbandonInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new AbandonInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAbandonInstancesRegionInstanceGroupManagerRequest);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** AbandonInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** AbandonInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** AbandonInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersAbandonInstancesRequestResource. */
                    public regionInstanceGroupManagersAbandonInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersAbandonInstancesRequest|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

                    /**
                     * Gets the default type url for AbandonInstancesRegionInstanceGroupManagerRequest
                     * @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|null);

                    /** AcceleratorConfig acceleratorType */
                    acceleratorType?: (string|null);
                }

                /** Represents an AcceleratorConfig. */
                class AcceleratorConfig implements IAcceleratorConfig {

                    /**
                     * Constructs a new AcceleratorConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAcceleratorConfig);

                    /** AcceleratorConfig acceleratorCount. */
                    public acceleratorCount?: (number|null);

                    /** AcceleratorConfig acceleratorType. */
                    public acceleratorType?: (string|null);

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

                    /**
                     * Encodes the specified AcceleratorConfig message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IAcceleratorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorConfig message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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 an AcceleratorTopologiesInfo. */
                interface IAcceleratorTopologiesInfo {

                    /** AcceleratorTopologiesInfo acceleratorTopologyInfos */
                    acceleratorTopologyInfos?: (google.cloud.compute.v1.IAcceleratorTopologiesInfoAcceleratorTopologyInfo[]|null);
                }

                /** Represents an AcceleratorTopologiesInfo. */
                class AcceleratorTopologiesInfo implements IAcceleratorTopologiesInfo {

                    /**
                     * Constructs a new AcceleratorTopologiesInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAcceleratorTopologiesInfo);

                    /** AcceleratorTopologiesInfo acceleratorTopologyInfos. */
                    public acceleratorTopologyInfos: google.cloud.compute.v1.IAcceleratorTopologiesInfoAcceleratorTopologyInfo[];

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

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

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

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

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

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

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

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

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

                /** Properties of an AcceleratorTopologiesInfoAcceleratorTopologyInfo. */
                interface IAcceleratorTopologiesInfoAcceleratorTopologyInfo {

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfo acceleratorTopology */
                    acceleratorTopology?: (string|null);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfo infoPerTopologyStates */
                    infoPerTopologyStates?: (google.cloud.compute.v1.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState[]|null);
                }

                /** Represents an AcceleratorTopologiesInfoAcceleratorTopologyInfo. */
                class AcceleratorTopologiesInfoAcceleratorTopologyInfo implements IAcceleratorTopologiesInfoAcceleratorTopologyInfo {

                    /**
                     * Constructs a new AcceleratorTopologiesInfoAcceleratorTopologyInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAcceleratorTopologiesInfoAcceleratorTopologyInfo);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfo acceleratorTopology. */
                    public acceleratorTopology?: (string|null);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfo infoPerTopologyStates. */
                    public infoPerTopologyStates: google.cloud.compute.v1.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState[];

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

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

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

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

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

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

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

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

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

                /** Properties of an AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState. */
                interface IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState {

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState count */
                    count?: (number|null);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState state */
                    state?: (string|null);
                }

                /** Represents an AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState. */
                class AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState implements IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState {

                    /**
                     * Constructs a new AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState count. */
                    public count?: (number|null);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState state. */
                    public state?: (string|null);

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

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

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

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

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

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

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

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

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

                namespace AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        AVAILABLE = 442079913,
                        DEGRADED = 396890926,
                        RUNNING = 121282975,
                        TOPOLOGY_STATE_UNSPECIFIED = 188327545,
                        UNHEALTHY = 462118084
                    }
                }

                /** Properties of an AcceleratorType. */
                interface IAcceleratorType {

                    /** AcceleratorType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** AcceleratorType deprecated */
                    deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** AcceleratorType description */
                    description?: (string|null);

                    /** AcceleratorType id */
                    id?: (number|Long|string|null);

                    /** AcceleratorType kind */
                    kind?: (string|null);

                    /** AcceleratorType maximumCardsPerInstance */
                    maximumCardsPerInstance?: (number|null);

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

                    /** AcceleratorType selfLink */
                    selfLink?: (string|null);

                    /** AcceleratorType zone */
                    zone?: (string|null);
                }

                /** Represents an AcceleratorType. */
                class AcceleratorType implements IAcceleratorType {

                    /**
                     * Constructs a new AcceleratorType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAcceleratorType);

                    /** AcceleratorType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** AcceleratorType deprecated. */
                    public deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** AcceleratorType description. */
                    public description?: (string|null);

                    /** AcceleratorType id. */
                    public id?: (number|Long|string|null);

                    /** AcceleratorType kind. */
                    public kind?: (string|null);

                    /** AcceleratorType maximumCardsPerInstance. */
                    public maximumCardsPerInstance?: (number|null);

                    /** AcceleratorType name. */
                    public name?: (string|null);

                    /** AcceleratorType selfLink. */
                    public selfLink?: (string|null);

                    /** AcceleratorType zone. */
                    public zone?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AcceleratorTypeAggregatedList. */
                interface IAcceleratorTypeAggregatedList {

                    /** AcceleratorTypeAggregatedList id */
                    id?: (string|null);

                    /** AcceleratorTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IAcceleratorTypesScopedList }|null);

                    /** AcceleratorTypeAggregatedList kind */
                    kind?: (string|null);

                    /** AcceleratorTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AcceleratorTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** AcceleratorTypeAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** AcceleratorTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AcceleratorTypeAggregatedList. */
                class AcceleratorTypeAggregatedList implements IAcceleratorTypeAggregatedList {

                    /**
                     * Constructs a new AcceleratorTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAcceleratorTypeAggregatedList);

                    /** AcceleratorTypeAggregatedList id. */
                    public id?: (string|null);

                    /** AcceleratorTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IAcceleratorTypesScopedList };

                    /** AcceleratorTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** AcceleratorTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AcceleratorTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** AcceleratorTypeAggregatedList unreachables. */
                    public unreachables: string[];

                    /** AcceleratorTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AcceleratorTypeList. */
                interface IAcceleratorTypeList {

                    /** AcceleratorTypeList id */
                    id?: (string|null);

                    /** AcceleratorTypeList items */
                    items?: (google.cloud.compute.v1.IAcceleratorType[]|null);

                    /** AcceleratorTypeList kind */
                    kind?: (string|null);

                    /** AcceleratorTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AcceleratorTypeList selfLink */
                    selfLink?: (string|null);

                    /** AcceleratorTypeList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AcceleratorTypeList. */
                class AcceleratorTypeList implements IAcceleratorTypeList {

                    /**
                     * Constructs a new AcceleratorTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAcceleratorTypeList);

                    /** AcceleratorTypeList id. */
                    public id?: (string|null);

                    /** AcceleratorTypeList items. */
                    public items: google.cloud.compute.v1.IAcceleratorType[];

                    /** AcceleratorTypeList kind. */
                    public kind?: (string|null);

                    /** AcceleratorTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AcceleratorTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** AcceleratorTypeList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AcceleratorTypesScopedList. */
                interface IAcceleratorTypesScopedList {

                    /** AcceleratorTypesScopedList acceleratorTypes */
                    acceleratorTypes?: (google.cloud.compute.v1.IAcceleratorType[]|null);

                    /** AcceleratorTypesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AcceleratorTypesScopedList. */
                class AcceleratorTypesScopedList implements IAcceleratorTypesScopedList {

                    /**
                     * Constructs a new AcceleratorTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAcceleratorTypesScopedList);

                    /** AcceleratorTypesScopedList acceleratorTypes. */
                    public acceleratorTypes: google.cloud.compute.v1.IAcceleratorType[];

                    /** AcceleratorTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an Accelerators. */
                interface IAccelerators {

                    /** Accelerators guestAcceleratorCount */
                    guestAcceleratorCount?: (number|null);

                    /** Accelerators guestAcceleratorType */
                    guestAcceleratorType?: (string|null);
                }

                /** Represents an Accelerators. */
                class Accelerators implements IAccelerators {

                    /**
                     * Constructs a new Accelerators.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAccelerators);

                    /** Accelerators guestAcceleratorCount. */
                    public guestAcceleratorCount?: (number|null);

                    /** Accelerators guestAcceleratorType. */
                    public guestAcceleratorType?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AccessConfig. */
                interface IAccessConfig {

                    /** AccessConfig externalIpv6 */
                    externalIpv6?: (string|null);

                    /** AccessConfig externalIpv6PrefixLength */
                    externalIpv6PrefixLength?: (number|null);

                    /** AccessConfig kind */
                    kind?: (string|null);

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

                    /** AccessConfig natIP */
                    natIP?: (string|null);

                    /** AccessConfig networkTier */
                    networkTier?: (string|null);

                    /** AccessConfig publicPtrDomainName */
                    publicPtrDomainName?: (string|null);

                    /** AccessConfig securityPolicy */
                    securityPolicy?: (string|null);

                    /** AccessConfig setPublicPtr */
                    setPublicPtr?: (boolean|null);

                    /** AccessConfig type */
                    type?: (string|null);
                }

                /** Represents an AccessConfig. */
                class AccessConfig implements IAccessConfig {

                    /**
                     * Constructs a new AccessConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAccessConfig);

                    /** AccessConfig externalIpv6. */
                    public externalIpv6?: (string|null);

                    /** AccessConfig externalIpv6PrefixLength. */
                    public externalIpv6PrefixLength?: (number|null);

                    /** AccessConfig kind. */
                    public kind?: (string|null);

                    /** AccessConfig name. */
                    public name?: (string|null);

                    /** AccessConfig natIP. */
                    public natIP?: (string|null);

                    /** AccessConfig networkTier. */
                    public networkTier?: (string|null);

                    /** AccessConfig publicPtrDomainName. */
                    public publicPtrDomainName?: (string|null);

                    /** AccessConfig securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** AccessConfig setPublicPtr. */
                    public setPublicPtr?: (boolean|null);

                    /** AccessConfig type. */
                    public type?: (string|null);

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

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

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

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

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

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

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

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

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

                namespace AccessConfig {

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        DIRECT_IPV6 = 4397213,
                        ONE_TO_ONE_NAT = 84090205
                    }
                }

                /** Properties of an AddAccessConfigInstanceRequest. */
                interface IAddAccessConfigInstanceRequest {

                    /** AddAccessConfigInstanceRequest accessConfigResource */
                    accessConfigResource?: (google.cloud.compute.v1.IAccessConfig|null);

                    /** AddAccessConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** AddAccessConfigInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** AddAccessConfigInstanceRequest project */
                    project?: (string|null);

                    /** AddAccessConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** AddAccessConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddAccessConfigInstanceRequest. */
                class AddAccessConfigInstanceRequest implements IAddAccessConfigInstanceRequest {

                    /**
                     * Constructs a new AddAccessConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddAccessConfigInstanceRequest);

                    /** AddAccessConfigInstanceRequest accessConfigResource. */
                    public accessConfigResource?: (google.cloud.compute.v1.IAccessConfig|null);

                    /** AddAccessConfigInstanceRequest instance. */
                    public instance: string;

                    /** AddAccessConfigInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** AddAccessConfigInstanceRequest project. */
                    public project: string;

                    /** AddAccessConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** AddAccessConfigInstanceRequest zone. */
                    public zone: string;

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

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

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

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

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

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

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

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

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

                /** Properties of an AddAssociationFirewallPolicyRequest. */
                interface IAddAssociationFirewallPolicyRequest {

                    /** AddAssociationFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddAssociationFirewallPolicyRequest firewallPolicyAssociationResource */
                    firewallPolicyAssociationResource?: (google.cloud.compute.v1.IFirewallPolicyAssociation|null);

                    /** AddAssociationFirewallPolicyRequest replaceExistingAssociation */
                    replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddAssociationFirewallPolicyRequest. */
                class AddAssociationFirewallPolicyRequest implements IAddAssociationFirewallPolicyRequest {

                    /**
                     * Constructs a new AddAssociationFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddAssociationFirewallPolicyRequest);

                    /** AddAssociationFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddAssociationFirewallPolicyRequest firewallPolicyAssociationResource. */
                    public firewallPolicyAssociationResource?: (google.cloud.compute.v1.IFirewallPolicyAssociation|null);

                    /** AddAssociationFirewallPolicyRequest replaceExistingAssociation. */
                    public replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddAssociationNetworkFirewallPolicyRequest. */
                interface IAddAssociationNetworkFirewallPolicyRequest {

                    /** AddAssociationNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddAssociationNetworkFirewallPolicyRequest firewallPolicyAssociationResource */
                    firewallPolicyAssociationResource?: (google.cloud.compute.v1.IFirewallPolicyAssociation|null);

                    /** AddAssociationNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddAssociationNetworkFirewallPolicyRequest replaceExistingAssociation */
                    replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddAssociationNetworkFirewallPolicyRequest. */
                class AddAssociationNetworkFirewallPolicyRequest implements IAddAssociationNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddAssociationNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddAssociationNetworkFirewallPolicyRequest);

                    /** AddAssociationNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddAssociationNetworkFirewallPolicyRequest firewallPolicyAssociationResource. */
                    public firewallPolicyAssociationResource?: (google.cloud.compute.v1.IFirewallPolicyAssociation|null);

                    /** AddAssociationNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddAssociationNetworkFirewallPolicyRequest replaceExistingAssociation. */
                    public replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddAssociationOrganizationSecurityPolicyRequest. */
                interface IAddAssociationOrganizationSecurityPolicyRequest {

                    /** AddAssociationOrganizationSecurityPolicyRequest replaceExistingAssociation */
                    replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest securityPolicyAssociationResource */
                    securityPolicyAssociationResource?: (google.cloud.compute.v1.ISecurityPolicyAssociation|null);
                }

                /** Represents an AddAssociationOrganizationSecurityPolicyRequest. */
                class AddAssociationOrganizationSecurityPolicyRequest implements IAddAssociationOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new AddAssociationOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddAssociationOrganizationSecurityPolicyRequest);

                    /** AddAssociationOrganizationSecurityPolicyRequest replaceExistingAssociation. */
                    public replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** AddAssociationOrganizationSecurityPolicyRequest securityPolicyAssociationResource. */
                    public securityPolicyAssociationResource?: (google.cloud.compute.v1.ISecurityPolicyAssociation|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddAssociationRegionNetworkFirewallPolicyRequest. */
                interface IAddAssociationRegionNetworkFirewallPolicyRequest {

                    /** AddAssociationRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest firewallPolicyAssociationResource */
                    firewallPolicyAssociationResource?: (google.cloud.compute.v1.IFirewallPolicyAssociation|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest replaceExistingAssociation */
                    replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddAssociationRegionNetworkFirewallPolicyRequest. */
                class AddAssociationRegionNetworkFirewallPolicyRequest implements IAddAssociationRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddAssociationRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddAssociationRegionNetworkFirewallPolicyRequest);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddAssociationRegionNetworkFirewallPolicyRequest firewallPolicyAssociationResource. */
                    public firewallPolicyAssociationResource?: (google.cloud.compute.v1.IFirewallPolicyAssociation|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddAssociationRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** AddAssociationRegionNetworkFirewallPolicyRequest replaceExistingAssociation. */
                    public replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddHealthCheckTargetPoolRequest. */
                interface IAddHealthCheckTargetPoolRequest {

                    /** AddHealthCheckTargetPoolRequest project */
                    project?: (string|null);

                    /** AddHealthCheckTargetPoolRequest region */
                    region?: (string|null);

                    /** AddHealthCheckTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** AddHealthCheckTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** AddHealthCheckTargetPoolRequest targetPoolsAddHealthCheckRequestResource */
                    targetPoolsAddHealthCheckRequestResource?: (google.cloud.compute.v1.ITargetPoolsAddHealthCheckRequest|null);
                }

                /** Represents an AddHealthCheckTargetPoolRequest. */
                class AddHealthCheckTargetPoolRequest implements IAddHealthCheckTargetPoolRequest {

                    /**
                     * Constructs a new AddHealthCheckTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddHealthCheckTargetPoolRequest);

                    /** AddHealthCheckTargetPoolRequest project. */
                    public project: string;

                    /** AddHealthCheckTargetPoolRequest region. */
                    public region: string;

                    /** AddHealthCheckTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** AddHealthCheckTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** AddHealthCheckTargetPoolRequest targetPoolsAddHealthCheckRequestResource. */
                    public targetPoolsAddHealthCheckRequestResource?: (google.cloud.compute.v1.ITargetPoolsAddHealthCheckRequest|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddInstanceTargetPoolRequest. */
                interface IAddInstanceTargetPoolRequest {

                    /** AddInstanceTargetPoolRequest project */
                    project?: (string|null);

                    /** AddInstanceTargetPoolRequest region */
                    region?: (string|null);

                    /** AddInstanceTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** AddInstanceTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** AddInstanceTargetPoolRequest targetPoolsAddInstanceRequestResource */
                    targetPoolsAddInstanceRequestResource?: (google.cloud.compute.v1.ITargetPoolsAddInstanceRequest|null);
                }

                /** Represents an AddInstanceTargetPoolRequest. */
                class AddInstanceTargetPoolRequest implements IAddInstanceTargetPoolRequest {

                    /**
                     * Constructs a new AddInstanceTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddInstanceTargetPoolRequest);

                    /** AddInstanceTargetPoolRequest project. */
                    public project: string;

                    /** AddInstanceTargetPoolRequest region. */
                    public region: string;

                    /** AddInstanceTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** AddInstanceTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** AddInstanceTargetPoolRequest targetPoolsAddInstanceRequestResource. */
                    public targetPoolsAddInstanceRequestResource?: (google.cloud.compute.v1.ITargetPoolsAddInstanceRequest|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddInstancesInstanceGroupRequest. */
                interface IAddInstancesInstanceGroupRequest {

                    /** AddInstancesInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** AddInstancesInstanceGroupRequest instanceGroupsAddInstancesRequestResource */
                    instanceGroupsAddInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupsAddInstancesRequest|null);

                    /** AddInstancesInstanceGroupRequest project */
                    project?: (string|null);

                    /** AddInstancesInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** AddInstancesInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddInstancesInstanceGroupRequest. */
                class AddInstancesInstanceGroupRequest implements IAddInstancesInstanceGroupRequest {

                    /**
                     * Constructs a new AddInstancesInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddInstancesInstanceGroupRequest);

                    /** AddInstancesInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** AddInstancesInstanceGroupRequest instanceGroupsAddInstancesRequestResource. */
                    public instanceGroupsAddInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupsAddInstancesRequest|null);

                    /** AddInstancesInstanceGroupRequest project. */
                    public project: string;

                    /** AddInstancesInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** AddInstancesInstanceGroupRequest zone. */
                    public zone: string;

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

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

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

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

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

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

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

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

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

                /** Properties of an AddNetworkInterfaceInstanceRequest. */
                interface IAddNetworkInterfaceInstanceRequest {

                    /** AddNetworkInterfaceInstanceRequest instance */
                    instance?: (string|null);

                    /** AddNetworkInterfaceInstanceRequest networkInterfaceResource */
                    networkInterfaceResource?: (google.cloud.compute.v1.INetworkInterface|null);

                    /** AddNetworkInterfaceInstanceRequest project */
                    project?: (string|null);

                    /** AddNetworkInterfaceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** AddNetworkInterfaceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddNetworkInterfaceInstanceRequest. */
                class AddNetworkInterfaceInstanceRequest implements IAddNetworkInterfaceInstanceRequest {

                    /**
                     * Constructs a new AddNetworkInterfaceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddNetworkInterfaceInstanceRequest);

                    /** AddNetworkInterfaceInstanceRequest instance. */
                    public instance: string;

                    /** AddNetworkInterfaceInstanceRequest networkInterfaceResource. */
                    public networkInterfaceResource?: (google.cloud.compute.v1.INetworkInterface|null);

                    /** AddNetworkInterfaceInstanceRequest project. */
                    public project: string;

                    /** AddNetworkInterfaceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** AddNetworkInterfaceInstanceRequest zone. */
                    public zone: string;

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

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

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

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

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

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

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

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

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

                /** Properties of an AddNodesNodeGroupRequest. */
                interface IAddNodesNodeGroupRequest {

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

                    /** AddNodesNodeGroupRequest nodeGroupsAddNodesRequestResource */
                    nodeGroupsAddNodesRequestResource?: (google.cloud.compute.v1.INodeGroupsAddNodesRequest|null);

                    /** AddNodesNodeGroupRequest project */
                    project?: (string|null);

                    /** AddNodesNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** AddNodesNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddNodesNodeGroupRequest. */
                class AddNodesNodeGroupRequest implements IAddNodesNodeGroupRequest {

                    /**
                     * Constructs a new AddNodesNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddNodesNodeGroupRequest);

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

                    /** AddNodesNodeGroupRequest nodeGroupsAddNodesRequestResource. */
                    public nodeGroupsAddNodesRequestResource?: (google.cloud.compute.v1.INodeGroupsAddNodesRequest|null);

                    /** AddNodesNodeGroupRequest project. */
                    public project: string;

                    /** AddNodesNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** AddNodesNodeGroupRequest zone. */
                    public zone: string;

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

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

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

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

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

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

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

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

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

                /** Properties of an AddPacketMirroringRuleNetworkFirewallPolicyRequest. */
                interface IAddPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest maxPriority */
                    maxPriority?: (number|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest minPriority */
                    minPriority?: (number|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddPacketMirroringRuleNetworkFirewallPolicyRequest. */
                class AddPacketMirroringRuleNetworkFirewallPolicyRequest implements IAddPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddPacketMirroringRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddPacketMirroringRuleNetworkFirewallPolicyRequest);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest maxPriority. */
                    public maxPriority?: (number|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest minPriority. */
                    public minPriority?: (number|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddPeeringNetworkRequest. */
                interface IAddPeeringNetworkRequest {

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

                    /** AddPeeringNetworkRequest networksAddPeeringRequestResource */
                    networksAddPeeringRequestResource?: (google.cloud.compute.v1.INetworksAddPeeringRequest|null);

                    /** AddPeeringNetworkRequest project */
                    project?: (string|null);

                    /** AddPeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddPeeringNetworkRequest. */
                class AddPeeringNetworkRequest implements IAddPeeringNetworkRequest {

                    /**
                     * Constructs a new AddPeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddPeeringNetworkRequest);

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

                    /** AddPeeringNetworkRequest networksAddPeeringRequestResource. */
                    public networksAddPeeringRequestResource?: (google.cloud.compute.v1.INetworksAddPeeringRequest|null);

                    /** AddPeeringNetworkRequest project. */
                    public project: string;

                    /** AddPeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddResourcePoliciesDiskRequest. */
                interface IAddResourcePoliciesDiskRequest {

                    /** AddResourcePoliciesDiskRequest disk */
                    disk?: (string|null);

                    /** AddResourcePoliciesDiskRequest disksAddResourcePoliciesRequestResource */
                    disksAddResourcePoliciesRequestResource?: (google.cloud.compute.v1.IDisksAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesDiskRequest project */
                    project?: (string|null);

                    /** AddResourcePoliciesDiskRequest requestId */
                    requestId?: (string|null);

                    /** AddResourcePoliciesDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddResourcePoliciesDiskRequest. */
                class AddResourcePoliciesDiskRequest implements IAddResourcePoliciesDiskRequest {

                    /**
                     * Constructs a new AddResourcePoliciesDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddResourcePoliciesDiskRequest);

                    /** AddResourcePoliciesDiskRequest disk. */
                    public disk: string;

                    /** AddResourcePoliciesDiskRequest disksAddResourcePoliciesRequestResource. */
                    public disksAddResourcePoliciesRequestResource?: (google.cloud.compute.v1.IDisksAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesDiskRequest project. */
                    public project: string;

                    /** AddResourcePoliciesDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** AddResourcePoliciesDiskRequest zone. */
                    public zone: string;

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

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

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

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

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

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

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

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

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

                /** Properties of an AddResourcePoliciesInstanceRequest. */
                interface IAddResourcePoliciesInstanceRequest {

                    /** AddResourcePoliciesInstanceRequest instance */
                    instance?: (string|null);

                    /** AddResourcePoliciesInstanceRequest instancesAddResourcePoliciesRequestResource */
                    instancesAddResourcePoliciesRequestResource?: (google.cloud.compute.v1.IInstancesAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesInstanceRequest project */
                    project?: (string|null);

                    /** AddResourcePoliciesInstanceRequest requestId */
                    requestId?: (string|null);

                    /** AddResourcePoliciesInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddResourcePoliciesInstanceRequest. */
                class AddResourcePoliciesInstanceRequest implements IAddResourcePoliciesInstanceRequest {

                    /**
                     * Constructs a new AddResourcePoliciesInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddResourcePoliciesInstanceRequest);

                    /** AddResourcePoliciesInstanceRequest instance. */
                    public instance: string;

                    /** AddResourcePoliciesInstanceRequest instancesAddResourcePoliciesRequestResource. */
                    public instancesAddResourcePoliciesRequestResource?: (google.cloud.compute.v1.IInstancesAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesInstanceRequest project. */
                    public project: string;

                    /** AddResourcePoliciesInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** AddResourcePoliciesInstanceRequest zone. */
                    public zone: string;

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

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

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

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

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

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

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

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

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

                /** Properties of an AddResourcePoliciesRegionDiskRequest. */
                interface IAddResourcePoliciesRegionDiskRequest {

                    /** AddResourcePoliciesRegionDiskRequest disk */
                    disk?: (string|null);

                    /** AddResourcePoliciesRegionDiskRequest project */
                    project?: (string|null);

                    /** AddResourcePoliciesRegionDiskRequest region */
                    region?: (string|null);

                    /** AddResourcePoliciesRegionDiskRequest regionDisksAddResourcePoliciesRequestResource */
                    regionDisksAddResourcePoliciesRequestResource?: (google.cloud.compute.v1.IRegionDisksAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddResourcePoliciesRegionDiskRequest. */
                class AddResourcePoliciesRegionDiskRequest implements IAddResourcePoliciesRegionDiskRequest {

                    /**
                     * Constructs a new AddResourcePoliciesRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddResourcePoliciesRegionDiskRequest);

                    /** AddResourcePoliciesRegionDiskRequest disk. */
                    public disk: string;

                    /** AddResourcePoliciesRegionDiskRequest project. */
                    public project: string;

                    /** AddResourcePoliciesRegionDiskRequest region. */
                    public region: string;

                    /** AddResourcePoliciesRegionDiskRequest regionDisksAddResourcePoliciesRequestResource. */
                    public regionDisksAddResourcePoliciesRequestResource?: (google.cloud.compute.v1.IRegionDisksAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesRegionDiskRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddRuleFirewallPolicyRequest. */
                interface IAddRuleFirewallPolicyRequest {

                    /** AddRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddRuleFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** AddRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddRuleFirewallPolicyRequest. */
                class AddRuleFirewallPolicyRequest implements IAddRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new AddRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddRuleFirewallPolicyRequest);

                    /** AddRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddRuleFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** AddRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddRuleNetworkFirewallPolicyRequest. */
                interface IAddRuleNetworkFirewallPolicyRequest {

                    /** AddRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** AddRuleNetworkFirewallPolicyRequest maxPriority */
                    maxPriority?: (number|null);

                    /** AddRuleNetworkFirewallPolicyRequest minPriority */
                    minPriority?: (number|null);

                    /** AddRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddRuleNetworkFirewallPolicyRequest. */
                class AddRuleNetworkFirewallPolicyRequest implements IAddRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddRuleNetworkFirewallPolicyRequest);

                    /** AddRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** AddRuleNetworkFirewallPolicyRequest maxPriority. */
                    public maxPriority?: (number|null);

                    /** AddRuleNetworkFirewallPolicyRequest minPriority. */
                    public minPriority?: (number|null);

                    /** AddRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddRuleOrganizationSecurityPolicyRequest. */
                interface IAddRuleOrganizationSecurityPolicyRequest {

                    /** AddRuleOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** AddRuleOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** AddRuleOrganizationSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);
                }

                /** Represents an AddRuleOrganizationSecurityPolicyRequest. */
                class AddRuleOrganizationSecurityPolicyRequest implements IAddRuleOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new AddRuleOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddRuleOrganizationSecurityPolicyRequest);

                    /** AddRuleOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** AddRuleOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** AddRuleOrganizationSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddRuleRegionNetworkFirewallPolicyRequest. */
                interface IAddRuleRegionNetworkFirewallPolicyRequest {

                    /** AddRuleRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest maxPriority */
                    maxPriority?: (number|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest minPriority */
                    minPriority?: (number|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddRuleRegionNetworkFirewallPolicyRequest. */
                class AddRuleRegionNetworkFirewallPolicyRequest implements IAddRuleRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddRuleRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddRuleRegionNetworkFirewallPolicyRequest);

                    /** AddRuleRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddRuleRegionNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest maxPriority. */
                    public maxPriority?: (number|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest minPriority. */
                    public minPriority?: (number|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddRuleRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** AddRuleRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddRuleRegionSecurityPolicyRequest. */
                interface IAddRuleRegionSecurityPolicyRequest {

                    /** AddRuleRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** AddRuleRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** AddRuleRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** AddRuleRegionSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /** AddRuleRegionSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an AddRuleRegionSecurityPolicyRequest. */
                class AddRuleRegionSecurityPolicyRequest implements IAddRuleRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new AddRuleRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddRuleRegionSecurityPolicyRequest);

                    /** AddRuleRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** AddRuleRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** AddRuleRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** AddRuleRegionSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /** AddRuleRegionSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddRuleSecurityPolicyRequest. */
                interface IAddRuleSecurityPolicyRequest {

                    /** AddRuleSecurityPolicyRequest project */
                    project?: (string|null);

                    /** AddRuleSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** AddRuleSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /** AddRuleSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an AddRuleSecurityPolicyRequest. */
                class AddRuleSecurityPolicyRequest implements IAddRuleSecurityPolicyRequest {

                    /**
                     * Constructs a new AddRuleSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddRuleSecurityPolicyRequest);

                    /** AddRuleSecurityPolicyRequest project. */
                    public project: string;

                    /** AddRuleSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** AddRuleSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /** AddRuleSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddSignedUrlKeyBackendBucketRequest. */
                interface IAddSignedUrlKeyBackendBucketRequest {

                    /** AddSignedUrlKeyBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** AddSignedUrlKeyBackendBucketRequest project */
                    project?: (string|null);

                    /** AddSignedUrlKeyBackendBucketRequest requestId */
                    requestId?: (string|null);

                    /** AddSignedUrlKeyBackendBucketRequest signedUrlKeyResource */
                    signedUrlKeyResource?: (google.cloud.compute.v1.ISignedUrlKey|null);
                }

                /** Represents an AddSignedUrlKeyBackendBucketRequest. */
                class AddSignedUrlKeyBackendBucketRequest implements IAddSignedUrlKeyBackendBucketRequest {

                    /**
                     * Constructs a new AddSignedUrlKeyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddSignedUrlKeyBackendBucketRequest);

                    /** AddSignedUrlKeyBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** AddSignedUrlKeyBackendBucketRequest project. */
                    public project: string;

                    /** AddSignedUrlKeyBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /** AddSignedUrlKeyBackendBucketRequest signedUrlKeyResource. */
                    public signedUrlKeyResource?: (google.cloud.compute.v1.ISignedUrlKey|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddSignedUrlKeyBackendServiceRequest. */
                interface IAddSignedUrlKeyBackendServiceRequest {

                    /** AddSignedUrlKeyBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** AddSignedUrlKeyBackendServiceRequest project */
                    project?: (string|null);

                    /** AddSignedUrlKeyBackendServiceRequest requestId */
                    requestId?: (string|null);

                    /** AddSignedUrlKeyBackendServiceRequest signedUrlKeyResource */
                    signedUrlKeyResource?: (google.cloud.compute.v1.ISignedUrlKey|null);
                }

                /** Represents an AddSignedUrlKeyBackendServiceRequest. */
                class AddSignedUrlKeyBackendServiceRequest implements IAddSignedUrlKeyBackendServiceRequest {

                    /**
                     * Constructs a new AddSignedUrlKeyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddSignedUrlKeyBackendServiceRequest);

                    /** AddSignedUrlKeyBackendServiceRequest backendService. */
                    public backendService: string;

                    /** AddSignedUrlKeyBackendServiceRequest project. */
                    public project: string;

                    /** AddSignedUrlKeyBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** AddSignedUrlKeyBackendServiceRequest signedUrlKeyResource. */
                    public signedUrlKeyResource?: (google.cloud.compute.v1.ISignedUrlKey|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an Address. */
                interface IAddress {

                    /** Address address */
                    address?: (string|null);

                    /** Address addressType */
                    addressType?: (string|null);

                    /** Address creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Address description */
                    description?: (string|null);

                    /** Address id */
                    id?: (number|Long|string|null);

                    /** Address ipCollection */
                    ipCollection?: (string|null);

                    /** Address ipVersion */
                    ipVersion?: (string|null);

                    /** Address ipv6EndpointType */
                    ipv6EndpointType?: (string|null);

                    /** Address kind */
                    kind?: (string|null);

                    /** Address labelFingerprint */
                    labelFingerprint?: (string|null);

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

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

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

                    /** Address networkTier */
                    networkTier?: (string|null);

                    /** Address prefixLength */
                    prefixLength?: (number|null);

                    /** Address purpose */
                    purpose?: (string|null);

                    /** Address region */
                    region?: (string|null);

                    /** Address selfLink */
                    selfLink?: (string|null);

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

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

                    /** Address users */
                    users?: (string[]|null);
                }

                /** Represents an Address. */
                class Address implements IAddress {

                    /**
                     * Constructs a new Address.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddress);

                    /** Address address. */
                    public address?: (string|null);

                    /** Address addressType. */
                    public addressType?: (string|null);

                    /** Address creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Address description. */
                    public description?: (string|null);

                    /** Address id. */
                    public id?: (number|Long|string|null);

                    /** Address ipCollection. */
                    public ipCollection?: (string|null);

                    /** Address ipVersion. */
                    public ipVersion?: (string|null);

                    /** Address ipv6EndpointType. */
                    public ipv6EndpointType?: (string|null);

                    /** Address kind. */
                    public kind?: (string|null);

                    /** Address labelFingerprint. */
                    public labelFingerprint?: (string|null);

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

                    /** Address name. */
                    public name?: (string|null);

                    /** Address network. */
                    public network?: (string|null);

                    /** Address networkTier. */
                    public networkTier?: (string|null);

                    /** Address prefixLength. */
                    public prefixLength?: (number|null);

                    /** Address purpose. */
                    public purpose?: (string|null);

                    /** Address region. */
                    public region?: (string|null);

                    /** Address selfLink. */
                    public selfLink?: (string|null);

                    /** Address status. */
                    public status?: (string|null);

                    /** Address subnetwork. */
                    public subnetwork?: (string|null);

                    /** Address users. */
                    public users: string[];

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

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

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

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

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

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

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

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

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

                namespace Address {

                    /** AddressType enum. */
                    enum AddressType {
                        UNDEFINED_ADDRESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677,
                        UNSPECIFIED_TYPE = 53933922
                    }

                    /** IpVersion enum. */
                    enum IpVersion {
                        UNDEFINED_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        UNSPECIFIED_VERSION = 21850000
                    }

                    /** Ipv6EndpointType enum. */
                    enum Ipv6EndpointType {
                        UNDEFINED_IPV6_ENDPOINT_TYPE = 0,
                        NETLB = 74173363,
                        VM = 2743
                    }

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** Purpose enum. */
                    enum Purpose {
                        UNDEFINED_PURPOSE = 0,
                        DNS_RESOLVER = 476114556,
                        GCE_ENDPOINT = 230515243,
                        IPSEC_INTERCONNECT = 340437251,
                        NAT_AUTO = 163666477,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        SERVERLESS = 270492508,
                        SHARED_LOADBALANCER_VIP = 294447572,
                        VPC_PEERING = 400800170
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        IN_USE = 17393485,
                        RESERVED = 432241448,
                        RESERVING = 514587225
                    }
                }

                /** Properties of an AddressAggregatedList. */
                interface IAddressAggregatedList {

                    /** AddressAggregatedList id */
                    id?: (string|null);

                    /** AddressAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IAddressesScopedList }|null);

                    /** AddressAggregatedList kind */
                    kind?: (string|null);

                    /** AddressAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AddressAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** AddressAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** AddressAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AddressAggregatedList. */
                class AddressAggregatedList implements IAddressAggregatedList {

                    /**
                     * Constructs a new AddressAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddressAggregatedList);

                    /** AddressAggregatedList id. */
                    public id?: (string|null);

                    /** AddressAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IAddressesScopedList };

                    /** AddressAggregatedList kind. */
                    public kind?: (string|null);

                    /** AddressAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AddressAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** AddressAggregatedList unreachables. */
                    public unreachables: string[];

                    /** AddressAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddressList. */
                interface IAddressList {

                    /** AddressList id */
                    id?: (string|null);

                    /** AddressList items */
                    items?: (google.cloud.compute.v1.IAddress[]|null);

                    /** AddressList kind */
                    kind?: (string|null);

                    /** AddressList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AddressList selfLink */
                    selfLink?: (string|null);

                    /** AddressList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AddressList. */
                class AddressList implements IAddressList {

                    /**
                     * Constructs a new AddressList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddressList);

                    /** AddressList id. */
                    public id?: (string|null);

                    /** AddressList items. */
                    public items: google.cloud.compute.v1.IAddress[];

                    /** AddressList kind. */
                    public kind?: (string|null);

                    /** AddressList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AddressList selfLink. */
                    public selfLink?: (string|null);

                    /** AddressList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AddressesScopedList. */
                interface IAddressesScopedList {

                    /** AddressesScopedList addresses */
                    addresses?: (google.cloud.compute.v1.IAddress[]|null);

                    /** AddressesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AddressesScopedList. */
                class AddressesScopedList implements IAddressesScopedList {

                    /**
                     * Constructs a new AddressesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAddressesScopedList);

                    /** AddressesScopedList addresses. */
                    public addresses: google.cloud.compute.v1.IAddress[];

                    /** AddressesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

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

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

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

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

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

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

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

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

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

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

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

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

                    /** AdvancedMachineFeatures performanceMonitoringUnit */
                    performanceMonitoringUnit?: (string|null);

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

                    /** AdvancedMachineFeatures turboMode */
                    turboMode?: (string|null);

                    /** AdvancedMachineFeatures visibleCoreCount */
                    visibleCoreCount?: (number|null);
                }

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

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

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

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

                    /** AdvancedMachineFeatures performanceMonitoringUnit. */
                    public performanceMonitoringUnit?: (string|null);

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

                    /** AdvancedMachineFeatures turboMode. */
                    public turboMode?: (string|null);

                    /** AdvancedMachineFeatures visibleCoreCount. */
                    public visibleCoreCount?: (number|null);

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

                    /**
                     * Encodes the specified AdvancedMachineFeatures message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IAdvancedMachineFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AdvancedMachineFeatures message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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 {
                        UNDEFINED_PERFORMANCE_MONITORING_UNIT = 0,
                        ARCHITECTURAL = 155113693,
                        ENHANCED = 476873590,
                        PERFORMANCE_MONITORING_UNIT_UNSPECIFIED = 429210692,
                        STANDARD = 484642493
                    }
                }

                /** Properties of an AggregatedListAcceleratorTypesRequest. */
                interface IAggregatedListAcceleratorTypesRequest {

                    /** AggregatedListAcceleratorTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListAcceleratorTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListAcceleratorTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAcceleratorTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListAcceleratorTypesRequest. */
                class AggregatedListAcceleratorTypesRequest implements IAggregatedListAcceleratorTypesRequest {

                    /**
                     * Constructs a new AggregatedListAcceleratorTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListAcceleratorTypesRequest);

                    /** AggregatedListAcceleratorTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListAcceleratorTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListAcceleratorTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest project. */
                    public project: string;

                    /** AggregatedListAcceleratorTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAcceleratorTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListAddressesRequest. */
                interface IAggregatedListAddressesRequest {

                    /** AggregatedListAddressesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListAddressesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListAddressesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListAddressesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListAddressesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListAddressesRequest project */
                    project?: (string|null);

                    /** AggregatedListAddressesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAddressesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListAddressesRequest. */
                class AggregatedListAddressesRequest implements IAggregatedListAddressesRequest {

                    /**
                     * Constructs a new AggregatedListAddressesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListAddressesRequest);

                    /** AggregatedListAddressesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListAddressesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListAddressesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListAddressesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListAddressesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListAddressesRequest project. */
                    public project: string;

                    /** AggregatedListAddressesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAddressesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListAutoscalersRequest. */
                interface IAggregatedListAutoscalersRequest {

                    /** AggregatedListAutoscalersRequest filter */
                    filter?: (string|null);

                    /** AggregatedListAutoscalersRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListAutoscalersRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListAutoscalersRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListAutoscalersRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListAutoscalersRequest project */
                    project?: (string|null);

                    /** AggregatedListAutoscalersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAutoscalersRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListAutoscalersRequest. */
                class AggregatedListAutoscalersRequest implements IAggregatedListAutoscalersRequest {

                    /**
                     * Constructs a new AggregatedListAutoscalersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListAutoscalersRequest);

                    /** AggregatedListAutoscalersRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListAutoscalersRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListAutoscalersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListAutoscalersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListAutoscalersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListAutoscalersRequest project. */
                    public project: string;

                    /** AggregatedListAutoscalersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAutoscalersRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListBackendServicesRequest. */
                interface IAggregatedListBackendServicesRequest {

                    /** AggregatedListBackendServicesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListBackendServicesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListBackendServicesRequest project */
                    project?: (string|null);

                    /** AggregatedListBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListBackendServicesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListBackendServicesRequest. */
                class AggregatedListBackendServicesRequest implements IAggregatedListBackendServicesRequest {

                    /**
                     * Constructs a new AggregatedListBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListBackendServicesRequest);

                    /** AggregatedListBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListBackendServicesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListBackendServicesRequest project. */
                    public project: string;

                    /** AggregatedListBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListBackendServicesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListDiskTypesRequest. */
                interface IAggregatedListDiskTypesRequest {

                    /** AggregatedListDiskTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListDiskTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListDiskTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListDiskTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListDiskTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListDiskTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListDiskTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListDiskTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListDiskTypesRequest. */
                class AggregatedListDiskTypesRequest implements IAggregatedListDiskTypesRequest {

                    /**
                     * Constructs a new AggregatedListDiskTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListDiskTypesRequest);

                    /** AggregatedListDiskTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListDiskTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListDiskTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListDiskTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListDiskTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListDiskTypesRequest project. */
                    public project: string;

                    /** AggregatedListDiskTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListDiskTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListDisksRequest. */
                interface IAggregatedListDisksRequest {

                    /** AggregatedListDisksRequest filter */
                    filter?: (string|null);

                    /** AggregatedListDisksRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListDisksRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListDisksRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListDisksRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListDisksRequest project */
                    project?: (string|null);

                    /** AggregatedListDisksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListDisksRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListDisksRequest. */
                class AggregatedListDisksRequest implements IAggregatedListDisksRequest {

                    /**
                     * Constructs a new AggregatedListDisksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListDisksRequest);

                    /** AggregatedListDisksRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListDisksRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListDisksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListDisksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListDisksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListDisksRequest project. */
                    public project: string;

                    /** AggregatedListDisksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListDisksRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListForwardingRulesRequest. */
                interface IAggregatedListForwardingRulesRequest {

                    /** AggregatedListForwardingRulesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListForwardingRulesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListForwardingRulesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListForwardingRulesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListForwardingRulesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListForwardingRulesRequest project */
                    project?: (string|null);

                    /** AggregatedListForwardingRulesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListForwardingRulesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListForwardingRulesRequest. */
                class AggregatedListForwardingRulesRequest implements IAggregatedListForwardingRulesRequest {

                    /**
                     * Constructs a new AggregatedListForwardingRulesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListForwardingRulesRequest);

                    /** AggregatedListForwardingRulesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListForwardingRulesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListForwardingRulesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListForwardingRulesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListForwardingRulesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListForwardingRulesRequest project. */
                    public project: string;

                    /** AggregatedListForwardingRulesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListForwardingRulesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListFutureReservationsRequest. */
                interface IAggregatedListFutureReservationsRequest {

                    /** AggregatedListFutureReservationsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListFutureReservationsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListFutureReservationsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListFutureReservationsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListFutureReservationsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListFutureReservationsRequest project */
                    project?: (string|null);

                    /** AggregatedListFutureReservationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListFutureReservationsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListFutureReservationsRequest. */
                class AggregatedListFutureReservationsRequest implements IAggregatedListFutureReservationsRequest {

                    /**
                     * Constructs a new AggregatedListFutureReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListFutureReservationsRequest);

                    /** AggregatedListFutureReservationsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListFutureReservationsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListFutureReservationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListFutureReservationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListFutureReservationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListFutureReservationsRequest project. */
                    public project: string;

                    /** AggregatedListFutureReservationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListFutureReservationsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListGlobalOperationsRequest. */
                interface IAggregatedListGlobalOperationsRequest {

                    /** AggregatedListGlobalOperationsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListGlobalOperationsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListGlobalOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListGlobalOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListGlobalOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListGlobalOperationsRequest project */
                    project?: (string|null);

                    /** AggregatedListGlobalOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListGlobalOperationsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListGlobalOperationsRequest. */
                class AggregatedListGlobalOperationsRequest implements IAggregatedListGlobalOperationsRequest {

                    /**
                     * Constructs a new AggregatedListGlobalOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListGlobalOperationsRequest);

                    /** AggregatedListGlobalOperationsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListGlobalOperationsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListGlobalOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListGlobalOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListGlobalOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListGlobalOperationsRequest project. */
                    public project: string;

                    /** AggregatedListGlobalOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListGlobalOperationsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListHealthChecksRequest. */
                interface IAggregatedListHealthChecksRequest {

                    /** AggregatedListHealthChecksRequest filter */
                    filter?: (string|null);

                    /** AggregatedListHealthChecksRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListHealthChecksRequest project */
                    project?: (string|null);

                    /** AggregatedListHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListHealthChecksRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListHealthChecksRequest. */
                class AggregatedListHealthChecksRequest implements IAggregatedListHealthChecksRequest {

                    /**
                     * Constructs a new AggregatedListHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListHealthChecksRequest);

                    /** AggregatedListHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListHealthChecksRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListHealthChecksRequest project. */
                    public project: string;

                    /** AggregatedListHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListHealthChecksRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListInstanceGroupManagersRequest. */
                interface IAggregatedListInstanceGroupManagersRequest {

                    /** AggregatedListInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceGroupManagersRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstanceGroupManagersRequest. */
                class AggregatedListInstanceGroupManagersRequest implements IAggregatedListInstanceGroupManagersRequest {

                    /**
                     * Constructs a new AggregatedListInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListInstanceGroupManagersRequest);

                    /** AggregatedListInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest project. */
                    public project: string;

                    /** AggregatedListInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceGroupManagersRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListInstanceGroupsRequest. */
                interface IAggregatedListInstanceGroupsRequest {

                    /** AggregatedListInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstanceGroupsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstanceGroupsRequest project */
                    project?: (string|null);

                    /** AggregatedListInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceGroupsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstanceGroupsRequest. */
                class AggregatedListInstanceGroupsRequest implements IAggregatedListInstanceGroupsRequest {

                    /**
                     * Constructs a new AggregatedListInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListInstanceGroupsRequest);

                    /** AggregatedListInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstanceGroupsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstanceGroupsRequest project. */
                    public project: string;

                    /** AggregatedListInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceGroupsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListInstanceTemplatesRequest. */
                interface IAggregatedListInstanceTemplatesRequest {

                    /** AggregatedListInstanceTemplatesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstanceTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest project */
                    project?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceTemplatesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstanceTemplatesRequest. */
                class AggregatedListInstanceTemplatesRequest implements IAggregatedListInstanceTemplatesRequest {

                    /**
                     * Constructs a new AggregatedListInstanceTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListInstanceTemplatesRequest);

                    /** AggregatedListInstanceTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstanceTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest project. */
                    public project: string;

                    /** AggregatedListInstanceTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceTemplatesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListInstancesRequest. */
                interface IAggregatedListInstancesRequest {

                    /** AggregatedListInstancesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstancesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstancesRequest project */
                    project?: (string|null);

                    /** AggregatedListInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstancesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstancesRequest. */
                class AggregatedListInstancesRequest implements IAggregatedListInstancesRequest {

                    /**
                     * Constructs a new AggregatedListInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListInstancesRequest);

                    /** AggregatedListInstancesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstancesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstancesRequest project. */
                    public project: string;

                    /** AggregatedListInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstancesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListInstantSnapshotsRequest. */
                interface IAggregatedListInstantSnapshotsRequest {

                    /** AggregatedListInstantSnapshotsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstantSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstantSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest project */
                    project?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstantSnapshotsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstantSnapshotsRequest. */
                class AggregatedListInstantSnapshotsRequest implements IAggregatedListInstantSnapshotsRequest {

                    /**
                     * Constructs a new AggregatedListInstantSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListInstantSnapshotsRequest);

                    /** AggregatedListInstantSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstantSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstantSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest project. */
                    public project: string;

                    /** AggregatedListInstantSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstantSnapshotsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListInterconnectAttachmentsRequest. */
                interface IAggregatedListInterconnectAttachmentsRequest {

                    /** AggregatedListInterconnectAttachmentsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInterconnectAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInterconnectAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest project */
                    project?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInterconnectAttachmentsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInterconnectAttachmentsRequest. */
                class AggregatedListInterconnectAttachmentsRequest implements IAggregatedListInterconnectAttachmentsRequest {

                    /**
                     * Constructs a new AggregatedListInterconnectAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListInterconnectAttachmentsRequest);

                    /** AggregatedListInterconnectAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInterconnectAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInterconnectAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest project. */
                    public project: string;

                    /** AggregatedListInterconnectAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInterconnectAttachmentsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListMachineTypesRequest. */
                interface IAggregatedListMachineTypesRequest {

                    /** AggregatedListMachineTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListMachineTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListMachineTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListMachineTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListMachineTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListMachineTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListMachineTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListMachineTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListMachineTypesRequest. */
                class AggregatedListMachineTypesRequest implements IAggregatedListMachineTypesRequest {

                    /**
                     * Constructs a new AggregatedListMachineTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListMachineTypesRequest);

                    /** AggregatedListMachineTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListMachineTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListMachineTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListMachineTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListMachineTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListMachineTypesRequest project. */
                    public project: string;

                    /** AggregatedListMachineTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListMachineTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListNetworkAttachmentsRequest. */
                interface IAggregatedListNetworkAttachmentsRequest {

                    /** AggregatedListNetworkAttachmentsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNetworkAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest project */
                    project?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkAttachmentsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNetworkAttachmentsRequest. */
                class AggregatedListNetworkAttachmentsRequest implements IAggregatedListNetworkAttachmentsRequest {

                    /**
                     * Constructs a new AggregatedListNetworkAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListNetworkAttachmentsRequest);

                    /** AggregatedListNetworkAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNetworkAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest project. */
                    public project: string;

                    /** AggregatedListNetworkAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkAttachmentsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListNetworkEdgeSecurityServicesRequest. */
                interface IAggregatedListNetworkEdgeSecurityServicesRequest {

                    /** AggregatedListNetworkEdgeSecurityServicesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest project */
                    project?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNetworkEdgeSecurityServicesRequest. */
                class AggregatedListNetworkEdgeSecurityServicesRequest implements IAggregatedListNetworkEdgeSecurityServicesRequest {

                    /**
                     * Constructs a new AggregatedListNetworkEdgeSecurityServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListNetworkEdgeSecurityServicesRequest);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest project. */
                    public project: string;

                    /** AggregatedListNetworkEdgeSecurityServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListNetworkEndpointGroupsRequest. */
                interface IAggregatedListNetworkEndpointGroupsRequest {

                    /** AggregatedListNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkEndpointGroupsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNetworkEndpointGroupsRequest. */
                class AggregatedListNetworkEndpointGroupsRequest implements IAggregatedListNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new AggregatedListNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListNetworkEndpointGroupsRequest);

                    /** AggregatedListNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** AggregatedListNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkEndpointGroupsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListNetworkFirewallPoliciesRequest. */
                interface IAggregatedListNetworkFirewallPoliciesRequest {

                    /** AggregatedListNetworkFirewallPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNetworkFirewallPoliciesRequest. */
                class AggregatedListNetworkFirewallPoliciesRequest implements IAggregatedListNetworkFirewallPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListNetworkFirewallPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListNetworkFirewallPoliciesRequest);

                    /** AggregatedListNetworkFirewallPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListNetworkFirewallPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListNodeGroupsRequest. */
                interface IAggregatedListNodeGroupsRequest {

                    /** AggregatedListNodeGroupsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNodeGroupsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNodeGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNodeGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNodeGroupsRequest project */
                    project?: (string|null);

                    /** AggregatedListNodeGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeGroupsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNodeGroupsRequest. */
                class AggregatedListNodeGroupsRequest implements IAggregatedListNodeGroupsRequest {

                    /**
                     * Constructs a new AggregatedListNodeGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListNodeGroupsRequest);

                    /** AggregatedListNodeGroupsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNodeGroupsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNodeGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNodeGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNodeGroupsRequest project. */
                    public project: string;

                    /** AggregatedListNodeGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeGroupsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListNodeTemplatesRequest. */
                interface IAggregatedListNodeTemplatesRequest {

                    /** AggregatedListNodeTemplatesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNodeTemplatesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNodeTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNodeTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNodeTemplatesRequest project */
                    project?: (string|null);

                    /** AggregatedListNodeTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeTemplatesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNodeTemplatesRequest. */
                class AggregatedListNodeTemplatesRequest implements IAggregatedListNodeTemplatesRequest {

                    /**
                     * Constructs a new AggregatedListNodeTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListNodeTemplatesRequest);

                    /** AggregatedListNodeTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNodeTemplatesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNodeTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNodeTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNodeTemplatesRequest project. */
                    public project: string;

                    /** AggregatedListNodeTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeTemplatesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListNodeTypesRequest. */
                interface IAggregatedListNodeTypesRequest {

                    /** AggregatedListNodeTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNodeTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNodeTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNodeTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNodeTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListNodeTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNodeTypesRequest. */
                class AggregatedListNodeTypesRequest implements IAggregatedListNodeTypesRequest {

                    /**
                     * Constructs a new AggregatedListNodeTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListNodeTypesRequest);

                    /** AggregatedListNodeTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNodeTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNodeTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNodeTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNodeTypesRequest project. */
                    public project: string;

                    /** AggregatedListNodeTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListPacketMirroringsRequest. */
                interface IAggregatedListPacketMirroringsRequest {

                    /** AggregatedListPacketMirroringsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListPacketMirroringsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListPacketMirroringsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListPacketMirroringsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListPacketMirroringsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListPacketMirroringsRequest project */
                    project?: (string|null);

                    /** AggregatedListPacketMirroringsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListPacketMirroringsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListPacketMirroringsRequest. */
                class AggregatedListPacketMirroringsRequest implements IAggregatedListPacketMirroringsRequest {

                    /**
                     * Constructs a new AggregatedListPacketMirroringsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListPacketMirroringsRequest);

                    /** AggregatedListPacketMirroringsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListPacketMirroringsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListPacketMirroringsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListPacketMirroringsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListPacketMirroringsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListPacketMirroringsRequest project. */
                    public project: string;

                    /** AggregatedListPacketMirroringsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListPacketMirroringsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListPublicDelegatedPrefixesRequest. */
                interface IAggregatedListPublicDelegatedPrefixesRequest {

                    /** AggregatedListPublicDelegatedPrefixesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest project */
                    project?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListPublicDelegatedPrefixesRequest. */
                class AggregatedListPublicDelegatedPrefixesRequest implements IAggregatedListPublicDelegatedPrefixesRequest {

                    /**
                     * Constructs a new AggregatedListPublicDelegatedPrefixesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListPublicDelegatedPrefixesRequest);

                    /** AggregatedListPublicDelegatedPrefixesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest project. */
                    public project: string;

                    /** AggregatedListPublicDelegatedPrefixesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListRegionCommitmentsRequest. */
                interface IAggregatedListRegionCommitmentsRequest {

                    /** AggregatedListRegionCommitmentsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionCommitmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionCommitmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionCommitmentsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionCommitmentsRequest. */
                class AggregatedListRegionCommitmentsRequest implements IAggregatedListRegionCommitmentsRequest {

                    /**
                     * Constructs a new AggregatedListRegionCommitmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListRegionCommitmentsRequest);

                    /** AggregatedListRegionCommitmentsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionCommitmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionCommitmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest project. */
                    public project: string;

                    /** AggregatedListRegionCommitmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionCommitmentsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListRegionCompositeHealthChecksRequest. */
                interface IAggregatedListRegionCompositeHealthChecksRequest {

                    /** AggregatedListRegionCompositeHealthChecksRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionCompositeHealthChecksRequest. */
                class AggregatedListRegionCompositeHealthChecksRequest implements IAggregatedListRegionCompositeHealthChecksRequest {

                    /**
                     * Constructs a new AggregatedListRegionCompositeHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListRegionCompositeHealthChecksRequest);

                    /** AggregatedListRegionCompositeHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest project. */
                    public project: string;

                    /** AggregatedListRegionCompositeHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListRegionHealthAggregationPoliciesRequest. */
                interface IAggregatedListRegionHealthAggregationPoliciesRequest {

                    /** AggregatedListRegionHealthAggregationPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionHealthAggregationPoliciesRequest. */
                class AggregatedListRegionHealthAggregationPoliciesRequest implements IAggregatedListRegionHealthAggregationPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListRegionHealthAggregationPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListRegionHealthAggregationPoliciesRequest);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListRegionHealthAggregationPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListRegionHealthCheckServicesRequest. */
                interface IAggregatedListRegionHealthCheckServicesRequest {

                    /** AggregatedListRegionHealthCheckServicesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthCheckServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionHealthCheckServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthCheckServicesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionHealthCheckServicesRequest. */
                class AggregatedListRegionHealthCheckServicesRequest implements IAggregatedListRegionHealthCheckServicesRequest {

                    /**
                     * Constructs a new AggregatedListRegionHealthCheckServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListRegionHealthCheckServicesRequest);

                    /** AggregatedListRegionHealthCheckServicesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthCheckServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionHealthCheckServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest project. */
                    public project: string;

                    /** AggregatedListRegionHealthCheckServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthCheckServicesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListRegionHealthSourcesRequest. */
                interface IAggregatedListRegionHealthSourcesRequest {

                    /** AggregatedListRegionHealthSourcesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthSourcesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionHealthSourcesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthSourcesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionHealthSourcesRequest. */
                class AggregatedListRegionHealthSourcesRequest implements IAggregatedListRegionHealthSourcesRequest {

                    /**
                     * Constructs a new AggregatedListRegionHealthSourcesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListRegionHealthSourcesRequest);

                    /** AggregatedListRegionHealthSourcesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthSourcesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionHealthSourcesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest project. */
                    public project: string;

                    /** AggregatedListRegionHealthSourcesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthSourcesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListRegionNotificationEndpointsRequest. */
                interface IAggregatedListRegionNotificationEndpointsRequest {

                    /** AggregatedListRegionNotificationEndpointsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionNotificationEndpointsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionNotificationEndpointsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionNotificationEndpointsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionNotificationEndpointsRequest. */
                class AggregatedListRegionNotificationEndpointsRequest implements IAggregatedListRegionNotificationEndpointsRequest {

                    /**
                     * Constructs a new AggregatedListRegionNotificationEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListRegionNotificationEndpointsRequest);

                    /** AggregatedListRegionNotificationEndpointsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionNotificationEndpointsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionNotificationEndpointsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest project. */
                    public project: string;

                    /** AggregatedListRegionNotificationEndpointsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionNotificationEndpointsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListReservationsRequest. */
                interface IAggregatedListReservationsRequest {

                    /** AggregatedListReservationsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListReservationsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListReservationsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListReservationsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListReservationsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListReservationsRequest project */
                    project?: (string|null);

                    /** AggregatedListReservationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListReservationsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListReservationsRequest. */
                class AggregatedListReservationsRequest implements IAggregatedListReservationsRequest {

                    /**
                     * Constructs a new AggregatedListReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListReservationsRequest);

                    /** AggregatedListReservationsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListReservationsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListReservationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListReservationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListReservationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListReservationsRequest project. */
                    public project: string;

                    /** AggregatedListReservationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListReservationsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListResourcePoliciesRequest. */
                interface IAggregatedListResourcePoliciesRequest {

                    /** AggregatedListResourcePoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListResourcePoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListResourcePoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListResourcePoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListResourcePoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListResourcePoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListResourcePoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListResourcePoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListResourcePoliciesRequest. */
                class AggregatedListResourcePoliciesRequest implements IAggregatedListResourcePoliciesRequest {

                    /**
                     * Constructs a new AggregatedListResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListResourcePoliciesRequest);

                    /** AggregatedListResourcePoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListResourcePoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListResourcePoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListResourcePoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListResourcePoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListResourcePoliciesRequest project. */
                    public project: string;

                    /** AggregatedListResourcePoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListResourcePoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListRoutersRequest. */
                interface IAggregatedListRoutersRequest {

                    /** AggregatedListRoutersRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRoutersRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRoutersRequest project */
                    project?: (string|null);

                    /** AggregatedListRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRoutersRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRoutersRequest. */
                class AggregatedListRoutersRequest implements IAggregatedListRoutersRequest {

                    /**
                     * Constructs a new AggregatedListRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListRoutersRequest);

                    /** AggregatedListRoutersRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRoutersRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRoutersRequest project. */
                    public project: string;

                    /** AggregatedListRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRoutersRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListSecurityPoliciesRequest. */
                interface IAggregatedListSecurityPoliciesRequest {

                    /** AggregatedListSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSecurityPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListSecurityPoliciesRequest. */
                class AggregatedListSecurityPoliciesRequest implements IAggregatedListSecurityPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListSecurityPoliciesRequest);

                    /** AggregatedListSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSecurityPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListServiceAttachmentsRequest. */
                interface IAggregatedListServiceAttachmentsRequest {

                    /** AggregatedListServiceAttachmentsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListServiceAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListServiceAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest project */
                    project?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListServiceAttachmentsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListServiceAttachmentsRequest. */
                class AggregatedListServiceAttachmentsRequest implements IAggregatedListServiceAttachmentsRequest {

                    /**
                     * Constructs a new AggregatedListServiceAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListServiceAttachmentsRequest);

                    /** AggregatedListServiceAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListServiceAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListServiceAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest project. */
                    public project: string;

                    /** AggregatedListServiceAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListServiceAttachmentsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListSslCertificatesRequest. */
                interface IAggregatedListSslCertificatesRequest {

                    /** AggregatedListSslCertificatesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSslCertificatesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSslCertificatesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSslCertificatesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSslCertificatesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSslCertificatesRequest project */
                    project?: (string|null);

                    /** AggregatedListSslCertificatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSslCertificatesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListSslCertificatesRequest. */
                class AggregatedListSslCertificatesRequest implements IAggregatedListSslCertificatesRequest {

                    /**
                     * Constructs a new AggregatedListSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListSslCertificatesRequest);

                    /** AggregatedListSslCertificatesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSslCertificatesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSslCertificatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSslCertificatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSslCertificatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSslCertificatesRequest project. */
                    public project: string;

                    /** AggregatedListSslCertificatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSslCertificatesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListSslPoliciesRequest. */
                interface IAggregatedListSslPoliciesRequest {

                    /** AggregatedListSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSslPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSslPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSslPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListSslPoliciesRequest. */
                class AggregatedListSslPoliciesRequest implements IAggregatedListSslPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListSslPoliciesRequest);

                    /** AggregatedListSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSslPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSslPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSslPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListStoragePoolTypesRequest. */
                interface IAggregatedListStoragePoolTypesRequest {

                    /** AggregatedListStoragePoolTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListStoragePoolTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListStoragePoolTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListStoragePoolTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListStoragePoolTypesRequest. */
                class AggregatedListStoragePoolTypesRequest implements IAggregatedListStoragePoolTypesRequest {

                    /**
                     * Constructs a new AggregatedListStoragePoolTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListStoragePoolTypesRequest);

                    /** AggregatedListStoragePoolTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListStoragePoolTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListStoragePoolTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest project. */
                    public project: string;

                    /** AggregatedListStoragePoolTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListStoragePoolTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListStoragePoolsRequest. */
                interface IAggregatedListStoragePoolsRequest {

                    /** AggregatedListStoragePoolsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListStoragePoolsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListStoragePoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListStoragePoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListStoragePoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListStoragePoolsRequest project */
                    project?: (string|null);

                    /** AggregatedListStoragePoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListStoragePoolsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListStoragePoolsRequest. */
                class AggregatedListStoragePoolsRequest implements IAggregatedListStoragePoolsRequest {

                    /**
                     * Constructs a new AggregatedListStoragePoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListStoragePoolsRequest);

                    /** AggregatedListStoragePoolsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListStoragePoolsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListStoragePoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListStoragePoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListStoragePoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListStoragePoolsRequest project. */
                    public project: string;

                    /** AggregatedListStoragePoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListStoragePoolsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListSubnetworksRequest. */
                interface IAggregatedListSubnetworksRequest {

                    /** AggregatedListSubnetworksRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSubnetworksRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSubnetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSubnetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSubnetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSubnetworksRequest project */
                    project?: (string|null);

                    /** AggregatedListSubnetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSubnetworksRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);

                    /** AggregatedListSubnetworksRequest views */
                    views?: (string|null);
                }

                /** Represents an AggregatedListSubnetworksRequest. */
                class AggregatedListSubnetworksRequest implements IAggregatedListSubnetworksRequest {

                    /**
                     * Constructs a new AggregatedListSubnetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListSubnetworksRequest);

                    /** AggregatedListSubnetworksRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSubnetworksRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSubnetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSubnetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSubnetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSubnetworksRequest project. */
                    public project: string;

                    /** AggregatedListSubnetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSubnetworksRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /** AggregatedListSubnetworksRequest views. */
                    public views?: (string|null);

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

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

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

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

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

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

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

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

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

                namespace AggregatedListSubnetworksRequest {

                    /** Views enum. */
                    enum Views {
                        UNDEFINED_VIEWS = 0,
                        DEFAULT = 115302945,
                        WITH_UTILIZATION = 504090633
                    }
                }

                /** Properties of an AggregatedListTargetHttpProxiesRequest. */
                interface IAggregatedListTargetHttpProxiesRequest {

                    /** AggregatedListTargetHttpProxiesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetHttpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetHttpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetHttpProxiesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetHttpProxiesRequest. */
                class AggregatedListTargetHttpProxiesRequest implements IAggregatedListTargetHttpProxiesRequest {

                    /**
                     * Constructs a new AggregatedListTargetHttpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListTargetHttpProxiesRequest);

                    /** AggregatedListTargetHttpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetHttpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetHttpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest project. */
                    public project: string;

                    /** AggregatedListTargetHttpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetHttpProxiesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListTargetHttpsProxiesRequest. */
                interface IAggregatedListTargetHttpsProxiesRequest {

                    /** AggregatedListTargetHttpsProxiesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetHttpsProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetHttpsProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetHttpsProxiesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetHttpsProxiesRequest. */
                class AggregatedListTargetHttpsProxiesRequest implements IAggregatedListTargetHttpsProxiesRequest {

                    /**
                     * Constructs a new AggregatedListTargetHttpsProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListTargetHttpsProxiesRequest);

                    /** AggregatedListTargetHttpsProxiesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetHttpsProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetHttpsProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest project. */
                    public project: string;

                    /** AggregatedListTargetHttpsProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetHttpsProxiesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListTargetInstancesRequest. */
                interface IAggregatedListTargetInstancesRequest {

                    /** AggregatedListTargetInstancesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetInstancesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetInstancesRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetInstancesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetInstancesRequest. */
                class AggregatedListTargetInstancesRequest implements IAggregatedListTargetInstancesRequest {

                    /**
                     * Constructs a new AggregatedListTargetInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListTargetInstancesRequest);

                    /** AggregatedListTargetInstancesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetInstancesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetInstancesRequest project. */
                    public project: string;

                    /** AggregatedListTargetInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetInstancesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListTargetPoolsRequest. */
                interface IAggregatedListTargetPoolsRequest {

                    /** AggregatedListTargetPoolsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetPoolsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetPoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetPoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetPoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetPoolsRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetPoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetPoolsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetPoolsRequest. */
                class AggregatedListTargetPoolsRequest implements IAggregatedListTargetPoolsRequest {

                    /**
                     * Constructs a new AggregatedListTargetPoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListTargetPoolsRequest);

                    /** AggregatedListTargetPoolsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetPoolsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetPoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetPoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetPoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetPoolsRequest project. */
                    public project: string;

                    /** AggregatedListTargetPoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetPoolsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListTargetTcpProxiesRequest. */
                interface IAggregatedListTargetTcpProxiesRequest {

                    /** AggregatedListTargetTcpProxiesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetTcpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetTcpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetTcpProxiesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetTcpProxiesRequest. */
                class AggregatedListTargetTcpProxiesRequest implements IAggregatedListTargetTcpProxiesRequest {

                    /**
                     * Constructs a new AggregatedListTargetTcpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListTargetTcpProxiesRequest);

                    /** AggregatedListTargetTcpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetTcpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetTcpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest project. */
                    public project: string;

                    /** AggregatedListTargetTcpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetTcpProxiesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

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

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

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

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

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

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

                /** Properties of an AggregatedListTargetVpnGatewaysRequest. */
                interface IAggregatedListTargetVpnGatewaysRequest {

                    /** AggregatedListTargetVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetVpnGatewaysRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetVpnGatewaysRequest. */
                class AggregatedListTargetVpnGatewaysRequest implements IAggregatedListTargetVpnGatewaysRequest {

                    /**
                     * Constructs a new AggregatedListTargetVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListTargetVpnGatewaysRequest);

                    /** AggregatedListTargetVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest project. */
                    public project: string;

                    /** AggregatedListTargetVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetVpnGatewaysRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

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

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

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

                    /**
                     * Decodes an AggregatedListTargetVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListTargetVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AggregatedListTargetVpnGatewaysRequest;

                    /**
                     * Decodes an AggregatedListTargetVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListTargetVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AggregatedListTargetVpnGatewaysRequest;

                    /**
                     * Verifies an AggregatedListTargetVpnGatewaysRequest message.
                     * @param message Plain 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 AggregatedListTargetVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListTargetVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AggregatedListTargetVpnGatewaysRequest;

                    /**
                     * Creates a plain object from an AggregatedListTargetVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListTargetVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AggregatedListTargetVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListTargetVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListTargetVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListUrlMapsRequest. */
                interface IAggregatedListUrlMapsRequest {

                    /** AggregatedListUrlMapsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListUrlMapsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListUrlMapsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListUrlMapsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListUrlMapsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListUrlMapsRequest project */
                    project?: (string|null);

                    /** AggregatedListUrlMapsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListUrlMapsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListUrlMapsRequest. */
                class AggregatedListUrlMapsRequest implements IAggregatedListUrlMapsRequest {

                    /**
                     * Constructs a new AggregatedListUrlMapsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListUrlMapsRequest);

                    /** AggregatedListUrlMapsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListUrlMapsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListUrlMapsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListUrlMapsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListUrlMapsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListUrlMapsRequest project. */
                    public project: string;

                    /** AggregatedListUrlMapsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListUrlMapsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListUrlMapsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListUrlMapsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAggregatedListUrlMapsRequest): google.cloud.compute.v1.AggregatedListUrlMapsRequest;

                    /**
                     * Encodes the specified AggregatedListUrlMapsRequest message. Does not implicitly {@link google.cloud.compute.v1.AggregatedListUrlMapsRequest.verify|verify} messages.
                     * @param message AggregatedListUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAggregatedListUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListUrlMapsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AggregatedListUrlMapsRequest.verify|verify} messages.
                     * @param message AggregatedListUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAggregatedListUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListUrlMapsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AggregatedListUrlMapsRequest;

                    /**
                     * Decodes an AggregatedListUrlMapsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AggregatedListUrlMapsRequest;

                    /**
                     * Verifies an AggregatedListUrlMapsRequest message.
                     * @param message Plain 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 AggregatedListUrlMapsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListUrlMapsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AggregatedListUrlMapsRequest;

                    /**
                     * Creates a plain object from an AggregatedListUrlMapsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListUrlMapsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AggregatedListUrlMapsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListUrlMapsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListUrlMapsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListVpnGatewaysRequest. */
                interface IAggregatedListVpnGatewaysRequest {

                    /** AggregatedListVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** AggregatedListVpnGatewaysRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListVpnGatewaysRequest project */
                    project?: (string|null);

                    /** AggregatedListVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListVpnGatewaysRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListVpnGatewaysRequest. */
                class AggregatedListVpnGatewaysRequest implements IAggregatedListVpnGatewaysRequest {

                    /**
                     * Constructs a new AggregatedListVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListVpnGatewaysRequest);

                    /** AggregatedListVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListVpnGatewaysRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListVpnGatewaysRequest project. */
                    public project: string;

                    /** AggregatedListVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListVpnGatewaysRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAggregatedListVpnGatewaysRequest): google.cloud.compute.v1.AggregatedListVpnGatewaysRequest;

                    /**
                     * Encodes the specified AggregatedListVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1.AggregatedListVpnGatewaysRequest.verify|verify} messages.
                     * @param message AggregatedListVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAggregatedListVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AggregatedListVpnGatewaysRequest.verify|verify} messages.
                     * @param message AggregatedListVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAggregatedListVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AggregatedListVpnGatewaysRequest;

                    /**
                     * Decodes an AggregatedListVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AggregatedListVpnGatewaysRequest;

                    /**
                     * Verifies an AggregatedListVpnGatewaysRequest message.
                     * @param message Plain 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 AggregatedListVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AggregatedListVpnGatewaysRequest;

                    /**
                     * Creates a plain object from an AggregatedListVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AggregatedListVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListVpnTunnelsRequest. */
                interface IAggregatedListVpnTunnelsRequest {

                    /** AggregatedListVpnTunnelsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListVpnTunnelsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListVpnTunnelsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListVpnTunnelsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListVpnTunnelsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListVpnTunnelsRequest project */
                    project?: (string|null);

                    /** AggregatedListVpnTunnelsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListVpnTunnelsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListVpnTunnelsRequest. */
                class AggregatedListVpnTunnelsRequest implements IAggregatedListVpnTunnelsRequest {

                    /**
                     * Constructs a new AggregatedListVpnTunnelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAggregatedListVpnTunnelsRequest);

                    /** AggregatedListVpnTunnelsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListVpnTunnelsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListVpnTunnelsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListVpnTunnelsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListVpnTunnelsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListVpnTunnelsRequest project. */
                    public project: string;

                    /** AggregatedListVpnTunnelsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListVpnTunnelsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListVpnTunnelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListVpnTunnelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAggregatedListVpnTunnelsRequest): google.cloud.compute.v1.AggregatedListVpnTunnelsRequest;

                    /**
                     * Encodes the specified AggregatedListVpnTunnelsRequest message. Does not implicitly {@link google.cloud.compute.v1.AggregatedListVpnTunnelsRequest.verify|verify} messages.
                     * @param message AggregatedListVpnTunnelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAggregatedListVpnTunnelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListVpnTunnelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AggregatedListVpnTunnelsRequest.verify|verify} messages.
                     * @param message AggregatedListVpnTunnelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAggregatedListVpnTunnelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListVpnTunnelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListVpnTunnelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AggregatedListVpnTunnelsRequest;

                    /**
                     * Decodes an AggregatedListVpnTunnelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListVpnTunnelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AggregatedListVpnTunnelsRequest;

                    /**
                     * Verifies an AggregatedListVpnTunnelsRequest message.
                     * @param message Plain 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 AggregatedListVpnTunnelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListVpnTunnelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AggregatedListVpnTunnelsRequest;

                    /**
                     * Creates a plain object from an AggregatedListVpnTunnelsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListVpnTunnelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AggregatedListVpnTunnelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListVpnTunnelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListVpnTunnelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AliasIpRange. */
                interface IAliasIpRange {

                    /** AliasIpRange ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** AliasIpRange subnetworkRangeName */
                    subnetworkRangeName?: (string|null);
                }

                /** Represents an AliasIpRange. */
                class AliasIpRange implements IAliasIpRange {

                    /**
                     * Constructs a new AliasIpRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAliasIpRange);

                    /** AliasIpRange ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** AliasIpRange subnetworkRangeName. */
                    public subnetworkRangeName?: (string|null);

                    /**
                     * Creates a new AliasIpRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AliasIpRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAliasIpRange): google.cloud.compute.v1.AliasIpRange;

                    /**
                     * Encodes the specified AliasIpRange message. Does not implicitly {@link google.cloud.compute.v1.AliasIpRange.verify|verify} messages.
                     * @param message AliasIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAliasIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AliasIpRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AliasIpRange.verify|verify} messages.
                     * @param message AliasIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAliasIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AliasIpRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AliasIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AliasIpRange;

                    /**
                     * Decodes an AliasIpRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AliasIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AliasIpRange;

                    /**
                     * Verifies an AliasIpRange message.
                     * @param message Plain 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 AliasIpRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AliasIpRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AliasIpRange;

                    /**
                     * Creates a plain object from an AliasIpRange message. Also converts values to other types if specified.
                     * @param message AliasIpRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AliasIpRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AliasIpRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AliasIpRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationAggregateReservation. */
                interface IAllocationAggregateReservation {

                    /** AllocationAggregateReservation inUseResources */
                    inUseResources?: (google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfo[]|null);

                    /** AllocationAggregateReservation reservedResources */
                    reservedResources?: (google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfo[]|null);

                    /** AllocationAggregateReservation vmFamily */
                    vmFamily?: (string|null);

                    /** AllocationAggregateReservation workloadType */
                    workloadType?: (string|null);
                }

                /** Represents an AllocationAggregateReservation. */
                class AllocationAggregateReservation implements IAllocationAggregateReservation {

                    /**
                     * Constructs a new AllocationAggregateReservation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationAggregateReservation);

                    /** AllocationAggregateReservation inUseResources. */
                    public inUseResources: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfo[];

                    /** AllocationAggregateReservation reservedResources. */
                    public reservedResources: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfo[];

                    /** AllocationAggregateReservation vmFamily. */
                    public vmFamily?: (string|null);

                    /** AllocationAggregateReservation workloadType. */
                    public workloadType?: (string|null);

                    /**
                     * Creates a new AllocationAggregateReservation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationAggregateReservation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationAggregateReservation): google.cloud.compute.v1.AllocationAggregateReservation;

                    /**
                     * Encodes the specified AllocationAggregateReservation message. Does not implicitly {@link google.cloud.compute.v1.AllocationAggregateReservation.verify|verify} messages.
                     * @param message AllocationAggregateReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationAggregateReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationAggregateReservation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationAggregateReservation.verify|verify} messages.
                     * @param message AllocationAggregateReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationAggregateReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationAggregateReservation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationAggregateReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationAggregateReservation;

                    /**
                     * Decodes an AllocationAggregateReservation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationAggregateReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationAggregateReservation;

                    /**
                     * Verifies an AllocationAggregateReservation message.
                     * @param message Plain 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 AllocationAggregateReservation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationAggregateReservation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationAggregateReservation;

                    /**
                     * Creates a plain object from an AllocationAggregateReservation message. Also converts values to other types if specified.
                     * @param message AllocationAggregateReservation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationAggregateReservation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationAggregateReservation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationAggregateReservation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationAggregateReservation {

                    /** VmFamily enum. */
                    enum VmFamily {
                        UNDEFINED_VM_FAMILY = 0,
                        VM_FAMILY_CLOUD_TPU_DEVICE_CT3 = 42845948,
                        VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L = 108020067,
                        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP = 18705267,
                        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E = 398926997,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P = 517384376,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P = 517384407,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P = 517384438,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X = 485271888
                    }

                    /** WorkloadType enum. */
                    enum WorkloadType {
                        UNDEFINED_WORKLOAD_TYPE = 0,
                        BATCH = 62971674,
                        SERVING = 17781740,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an AllocationAggregateReservationReservedResourceInfo. */
                interface IAllocationAggregateReservationReservedResourceInfo {

                    /** AllocationAggregateReservationReservedResourceInfo accelerator */
                    accelerator?: (google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfoAccelerator|null);
                }

                /** Represents an AllocationAggregateReservationReservedResourceInfo. */
                class AllocationAggregateReservationReservedResourceInfo implements IAllocationAggregateReservationReservedResourceInfo {

                    /**
                     * Constructs a new AllocationAggregateReservationReservedResourceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfo);

                    /** AllocationAggregateReservationReservedResourceInfo accelerator. */
                    public accelerator?: (google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfoAccelerator|null);

                    /**
                     * Creates a new AllocationAggregateReservationReservedResourceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationAggregateReservationReservedResourceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfo): google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo;

                    /**
                     * Encodes the specified AllocationAggregateReservationReservedResourceInfo message. Does not implicitly {@link google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo.verify|verify} messages.
                     * @param message AllocationAggregateReservationReservedResourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationAggregateReservationReservedResourceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo.verify|verify} messages.
                     * @param message AllocationAggregateReservationReservedResourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationAggregateReservationReservedResourceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationAggregateReservationReservedResourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo;

                    /**
                     * Decodes an AllocationAggregateReservationReservedResourceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationAggregateReservationReservedResourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo;

                    /**
                     * Verifies an AllocationAggregateReservationReservedResourceInfo message.
                     * @param message Plain 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 AllocationAggregateReservationReservedResourceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationAggregateReservationReservedResourceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo;

                    /**
                     * Creates a plain object from an AllocationAggregateReservationReservedResourceInfo message. Also converts values to other types if specified.
                     * @param message AllocationAggregateReservationReservedResourceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationAggregateReservationReservedResourceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationAggregateReservationReservedResourceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationAggregateReservationReservedResourceInfoAccelerator. */
                interface IAllocationAggregateReservationReservedResourceInfoAccelerator {

                    /** AllocationAggregateReservationReservedResourceInfoAccelerator acceleratorCount */
                    acceleratorCount?: (number|null);

                    /** AllocationAggregateReservationReservedResourceInfoAccelerator acceleratorType */
                    acceleratorType?: (string|null);
                }

                /** Represents an AllocationAggregateReservationReservedResourceInfoAccelerator. */
                class AllocationAggregateReservationReservedResourceInfoAccelerator implements IAllocationAggregateReservationReservedResourceInfoAccelerator {

                    /**
                     * Constructs a new AllocationAggregateReservationReservedResourceInfoAccelerator.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfoAccelerator);

                    /** AllocationAggregateReservationReservedResourceInfoAccelerator acceleratorCount. */
                    public acceleratorCount?: (number|null);

                    /** AllocationAggregateReservationReservedResourceInfoAccelerator acceleratorType. */
                    public acceleratorType?: (string|null);

                    /**
                     * Creates a new AllocationAggregateReservationReservedResourceInfoAccelerator instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationAggregateReservationReservedResourceInfoAccelerator instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfoAccelerator): google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAccelerator;

                    /**
                     * Encodes the specified AllocationAggregateReservationReservedResourceInfoAccelerator message. Does not implicitly {@link google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAccelerator.verify|verify} messages.
                     * @param message AllocationAggregateReservationReservedResourceInfoAccelerator message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfoAccelerator, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationAggregateReservationReservedResourceInfoAccelerator message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAccelerator.verify|verify} messages.
                     * @param message AllocationAggregateReservationReservedResourceInfoAccelerator message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationAggregateReservationReservedResourceInfoAccelerator, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationAggregateReservationReservedResourceInfoAccelerator message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationAggregateReservationReservedResourceInfoAccelerator
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAccelerator;

                    /**
                     * Decodes an AllocationAggregateReservationReservedResourceInfoAccelerator message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationAggregateReservationReservedResourceInfoAccelerator
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAccelerator;

                    /**
                     * Verifies an AllocationAggregateReservationReservedResourceInfoAccelerator message.
                     * @param message Plain 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 AllocationAggregateReservationReservedResourceInfoAccelerator message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationAggregateReservationReservedResourceInfoAccelerator
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAccelerator;

                    /**
                     * Creates a plain object from an AllocationAggregateReservationReservedResourceInfoAccelerator message. Also converts values to other types if specified.
                     * @param message AllocationAggregateReservationReservedResourceInfoAccelerator
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAccelerator, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationAggregateReservationReservedResourceInfoAccelerator to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationAggregateReservationReservedResourceInfoAccelerator
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationReservationSharingPolicy. */
                interface IAllocationReservationSharingPolicy {

                    /** AllocationReservationSharingPolicy serviceShareType */
                    serviceShareType?: (string|null);
                }

                /** Represents an AllocationReservationSharingPolicy. */
                class AllocationReservationSharingPolicy implements IAllocationReservationSharingPolicy {

                    /**
                     * Constructs a new AllocationReservationSharingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationReservationSharingPolicy);

                    /** AllocationReservationSharingPolicy serviceShareType. */
                    public serviceShareType?: (string|null);

                    /**
                     * Creates a new AllocationReservationSharingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationReservationSharingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationReservationSharingPolicy): google.cloud.compute.v1.AllocationReservationSharingPolicy;

                    /**
                     * Encodes the specified AllocationReservationSharingPolicy message. Does not implicitly {@link google.cloud.compute.v1.AllocationReservationSharingPolicy.verify|verify} messages.
                     * @param message AllocationReservationSharingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationReservationSharingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationReservationSharingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationReservationSharingPolicy.verify|verify} messages.
                     * @param message AllocationReservationSharingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationReservationSharingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationReservationSharingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationReservationSharingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationReservationSharingPolicy;

                    /**
                     * Decodes an AllocationReservationSharingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationReservationSharingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationReservationSharingPolicy;

                    /**
                     * Verifies an AllocationReservationSharingPolicy message.
                     * @param message Plain 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 AllocationReservationSharingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationReservationSharingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationReservationSharingPolicy;

                    /**
                     * Creates a plain object from an AllocationReservationSharingPolicy message. Also converts values to other types if specified.
                     * @param message AllocationReservationSharingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationReservationSharingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationReservationSharingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationReservationSharingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationReservationSharingPolicy {

                    /** ServiceShareType enum. */
                    enum ServiceShareType {
                        UNDEFINED_SERVICE_SHARE_TYPE = 0,
                        ALLOW_ALL = 475536235,
                        DISALLOW_ALL = 277786301,
                        SERVICE_SHARE_TYPE_UNSPECIFIED = 279057148
                    }
                }

                /** Properties of an AllocationResourceStatus. */
                interface IAllocationResourceStatus {

                    /** AllocationResourceStatus healthInfo */
                    healthInfo?: (google.cloud.compute.v1.IAllocationResourceStatusHealthInfo|null);

                    /** AllocationResourceStatus reservationBlockCount */
                    reservationBlockCount?: (number|null);

                    /** AllocationResourceStatus reservationMaintenance */
                    reservationMaintenance?: (google.cloud.compute.v1.IGroupMaintenanceInfo|null);

                    /** AllocationResourceStatus specificSkuAllocation */
                    specificSkuAllocation?: (google.cloud.compute.v1.IAllocationResourceStatusSpecificSKUAllocation|null);
                }

                /** Represents an AllocationResourceStatus. */
                class AllocationResourceStatus implements IAllocationResourceStatus {

                    /**
                     * Constructs a new AllocationResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationResourceStatus);

                    /** AllocationResourceStatus healthInfo. */
                    public healthInfo?: (google.cloud.compute.v1.IAllocationResourceStatusHealthInfo|null);

                    /** AllocationResourceStatus reservationBlockCount. */
                    public reservationBlockCount?: (number|null);

                    /** AllocationResourceStatus reservationMaintenance. */
                    public reservationMaintenance?: (google.cloud.compute.v1.IGroupMaintenanceInfo|null);

                    /** AllocationResourceStatus specificSkuAllocation. */
                    public specificSkuAllocation?: (google.cloud.compute.v1.IAllocationResourceStatusSpecificSKUAllocation|null);

                    /**
                     * Creates a new AllocationResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationResourceStatus): google.cloud.compute.v1.AllocationResourceStatus;

                    /**
                     * Encodes the specified AllocationResourceStatus message. Does not implicitly {@link google.cloud.compute.v1.AllocationResourceStatus.verify|verify} messages.
                     * @param message AllocationResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationResourceStatus.verify|verify} messages.
                     * @param message AllocationResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationResourceStatus;

                    /**
                     * Decodes an AllocationResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationResourceStatus;

                    /**
                     * Verifies an AllocationResourceStatus message.
                     * @param message Plain 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 AllocationResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationResourceStatus;

                    /**
                     * Creates a plain object from an AllocationResourceStatus message. Also converts values to other types if specified.
                     * @param message AllocationResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationResourceStatusHealthInfo. */
                interface IAllocationResourceStatusHealthInfo {

                    /** AllocationResourceStatusHealthInfo degradedBlockCount */
                    degradedBlockCount?: (number|null);

                    /** AllocationResourceStatusHealthInfo healthStatus */
                    healthStatus?: (string|null);

                    /** AllocationResourceStatusHealthInfo healthyBlockCount */
                    healthyBlockCount?: (number|null);
                }

                /** Represents an AllocationResourceStatusHealthInfo. */
                class AllocationResourceStatusHealthInfo implements IAllocationResourceStatusHealthInfo {

                    /**
                     * Constructs a new AllocationResourceStatusHealthInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationResourceStatusHealthInfo);

                    /** AllocationResourceStatusHealthInfo degradedBlockCount. */
                    public degradedBlockCount?: (number|null);

                    /** AllocationResourceStatusHealthInfo healthStatus. */
                    public healthStatus?: (string|null);

                    /** AllocationResourceStatusHealthInfo healthyBlockCount. */
                    public healthyBlockCount?: (number|null);

                    /**
                     * Creates a new AllocationResourceStatusHealthInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationResourceStatusHealthInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationResourceStatusHealthInfo): google.cloud.compute.v1.AllocationResourceStatusHealthInfo;

                    /**
                     * Encodes the specified AllocationResourceStatusHealthInfo message. Does not implicitly {@link google.cloud.compute.v1.AllocationResourceStatusHealthInfo.verify|verify} messages.
                     * @param message AllocationResourceStatusHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationResourceStatusHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationResourceStatusHealthInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationResourceStatusHealthInfo.verify|verify} messages.
                     * @param message AllocationResourceStatusHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationResourceStatusHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationResourceStatusHealthInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationResourceStatusHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationResourceStatusHealthInfo;

                    /**
                     * Decodes an AllocationResourceStatusHealthInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationResourceStatusHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationResourceStatusHealthInfo;

                    /**
                     * Verifies an AllocationResourceStatusHealthInfo message.
                     * @param message Plain 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 AllocationResourceStatusHealthInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationResourceStatusHealthInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationResourceStatusHealthInfo;

                    /**
                     * Creates a plain object from an AllocationResourceStatusHealthInfo message. Also converts values to other types if specified.
                     * @param message AllocationResourceStatusHealthInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationResourceStatusHealthInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationResourceStatusHealthInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationResourceStatusHealthInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationResourceStatusHealthInfo {

                    /** HealthStatus enum. */
                    enum HealthStatus {
                        UNDEFINED_HEALTH_STATUS = 0,
                        DEGRADED = 396890926,
                        HEALTHY = 439801213,
                        HEALTH_STATUS_UNSPECIFIED = 482246925
                    }
                }

                /** Properties of an AllocationResourceStatusSpecificSKUAllocation. */
                interface IAllocationResourceStatusSpecificSKUAllocation {

                    /** AllocationResourceStatusSpecificSKUAllocation sourceInstanceTemplateId */
                    sourceInstanceTemplateId?: (string|null);

                    /** AllocationResourceStatusSpecificSKUAllocation utilizations */
                    utilizations?: ({ [k: string]: (number|Long|string) }|null);
                }

                /** Represents an AllocationResourceStatusSpecificSKUAllocation. */
                class AllocationResourceStatusSpecificSKUAllocation implements IAllocationResourceStatusSpecificSKUAllocation {

                    /**
                     * Constructs a new AllocationResourceStatusSpecificSKUAllocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationResourceStatusSpecificSKUAllocation);

                    /** AllocationResourceStatusSpecificSKUAllocation sourceInstanceTemplateId. */
                    public sourceInstanceTemplateId?: (string|null);

                    /** AllocationResourceStatusSpecificSKUAllocation utilizations. */
                    public utilizations: { [k: string]: (number|Long|string) };

                    /**
                     * Creates a new AllocationResourceStatusSpecificSKUAllocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationResourceStatusSpecificSKUAllocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationResourceStatusSpecificSKUAllocation): google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation;

                    /**
                     * Encodes the specified AllocationResourceStatusSpecificSKUAllocation message. Does not implicitly {@link google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation.verify|verify} messages.
                     * @param message AllocationResourceStatusSpecificSKUAllocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationResourceStatusSpecificSKUAllocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationResourceStatusSpecificSKUAllocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation.verify|verify} messages.
                     * @param message AllocationResourceStatusSpecificSKUAllocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationResourceStatusSpecificSKUAllocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationResourceStatusSpecificSKUAllocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationResourceStatusSpecificSKUAllocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation;

                    /**
                     * Decodes an AllocationResourceStatusSpecificSKUAllocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationResourceStatusSpecificSKUAllocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation;

                    /**
                     * Verifies an AllocationResourceStatusSpecificSKUAllocation message.
                     * @param message Plain 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 AllocationResourceStatusSpecificSKUAllocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationResourceStatusSpecificSKUAllocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation;

                    /**
                     * Creates a plain object from an AllocationResourceStatusSpecificSKUAllocation message. Also converts values to other types if specified.
                     * @param message AllocationResourceStatusSpecificSKUAllocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationResourceStatusSpecificSKUAllocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationResourceStatusSpecificSKUAllocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk. */
                interface IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk {

                    /** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk interface */
                    "interface"?: (string|null);
                }

                /** Represents an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk. */
                class AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk implements IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk {

                    /**
                     * Constructs a new AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk);

                    /** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk interface. */
                    public interface?: (string|null);

                    /**
                     * Creates a new AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk): google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk;

                    /**
                     * Encodes the specified AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message. Does not implicitly {@link google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk.verify|verify} messages.
                     * @param message AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk.verify|verify} messages.
                     * @param message AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk;

                    /**
                     * Decodes an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk;

                    /**
                     * Verifies an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message.
                     * @param message Plain 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 AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk;

                    /**
                     * Creates a plain object from an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message. Also converts values to other types if specified.
                     * @param message AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk {

                    /** Interface enum. */
                    enum Interface {
                        UNDEFINED_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686
                    }
                }

                /** Properties of an AllocationSpecificSKUAllocationReservedInstanceProperties. */
                interface IAllocationSpecificSKUAllocationReservedInstanceProperties {

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1.IAcceleratorConfig[]|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties localSsds */
                    localSsds?: (google.cloud.compute.v1.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk[]|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties locationHint */
                    locationHint?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties machineType */
                    machineType?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties minCpuPlatform */
                    minCpuPlatform?: (string|null);
                }

                /** Represents an AllocationSpecificSKUAllocationReservedInstanceProperties. */
                class AllocationSpecificSKUAllocationReservedInstanceProperties implements IAllocationSpecificSKUAllocationReservedInstanceProperties {

                    /**
                     * Constructs a new AllocationSpecificSKUAllocationReservedInstanceProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationSpecificSKUAllocationReservedInstanceProperties);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1.IAcceleratorConfig[];

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties localSsds. */
                    public localSsds: google.cloud.compute.v1.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk[];

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties locationHint. */
                    public locationHint?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties machineType. */
                    public machineType?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /**
                     * Creates a new AllocationSpecificSKUAllocationReservedInstanceProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationSpecificSKUAllocationReservedInstanceProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationSpecificSKUAllocationReservedInstanceProperties): google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstanceProperties;

                    /**
                     * Encodes the specified AllocationSpecificSKUAllocationReservedInstanceProperties message. Does not implicitly {@link google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstanceProperties.verify|verify} messages.
                     * @param message AllocationSpecificSKUAllocationReservedInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationSpecificSKUAllocationReservedInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationSpecificSKUAllocationReservedInstanceProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstanceProperties.verify|verify} messages.
                     * @param message AllocationSpecificSKUAllocationReservedInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationSpecificSKUAllocationReservedInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationSpecificSKUAllocationReservedInstanceProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationSpecificSKUAllocationReservedInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstanceProperties;

                    /**
                     * Decodes an AllocationSpecificSKUAllocationReservedInstanceProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationSpecificSKUAllocationReservedInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstanceProperties;

                    /**
                     * Verifies an AllocationSpecificSKUAllocationReservedInstanceProperties message.
                     * @param message Plain 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 AllocationSpecificSKUAllocationReservedInstanceProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationSpecificSKUAllocationReservedInstanceProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstanceProperties;

                    /**
                     * Creates a plain object from an AllocationSpecificSKUAllocationReservedInstanceProperties message. Also converts values to other types if specified.
                     * @param message AllocationSpecificSKUAllocationReservedInstanceProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstanceProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationSpecificSKUAllocationReservedInstanceProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationSpecificSKUAllocationReservedInstanceProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationSpecificSKUReservation. */
                interface IAllocationSpecificSKUReservation {

                    /** AllocationSpecificSKUReservation assuredCount */
                    assuredCount?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation count */
                    count?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation inUseCount */
                    inUseCount?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation instanceProperties */
                    instanceProperties?: (google.cloud.compute.v1.IAllocationSpecificSKUAllocationReservedInstanceProperties|null);

                    /** AllocationSpecificSKUReservation sourceInstanceTemplate */
                    sourceInstanceTemplate?: (string|null);
                }

                /** Represents an AllocationSpecificSKUReservation. */
                class AllocationSpecificSKUReservation implements IAllocationSpecificSKUReservation {

                    /**
                     * Constructs a new AllocationSpecificSKUReservation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllocationSpecificSKUReservation);

                    /** AllocationSpecificSKUReservation assuredCount. */
                    public assuredCount?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation count. */
                    public count?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation inUseCount. */
                    public inUseCount?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation instanceProperties. */
                    public instanceProperties?: (google.cloud.compute.v1.IAllocationSpecificSKUAllocationReservedInstanceProperties|null);

                    /** AllocationSpecificSKUReservation sourceInstanceTemplate. */
                    public sourceInstanceTemplate?: (string|null);

                    /**
                     * Creates a new AllocationSpecificSKUReservation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationSpecificSKUReservation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllocationSpecificSKUReservation): google.cloud.compute.v1.AllocationSpecificSKUReservation;

                    /**
                     * Encodes the specified AllocationSpecificSKUReservation message. Does not implicitly {@link google.cloud.compute.v1.AllocationSpecificSKUReservation.verify|verify} messages.
                     * @param message AllocationSpecificSKUReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllocationSpecificSKUReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationSpecificSKUReservation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AllocationSpecificSKUReservation.verify|verify} messages.
                     * @param message AllocationSpecificSKUReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllocationSpecificSKUReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationSpecificSKUReservation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationSpecificSKUReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AllocationSpecificSKUReservation;

                    /**
                     * Decodes an AllocationSpecificSKUReservation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationSpecificSKUReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AllocationSpecificSKUReservation;

                    /**
                     * Verifies an AllocationSpecificSKUReservation message.
                     * @param message Plain 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 AllocationSpecificSKUReservation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationSpecificSKUReservation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AllocationSpecificSKUReservation;

                    /**
                     * Creates a plain object from an AllocationSpecificSKUReservation message. Also converts values to other types if specified.
                     * @param message AllocationSpecificSKUReservation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AllocationSpecificSKUReservation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationSpecificSKUReservation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationSpecificSKUReservation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Allowed. */
                interface IAllowed {

                    /** Allowed IPProtocol */
                    IPProtocol?: (string|null);

                    /** Allowed ports */
                    ports?: (string[]|null);
                }

                /** Represents an Allowed. */
                class Allowed implements IAllowed {

                    /**
                     * Constructs a new Allowed.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAllowed);

                    /** Allowed IPProtocol. */
                    public IPProtocol?: (string|null);

                    /** Allowed ports. */
                    public ports: string[];

                    /**
                     * Creates a new Allowed instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Allowed instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAllowed): google.cloud.compute.v1.Allowed;

                    /**
                     * Encodes the specified Allowed message. Does not implicitly {@link google.cloud.compute.v1.Allowed.verify|verify} messages.
                     * @param message Allowed message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAllowed, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Allowed message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Allowed.verify|verify} messages.
                     * @param message Allowed message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAllowed, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Allowed message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Allowed
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Allowed;

                    /**
                     * Decodes an Allowed message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Allowed
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Allowed;

                    /**
                     * Verifies an Allowed message.
                     * @param message Plain 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 Allowed message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Allowed
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Allowed;

                    /**
                     * Creates a plain object from an Allowed message. Also converts values to other types if specified.
                     * @param message Allowed
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Allowed, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Allowed to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Allowed
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AnnouncePublicAdvertisedPrefixeRequest. */
                interface IAnnouncePublicAdvertisedPrefixeRequest {

                    /** AnnouncePublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** AnnouncePublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);

                    /** AnnouncePublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AnnouncePublicAdvertisedPrefixeRequest. */
                class AnnouncePublicAdvertisedPrefixeRequest implements IAnnouncePublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new AnnouncePublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAnnouncePublicAdvertisedPrefixeRequest);

                    /** AnnouncePublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** AnnouncePublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /** AnnouncePublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AnnouncePublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnnouncePublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAnnouncePublicAdvertisedPrefixeRequest): google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified AnnouncePublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message AnnouncePublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAnnouncePublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnnouncePublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message AnnouncePublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAnnouncePublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnnouncePublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnnouncePublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes an AnnouncePublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnnouncePublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies an AnnouncePublicAdvertisedPrefixeRequest message.
                     * @param message Plain 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 AnnouncePublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnnouncePublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from an AnnouncePublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message AnnouncePublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnnouncePublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnnouncePublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AnnouncePublicDelegatedPrefixeRequest. */
                interface IAnnouncePublicDelegatedPrefixeRequest {

                    /** AnnouncePublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** AnnouncePublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** AnnouncePublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** AnnouncePublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AnnouncePublicDelegatedPrefixeRequest. */
                class AnnouncePublicDelegatedPrefixeRequest implements IAnnouncePublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new AnnouncePublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAnnouncePublicDelegatedPrefixeRequest);

                    /** AnnouncePublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** AnnouncePublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** AnnouncePublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** AnnouncePublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AnnouncePublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnnouncePublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAnnouncePublicDelegatedPrefixeRequest): google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified AnnouncePublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message AnnouncePublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAnnouncePublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnnouncePublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message AnnouncePublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAnnouncePublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnnouncePublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnnouncePublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest;

                    /**
                     * Decodes an AnnouncePublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnnouncePublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest;

                    /**
                     * Verifies an AnnouncePublicDelegatedPrefixeRequest message.
                     * @param message Plain 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 AnnouncePublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnnouncePublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from an AnnouncePublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message AnnouncePublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnnouncePublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnnouncePublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ApplyUpdatesToInstancesInstanceGroupManagerRequest. */
                interface IApplyUpdatesToInstancesInstanceGroupManagerRequest {

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest instanceGroupManagersApplyUpdatesRequestResource */
                    instanceGroupManagersApplyUpdatesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersApplyUpdatesRequest|null);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an ApplyUpdatesToInstancesInstanceGroupManagerRequest. */
                class ApplyUpdatesToInstancesInstanceGroupManagerRequest implements IApplyUpdatesToInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ApplyUpdatesToInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IApplyUpdatesToInstancesInstanceGroupManagerRequest);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest instanceGroupManagersApplyUpdatesRequestResource. */
                    public instanceGroupManagersApplyUpdatesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersApplyUpdatesRequest|null);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ApplyUpdatesToInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ApplyUpdatesToInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IApplyUpdatesToInstancesInstanceGroupManagerRequest): google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ApplyUpdatesToInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ApplyUpdatesToInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IApplyUpdatesToInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ApplyUpdatesToInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ApplyUpdatesToInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IApplyUpdatesToInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ApplyUpdatesToInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes an ApplyUpdatesToInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies an ApplyUpdatesToInstancesInstanceGroupManagerRequest message.
                     * @param message Plain 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 ApplyUpdatesToInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an ApplyUpdatesToInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ApplyUpdatesToInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest. */
                interface IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest {

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersApplyUpdatesRequestResource */
                    regionInstanceGroupManagersApplyUpdatesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersApplyUpdatesRequest|null);
                }

                /** Represents an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest. */
                class ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest implements IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest);

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersApplyUpdatesRequestResource. */
                    public regionInstanceGroupManagersApplyUpdatesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersApplyUpdatesRequest|null);

                    /**
                     * Creates a new ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachDiskInstanceRequest. */
                interface IAttachDiskInstanceRequest {

                    /** AttachDiskInstanceRequest attachedDiskResource */
                    attachedDiskResource?: (google.cloud.compute.v1.IAttachedDisk|null);

                    /** AttachDiskInstanceRequest forceAttach */
                    forceAttach?: (boolean|null);

                    /** AttachDiskInstanceRequest instance */
                    instance?: (string|null);

                    /** AttachDiskInstanceRequest project */
                    project?: (string|null);

                    /** AttachDiskInstanceRequest requestId */
                    requestId?: (string|null);

                    /** AttachDiskInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AttachDiskInstanceRequest. */
                class AttachDiskInstanceRequest implements IAttachDiskInstanceRequest {

                    /**
                     * Constructs a new AttachDiskInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAttachDiskInstanceRequest);

                    /** AttachDiskInstanceRequest attachedDiskResource. */
                    public attachedDiskResource?: (google.cloud.compute.v1.IAttachedDisk|null);

                    /** AttachDiskInstanceRequest forceAttach. */
                    public forceAttach?: (boolean|null);

                    /** AttachDiskInstanceRequest instance. */
                    public instance: string;

                    /** AttachDiskInstanceRequest project. */
                    public project: string;

                    /** AttachDiskInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** AttachDiskInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AttachDiskInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachDiskInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAttachDiskInstanceRequest): google.cloud.compute.v1.AttachDiskInstanceRequest;

                    /**
                     * Encodes the specified AttachDiskInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.AttachDiskInstanceRequest.verify|verify} messages.
                     * @param message AttachDiskInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAttachDiskInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachDiskInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AttachDiskInstanceRequest.verify|verify} messages.
                     * @param message AttachDiskInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAttachDiskInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachDiskInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachDiskInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AttachDiskInstanceRequest;

                    /**
                     * Decodes an AttachDiskInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachDiskInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AttachDiskInstanceRequest;

                    /**
                     * Verifies an AttachDiskInstanceRequest message.
                     * @param message Plain 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 AttachDiskInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachDiskInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AttachDiskInstanceRequest;

                    /**
                     * Creates a plain object from an AttachDiskInstanceRequest message. Also converts values to other types if specified.
                     * @param message AttachDiskInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AttachDiskInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachDiskInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachDiskInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest. */
                interface IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest {

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest globalNetworkEndpointGroupsAttachEndpointsRequestResource */
                    globalNetworkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1.IGlobalNetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest. */
                class AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest implements IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest globalNetworkEndpointGroupsAttachEndpointsRequestResource. */
                    public globalNetworkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1.IGlobalNetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain 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 AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachNetworkEndpointsNetworkEndpointGroupRequest. */
                interface IAttachNetworkEndpointsNetworkEndpointGroupRequest {

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroupsAttachEndpointsRequestResource */
                    networkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1.INetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AttachNetworkEndpointsNetworkEndpointGroupRequest. */
                class AttachNetworkEndpointsNetworkEndpointGroupRequest implements IAttachNetworkEndpointsNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new AttachNetworkEndpointsNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAttachNetworkEndpointsNetworkEndpointGroupRequest);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroupsAttachEndpointsRequestResource. */
                    public networkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1.INetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AttachNetworkEndpointsNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachNetworkEndpointsNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAttachNetworkEndpointsNetworkEndpointGroupRequest): google.cloud.compute.v1.AttachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified AttachNetworkEndpointsNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.AttachNetworkEndpointsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAttachNetworkEndpointsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachNetworkEndpointsNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AttachNetworkEndpointsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAttachNetworkEndpointsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachNetworkEndpointsNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachNetworkEndpointsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AttachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Decodes an AttachNetworkEndpointsNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachNetworkEndpointsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AttachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Verifies an AttachNetworkEndpointsNetworkEndpointGroupRequest message.
                     * @param message Plain 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 AttachNetworkEndpointsNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachNetworkEndpointsNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AttachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an AttachNetworkEndpointsNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message AttachNetworkEndpointsNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AttachNetworkEndpointsNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachNetworkEndpointsNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachNetworkEndpointsNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest. */
                interface IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest {

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest regionNetworkEndpointGroupsAttachEndpointsRequestResource */
                    regionNetworkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1.IRegionNetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest. */
                class AttachNetworkEndpointsRegionNetworkEndpointGroupRequest implements IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new AttachNetworkEndpointsRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest regionNetworkEndpointGroupsAttachEndpointsRequestResource. */
                    public regionNetworkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1.IRegionNetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AttachNetworkEndpointsRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachNetworkEndpointsRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest): google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message.
                     * @param message Plain 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 AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachNetworkEndpointsRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachedDisk. */
                interface IAttachedDisk {

                    /** AttachedDisk architecture */
                    architecture?: (string|null);

                    /** AttachedDisk autoDelete */
                    autoDelete?: (boolean|null);

                    /** AttachedDisk boot */
                    boot?: (boolean|null);

                    /** AttachedDisk deviceName */
                    deviceName?: (string|null);

                    /** AttachedDisk diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** AttachedDisk diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** AttachedDisk forceAttach */
                    forceAttach?: (boolean|null);

                    /** AttachedDisk guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1.IGuestOsFeature[]|null);

                    /** AttachedDisk index */
                    index?: (number|null);

                    /** AttachedDisk initializeParams */
                    initializeParams?: (google.cloud.compute.v1.IAttachedDiskInitializeParams|null);

                    /** AttachedDisk interface */
                    "interface"?: (string|null);

                    /** AttachedDisk kind */
                    kind?: (string|null);

                    /** AttachedDisk licenses */
                    licenses?: (string[]|null);

                    /** AttachedDisk mode */
                    mode?: (string|null);

                    /** AttachedDisk savedState */
                    savedState?: (string|null);

                    /** AttachedDisk shieldedInstanceInitialState */
                    shieldedInstanceInitialState?: (google.cloud.compute.v1.IInitialStateConfig|null);

                    /** AttachedDisk source */
                    source?: (string|null);

                    /** AttachedDisk type */
                    type?: (string|null);
                }

                /** Represents an AttachedDisk. */
                class AttachedDisk implements IAttachedDisk {

                    /**
                     * Constructs a new AttachedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAttachedDisk);

                    /** AttachedDisk architecture. */
                    public architecture?: (string|null);

                    /** AttachedDisk autoDelete. */
                    public autoDelete?: (boolean|null);

                    /** AttachedDisk boot. */
                    public boot?: (boolean|null);

                    /** AttachedDisk deviceName. */
                    public deviceName?: (string|null);

                    /** AttachedDisk diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** AttachedDisk diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** AttachedDisk forceAttach. */
                    public forceAttach?: (boolean|null);

                    /** AttachedDisk guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1.IGuestOsFeature[];

                    /** AttachedDisk index. */
                    public index?: (number|null);

                    /** AttachedDisk initializeParams. */
                    public initializeParams?: (google.cloud.compute.v1.IAttachedDiskInitializeParams|null);

                    /** AttachedDisk interface. */
                    public interface?: (string|null);

                    /** AttachedDisk kind. */
                    public kind?: (string|null);

                    /** AttachedDisk licenses. */
                    public licenses: string[];

                    /** AttachedDisk mode. */
                    public mode?: (string|null);

                    /** AttachedDisk savedState. */
                    public savedState?: (string|null);

                    /** AttachedDisk shieldedInstanceInitialState. */
                    public shieldedInstanceInitialState?: (google.cloud.compute.v1.IInitialStateConfig|null);

                    /** AttachedDisk source. */
                    public source?: (string|null);

                    /** AttachedDisk type. */
                    public type?: (string|null);

                    /**
                     * Creates a new AttachedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAttachedDisk): google.cloud.compute.v1.AttachedDisk;

                    /**
                     * Encodes the specified AttachedDisk message. Does not implicitly {@link google.cloud.compute.v1.AttachedDisk.verify|verify} messages.
                     * @param message AttachedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAttachedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AttachedDisk.verify|verify} messages.
                     * @param message AttachedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAttachedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AttachedDisk;

                    /**
                     * Decodes an AttachedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AttachedDisk;

                    /**
                     * Verifies an AttachedDisk message.
                     * @param message Plain 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 AttachedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AttachedDisk;

                    /**
                     * Creates a plain object from an AttachedDisk message. Also converts values to other types if specified.
                     * @param message AttachedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AttachedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AttachedDisk {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** Interface enum. */
                    enum Interface {
                        UNDEFINED_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        READ_ONLY = 91950261,
                        READ_WRITE = 173607894
                    }

                    /** SavedState enum. */
                    enum SavedState {
                        UNDEFINED_SAVED_STATE = 0,
                        DISK_SAVED_STATE_UNSPECIFIED = 391290831,
                        PRESERVED = 254159736
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        PERSISTENT = 460683927,
                        SCRATCH = 496778970
                    }
                }

                /** Properties of an AttachedDiskInitializeParams. */
                interface IAttachedDiskInitializeParams {

                    /** AttachedDiskInitializeParams architecture */
                    architecture?: (string|null);

                    /** AttachedDiskInitializeParams description */
                    description?: (string|null);

                    /** AttachedDiskInitializeParams diskName */
                    diskName?: (string|null);

                    /** AttachedDiskInitializeParams diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams diskType */
                    diskType?: (string|null);

                    /** AttachedDiskInitializeParams enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);

                    /** AttachedDiskInitializeParams labels */
                    labels?: ({ [k: string]: string }|null);

                    /** AttachedDiskInitializeParams licenses */
                    licenses?: (string[]|null);

                    /** AttachedDiskInitializeParams onUpdateAction */
                    onUpdateAction?: (string|null);

                    /** AttachedDiskInitializeParams provisionedIops */
                    provisionedIops?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams provisionedThroughput */
                    provisionedThroughput?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams replicaZones */
                    replicaZones?: (string[]|null);

                    /** AttachedDiskInitializeParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);

                    /** AttachedDiskInitializeParams resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** AttachedDiskInitializeParams sourceImage */
                    sourceImage?: (string|null);

                    /** AttachedDiskInitializeParams sourceImageEncryptionKey */
                    sourceImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** AttachedDiskInitializeParams sourceSnapshot */
                    sourceSnapshot?: (string|null);

                    /** AttachedDiskInitializeParams sourceSnapshotEncryptionKey */
                    sourceSnapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** AttachedDiskInitializeParams storagePool */
                    storagePool?: (string|null);
                }

                /** Represents an AttachedDiskInitializeParams. */
                class AttachedDiskInitializeParams implements IAttachedDiskInitializeParams {

                    /**
                     * Constructs a new AttachedDiskInitializeParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAttachedDiskInitializeParams);

                    /** AttachedDiskInitializeParams architecture. */
                    public architecture?: (string|null);

                    /** AttachedDiskInitializeParams description. */
                    public description?: (string|null);

                    /** AttachedDiskInitializeParams diskName. */
                    public diskName?: (string|null);

                    /** AttachedDiskInitializeParams diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams diskType. */
                    public diskType?: (string|null);

                    /** AttachedDiskInitializeParams enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /** AttachedDiskInitializeParams labels. */
                    public labels: { [k: string]: string };

                    /** AttachedDiskInitializeParams licenses. */
                    public licenses: string[];

                    /** AttachedDiskInitializeParams onUpdateAction. */
                    public onUpdateAction?: (string|null);

                    /** AttachedDiskInitializeParams provisionedIops. */
                    public provisionedIops?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams provisionedThroughput. */
                    public provisionedThroughput?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams replicaZones. */
                    public replicaZones: string[];

                    /** AttachedDiskInitializeParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /** AttachedDiskInitializeParams resourcePolicies. */
                    public resourcePolicies: string[];

                    /** AttachedDiskInitializeParams sourceImage. */
                    public sourceImage?: (string|null);

                    /** AttachedDiskInitializeParams sourceImageEncryptionKey. */
                    public sourceImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** AttachedDiskInitializeParams sourceSnapshot. */
                    public sourceSnapshot?: (string|null);

                    /** AttachedDiskInitializeParams sourceSnapshotEncryptionKey. */
                    public sourceSnapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** AttachedDiskInitializeParams storagePool. */
                    public storagePool?: (string|null);

                    /**
                     * Creates a new AttachedDiskInitializeParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachedDiskInitializeParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAttachedDiskInitializeParams): google.cloud.compute.v1.AttachedDiskInitializeParams;

                    /**
                     * Encodes the specified AttachedDiskInitializeParams message. Does not implicitly {@link google.cloud.compute.v1.AttachedDiskInitializeParams.verify|verify} messages.
                     * @param message AttachedDiskInitializeParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAttachedDiskInitializeParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachedDiskInitializeParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AttachedDiskInitializeParams.verify|verify} messages.
                     * @param message AttachedDiskInitializeParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAttachedDiskInitializeParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachedDiskInitializeParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachedDiskInitializeParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AttachedDiskInitializeParams;

                    /**
                     * Decodes an AttachedDiskInitializeParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachedDiskInitializeParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AttachedDiskInitializeParams;

                    /**
                     * Verifies an AttachedDiskInitializeParams message.
                     * @param message Plain 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 AttachedDiskInitializeParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachedDiskInitializeParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AttachedDiskInitializeParams;

                    /**
                     * Creates a plain object from an AttachedDiskInitializeParams message. Also converts values to other types if specified.
                     * @param message AttachedDiskInitializeParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AttachedDiskInitializeParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachedDiskInitializeParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachedDiskInitializeParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AttachedDiskInitializeParams {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** OnUpdateAction enum. */
                    enum OnUpdateAction {
                        UNDEFINED_ON_UPDATE_ACTION = 0,
                        RECREATE_DISK = 494767853,
                        RECREATE_DISK_IF_SOURCE_CHANGED = 398099712,
                        USE_EXISTING_DISK = 232682233
                    }
                }

                /** Properties of an AuditConfig. */
                interface IAuditConfig {

                    /** AuditConfig auditLogConfigs */
                    auditLogConfigs?: (google.cloud.compute.v1.IAuditLogConfig[]|null);

                    /** AuditConfig exemptedMembers */
                    exemptedMembers?: (string[]|null);

                    /** AuditConfig service */
                    service?: (string|null);
                }

                /** Represents an AuditConfig. */
                class AuditConfig implements IAuditConfig {

                    /**
                     * Constructs a new AuditConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAuditConfig);

                    /** AuditConfig auditLogConfigs. */
                    public auditLogConfigs: google.cloud.compute.v1.IAuditLogConfig[];

                    /** AuditConfig exemptedMembers. */
                    public exemptedMembers: string[];

                    /** AuditConfig service. */
                    public service?: (string|null);

                    /**
                     * Creates a new AuditConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AuditConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAuditConfig): google.cloud.compute.v1.AuditConfig;

                    /**
                     * Encodes the specified AuditConfig message. Does not implicitly {@link google.cloud.compute.v1.AuditConfig.verify|verify} messages.
                     * @param message AuditConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAuditConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AuditConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AuditConfig.verify|verify} messages.
                     * @param message AuditConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAuditConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AuditConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AuditConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AuditConfig;

                    /**
                     * Decodes an AuditConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AuditConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AuditConfig;

                    /**
                     * Verifies an AuditConfig message.
                     * @param message Plain 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 AuditConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AuditConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AuditConfig;

                    /**
                     * Creates a plain object from an AuditConfig message. Also converts values to other types if specified.
                     * @param message AuditConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AuditConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AuditConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AuditConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AuditLogConfig. */
                interface IAuditLogConfig {

                    /** AuditLogConfig exemptedMembers */
                    exemptedMembers?: (string[]|null);

                    /** AuditLogConfig ignoreChildExemptions */
                    ignoreChildExemptions?: (boolean|null);

                    /** AuditLogConfig logType */
                    logType?: (string|null);
                }

                /** Represents an AuditLogConfig. */
                class AuditLogConfig implements IAuditLogConfig {

                    /**
                     * Constructs a new AuditLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAuditLogConfig);

                    /** AuditLogConfig exemptedMembers. */
                    public exemptedMembers: string[];

                    /** AuditLogConfig ignoreChildExemptions. */
                    public ignoreChildExemptions?: (boolean|null);

                    /** AuditLogConfig logType. */
                    public logType?: (string|null);

                    /**
                     * Creates a new AuditLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AuditLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAuditLogConfig): google.cloud.compute.v1.AuditLogConfig;

                    /**
                     * Encodes the specified AuditLogConfig message. Does not implicitly {@link google.cloud.compute.v1.AuditLogConfig.verify|verify} messages.
                     * @param message AuditLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAuditLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AuditLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AuditLogConfig.verify|verify} messages.
                     * @param message AuditLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAuditLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AuditLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AuditLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AuditLogConfig;

                    /**
                     * Decodes an AuditLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AuditLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AuditLogConfig;

                    /**
                     * Verifies an AuditLogConfig message.
                     * @param message Plain 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 AuditLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AuditLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AuditLogConfig;

                    /**
                     * Creates a plain object from an AuditLogConfig message. Also converts values to other types if specified.
                     * @param message AuditLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AuditLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AuditLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AuditLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AuditLogConfig {

                    /** LogType enum. */
                    enum LogType {
                        UNDEFINED_LOG_TYPE = 0,
                        ADMIN_READ = 128951462,
                        DATA_READ = 305224971,
                        DATA_WRITE = 340181738,
                        LOG_TYPE_UNSPECIFIED = 154527053
                    }
                }

                /** Properties of an Autoscaler. */
                interface IAutoscaler {

                    /** Autoscaler autoscalingPolicy */
                    autoscalingPolicy?: (google.cloud.compute.v1.IAutoscalingPolicy|null);

                    /** Autoscaler creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Autoscaler description */
                    description?: (string|null);

                    /** Autoscaler id */
                    id?: (number|Long|string|null);

                    /** Autoscaler kind */
                    kind?: (string|null);

                    /** Autoscaler name */
                    name?: (string|null);

                    /** Autoscaler recommendedSize */
                    recommendedSize?: (number|null);

                    /** Autoscaler region */
                    region?: (string|null);

                    /** Autoscaler scalingScheduleStatus */
                    scalingScheduleStatus?: ({ [k: string]: google.cloud.compute.v1.IScalingScheduleStatus }|null);

                    /** Autoscaler selfLink */
                    selfLink?: (string|null);

                    /** Autoscaler status */
                    status?: (string|null);

                    /** Autoscaler statusDetails */
                    statusDetails?: (google.cloud.compute.v1.IAutoscalerStatusDetails[]|null);

                    /** Autoscaler target */
                    target?: (string|null);

                    /** Autoscaler zone */
                    zone?: (string|null);
                }

                /** Represents an Autoscaler. */
                class Autoscaler implements IAutoscaler {

                    /**
                     * Constructs a new Autoscaler.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscaler);

                    /** Autoscaler autoscalingPolicy. */
                    public autoscalingPolicy?: (google.cloud.compute.v1.IAutoscalingPolicy|null);

                    /** Autoscaler creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Autoscaler description. */
                    public description?: (string|null);

                    /** Autoscaler id. */
                    public id?: (number|Long|string|null);

                    /** Autoscaler kind. */
                    public kind?: (string|null);

                    /** Autoscaler name. */
                    public name?: (string|null);

                    /** Autoscaler recommendedSize. */
                    public recommendedSize?: (number|null);

                    /** Autoscaler region. */
                    public region?: (string|null);

                    /** Autoscaler scalingScheduleStatus. */
                    public scalingScheduleStatus: { [k: string]: google.cloud.compute.v1.IScalingScheduleStatus };

                    /** Autoscaler selfLink. */
                    public selfLink?: (string|null);

                    /** Autoscaler status. */
                    public status?: (string|null);

                    /** Autoscaler statusDetails. */
                    public statusDetails: google.cloud.compute.v1.IAutoscalerStatusDetails[];

                    /** Autoscaler target. */
                    public target?: (string|null);

                    /** Autoscaler zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Autoscaler instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Autoscaler instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscaler): google.cloud.compute.v1.Autoscaler;

                    /**
                     * Encodes the specified Autoscaler message. Does not implicitly {@link google.cloud.compute.v1.Autoscaler.verify|verify} messages.
                     * @param message Autoscaler message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscaler, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Autoscaler message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Autoscaler.verify|verify} messages.
                     * @param message Autoscaler message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscaler, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Autoscaler message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Autoscaler
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Autoscaler;

                    /**
                     * Decodes an Autoscaler message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Autoscaler
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Autoscaler;

                    /**
                     * Verifies an Autoscaler message.
                     * @param message Plain 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 Autoscaler message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Autoscaler
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Autoscaler;

                    /**
                     * Creates a plain object from an Autoscaler message. Also converts values to other types if specified.
                     * @param message Autoscaler
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Autoscaler, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Autoscaler to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Autoscaler
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Autoscaler {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        DELETING = 528602024,
                        ERROR = 66247144,
                        PENDING = 35394935
                    }
                }

                /** Properties of an AutoscalerAggregatedList. */
                interface IAutoscalerAggregatedList {

                    /** AutoscalerAggregatedList id */
                    id?: (string|null);

                    /** AutoscalerAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IAutoscalersScopedList }|null);

                    /** AutoscalerAggregatedList kind */
                    kind?: (string|null);

                    /** AutoscalerAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AutoscalerAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** AutoscalerAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** AutoscalerAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AutoscalerAggregatedList. */
                class AutoscalerAggregatedList implements IAutoscalerAggregatedList {

                    /**
                     * Constructs a new AutoscalerAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalerAggregatedList);

                    /** AutoscalerAggregatedList id. */
                    public id?: (string|null);

                    /** AutoscalerAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IAutoscalersScopedList };

                    /** AutoscalerAggregatedList kind. */
                    public kind?: (string|null);

                    /** AutoscalerAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AutoscalerAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** AutoscalerAggregatedList unreachables. */
                    public unreachables: string[];

                    /** AutoscalerAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new AutoscalerAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalerAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalerAggregatedList): google.cloud.compute.v1.AutoscalerAggregatedList;

                    /**
                     * Encodes the specified AutoscalerAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.AutoscalerAggregatedList.verify|verify} messages.
                     * @param message AutoscalerAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalerAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalerAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalerAggregatedList.verify|verify} messages.
                     * @param message AutoscalerAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalerAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalerAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalerAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalerAggregatedList;

                    /**
                     * Decodes an AutoscalerAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalerAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalerAggregatedList;

                    /**
                     * Verifies an AutoscalerAggregatedList message.
                     * @param message Plain 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 AutoscalerAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalerAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalerAggregatedList;

                    /**
                     * Creates a plain object from an AutoscalerAggregatedList message. Also converts values to other types if specified.
                     * @param message AutoscalerAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalerAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalerAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalerAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalerList. */
                interface IAutoscalerList {

                    /** AutoscalerList id */
                    id?: (string|null);

                    /** AutoscalerList items */
                    items?: (google.cloud.compute.v1.IAutoscaler[]|null);

                    /** AutoscalerList kind */
                    kind?: (string|null);

                    /** AutoscalerList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AutoscalerList selfLink */
                    selfLink?: (string|null);

                    /** AutoscalerList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AutoscalerList. */
                class AutoscalerList implements IAutoscalerList {

                    /**
                     * Constructs a new AutoscalerList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalerList);

                    /** AutoscalerList id. */
                    public id?: (string|null);

                    /** AutoscalerList items. */
                    public items: google.cloud.compute.v1.IAutoscaler[];

                    /** AutoscalerList kind. */
                    public kind?: (string|null);

                    /** AutoscalerList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AutoscalerList selfLink. */
                    public selfLink?: (string|null);

                    /** AutoscalerList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new AutoscalerList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalerList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalerList): google.cloud.compute.v1.AutoscalerList;

                    /**
                     * Encodes the specified AutoscalerList message. Does not implicitly {@link google.cloud.compute.v1.AutoscalerList.verify|verify} messages.
                     * @param message AutoscalerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalerList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalerList.verify|verify} messages.
                     * @param message AutoscalerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalerList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalerList;

                    /**
                     * Decodes an AutoscalerList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalerList;

                    /**
                     * Verifies an AutoscalerList message.
                     * @param message Plain 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 AutoscalerList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalerList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalerList;

                    /**
                     * Creates a plain object from an AutoscalerList message. Also converts values to other types if specified.
                     * @param message AutoscalerList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalerList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalerList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalerStatusDetails. */
                interface IAutoscalerStatusDetails {

                    /** AutoscalerStatusDetails message */
                    message?: (string|null);

                    /** AutoscalerStatusDetails type */
                    type?: (string|null);
                }

                /** Represents an AutoscalerStatusDetails. */
                class AutoscalerStatusDetails implements IAutoscalerStatusDetails {

                    /**
                     * Constructs a new AutoscalerStatusDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalerStatusDetails);

                    /** AutoscalerStatusDetails message. */
                    public message?: (string|null);

                    /** AutoscalerStatusDetails type. */
                    public type?: (string|null);

                    /**
                     * Creates a new AutoscalerStatusDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalerStatusDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalerStatusDetails): google.cloud.compute.v1.AutoscalerStatusDetails;

                    /**
                     * Encodes the specified AutoscalerStatusDetails message. Does not implicitly {@link google.cloud.compute.v1.AutoscalerStatusDetails.verify|verify} messages.
                     * @param message AutoscalerStatusDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalerStatusDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalerStatusDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalerStatusDetails.verify|verify} messages.
                     * @param message AutoscalerStatusDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalerStatusDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalerStatusDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalerStatusDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalerStatusDetails;

                    /**
                     * Decodes an AutoscalerStatusDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalerStatusDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalerStatusDetails;

                    /**
                     * Verifies an AutoscalerStatusDetails message.
                     * @param message Plain 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 AutoscalerStatusDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalerStatusDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalerStatusDetails;

                    /**
                     * Creates a plain object from an AutoscalerStatusDetails message. Also converts values to other types if specified.
                     * @param message AutoscalerStatusDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalerStatusDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalerStatusDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalerStatusDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutoscalerStatusDetails {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        ALL_INSTANCES_UNHEALTHY = 404965477,
                        BACKEND_SERVICE_DOES_NOT_EXIST = 191417626,
                        CAPPED_AT_MAX_NUM_REPLICAS = 518617,
                        CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE = 328964659,
                        CUSTOM_METRIC_INVALID = 204430550,
                        MIN_EQUALS_MAX = 2821361,
                        MISSING_CUSTOM_METRIC_DATA_POINTS = 94885086,
                        MISSING_LOAD_BALANCING_DATA_POINTS = 509858898,
                        MODE_OFF = 164169907,
                        MODE_ONLY_SCALE_OUT = 3840994,
                        MODE_ONLY_UP = 100969842,
                        MORE_THAN_ONE_BACKEND_SERVICE = 151922141,
                        NOT_ENOUGH_QUOTA_AVAILABLE = 403101631,
                        REGION_RESOURCE_STOCKOUT = 528622846,
                        SCALING_TARGET_DOES_NOT_EXIST = 122636699,
                        SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX = 29275586,
                        SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN = 398287669,
                        UNKNOWN = 433141802,
                        UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION = 330845009,
                        ZONE_RESOURCE_STOCKOUT = 210200502
                    }
                }

                /** Properties of an AutoscalersScopedList. */
                interface IAutoscalersScopedList {

                    /** AutoscalersScopedList autoscalers */
                    autoscalers?: (google.cloud.compute.v1.IAutoscaler[]|null);

                    /** AutoscalersScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an AutoscalersScopedList. */
                class AutoscalersScopedList implements IAutoscalersScopedList {

                    /**
                     * Constructs a new AutoscalersScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalersScopedList);

                    /** AutoscalersScopedList autoscalers. */
                    public autoscalers: google.cloud.compute.v1.IAutoscaler[];

                    /** AutoscalersScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new AutoscalersScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalersScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalersScopedList): google.cloud.compute.v1.AutoscalersScopedList;

                    /**
                     * Encodes the specified AutoscalersScopedList message. Does not implicitly {@link google.cloud.compute.v1.AutoscalersScopedList.verify|verify} messages.
                     * @param message AutoscalersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalersScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalersScopedList.verify|verify} messages.
                     * @param message AutoscalersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalersScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalersScopedList;

                    /**
                     * Decodes an AutoscalersScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalersScopedList;

                    /**
                     * Verifies an AutoscalersScopedList message.
                     * @param message Plain 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 AutoscalersScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalersScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalersScopedList;

                    /**
                     * Creates a plain object from an AutoscalersScopedList message. Also converts values to other types if specified.
                     * @param message AutoscalersScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalersScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalersScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalersScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalingPolicy. */
                interface IAutoscalingPolicy {

                    /** AutoscalingPolicy coolDownPeriodSec */
                    coolDownPeriodSec?: (number|null);

                    /** AutoscalingPolicy cpuUtilization */
                    cpuUtilization?: (google.cloud.compute.v1.IAutoscalingPolicyCpuUtilization|null);

                    /** AutoscalingPolicy customMetricUtilizations */
                    customMetricUtilizations?: (google.cloud.compute.v1.IAutoscalingPolicyCustomMetricUtilization[]|null);

                    /** AutoscalingPolicy loadBalancingUtilization */
                    loadBalancingUtilization?: (google.cloud.compute.v1.IAutoscalingPolicyLoadBalancingUtilization|null);

                    /** AutoscalingPolicy maxNumReplicas */
                    maxNumReplicas?: (number|null);

                    /** AutoscalingPolicy minNumReplicas */
                    minNumReplicas?: (number|null);

                    /** AutoscalingPolicy mode */
                    mode?: (string|null);

                    /** AutoscalingPolicy scaleInControl */
                    scaleInControl?: (google.cloud.compute.v1.IAutoscalingPolicyScaleInControl|null);

                    /** AutoscalingPolicy scalingSchedules */
                    scalingSchedules?: ({ [k: string]: google.cloud.compute.v1.IAutoscalingPolicyScalingSchedule }|null);
                }

                /** Represents an AutoscalingPolicy. */
                class AutoscalingPolicy implements IAutoscalingPolicy {

                    /**
                     * Constructs a new AutoscalingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalingPolicy);

                    /** AutoscalingPolicy coolDownPeriodSec. */
                    public coolDownPeriodSec?: (number|null);

                    /** AutoscalingPolicy cpuUtilization. */
                    public cpuUtilization?: (google.cloud.compute.v1.IAutoscalingPolicyCpuUtilization|null);

                    /** AutoscalingPolicy customMetricUtilizations. */
                    public customMetricUtilizations: google.cloud.compute.v1.IAutoscalingPolicyCustomMetricUtilization[];

                    /** AutoscalingPolicy loadBalancingUtilization. */
                    public loadBalancingUtilization?: (google.cloud.compute.v1.IAutoscalingPolicyLoadBalancingUtilization|null);

                    /** AutoscalingPolicy maxNumReplicas. */
                    public maxNumReplicas?: (number|null);

                    /** AutoscalingPolicy minNumReplicas. */
                    public minNumReplicas?: (number|null);

                    /** AutoscalingPolicy mode. */
                    public mode?: (string|null);

                    /** AutoscalingPolicy scaleInControl. */
                    public scaleInControl?: (google.cloud.compute.v1.IAutoscalingPolicyScaleInControl|null);

                    /** AutoscalingPolicy scalingSchedules. */
                    public scalingSchedules: { [k: string]: google.cloud.compute.v1.IAutoscalingPolicyScalingSchedule };

                    /**
                     * Creates a new AutoscalingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalingPolicy): google.cloud.compute.v1.AutoscalingPolicy;

                    /**
                     * Encodes the specified AutoscalingPolicy message. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicy.verify|verify} messages.
                     * @param message AutoscalingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicy.verify|verify} messages.
                     * @param message AutoscalingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalingPolicy;

                    /**
                     * Decodes an AutoscalingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalingPolicy;

                    /**
                     * Verifies an AutoscalingPolicy message.
                     * @param message Plain 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 AutoscalingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalingPolicy;

                    /**
                     * Creates a plain object from an AutoscalingPolicy message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutoscalingPolicy {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        OFF = 78159,
                        ON = 2527,
                        ONLY_SCALE_OUT = 152713670,
                        ONLY_UP = 478095374
                    }
                }

                /** Properties of an AutoscalingPolicyCpuUtilization. */
                interface IAutoscalingPolicyCpuUtilization {

                    /** AutoscalingPolicyCpuUtilization predictiveMethod */
                    predictiveMethod?: (string|null);

                    /** AutoscalingPolicyCpuUtilization utilizationTarget */
                    utilizationTarget?: (number|null);
                }

                /** Represents an AutoscalingPolicyCpuUtilization. */
                class AutoscalingPolicyCpuUtilization implements IAutoscalingPolicyCpuUtilization {

                    /**
                     * Constructs a new AutoscalingPolicyCpuUtilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalingPolicyCpuUtilization);

                    /** AutoscalingPolicyCpuUtilization predictiveMethod. */
                    public predictiveMethod?: (string|null);

                    /** AutoscalingPolicyCpuUtilization utilizationTarget. */
                    public utilizationTarget?: (number|null);

                    /**
                     * Creates a new AutoscalingPolicyCpuUtilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyCpuUtilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalingPolicyCpuUtilization): google.cloud.compute.v1.AutoscalingPolicyCpuUtilization;

                    /**
                     * Encodes the specified AutoscalingPolicyCpuUtilization message. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyCpuUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyCpuUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalingPolicyCpuUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyCpuUtilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyCpuUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyCpuUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalingPolicyCpuUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyCpuUtilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyCpuUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalingPolicyCpuUtilization;

                    /**
                     * Decodes an AutoscalingPolicyCpuUtilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyCpuUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalingPolicyCpuUtilization;

                    /**
                     * Verifies an AutoscalingPolicyCpuUtilization message.
                     * @param message Plain 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 AutoscalingPolicyCpuUtilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyCpuUtilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalingPolicyCpuUtilization;

                    /**
                     * Creates a plain object from an AutoscalingPolicyCpuUtilization message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyCpuUtilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalingPolicyCpuUtilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyCpuUtilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyCpuUtilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutoscalingPolicyCpuUtilization {

                    /** PredictiveMethod enum. */
                    enum PredictiveMethod {
                        UNDEFINED_PREDICTIVE_METHOD = 0,
                        NONE = 2402104,
                        OPTIMIZE_AVAILABILITY = 11629437
                    }
                }

                /** Properties of an AutoscalingPolicyCustomMetricUtilization. */
                interface IAutoscalingPolicyCustomMetricUtilization {

                    /** AutoscalingPolicyCustomMetricUtilization filter */
                    filter?: (string|null);

                    /** AutoscalingPolicyCustomMetricUtilization metric */
                    metric?: (string|null);

                    /** AutoscalingPolicyCustomMetricUtilization singleInstanceAssignment */
                    singleInstanceAssignment?: (number|null);

                    /** AutoscalingPolicyCustomMetricUtilization utilizationTarget */
                    utilizationTarget?: (number|null);

                    /** AutoscalingPolicyCustomMetricUtilization utilizationTargetType */
                    utilizationTargetType?: (string|null);
                }

                /** Represents an AutoscalingPolicyCustomMetricUtilization. */
                class AutoscalingPolicyCustomMetricUtilization implements IAutoscalingPolicyCustomMetricUtilization {

                    /**
                     * Constructs a new AutoscalingPolicyCustomMetricUtilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalingPolicyCustomMetricUtilization);

                    /** AutoscalingPolicyCustomMetricUtilization filter. */
                    public filter?: (string|null);

                    /** AutoscalingPolicyCustomMetricUtilization metric. */
                    public metric?: (string|null);

                    /** AutoscalingPolicyCustomMetricUtilization singleInstanceAssignment. */
                    public singleInstanceAssignment?: (number|null);

                    /** AutoscalingPolicyCustomMetricUtilization utilizationTarget. */
                    public utilizationTarget?: (number|null);

                    /** AutoscalingPolicyCustomMetricUtilization utilizationTargetType. */
                    public utilizationTargetType?: (string|null);

                    /**
                     * Creates a new AutoscalingPolicyCustomMetricUtilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyCustomMetricUtilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalingPolicyCustomMetricUtilization): google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization;

                    /**
                     * Encodes the specified AutoscalingPolicyCustomMetricUtilization message. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyCustomMetricUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalingPolicyCustomMetricUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyCustomMetricUtilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyCustomMetricUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalingPolicyCustomMetricUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyCustomMetricUtilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyCustomMetricUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization;

                    /**
                     * Decodes an AutoscalingPolicyCustomMetricUtilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyCustomMetricUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization;

                    /**
                     * Verifies an AutoscalingPolicyCustomMetricUtilization message.
                     * @param message Plain 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 AutoscalingPolicyCustomMetricUtilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyCustomMetricUtilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization;

                    /**
                     * Creates a plain object from an AutoscalingPolicyCustomMetricUtilization message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyCustomMetricUtilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyCustomMetricUtilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyCustomMetricUtilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutoscalingPolicyCustomMetricUtilization {

                    /** UtilizationTargetType enum. */
                    enum UtilizationTargetType {
                        UNDEFINED_UTILIZATION_TARGET_TYPE = 0,
                        DELTA_PER_MINUTE = 87432861,
                        DELTA_PER_SECOND = 255180029,
                        GAUGE = 67590361
                    }
                }

                /** Properties of an AutoscalingPolicyLoadBalancingUtilization. */
                interface IAutoscalingPolicyLoadBalancingUtilization {

                    /** AutoscalingPolicyLoadBalancingUtilization utilizationTarget */
                    utilizationTarget?: (number|null);
                }

                /** Represents an AutoscalingPolicyLoadBalancingUtilization. */
                class AutoscalingPolicyLoadBalancingUtilization implements IAutoscalingPolicyLoadBalancingUtilization {

                    /**
                     * Constructs a new AutoscalingPolicyLoadBalancingUtilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalingPolicyLoadBalancingUtilization);

                    /** AutoscalingPolicyLoadBalancingUtilization utilizationTarget. */
                    public utilizationTarget?: (number|null);

                    /**
                     * Creates a new AutoscalingPolicyLoadBalancingUtilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyLoadBalancingUtilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalingPolicyLoadBalancingUtilization): google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilization;

                    /**
                     * Encodes the specified AutoscalingPolicyLoadBalancingUtilization message. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyLoadBalancingUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalingPolicyLoadBalancingUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyLoadBalancingUtilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyLoadBalancingUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalingPolicyLoadBalancingUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyLoadBalancingUtilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyLoadBalancingUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilization;

                    /**
                     * Decodes an AutoscalingPolicyLoadBalancingUtilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyLoadBalancingUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilization;

                    /**
                     * Verifies an AutoscalingPolicyLoadBalancingUtilization message.
                     * @param message Plain 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 AutoscalingPolicyLoadBalancingUtilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyLoadBalancingUtilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilization;

                    /**
                     * Creates a plain object from an AutoscalingPolicyLoadBalancingUtilization message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyLoadBalancingUtilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyLoadBalancingUtilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyLoadBalancingUtilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalingPolicyScaleInControl. */
                interface IAutoscalingPolicyScaleInControl {

                    /** AutoscalingPolicyScaleInControl maxScaledInReplicas */
                    maxScaledInReplicas?: (google.cloud.compute.v1.IFixedOrPercent|null);

                    /** AutoscalingPolicyScaleInControl timeWindowSec */
                    timeWindowSec?: (number|null);
                }

                /** Represents an AutoscalingPolicyScaleInControl. */
                class AutoscalingPolicyScaleInControl implements IAutoscalingPolicyScaleInControl {

                    /**
                     * Constructs a new AutoscalingPolicyScaleInControl.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalingPolicyScaleInControl);

                    /** AutoscalingPolicyScaleInControl maxScaledInReplicas. */
                    public maxScaledInReplicas?: (google.cloud.compute.v1.IFixedOrPercent|null);

                    /** AutoscalingPolicyScaleInControl timeWindowSec. */
                    public timeWindowSec?: (number|null);

                    /**
                     * Creates a new AutoscalingPolicyScaleInControl instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyScaleInControl instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalingPolicyScaleInControl): google.cloud.compute.v1.AutoscalingPolicyScaleInControl;

                    /**
                     * Encodes the specified AutoscalingPolicyScaleInControl message. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyScaleInControl.verify|verify} messages.
                     * @param message AutoscalingPolicyScaleInControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalingPolicyScaleInControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyScaleInControl message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyScaleInControl.verify|verify} messages.
                     * @param message AutoscalingPolicyScaleInControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalingPolicyScaleInControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyScaleInControl message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyScaleInControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalingPolicyScaleInControl;

                    /**
                     * Decodes an AutoscalingPolicyScaleInControl message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyScaleInControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalingPolicyScaleInControl;

                    /**
                     * Verifies an AutoscalingPolicyScaleInControl message.
                     * @param message Plain 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 AutoscalingPolicyScaleInControl message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyScaleInControl
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalingPolicyScaleInControl;

                    /**
                     * Creates a plain object from an AutoscalingPolicyScaleInControl message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyScaleInControl
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalingPolicyScaleInControl, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyScaleInControl to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyScaleInControl
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalingPolicyScalingSchedule. */
                interface IAutoscalingPolicyScalingSchedule {

                    /** AutoscalingPolicyScalingSchedule description */
                    description?: (string|null);

                    /** AutoscalingPolicyScalingSchedule disabled */
                    disabled?: (boolean|null);

                    /** AutoscalingPolicyScalingSchedule durationSec */
                    durationSec?: (number|null);

                    /** AutoscalingPolicyScalingSchedule minRequiredReplicas */
                    minRequiredReplicas?: (number|null);

                    /** AutoscalingPolicyScalingSchedule schedule */
                    schedule?: (string|null);

                    /** AutoscalingPolicyScalingSchedule timeZone */
                    timeZone?: (string|null);
                }

                /** Represents an AutoscalingPolicyScalingSchedule. */
                class AutoscalingPolicyScalingSchedule implements IAutoscalingPolicyScalingSchedule {

                    /**
                     * Constructs a new AutoscalingPolicyScalingSchedule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IAutoscalingPolicyScalingSchedule);

                    /** AutoscalingPolicyScalingSchedule description. */
                    public description?: (string|null);

                    /** AutoscalingPolicyScalingSchedule disabled. */
                    public disabled?: (boolean|null);

                    /** AutoscalingPolicyScalingSchedule durationSec. */
                    public durationSec?: (number|null);

                    /** AutoscalingPolicyScalingSchedule minRequiredReplicas. */
                    public minRequiredReplicas?: (number|null);

                    /** AutoscalingPolicyScalingSchedule schedule. */
                    public schedule?: (string|null);

                    /** AutoscalingPolicyScalingSchedule timeZone. */
                    public timeZone?: (string|null);

                    /**
                     * Creates a new AutoscalingPolicyScalingSchedule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyScalingSchedule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IAutoscalingPolicyScalingSchedule): google.cloud.compute.v1.AutoscalingPolicyScalingSchedule;

                    /**
                     * Encodes the specified AutoscalingPolicyScalingSchedule message. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyScalingSchedule.verify|verify} messages.
                     * @param message AutoscalingPolicyScalingSchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IAutoscalingPolicyScalingSchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyScalingSchedule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.AutoscalingPolicyScalingSchedule.verify|verify} messages.
                     * @param message AutoscalingPolicyScalingSchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IAutoscalingPolicyScalingSchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyScalingSchedule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyScalingSchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.AutoscalingPolicyScalingSchedule;

                    /**
                     * Decodes an AutoscalingPolicyScalingSchedule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyScalingSchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.AutoscalingPolicyScalingSchedule;

                    /**
                     * Verifies an AutoscalingPolicyScalingSchedule message.
                     * @param message Plain 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 AutoscalingPolicyScalingSchedule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyScalingSchedule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.AutoscalingPolicyScalingSchedule;

                    /**
                     * Creates a plain object from an AutoscalingPolicyScalingSchedule message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyScalingSchedule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.AutoscalingPolicyScalingSchedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyScalingSchedule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyScalingSchedule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Backend. */
                interface IBackend {

                    /** Backend balancingMode */
                    balancingMode?: (string|null);

                    /** Backend capacityScaler */
                    capacityScaler?: (number|null);

                    /** Backend customMetrics */
                    customMetrics?: (google.cloud.compute.v1.IBackendCustomMetric[]|null);

                    /** Backend description */
                    description?: (string|null);

                    /** Backend failover */
                    failover?: (boolean|null);

                    /** Backend group */
                    group?: (string|null);

                    /** Backend maxConnections */
                    maxConnections?: (number|null);

                    /** Backend maxConnectionsPerEndpoint */
                    maxConnectionsPerEndpoint?: (number|null);

                    /** Backend maxConnectionsPerInstance */
                    maxConnectionsPerInstance?: (number|null);

                    /** Backend maxRate */
                    maxRate?: (number|null);

                    /** Backend maxRatePerEndpoint */
                    maxRatePerEndpoint?: (number|null);

                    /** Backend maxRatePerInstance */
                    maxRatePerInstance?: (number|null);

                    /** Backend maxUtilization */
                    maxUtilization?: (number|null);

                    /** Backend orchestrationInfo */
                    orchestrationInfo?: (google.cloud.compute.v1.IBackendBackendOrchestrationInfo|null);

                    /** Backend preference */
                    preference?: (string|null);
                }

                /** Represents a Backend. */
                class Backend implements IBackend {

                    /**
                     * Constructs a new Backend.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackend);

                    /** Backend balancingMode. */
                    public balancingMode?: (string|null);

                    /** Backend capacityScaler. */
                    public capacityScaler?: (number|null);

                    /** Backend customMetrics. */
                    public customMetrics: google.cloud.compute.v1.IBackendCustomMetric[];

                    /** Backend description. */
                    public description?: (string|null);

                    /** Backend failover. */
                    public failover?: (boolean|null);

                    /** Backend group. */
                    public group?: (string|null);

                    /** Backend maxConnections. */
                    public maxConnections?: (number|null);

                    /** Backend maxConnectionsPerEndpoint. */
                    public maxConnectionsPerEndpoint?: (number|null);

                    /** Backend maxConnectionsPerInstance. */
                    public maxConnectionsPerInstance?: (number|null);

                    /** Backend maxRate. */
                    public maxRate?: (number|null);

                    /** Backend maxRatePerEndpoint. */
                    public maxRatePerEndpoint?: (number|null);

                    /** Backend maxRatePerInstance. */
                    public maxRatePerInstance?: (number|null);

                    /** Backend maxUtilization. */
                    public maxUtilization?: (number|null);

                    /** Backend orchestrationInfo. */
                    public orchestrationInfo?: (google.cloud.compute.v1.IBackendBackendOrchestrationInfo|null);

                    /** Backend preference. */
                    public preference?: (string|null);

                    /**
                     * Creates a new Backend instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Backend instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackend): google.cloud.compute.v1.Backend;

                    /**
                     * Encodes the specified Backend message. Does not implicitly {@link google.cloud.compute.v1.Backend.verify|verify} messages.
                     * @param message Backend message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackend, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Backend message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Backend.verify|verify} messages.
                     * @param message Backend message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackend, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Backend message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Backend
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Backend;

                    /**
                     * Decodes a Backend message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Backend
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Backend;

                    /**
                     * Verifies a Backend message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Backend message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Backend
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Backend;

                    /**
                     * Creates a plain object from a Backend message. Also converts values to other types if specified.
                     * @param message Backend
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Backend, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Backend to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Backend
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Backend {

                    /** BalancingMode enum. */
                    enum BalancingMode {
                        UNDEFINED_BALANCING_MODE = 0,
                        CONNECTION = 246311646,
                        CUSTOM_METRICS = 331575765,
                        RATE = 2508000,
                        UTILIZATION = 157008386
                    }

                    /** Preference enum. */
                    enum Preference {
                        UNDEFINED_PREFERENCE = 0,
                        DEFAULT = 115302945,
                        PREFERENCE_UNSPECIFIED = 496219571,
                        PREFERRED = 418847841
                    }
                }

                /** Properties of a BackendBackendOrchestrationInfo. */
                interface IBackendBackendOrchestrationInfo {

                    /** BackendBackendOrchestrationInfo resourceUri */
                    resourceUri?: (string|null);
                }

                /** Represents a BackendBackendOrchestrationInfo. */
                class BackendBackendOrchestrationInfo implements IBackendBackendOrchestrationInfo {

                    /**
                     * Constructs a new BackendBackendOrchestrationInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBackendOrchestrationInfo);

                    /** BackendBackendOrchestrationInfo resourceUri. */
                    public resourceUri?: (string|null);

                    /**
                     * Creates a new BackendBackendOrchestrationInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBackendOrchestrationInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBackendOrchestrationInfo): google.cloud.compute.v1.BackendBackendOrchestrationInfo;

                    /**
                     * Encodes the specified BackendBackendOrchestrationInfo message. Does not implicitly {@link google.cloud.compute.v1.BackendBackendOrchestrationInfo.verify|verify} messages.
                     * @param message BackendBackendOrchestrationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBackendOrchestrationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBackendOrchestrationInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBackendOrchestrationInfo.verify|verify} messages.
                     * @param message BackendBackendOrchestrationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBackendOrchestrationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBackendOrchestrationInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBackendOrchestrationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBackendOrchestrationInfo;

                    /**
                     * Decodes a BackendBackendOrchestrationInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBackendOrchestrationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBackendOrchestrationInfo;

                    /**
                     * Verifies a BackendBackendOrchestrationInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBackendOrchestrationInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBackendOrchestrationInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBackendOrchestrationInfo;

                    /**
                     * Creates a plain object from a BackendBackendOrchestrationInfo message. Also converts values to other types if specified.
                     * @param message BackendBackendOrchestrationInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBackendOrchestrationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBackendOrchestrationInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBackendOrchestrationInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucket. */
                interface IBackendBucket {

                    /** BackendBucket bucketName */
                    bucketName?: (string|null);

                    /** BackendBucket cdnPolicy */
                    cdnPolicy?: (google.cloud.compute.v1.IBackendBucketCdnPolicy|null);

                    /** BackendBucket compressionMode */
                    compressionMode?: (string|null);

                    /** BackendBucket creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** BackendBucket customResponseHeaders */
                    customResponseHeaders?: (string[]|null);

                    /** BackendBucket description */
                    description?: (string|null);

                    /** BackendBucket edgeSecurityPolicy */
                    edgeSecurityPolicy?: (string|null);

                    /** BackendBucket enableCdn */
                    enableCdn?: (boolean|null);

                    /** BackendBucket id */
                    id?: (number|Long|string|null);

                    /** BackendBucket kind */
                    kind?: (string|null);

                    /** BackendBucket loadBalancingScheme */
                    loadBalancingScheme?: (string|null);

                    /** BackendBucket name */
                    name?: (string|null);

                    /** BackendBucket params */
                    params?: (google.cloud.compute.v1.IBackendBucketParams|null);

                    /** BackendBucket selfLink */
                    selfLink?: (string|null);

                    /** BackendBucket usedBy */
                    usedBy?: (google.cloud.compute.v1.IBackendBucketUsedBy[]|null);
                }

                /** Represents a BackendBucket. */
                class BackendBucket implements IBackendBucket {

                    /**
                     * Constructs a new BackendBucket.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBucket);

                    /** BackendBucket bucketName. */
                    public bucketName?: (string|null);

                    /** BackendBucket cdnPolicy. */
                    public cdnPolicy?: (google.cloud.compute.v1.IBackendBucketCdnPolicy|null);

                    /** BackendBucket compressionMode. */
                    public compressionMode?: (string|null);

                    /** BackendBucket creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** BackendBucket customResponseHeaders. */
                    public customResponseHeaders: string[];

                    /** BackendBucket description. */
                    public description?: (string|null);

                    /** BackendBucket edgeSecurityPolicy. */
                    public edgeSecurityPolicy?: (string|null);

                    /** BackendBucket enableCdn. */
                    public enableCdn?: (boolean|null);

                    /** BackendBucket id. */
                    public id?: (number|Long|string|null);

                    /** BackendBucket kind. */
                    public kind?: (string|null);

                    /** BackendBucket loadBalancingScheme. */
                    public loadBalancingScheme?: (string|null);

                    /** BackendBucket name. */
                    public name?: (string|null);

                    /** BackendBucket params. */
                    public params?: (google.cloud.compute.v1.IBackendBucketParams|null);

                    /** BackendBucket selfLink. */
                    public selfLink?: (string|null);

                    /** BackendBucket usedBy. */
                    public usedBy: google.cloud.compute.v1.IBackendBucketUsedBy[];

                    /**
                     * Creates a new BackendBucket instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucket instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBucket): google.cloud.compute.v1.BackendBucket;

                    /**
                     * Encodes the specified BackendBucket message. Does not implicitly {@link google.cloud.compute.v1.BackendBucket.verify|verify} messages.
                     * @param message BackendBucket message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucket message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBucket.verify|verify} messages.
                     * @param message BackendBucket message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucket message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucket
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBucket;

                    /**
                     * Decodes a BackendBucket message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucket
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBucket;

                    /**
                     * Verifies a BackendBucket message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucket message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucket
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBucket;

                    /**
                     * Creates a plain object from a BackendBucket message. Also converts values to other types if specified.
                     * @param message BackendBucket
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBucket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucket to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucket
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendBucket {

                    /** CompressionMode enum. */
                    enum CompressionMode {
                        UNDEFINED_COMPRESSION_MODE = 0,
                        AUTOMATIC = 165298699,
                        DISABLED = 516696700
                    }

                    /** LoadBalancingScheme enum. */
                    enum LoadBalancingScheme {
                        UNDEFINED_LOAD_BALANCING_SCHEME = 0,
                        INTERNAL_MANAGED = 37350397
                    }
                }

                /** Properties of a BackendBucketCdnPolicy. */
                interface IBackendBucketCdnPolicy {

                    /** BackendBucketCdnPolicy bypassCacheOnRequestHeaders */
                    bypassCacheOnRequestHeaders?: (google.cloud.compute.v1.IBackendBucketCdnPolicyBypassCacheOnRequestHeader[]|null);

                    /** BackendBucketCdnPolicy cacheKeyPolicy */
                    cacheKeyPolicy?: (google.cloud.compute.v1.IBackendBucketCdnPolicyCacheKeyPolicy|null);

                    /** BackendBucketCdnPolicy cacheMode */
                    cacheMode?: (string|null);

                    /** BackendBucketCdnPolicy clientTtl */
                    clientTtl?: (number|null);

                    /** BackendBucketCdnPolicy defaultTtl */
                    defaultTtl?: (number|null);

                    /** BackendBucketCdnPolicy maxTtl */
                    maxTtl?: (number|null);

                    /** BackendBucketCdnPolicy negativeCaching */
                    negativeCaching?: (boolean|null);

                    /** BackendBucketCdnPolicy negativeCachingPolicy */
                    negativeCachingPolicy?: (google.cloud.compute.v1.IBackendBucketCdnPolicyNegativeCachingPolicy[]|null);

                    /** BackendBucketCdnPolicy requestCoalescing */
                    requestCoalescing?: (boolean|null);

                    /** BackendBucketCdnPolicy serveWhileStale */
                    serveWhileStale?: (number|null);

                    /** BackendBucketCdnPolicy signedUrlCacheMaxAgeSec */
                    signedUrlCacheMaxAgeSec?: (number|Long|string|null);

                    /** BackendBucketCdnPolicy signedUrlKeyNames */
                    signedUrlKeyNames?: (string[]|null);
                }

                /** Represents a BackendBucketCdnPolicy. */
                class BackendBucketCdnPolicy implements IBackendBucketCdnPolicy {

                    /**
                     * Constructs a new BackendBucketCdnPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBucketCdnPolicy);

                    /** BackendBucketCdnPolicy bypassCacheOnRequestHeaders. */
                    public bypassCacheOnRequestHeaders: google.cloud.compute.v1.IBackendBucketCdnPolicyBypassCacheOnRequestHeader[];

                    /** BackendBucketCdnPolicy cacheKeyPolicy. */
                    public cacheKeyPolicy?: (google.cloud.compute.v1.IBackendBucketCdnPolicyCacheKeyPolicy|null);

                    /** BackendBucketCdnPolicy cacheMode. */
                    public cacheMode?: (string|null);

                    /** BackendBucketCdnPolicy clientTtl. */
                    public clientTtl?: (number|null);

                    /** BackendBucketCdnPolicy defaultTtl. */
                    public defaultTtl?: (number|null);

                    /** BackendBucketCdnPolicy maxTtl. */
                    public maxTtl?: (number|null);

                    /** BackendBucketCdnPolicy negativeCaching. */
                    public negativeCaching?: (boolean|null);

                    /** BackendBucketCdnPolicy negativeCachingPolicy. */
                    public negativeCachingPolicy: google.cloud.compute.v1.IBackendBucketCdnPolicyNegativeCachingPolicy[];

                    /** BackendBucketCdnPolicy requestCoalescing. */
                    public requestCoalescing?: (boolean|null);

                    /** BackendBucketCdnPolicy serveWhileStale. */
                    public serveWhileStale?: (number|null);

                    /** BackendBucketCdnPolicy signedUrlCacheMaxAgeSec. */
                    public signedUrlCacheMaxAgeSec?: (number|Long|string|null);

                    /** BackendBucketCdnPolicy signedUrlKeyNames. */
                    public signedUrlKeyNames: string[];

                    /**
                     * Creates a new BackendBucketCdnPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketCdnPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBucketCdnPolicy): google.cloud.compute.v1.BackendBucketCdnPolicy;

                    /**
                     * Encodes the specified BackendBucketCdnPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendBucketCdnPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBucketCdnPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketCdnPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBucketCdnPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBucketCdnPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketCdnPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketCdnPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBucketCdnPolicy;

                    /**
                     * Decodes a BackendBucketCdnPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketCdnPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBucketCdnPolicy;

                    /**
                     * Verifies a BackendBucketCdnPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketCdnPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketCdnPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBucketCdnPolicy;

                    /**
                     * Creates a plain object from a BackendBucketCdnPolicy message. Also converts values to other types if specified.
                     * @param message BackendBucketCdnPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBucketCdnPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketCdnPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketCdnPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendBucketCdnPolicy {

                    /** CacheMode enum. */
                    enum CacheMode {
                        UNDEFINED_CACHE_MODE = 0,
                        CACHE_ALL_STATIC = 355027945,
                        FORCE_CACHE_ALL = 486026928,
                        INVALID_CACHE_MODE = 381295560,
                        USE_ORIGIN_HEADERS = 55380261
                    }
                }

                /** Properties of a BackendBucketCdnPolicyBypassCacheOnRequestHeader. */
                interface IBackendBucketCdnPolicyBypassCacheOnRequestHeader {

                    /** BackendBucketCdnPolicyBypassCacheOnRequestHeader headerName */
                    headerName?: (string|null);
                }

                /** Represents a BackendBucketCdnPolicyBypassCacheOnRequestHeader. */
                class BackendBucketCdnPolicyBypassCacheOnRequestHeader implements IBackendBucketCdnPolicyBypassCacheOnRequestHeader {

                    /**
                     * Constructs a new BackendBucketCdnPolicyBypassCacheOnRequestHeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBucketCdnPolicyBypassCacheOnRequestHeader);

                    /** BackendBucketCdnPolicyBypassCacheOnRequestHeader headerName. */
                    public headerName?: (string|null);

                    /**
                     * Creates a new BackendBucketCdnPolicyBypassCacheOnRequestHeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketCdnPolicyBypassCacheOnRequestHeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBucketCdnPolicyBypassCacheOnRequestHeader): google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyBypassCacheOnRequestHeader message. Does not implicitly {@link google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyBypassCacheOnRequestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBucketCdnPolicyBypassCacheOnRequestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyBypassCacheOnRequestHeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyBypassCacheOnRequestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBucketCdnPolicyBypassCacheOnRequestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketCdnPolicyBypassCacheOnRequestHeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Decodes a BackendBucketCdnPolicyBypassCacheOnRequestHeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Verifies a BackendBucketCdnPolicyBypassCacheOnRequestHeader message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketCdnPolicyBypassCacheOnRequestHeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Creates a plain object from a BackendBucketCdnPolicyBypassCacheOnRequestHeader message. Also converts values to other types if specified.
                     * @param message BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketCdnPolicyBypassCacheOnRequestHeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketCdnPolicyCacheKeyPolicy. */
                interface IBackendBucketCdnPolicyCacheKeyPolicy {

                    /** BackendBucketCdnPolicyCacheKeyPolicy includeHttpHeaders */
                    includeHttpHeaders?: (string[]|null);

                    /** BackendBucketCdnPolicyCacheKeyPolicy queryStringWhitelist */
                    queryStringWhitelist?: (string[]|null);
                }

                /** Represents a BackendBucketCdnPolicyCacheKeyPolicy. */
                class BackendBucketCdnPolicyCacheKeyPolicy implements IBackendBucketCdnPolicyCacheKeyPolicy {

                    /**
                     * Constructs a new BackendBucketCdnPolicyCacheKeyPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBucketCdnPolicyCacheKeyPolicy);

                    /** BackendBucketCdnPolicyCacheKeyPolicy includeHttpHeaders. */
                    public includeHttpHeaders: string[];

                    /** BackendBucketCdnPolicyCacheKeyPolicy queryStringWhitelist. */
                    public queryStringWhitelist: string[];

                    /**
                     * Creates a new BackendBucketCdnPolicyCacheKeyPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketCdnPolicyCacheKeyPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBucketCdnPolicyCacheKeyPolicy): google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicy;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyCacheKeyPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyCacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBucketCdnPolicyCacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyCacheKeyPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyCacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBucketCdnPolicyCacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketCdnPolicyCacheKeyPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketCdnPolicyCacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicy;

                    /**
                     * Decodes a BackendBucketCdnPolicyCacheKeyPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketCdnPolicyCacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicy;

                    /**
                     * Verifies a BackendBucketCdnPolicyCacheKeyPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketCdnPolicyCacheKeyPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketCdnPolicyCacheKeyPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicy;

                    /**
                     * Creates a plain object from a BackendBucketCdnPolicyCacheKeyPolicy message. Also converts values to other types if specified.
                     * @param message BackendBucketCdnPolicyCacheKeyPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketCdnPolicyCacheKeyPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketCdnPolicyCacheKeyPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketCdnPolicyNegativeCachingPolicy. */
                interface IBackendBucketCdnPolicyNegativeCachingPolicy {

                    /** BackendBucketCdnPolicyNegativeCachingPolicy code */
                    code?: (number|null);

                    /** BackendBucketCdnPolicyNegativeCachingPolicy ttl */
                    ttl?: (number|null);
                }

                /** Represents a BackendBucketCdnPolicyNegativeCachingPolicy. */
                class BackendBucketCdnPolicyNegativeCachingPolicy implements IBackendBucketCdnPolicyNegativeCachingPolicy {

                    /**
                     * Constructs a new BackendBucketCdnPolicyNegativeCachingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBucketCdnPolicyNegativeCachingPolicy);

                    /** BackendBucketCdnPolicyNegativeCachingPolicy code. */
                    public code?: (number|null);

                    /** BackendBucketCdnPolicyNegativeCachingPolicy ttl. */
                    public ttl?: (number|null);

                    /**
                     * Creates a new BackendBucketCdnPolicyNegativeCachingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketCdnPolicyNegativeCachingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBucketCdnPolicyNegativeCachingPolicy): google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyNegativeCachingPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBucketCdnPolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyNegativeCachingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBucketCdnPolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketCdnPolicyNegativeCachingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketCdnPolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy;

                    /**
                     * Decodes a BackendBucketCdnPolicyNegativeCachingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketCdnPolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy;

                    /**
                     * Verifies a BackendBucketCdnPolicyNegativeCachingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketCdnPolicyNegativeCachingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketCdnPolicyNegativeCachingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy;

                    /**
                     * Creates a plain object from a BackendBucketCdnPolicyNegativeCachingPolicy message. Also converts values to other types if specified.
                     * @param message BackendBucketCdnPolicyNegativeCachingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketCdnPolicyNegativeCachingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketCdnPolicyNegativeCachingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketList. */
                interface IBackendBucketList {

                    /** BackendBucketList id */
                    id?: (string|null);

                    /** BackendBucketList items */
                    items?: (google.cloud.compute.v1.IBackendBucket[]|null);

                    /** BackendBucketList kind */
                    kind?: (string|null);

                    /** BackendBucketList nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendBucketList selfLink */
                    selfLink?: (string|null);

                    /** BackendBucketList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a BackendBucketList. */
                class BackendBucketList implements IBackendBucketList {

                    /**
                     * Constructs a new BackendBucketList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBucketList);

                    /** BackendBucketList id. */
                    public id?: (string|null);

                    /** BackendBucketList items. */
                    public items: google.cloud.compute.v1.IBackendBucket[];

                    /** BackendBucketList kind. */
                    public kind?: (string|null);

                    /** BackendBucketList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendBucketList selfLink. */
                    public selfLink?: (string|null);

                    /** BackendBucketList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new BackendBucketList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBucketList): google.cloud.compute.v1.BackendBucketList;

                    /**
                     * Encodes the specified BackendBucketList message. Does not implicitly {@link google.cloud.compute.v1.BackendBucketList.verify|verify} messages.
                     * @param message BackendBucketList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBucketList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBucketList.verify|verify} messages.
                     * @param message BackendBucketList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBucketList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBucketList;

                    /**
                     * Decodes a BackendBucketList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBucketList;

                    /**
                     * Verifies a BackendBucketList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBucketList;

                    /**
                     * Creates a plain object from a BackendBucketList message. Also converts values to other types if specified.
                     * @param message BackendBucketList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBucketList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketParams. */
                interface IBackendBucketParams {

                    /** BackendBucketParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a BackendBucketParams. */
                class BackendBucketParams implements IBackendBucketParams {

                    /**
                     * Constructs a new BackendBucketParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBucketParams);

                    /** BackendBucketParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new BackendBucketParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBucketParams): google.cloud.compute.v1.BackendBucketParams;

                    /**
                     * Encodes the specified BackendBucketParams message. Does not implicitly {@link google.cloud.compute.v1.BackendBucketParams.verify|verify} messages.
                     * @param message BackendBucketParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBucketParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBucketParams.verify|verify} messages.
                     * @param message BackendBucketParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBucketParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBucketParams;

                    /**
                     * Decodes a BackendBucketParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBucketParams;

                    /**
                     * Verifies a BackendBucketParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBucketParams;

                    /**
                     * Creates a plain object from a BackendBucketParams message. Also converts values to other types if specified.
                     * @param message BackendBucketParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBucketParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketUsedBy. */
                interface IBackendBucketUsedBy {

                    /** BackendBucketUsedBy reference */
                    reference?: (string|null);
                }

                /** Represents a BackendBucketUsedBy. */
                class BackendBucketUsedBy implements IBackendBucketUsedBy {

                    /**
                     * Constructs a new BackendBucketUsedBy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendBucketUsedBy);

                    /** BackendBucketUsedBy reference. */
                    public reference?: (string|null);

                    /**
                     * Creates a new BackendBucketUsedBy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketUsedBy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendBucketUsedBy): google.cloud.compute.v1.BackendBucketUsedBy;

                    /**
                     * Encodes the specified BackendBucketUsedBy message. Does not implicitly {@link google.cloud.compute.v1.BackendBucketUsedBy.verify|verify} messages.
                     * @param message BackendBucketUsedBy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendBucketUsedBy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketUsedBy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendBucketUsedBy.verify|verify} messages.
                     * @param message BackendBucketUsedBy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendBucketUsedBy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketUsedBy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketUsedBy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendBucketUsedBy;

                    /**
                     * Decodes a BackendBucketUsedBy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketUsedBy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendBucketUsedBy;

                    /**
                     * Verifies a BackendBucketUsedBy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketUsedBy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketUsedBy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendBucketUsedBy;

                    /**
                     * Creates a plain object from a BackendBucketUsedBy message. Also converts values to other types if specified.
                     * @param message BackendBucketUsedBy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendBucketUsedBy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketUsedBy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketUsedBy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendCustomMetric. */
                interface IBackendCustomMetric {

                    /** BackendCustomMetric dryRun */
                    dryRun?: (boolean|null);

                    /** BackendCustomMetric maxUtilization */
                    maxUtilization?: (number|null);

                    /** BackendCustomMetric name */
                    name?: (string|null);
                }

                /** Represents a BackendCustomMetric. */
                class BackendCustomMetric implements IBackendCustomMetric {

                    /**
                     * Constructs a new BackendCustomMetric.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendCustomMetric);

                    /** BackendCustomMetric dryRun. */
                    public dryRun?: (boolean|null);

                    /** BackendCustomMetric maxUtilization. */
                    public maxUtilization?: (number|null);

                    /** BackendCustomMetric name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BackendCustomMetric instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendCustomMetric instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendCustomMetric): google.cloud.compute.v1.BackendCustomMetric;

                    /**
                     * Encodes the specified BackendCustomMetric message. Does not implicitly {@link google.cloud.compute.v1.BackendCustomMetric.verify|verify} messages.
                     * @param message BackendCustomMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendCustomMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendCustomMetric message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendCustomMetric.verify|verify} messages.
                     * @param message BackendCustomMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendCustomMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendCustomMetric message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendCustomMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendCustomMetric;

                    /**
                     * Decodes a BackendCustomMetric message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendCustomMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendCustomMetric;

                    /**
                     * Verifies a BackendCustomMetric message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendCustomMetric message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendCustomMetric
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendCustomMetric;

                    /**
                     * Creates a plain object from a BackendCustomMetric message. Also converts values to other types if specified.
                     * @param message BackendCustomMetric
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendCustomMetric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendCustomMetric to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendCustomMetric
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendService. */
                interface IBackendService {

                    /** BackendService affinityCookieTtlSec */
                    affinityCookieTtlSec?: (number|null);

                    /** BackendService backends */
                    backends?: (google.cloud.compute.v1.IBackend[]|null);

                    /** BackendService cdnPolicy */
                    cdnPolicy?: (google.cloud.compute.v1.IBackendServiceCdnPolicy|null);

                    /** BackendService circuitBreakers */
                    circuitBreakers?: (google.cloud.compute.v1.ICircuitBreakers|null);

                    /** BackendService compressionMode */
                    compressionMode?: (string|null);

                    /** BackendService connectionDraining */
                    connectionDraining?: (google.cloud.compute.v1.IConnectionDraining|null);

                    /** BackendService connectionTrackingPolicy */
                    connectionTrackingPolicy?: (google.cloud.compute.v1.IBackendServiceConnectionTrackingPolicy|null);

                    /** BackendService consistentHash */
                    consistentHash?: (google.cloud.compute.v1.IConsistentHashLoadBalancerSettings|null);

                    /** BackendService creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** BackendService customMetrics */
                    customMetrics?: (google.cloud.compute.v1.IBackendServiceCustomMetric[]|null);

                    /** BackendService customRequestHeaders */
                    customRequestHeaders?: (string[]|null);

                    /** BackendService customResponseHeaders */
                    customResponseHeaders?: (string[]|null);

                    /** BackendService description */
                    description?: (string|null);

                    /** BackendService edgeSecurityPolicy */
                    edgeSecurityPolicy?: (string|null);

                    /** BackendService enableCDN */
                    enableCDN?: (boolean|null);

                    /** BackendService externalManagedMigrationState */
                    externalManagedMigrationState?: (string|null);

                    /** BackendService externalManagedMigrationTestingPercentage */
                    externalManagedMigrationTestingPercentage?: (number|null);

                    /** BackendService failoverPolicy */
                    failoverPolicy?: (google.cloud.compute.v1.IBackendServiceFailoverPolicy|null);

                    /** BackendService fingerprint */
                    fingerprint?: (string|null);

                    /** BackendService haPolicy */
                    haPolicy?: (google.cloud.compute.v1.IBackendServiceHAPolicy|null);

                    /** BackendService healthChecks */
                    healthChecks?: (string[]|null);

                    /** BackendService iap */
                    iap?: (google.cloud.compute.v1.IBackendServiceIAP|null);

                    /** BackendService id */
                    id?: (number|Long|string|null);

                    /** BackendService ipAddressSelectionPolicy */
                    ipAddressSelectionPolicy?: (string|null);

                    /** BackendService kind */
                    kind?: (string|null);

                    /** BackendService loadBalancingScheme */
                    loadBalancingScheme?: (string|null);

                    /** BackendService localityLbPolicies */
                    localityLbPolicies?: (google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfig[]|null);

                    /** BackendService localityLbPolicy */
                    localityLbPolicy?: (string|null);

                    /** BackendService logConfig */
                    logConfig?: (google.cloud.compute.v1.IBackendServiceLogConfig|null);

                    /** BackendService maxStreamDuration */
                    maxStreamDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** BackendService metadatas */
                    metadatas?: ({ [k: string]: string }|null);

                    /** BackendService name */
                    name?: (string|null);

                    /** BackendService network */
                    network?: (string|null);

                    /** BackendService networkPassThroughLbTrafficPolicy */
                    networkPassThroughLbTrafficPolicy?: (google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicy|null);

                    /** BackendService orchestrationInfo */
                    orchestrationInfo?: (google.cloud.compute.v1.IBackendServiceOrchestrationInfo|null);

                    /** BackendService outlierDetection */
                    outlierDetection?: (google.cloud.compute.v1.IOutlierDetection|null);

                    /** BackendService params */
                    params?: (google.cloud.compute.v1.IBackendServiceParams|null);

                    /** BackendService port */
                    port?: (number|null);

                    /** BackendService portName */
                    portName?: (string|null);

                    /** BackendService protocol */
                    protocol?: (string|null);

                    /** BackendService region */
                    region?: (string|null);

                    /** BackendService securityPolicy */
                    securityPolicy?: (string|null);

                    /** BackendService securitySettings */
                    securitySettings?: (google.cloud.compute.v1.ISecuritySettings|null);

                    /** BackendService selfLink */
                    selfLink?: (string|null);

                    /** BackendService serviceBindings */
                    serviceBindings?: (string[]|null);

                    /** BackendService serviceLbPolicy */
                    serviceLbPolicy?: (string|null);

                    /** BackendService sessionAffinity */
                    sessionAffinity?: (string|null);

                    /** BackendService strongSessionAffinityCookie */
                    strongSessionAffinityCookie?: (google.cloud.compute.v1.IBackendServiceHttpCookie|null);

                    /** BackendService subsetting */
                    subsetting?: (google.cloud.compute.v1.ISubsetting|null);

                    /** BackendService timeoutSec */
                    timeoutSec?: (number|null);

                    /** BackendService tlsSettings */
                    tlsSettings?: (google.cloud.compute.v1.IBackendServiceTlsSettings|null);

                    /** BackendService usedBy */
                    usedBy?: (google.cloud.compute.v1.IBackendServiceUsedBy[]|null);
                }

                /** Represents a BackendService. */
                class BackendService implements IBackendService {

                    /**
                     * Constructs a new BackendService.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendService);

                    /** BackendService affinityCookieTtlSec. */
                    public affinityCookieTtlSec?: (number|null);

                    /** BackendService backends. */
                    public backends: google.cloud.compute.v1.IBackend[];

                    /** BackendService cdnPolicy. */
                    public cdnPolicy?: (google.cloud.compute.v1.IBackendServiceCdnPolicy|null);

                    /** BackendService circuitBreakers. */
                    public circuitBreakers?: (google.cloud.compute.v1.ICircuitBreakers|null);

                    /** BackendService compressionMode. */
                    public compressionMode?: (string|null);

                    /** BackendService connectionDraining. */
                    public connectionDraining?: (google.cloud.compute.v1.IConnectionDraining|null);

                    /** BackendService connectionTrackingPolicy. */
                    public connectionTrackingPolicy?: (google.cloud.compute.v1.IBackendServiceConnectionTrackingPolicy|null);

                    /** BackendService consistentHash. */
                    public consistentHash?: (google.cloud.compute.v1.IConsistentHashLoadBalancerSettings|null);

                    /** BackendService creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** BackendService customMetrics. */
                    public customMetrics: google.cloud.compute.v1.IBackendServiceCustomMetric[];

                    /** BackendService customRequestHeaders. */
                    public customRequestHeaders: string[];

                    /** BackendService customResponseHeaders. */
                    public customResponseHeaders: string[];

                    /** BackendService description. */
                    public description?: (string|null);

                    /** BackendService edgeSecurityPolicy. */
                    public edgeSecurityPolicy?: (string|null);

                    /** BackendService enableCDN. */
                    public enableCDN?: (boolean|null);

                    /** BackendService externalManagedMigrationState. */
                    public externalManagedMigrationState?: (string|null);

                    /** BackendService externalManagedMigrationTestingPercentage. */
                    public externalManagedMigrationTestingPercentage?: (number|null);

                    /** BackendService failoverPolicy. */
                    public failoverPolicy?: (google.cloud.compute.v1.IBackendServiceFailoverPolicy|null);

                    /** BackendService fingerprint. */
                    public fingerprint?: (string|null);

                    /** BackendService haPolicy. */
                    public haPolicy?: (google.cloud.compute.v1.IBackendServiceHAPolicy|null);

                    /** BackendService healthChecks. */
                    public healthChecks: string[];

                    /** BackendService iap. */
                    public iap?: (google.cloud.compute.v1.IBackendServiceIAP|null);

                    /** BackendService id. */
                    public id?: (number|Long|string|null);

                    /** BackendService ipAddressSelectionPolicy. */
                    public ipAddressSelectionPolicy?: (string|null);

                    /** BackendService kind. */
                    public kind?: (string|null);

                    /** BackendService loadBalancingScheme. */
                    public loadBalancingScheme?: (string|null);

                    /** BackendService localityLbPolicies. */
                    public localityLbPolicies: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfig[];

                    /** BackendService localityLbPolicy. */
                    public localityLbPolicy?: (string|null);

                    /** BackendService logConfig. */
                    public logConfig?: (google.cloud.compute.v1.IBackendServiceLogConfig|null);

                    /** BackendService maxStreamDuration. */
                    public maxStreamDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** BackendService metadatas. */
                    public metadatas: { [k: string]: string };

                    /** BackendService name. */
                    public name?: (string|null);

                    /** BackendService network. */
                    public network?: (string|null);

                    /** BackendService networkPassThroughLbTrafficPolicy. */
                    public networkPassThroughLbTrafficPolicy?: (google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicy|null);

                    /** BackendService orchestrationInfo. */
                    public orchestrationInfo?: (google.cloud.compute.v1.IBackendServiceOrchestrationInfo|null);

                    /** BackendService outlierDetection. */
                    public outlierDetection?: (google.cloud.compute.v1.IOutlierDetection|null);

                    /** BackendService params. */
                    public params?: (google.cloud.compute.v1.IBackendServiceParams|null);

                    /** BackendService port. */
                    public port?: (number|null);

                    /** BackendService portName. */
                    public portName?: (string|null);

                    /** BackendService protocol. */
                    public protocol?: (string|null);

                    /** BackendService region. */
                    public region?: (string|null);

                    /** BackendService securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** BackendService securitySettings. */
                    public securitySettings?: (google.cloud.compute.v1.ISecuritySettings|null);

                    /** BackendService selfLink. */
                    public selfLink?: (string|null);

                    /** BackendService serviceBindings. */
                    public serviceBindings: string[];

                    /** BackendService serviceLbPolicy. */
                    public serviceLbPolicy?: (string|null);

                    /** BackendService sessionAffinity. */
                    public sessionAffinity?: (string|null);

                    /** BackendService strongSessionAffinityCookie. */
                    public strongSessionAffinityCookie?: (google.cloud.compute.v1.IBackendServiceHttpCookie|null);

                    /** BackendService subsetting. */
                    public subsetting?: (google.cloud.compute.v1.ISubsetting|null);

                    /** BackendService timeoutSec. */
                    public timeoutSec?: (number|null);

                    /** BackendService tlsSettings. */
                    public tlsSettings?: (google.cloud.compute.v1.IBackendServiceTlsSettings|null);

                    /** BackendService usedBy. */
                    public usedBy: google.cloud.compute.v1.IBackendServiceUsedBy[];

                    /**
                     * Creates a new BackendService instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendService instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendService): google.cloud.compute.v1.BackendService;

                    /**
                     * Encodes the specified BackendService message. Does not implicitly {@link google.cloud.compute.v1.BackendService.verify|verify} messages.
                     * @param message BackendService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendService message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendService.verify|verify} messages.
                     * @param message BackendService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendService message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendService;

                    /**
                     * Decodes a BackendService message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendService;

                    /**
                     * Verifies a BackendService message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendService message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendService
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendService;

                    /**
                     * Creates a plain object from a BackendService message. Also converts values to other types if specified.
                     * @param message BackendService
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendService to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendService
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendService {

                    /** CompressionMode enum. */
                    enum CompressionMode {
                        UNDEFINED_COMPRESSION_MODE = 0,
                        AUTOMATIC = 165298699,
                        DISABLED = 516696700
                    }

                    /** ExternalManagedMigrationState enum. */
                    enum ExternalManagedMigrationState {
                        UNDEFINED_EXTERNAL_MANAGED_MIGRATION_STATE = 0,
                        PREPARE = 399612135,
                        TEST_ALL_TRAFFIC = 79728882,
                        TEST_BY_PERCENTAGE = 513738389
                    }

                    /** IpAddressSelectionPolicy enum. */
                    enum IpAddressSelectionPolicy {
                        UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100,
                        IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36210144,
                        PREFER_IPV6 = 408601302
                    }

                    /** LoadBalancingScheme enum. */
                    enum LoadBalancingScheme {
                        UNDEFINED_LOAD_BALANCING_SCHEME = 0,
                        EXTERNAL = 35607499,
                        EXTERNAL_MANAGED = 512006923,
                        INTERNAL = 279295677,
                        INTERNAL_MANAGED = 37350397,
                        INTERNAL_SELF_MANAGED = 236211150,
                        INVALID_LOAD_BALANCING_SCHEME = 275352060
                    }

                    /** LocalityLbPolicy enum. */
                    enum LocalityLbPolicy {
                        UNDEFINED_LOCALITY_LB_POLICY = 0,
                        INVALID_LB_POLICY = 323318707,
                        LEAST_REQUEST = 46604921,
                        MAGLEV = 119180266,
                        ORIGINAL_DESTINATION = 166297216,
                        RANDOM = 262527171,
                        RING_HASH = 432795069,
                        ROUND_ROBIN = 153895801,
                        WEIGHTED_GCP_RENDEZVOUS = 82501640,
                        WEIGHTED_MAGLEV = 254930962,
                        WEIGHTED_ROUND_ROBIN = 5584977
                    }

                    /** Protocol enum. */
                    enum Protocol {
                        UNDEFINED_PROTOCOL = 0,
                        GRPC = 2196510,
                        H2C = 70809,
                        HTTP = 2228360,
                        HTTP2 = 69079210,
                        HTTPS = 69079243,
                        SSL = 82412,
                        TCP = 82881,
                        UDP = 83873,
                        UNSPECIFIED = 526786327
                    }

                    /** SessionAffinity enum. */
                    enum SessionAffinity {
                        UNDEFINED_SESSION_AFFINITY = 0,
                        CLIENT_IP = 345665051,
                        CLIENT_IP_NO_DESTINATION = 106122516,
                        CLIENT_IP_PORT_PROTO = 221722926,
                        CLIENT_IP_PROTO = 25322148,
                        GENERATED_COOKIE = 370321204,
                        HEADER_FIELD = 200737960,
                        HTTP_COOKIE = 494981627,
                        NONE = 2402104,
                        STRONG_COOKIE_AFFINITY = 438628091
                    }
                }

                /** Properties of a BackendServiceAggregatedList. */
                interface IBackendServiceAggregatedList {

                    /** BackendServiceAggregatedList id */
                    id?: (string|null);

                    /** BackendServiceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IBackendServicesScopedList }|null);

                    /** BackendServiceAggregatedList kind */
                    kind?: (string|null);

                    /** BackendServiceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendServiceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** BackendServiceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** BackendServiceAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a BackendServiceAggregatedList. */
                class BackendServiceAggregatedList implements IBackendServiceAggregatedList {

                    /**
                     * Constructs a new BackendServiceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceAggregatedList);

                    /** BackendServiceAggregatedList id. */
                    public id?: (string|null);

                    /** BackendServiceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IBackendServicesScopedList };

                    /** BackendServiceAggregatedList kind. */
                    public kind?: (string|null);

                    /** BackendServiceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendServiceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** BackendServiceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** BackendServiceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new BackendServiceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceAggregatedList): google.cloud.compute.v1.BackendServiceAggregatedList;

                    /**
                     * Encodes the specified BackendServiceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceAggregatedList.verify|verify} messages.
                     * @param message BackendServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceAggregatedList.verify|verify} messages.
                     * @param message BackendServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceAggregatedList;

                    /**
                     * Decodes a BackendServiceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceAggregatedList;

                    /**
                     * Verifies a BackendServiceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceAggregatedList;

                    /**
                     * Creates a plain object from a BackendServiceAggregatedList message. Also converts values to other types if specified.
                     * @param message BackendServiceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceCdnPolicy. */
                interface IBackendServiceCdnPolicy {

                    /** BackendServiceCdnPolicy bypassCacheOnRequestHeaders */
                    bypassCacheOnRequestHeaders?: (google.cloud.compute.v1.IBackendServiceCdnPolicyBypassCacheOnRequestHeader[]|null);

                    /** BackendServiceCdnPolicy cacheKeyPolicy */
                    cacheKeyPolicy?: (google.cloud.compute.v1.ICacheKeyPolicy|null);

                    /** BackendServiceCdnPolicy cacheMode */
                    cacheMode?: (string|null);

                    /** BackendServiceCdnPolicy clientTtl */
                    clientTtl?: (number|null);

                    /** BackendServiceCdnPolicy defaultTtl */
                    defaultTtl?: (number|null);

                    /** BackendServiceCdnPolicy maxTtl */
                    maxTtl?: (number|null);

                    /** BackendServiceCdnPolicy negativeCaching */
                    negativeCaching?: (boolean|null);

                    /** BackendServiceCdnPolicy negativeCachingPolicy */
                    negativeCachingPolicy?: (google.cloud.compute.v1.IBackendServiceCdnPolicyNegativeCachingPolicy[]|null);

                    /** BackendServiceCdnPolicy requestCoalescing */
                    requestCoalescing?: (boolean|null);

                    /** BackendServiceCdnPolicy serveWhileStale */
                    serveWhileStale?: (number|null);

                    /** BackendServiceCdnPolicy signedUrlCacheMaxAgeSec */
                    signedUrlCacheMaxAgeSec?: (number|Long|string|null);

                    /** BackendServiceCdnPolicy signedUrlKeyNames */
                    signedUrlKeyNames?: (string[]|null);
                }

                /** Represents a BackendServiceCdnPolicy. */
                class BackendServiceCdnPolicy implements IBackendServiceCdnPolicy {

                    /**
                     * Constructs a new BackendServiceCdnPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceCdnPolicy);

                    /** BackendServiceCdnPolicy bypassCacheOnRequestHeaders. */
                    public bypassCacheOnRequestHeaders: google.cloud.compute.v1.IBackendServiceCdnPolicyBypassCacheOnRequestHeader[];

                    /** BackendServiceCdnPolicy cacheKeyPolicy. */
                    public cacheKeyPolicy?: (google.cloud.compute.v1.ICacheKeyPolicy|null);

                    /** BackendServiceCdnPolicy cacheMode. */
                    public cacheMode?: (string|null);

                    /** BackendServiceCdnPolicy clientTtl. */
                    public clientTtl?: (number|null);

                    /** BackendServiceCdnPolicy defaultTtl. */
                    public defaultTtl?: (number|null);

                    /** BackendServiceCdnPolicy maxTtl. */
                    public maxTtl?: (number|null);

                    /** BackendServiceCdnPolicy negativeCaching. */
                    public negativeCaching?: (boolean|null);

                    /** BackendServiceCdnPolicy negativeCachingPolicy. */
                    public negativeCachingPolicy: google.cloud.compute.v1.IBackendServiceCdnPolicyNegativeCachingPolicy[];

                    /** BackendServiceCdnPolicy requestCoalescing. */
                    public requestCoalescing?: (boolean|null);

                    /** BackendServiceCdnPolicy serveWhileStale. */
                    public serveWhileStale?: (number|null);

                    /** BackendServiceCdnPolicy signedUrlCacheMaxAgeSec. */
                    public signedUrlCacheMaxAgeSec?: (number|Long|string|null);

                    /** BackendServiceCdnPolicy signedUrlKeyNames. */
                    public signedUrlKeyNames: string[];

                    /**
                     * Creates a new BackendServiceCdnPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceCdnPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceCdnPolicy): google.cloud.compute.v1.BackendServiceCdnPolicy;

                    /**
                     * Encodes the specified BackendServiceCdnPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceCdnPolicy.verify|verify} messages.
                     * @param message BackendServiceCdnPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceCdnPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceCdnPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceCdnPolicy.verify|verify} messages.
                     * @param message BackendServiceCdnPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceCdnPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceCdnPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceCdnPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceCdnPolicy;

                    /**
                     * Decodes a BackendServiceCdnPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceCdnPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceCdnPolicy;

                    /**
                     * Verifies a BackendServiceCdnPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceCdnPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceCdnPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceCdnPolicy;

                    /**
                     * Creates a plain object from a BackendServiceCdnPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceCdnPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceCdnPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceCdnPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceCdnPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceCdnPolicy {

                    /** CacheMode enum. */
                    enum CacheMode {
                        UNDEFINED_CACHE_MODE = 0,
                        CACHE_ALL_STATIC = 355027945,
                        FORCE_CACHE_ALL = 486026928,
                        INVALID_CACHE_MODE = 381295560,
                        USE_ORIGIN_HEADERS = 55380261
                    }
                }

                /** Properties of a BackendServiceCdnPolicyBypassCacheOnRequestHeader. */
                interface IBackendServiceCdnPolicyBypassCacheOnRequestHeader {

                    /** BackendServiceCdnPolicyBypassCacheOnRequestHeader headerName */
                    headerName?: (string|null);
                }

                /** Represents a BackendServiceCdnPolicyBypassCacheOnRequestHeader. */
                class BackendServiceCdnPolicyBypassCacheOnRequestHeader implements IBackendServiceCdnPolicyBypassCacheOnRequestHeader {

                    /**
                     * Constructs a new BackendServiceCdnPolicyBypassCacheOnRequestHeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceCdnPolicyBypassCacheOnRequestHeader);

                    /** BackendServiceCdnPolicyBypassCacheOnRequestHeader headerName. */
                    public headerName?: (string|null);

                    /**
                     * Creates a new BackendServiceCdnPolicyBypassCacheOnRequestHeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceCdnPolicyBypassCacheOnRequestHeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceCdnPolicyBypassCacheOnRequestHeader): google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Encodes the specified BackendServiceCdnPolicyBypassCacheOnRequestHeader message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader.verify|verify} messages.
                     * @param message BackendServiceCdnPolicyBypassCacheOnRequestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceCdnPolicyBypassCacheOnRequestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceCdnPolicyBypassCacheOnRequestHeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader.verify|verify} messages.
                     * @param message BackendServiceCdnPolicyBypassCacheOnRequestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceCdnPolicyBypassCacheOnRequestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceCdnPolicyBypassCacheOnRequestHeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Decodes a BackendServiceCdnPolicyBypassCacheOnRequestHeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Verifies a BackendServiceCdnPolicyBypassCacheOnRequestHeader message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceCdnPolicyBypassCacheOnRequestHeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Creates a plain object from a BackendServiceCdnPolicyBypassCacheOnRequestHeader message. Also converts values to other types if specified.
                     * @param message BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceCdnPolicyBypassCacheOnRequestHeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceCdnPolicyNegativeCachingPolicy. */
                interface IBackendServiceCdnPolicyNegativeCachingPolicy {

                    /** BackendServiceCdnPolicyNegativeCachingPolicy code */
                    code?: (number|null);

                    /** BackendServiceCdnPolicyNegativeCachingPolicy ttl */
                    ttl?: (number|null);
                }

                /** Represents a BackendServiceCdnPolicyNegativeCachingPolicy. */
                class BackendServiceCdnPolicyNegativeCachingPolicy implements IBackendServiceCdnPolicyNegativeCachingPolicy {

                    /**
                     * Constructs a new BackendServiceCdnPolicyNegativeCachingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceCdnPolicyNegativeCachingPolicy);

                    /** BackendServiceCdnPolicyNegativeCachingPolicy code. */
                    public code?: (number|null);

                    /** BackendServiceCdnPolicyNegativeCachingPolicy ttl. */
                    public ttl?: (number|null);

                    /**
                     * Creates a new BackendServiceCdnPolicyNegativeCachingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceCdnPolicyNegativeCachingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceCdnPolicyNegativeCachingPolicy): google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy;

                    /**
                     * Encodes the specified BackendServiceCdnPolicyNegativeCachingPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message BackendServiceCdnPolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceCdnPolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceCdnPolicyNegativeCachingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message BackendServiceCdnPolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceCdnPolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceCdnPolicyNegativeCachingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceCdnPolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy;

                    /**
                     * Decodes a BackendServiceCdnPolicyNegativeCachingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceCdnPolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy;

                    /**
                     * Verifies a BackendServiceCdnPolicyNegativeCachingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceCdnPolicyNegativeCachingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceCdnPolicyNegativeCachingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy;

                    /**
                     * Creates a plain object from a BackendServiceCdnPolicyNegativeCachingPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceCdnPolicyNegativeCachingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceCdnPolicyNegativeCachingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceCdnPolicyNegativeCachingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceConnectionTrackingPolicy. */
                interface IBackendServiceConnectionTrackingPolicy {

                    /** BackendServiceConnectionTrackingPolicy connectionPersistenceOnUnhealthyBackends */
                    connectionPersistenceOnUnhealthyBackends?: (string|null);

                    /** BackendServiceConnectionTrackingPolicy enableStrongAffinity */
                    enableStrongAffinity?: (boolean|null);

                    /** BackendServiceConnectionTrackingPolicy idleTimeoutSec */
                    idleTimeoutSec?: (number|null);

                    /** BackendServiceConnectionTrackingPolicy trackingMode */
                    trackingMode?: (string|null);
                }

                /** Represents a BackendServiceConnectionTrackingPolicy. */
                class BackendServiceConnectionTrackingPolicy implements IBackendServiceConnectionTrackingPolicy {

                    /**
                     * Constructs a new BackendServiceConnectionTrackingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceConnectionTrackingPolicy);

                    /** BackendServiceConnectionTrackingPolicy connectionPersistenceOnUnhealthyBackends. */
                    public connectionPersistenceOnUnhealthyBackends?: (string|null);

                    /** BackendServiceConnectionTrackingPolicy enableStrongAffinity. */
                    public enableStrongAffinity?: (boolean|null);

                    /** BackendServiceConnectionTrackingPolicy idleTimeoutSec. */
                    public idleTimeoutSec?: (number|null);

                    /** BackendServiceConnectionTrackingPolicy trackingMode. */
                    public trackingMode?: (string|null);

                    /**
                     * Creates a new BackendServiceConnectionTrackingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceConnectionTrackingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceConnectionTrackingPolicy): google.cloud.compute.v1.BackendServiceConnectionTrackingPolicy;

                    /**
                     * Encodes the specified BackendServiceConnectionTrackingPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceConnectionTrackingPolicy.verify|verify} messages.
                     * @param message BackendServiceConnectionTrackingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceConnectionTrackingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceConnectionTrackingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceConnectionTrackingPolicy.verify|verify} messages.
                     * @param message BackendServiceConnectionTrackingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceConnectionTrackingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceConnectionTrackingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceConnectionTrackingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceConnectionTrackingPolicy;

                    /**
                     * Decodes a BackendServiceConnectionTrackingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceConnectionTrackingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceConnectionTrackingPolicy;

                    /**
                     * Verifies a BackendServiceConnectionTrackingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceConnectionTrackingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceConnectionTrackingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceConnectionTrackingPolicy;

                    /**
                     * Creates a plain object from a BackendServiceConnectionTrackingPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceConnectionTrackingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceConnectionTrackingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceConnectionTrackingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceConnectionTrackingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceConnectionTrackingPolicy {

                    /** ConnectionPersistenceOnUnhealthyBackends enum. */
                    enum ConnectionPersistenceOnUnhealthyBackends {
                        UNDEFINED_CONNECTION_PERSISTENCE_ON_UNHEALTHY_BACKENDS = 0,
                        ALWAYS_PERSIST = 38400900,
                        DEFAULT_FOR_PROTOCOL = 145265356,
                        NEVER_PERSIST = 138646241
                    }

                    /** TrackingMode enum. */
                    enum TrackingMode {
                        UNDEFINED_TRACKING_MODE = 0,
                        INVALID_TRACKING_MODE = 49234371,
                        PER_CONNECTION = 85162848,
                        PER_SESSION = 182099252
                    }
                }

                /** Properties of a BackendServiceCustomMetric. */
                interface IBackendServiceCustomMetric {

                    /** BackendServiceCustomMetric dryRun */
                    dryRun?: (boolean|null);

                    /** BackendServiceCustomMetric name */
                    name?: (string|null);
                }

                /** Represents a BackendServiceCustomMetric. */
                class BackendServiceCustomMetric implements IBackendServiceCustomMetric {

                    /**
                     * Constructs a new BackendServiceCustomMetric.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceCustomMetric);

                    /** BackendServiceCustomMetric dryRun. */
                    public dryRun?: (boolean|null);

                    /** BackendServiceCustomMetric name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BackendServiceCustomMetric instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceCustomMetric instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceCustomMetric): google.cloud.compute.v1.BackendServiceCustomMetric;

                    /**
                     * Encodes the specified BackendServiceCustomMetric message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceCustomMetric.verify|verify} messages.
                     * @param message BackendServiceCustomMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceCustomMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceCustomMetric message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceCustomMetric.verify|verify} messages.
                     * @param message BackendServiceCustomMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceCustomMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceCustomMetric message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceCustomMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceCustomMetric;

                    /**
                     * Decodes a BackendServiceCustomMetric message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceCustomMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceCustomMetric;

                    /**
                     * Verifies a BackendServiceCustomMetric message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceCustomMetric message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceCustomMetric
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceCustomMetric;

                    /**
                     * Creates a plain object from a BackendServiceCustomMetric message. Also converts values to other types if specified.
                     * @param message BackendServiceCustomMetric
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceCustomMetric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceCustomMetric to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceCustomMetric
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceFailoverPolicy. */
                interface IBackendServiceFailoverPolicy {

                    /** BackendServiceFailoverPolicy disableConnectionDrainOnFailover */
                    disableConnectionDrainOnFailover?: (boolean|null);

                    /** BackendServiceFailoverPolicy dropTrafficIfUnhealthy */
                    dropTrafficIfUnhealthy?: (boolean|null);

                    /** BackendServiceFailoverPolicy failoverRatio */
                    failoverRatio?: (number|null);
                }

                /** Represents a BackendServiceFailoverPolicy. */
                class BackendServiceFailoverPolicy implements IBackendServiceFailoverPolicy {

                    /**
                     * Constructs a new BackendServiceFailoverPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceFailoverPolicy);

                    /** BackendServiceFailoverPolicy disableConnectionDrainOnFailover. */
                    public disableConnectionDrainOnFailover?: (boolean|null);

                    /** BackendServiceFailoverPolicy dropTrafficIfUnhealthy. */
                    public dropTrafficIfUnhealthy?: (boolean|null);

                    /** BackendServiceFailoverPolicy failoverRatio. */
                    public failoverRatio?: (number|null);

                    /**
                     * Creates a new BackendServiceFailoverPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceFailoverPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceFailoverPolicy): google.cloud.compute.v1.BackendServiceFailoverPolicy;

                    /**
                     * Encodes the specified BackendServiceFailoverPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceFailoverPolicy.verify|verify} messages.
                     * @param message BackendServiceFailoverPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceFailoverPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceFailoverPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceFailoverPolicy.verify|verify} messages.
                     * @param message BackendServiceFailoverPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceFailoverPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceFailoverPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceFailoverPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceFailoverPolicy;

                    /**
                     * Decodes a BackendServiceFailoverPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceFailoverPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceFailoverPolicy;

                    /**
                     * Verifies a BackendServiceFailoverPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceFailoverPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceFailoverPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceFailoverPolicy;

                    /**
                     * Creates a plain object from a BackendServiceFailoverPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceFailoverPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceFailoverPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceFailoverPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceFailoverPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceGroupHealth. */
                interface IBackendServiceGroupHealth {

                    /** BackendServiceGroupHealth annotations */
                    annotations?: ({ [k: string]: string }|null);

                    /** BackendServiceGroupHealth healthStatus */
                    healthStatus?: (google.cloud.compute.v1.IHealthStatus[]|null);

                    /** BackendServiceGroupHealth kind */
                    kind?: (string|null);
                }

                /** Represents a BackendServiceGroupHealth. */
                class BackendServiceGroupHealth implements IBackendServiceGroupHealth {

                    /**
                     * Constructs a new BackendServiceGroupHealth.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceGroupHealth);

                    /** BackendServiceGroupHealth annotations. */
                    public annotations: { [k: string]: string };

                    /** BackendServiceGroupHealth healthStatus. */
                    public healthStatus: google.cloud.compute.v1.IHealthStatus[];

                    /** BackendServiceGroupHealth kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new BackendServiceGroupHealth instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceGroupHealth instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceGroupHealth): google.cloud.compute.v1.BackendServiceGroupHealth;

                    /**
                     * Encodes the specified BackendServiceGroupHealth message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceGroupHealth.verify|verify} messages.
                     * @param message BackendServiceGroupHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceGroupHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceGroupHealth message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceGroupHealth.verify|verify} messages.
                     * @param message BackendServiceGroupHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceGroupHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceGroupHealth message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceGroupHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceGroupHealth;

                    /**
                     * Decodes a BackendServiceGroupHealth message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceGroupHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceGroupHealth;

                    /**
                     * Verifies a BackendServiceGroupHealth message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceGroupHealth message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceGroupHealth
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceGroupHealth;

                    /**
                     * Creates a plain object from a BackendServiceGroupHealth message. Also converts values to other types if specified.
                     * @param message BackendServiceGroupHealth
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceGroupHealth, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceGroupHealth to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceGroupHealth
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceHAPolicy. */
                interface IBackendServiceHAPolicy {

                    /** BackendServiceHAPolicy fastIPMove */
                    fastIPMove?: (string|null);

                    /** BackendServiceHAPolicy leader */
                    leader?: (google.cloud.compute.v1.IBackendServiceHAPolicyLeader|null);
                }

                /** Represents a BackendServiceHAPolicy. */
                class BackendServiceHAPolicy implements IBackendServiceHAPolicy {

                    /**
                     * Constructs a new BackendServiceHAPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceHAPolicy);

                    /** BackendServiceHAPolicy fastIPMove. */
                    public fastIPMove?: (string|null);

                    /** BackendServiceHAPolicy leader. */
                    public leader?: (google.cloud.compute.v1.IBackendServiceHAPolicyLeader|null);

                    /**
                     * Creates a new BackendServiceHAPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceHAPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceHAPolicy): google.cloud.compute.v1.BackendServiceHAPolicy;

                    /**
                     * Encodes the specified BackendServiceHAPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceHAPolicy.verify|verify} messages.
                     * @param message BackendServiceHAPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceHAPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceHAPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceHAPolicy.verify|verify} messages.
                     * @param message BackendServiceHAPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceHAPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceHAPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceHAPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceHAPolicy;

                    /**
                     * Decodes a BackendServiceHAPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceHAPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceHAPolicy;

                    /**
                     * Verifies a BackendServiceHAPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceHAPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceHAPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceHAPolicy;

                    /**
                     * Creates a plain object from a BackendServiceHAPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceHAPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceHAPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceHAPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceHAPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceHAPolicy {

                    /** FastIPMove enum. */
                    enum FastIPMove {
                        UNDEFINED_FAST_I_P_MOVE = 0,
                        DISABLED = 516696700,
                        GARP_RA = 527352630
                    }
                }

                /** Properties of a BackendServiceHAPolicyLeader. */
                interface IBackendServiceHAPolicyLeader {

                    /** BackendServiceHAPolicyLeader backendGroup */
                    backendGroup?: (string|null);

                    /** BackendServiceHAPolicyLeader networkEndpoint */
                    networkEndpoint?: (google.cloud.compute.v1.IBackendServiceHAPolicyLeaderNetworkEndpoint|null);
                }

                /** Represents a BackendServiceHAPolicyLeader. */
                class BackendServiceHAPolicyLeader implements IBackendServiceHAPolicyLeader {

                    /**
                     * Constructs a new BackendServiceHAPolicyLeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceHAPolicyLeader);

                    /** BackendServiceHAPolicyLeader backendGroup. */
                    public backendGroup?: (string|null);

                    /** BackendServiceHAPolicyLeader networkEndpoint. */
                    public networkEndpoint?: (google.cloud.compute.v1.IBackendServiceHAPolicyLeaderNetworkEndpoint|null);

                    /**
                     * Creates a new BackendServiceHAPolicyLeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceHAPolicyLeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceHAPolicyLeader): google.cloud.compute.v1.BackendServiceHAPolicyLeader;

                    /**
                     * Encodes the specified BackendServiceHAPolicyLeader message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceHAPolicyLeader.verify|verify} messages.
                     * @param message BackendServiceHAPolicyLeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceHAPolicyLeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceHAPolicyLeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceHAPolicyLeader.verify|verify} messages.
                     * @param message BackendServiceHAPolicyLeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceHAPolicyLeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceHAPolicyLeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceHAPolicyLeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceHAPolicyLeader;

                    /**
                     * Decodes a BackendServiceHAPolicyLeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceHAPolicyLeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceHAPolicyLeader;

                    /**
                     * Verifies a BackendServiceHAPolicyLeader message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceHAPolicyLeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceHAPolicyLeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceHAPolicyLeader;

                    /**
                     * Creates a plain object from a BackendServiceHAPolicyLeader message. Also converts values to other types if specified.
                     * @param message BackendServiceHAPolicyLeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceHAPolicyLeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceHAPolicyLeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceHAPolicyLeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceHAPolicyLeaderNetworkEndpoint. */
                interface IBackendServiceHAPolicyLeaderNetworkEndpoint {

                    /** BackendServiceHAPolicyLeaderNetworkEndpoint instance */
                    instance?: (string|null);
                }

                /** Represents a BackendServiceHAPolicyLeaderNetworkEndpoint. */
                class BackendServiceHAPolicyLeaderNetworkEndpoint implements IBackendServiceHAPolicyLeaderNetworkEndpoint {

                    /**
                     * Constructs a new BackendServiceHAPolicyLeaderNetworkEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceHAPolicyLeaderNetworkEndpoint);

                    /** BackendServiceHAPolicyLeaderNetworkEndpoint instance. */
                    public instance?: (string|null);

                    /**
                     * Creates a new BackendServiceHAPolicyLeaderNetworkEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceHAPolicyLeaderNetworkEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceHAPolicyLeaderNetworkEndpoint): google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpoint;

                    /**
                     * Encodes the specified BackendServiceHAPolicyLeaderNetworkEndpoint message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpoint.verify|verify} messages.
                     * @param message BackendServiceHAPolicyLeaderNetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceHAPolicyLeaderNetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceHAPolicyLeaderNetworkEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpoint.verify|verify} messages.
                     * @param message BackendServiceHAPolicyLeaderNetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceHAPolicyLeaderNetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceHAPolicyLeaderNetworkEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceHAPolicyLeaderNetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpoint;

                    /**
                     * Decodes a BackendServiceHAPolicyLeaderNetworkEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceHAPolicyLeaderNetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpoint;

                    /**
                     * Verifies a BackendServiceHAPolicyLeaderNetworkEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceHAPolicyLeaderNetworkEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceHAPolicyLeaderNetworkEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpoint;

                    /**
                     * Creates a plain object from a BackendServiceHAPolicyLeaderNetworkEndpoint message. Also converts values to other types if specified.
                     * @param message BackendServiceHAPolicyLeaderNetworkEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceHAPolicyLeaderNetworkEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceHAPolicyLeaderNetworkEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceHttpCookie. */
                interface IBackendServiceHttpCookie {

                    /** BackendServiceHttpCookie name */
                    name?: (string|null);

                    /** BackendServiceHttpCookie path */
                    path?: (string|null);

                    /** BackendServiceHttpCookie ttl */
                    ttl?: (google.cloud.compute.v1.IDuration|null);
                }

                /** Represents a BackendServiceHttpCookie. */
                class BackendServiceHttpCookie implements IBackendServiceHttpCookie {

                    /**
                     * Constructs a new BackendServiceHttpCookie.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceHttpCookie);

                    /** BackendServiceHttpCookie name. */
                    public name?: (string|null);

                    /** BackendServiceHttpCookie path. */
                    public path?: (string|null);

                    /** BackendServiceHttpCookie ttl. */
                    public ttl?: (google.cloud.compute.v1.IDuration|null);

                    /**
                     * Creates a new BackendServiceHttpCookie instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceHttpCookie instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceHttpCookie): google.cloud.compute.v1.BackendServiceHttpCookie;

                    /**
                     * Encodes the specified BackendServiceHttpCookie message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceHttpCookie.verify|verify} messages.
                     * @param message BackendServiceHttpCookie message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceHttpCookie, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceHttpCookie message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceHttpCookie.verify|verify} messages.
                     * @param message BackendServiceHttpCookie message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceHttpCookie, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceHttpCookie message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceHttpCookie
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceHttpCookie;

                    /**
                     * Decodes a BackendServiceHttpCookie message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceHttpCookie
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceHttpCookie;

                    /**
                     * Verifies a BackendServiceHttpCookie message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceHttpCookie message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceHttpCookie
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceHttpCookie;

                    /**
                     * Creates a plain object from a BackendServiceHttpCookie message. Also converts values to other types if specified.
                     * @param message BackendServiceHttpCookie
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceHttpCookie, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceHttpCookie to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceHttpCookie
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceIAP. */
                interface IBackendServiceIAP {

                    /** BackendServiceIAP enabled */
                    enabled?: (boolean|null);

                    /** BackendServiceIAP oauth2ClientId */
                    oauth2ClientId?: (string|null);

                    /** BackendServiceIAP oauth2ClientSecret */
                    oauth2ClientSecret?: (string|null);

                    /** BackendServiceIAP oauth2ClientSecretSha256 */
                    oauth2ClientSecretSha256?: (string|null);
                }

                /** Represents a BackendServiceIAP. */
                class BackendServiceIAP implements IBackendServiceIAP {

                    /**
                     * Constructs a new BackendServiceIAP.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceIAP);

                    /** BackendServiceIAP enabled. */
                    public enabled?: (boolean|null);

                    /** BackendServiceIAP oauth2ClientId. */
                    public oauth2ClientId?: (string|null);

                    /** BackendServiceIAP oauth2ClientSecret. */
                    public oauth2ClientSecret?: (string|null);

                    /** BackendServiceIAP oauth2ClientSecretSha256. */
                    public oauth2ClientSecretSha256?: (string|null);

                    /**
                     * Creates a new BackendServiceIAP instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceIAP instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceIAP): google.cloud.compute.v1.BackendServiceIAP;

                    /**
                     * Encodes the specified BackendServiceIAP message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceIAP.verify|verify} messages.
                     * @param message BackendServiceIAP message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceIAP, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceIAP message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceIAP.verify|verify} messages.
                     * @param message BackendServiceIAP message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceIAP, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceIAP message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceIAP
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceIAP;

                    /**
                     * Decodes a BackendServiceIAP message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceIAP
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceIAP;

                    /**
                     * Verifies a BackendServiceIAP message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceIAP message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceIAP
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceIAP;

                    /**
                     * Creates a plain object from a BackendServiceIAP message. Also converts values to other types if specified.
                     * @param message BackendServiceIAP
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceIAP, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceIAP to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceIAP
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceList. */
                interface IBackendServiceList {

                    /** BackendServiceList id */
                    id?: (string|null);

                    /** BackendServiceList items */
                    items?: (google.cloud.compute.v1.IBackendService[]|null);

                    /** BackendServiceList kind */
                    kind?: (string|null);

                    /** BackendServiceList nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendServiceList selfLink */
                    selfLink?: (string|null);

                    /** BackendServiceList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a BackendServiceList. */
                class BackendServiceList implements IBackendServiceList {

                    /**
                     * Constructs a new BackendServiceList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceList);

                    /** BackendServiceList id. */
                    public id?: (string|null);

                    /** BackendServiceList items. */
                    public items: google.cloud.compute.v1.IBackendService[];

                    /** BackendServiceList kind. */
                    public kind?: (string|null);

                    /** BackendServiceList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendServiceList selfLink. */
                    public selfLink?: (string|null);

                    /** BackendServiceList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new BackendServiceList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceList): google.cloud.compute.v1.BackendServiceList;

                    /**
                     * Encodes the specified BackendServiceList message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceList.verify|verify} messages.
                     * @param message BackendServiceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceList.verify|verify} messages.
                     * @param message BackendServiceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceList;

                    /**
                     * Decodes a BackendServiceList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceList;

                    /**
                     * Verifies a BackendServiceList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceList;

                    /**
                     * Creates a plain object from a BackendServiceList message. Also converts values to other types if specified.
                     * @param message BackendServiceList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceListUsable. */
                interface IBackendServiceListUsable {

                    /** BackendServiceListUsable id */
                    id?: (string|null);

                    /** BackendServiceListUsable items */
                    items?: (google.cloud.compute.v1.IBackendService[]|null);

                    /** BackendServiceListUsable kind */
                    kind?: (string|null);

                    /** BackendServiceListUsable nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendServiceListUsable selfLink */
                    selfLink?: (string|null);

                    /** BackendServiceListUsable warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a BackendServiceListUsable. */
                class BackendServiceListUsable implements IBackendServiceListUsable {

                    /**
                     * Constructs a new BackendServiceListUsable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceListUsable);

                    /** BackendServiceListUsable id. */
                    public id?: (string|null);

                    /** BackendServiceListUsable items. */
                    public items: google.cloud.compute.v1.IBackendService[];

                    /** BackendServiceListUsable kind. */
                    public kind?: (string|null);

                    /** BackendServiceListUsable nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendServiceListUsable selfLink. */
                    public selfLink?: (string|null);

                    /** BackendServiceListUsable warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new BackendServiceListUsable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceListUsable instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceListUsable): google.cloud.compute.v1.BackendServiceListUsable;

                    /**
                     * Encodes the specified BackendServiceListUsable message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceListUsable.verify|verify} messages.
                     * @param message BackendServiceListUsable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceListUsable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceListUsable message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceListUsable.verify|verify} messages.
                     * @param message BackendServiceListUsable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceListUsable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceListUsable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceListUsable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceListUsable;

                    /**
                     * Decodes a BackendServiceListUsable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceListUsable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceListUsable;

                    /**
                     * Verifies a BackendServiceListUsable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceListUsable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceListUsable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceListUsable;

                    /**
                     * Creates a plain object from a BackendServiceListUsable message. Also converts values to other types if specified.
                     * @param message BackendServiceListUsable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceListUsable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceListUsable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceListUsable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceLocalityLoadBalancingPolicyConfig. */
                interface IBackendServiceLocalityLoadBalancingPolicyConfig {

                    /** BackendServiceLocalityLoadBalancingPolicyConfig customPolicy */
                    customPolicy?: (google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy|null);

                    /** BackendServiceLocalityLoadBalancingPolicyConfig policy */
                    policy?: (google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy|null);
                }

                /** Represents a BackendServiceLocalityLoadBalancingPolicyConfig. */
                class BackendServiceLocalityLoadBalancingPolicyConfig implements IBackendServiceLocalityLoadBalancingPolicyConfig {

                    /**
                     * Constructs a new BackendServiceLocalityLoadBalancingPolicyConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfig);

                    /** BackendServiceLocalityLoadBalancingPolicyConfig customPolicy. */
                    public customPolicy?: (google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy|null);

                    /** BackendServiceLocalityLoadBalancingPolicyConfig policy. */
                    public policy?: (google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy|null);

                    /**
                     * Creates a new BackendServiceLocalityLoadBalancingPolicyConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfig): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfig message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig;

                    /**
                     * Verifies a BackendServiceLocalityLoadBalancingPolicyConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceLocalityLoadBalancingPolicyConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig;

                    /**
                     * Creates a plain object from a BackendServiceLocalityLoadBalancingPolicyConfig message. Also converts values to other types if specified.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceLocalityLoadBalancingPolicyConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceLocalityLoadBalancingPolicyConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy. */
                interface IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy {

                    /** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy data */
                    data?: (string|null);

                    /** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy name */
                    name?: (string|null);
                }

                /** Represents a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy. */
                class BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy implements IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy {

                    /**
                     * Constructs a new BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy);

                    /** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy data. */
                    public data?: (string|null);

                    /** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy;

                    /**
                     * Verifies a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy;

                    /**
                     * Creates a plain object from a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceLocalityLoadBalancingPolicyConfigPolicy. */
                interface IBackendServiceLocalityLoadBalancingPolicyConfigPolicy {

                    /** BackendServiceLocalityLoadBalancingPolicyConfigPolicy name */
                    name?: (string|null);
                }

                /** Represents a BackendServiceLocalityLoadBalancingPolicyConfigPolicy. */
                class BackendServiceLocalityLoadBalancingPolicyConfigPolicy implements IBackendServiceLocalityLoadBalancingPolicyConfigPolicy {

                    /**
                     * Constructs a new BackendServiceLocalityLoadBalancingPolicyConfigPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy);

                    /** BackendServiceLocalityLoadBalancingPolicyConfigPolicy name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BackendServiceLocalityLoadBalancingPolicyConfigPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicy;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfigPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicy.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfigPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicy.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicy;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicy;

                    /**
                     * Verifies a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicy;

                    /**
                     * Creates a plain object from a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceLocalityLoadBalancingPolicyConfigPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceLocalityLoadBalancingPolicyConfigPolicy {

                    /** Name enum. */
                    enum Name {
                        UNDEFINED_NAME = 0,
                        INVALID_LB_POLICY = 323318707,
                        LEAST_REQUEST = 46604921,
                        MAGLEV = 119180266,
                        ORIGINAL_DESTINATION = 166297216,
                        RANDOM = 262527171,
                        RING_HASH = 432795069,
                        ROUND_ROBIN = 153895801,
                        WEIGHTED_GCP_RENDEZVOUS = 82501640,
                        WEIGHTED_MAGLEV = 254930962,
                        WEIGHTED_ROUND_ROBIN = 5584977
                    }
                }

                /** Properties of a BackendServiceLogConfig. */
                interface IBackendServiceLogConfig {

                    /** BackendServiceLogConfig enable */
                    enable?: (boolean|null);

                    /** BackendServiceLogConfig optionalFields */
                    optionalFields?: (string[]|null);

                    /** BackendServiceLogConfig optionalMode */
                    optionalMode?: (string|null);

                    /** BackendServiceLogConfig sampleRate */
                    sampleRate?: (number|null);
                }

                /** Represents a BackendServiceLogConfig. */
                class BackendServiceLogConfig implements IBackendServiceLogConfig {

                    /**
                     * Constructs a new BackendServiceLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceLogConfig);

                    /** BackendServiceLogConfig enable. */
                    public enable?: (boolean|null);

                    /** BackendServiceLogConfig optionalFields. */
                    public optionalFields: string[];

                    /** BackendServiceLogConfig optionalMode. */
                    public optionalMode?: (string|null);

                    /** BackendServiceLogConfig sampleRate. */
                    public sampleRate?: (number|null);

                    /**
                     * Creates a new BackendServiceLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceLogConfig): google.cloud.compute.v1.BackendServiceLogConfig;

                    /**
                     * Encodes the specified BackendServiceLogConfig message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceLogConfig.verify|verify} messages.
                     * @param message BackendServiceLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceLogConfig.verify|verify} messages.
                     * @param message BackendServiceLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceLogConfig;

                    /**
                     * Decodes a BackendServiceLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceLogConfig;

                    /**
                     * Verifies a BackendServiceLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceLogConfig;

                    /**
                     * Creates a plain object from a BackendServiceLogConfig message. Also converts values to other types if specified.
                     * @param message BackendServiceLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceLogConfig {

                    /** OptionalMode enum. */
                    enum OptionalMode {
                        UNDEFINED_OPTIONAL_MODE = 0,
                        CUSTOM = 388595569,
                        EXCLUDE_ALL_OPTIONAL = 168636099,
                        INCLUDE_ALL_OPTIONAL = 535606965
                    }
                }

                /** Properties of a BackendServiceNetworkPassThroughLbTrafficPolicy. */
                interface IBackendServiceNetworkPassThroughLbTrafficPolicy {

                    /** BackendServiceNetworkPassThroughLbTrafficPolicy zonalAffinity */
                    zonalAffinity?: (google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity|null);
                }

                /** Represents a BackendServiceNetworkPassThroughLbTrafficPolicy. */
                class BackendServiceNetworkPassThroughLbTrafficPolicy implements IBackendServiceNetworkPassThroughLbTrafficPolicy {

                    /**
                     * Constructs a new BackendServiceNetworkPassThroughLbTrafficPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicy);

                    /** BackendServiceNetworkPassThroughLbTrafficPolicy zonalAffinity. */
                    public zonalAffinity?: (google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity|null);

                    /**
                     * Creates a new BackendServiceNetworkPassThroughLbTrafficPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicy): google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicy;

                    /**
                     * Encodes the specified BackendServiceNetworkPassThroughLbTrafficPolicy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicy.verify|verify} messages.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceNetworkPassThroughLbTrafficPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicy.verify|verify} messages.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceNetworkPassThroughLbTrafficPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicy;

                    /**
                     * Decodes a BackendServiceNetworkPassThroughLbTrafficPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicy;

                    /**
                     * Verifies a BackendServiceNetworkPassThroughLbTrafficPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceNetworkPassThroughLbTrafficPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicy;

                    /**
                     * Creates a plain object from a BackendServiceNetworkPassThroughLbTrafficPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceNetworkPassThroughLbTrafficPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceNetworkPassThroughLbTrafficPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity. */
                interface IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity {

                    /** BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity spillover */
                    spillover?: (string|null);

                    /** BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity spilloverRatio */
                    spilloverRatio?: (number|null);
                }

                /** Represents a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity. */
                class BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity implements IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity {

                    /**
                     * Constructs a new BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity);

                    /** BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity spillover. */
                    public spillover?: (string|null);

                    /** BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity spilloverRatio. */
                    public spilloverRatio?: (number|null);

                    /**
                     * Creates a new BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity): google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity;

                    /**
                     * Encodes the specified BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity.verify|verify} messages.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity.verify|verify} messages.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity;

                    /**
                     * Decodes a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity;

                    /**
                     * Verifies a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity;

                    /**
                     * Creates a plain object from a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message. Also converts values to other types if specified.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity {

                    /** Spillover enum. */
                    enum Spillover {
                        UNDEFINED_SPILLOVER = 0,
                        ZONAL_AFFINITY_DISABLED = 230207960,
                        ZONAL_AFFINITY_SPILL_CROSS_ZONE = 251048410,
                        ZONAL_AFFINITY_STAY_WITHIN_ZONE = 12177782
                    }
                }

                /** Properties of a BackendServiceOrchestrationInfo. */
                interface IBackendServiceOrchestrationInfo {

                    /** BackendServiceOrchestrationInfo resourceUri */
                    resourceUri?: (string|null);
                }

                /** Represents a BackendServiceOrchestrationInfo. */
                class BackendServiceOrchestrationInfo implements IBackendServiceOrchestrationInfo {

                    /**
                     * Constructs a new BackendServiceOrchestrationInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceOrchestrationInfo);

                    /** BackendServiceOrchestrationInfo resourceUri. */
                    public resourceUri?: (string|null);

                    /**
                     * Creates a new BackendServiceOrchestrationInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceOrchestrationInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceOrchestrationInfo): google.cloud.compute.v1.BackendServiceOrchestrationInfo;

                    /**
                     * Encodes the specified BackendServiceOrchestrationInfo message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceOrchestrationInfo.verify|verify} messages.
                     * @param message BackendServiceOrchestrationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceOrchestrationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceOrchestrationInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceOrchestrationInfo.verify|verify} messages.
                     * @param message BackendServiceOrchestrationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceOrchestrationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceOrchestrationInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceOrchestrationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceOrchestrationInfo;

                    /**
                     * Decodes a BackendServiceOrchestrationInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceOrchestrationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceOrchestrationInfo;

                    /**
                     * Verifies a BackendServiceOrchestrationInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceOrchestrationInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceOrchestrationInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceOrchestrationInfo;

                    /**
                     * Creates a plain object from a BackendServiceOrchestrationInfo message. Also converts values to other types if specified.
                     * @param message BackendServiceOrchestrationInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceOrchestrationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceOrchestrationInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceOrchestrationInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceParams. */
                interface IBackendServiceParams {

                    /** BackendServiceParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a BackendServiceParams. */
                class BackendServiceParams implements IBackendServiceParams {

                    /**
                     * Constructs a new BackendServiceParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceParams);

                    /** BackendServiceParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new BackendServiceParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceParams): google.cloud.compute.v1.BackendServiceParams;

                    /**
                     * Encodes the specified BackendServiceParams message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceParams.verify|verify} messages.
                     * @param message BackendServiceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceParams.verify|verify} messages.
                     * @param message BackendServiceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceParams;

                    /**
                     * Decodes a BackendServiceParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceParams;

                    /**
                     * Verifies a BackendServiceParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceParams;

                    /**
                     * Creates a plain object from a BackendServiceParams message. Also converts values to other types if specified.
                     * @param message BackendServiceParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceReference. */
                interface IBackendServiceReference {

                    /** BackendServiceReference backendService */
                    backendService?: (string|null);
                }

                /** Represents a BackendServiceReference. */
                class BackendServiceReference implements IBackendServiceReference {

                    /**
                     * Constructs a new BackendServiceReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceReference);

                    /** BackendServiceReference backendService. */
                    public backendService?: (string|null);

                    /**
                     * Creates a new BackendServiceReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceReference): google.cloud.compute.v1.BackendServiceReference;

                    /**
                     * Encodes the specified BackendServiceReference message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceReference.verify|verify} messages.
                     * @param message BackendServiceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceReference.verify|verify} messages.
                     * @param message BackendServiceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceReference;

                    /**
                     * Decodes a BackendServiceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceReference;

                    /**
                     * Verifies a BackendServiceReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceReference;

                    /**
                     * Creates a plain object from a BackendServiceReference message. Also converts values to other types if specified.
                     * @param message BackendServiceReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceTlsSettings. */
                interface IBackendServiceTlsSettings {

                    /** BackendServiceTlsSettings authenticationConfig */
                    authenticationConfig?: (string|null);

                    /** BackendServiceTlsSettings sni */
                    sni?: (string|null);

                    /** BackendServiceTlsSettings subjectAltNames */
                    subjectAltNames?: (google.cloud.compute.v1.IBackendServiceTlsSettingsSubjectAltName[]|null);
                }

                /** Represents a BackendServiceTlsSettings. */
                class BackendServiceTlsSettings implements IBackendServiceTlsSettings {

                    /**
                     * Constructs a new BackendServiceTlsSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceTlsSettings);

                    /** BackendServiceTlsSettings authenticationConfig. */
                    public authenticationConfig?: (string|null);

                    /** BackendServiceTlsSettings sni. */
                    public sni?: (string|null);

                    /** BackendServiceTlsSettings subjectAltNames. */
                    public subjectAltNames: google.cloud.compute.v1.IBackendServiceTlsSettingsSubjectAltName[];

                    /**
                     * Creates a new BackendServiceTlsSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceTlsSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceTlsSettings): google.cloud.compute.v1.BackendServiceTlsSettings;

                    /**
                     * Encodes the specified BackendServiceTlsSettings message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceTlsSettings.verify|verify} messages.
                     * @param message BackendServiceTlsSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceTlsSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceTlsSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceTlsSettings.verify|verify} messages.
                     * @param message BackendServiceTlsSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceTlsSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceTlsSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceTlsSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceTlsSettings;

                    /**
                     * Decodes a BackendServiceTlsSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceTlsSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceTlsSettings;

                    /**
                     * Verifies a BackendServiceTlsSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceTlsSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceTlsSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceTlsSettings;

                    /**
                     * Creates a plain object from a BackendServiceTlsSettings message. Also converts values to other types if specified.
                     * @param message BackendServiceTlsSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceTlsSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceTlsSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceTlsSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceTlsSettingsSubjectAltName. */
                interface IBackendServiceTlsSettingsSubjectAltName {

                    /** BackendServiceTlsSettingsSubjectAltName dnsName */
                    dnsName?: (string|null);

                    /** BackendServiceTlsSettingsSubjectAltName uniformResourceIdentifier */
                    uniformResourceIdentifier?: (string|null);
                }

                /** Represents a BackendServiceTlsSettingsSubjectAltName. */
                class BackendServiceTlsSettingsSubjectAltName implements IBackendServiceTlsSettingsSubjectAltName {

                    /**
                     * Constructs a new BackendServiceTlsSettingsSubjectAltName.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceTlsSettingsSubjectAltName);

                    /** BackendServiceTlsSettingsSubjectAltName dnsName. */
                    public dnsName?: (string|null);

                    /** BackendServiceTlsSettingsSubjectAltName uniformResourceIdentifier. */
                    public uniformResourceIdentifier?: (string|null);

                    /**
                     * Creates a new BackendServiceTlsSettingsSubjectAltName instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceTlsSettingsSubjectAltName instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceTlsSettingsSubjectAltName): google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltName;

                    /**
                     * Encodes the specified BackendServiceTlsSettingsSubjectAltName message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltName.verify|verify} messages.
                     * @param message BackendServiceTlsSettingsSubjectAltName message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceTlsSettingsSubjectAltName, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceTlsSettingsSubjectAltName message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltName.verify|verify} messages.
                     * @param message BackendServiceTlsSettingsSubjectAltName message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceTlsSettingsSubjectAltName, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceTlsSettingsSubjectAltName message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceTlsSettingsSubjectAltName
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltName;

                    /**
                     * Decodes a BackendServiceTlsSettingsSubjectAltName message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceTlsSettingsSubjectAltName
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltName;

                    /**
                     * Verifies a BackendServiceTlsSettingsSubjectAltName message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceTlsSettingsSubjectAltName message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceTlsSettingsSubjectAltName
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltName;

                    /**
                     * Creates a plain object from a BackendServiceTlsSettingsSubjectAltName message. Also converts values to other types if specified.
                     * @param message BackendServiceTlsSettingsSubjectAltName
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltName, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceTlsSettingsSubjectAltName to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceTlsSettingsSubjectAltName
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceUsedBy. */
                interface IBackendServiceUsedBy {

                    /** BackendServiceUsedBy reference */
                    reference?: (string|null);
                }

                /** Represents a BackendServiceUsedBy. */
                class BackendServiceUsedBy implements IBackendServiceUsedBy {

                    /**
                     * Constructs a new BackendServiceUsedBy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServiceUsedBy);

                    /** BackendServiceUsedBy reference. */
                    public reference?: (string|null);

                    /**
                     * Creates a new BackendServiceUsedBy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceUsedBy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServiceUsedBy): google.cloud.compute.v1.BackendServiceUsedBy;

                    /**
                     * Encodes the specified BackendServiceUsedBy message. Does not implicitly {@link google.cloud.compute.v1.BackendServiceUsedBy.verify|verify} messages.
                     * @param message BackendServiceUsedBy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServiceUsedBy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceUsedBy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServiceUsedBy.verify|verify} messages.
                     * @param message BackendServiceUsedBy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServiceUsedBy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceUsedBy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceUsedBy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServiceUsedBy;

                    /**
                     * Decodes a BackendServiceUsedBy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceUsedBy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServiceUsedBy;

                    /**
                     * Verifies a BackendServiceUsedBy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceUsedBy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceUsedBy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServiceUsedBy;

                    /**
                     * Creates a plain object from a BackendServiceUsedBy message. Also converts values to other types if specified.
                     * @param message BackendServiceUsedBy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServiceUsedBy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceUsedBy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceUsedBy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServicesScopedList. */
                interface IBackendServicesScopedList {

                    /** BackendServicesScopedList backendServices */
                    backendServices?: (google.cloud.compute.v1.IBackendService[]|null);

                    /** BackendServicesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a BackendServicesScopedList. */
                class BackendServicesScopedList implements IBackendServicesScopedList {

                    /**
                     * Constructs a new BackendServicesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBackendServicesScopedList);

                    /** BackendServicesScopedList backendServices. */
                    public backendServices: google.cloud.compute.v1.IBackendService[];

                    /** BackendServicesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new BackendServicesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServicesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBackendServicesScopedList): google.cloud.compute.v1.BackendServicesScopedList;

                    /**
                     * Encodes the specified BackendServicesScopedList message. Does not implicitly {@link google.cloud.compute.v1.BackendServicesScopedList.verify|verify} messages.
                     * @param message BackendServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBackendServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServicesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BackendServicesScopedList.verify|verify} messages.
                     * @param message BackendServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBackendServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServicesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BackendServicesScopedList;

                    /**
                     * Decodes a BackendServicesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BackendServicesScopedList;

                    /**
                     * Verifies a BackendServicesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServicesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServicesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BackendServicesScopedList;

                    /**
                     * Creates a plain object from a BackendServicesScopedList message. Also converts values to other types if specified.
                     * @param message BackendServicesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BackendServicesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServicesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServicesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BfdPacket. */
                interface IBfdPacket {

                    /** BfdPacket authenticationPresent */
                    authenticationPresent?: (boolean|null);

                    /** BfdPacket controlPlaneIndependent */
                    controlPlaneIndependent?: (boolean|null);

                    /** BfdPacket demand */
                    demand?: (boolean|null);

                    /** BfdPacket diagnostic */
                    diagnostic?: (string|null);

                    /** BfdPacket final */
                    final?: (boolean|null);

                    /** BfdPacket length */
                    length?: (number|null);

                    /** BfdPacket minEchoRxIntervalMs */
                    minEchoRxIntervalMs?: (number|null);

                    /** BfdPacket minRxIntervalMs */
                    minRxIntervalMs?: (number|null);

                    /** BfdPacket minTxIntervalMs */
                    minTxIntervalMs?: (number|null);

                    /** BfdPacket multiplier */
                    multiplier?: (number|null);

                    /** BfdPacket multipoint */
                    multipoint?: (boolean|null);

                    /** BfdPacket myDiscriminator */
                    myDiscriminator?: (number|null);

                    /** BfdPacket poll */
                    poll?: (boolean|null);

                    /** BfdPacket state */
                    state?: (string|null);

                    /** BfdPacket version */
                    version?: (number|null);

                    /** BfdPacket yourDiscriminator */
                    yourDiscriminator?: (number|null);
                }

                /** Represents a BfdPacket. */
                class BfdPacket implements IBfdPacket {

                    /**
                     * Constructs a new BfdPacket.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBfdPacket);

                    /** BfdPacket authenticationPresent. */
                    public authenticationPresent?: (boolean|null);

                    /** BfdPacket controlPlaneIndependent. */
                    public controlPlaneIndependent?: (boolean|null);

                    /** BfdPacket demand. */
                    public demand?: (boolean|null);

                    /** BfdPacket diagnostic. */
                    public diagnostic?: (string|null);

                    /** BfdPacket final. */
                    public final?: (boolean|null);

                    /** BfdPacket length. */
                    public length?: (number|null);

                    /** BfdPacket minEchoRxIntervalMs. */
                    public minEchoRxIntervalMs?: (number|null);

                    /** BfdPacket minRxIntervalMs. */
                    public minRxIntervalMs?: (number|null);

                    /** BfdPacket minTxIntervalMs. */
                    public minTxIntervalMs?: (number|null);

                    /** BfdPacket multiplier. */
                    public multiplier?: (number|null);

                    /** BfdPacket multipoint. */
                    public multipoint?: (boolean|null);

                    /** BfdPacket myDiscriminator. */
                    public myDiscriminator?: (number|null);

                    /** BfdPacket poll. */
                    public poll?: (boolean|null);

                    /** BfdPacket state. */
                    public state?: (string|null);

                    /** BfdPacket version. */
                    public version?: (number|null);

                    /** BfdPacket yourDiscriminator. */
                    public yourDiscriminator?: (number|null);

                    /**
                     * Creates a new BfdPacket instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BfdPacket instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBfdPacket): google.cloud.compute.v1.BfdPacket;

                    /**
                     * Encodes the specified BfdPacket message. Does not implicitly {@link google.cloud.compute.v1.BfdPacket.verify|verify} messages.
                     * @param message BfdPacket message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBfdPacket, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BfdPacket message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BfdPacket.verify|verify} messages.
                     * @param message BfdPacket message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBfdPacket, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BfdPacket message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BfdPacket
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BfdPacket;

                    /**
                     * Decodes a BfdPacket message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BfdPacket
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BfdPacket;

                    /**
                     * Verifies a BfdPacket message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BfdPacket message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BfdPacket
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BfdPacket;

                    /**
                     * Creates a plain object from a BfdPacket message. Also converts values to other types if specified.
                     * @param message BfdPacket
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BfdPacket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BfdPacket to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BfdPacket
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BfdPacket {

                    /** Diagnostic enum. */
                    enum Diagnostic {
                        UNDEFINED_DIAGNOSTIC = 0,
                        ADMINISTRATIVELY_DOWN = 121685798,
                        CONCATENATED_PATH_DOWN = 26186892,
                        CONTROL_DETECTION_TIME_EXPIRED = 135478383,
                        DIAGNOSTIC_UNSPECIFIED = 58720895,
                        ECHO_FUNCTION_FAILED = 220687466,
                        FORWARDING_PLANE_RESET = 19715882,
                        NEIGHBOR_SIGNALED_SESSION_DOWN = 374226742,
                        NO_DIAGNOSTIC = 222503141,
                        PATH_DOWN = 290605180,
                        REVERSE_CONCATENATED_PATH_DOWN = 479337129
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ADMIN_DOWN = 128544690,
                        DOWN = 2104482,
                        INIT = 2252048,
                        STATE_UNSPECIFIED = 470755401,
                        UP = 2715
                    }
                }

                /** Properties of a BfdStatus. */
                interface IBfdStatus {

                    /** BfdStatus bfdSessionInitializationMode */
                    bfdSessionInitializationMode?: (string|null);

                    /** BfdStatus configUpdateTimestampMicros */
                    configUpdateTimestampMicros?: (number|Long|string|null);

                    /** BfdStatus controlPacketCounts */
                    controlPacketCounts?: (google.cloud.compute.v1.IBfdStatusPacketCounts|null);

                    /** BfdStatus controlPacketIntervals */
                    controlPacketIntervals?: (google.cloud.compute.v1.IPacketIntervals[]|null);

                    /** BfdStatus localDiagnostic */
                    localDiagnostic?: (string|null);

                    /** BfdStatus localState */
                    localState?: (string|null);

                    /** BfdStatus negotiatedLocalControlTxIntervalMs */
                    negotiatedLocalControlTxIntervalMs?: (number|null);

                    /** BfdStatus rxPacket */
                    rxPacket?: (google.cloud.compute.v1.IBfdPacket|null);

                    /** BfdStatus txPacket */
                    txPacket?: (google.cloud.compute.v1.IBfdPacket|null);

                    /** BfdStatus uptimeMs */
                    uptimeMs?: (number|Long|string|null);
                }

                /** Represents a BfdStatus. */
                class BfdStatus implements IBfdStatus {

                    /**
                     * Constructs a new BfdStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBfdStatus);

                    /** BfdStatus bfdSessionInitializationMode. */
                    public bfdSessionInitializationMode?: (string|null);

                    /** BfdStatus configUpdateTimestampMicros. */
                    public configUpdateTimestampMicros?: (number|Long|string|null);

                    /** BfdStatus controlPacketCounts. */
                    public controlPacketCounts?: (google.cloud.compute.v1.IBfdStatusPacketCounts|null);

                    /** BfdStatus controlPacketIntervals. */
                    public controlPacketIntervals: google.cloud.compute.v1.IPacketIntervals[];

                    /** BfdStatus localDiagnostic. */
                    public localDiagnostic?: (string|null);

                    /** BfdStatus localState. */
                    public localState?: (string|null);

                    /** BfdStatus negotiatedLocalControlTxIntervalMs. */
                    public negotiatedLocalControlTxIntervalMs?: (number|null);

                    /** BfdStatus rxPacket. */
                    public rxPacket?: (google.cloud.compute.v1.IBfdPacket|null);

                    /** BfdStatus txPacket. */
                    public txPacket?: (google.cloud.compute.v1.IBfdPacket|null);

                    /** BfdStatus uptimeMs. */
                    public uptimeMs?: (number|Long|string|null);

                    /**
                     * Creates a new BfdStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BfdStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBfdStatus): google.cloud.compute.v1.BfdStatus;

                    /**
                     * Encodes the specified BfdStatus message. Does not implicitly {@link google.cloud.compute.v1.BfdStatus.verify|verify} messages.
                     * @param message BfdStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBfdStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BfdStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BfdStatus.verify|verify} messages.
                     * @param message BfdStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBfdStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BfdStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BfdStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BfdStatus;

                    /**
                     * Decodes a BfdStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BfdStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BfdStatus;

                    /**
                     * Verifies a BfdStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BfdStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BfdStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BfdStatus;

                    /**
                     * Creates a plain object from a BfdStatus message. Also converts values to other types if specified.
                     * @param message BfdStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BfdStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BfdStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BfdStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BfdStatus {

                    /** BfdSessionInitializationMode enum. */
                    enum BfdSessionInitializationMode {
                        UNDEFINED_BFD_SESSION_INITIALIZATION_MODE = 0,
                        ACTIVE = 314733318,
                        DISABLED = 516696700,
                        PASSIVE = 462813959
                    }

                    /** LocalDiagnostic enum. */
                    enum LocalDiagnostic {
                        UNDEFINED_LOCAL_DIAGNOSTIC = 0,
                        ADMINISTRATIVELY_DOWN = 121685798,
                        CONCATENATED_PATH_DOWN = 26186892,
                        CONTROL_DETECTION_TIME_EXPIRED = 135478383,
                        DIAGNOSTIC_UNSPECIFIED = 58720895,
                        ECHO_FUNCTION_FAILED = 220687466,
                        FORWARDING_PLANE_RESET = 19715882,
                        NEIGHBOR_SIGNALED_SESSION_DOWN = 374226742,
                        NO_DIAGNOSTIC = 222503141,
                        PATH_DOWN = 290605180,
                        REVERSE_CONCATENATED_PATH_DOWN = 479337129
                    }

                    /** LocalState enum. */
                    enum LocalState {
                        UNDEFINED_LOCAL_STATE = 0,
                        ADMIN_DOWN = 128544690,
                        DOWN = 2104482,
                        INIT = 2252048,
                        STATE_UNSPECIFIED = 470755401,
                        UP = 2715
                    }
                }

                /** Properties of a BfdStatusPacketCounts. */
                interface IBfdStatusPacketCounts {

                    /** BfdStatusPacketCounts numRx */
                    numRx?: (number|null);

                    /** BfdStatusPacketCounts numRxRejected */
                    numRxRejected?: (number|null);

                    /** BfdStatusPacketCounts numRxSuccessful */
                    numRxSuccessful?: (number|null);

                    /** BfdStatusPacketCounts numTx */
                    numTx?: (number|null);
                }

                /** Represents a BfdStatusPacketCounts. */
                class BfdStatusPacketCounts implements IBfdStatusPacketCounts {

                    /**
                     * Constructs a new BfdStatusPacketCounts.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBfdStatusPacketCounts);

                    /** BfdStatusPacketCounts numRx. */
                    public numRx?: (number|null);

                    /** BfdStatusPacketCounts numRxRejected. */
                    public numRxRejected?: (number|null);

                    /** BfdStatusPacketCounts numRxSuccessful. */
                    public numRxSuccessful?: (number|null);

                    /** BfdStatusPacketCounts numTx. */
                    public numTx?: (number|null);

                    /**
                     * Creates a new BfdStatusPacketCounts instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BfdStatusPacketCounts instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBfdStatusPacketCounts): google.cloud.compute.v1.BfdStatusPacketCounts;

                    /**
                     * Encodes the specified BfdStatusPacketCounts message. Does not implicitly {@link google.cloud.compute.v1.BfdStatusPacketCounts.verify|verify} messages.
                     * @param message BfdStatusPacketCounts message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBfdStatusPacketCounts, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BfdStatusPacketCounts message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BfdStatusPacketCounts.verify|verify} messages.
                     * @param message BfdStatusPacketCounts message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBfdStatusPacketCounts, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BfdStatusPacketCounts message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BfdStatusPacketCounts
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BfdStatusPacketCounts;

                    /**
                     * Decodes a BfdStatusPacketCounts message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BfdStatusPacketCounts
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BfdStatusPacketCounts;

                    /**
                     * Verifies a BfdStatusPacketCounts message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BfdStatusPacketCounts message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BfdStatusPacketCounts
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BfdStatusPacketCounts;

                    /**
                     * Creates a plain object from a BfdStatusPacketCounts message. Also converts values to other types if specified.
                     * @param message BfdStatusPacketCounts
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BfdStatusPacketCounts, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BfdStatusPacketCounts to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BfdStatusPacketCounts
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BgpRoute. */
                interface IBgpRoute {

                    /** BgpRoute asPaths */
                    asPaths?: (google.cloud.compute.v1.IBgpRouteAsPath[]|null);

                    /** BgpRoute communities */
                    communities?: (string[]|null);

                    /** BgpRoute destination */
                    destination?: (google.cloud.compute.v1.IBgpRouteNetworkLayerReachabilityInformation|null);

                    /** BgpRoute med */
                    med?: (number|null);

                    /** BgpRoute origin */
                    origin?: (string|null);
                }

                /** Represents a BgpRoute. */
                class BgpRoute implements IBgpRoute {

                    /**
                     * Constructs a new BgpRoute.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBgpRoute);

                    /** BgpRoute asPaths. */
                    public asPaths: google.cloud.compute.v1.IBgpRouteAsPath[];

                    /** BgpRoute communities. */
                    public communities: string[];

                    /** BgpRoute destination. */
                    public destination?: (google.cloud.compute.v1.IBgpRouteNetworkLayerReachabilityInformation|null);

                    /** BgpRoute med. */
                    public med?: (number|null);

                    /** BgpRoute origin. */
                    public origin?: (string|null);

                    /**
                     * Creates a new BgpRoute instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BgpRoute instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBgpRoute): google.cloud.compute.v1.BgpRoute;

                    /**
                     * Encodes the specified BgpRoute message. Does not implicitly {@link google.cloud.compute.v1.BgpRoute.verify|verify} messages.
                     * @param message BgpRoute message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBgpRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BgpRoute message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BgpRoute.verify|verify} messages.
                     * @param message BgpRoute message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBgpRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BgpRoute message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BgpRoute
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BgpRoute;

                    /**
                     * Decodes a BgpRoute message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BgpRoute
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BgpRoute;

                    /**
                     * Verifies a BgpRoute message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BgpRoute message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BgpRoute
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BgpRoute;

                    /**
                     * Creates a plain object from a BgpRoute message. Also converts values to other types if specified.
                     * @param message BgpRoute
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BgpRoute, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BgpRoute to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BgpRoute
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BgpRoute {

                    /** Origin enum. */
                    enum Origin {
                        UNDEFINED_ORIGIN = 0,
                        BGP_ORIGIN_EGP = 378906473,
                        BGP_ORIGIN_IGP = 378910317,
                        BGP_ORIGIN_INCOMPLETE = 452839811
                    }
                }

                /** Properties of a BgpRouteAsPath. */
                interface IBgpRouteAsPath {

                    /** BgpRouteAsPath asns */
                    asns?: (number[]|null);

                    /** BgpRouteAsPath asns32 */
                    asns32?: (number[]|null);

                    /** BgpRouteAsPath type */
                    type?: (string|null);
                }

                /** Represents a BgpRouteAsPath. */
                class BgpRouteAsPath implements IBgpRouteAsPath {

                    /**
                     * Constructs a new BgpRouteAsPath.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBgpRouteAsPath);

                    /** BgpRouteAsPath asns. */
                    public asns: number[];

                    /** BgpRouteAsPath asns32. */
                    public asns32: number[];

                    /** BgpRouteAsPath type. */
                    public type?: (string|null);

                    /**
                     * Creates a new BgpRouteAsPath instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BgpRouteAsPath instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBgpRouteAsPath): google.cloud.compute.v1.BgpRouteAsPath;

                    /**
                     * Encodes the specified BgpRouteAsPath message. Does not implicitly {@link google.cloud.compute.v1.BgpRouteAsPath.verify|verify} messages.
                     * @param message BgpRouteAsPath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBgpRouteAsPath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BgpRouteAsPath message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BgpRouteAsPath.verify|verify} messages.
                     * @param message BgpRouteAsPath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBgpRouteAsPath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BgpRouteAsPath message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BgpRouteAsPath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BgpRouteAsPath;

                    /**
                     * Decodes a BgpRouteAsPath message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BgpRouteAsPath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BgpRouteAsPath;

                    /**
                     * Verifies a BgpRouteAsPath message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BgpRouteAsPath message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BgpRouteAsPath
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BgpRouteAsPath;

                    /**
                     * Creates a plain object from a BgpRouteAsPath message. Also converts values to other types if specified.
                     * @param message BgpRouteAsPath
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BgpRouteAsPath, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BgpRouteAsPath to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BgpRouteAsPath
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BgpRouteAsPath {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        AS_PATH_TYPE_SEQUENCE = 362887609,
                        AS_PATH_TYPE_SET = 302584650
                    }
                }

                /** Properties of a BgpRouteNetworkLayerReachabilityInformation. */
                interface IBgpRouteNetworkLayerReachabilityInformation {

                    /** BgpRouteNetworkLayerReachabilityInformation pathId */
                    pathId?: (number|null);

                    /** BgpRouteNetworkLayerReachabilityInformation prefix */
                    prefix?: (string|null);
                }

                /** Represents a BgpRouteNetworkLayerReachabilityInformation. */
                class BgpRouteNetworkLayerReachabilityInformation implements IBgpRouteNetworkLayerReachabilityInformation {

                    /**
                     * Constructs a new BgpRouteNetworkLayerReachabilityInformation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBgpRouteNetworkLayerReachabilityInformation);

                    /** BgpRouteNetworkLayerReachabilityInformation pathId. */
                    public pathId?: (number|null);

                    /** BgpRouteNetworkLayerReachabilityInformation prefix. */
                    public prefix?: (string|null);

                    /**
                     * Creates a new BgpRouteNetworkLayerReachabilityInformation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BgpRouteNetworkLayerReachabilityInformation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBgpRouteNetworkLayerReachabilityInformation): google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformation;

                    /**
                     * Encodes the specified BgpRouteNetworkLayerReachabilityInformation message. Does not implicitly {@link google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformation.verify|verify} messages.
                     * @param message BgpRouteNetworkLayerReachabilityInformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBgpRouteNetworkLayerReachabilityInformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BgpRouteNetworkLayerReachabilityInformation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformation.verify|verify} messages.
                     * @param message BgpRouteNetworkLayerReachabilityInformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBgpRouteNetworkLayerReachabilityInformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BgpRouteNetworkLayerReachabilityInformation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BgpRouteNetworkLayerReachabilityInformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformation;

                    /**
                     * Decodes a BgpRouteNetworkLayerReachabilityInformation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BgpRouteNetworkLayerReachabilityInformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformation;

                    /**
                     * Verifies a BgpRouteNetworkLayerReachabilityInformation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BgpRouteNetworkLayerReachabilityInformation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BgpRouteNetworkLayerReachabilityInformation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformation;

                    /**
                     * Creates a plain object from a BgpRouteNetworkLayerReachabilityInformation message. Also converts values to other types if specified.
                     * @param message BgpRouteNetworkLayerReachabilityInformation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BgpRouteNetworkLayerReachabilityInformation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BgpRouteNetworkLayerReachabilityInformation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Binding. */
                interface IBinding {

                    /** Binding bindingId */
                    bindingId?: (string|null);

                    /** Binding condition */
                    condition?: (google.cloud.compute.v1.IExpr|null);

                    /** Binding members */
                    members?: (string[]|null);

                    /** Binding role */
                    role?: (string|null);
                }

                /** Represents a Binding. */
                class Binding implements IBinding {

                    /**
                     * Constructs a new Binding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBinding);

                    /** Binding bindingId. */
                    public bindingId?: (string|null);

                    /** Binding condition. */
                    public condition?: (google.cloud.compute.v1.IExpr|null);

                    /** Binding members. */
                    public members: string[];

                    /** Binding role. */
                    public role?: (string|null);

                    /**
                     * Creates a new Binding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Binding instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBinding): google.cloud.compute.v1.Binding;

                    /**
                     * Encodes the specified Binding message. Does not implicitly {@link google.cloud.compute.v1.Binding.verify|verify} messages.
                     * @param message Binding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Binding message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Binding.verify|verify} messages.
                     * @param message Binding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Binding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Binding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Binding;

                    /**
                     * Decodes a Binding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Binding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Binding;

                    /**
                     * Verifies a Binding message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Binding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Binding
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Binding;

                    /**
                     * Creates a plain object from a Binding message. Also converts values to other types if specified.
                     * @param message Binding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Binding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Binding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Binding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertDiskRequest. */
                interface IBulkInsertDiskRequest {

                    /** BulkInsertDiskRequest bulkInsertDiskResourceResource */
                    bulkInsertDiskResourceResource?: (google.cloud.compute.v1.IBulkInsertDiskResource|null);

                    /** BulkInsertDiskRequest project */
                    project?: (string|null);

                    /** BulkInsertDiskRequest requestId */
                    requestId?: (string|null);

                    /** BulkInsertDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a BulkInsertDiskRequest. */
                class BulkInsertDiskRequest implements IBulkInsertDiskRequest {

                    /**
                     * Constructs a new BulkInsertDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkInsertDiskRequest);

                    /** BulkInsertDiskRequest bulkInsertDiskResourceResource. */
                    public bulkInsertDiskResourceResource?: (google.cloud.compute.v1.IBulkInsertDiskResource|null);

                    /** BulkInsertDiskRequest project. */
                    public project: string;

                    /** BulkInsertDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** BulkInsertDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new BulkInsertDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkInsertDiskRequest): google.cloud.compute.v1.BulkInsertDiskRequest;

                    /**
                     * Encodes the specified BulkInsertDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.BulkInsertDiskRequest.verify|verify} messages.
                     * @param message BulkInsertDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkInsertDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkInsertDiskRequest.verify|verify} messages.
                     * @param message BulkInsertDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkInsertDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkInsertDiskRequest;

                    /**
                     * Decodes a BulkInsertDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkInsertDiskRequest;

                    /**
                     * Verifies a BulkInsertDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkInsertDiskRequest;

                    /**
                     * Creates a plain object from a BulkInsertDiskRequest message. Also converts values to other types if specified.
                     * @param message BulkInsertDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkInsertDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertDiskResource. */
                interface IBulkInsertDiskResource {

                    /** BulkInsertDiskResource sourceConsistencyGroupPolicy */
                    sourceConsistencyGroupPolicy?: (string|null);
                }

                /** Represents a BulkInsertDiskResource. */
                class BulkInsertDiskResource implements IBulkInsertDiskResource {

                    /**
                     * Constructs a new BulkInsertDiskResource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkInsertDiskResource);

                    /** BulkInsertDiskResource sourceConsistencyGroupPolicy. */
                    public sourceConsistencyGroupPolicy?: (string|null);

                    /**
                     * Creates a new BulkInsertDiskResource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertDiskResource instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkInsertDiskResource): google.cloud.compute.v1.BulkInsertDiskResource;

                    /**
                     * Encodes the specified BulkInsertDiskResource message. Does not implicitly {@link google.cloud.compute.v1.BulkInsertDiskResource.verify|verify} messages.
                     * @param message BulkInsertDiskResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkInsertDiskResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertDiskResource message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkInsertDiskResource.verify|verify} messages.
                     * @param message BulkInsertDiskResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkInsertDiskResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertDiskResource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertDiskResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkInsertDiskResource;

                    /**
                     * Decodes a BulkInsertDiskResource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertDiskResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkInsertDiskResource;

                    /**
                     * Verifies a BulkInsertDiskResource message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertDiskResource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertDiskResource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkInsertDiskResource;

                    /**
                     * Creates a plain object from a BulkInsertDiskResource message. Also converts values to other types if specified.
                     * @param message BulkInsertDiskResource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkInsertDiskResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertDiskResource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertDiskResource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertInstanceRequest. */
                interface IBulkInsertInstanceRequest {

                    /** BulkInsertInstanceRequest bulkInsertInstanceResourceResource */
                    bulkInsertInstanceResourceResource?: (google.cloud.compute.v1.IBulkInsertInstanceResource|null);

                    /** BulkInsertInstanceRequest project */
                    project?: (string|null);

                    /** BulkInsertInstanceRequest requestId */
                    requestId?: (string|null);

                    /** BulkInsertInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a BulkInsertInstanceRequest. */
                class BulkInsertInstanceRequest implements IBulkInsertInstanceRequest {

                    /**
                     * Constructs a new BulkInsertInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkInsertInstanceRequest);

                    /** BulkInsertInstanceRequest bulkInsertInstanceResourceResource. */
                    public bulkInsertInstanceResourceResource?: (google.cloud.compute.v1.IBulkInsertInstanceResource|null);

                    /** BulkInsertInstanceRequest project. */
                    public project: string;

                    /** BulkInsertInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** BulkInsertInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new BulkInsertInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkInsertInstanceRequest): google.cloud.compute.v1.BulkInsertInstanceRequest;

                    /**
                     * Encodes the specified BulkInsertInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.BulkInsertInstanceRequest.verify|verify} messages.
                     * @param message BulkInsertInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkInsertInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkInsertInstanceRequest.verify|verify} messages.
                     * @param message BulkInsertInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkInsertInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkInsertInstanceRequest;

                    /**
                     * Decodes a BulkInsertInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkInsertInstanceRequest;

                    /**
                     * Verifies a BulkInsertInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkInsertInstanceRequest;

                    /**
                     * Creates a plain object from a BulkInsertInstanceRequest message. Also converts values to other types if specified.
                     * @param message BulkInsertInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkInsertInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertInstanceResource. */
                interface IBulkInsertInstanceResource {

                    /** BulkInsertInstanceResource count */
                    count?: (number|Long|string|null);

                    /** BulkInsertInstanceResource instanceFlexibilityPolicy */
                    instanceFlexibilityPolicy?: (google.cloud.compute.v1.IInstanceFlexibilityPolicy|null);

                    /** BulkInsertInstanceResource instanceProperties */
                    instanceProperties?: (google.cloud.compute.v1.IInstanceProperties|null);

                    /** BulkInsertInstanceResource locationPolicy */
                    locationPolicy?: (google.cloud.compute.v1.ILocationPolicy|null);

                    /** BulkInsertInstanceResource minCount */
                    minCount?: (number|Long|string|null);

                    /** BulkInsertInstanceResource namePattern */
                    namePattern?: (string|null);

                    /** BulkInsertInstanceResource perInstanceProperties */
                    perInstanceProperties?: ({ [k: string]: google.cloud.compute.v1.IBulkInsertInstanceResourcePerInstanceProperties }|null);

                    /** BulkInsertInstanceResource sourceInstanceTemplate */
                    sourceInstanceTemplate?: (string|null);
                }

                /** Represents a BulkInsertInstanceResource. */
                class BulkInsertInstanceResource implements IBulkInsertInstanceResource {

                    /**
                     * Constructs a new BulkInsertInstanceResource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkInsertInstanceResource);

                    /** BulkInsertInstanceResource count. */
                    public count?: (number|Long|string|null);

                    /** BulkInsertInstanceResource instanceFlexibilityPolicy. */
                    public instanceFlexibilityPolicy?: (google.cloud.compute.v1.IInstanceFlexibilityPolicy|null);

                    /** BulkInsertInstanceResource instanceProperties. */
                    public instanceProperties?: (google.cloud.compute.v1.IInstanceProperties|null);

                    /** BulkInsertInstanceResource locationPolicy. */
                    public locationPolicy?: (google.cloud.compute.v1.ILocationPolicy|null);

                    /** BulkInsertInstanceResource minCount. */
                    public minCount?: (number|Long|string|null);

                    /** BulkInsertInstanceResource namePattern. */
                    public namePattern?: (string|null);

                    /** BulkInsertInstanceResource perInstanceProperties. */
                    public perInstanceProperties: { [k: string]: google.cloud.compute.v1.IBulkInsertInstanceResourcePerInstanceProperties };

                    /** BulkInsertInstanceResource sourceInstanceTemplate. */
                    public sourceInstanceTemplate?: (string|null);

                    /**
                     * Creates a new BulkInsertInstanceResource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertInstanceResource instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkInsertInstanceResource): google.cloud.compute.v1.BulkInsertInstanceResource;

                    /**
                     * Encodes the specified BulkInsertInstanceResource message. Does not implicitly {@link google.cloud.compute.v1.BulkInsertInstanceResource.verify|verify} messages.
                     * @param message BulkInsertInstanceResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkInsertInstanceResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertInstanceResource message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkInsertInstanceResource.verify|verify} messages.
                     * @param message BulkInsertInstanceResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkInsertInstanceResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertInstanceResource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertInstanceResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkInsertInstanceResource;

                    /**
                     * Decodes a BulkInsertInstanceResource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertInstanceResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkInsertInstanceResource;

                    /**
                     * Verifies a BulkInsertInstanceResource message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertInstanceResource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertInstanceResource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkInsertInstanceResource;

                    /**
                     * Creates a plain object from a BulkInsertInstanceResource message. Also converts values to other types if specified.
                     * @param message BulkInsertInstanceResource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkInsertInstanceResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertInstanceResource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertInstanceResource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertInstanceResourcePerInstanceProperties. */
                interface IBulkInsertInstanceResourcePerInstanceProperties {

                    /** BulkInsertInstanceResourcePerInstanceProperties hostname */
                    hostname?: (string|null);

                    /** BulkInsertInstanceResourcePerInstanceProperties name */
                    name?: (string|null);
                }

                /** Represents a BulkInsertInstanceResourcePerInstanceProperties. */
                class BulkInsertInstanceResourcePerInstanceProperties implements IBulkInsertInstanceResourcePerInstanceProperties {

                    /**
                     * Constructs a new BulkInsertInstanceResourcePerInstanceProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkInsertInstanceResourcePerInstanceProperties);

                    /** BulkInsertInstanceResourcePerInstanceProperties hostname. */
                    public hostname?: (string|null);

                    /** BulkInsertInstanceResourcePerInstanceProperties name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BulkInsertInstanceResourcePerInstanceProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertInstanceResourcePerInstanceProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkInsertInstanceResourcePerInstanceProperties): google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties;

                    /**
                     * Encodes the specified BulkInsertInstanceResourcePerInstanceProperties message. Does not implicitly {@link google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties.verify|verify} messages.
                     * @param message BulkInsertInstanceResourcePerInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkInsertInstanceResourcePerInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertInstanceResourcePerInstanceProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties.verify|verify} messages.
                     * @param message BulkInsertInstanceResourcePerInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkInsertInstanceResourcePerInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertInstanceResourcePerInstanceProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertInstanceResourcePerInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties;

                    /**
                     * Decodes a BulkInsertInstanceResourcePerInstanceProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertInstanceResourcePerInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties;

                    /**
                     * Verifies a BulkInsertInstanceResourcePerInstanceProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertInstanceResourcePerInstanceProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertInstanceResourcePerInstanceProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties;

                    /**
                     * Creates a plain object from a BulkInsertInstanceResourcePerInstanceProperties message. Also converts values to other types if specified.
                     * @param message BulkInsertInstanceResourcePerInstanceProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertInstanceResourcePerInstanceProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertInstanceResourcePerInstanceProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertOperationStatus. */
                interface IBulkInsertOperationStatus {

                    /** BulkInsertOperationStatus createdVmCount */
                    createdVmCount?: (number|null);

                    /** BulkInsertOperationStatus deletedVmCount */
                    deletedVmCount?: (number|null);

                    /** BulkInsertOperationStatus failedToCreateVmCount */
                    failedToCreateVmCount?: (number|null);

                    /** BulkInsertOperationStatus status */
                    status?: (string|null);

                    /** BulkInsertOperationStatus targetVmCount */
                    targetVmCount?: (number|null);
                }

                /** Represents a BulkInsertOperationStatus. */
                class BulkInsertOperationStatus implements IBulkInsertOperationStatus {

                    /**
                     * Constructs a new BulkInsertOperationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkInsertOperationStatus);

                    /** BulkInsertOperationStatus createdVmCount. */
                    public createdVmCount?: (number|null);

                    /** BulkInsertOperationStatus deletedVmCount. */
                    public deletedVmCount?: (number|null);

                    /** BulkInsertOperationStatus failedToCreateVmCount. */
                    public failedToCreateVmCount?: (number|null);

                    /** BulkInsertOperationStatus status. */
                    public status?: (string|null);

                    /** BulkInsertOperationStatus targetVmCount. */
                    public targetVmCount?: (number|null);

                    /**
                     * Creates a new BulkInsertOperationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertOperationStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkInsertOperationStatus): google.cloud.compute.v1.BulkInsertOperationStatus;

                    /**
                     * Encodes the specified BulkInsertOperationStatus message. Does not implicitly {@link google.cloud.compute.v1.BulkInsertOperationStatus.verify|verify} messages.
                     * @param message BulkInsertOperationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkInsertOperationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertOperationStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkInsertOperationStatus.verify|verify} messages.
                     * @param message BulkInsertOperationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkInsertOperationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertOperationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertOperationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkInsertOperationStatus;

                    /**
                     * Decodes a BulkInsertOperationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertOperationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkInsertOperationStatus;

                    /**
                     * Verifies a BulkInsertOperationStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertOperationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertOperationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkInsertOperationStatus;

                    /**
                     * Creates a plain object from a BulkInsertOperationStatus message. Also converts values to other types if specified.
                     * @param message BulkInsertOperationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkInsertOperationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertOperationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertOperationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BulkInsertOperationStatus {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DONE = 2104194,
                        ROLLING_BACK = 259411649,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a BulkInsertRegionDiskRequest. */
                interface IBulkInsertRegionDiskRequest {

                    /** BulkInsertRegionDiskRequest bulkInsertDiskResourceResource */
                    bulkInsertDiskResourceResource?: (google.cloud.compute.v1.IBulkInsertDiskResource|null);

                    /** BulkInsertRegionDiskRequest project */
                    project?: (string|null);

                    /** BulkInsertRegionDiskRequest region */
                    region?: (string|null);

                    /** BulkInsertRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a BulkInsertRegionDiskRequest. */
                class BulkInsertRegionDiskRequest implements IBulkInsertRegionDiskRequest {

                    /**
                     * Constructs a new BulkInsertRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkInsertRegionDiskRequest);

                    /** BulkInsertRegionDiskRequest bulkInsertDiskResourceResource. */
                    public bulkInsertDiskResourceResource?: (google.cloud.compute.v1.IBulkInsertDiskResource|null);

                    /** BulkInsertRegionDiskRequest project. */
                    public project: string;

                    /** BulkInsertRegionDiskRequest region. */
                    public region: string;

                    /** BulkInsertRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new BulkInsertRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkInsertRegionDiskRequest): google.cloud.compute.v1.BulkInsertRegionDiskRequest;

                    /**
                     * Encodes the specified BulkInsertRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.BulkInsertRegionDiskRequest.verify|verify} messages.
                     * @param message BulkInsertRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkInsertRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkInsertRegionDiskRequest.verify|verify} messages.
                     * @param message BulkInsertRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkInsertRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkInsertRegionDiskRequest;

                    /**
                     * Decodes a BulkInsertRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkInsertRegionDiskRequest;

                    /**
                     * Verifies a BulkInsertRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkInsertRegionDiskRequest;

                    /**
                     * Creates a plain object from a BulkInsertRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message BulkInsertRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkInsertRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertRegionInstanceRequest. */
                interface IBulkInsertRegionInstanceRequest {

                    /** BulkInsertRegionInstanceRequest bulkInsertInstanceResourceResource */
                    bulkInsertInstanceResourceResource?: (google.cloud.compute.v1.IBulkInsertInstanceResource|null);

                    /** BulkInsertRegionInstanceRequest project */
                    project?: (string|null);

                    /** BulkInsertRegionInstanceRequest region */
                    region?: (string|null);

                    /** BulkInsertRegionInstanceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a BulkInsertRegionInstanceRequest. */
                class BulkInsertRegionInstanceRequest implements IBulkInsertRegionInstanceRequest {

                    /**
                     * Constructs a new BulkInsertRegionInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkInsertRegionInstanceRequest);

                    /** BulkInsertRegionInstanceRequest bulkInsertInstanceResourceResource. */
                    public bulkInsertInstanceResourceResource?: (google.cloud.compute.v1.IBulkInsertInstanceResource|null);

                    /** BulkInsertRegionInstanceRequest project. */
                    public project: string;

                    /** BulkInsertRegionInstanceRequest region. */
                    public region: string;

                    /** BulkInsertRegionInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new BulkInsertRegionInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertRegionInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkInsertRegionInstanceRequest): google.cloud.compute.v1.BulkInsertRegionInstanceRequest;

                    /**
                     * Encodes the specified BulkInsertRegionInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.BulkInsertRegionInstanceRequest.verify|verify} messages.
                     * @param message BulkInsertRegionInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkInsertRegionInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertRegionInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkInsertRegionInstanceRequest.verify|verify} messages.
                     * @param message BulkInsertRegionInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkInsertRegionInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertRegionInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertRegionInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkInsertRegionInstanceRequest;

                    /**
                     * Decodes a BulkInsertRegionInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertRegionInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkInsertRegionInstanceRequest;

                    /**
                     * Verifies a BulkInsertRegionInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertRegionInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertRegionInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkInsertRegionInstanceRequest;

                    /**
                     * Creates a plain object from a BulkInsertRegionInstanceRequest message. Also converts values to other types if specified.
                     * @param message BulkInsertRegionInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkInsertRegionInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertRegionInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertRegionInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkSetLabelsDiskRequest. */
                interface IBulkSetLabelsDiskRequest {

                    /** BulkSetLabelsDiskRequest bulkZoneSetLabelsRequestResource */
                    bulkZoneSetLabelsRequestResource?: (google.cloud.compute.v1.IBulkZoneSetLabelsRequest|null);

                    /** BulkSetLabelsDiskRequest project */
                    project?: (string|null);

                    /** BulkSetLabelsDiskRequest requestId */
                    requestId?: (string|null);

                    /** BulkSetLabelsDiskRequest resource */
                    resource?: (string|null);

                    /** BulkSetLabelsDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a BulkSetLabelsDiskRequest. */
                class BulkSetLabelsDiskRequest implements IBulkSetLabelsDiskRequest {

                    /**
                     * Constructs a new BulkSetLabelsDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkSetLabelsDiskRequest);

                    /** BulkSetLabelsDiskRequest bulkZoneSetLabelsRequestResource. */
                    public bulkZoneSetLabelsRequestResource?: (google.cloud.compute.v1.IBulkZoneSetLabelsRequest|null);

                    /** BulkSetLabelsDiskRequest project. */
                    public project: string;

                    /** BulkSetLabelsDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** BulkSetLabelsDiskRequest resource. */
                    public resource?: (string|null);

                    /** BulkSetLabelsDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new BulkSetLabelsDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkSetLabelsDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkSetLabelsDiskRequest): google.cloud.compute.v1.BulkSetLabelsDiskRequest;

                    /**
                     * Encodes the specified BulkSetLabelsDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.BulkSetLabelsDiskRequest.verify|verify} messages.
                     * @param message BulkSetLabelsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkSetLabelsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkSetLabelsDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkSetLabelsDiskRequest.verify|verify} messages.
                     * @param message BulkSetLabelsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkSetLabelsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkSetLabelsDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkSetLabelsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkSetLabelsDiskRequest;

                    /**
                     * Decodes a BulkSetLabelsDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkSetLabelsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkSetLabelsDiskRequest;

                    /**
                     * Verifies a BulkSetLabelsDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkSetLabelsDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkSetLabelsDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkSetLabelsDiskRequest;

                    /**
                     * Creates a plain object from a BulkSetLabelsDiskRequest message. Also converts values to other types if specified.
                     * @param message BulkSetLabelsDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkSetLabelsDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkSetLabelsDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkSetLabelsDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkSetLabelsRequest. */
                interface IBulkSetLabelsRequest {

                    /** BulkSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** BulkSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a BulkSetLabelsRequest. */
                class BulkSetLabelsRequest implements IBulkSetLabelsRequest {

                    /**
                     * Constructs a new BulkSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkSetLabelsRequest);

                    /** BulkSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** BulkSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new BulkSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkSetLabelsRequest): google.cloud.compute.v1.BulkSetLabelsRequest;

                    /**
                     * Encodes the specified BulkSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1.BulkSetLabelsRequest.verify|verify} messages.
                     * @param message BulkSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkSetLabelsRequest.verify|verify} messages.
                     * @param message BulkSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkSetLabelsRequest;

                    /**
                     * Decodes a BulkSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkSetLabelsRequest;

                    /**
                     * Verifies a BulkSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkSetLabelsRequest;

                    /**
                     * Creates a plain object from a BulkSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message BulkSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkZoneSetLabelsRequest. */
                interface IBulkZoneSetLabelsRequest {

                    /** BulkZoneSetLabelsRequest requests */
                    requests?: (google.cloud.compute.v1.IBulkSetLabelsRequest[]|null);
                }

                /** Represents a BulkZoneSetLabelsRequest. */
                class BulkZoneSetLabelsRequest implements IBulkZoneSetLabelsRequest {

                    /**
                     * Constructs a new BulkZoneSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBulkZoneSetLabelsRequest);

                    /** BulkZoneSetLabelsRequest requests. */
                    public requests: google.cloud.compute.v1.IBulkSetLabelsRequest[];

                    /**
                     * Creates a new BulkZoneSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkZoneSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBulkZoneSetLabelsRequest): google.cloud.compute.v1.BulkZoneSetLabelsRequest;

                    /**
                     * Encodes the specified BulkZoneSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1.BulkZoneSetLabelsRequest.verify|verify} messages.
                     * @param message BulkZoneSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBulkZoneSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkZoneSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BulkZoneSetLabelsRequest.verify|verify} messages.
                     * @param message BulkZoneSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBulkZoneSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkZoneSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkZoneSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BulkZoneSetLabelsRequest;

                    /**
                     * Decodes a BulkZoneSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkZoneSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BulkZoneSetLabelsRequest;

                    /**
                     * Verifies a BulkZoneSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkZoneSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkZoneSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BulkZoneSetLabelsRequest;

                    /**
                     * Creates a plain object from a BulkZoneSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message BulkZoneSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BulkZoneSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkZoneSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkZoneSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BundledLocalSsds. */
                interface IBundledLocalSsds {

                    /** BundledLocalSsds defaultInterface */
                    defaultInterface?: (string|null);

                    /** BundledLocalSsds partitionCount */
                    partitionCount?: (number|null);
                }

                /** Represents a BundledLocalSsds. */
                class BundledLocalSsds implements IBundledLocalSsds {

                    /**
                     * Constructs a new BundledLocalSsds.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IBundledLocalSsds);

                    /** BundledLocalSsds defaultInterface. */
                    public defaultInterface?: (string|null);

                    /** BundledLocalSsds partitionCount. */
                    public partitionCount?: (number|null);

                    /**
                     * Creates a new BundledLocalSsds instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BundledLocalSsds instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IBundledLocalSsds): google.cloud.compute.v1.BundledLocalSsds;

                    /**
                     * Encodes the specified BundledLocalSsds message. Does not implicitly {@link google.cloud.compute.v1.BundledLocalSsds.verify|verify} messages.
                     * @param message BundledLocalSsds message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IBundledLocalSsds, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BundledLocalSsds message, length delimited. Does not implicitly {@link google.cloud.compute.v1.BundledLocalSsds.verify|verify} messages.
                     * @param message BundledLocalSsds message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IBundledLocalSsds, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BundledLocalSsds message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BundledLocalSsds
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.BundledLocalSsds;

                    /**
                     * Decodes a BundledLocalSsds message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BundledLocalSsds
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.BundledLocalSsds;

                    /**
                     * Verifies a BundledLocalSsds message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BundledLocalSsds message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BundledLocalSsds
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.BundledLocalSsds;

                    /**
                     * Creates a plain object from a BundledLocalSsds message. Also converts values to other types if specified.
                     * @param message BundledLocalSsds
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.BundledLocalSsds, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BundledLocalSsds to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BundledLocalSsds
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CacheInvalidationRule. */
                interface ICacheInvalidationRule {

                    /** CacheInvalidationRule cacheTags */
                    cacheTags?: (string[]|null);

                    /** CacheInvalidationRule host */
                    host?: (string|null);

                    /** CacheInvalidationRule path */
                    path?: (string|null);
                }

                /** Represents a CacheInvalidationRule. */
                class CacheInvalidationRule implements ICacheInvalidationRule {

                    /**
                     * Constructs a new CacheInvalidationRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICacheInvalidationRule);

                    /** CacheInvalidationRule cacheTags. */
                    public cacheTags: string[];

                    /** CacheInvalidationRule host. */
                    public host?: (string|null);

                    /** CacheInvalidationRule path. */
                    public path?: (string|null);

                    /**
                     * Creates a new CacheInvalidationRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CacheInvalidationRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICacheInvalidationRule): google.cloud.compute.v1.CacheInvalidationRule;

                    /**
                     * Encodes the specified CacheInvalidationRule message. Does not implicitly {@link google.cloud.compute.v1.CacheInvalidationRule.verify|verify} messages.
                     * @param message CacheInvalidationRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICacheInvalidationRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CacheInvalidationRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CacheInvalidationRule.verify|verify} messages.
                     * @param message CacheInvalidationRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICacheInvalidationRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CacheInvalidationRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CacheInvalidationRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CacheInvalidationRule;

                    /**
                     * Decodes a CacheInvalidationRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CacheInvalidationRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CacheInvalidationRule;

                    /**
                     * Verifies a CacheInvalidationRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CacheInvalidationRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CacheInvalidationRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CacheInvalidationRule;

                    /**
                     * Creates a plain object from a CacheInvalidationRule message. Also converts values to other types if specified.
                     * @param message CacheInvalidationRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CacheInvalidationRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CacheInvalidationRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CacheInvalidationRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CacheKeyPolicy. */
                interface ICacheKeyPolicy {

                    /** CacheKeyPolicy includeHost */
                    includeHost?: (boolean|null);

                    /** CacheKeyPolicy includeHttpHeaders */
                    includeHttpHeaders?: (string[]|null);

                    /** CacheKeyPolicy includeNamedCookies */
                    includeNamedCookies?: (string[]|null);

                    /** CacheKeyPolicy includeProtocol */
                    includeProtocol?: (boolean|null);

                    /** CacheKeyPolicy includeQueryString */
                    includeQueryString?: (boolean|null);

                    /** CacheKeyPolicy queryStringBlacklist */
                    queryStringBlacklist?: (string[]|null);

                    /** CacheKeyPolicy queryStringWhitelist */
                    queryStringWhitelist?: (string[]|null);
                }

                /** Represents a CacheKeyPolicy. */
                class CacheKeyPolicy implements ICacheKeyPolicy {

                    /**
                     * Constructs a new CacheKeyPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICacheKeyPolicy);

                    /** CacheKeyPolicy includeHost. */
                    public includeHost?: (boolean|null);

                    /** CacheKeyPolicy includeHttpHeaders. */
                    public includeHttpHeaders: string[];

                    /** CacheKeyPolicy includeNamedCookies. */
                    public includeNamedCookies: string[];

                    /** CacheKeyPolicy includeProtocol. */
                    public includeProtocol?: (boolean|null);

                    /** CacheKeyPolicy includeQueryString. */
                    public includeQueryString?: (boolean|null);

                    /** CacheKeyPolicy queryStringBlacklist. */
                    public queryStringBlacklist: string[];

                    /** CacheKeyPolicy queryStringWhitelist. */
                    public queryStringWhitelist: string[];

                    /**
                     * Creates a new CacheKeyPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CacheKeyPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICacheKeyPolicy): google.cloud.compute.v1.CacheKeyPolicy;

                    /**
                     * Encodes the specified CacheKeyPolicy message. Does not implicitly {@link google.cloud.compute.v1.CacheKeyPolicy.verify|verify} messages.
                     * @param message CacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CacheKeyPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CacheKeyPolicy.verify|verify} messages.
                     * @param message CacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CacheKeyPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CacheKeyPolicy;

                    /**
                     * Decodes a CacheKeyPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CacheKeyPolicy;

                    /**
                     * Verifies a CacheKeyPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CacheKeyPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CacheKeyPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CacheKeyPolicy;

                    /**
                     * Creates a plain object from a CacheKeyPolicy message. Also converts values to other types if specified.
                     * @param message CacheKeyPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CacheKeyPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CacheKeyPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CacheKeyPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CalendarModeAdviceRequest. */
                interface ICalendarModeAdviceRequest {

                    /** CalendarModeAdviceRequest futureResourcesSpecs */
                    futureResourcesSpecs?: ({ [k: string]: google.cloud.compute.v1.IFutureResourcesSpec }|null);
                }

                /** Represents a CalendarModeAdviceRequest. */
                class CalendarModeAdviceRequest implements ICalendarModeAdviceRequest {

                    /**
                     * Constructs a new CalendarModeAdviceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICalendarModeAdviceRequest);

                    /** CalendarModeAdviceRequest futureResourcesSpecs. */
                    public futureResourcesSpecs: { [k: string]: google.cloud.compute.v1.IFutureResourcesSpec };

                    /**
                     * Creates a new CalendarModeAdviceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CalendarModeAdviceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICalendarModeAdviceRequest): google.cloud.compute.v1.CalendarModeAdviceRequest;

                    /**
                     * Encodes the specified CalendarModeAdviceRequest message. Does not implicitly {@link google.cloud.compute.v1.CalendarModeAdviceRequest.verify|verify} messages.
                     * @param message CalendarModeAdviceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICalendarModeAdviceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CalendarModeAdviceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CalendarModeAdviceRequest.verify|verify} messages.
                     * @param message CalendarModeAdviceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICalendarModeAdviceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CalendarModeAdviceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CalendarModeAdviceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CalendarModeAdviceRequest;

                    /**
                     * Decodes a CalendarModeAdviceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CalendarModeAdviceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CalendarModeAdviceRequest;

                    /**
                     * Verifies a CalendarModeAdviceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CalendarModeAdviceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CalendarModeAdviceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CalendarModeAdviceRequest;

                    /**
                     * Creates a plain object from a CalendarModeAdviceRequest message. Also converts values to other types if specified.
                     * @param message CalendarModeAdviceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CalendarModeAdviceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CalendarModeAdviceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CalendarModeAdviceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CalendarModeAdviceResponse. */
                interface ICalendarModeAdviceResponse {

                    /** CalendarModeAdviceResponse recommendations */
                    recommendations?: (google.cloud.compute.v1.ICalendarModeRecommendation[]|null);
                }

                /** Represents a CalendarModeAdviceResponse. */
                class CalendarModeAdviceResponse implements ICalendarModeAdviceResponse {

                    /**
                     * Constructs a new CalendarModeAdviceResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICalendarModeAdviceResponse);

                    /** CalendarModeAdviceResponse recommendations. */
                    public recommendations: google.cloud.compute.v1.ICalendarModeRecommendation[];

                    /**
                     * Creates a new CalendarModeAdviceResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CalendarModeAdviceResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICalendarModeAdviceResponse): google.cloud.compute.v1.CalendarModeAdviceResponse;

                    /**
                     * Encodes the specified CalendarModeAdviceResponse message. Does not implicitly {@link google.cloud.compute.v1.CalendarModeAdviceResponse.verify|verify} messages.
                     * @param message CalendarModeAdviceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICalendarModeAdviceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CalendarModeAdviceResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CalendarModeAdviceResponse.verify|verify} messages.
                     * @param message CalendarModeAdviceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICalendarModeAdviceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CalendarModeAdviceResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CalendarModeAdviceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CalendarModeAdviceResponse;

                    /**
                     * Decodes a CalendarModeAdviceResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CalendarModeAdviceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CalendarModeAdviceResponse;

                    /**
                     * Verifies a CalendarModeAdviceResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CalendarModeAdviceResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CalendarModeAdviceResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CalendarModeAdviceResponse;

                    /**
                     * Creates a plain object from a CalendarModeAdviceResponse message. Also converts values to other types if specified.
                     * @param message CalendarModeAdviceResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CalendarModeAdviceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CalendarModeAdviceResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CalendarModeAdviceResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CalendarModeAdviceRpcRequest. */
                interface ICalendarModeAdviceRpcRequest {

                    /** CalendarModeAdviceRpcRequest calendarModeAdviceRequestResource */
                    calendarModeAdviceRequestResource?: (google.cloud.compute.v1.ICalendarModeAdviceRequest|null);

                    /** CalendarModeAdviceRpcRequest project */
                    project?: (string|null);

                    /** CalendarModeAdviceRpcRequest region */
                    region?: (string|null);
                }

                /** Represents a CalendarModeAdviceRpcRequest. */
                class CalendarModeAdviceRpcRequest implements ICalendarModeAdviceRpcRequest {

                    /**
                     * Constructs a new CalendarModeAdviceRpcRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICalendarModeAdviceRpcRequest);

                    /** CalendarModeAdviceRpcRequest calendarModeAdviceRequestResource. */
                    public calendarModeAdviceRequestResource?: (google.cloud.compute.v1.ICalendarModeAdviceRequest|null);

                    /** CalendarModeAdviceRpcRequest project. */
                    public project: string;

                    /** CalendarModeAdviceRpcRequest region. */
                    public region: string;

                    /**
                     * Creates a new CalendarModeAdviceRpcRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CalendarModeAdviceRpcRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICalendarModeAdviceRpcRequest): google.cloud.compute.v1.CalendarModeAdviceRpcRequest;

                    /**
                     * Encodes the specified CalendarModeAdviceRpcRequest message. Does not implicitly {@link google.cloud.compute.v1.CalendarModeAdviceRpcRequest.verify|verify} messages.
                     * @param message CalendarModeAdviceRpcRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICalendarModeAdviceRpcRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CalendarModeAdviceRpcRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CalendarModeAdviceRpcRequest.verify|verify} messages.
                     * @param message CalendarModeAdviceRpcRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICalendarModeAdviceRpcRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CalendarModeAdviceRpcRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CalendarModeAdviceRpcRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CalendarModeAdviceRpcRequest;

                    /**
                     * Decodes a CalendarModeAdviceRpcRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CalendarModeAdviceRpcRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CalendarModeAdviceRpcRequest;

                    /**
                     * Verifies a CalendarModeAdviceRpcRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CalendarModeAdviceRpcRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CalendarModeAdviceRpcRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CalendarModeAdviceRpcRequest;

                    /**
                     * Creates a plain object from a CalendarModeAdviceRpcRequest message. Also converts values to other types if specified.
                     * @param message CalendarModeAdviceRpcRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CalendarModeAdviceRpcRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CalendarModeAdviceRpcRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CalendarModeAdviceRpcRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CalendarModeRecommendation. */
                interface ICalendarModeRecommendation {

                    /** CalendarModeRecommendation recommendationsPerSpec */
                    recommendationsPerSpec?: ({ [k: string]: google.cloud.compute.v1.IFutureResourcesRecommendation }|null);
                }

                /** Represents a CalendarModeRecommendation. */
                class CalendarModeRecommendation implements ICalendarModeRecommendation {

                    /**
                     * Constructs a new CalendarModeRecommendation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICalendarModeRecommendation);

                    /** CalendarModeRecommendation recommendationsPerSpec. */
                    public recommendationsPerSpec: { [k: string]: google.cloud.compute.v1.IFutureResourcesRecommendation };

                    /**
                     * Creates a new CalendarModeRecommendation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CalendarModeRecommendation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICalendarModeRecommendation): google.cloud.compute.v1.CalendarModeRecommendation;

                    /**
                     * Encodes the specified CalendarModeRecommendation message. Does not implicitly {@link google.cloud.compute.v1.CalendarModeRecommendation.verify|verify} messages.
                     * @param message CalendarModeRecommendation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICalendarModeRecommendation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CalendarModeRecommendation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CalendarModeRecommendation.verify|verify} messages.
                     * @param message CalendarModeRecommendation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICalendarModeRecommendation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CalendarModeRecommendation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CalendarModeRecommendation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CalendarModeRecommendation;

                    /**
                     * Decodes a CalendarModeRecommendation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CalendarModeRecommendation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CalendarModeRecommendation;

                    /**
                     * Verifies a CalendarModeRecommendation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CalendarModeRecommendation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CalendarModeRecommendation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CalendarModeRecommendation;

                    /**
                     * Creates a plain object from a CalendarModeRecommendation message. Also converts values to other types if specified.
                     * @param message CalendarModeRecommendation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CalendarModeRecommendation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CalendarModeRecommendation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CalendarModeRecommendation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CancelFutureReservationRequest. */
                interface ICancelFutureReservationRequest {

                    /** CancelFutureReservationRequest futureReservation */
                    futureReservation?: (string|null);

                    /** CancelFutureReservationRequest project */
                    project?: (string|null);

                    /** CancelFutureReservationRequest requestId */
                    requestId?: (string|null);

                    /** CancelFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a CancelFutureReservationRequest. */
                class CancelFutureReservationRequest implements ICancelFutureReservationRequest {

                    /**
                     * Constructs a new CancelFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICancelFutureReservationRequest);

                    /** CancelFutureReservationRequest futureReservation. */
                    public futureReservation: string;

                    /** CancelFutureReservationRequest project. */
                    public project: string;

                    /** CancelFutureReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** CancelFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new CancelFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CancelFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICancelFutureReservationRequest): google.cloud.compute.v1.CancelFutureReservationRequest;

                    /**
                     * Encodes the specified CancelFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.CancelFutureReservationRequest.verify|verify} messages.
                     * @param message CancelFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICancelFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CancelFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CancelFutureReservationRequest.verify|verify} messages.
                     * @param message CancelFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICancelFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CancelFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CancelFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CancelFutureReservationRequest;

                    /**
                     * Decodes a CancelFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CancelFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CancelFutureReservationRequest;

                    /**
                     * Verifies a CancelFutureReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CancelFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CancelFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CancelFutureReservationRequest;

                    /**
                     * Creates a plain object from a CancelFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message CancelFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CancelFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CancelFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CancelFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CancelInstanceGroupManagerResizeRequestRequest. */
                interface ICancelInstanceGroupManagerResizeRequestRequest {

                    /** CancelInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest zone */
                    zone?: (string|null);
                }

                /** Represents a CancelInstanceGroupManagerResizeRequestRequest. */
                class CancelInstanceGroupManagerResizeRequestRequest implements ICancelInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new CancelInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICancelInstanceGroupManagerResizeRequestRequest);

                    /** CancelInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** CancelInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** CancelInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /** CancelInstanceGroupManagerResizeRequestRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new CancelInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CancelInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICancelInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified CancelInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message CancelInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICancelInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CancelInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message CancelInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICancelInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CancelInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CancelInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a CancelInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CancelInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a CancelInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CancelInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CancelInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a CancelInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message CancelInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CancelInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CancelInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CircuitBreakers. */
                interface ICircuitBreakers {

                    /** CircuitBreakers maxConnections */
                    maxConnections?: (number|null);

                    /** CircuitBreakers maxPendingRequests */
                    maxPendingRequests?: (number|null);

                    /** CircuitBreakers maxRequests */
                    maxRequests?: (number|null);

                    /** CircuitBreakers maxRequestsPerConnection */
                    maxRequestsPerConnection?: (number|null);

                    /** CircuitBreakers maxRetries */
                    maxRetries?: (number|null);
                }

                /** Represents a CircuitBreakers. */
                class CircuitBreakers implements ICircuitBreakers {

                    /**
                     * Constructs a new CircuitBreakers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICircuitBreakers);

                    /** CircuitBreakers maxConnections. */
                    public maxConnections?: (number|null);

                    /** CircuitBreakers maxPendingRequests. */
                    public maxPendingRequests?: (number|null);

                    /** CircuitBreakers maxRequests. */
                    public maxRequests?: (number|null);

                    /** CircuitBreakers maxRequestsPerConnection. */
                    public maxRequestsPerConnection?: (number|null);

                    /** CircuitBreakers maxRetries. */
                    public maxRetries?: (number|null);

                    /**
                     * Creates a new CircuitBreakers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CircuitBreakers instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICircuitBreakers): google.cloud.compute.v1.CircuitBreakers;

                    /**
                     * Encodes the specified CircuitBreakers message. Does not implicitly {@link google.cloud.compute.v1.CircuitBreakers.verify|verify} messages.
                     * @param message CircuitBreakers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICircuitBreakers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CircuitBreakers message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CircuitBreakers.verify|verify} messages.
                     * @param message CircuitBreakers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICircuitBreakers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CircuitBreakers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CircuitBreakers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CircuitBreakers;

                    /**
                     * Decodes a CircuitBreakers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CircuitBreakers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CircuitBreakers;

                    /**
                     * Verifies a CircuitBreakers message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CircuitBreakers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CircuitBreakers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CircuitBreakers;

                    /**
                     * Creates a plain object from a CircuitBreakers message. Also converts values to other types if specified.
                     * @param message CircuitBreakers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CircuitBreakers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CircuitBreakers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CircuitBreakers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloneRulesFirewallPolicyRequest. */
                interface ICloneRulesFirewallPolicyRequest {

                    /** CloneRulesFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** CloneRulesFirewallPolicyRequest requestId */
                    requestId?: (string|null);

                    /** CloneRulesFirewallPolicyRequest sourceFirewallPolicy */
                    sourceFirewallPolicy?: (string|null);
                }

                /** Represents a CloneRulesFirewallPolicyRequest. */
                class CloneRulesFirewallPolicyRequest implements ICloneRulesFirewallPolicyRequest {

                    /**
                     * Constructs a new CloneRulesFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICloneRulesFirewallPolicyRequest);

                    /** CloneRulesFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** CloneRulesFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** CloneRulesFirewallPolicyRequest sourceFirewallPolicy. */
                    public sourceFirewallPolicy?: (string|null);

                    /**
                     * Creates a new CloneRulesFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloneRulesFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICloneRulesFirewallPolicyRequest): google.cloud.compute.v1.CloneRulesFirewallPolicyRequest;

                    /**
                     * Encodes the specified CloneRulesFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.CloneRulesFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICloneRulesFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloneRulesFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CloneRulesFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICloneRulesFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloneRulesFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloneRulesFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CloneRulesFirewallPolicyRequest;

                    /**
                     * Decodes a CloneRulesFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloneRulesFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CloneRulesFirewallPolicyRequest;

                    /**
                     * Verifies a CloneRulesFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloneRulesFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloneRulesFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CloneRulesFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a CloneRulesFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message CloneRulesFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CloneRulesFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloneRulesFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloneRulesFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloneRulesNetworkFirewallPolicyRequest. */
                interface ICloneRulesNetworkFirewallPolicyRequest {

                    /** CloneRulesNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** CloneRulesNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** CloneRulesNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);

                    /** CloneRulesNetworkFirewallPolicyRequest sourceFirewallPolicy */
                    sourceFirewallPolicy?: (string|null);
                }

                /** Represents a CloneRulesNetworkFirewallPolicyRequest. */
                class CloneRulesNetworkFirewallPolicyRequest implements ICloneRulesNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new CloneRulesNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICloneRulesNetworkFirewallPolicyRequest);

                    /** CloneRulesNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** CloneRulesNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** CloneRulesNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** CloneRulesNetworkFirewallPolicyRequest sourceFirewallPolicy. */
                    public sourceFirewallPolicy?: (string|null);

                    /**
                     * Creates a new CloneRulesNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloneRulesNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICloneRulesNetworkFirewallPolicyRequest): google.cloud.compute.v1.CloneRulesNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified CloneRulesNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.CloneRulesNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICloneRulesNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloneRulesNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CloneRulesNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICloneRulesNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloneRulesNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloneRulesNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CloneRulesNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a CloneRulesNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloneRulesNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CloneRulesNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a CloneRulesNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloneRulesNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloneRulesNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CloneRulesNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a CloneRulesNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message CloneRulesNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CloneRulesNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloneRulesNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloneRulesNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloneRulesRegionNetworkFirewallPolicyRequest. */
                interface ICloneRulesRegionNetworkFirewallPolicyRequest {

                    /** CloneRulesRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest sourceFirewallPolicy */
                    sourceFirewallPolicy?: (string|null);
                }

                /** Represents a CloneRulesRegionNetworkFirewallPolicyRequest. */
                class CloneRulesRegionNetworkFirewallPolicyRequest implements ICloneRulesRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new CloneRulesRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICloneRulesRegionNetworkFirewallPolicyRequest);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** CloneRulesRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** CloneRulesRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** CloneRulesRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest sourceFirewallPolicy. */
                    public sourceFirewallPolicy?: (string|null);

                    /**
                     * Creates a new CloneRulesRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloneRulesRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICloneRulesRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.CloneRulesRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified CloneRulesRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.CloneRulesRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICloneRulesRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloneRulesRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CloneRulesRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICloneRulesRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloneRulesRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloneRulesRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CloneRulesRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a CloneRulesRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloneRulesRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CloneRulesRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a CloneRulesRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloneRulesRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloneRulesRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CloneRulesRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a CloneRulesRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message CloneRulesRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CloneRulesRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloneRulesRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloneRulesRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Commitment. */
                interface ICommitment {

                    /** Commitment autoRenew */
                    autoRenew?: (boolean|null);

                    /** Commitment category */
                    category?: (string|null);

                    /** Commitment creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Commitment customEndTimestamp */
                    customEndTimestamp?: (string|null);

                    /** Commitment description */
                    description?: (string|null);

                    /** Commitment endTimestamp */
                    endTimestamp?: (string|null);

                    /** Commitment existingReservations */
                    existingReservations?: (string[]|null);

                    /** Commitment id */
                    id?: (number|Long|string|null);

                    /** Commitment kind */
                    kind?: (string|null);

                    /** Commitment licenseResource */
                    licenseResource?: (google.cloud.compute.v1.ILicenseResourceCommitment|null);

                    /** Commitment mergeSourceCommitments */
                    mergeSourceCommitments?: (string[]|null);

                    /** Commitment name */
                    name?: (string|null);

                    /** Commitment plan */
                    plan?: (string|null);

                    /** Commitment region */
                    region?: (string|null);

                    /** Commitment reservations */
                    reservations?: (google.cloud.compute.v1.IReservation[]|null);

                    /** Commitment resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1.ICommitmentResourceStatus|null);

                    /** Commitment resources */
                    resources?: (google.cloud.compute.v1.IResourceCommitment[]|null);

                    /** Commitment selfLink */
                    selfLink?: (string|null);

                    /** Commitment splitSourceCommitment */
                    splitSourceCommitment?: (string|null);

                    /** Commitment startTimestamp */
                    startTimestamp?: (string|null);

                    /** Commitment status */
                    status?: (string|null);

                    /** Commitment statusMessage */
                    statusMessage?: (string|null);

                    /** Commitment type */
                    type?: (string|null);
                }

                /** Represents a Commitment. */
                class Commitment implements ICommitment {

                    /**
                     * Constructs a new Commitment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICommitment);

                    /** Commitment autoRenew. */
                    public autoRenew?: (boolean|null);

                    /** Commitment category. */
                    public category?: (string|null);

                    /** Commitment creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Commitment customEndTimestamp. */
                    public customEndTimestamp?: (string|null);

                    /** Commitment description. */
                    public description?: (string|null);

                    /** Commitment endTimestamp. */
                    public endTimestamp?: (string|null);

                    /** Commitment existingReservations. */
                    public existingReservations: string[];

                    /** Commitment id. */
                    public id?: (number|Long|string|null);

                    /** Commitment kind. */
                    public kind?: (string|null);

                    /** Commitment licenseResource. */
                    public licenseResource?: (google.cloud.compute.v1.ILicenseResourceCommitment|null);

                    /** Commitment mergeSourceCommitments. */
                    public mergeSourceCommitments: string[];

                    /** Commitment name. */
                    public name?: (string|null);

                    /** Commitment plan. */
                    public plan?: (string|null);

                    /** Commitment region. */
                    public region?: (string|null);

                    /** Commitment reservations. */
                    public reservations: google.cloud.compute.v1.IReservation[];

                    /** Commitment resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1.ICommitmentResourceStatus|null);

                    /** Commitment resources. */
                    public resources: google.cloud.compute.v1.IResourceCommitment[];

                    /** Commitment selfLink. */
                    public selfLink?: (string|null);

                    /** Commitment splitSourceCommitment. */
                    public splitSourceCommitment?: (string|null);

                    /** Commitment startTimestamp. */
                    public startTimestamp?: (string|null);

                    /** Commitment status. */
                    public status?: (string|null);

                    /** Commitment statusMessage. */
                    public statusMessage?: (string|null);

                    /** Commitment type. */
                    public type?: (string|null);

                    /**
                     * Creates a new Commitment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Commitment instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICommitment): google.cloud.compute.v1.Commitment;

                    /**
                     * Encodes the specified Commitment message. Does not implicitly {@link google.cloud.compute.v1.Commitment.verify|verify} messages.
                     * @param message Commitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Commitment message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Commitment.verify|verify} messages.
                     * @param message Commitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Commitment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Commitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Commitment;

                    /**
                     * Decodes a Commitment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Commitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Commitment;

                    /**
                     * Verifies a Commitment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Commitment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Commitment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Commitment;

                    /**
                     * Creates a plain object from a Commitment message. Also converts values to other types if specified.
                     * @param message Commitment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Commitment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Commitment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Commitment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Commitment {

                    /** Category enum. */
                    enum Category {
                        UNDEFINED_CATEGORY = 0,
                        CATEGORY_UNSPECIFIED = 509189462,
                        LICENSE = 347869217,
                        MACHINE = 469553191
                    }

                    /** Plan enum. */
                    enum Plan {
                        UNDEFINED_PLAN = 0,
                        INVALID = 530283991,
                        THIRTY_SIX_MONTH = 266295942,
                        TWELVE_MONTH = 173083962
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        CANCELLED = 41957681,
                        CREATING = 455564985,
                        EXPIRED = 482489093,
                        NOT_YET_ACTIVE = 20607337
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        ACCELERATOR_OPTIMIZED = 280848403,
                        ACCELERATOR_OPTIMIZED_A3 = 158574526,
                        ACCELERATOR_OPTIMIZED_A3_MEGA = 156517459,
                        ACCELERATOR_OPTIMIZED_A3_ULTRA = 27812811,
                        ACCELERATOR_OPTIMIZED_A4 = 158574527,
                        COMPUTE_OPTIMIZED = 158349023,
                        COMPUTE_OPTIMIZED_C2D = 383246453,
                        COMPUTE_OPTIMIZED_C3 = 428004784,
                        COMPUTE_OPTIMIZED_C3D = 383246484,
                        COMPUTE_OPTIMIZED_H3 = 428004939,
                        COMPUTE_OPTIMIZED_H4D = 383251320,
                        GENERAL_PURPOSE = 299793543,
                        GENERAL_PURPOSE_C4 = 301911817,
                        GENERAL_PURPOSE_C4A = 232460888,
                        GENERAL_PURPOSE_C4D = 232460891,
                        GENERAL_PURPOSE_E2 = 301911877,
                        GENERAL_PURPOSE_N2 = 301912156,
                        GENERAL_PURPOSE_N2D = 232471400,
                        GENERAL_PURPOSE_N4 = 301912158,
                        GENERAL_PURPOSE_N4A = 232471459,
                        GENERAL_PURPOSE_N4D = 232471462,
                        GENERAL_PURPOSE_T2D = 232477166,
                        GRAPHICS_OPTIMIZED = 68500563,
                        GRAPHICS_OPTIMIZED_G4 = 54029369,
                        MEMORY_OPTIMIZED = 281753417,
                        MEMORY_OPTIMIZED_M3 = 276301372,
                        MEMORY_OPTIMIZED_M4 = 276301373,
                        MEMORY_OPTIMIZED_M4_6TB = 210543650,
                        MEMORY_OPTIMIZED_X4_1440_24T = 206669823,
                        MEMORY_OPTIMIZED_X4_16TB = 183089120,
                        MEMORY_OPTIMIZED_X4_1920_32T = 291963529,
                        MEMORY_OPTIMIZED_X4_24TB = 183116989,
                        MEMORY_OPTIMIZED_X4_32TB = 183144858,
                        MEMORY_OPTIMIZED_X4_480_6T = 478547742,
                        MEMORY_OPTIMIZED_X4_480_8T = 478547804,
                        MEMORY_OPTIMIZED_X4_960_12T = 424752410,
                        MEMORY_OPTIMIZED_X4_960_16T = 424752534,
                        STORAGE_OPTIMIZED_Z3 = 316796085,
                        TYPE_UNSPECIFIED = 437714322
                    }
                }

                /** Properties of a CommitmentAggregatedList. */
                interface ICommitmentAggregatedList {

                    /** CommitmentAggregatedList id */
                    id?: (string|null);

                    /** CommitmentAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ICommitmentsScopedList }|null);

                    /** CommitmentAggregatedList kind */
                    kind?: (string|null);

                    /** CommitmentAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CommitmentAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** CommitmentAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** CommitmentAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a CommitmentAggregatedList. */
                class CommitmentAggregatedList implements ICommitmentAggregatedList {

                    /**
                     * Constructs a new CommitmentAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICommitmentAggregatedList);

                    /** CommitmentAggregatedList id. */
                    public id?: (string|null);

                    /** CommitmentAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ICommitmentsScopedList };

                    /** CommitmentAggregatedList kind. */
                    public kind?: (string|null);

                    /** CommitmentAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CommitmentAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** CommitmentAggregatedList unreachables. */
                    public unreachables: string[];

                    /** CommitmentAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new CommitmentAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CommitmentAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICommitmentAggregatedList): google.cloud.compute.v1.CommitmentAggregatedList;

                    /**
                     * Encodes the specified CommitmentAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.CommitmentAggregatedList.verify|verify} messages.
                     * @param message CommitmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICommitmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CommitmentAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CommitmentAggregatedList.verify|verify} messages.
                     * @param message CommitmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICommitmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CommitmentAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CommitmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CommitmentAggregatedList;

                    /**
                     * Decodes a CommitmentAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CommitmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CommitmentAggregatedList;

                    /**
                     * Verifies a CommitmentAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CommitmentAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CommitmentAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CommitmentAggregatedList;

                    /**
                     * Creates a plain object from a CommitmentAggregatedList message. Also converts values to other types if specified.
                     * @param message CommitmentAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CommitmentAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CommitmentAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CommitmentAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CommitmentList. */
                interface ICommitmentList {

                    /** CommitmentList id */
                    id?: (string|null);

                    /** CommitmentList items */
                    items?: (google.cloud.compute.v1.ICommitment[]|null);

                    /** CommitmentList kind */
                    kind?: (string|null);

                    /** CommitmentList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CommitmentList selfLink */
                    selfLink?: (string|null);

                    /** CommitmentList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a CommitmentList. */
                class CommitmentList implements ICommitmentList {

                    /**
                     * Constructs a new CommitmentList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICommitmentList);

                    /** CommitmentList id. */
                    public id?: (string|null);

                    /** CommitmentList items. */
                    public items: google.cloud.compute.v1.ICommitment[];

                    /** CommitmentList kind. */
                    public kind?: (string|null);

                    /** CommitmentList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CommitmentList selfLink. */
                    public selfLink?: (string|null);

                    /** CommitmentList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new CommitmentList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CommitmentList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICommitmentList): google.cloud.compute.v1.CommitmentList;

                    /**
                     * Encodes the specified CommitmentList message. Does not implicitly {@link google.cloud.compute.v1.CommitmentList.verify|verify} messages.
                     * @param message CommitmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICommitmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CommitmentList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CommitmentList.verify|verify} messages.
                     * @param message CommitmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICommitmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CommitmentList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CommitmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CommitmentList;

                    /**
                     * Decodes a CommitmentList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CommitmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CommitmentList;

                    /**
                     * Verifies a CommitmentList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CommitmentList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CommitmentList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CommitmentList;

                    /**
                     * Creates a plain object from a CommitmentList message. Also converts values to other types if specified.
                     * @param message CommitmentList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CommitmentList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CommitmentList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CommitmentList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CommitmentResourceStatus. */
                interface ICommitmentResourceStatus {

                    /** CommitmentResourceStatus customTermEligibilityEndTimestamp */
                    customTermEligibilityEndTimestamp?: (string|null);
                }

                /** Represents a CommitmentResourceStatus. */
                class CommitmentResourceStatus implements ICommitmentResourceStatus {

                    /**
                     * Constructs a new CommitmentResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICommitmentResourceStatus);

                    /** CommitmentResourceStatus customTermEligibilityEndTimestamp. */
                    public customTermEligibilityEndTimestamp?: (string|null);

                    /**
                     * Creates a new CommitmentResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CommitmentResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICommitmentResourceStatus): google.cloud.compute.v1.CommitmentResourceStatus;

                    /**
                     * Encodes the specified CommitmentResourceStatus message. Does not implicitly {@link google.cloud.compute.v1.CommitmentResourceStatus.verify|verify} messages.
                     * @param message CommitmentResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICommitmentResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CommitmentResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CommitmentResourceStatus.verify|verify} messages.
                     * @param message CommitmentResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICommitmentResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CommitmentResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CommitmentResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CommitmentResourceStatus;

                    /**
                     * Decodes a CommitmentResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CommitmentResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CommitmentResourceStatus;

                    /**
                     * Verifies a CommitmentResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CommitmentResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CommitmentResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CommitmentResourceStatus;

                    /**
                     * Creates a plain object from a CommitmentResourceStatus message. Also converts values to other types if specified.
                     * @param message CommitmentResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CommitmentResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CommitmentResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CommitmentResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CommitmentsScopedList. */
                interface ICommitmentsScopedList {

                    /** CommitmentsScopedList commitments */
                    commitments?: (google.cloud.compute.v1.ICommitment[]|null);

                    /** CommitmentsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a CommitmentsScopedList. */
                class CommitmentsScopedList implements ICommitmentsScopedList {

                    /**
                     * Constructs a new CommitmentsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICommitmentsScopedList);

                    /** CommitmentsScopedList commitments. */
                    public commitments: google.cloud.compute.v1.ICommitment[];

                    /** CommitmentsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new CommitmentsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CommitmentsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICommitmentsScopedList): google.cloud.compute.v1.CommitmentsScopedList;

                    /**
                     * Encodes the specified CommitmentsScopedList message. Does not implicitly {@link google.cloud.compute.v1.CommitmentsScopedList.verify|verify} messages.
                     * @param message CommitmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICommitmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CommitmentsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CommitmentsScopedList.verify|verify} messages.
                     * @param message CommitmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICommitmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CommitmentsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CommitmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CommitmentsScopedList;

                    /**
                     * Decodes a CommitmentsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CommitmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CommitmentsScopedList;

                    /**
                     * Verifies a CommitmentsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CommitmentsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CommitmentsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CommitmentsScopedList;

                    /**
                     * Creates a plain object from a CommitmentsScopedList message. Also converts values to other types if specified.
                     * @param message CommitmentsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CommitmentsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CommitmentsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CommitmentsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompositeHealthCheck. */
                interface ICompositeHealthCheck {

                    /** CompositeHealthCheck creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** CompositeHealthCheck description */
                    description?: (string|null);

                    /** CompositeHealthCheck fingerprint */
                    fingerprint?: (string|null);

                    /** CompositeHealthCheck healthDestination */
                    healthDestination?: (string|null);

                    /** CompositeHealthCheck healthSources */
                    healthSources?: (string[]|null);

                    /** CompositeHealthCheck id */
                    id?: (number|Long|string|null);

                    /** CompositeHealthCheck kind */
                    kind?: (string|null);

                    /** CompositeHealthCheck name */
                    name?: (string|null);

                    /** CompositeHealthCheck region */
                    region?: (string|null);

                    /** CompositeHealthCheck selfLink */
                    selfLink?: (string|null);

                    /** CompositeHealthCheck selfLinkWithId */
                    selfLinkWithId?: (string|null);
                }

                /** Represents a CompositeHealthCheck. */
                class CompositeHealthCheck implements ICompositeHealthCheck {

                    /**
                     * Constructs a new CompositeHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICompositeHealthCheck);

                    /** CompositeHealthCheck creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** CompositeHealthCheck description. */
                    public description?: (string|null);

                    /** CompositeHealthCheck fingerprint. */
                    public fingerprint?: (string|null);

                    /** CompositeHealthCheck healthDestination. */
                    public healthDestination?: (string|null);

                    /** CompositeHealthCheck healthSources. */
                    public healthSources: string[];

                    /** CompositeHealthCheck id. */
                    public id?: (number|Long|string|null);

                    /** CompositeHealthCheck kind. */
                    public kind?: (string|null);

                    /** CompositeHealthCheck name. */
                    public name?: (string|null);

                    /** CompositeHealthCheck region. */
                    public region?: (string|null);

                    /** CompositeHealthCheck selfLink. */
                    public selfLink?: (string|null);

                    /** CompositeHealthCheck selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /**
                     * Creates a new CompositeHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompositeHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICompositeHealthCheck): google.cloud.compute.v1.CompositeHealthCheck;

                    /**
                     * Encodes the specified CompositeHealthCheck message. Does not implicitly {@link google.cloud.compute.v1.CompositeHealthCheck.verify|verify} messages.
                     * @param message CompositeHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICompositeHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompositeHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CompositeHealthCheck.verify|verify} messages.
                     * @param message CompositeHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICompositeHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompositeHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompositeHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CompositeHealthCheck;

                    /**
                     * Decodes a CompositeHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompositeHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CompositeHealthCheck;

                    /**
                     * Verifies a CompositeHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompositeHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompositeHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CompositeHealthCheck;

                    /**
                     * Creates a plain object from a CompositeHealthCheck message. Also converts values to other types if specified.
                     * @param message CompositeHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CompositeHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompositeHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompositeHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompositeHealthCheckAggregatedList. */
                interface ICompositeHealthCheckAggregatedList {

                    /** CompositeHealthCheckAggregatedList id */
                    id?: (string|null);

                    /** CompositeHealthCheckAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ICompositeHealthChecksScopedList }|null);

                    /** CompositeHealthCheckAggregatedList kind */
                    kind?: (string|null);

                    /** CompositeHealthCheckAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CompositeHealthCheckAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** CompositeHealthCheckAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** CompositeHealthCheckAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a CompositeHealthCheckAggregatedList. */
                class CompositeHealthCheckAggregatedList implements ICompositeHealthCheckAggregatedList {

                    /**
                     * Constructs a new CompositeHealthCheckAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICompositeHealthCheckAggregatedList);

                    /** CompositeHealthCheckAggregatedList id. */
                    public id?: (string|null);

                    /** CompositeHealthCheckAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ICompositeHealthChecksScopedList };

                    /** CompositeHealthCheckAggregatedList kind. */
                    public kind?: (string|null);

                    /** CompositeHealthCheckAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CompositeHealthCheckAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** CompositeHealthCheckAggregatedList unreachables. */
                    public unreachables: string[];

                    /** CompositeHealthCheckAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new CompositeHealthCheckAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompositeHealthCheckAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICompositeHealthCheckAggregatedList): google.cloud.compute.v1.CompositeHealthCheckAggregatedList;

                    /**
                     * Encodes the specified CompositeHealthCheckAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.CompositeHealthCheckAggregatedList.verify|verify} messages.
                     * @param message CompositeHealthCheckAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICompositeHealthCheckAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompositeHealthCheckAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CompositeHealthCheckAggregatedList.verify|verify} messages.
                     * @param message CompositeHealthCheckAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICompositeHealthCheckAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompositeHealthCheckAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompositeHealthCheckAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CompositeHealthCheckAggregatedList;

                    /**
                     * Decodes a CompositeHealthCheckAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompositeHealthCheckAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CompositeHealthCheckAggregatedList;

                    /**
                     * Verifies a CompositeHealthCheckAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompositeHealthCheckAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompositeHealthCheckAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CompositeHealthCheckAggregatedList;

                    /**
                     * Creates a plain object from a CompositeHealthCheckAggregatedList message. Also converts values to other types if specified.
                     * @param message CompositeHealthCheckAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CompositeHealthCheckAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompositeHealthCheckAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompositeHealthCheckAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompositeHealthCheckList. */
                interface ICompositeHealthCheckList {

                    /** CompositeHealthCheckList id */
                    id?: (string|null);

                    /** CompositeHealthCheckList items */
                    items?: (google.cloud.compute.v1.ICompositeHealthCheck[]|null);

                    /** CompositeHealthCheckList kind */
                    kind?: (string|null);

                    /** CompositeHealthCheckList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CompositeHealthCheckList selfLink */
                    selfLink?: (string|null);

                    /** CompositeHealthCheckList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a CompositeHealthCheckList. */
                class CompositeHealthCheckList implements ICompositeHealthCheckList {

                    /**
                     * Constructs a new CompositeHealthCheckList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICompositeHealthCheckList);

                    /** CompositeHealthCheckList id. */
                    public id?: (string|null);

                    /** CompositeHealthCheckList items. */
                    public items: google.cloud.compute.v1.ICompositeHealthCheck[];

                    /** CompositeHealthCheckList kind. */
                    public kind?: (string|null);

                    /** CompositeHealthCheckList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CompositeHealthCheckList selfLink. */
                    public selfLink?: (string|null);

                    /** CompositeHealthCheckList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new CompositeHealthCheckList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompositeHealthCheckList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICompositeHealthCheckList): google.cloud.compute.v1.CompositeHealthCheckList;

                    /**
                     * Encodes the specified CompositeHealthCheckList message. Does not implicitly {@link google.cloud.compute.v1.CompositeHealthCheckList.verify|verify} messages.
                     * @param message CompositeHealthCheckList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICompositeHealthCheckList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompositeHealthCheckList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CompositeHealthCheckList.verify|verify} messages.
                     * @param message CompositeHealthCheckList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICompositeHealthCheckList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompositeHealthCheckList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompositeHealthCheckList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CompositeHealthCheckList;

                    /**
                     * Decodes a CompositeHealthCheckList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompositeHealthCheckList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CompositeHealthCheckList;

                    /**
                     * Verifies a CompositeHealthCheckList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompositeHealthCheckList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompositeHealthCheckList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CompositeHealthCheckList;

                    /**
                     * Creates a plain object from a CompositeHealthCheckList message. Also converts values to other types if specified.
                     * @param message CompositeHealthCheckList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CompositeHealthCheckList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompositeHealthCheckList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompositeHealthCheckList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompositeHealthChecksScopedList. */
                interface ICompositeHealthChecksScopedList {

                    /** CompositeHealthChecksScopedList compositeHealthChecks */
                    compositeHealthChecks?: (google.cloud.compute.v1.ICompositeHealthCheck[]|null);

                    /** CompositeHealthChecksScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a CompositeHealthChecksScopedList. */
                class CompositeHealthChecksScopedList implements ICompositeHealthChecksScopedList {

                    /**
                     * Constructs a new CompositeHealthChecksScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICompositeHealthChecksScopedList);

                    /** CompositeHealthChecksScopedList compositeHealthChecks. */
                    public compositeHealthChecks: google.cloud.compute.v1.ICompositeHealthCheck[];

                    /** CompositeHealthChecksScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new CompositeHealthChecksScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompositeHealthChecksScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICompositeHealthChecksScopedList): google.cloud.compute.v1.CompositeHealthChecksScopedList;

                    /**
                     * Encodes the specified CompositeHealthChecksScopedList message. Does not implicitly {@link google.cloud.compute.v1.CompositeHealthChecksScopedList.verify|verify} messages.
                     * @param message CompositeHealthChecksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICompositeHealthChecksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompositeHealthChecksScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CompositeHealthChecksScopedList.verify|verify} messages.
                     * @param message CompositeHealthChecksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICompositeHealthChecksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompositeHealthChecksScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompositeHealthChecksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CompositeHealthChecksScopedList;

                    /**
                     * Decodes a CompositeHealthChecksScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompositeHealthChecksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CompositeHealthChecksScopedList;

                    /**
                     * Verifies a CompositeHealthChecksScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompositeHealthChecksScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompositeHealthChecksScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CompositeHealthChecksScopedList;

                    /**
                     * Creates a plain object from a CompositeHealthChecksScopedList message. Also converts values to other types if specified.
                     * @param message CompositeHealthChecksScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CompositeHealthChecksScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompositeHealthChecksScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompositeHealthChecksScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConfidentialInstanceConfig. */
                interface IConfidentialInstanceConfig {

                    /** ConfidentialInstanceConfig confidentialInstanceType */
                    confidentialInstanceType?: (string|null);

                    /** ConfidentialInstanceConfig enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);
                }

                /** Represents a ConfidentialInstanceConfig. */
                class ConfidentialInstanceConfig implements IConfidentialInstanceConfig {

                    /**
                     * Constructs a new ConfidentialInstanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IConfidentialInstanceConfig);

                    /** ConfidentialInstanceConfig confidentialInstanceType. */
                    public confidentialInstanceType?: (string|null);

                    /** ConfidentialInstanceConfig enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /**
                     * Creates a new ConfidentialInstanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConfidentialInstanceConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IConfidentialInstanceConfig): google.cloud.compute.v1.ConfidentialInstanceConfig;

                    /**
                     * Encodes the specified ConfidentialInstanceConfig message. Does not implicitly {@link google.cloud.compute.v1.ConfidentialInstanceConfig.verify|verify} messages.
                     * @param message ConfidentialInstanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IConfidentialInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConfidentialInstanceConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ConfidentialInstanceConfig.verify|verify} messages.
                     * @param message ConfidentialInstanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IConfidentialInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConfidentialInstanceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConfidentialInstanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ConfidentialInstanceConfig;

                    /**
                     * Decodes a ConfidentialInstanceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConfidentialInstanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ConfidentialInstanceConfig;

                    /**
                     * Verifies a ConfidentialInstanceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConfidentialInstanceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConfidentialInstanceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ConfidentialInstanceConfig;

                    /**
                     * Creates a plain object from a ConfidentialInstanceConfig message. Also converts values to other types if specified.
                     * @param message ConfidentialInstanceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ConfidentialInstanceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConfidentialInstanceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConfidentialInstanceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ConfidentialInstanceConfig {

                    /** ConfidentialInstanceType enum. */
                    enum ConfidentialInstanceType {
                        UNDEFINED_CONFIDENTIAL_INSTANCE_TYPE = 0,
                        CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED = 115021829,
                        SEV = 81988,
                        SEV_SNP = 21753562,
                        TDX = 82920
                    }
                }

                /** Properties of a ConnectionDraining. */
                interface IConnectionDraining {

                    /** ConnectionDraining drainingTimeoutSec */
                    drainingTimeoutSec?: (number|null);
                }

                /** Represents a ConnectionDraining. */
                class ConnectionDraining implements IConnectionDraining {

                    /**
                     * Constructs a new ConnectionDraining.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IConnectionDraining);

                    /** ConnectionDraining drainingTimeoutSec. */
                    public drainingTimeoutSec?: (number|null);

                    /**
                     * Creates a new ConnectionDraining instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConnectionDraining instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IConnectionDraining): google.cloud.compute.v1.ConnectionDraining;

                    /**
                     * Encodes the specified ConnectionDraining message. Does not implicitly {@link google.cloud.compute.v1.ConnectionDraining.verify|verify} messages.
                     * @param message ConnectionDraining message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IConnectionDraining, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConnectionDraining message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ConnectionDraining.verify|verify} messages.
                     * @param message ConnectionDraining message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IConnectionDraining, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConnectionDraining message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConnectionDraining
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ConnectionDraining;

                    /**
                     * Decodes a ConnectionDraining message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConnectionDraining
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ConnectionDraining;

                    /**
                     * Verifies a ConnectionDraining message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConnectionDraining message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConnectionDraining
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ConnectionDraining;

                    /**
                     * Creates a plain object from a ConnectionDraining message. Also converts values to other types if specified.
                     * @param message ConnectionDraining
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ConnectionDraining, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConnectionDraining to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConnectionDraining
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConsistentHashLoadBalancerSettings. */
                interface IConsistentHashLoadBalancerSettings {

                    /** ConsistentHashLoadBalancerSettings httpCookie */
                    httpCookie?: (google.cloud.compute.v1.IConsistentHashLoadBalancerSettingsHttpCookie|null);

                    /** ConsistentHashLoadBalancerSettings httpHeaderName */
                    httpHeaderName?: (string|null);

                    /** ConsistentHashLoadBalancerSettings minimumRingSize */
                    minimumRingSize?: (number|Long|string|null);
                }

                /** Represents a ConsistentHashLoadBalancerSettings. */
                class ConsistentHashLoadBalancerSettings implements IConsistentHashLoadBalancerSettings {

                    /**
                     * Constructs a new ConsistentHashLoadBalancerSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IConsistentHashLoadBalancerSettings);

                    /** ConsistentHashLoadBalancerSettings httpCookie. */
                    public httpCookie?: (google.cloud.compute.v1.IConsistentHashLoadBalancerSettingsHttpCookie|null);

                    /** ConsistentHashLoadBalancerSettings httpHeaderName. */
                    public httpHeaderName?: (string|null);

                    /** ConsistentHashLoadBalancerSettings minimumRingSize. */
                    public minimumRingSize?: (number|Long|string|null);

                    /**
                     * Creates a new ConsistentHashLoadBalancerSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConsistentHashLoadBalancerSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IConsistentHashLoadBalancerSettings): google.cloud.compute.v1.ConsistentHashLoadBalancerSettings;

                    /**
                     * Encodes the specified ConsistentHashLoadBalancerSettings message. Does not implicitly {@link google.cloud.compute.v1.ConsistentHashLoadBalancerSettings.verify|verify} messages.
                     * @param message ConsistentHashLoadBalancerSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IConsistentHashLoadBalancerSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConsistentHashLoadBalancerSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ConsistentHashLoadBalancerSettings.verify|verify} messages.
                     * @param message ConsistentHashLoadBalancerSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IConsistentHashLoadBalancerSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConsistentHashLoadBalancerSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConsistentHashLoadBalancerSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ConsistentHashLoadBalancerSettings;

                    /**
                     * Decodes a ConsistentHashLoadBalancerSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConsistentHashLoadBalancerSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ConsistentHashLoadBalancerSettings;

                    /**
                     * Verifies a ConsistentHashLoadBalancerSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConsistentHashLoadBalancerSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConsistentHashLoadBalancerSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ConsistentHashLoadBalancerSettings;

                    /**
                     * Creates a plain object from a ConsistentHashLoadBalancerSettings message. Also converts values to other types if specified.
                     * @param message ConsistentHashLoadBalancerSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ConsistentHashLoadBalancerSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConsistentHashLoadBalancerSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConsistentHashLoadBalancerSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConsistentHashLoadBalancerSettingsHttpCookie. */
                interface IConsistentHashLoadBalancerSettingsHttpCookie {

                    /** ConsistentHashLoadBalancerSettingsHttpCookie name */
                    name?: (string|null);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie path */
                    path?: (string|null);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie ttl */
                    ttl?: (google.cloud.compute.v1.IDuration|null);
                }

                /** Represents a ConsistentHashLoadBalancerSettingsHttpCookie. */
                class ConsistentHashLoadBalancerSettingsHttpCookie implements IConsistentHashLoadBalancerSettingsHttpCookie {

                    /**
                     * Constructs a new ConsistentHashLoadBalancerSettingsHttpCookie.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IConsistentHashLoadBalancerSettingsHttpCookie);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie name. */
                    public name?: (string|null);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie path. */
                    public path?: (string|null);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie ttl. */
                    public ttl?: (google.cloud.compute.v1.IDuration|null);

                    /**
                     * Creates a new ConsistentHashLoadBalancerSettingsHttpCookie instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConsistentHashLoadBalancerSettingsHttpCookie instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IConsistentHashLoadBalancerSettingsHttpCookie): google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookie;

                    /**
                     * Encodes the specified ConsistentHashLoadBalancerSettingsHttpCookie message. Does not implicitly {@link google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookie.verify|verify} messages.
                     * @param message ConsistentHashLoadBalancerSettingsHttpCookie message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IConsistentHashLoadBalancerSettingsHttpCookie, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConsistentHashLoadBalancerSettingsHttpCookie message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookie.verify|verify} messages.
                     * @param message ConsistentHashLoadBalancerSettingsHttpCookie message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IConsistentHashLoadBalancerSettingsHttpCookie, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConsistentHashLoadBalancerSettingsHttpCookie message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConsistentHashLoadBalancerSettingsHttpCookie
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookie;

                    /**
                     * Decodes a ConsistentHashLoadBalancerSettingsHttpCookie message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConsistentHashLoadBalancerSettingsHttpCookie
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookie;

                    /**
                     * Verifies a ConsistentHashLoadBalancerSettingsHttpCookie message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConsistentHashLoadBalancerSettingsHttpCookie message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConsistentHashLoadBalancerSettingsHttpCookie
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookie;

                    /**
                     * Creates a plain object from a ConsistentHashLoadBalancerSettingsHttpCookie message. Also converts values to other types if specified.
                     * @param message ConsistentHashLoadBalancerSettingsHttpCookie
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookie, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConsistentHashLoadBalancerSettingsHttpCookie to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConsistentHashLoadBalancerSettingsHttpCookie
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CopyRulesOrganizationSecurityPolicyRequest. */
                interface ICopyRulesOrganizationSecurityPolicyRequest {

                    /** CopyRulesOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** CopyRulesOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** CopyRulesOrganizationSecurityPolicyRequest sourceSecurityPolicy */
                    sourceSecurityPolicy?: (string|null);
                }

                /** Represents a CopyRulesOrganizationSecurityPolicyRequest. */
                class CopyRulesOrganizationSecurityPolicyRequest implements ICopyRulesOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new CopyRulesOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICopyRulesOrganizationSecurityPolicyRequest);

                    /** CopyRulesOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** CopyRulesOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** CopyRulesOrganizationSecurityPolicyRequest sourceSecurityPolicy. */
                    public sourceSecurityPolicy?: (string|null);

                    /**
                     * Creates a new CopyRulesOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CopyRulesOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICopyRulesOrganizationSecurityPolicyRequest): google.cloud.compute.v1.CopyRulesOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified CopyRulesOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.CopyRulesOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message CopyRulesOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICopyRulesOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CopyRulesOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CopyRulesOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message CopyRulesOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICopyRulesOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CopyRulesOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CopyRulesOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CopyRulesOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a CopyRulesOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CopyRulesOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CopyRulesOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a CopyRulesOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CopyRulesOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CopyRulesOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CopyRulesOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a CopyRulesOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message CopyRulesOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CopyRulesOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CopyRulesOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CopyRulesOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CorsPolicy. */
                interface ICorsPolicy {

                    /** CorsPolicy allowCredentials */
                    allowCredentials?: (boolean|null);

                    /** CorsPolicy allowHeaders */
                    allowHeaders?: (string[]|null);

                    /** CorsPolicy allowMethods */
                    allowMethods?: (string[]|null);

                    /** CorsPolicy allowOriginRegexes */
                    allowOriginRegexes?: (string[]|null);

                    /** CorsPolicy allowOrigins */
                    allowOrigins?: (string[]|null);

                    /** CorsPolicy disabled */
                    disabled?: (boolean|null);

                    /** CorsPolicy exposeHeaders */
                    exposeHeaders?: (string[]|null);

                    /** CorsPolicy maxAge */
                    maxAge?: (number|null);
                }

                /** Represents a CorsPolicy. */
                class CorsPolicy implements ICorsPolicy {

                    /**
                     * Constructs a new CorsPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICorsPolicy);

                    /** CorsPolicy allowCredentials. */
                    public allowCredentials?: (boolean|null);

                    /** CorsPolicy allowHeaders. */
                    public allowHeaders: string[];

                    /** CorsPolicy allowMethods. */
                    public allowMethods: string[];

                    /** CorsPolicy allowOriginRegexes. */
                    public allowOriginRegexes: string[];

                    /** CorsPolicy allowOrigins. */
                    public allowOrigins: string[];

                    /** CorsPolicy disabled. */
                    public disabled?: (boolean|null);

                    /** CorsPolicy exposeHeaders. */
                    public exposeHeaders: string[];

                    /** CorsPolicy maxAge. */
                    public maxAge?: (number|null);

                    /**
                     * Creates a new CorsPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CorsPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICorsPolicy): google.cloud.compute.v1.CorsPolicy;

                    /**
                     * Encodes the specified CorsPolicy message. Does not implicitly {@link google.cloud.compute.v1.CorsPolicy.verify|verify} messages.
                     * @param message CorsPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICorsPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CorsPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CorsPolicy.verify|verify} messages.
                     * @param message CorsPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICorsPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CorsPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CorsPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CorsPolicy;

                    /**
                     * Decodes a CorsPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CorsPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CorsPolicy;

                    /**
                     * Verifies a CorsPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CorsPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CorsPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CorsPolicy;

                    /**
                     * Creates a plain object from a CorsPolicy message. Also converts values to other types if specified.
                     * @param message CorsPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CorsPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CorsPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CorsPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateInstancesInstanceGroupManagerRequest. */
                interface ICreateInstancesInstanceGroupManagerRequest {

                    /** CreateInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** CreateInstancesInstanceGroupManagerRequest instanceGroupManagersCreateInstancesRequestResource */
                    instanceGroupManagersCreateInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersCreateInstancesRequest|null);

                    /** CreateInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** CreateInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** CreateInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a CreateInstancesInstanceGroupManagerRequest. */
                class CreateInstancesInstanceGroupManagerRequest implements ICreateInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new CreateInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICreateInstancesInstanceGroupManagerRequest);

                    /** CreateInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** CreateInstancesInstanceGroupManagerRequest instanceGroupManagersCreateInstancesRequestResource. */
                    public instanceGroupManagersCreateInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersCreateInstancesRequest|null);

                    /** CreateInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** CreateInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** CreateInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new CreateInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICreateInstancesInstanceGroupManagerRequest): google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified CreateInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message CreateInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICreateInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message CreateInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICreateInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a CreateInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a CreateInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a CreateInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message CreateInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateInstancesRegionInstanceGroupManagerRequest. */
                interface ICreateInstancesRegionInstanceGroupManagerRequest {

                    /** CreateInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersCreateInstancesRequestResource */
                    regionInstanceGroupManagersCreateInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersCreateInstancesRequest|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a CreateInstancesRegionInstanceGroupManagerRequest. */
                class CreateInstancesRegionInstanceGroupManagerRequest implements ICreateInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new CreateInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICreateInstancesRegionInstanceGroupManagerRequest);

                    /** CreateInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** CreateInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** CreateInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** CreateInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersCreateInstancesRequestResource. */
                    public regionInstanceGroupManagersCreateInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersCreateInstancesRequest|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new CreateInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICreateInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1.CreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified CreateInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.CreateInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message CreateInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICreateInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CreateInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message CreateInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICreateInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a CreateInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a CreateInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a CreateInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message CreateInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CreateInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateMembersInterconnectGroupRequest. */
                interface ICreateMembersInterconnectGroupRequest {

                    /** CreateMembersInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** CreateMembersInterconnectGroupRequest interconnectGroupsCreateMembersRequestResource */
                    interconnectGroupsCreateMembersRequestResource?: (google.cloud.compute.v1.IInterconnectGroupsCreateMembersRequest|null);

                    /** CreateMembersInterconnectGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a CreateMembersInterconnectGroupRequest. */
                class CreateMembersInterconnectGroupRequest implements ICreateMembersInterconnectGroupRequest {

                    /**
                     * Constructs a new CreateMembersInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICreateMembersInterconnectGroupRequest);

                    /** CreateMembersInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** CreateMembersInterconnectGroupRequest interconnectGroupsCreateMembersRequestResource. */
                    public interconnectGroupsCreateMembersRequestResource?: (google.cloud.compute.v1.IInterconnectGroupsCreateMembersRequest|null);

                    /** CreateMembersInterconnectGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new CreateMembersInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateMembersInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICreateMembersInterconnectGroupRequest): google.cloud.compute.v1.CreateMembersInterconnectGroupRequest;

                    /**
                     * Encodes the specified CreateMembersInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.CreateMembersInterconnectGroupRequest.verify|verify} messages.
                     * @param message CreateMembersInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICreateMembersInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateMembersInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CreateMembersInterconnectGroupRequest.verify|verify} messages.
                     * @param message CreateMembersInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICreateMembersInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateMembersInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateMembersInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CreateMembersInterconnectGroupRequest;

                    /**
                     * Decodes a CreateMembersInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateMembersInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CreateMembersInterconnectGroupRequest;

                    /**
                     * Verifies a CreateMembersInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateMembersInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateMembersInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CreateMembersInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a CreateMembersInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message CreateMembersInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CreateMembersInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateMembersInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateMembersInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateSnapshotDiskRequest. */
                interface ICreateSnapshotDiskRequest {

                    /** CreateSnapshotDiskRequest disk */
                    disk?: (string|null);

                    /** CreateSnapshotDiskRequest guestFlush */
                    guestFlush?: (boolean|null);

                    /** CreateSnapshotDiskRequest project */
                    project?: (string|null);

                    /** CreateSnapshotDiskRequest requestId */
                    requestId?: (string|null);

                    /** CreateSnapshotDiskRequest snapshotResource */
                    snapshotResource?: (google.cloud.compute.v1.ISnapshot|null);

                    /** CreateSnapshotDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a CreateSnapshotDiskRequest. */
                class CreateSnapshotDiskRequest implements ICreateSnapshotDiskRequest {

                    /**
                     * Constructs a new CreateSnapshotDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICreateSnapshotDiskRequest);

                    /** CreateSnapshotDiskRequest disk. */
                    public disk: string;

                    /** CreateSnapshotDiskRequest guestFlush. */
                    public guestFlush?: (boolean|null);

                    /** CreateSnapshotDiskRequest project. */
                    public project: string;

                    /** CreateSnapshotDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** CreateSnapshotDiskRequest snapshotResource. */
                    public snapshotResource?: (google.cloud.compute.v1.ISnapshot|null);

                    /** CreateSnapshotDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new CreateSnapshotDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateSnapshotDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICreateSnapshotDiskRequest): google.cloud.compute.v1.CreateSnapshotDiskRequest;

                    /**
                     * Encodes the specified CreateSnapshotDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.CreateSnapshotDiskRequest.verify|verify} messages.
                     * @param message CreateSnapshotDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICreateSnapshotDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateSnapshotDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CreateSnapshotDiskRequest.verify|verify} messages.
                     * @param message CreateSnapshotDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICreateSnapshotDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateSnapshotDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateSnapshotDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CreateSnapshotDiskRequest;

                    /**
                     * Decodes a CreateSnapshotDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateSnapshotDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CreateSnapshotDiskRequest;

                    /**
                     * Verifies a CreateSnapshotDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateSnapshotDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateSnapshotDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CreateSnapshotDiskRequest;

                    /**
                     * Creates a plain object from a CreateSnapshotDiskRequest message. Also converts values to other types if specified.
                     * @param message CreateSnapshotDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CreateSnapshotDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateSnapshotDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateSnapshotDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateSnapshotRegionDiskRequest. */
                interface ICreateSnapshotRegionDiskRequest {

                    /** CreateSnapshotRegionDiskRequest disk */
                    disk?: (string|null);

                    /** CreateSnapshotRegionDiskRequest project */
                    project?: (string|null);

                    /** CreateSnapshotRegionDiskRequest region */
                    region?: (string|null);

                    /** CreateSnapshotRegionDiskRequest requestId */
                    requestId?: (string|null);

                    /** CreateSnapshotRegionDiskRequest snapshotResource */
                    snapshotResource?: (google.cloud.compute.v1.ISnapshot|null);
                }

                /** Represents a CreateSnapshotRegionDiskRequest. */
                class CreateSnapshotRegionDiskRequest implements ICreateSnapshotRegionDiskRequest {

                    /**
                     * Constructs a new CreateSnapshotRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICreateSnapshotRegionDiskRequest);

                    /** CreateSnapshotRegionDiskRequest disk. */
                    public disk: string;

                    /** CreateSnapshotRegionDiskRequest project. */
                    public project: string;

                    /** CreateSnapshotRegionDiskRequest region. */
                    public region: string;

                    /** CreateSnapshotRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** CreateSnapshotRegionDiskRequest snapshotResource. */
                    public snapshotResource?: (google.cloud.compute.v1.ISnapshot|null);

                    /**
                     * Creates a new CreateSnapshotRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateSnapshotRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICreateSnapshotRegionDiskRequest): google.cloud.compute.v1.CreateSnapshotRegionDiskRequest;

                    /**
                     * Encodes the specified CreateSnapshotRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.CreateSnapshotRegionDiskRequest.verify|verify} messages.
                     * @param message CreateSnapshotRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICreateSnapshotRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateSnapshotRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CreateSnapshotRegionDiskRequest.verify|verify} messages.
                     * @param message CreateSnapshotRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICreateSnapshotRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateSnapshotRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateSnapshotRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CreateSnapshotRegionDiskRequest;

                    /**
                     * Decodes a CreateSnapshotRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateSnapshotRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CreateSnapshotRegionDiskRequest;

                    /**
                     * Verifies a CreateSnapshotRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateSnapshotRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateSnapshotRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CreateSnapshotRegionDiskRequest;

                    /**
                     * Creates a plain object from a CreateSnapshotRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message CreateSnapshotRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CreateSnapshotRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateSnapshotRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateSnapshotRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CrossSiteNetwork. */
                interface ICrossSiteNetwork {

                    /** CrossSiteNetwork creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** CrossSiteNetwork description */
                    description?: (string|null);

                    /** CrossSiteNetwork id */
                    id?: (number|Long|string|null);

                    /** CrossSiteNetwork kind */
                    kind?: (string|null);

                    /** CrossSiteNetwork name */
                    name?: (string|null);

                    /** CrossSiteNetwork selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a CrossSiteNetwork. */
                class CrossSiteNetwork implements ICrossSiteNetwork {

                    /**
                     * Constructs a new CrossSiteNetwork.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICrossSiteNetwork);

                    /** CrossSiteNetwork creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** CrossSiteNetwork description. */
                    public description?: (string|null);

                    /** CrossSiteNetwork id. */
                    public id?: (number|Long|string|null);

                    /** CrossSiteNetwork kind. */
                    public kind?: (string|null);

                    /** CrossSiteNetwork name. */
                    public name?: (string|null);

                    /** CrossSiteNetwork selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new CrossSiteNetwork instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CrossSiteNetwork instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICrossSiteNetwork): google.cloud.compute.v1.CrossSiteNetwork;

                    /**
                     * Encodes the specified CrossSiteNetwork message. Does not implicitly {@link google.cloud.compute.v1.CrossSiteNetwork.verify|verify} messages.
                     * @param message CrossSiteNetwork message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICrossSiteNetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CrossSiteNetwork message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CrossSiteNetwork.verify|verify} messages.
                     * @param message CrossSiteNetwork message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICrossSiteNetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CrossSiteNetwork message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CrossSiteNetwork
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CrossSiteNetwork;

                    /**
                     * Decodes a CrossSiteNetwork message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CrossSiteNetwork
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CrossSiteNetwork;

                    /**
                     * Verifies a CrossSiteNetwork message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CrossSiteNetwork message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CrossSiteNetwork
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CrossSiteNetwork;

                    /**
                     * Creates a plain object from a CrossSiteNetwork message. Also converts values to other types if specified.
                     * @param message CrossSiteNetwork
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CrossSiteNetwork, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CrossSiteNetwork to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CrossSiteNetwork
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CrossSiteNetworkList. */
                interface ICrossSiteNetworkList {

                    /** CrossSiteNetworkList etag */
                    etag?: (string|null);

                    /** CrossSiteNetworkList id */
                    id?: (string|null);

                    /** CrossSiteNetworkList items */
                    items?: (google.cloud.compute.v1.ICrossSiteNetwork[]|null);

                    /** CrossSiteNetworkList kind */
                    kind?: (string|null);

                    /** CrossSiteNetworkList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CrossSiteNetworkList selfLink */
                    selfLink?: (string|null);

                    /** CrossSiteNetworkList unreachables */
                    unreachables?: (string[]|null);

                    /** CrossSiteNetworkList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a CrossSiteNetworkList. */
                class CrossSiteNetworkList implements ICrossSiteNetworkList {

                    /**
                     * Constructs a new CrossSiteNetworkList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICrossSiteNetworkList);

                    /** CrossSiteNetworkList etag. */
                    public etag?: (string|null);

                    /** CrossSiteNetworkList id. */
                    public id?: (string|null);

                    /** CrossSiteNetworkList items. */
                    public items: google.cloud.compute.v1.ICrossSiteNetwork[];

                    /** CrossSiteNetworkList kind. */
                    public kind?: (string|null);

                    /** CrossSiteNetworkList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CrossSiteNetworkList selfLink. */
                    public selfLink?: (string|null);

                    /** CrossSiteNetworkList unreachables. */
                    public unreachables: string[];

                    /** CrossSiteNetworkList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new CrossSiteNetworkList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CrossSiteNetworkList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICrossSiteNetworkList): google.cloud.compute.v1.CrossSiteNetworkList;

                    /**
                     * Encodes the specified CrossSiteNetworkList message. Does not implicitly {@link google.cloud.compute.v1.CrossSiteNetworkList.verify|verify} messages.
                     * @param message CrossSiteNetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICrossSiteNetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CrossSiteNetworkList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CrossSiteNetworkList.verify|verify} messages.
                     * @param message CrossSiteNetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICrossSiteNetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CrossSiteNetworkList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CrossSiteNetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CrossSiteNetworkList;

                    /**
                     * Decodes a CrossSiteNetworkList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CrossSiteNetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CrossSiteNetworkList;

                    /**
                     * Verifies a CrossSiteNetworkList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CrossSiteNetworkList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CrossSiteNetworkList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CrossSiteNetworkList;

                    /**
                     * Creates a plain object from a CrossSiteNetworkList message. Also converts values to other types if specified.
                     * @param message CrossSiteNetworkList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CrossSiteNetworkList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CrossSiteNetworkList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CrossSiteNetworkList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomErrorResponsePolicy. */
                interface ICustomErrorResponsePolicy {

                    /** CustomErrorResponsePolicy errorResponseRules */
                    errorResponseRules?: (google.cloud.compute.v1.ICustomErrorResponsePolicyCustomErrorResponseRule[]|null);

                    /** CustomErrorResponsePolicy errorService */
                    errorService?: (string|null);
                }

                /** Represents a CustomErrorResponsePolicy. */
                class CustomErrorResponsePolicy implements ICustomErrorResponsePolicy {

                    /**
                     * Constructs a new CustomErrorResponsePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICustomErrorResponsePolicy);

                    /** CustomErrorResponsePolicy errorResponseRules. */
                    public errorResponseRules: google.cloud.compute.v1.ICustomErrorResponsePolicyCustomErrorResponseRule[];

                    /** CustomErrorResponsePolicy errorService. */
                    public errorService?: (string|null);

                    /**
                     * Creates a new CustomErrorResponsePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomErrorResponsePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICustomErrorResponsePolicy): google.cloud.compute.v1.CustomErrorResponsePolicy;

                    /**
                     * Encodes the specified CustomErrorResponsePolicy message. Does not implicitly {@link google.cloud.compute.v1.CustomErrorResponsePolicy.verify|verify} messages.
                     * @param message CustomErrorResponsePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICustomErrorResponsePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomErrorResponsePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CustomErrorResponsePolicy.verify|verify} messages.
                     * @param message CustomErrorResponsePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICustomErrorResponsePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomErrorResponsePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomErrorResponsePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CustomErrorResponsePolicy;

                    /**
                     * Decodes a CustomErrorResponsePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomErrorResponsePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CustomErrorResponsePolicy;

                    /**
                     * Verifies a CustomErrorResponsePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomErrorResponsePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomErrorResponsePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CustomErrorResponsePolicy;

                    /**
                     * Creates a plain object from a CustomErrorResponsePolicy message. Also converts values to other types if specified.
                     * @param message CustomErrorResponsePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CustomErrorResponsePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomErrorResponsePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomErrorResponsePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomErrorResponsePolicyCustomErrorResponseRule. */
                interface ICustomErrorResponsePolicyCustomErrorResponseRule {

                    /** CustomErrorResponsePolicyCustomErrorResponseRule matchResponseCodes */
                    matchResponseCodes?: (string[]|null);

                    /** CustomErrorResponsePolicyCustomErrorResponseRule overrideResponseCode */
                    overrideResponseCode?: (number|null);

                    /** CustomErrorResponsePolicyCustomErrorResponseRule path */
                    path?: (string|null);
                }

                /** Represents a CustomErrorResponsePolicyCustomErrorResponseRule. */
                class CustomErrorResponsePolicyCustomErrorResponseRule implements ICustomErrorResponsePolicyCustomErrorResponseRule {

                    /**
                     * Constructs a new CustomErrorResponsePolicyCustomErrorResponseRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICustomErrorResponsePolicyCustomErrorResponseRule);

                    /** CustomErrorResponsePolicyCustomErrorResponseRule matchResponseCodes. */
                    public matchResponseCodes: string[];

                    /** CustomErrorResponsePolicyCustomErrorResponseRule overrideResponseCode. */
                    public overrideResponseCode?: (number|null);

                    /** CustomErrorResponsePolicyCustomErrorResponseRule path. */
                    public path?: (string|null);

                    /**
                     * Creates a new CustomErrorResponsePolicyCustomErrorResponseRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomErrorResponsePolicyCustomErrorResponseRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICustomErrorResponsePolicyCustomErrorResponseRule): google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule;

                    /**
                     * Encodes the specified CustomErrorResponsePolicyCustomErrorResponseRule message. Does not implicitly {@link google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule.verify|verify} messages.
                     * @param message CustomErrorResponsePolicyCustomErrorResponseRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICustomErrorResponsePolicyCustomErrorResponseRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomErrorResponsePolicyCustomErrorResponseRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule.verify|verify} messages.
                     * @param message CustomErrorResponsePolicyCustomErrorResponseRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICustomErrorResponsePolicyCustomErrorResponseRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomErrorResponsePolicyCustomErrorResponseRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomErrorResponsePolicyCustomErrorResponseRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule;

                    /**
                     * Decodes a CustomErrorResponsePolicyCustomErrorResponseRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomErrorResponsePolicyCustomErrorResponseRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule;

                    /**
                     * Verifies a CustomErrorResponsePolicyCustomErrorResponseRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomErrorResponsePolicyCustomErrorResponseRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomErrorResponsePolicyCustomErrorResponseRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule;

                    /**
                     * Creates a plain object from a CustomErrorResponsePolicyCustomErrorResponseRule message. Also converts values to other types if specified.
                     * @param message CustomErrorResponsePolicyCustomErrorResponseRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomErrorResponsePolicyCustomErrorResponseRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomErrorResponsePolicyCustomErrorResponseRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomerEncryptionKey. */
                interface ICustomerEncryptionKey {

                    /** CustomerEncryptionKey kmsKeyName */
                    kmsKeyName?: (string|null);

                    /** CustomerEncryptionKey kmsKeyServiceAccount */
                    kmsKeyServiceAccount?: (string|null);

                    /** CustomerEncryptionKey rawKey */
                    rawKey?: (string|null);

                    /** CustomerEncryptionKey rsaEncryptedKey */
                    rsaEncryptedKey?: (string|null);

                    /** CustomerEncryptionKey sha256 */
                    sha256?: (string|null);
                }

                /** Represents a CustomerEncryptionKey. */
                class CustomerEncryptionKey implements ICustomerEncryptionKey {

                    /**
                     * Constructs a new CustomerEncryptionKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICustomerEncryptionKey);

                    /** CustomerEncryptionKey kmsKeyName. */
                    public kmsKeyName?: (string|null);

                    /** CustomerEncryptionKey kmsKeyServiceAccount. */
                    public kmsKeyServiceAccount?: (string|null);

                    /** CustomerEncryptionKey rawKey. */
                    public rawKey?: (string|null);

                    /** CustomerEncryptionKey rsaEncryptedKey. */
                    public rsaEncryptedKey?: (string|null);

                    /** CustomerEncryptionKey sha256. */
                    public sha256?: (string|null);

                    /**
                     * Creates a new CustomerEncryptionKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomerEncryptionKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICustomerEncryptionKey): google.cloud.compute.v1.CustomerEncryptionKey;

                    /**
                     * Encodes the specified CustomerEncryptionKey message. Does not implicitly {@link google.cloud.compute.v1.CustomerEncryptionKey.verify|verify} messages.
                     * @param message CustomerEncryptionKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICustomerEncryptionKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomerEncryptionKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CustomerEncryptionKey.verify|verify} messages.
                     * @param message CustomerEncryptionKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICustomerEncryptionKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomerEncryptionKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomerEncryptionKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CustomerEncryptionKey;

                    /**
                     * Decodes a CustomerEncryptionKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomerEncryptionKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CustomerEncryptionKey;

                    /**
                     * Verifies a CustomerEncryptionKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomerEncryptionKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomerEncryptionKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CustomerEncryptionKey;

                    /**
                     * Creates a plain object from a CustomerEncryptionKey message. Also converts values to other types if specified.
                     * @param message CustomerEncryptionKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CustomerEncryptionKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomerEncryptionKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomerEncryptionKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomerEncryptionKeyProtectedDisk. */
                interface ICustomerEncryptionKeyProtectedDisk {

                    /** CustomerEncryptionKeyProtectedDisk diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** CustomerEncryptionKeyProtectedDisk source */
                    source?: (string|null);
                }

                /** Represents a CustomerEncryptionKeyProtectedDisk. */
                class CustomerEncryptionKeyProtectedDisk implements ICustomerEncryptionKeyProtectedDisk {

                    /**
                     * Constructs a new CustomerEncryptionKeyProtectedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ICustomerEncryptionKeyProtectedDisk);

                    /** CustomerEncryptionKeyProtectedDisk diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** CustomerEncryptionKeyProtectedDisk source. */
                    public source?: (string|null);

                    /**
                     * Creates a new CustomerEncryptionKeyProtectedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomerEncryptionKeyProtectedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ICustomerEncryptionKeyProtectedDisk): google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk;

                    /**
                     * Encodes the specified CustomerEncryptionKeyProtectedDisk message. Does not implicitly {@link google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk.verify|verify} messages.
                     * @param message CustomerEncryptionKeyProtectedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ICustomerEncryptionKeyProtectedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomerEncryptionKeyProtectedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk.verify|verify} messages.
                     * @param message CustomerEncryptionKeyProtectedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ICustomerEncryptionKeyProtectedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomerEncryptionKeyProtectedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomerEncryptionKeyProtectedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk;

                    /**
                     * Decodes a CustomerEncryptionKeyProtectedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomerEncryptionKeyProtectedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk;

                    /**
                     * Verifies a CustomerEncryptionKeyProtectedDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomerEncryptionKeyProtectedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomerEncryptionKeyProtectedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk;

                    /**
                     * Creates a plain object from a CustomerEncryptionKeyProtectedDisk message. Also converts values to other types if specified.
                     * @param message CustomerEncryptionKeyProtectedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomerEncryptionKeyProtectedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomerEncryptionKeyProtectedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Data. */
                interface IData {

                    /** Data key */
                    key?: (string|null);

                    /** Data value */
                    value?: (string|null);
                }

                /** Represents a Data. */
                class Data implements IData {

                    /**
                     * Constructs a new Data.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IData);

                    /** Data key. */
                    public key?: (string|null);

                    /** Data value. */
                    public value?: (string|null);

                    /**
                     * Creates a new Data instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Data instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IData): google.cloud.compute.v1.Data;

                    /**
                     * Encodes the specified Data message. Does not implicitly {@link google.cloud.compute.v1.Data.verify|verify} messages.
                     * @param message Data message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Data message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Data.verify|verify} messages.
                     * @param message Data message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Data message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Data
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Data;

                    /**
                     * Decodes a Data message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Data
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Data;

                    /**
                     * Verifies a Data message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Data message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Data
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Data;

                    /**
                     * Creates a plain object from a Data message. Also converts values to other types if specified.
                     * @param message Data
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Data, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Data to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Data
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Date. */
                interface IDate {

                    /** Date day */
                    day?: (number|null);

                    /** Date month */
                    month?: (number|null);

                    /** Date year */
                    year?: (number|null);
                }

                /** Represents a Date. */
                class Date implements IDate {

                    /**
                     * Constructs a new Date.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDate);

                    /** Date day. */
                    public day?: (number|null);

                    /** Date month. */
                    public month?: (number|null);

                    /** Date year. */
                    public year?: (number|null);

                    /**
                     * Creates a new Date instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Date instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDate): google.cloud.compute.v1.Date;

                    /**
                     * Encodes the specified Date message. Does not implicitly {@link google.cloud.compute.v1.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.cloud.compute.v1.IDate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Date message, length delimited. Does not implicitly {@link google.cloud.compute.v1.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.cloud.compute.v1.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.cloud.compute.v1.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.cloud.compute.v1.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.cloud.compute.v1.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.cloud.compute.v1.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 DeleteAccessConfigInstanceRequest. */
                interface IDeleteAccessConfigInstanceRequest {

                    /** DeleteAccessConfigInstanceRequest accessConfig */
                    accessConfig?: (string|null);

                    /** DeleteAccessConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** DeleteAccessConfigInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** DeleteAccessConfigInstanceRequest project */
                    project?: (string|null);

                    /** DeleteAccessConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DeleteAccessConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteAccessConfigInstanceRequest. */
                class DeleteAccessConfigInstanceRequest implements IDeleteAccessConfigInstanceRequest {

                    /**
                     * Constructs a new DeleteAccessConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteAccessConfigInstanceRequest);

                    /** DeleteAccessConfigInstanceRequest accessConfig. */
                    public accessConfig: string;

                    /** DeleteAccessConfigInstanceRequest instance. */
                    public instance: string;

                    /** DeleteAccessConfigInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** DeleteAccessConfigInstanceRequest project. */
                    public project: string;

                    /** DeleteAccessConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteAccessConfigInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteAccessConfigInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAccessConfigInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteAccessConfigInstanceRequest): google.cloud.compute.v1.DeleteAccessConfigInstanceRequest;

                    /**
                     * Encodes the specified DeleteAccessConfigInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message DeleteAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAccessConfigInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message DeleteAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAccessConfigInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteAccessConfigInstanceRequest;

                    /**
                     * Decodes a DeleteAccessConfigInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteAccessConfigInstanceRequest;

                    /**
                     * Verifies a DeleteAccessConfigInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteAccessConfigInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAccessConfigInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteAccessConfigInstanceRequest;

                    /**
                     * Creates a plain object from a DeleteAccessConfigInstanceRequest message. Also converts values to other types if specified.
                     * @param message DeleteAccessConfigInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteAccessConfigInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAccessConfigInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAccessConfigInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteAddressRequest. */
                interface IDeleteAddressRequest {

                    /** DeleteAddressRequest address */
                    address?: (string|null);

                    /** DeleteAddressRequest project */
                    project?: (string|null);

                    /** DeleteAddressRequest region */
                    region?: (string|null);

                    /** DeleteAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteAddressRequest. */
                class DeleteAddressRequest implements IDeleteAddressRequest {

                    /**
                     * Constructs a new DeleteAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteAddressRequest);

                    /** DeleteAddressRequest address. */
                    public address: string;

                    /** DeleteAddressRequest project. */
                    public project: string;

                    /** DeleteAddressRequest region. */
                    public region: string;

                    /** DeleteAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteAddressRequest): google.cloud.compute.v1.DeleteAddressRequest;

                    /**
                     * Encodes the specified DeleteAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteAddressRequest.verify|verify} messages.
                     * @param message DeleteAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteAddressRequest.verify|verify} messages.
                     * @param message DeleteAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteAddressRequest;

                    /**
                     * Decodes a DeleteAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteAddressRequest;

                    /**
                     * Verifies a DeleteAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteAddressRequest;

                    /**
                     * Creates a plain object from a DeleteAddressRequest message. Also converts values to other types if specified.
                     * @param message DeleteAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteAutoscalerRequest. */
                interface IDeleteAutoscalerRequest {

                    /** DeleteAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** DeleteAutoscalerRequest project */
                    project?: (string|null);

                    /** DeleteAutoscalerRequest requestId */
                    requestId?: (string|null);

                    /** DeleteAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteAutoscalerRequest. */
                class DeleteAutoscalerRequest implements IDeleteAutoscalerRequest {

                    /**
                     * Constructs a new DeleteAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteAutoscalerRequest);

                    /** DeleteAutoscalerRequest autoscaler. */
                    public autoscaler: string;

                    /** DeleteAutoscalerRequest project. */
                    public project: string;

                    /** DeleteAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteAutoscalerRequest): google.cloud.compute.v1.DeleteAutoscalerRequest;

                    /**
                     * Encodes the specified DeleteAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteAutoscalerRequest.verify|verify} messages.
                     * @param message DeleteAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteAutoscalerRequest.verify|verify} messages.
                     * @param message DeleteAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteAutoscalerRequest;

                    /**
                     * Decodes a DeleteAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteAutoscalerRequest;

                    /**
                     * Verifies a DeleteAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteAutoscalerRequest;

                    /**
                     * Creates a plain object from a DeleteAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message DeleteAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteBackendBucketRequest. */
                interface IDeleteBackendBucketRequest {

                    /** DeleteBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** DeleteBackendBucketRequest project */
                    project?: (string|null);

                    /** DeleteBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteBackendBucketRequest. */
                class DeleteBackendBucketRequest implements IDeleteBackendBucketRequest {

                    /**
                     * Constructs a new DeleteBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteBackendBucketRequest);

                    /** DeleteBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** DeleteBackendBucketRequest project. */
                    public project: string;

                    /** DeleteBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteBackendBucketRequest): google.cloud.compute.v1.DeleteBackendBucketRequest;

                    /**
                     * Encodes the specified DeleteBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteBackendBucketRequest;

                    /**
                     * Decodes a DeleteBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteBackendBucketRequest;

                    /**
                     * Verifies a DeleteBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteBackendBucketRequest;

                    /**
                     * Creates a plain object from a DeleteBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message DeleteBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteBackendServiceRequest. */
                interface IDeleteBackendServiceRequest {

                    /** DeleteBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** DeleteBackendServiceRequest project */
                    project?: (string|null);

                    /** DeleteBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteBackendServiceRequest. */
                class DeleteBackendServiceRequest implements IDeleteBackendServiceRequest {

                    /**
                     * Constructs a new DeleteBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteBackendServiceRequest);

                    /** DeleteBackendServiceRequest backendService. */
                    public backendService: string;

                    /** DeleteBackendServiceRequest project. */
                    public project: string;

                    /** DeleteBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteBackendServiceRequest): google.cloud.compute.v1.DeleteBackendServiceRequest;

                    /**
                     * Encodes the specified DeleteBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteBackendServiceRequest;

                    /**
                     * Decodes a DeleteBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteBackendServiceRequest;

                    /**
                     * Verifies a DeleteBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteBackendServiceRequest;

                    /**
                     * Creates a plain object from a DeleteBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteCrossSiteNetworkRequest. */
                interface IDeleteCrossSiteNetworkRequest {

                    /** DeleteCrossSiteNetworkRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** DeleteCrossSiteNetworkRequest project */
                    project?: (string|null);

                    /** DeleteCrossSiteNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteCrossSiteNetworkRequest. */
                class DeleteCrossSiteNetworkRequest implements IDeleteCrossSiteNetworkRequest {

                    /**
                     * Constructs a new DeleteCrossSiteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteCrossSiteNetworkRequest);

                    /** DeleteCrossSiteNetworkRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** DeleteCrossSiteNetworkRequest project. */
                    public project: string;

                    /** DeleteCrossSiteNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteCrossSiteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteCrossSiteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteCrossSiteNetworkRequest): google.cloud.compute.v1.DeleteCrossSiteNetworkRequest;

                    /**
                     * Encodes the specified DeleteCrossSiteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message DeleteCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteCrossSiteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message DeleteCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteCrossSiteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteCrossSiteNetworkRequest;

                    /**
                     * Decodes a DeleteCrossSiteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteCrossSiteNetworkRequest;

                    /**
                     * Verifies a DeleteCrossSiteNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteCrossSiteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteCrossSiteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteCrossSiteNetworkRequest;

                    /**
                     * Creates a plain object from a DeleteCrossSiteNetworkRequest message. Also converts values to other types if specified.
                     * @param message DeleteCrossSiteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteCrossSiteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteCrossSiteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteCrossSiteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteDiskRequest. */
                interface IDeleteDiskRequest {

                    /** DeleteDiskRequest disk */
                    disk?: (string|null);

                    /** DeleteDiskRequest project */
                    project?: (string|null);

                    /** DeleteDiskRequest requestId */
                    requestId?: (string|null);

                    /** DeleteDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteDiskRequest. */
                class DeleteDiskRequest implements IDeleteDiskRequest {

                    /**
                     * Constructs a new DeleteDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteDiskRequest);

                    /** DeleteDiskRequest disk. */
                    public disk: string;

                    /** DeleteDiskRequest project. */
                    public project: string;

                    /** DeleteDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteDiskRequest): google.cloud.compute.v1.DeleteDiskRequest;

                    /**
                     * Encodes the specified DeleteDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteDiskRequest.verify|verify} messages.
                     * @param message DeleteDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteDiskRequest.verify|verify} messages.
                     * @param message DeleteDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteDiskRequest;

                    /**
                     * Decodes a DeleteDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteDiskRequest;

                    /**
                     * Verifies a DeleteDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteDiskRequest;

                    /**
                     * Creates a plain object from a DeleteDiskRequest message. Also converts values to other types if specified.
                     * @param message DeleteDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteExternalVpnGatewayRequest. */
                interface IDeleteExternalVpnGatewayRequest {

                    /** DeleteExternalVpnGatewayRequest externalVpnGateway */
                    externalVpnGateway?: (string|null);

                    /** DeleteExternalVpnGatewayRequest project */
                    project?: (string|null);

                    /** DeleteExternalVpnGatewayRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteExternalVpnGatewayRequest. */
                class DeleteExternalVpnGatewayRequest implements IDeleteExternalVpnGatewayRequest {

                    /**
                     * Constructs a new DeleteExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteExternalVpnGatewayRequest);

                    /** DeleteExternalVpnGatewayRequest externalVpnGateway. */
                    public externalVpnGateway: string;

                    /** DeleteExternalVpnGatewayRequest project. */
                    public project: string;

                    /** DeleteExternalVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteExternalVpnGatewayRequest): google.cloud.compute.v1.DeleteExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified DeleteExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteExternalVpnGatewayRequest;

                    /**
                     * Decodes a DeleteExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteExternalVpnGatewayRequest;

                    /**
                     * Verifies a DeleteExternalVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from a DeleteExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message DeleteExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteFirewallPolicyRequest. */
                interface IDeleteFirewallPolicyRequest {

                    /** DeleteFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** DeleteFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteFirewallPolicyRequest. */
                class DeleteFirewallPolicyRequest implements IDeleteFirewallPolicyRequest {

                    /**
                     * Constructs a new DeleteFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteFirewallPolicyRequest);

                    /** DeleteFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** DeleteFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteFirewallPolicyRequest): google.cloud.compute.v1.DeleteFirewallPolicyRequest;

                    /**
                     * Encodes the specified DeleteFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteFirewallPolicyRequest;

                    /**
                     * Decodes a DeleteFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteFirewallPolicyRequest;

                    /**
                     * Verifies a DeleteFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteFirewallRequest. */
                interface IDeleteFirewallRequest {

                    /** DeleteFirewallRequest firewall */
                    firewall?: (string|null);

                    /** DeleteFirewallRequest project */
                    project?: (string|null);

                    /** DeleteFirewallRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteFirewallRequest. */
                class DeleteFirewallRequest implements IDeleteFirewallRequest {

                    /**
                     * Constructs a new DeleteFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteFirewallRequest);

                    /** DeleteFirewallRequest firewall. */
                    public firewall: string;

                    /** DeleteFirewallRequest project. */
                    public project: string;

                    /** DeleteFirewallRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteFirewallRequest): google.cloud.compute.v1.DeleteFirewallRequest;

                    /**
                     * Encodes the specified DeleteFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteFirewallRequest.verify|verify} messages.
                     * @param message DeleteFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteFirewallRequest.verify|verify} messages.
                     * @param message DeleteFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteFirewallRequest;

                    /**
                     * Decodes a DeleteFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteFirewallRequest;

                    /**
                     * Verifies a DeleteFirewallRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteFirewallRequest;

                    /**
                     * Creates a plain object from a DeleteFirewallRequest message. Also converts values to other types if specified.
                     * @param message DeleteFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteForwardingRuleRequest. */
                interface IDeleteForwardingRuleRequest {

                    /** DeleteForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** DeleteForwardingRuleRequest project */
                    project?: (string|null);

                    /** DeleteForwardingRuleRequest region */
                    region?: (string|null);

                    /** DeleteForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteForwardingRuleRequest. */
                class DeleteForwardingRuleRequest implements IDeleteForwardingRuleRequest {

                    /**
                     * Constructs a new DeleteForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteForwardingRuleRequest);

                    /** DeleteForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** DeleteForwardingRuleRequest project. */
                    public project: string;

                    /** DeleteForwardingRuleRequest region. */
                    public region: string;

                    /** DeleteForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteForwardingRuleRequest): google.cloud.compute.v1.DeleteForwardingRuleRequest;

                    /**
                     * Encodes the specified DeleteForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteForwardingRuleRequest.verify|verify} messages.
                     * @param message DeleteForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteForwardingRuleRequest.verify|verify} messages.
                     * @param message DeleteForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteForwardingRuleRequest;

                    /**
                     * Decodes a DeleteForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteForwardingRuleRequest;

                    /**
                     * Verifies a DeleteForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteForwardingRuleRequest;

                    /**
                     * Creates a plain object from a DeleteForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message DeleteForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteFutureReservationRequest. */
                interface IDeleteFutureReservationRequest {

                    /** DeleteFutureReservationRequest futureReservation */
                    futureReservation?: (string|null);

                    /** DeleteFutureReservationRequest project */
                    project?: (string|null);

                    /** DeleteFutureReservationRequest requestId */
                    requestId?: (string|null);

                    /** DeleteFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteFutureReservationRequest. */
                class DeleteFutureReservationRequest implements IDeleteFutureReservationRequest {

                    /**
                     * Constructs a new DeleteFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteFutureReservationRequest);

                    /** DeleteFutureReservationRequest futureReservation. */
                    public futureReservation: string;

                    /** DeleteFutureReservationRequest project. */
                    public project: string;

                    /** DeleteFutureReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteFutureReservationRequest): google.cloud.compute.v1.DeleteFutureReservationRequest;

                    /**
                     * Encodes the specified DeleteFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteFutureReservationRequest.verify|verify} messages.
                     * @param message DeleteFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteFutureReservationRequest.verify|verify} messages.
                     * @param message DeleteFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteFutureReservationRequest;

                    /**
                     * Decodes a DeleteFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteFutureReservationRequest;

                    /**
                     * Verifies a DeleteFutureReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteFutureReservationRequest;

                    /**
                     * Creates a plain object from a DeleteFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message DeleteFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalAddressRequest. */
                interface IDeleteGlobalAddressRequest {

                    /** DeleteGlobalAddressRequest address */
                    address?: (string|null);

                    /** DeleteGlobalAddressRequest project */
                    project?: (string|null);

                    /** DeleteGlobalAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalAddressRequest. */
                class DeleteGlobalAddressRequest implements IDeleteGlobalAddressRequest {

                    /**
                     * Constructs a new DeleteGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteGlobalAddressRequest);

                    /** DeleteGlobalAddressRequest address. */
                    public address: string;

                    /** DeleteGlobalAddressRequest project. */
                    public project: string;

                    /** DeleteGlobalAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteGlobalAddressRequest): google.cloud.compute.v1.DeleteGlobalAddressRequest;

                    /**
                     * Encodes the specified DeleteGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalAddressRequest.verify|verify} messages.
                     * @param message DeleteGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalAddressRequest.verify|verify} messages.
                     * @param message DeleteGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteGlobalAddressRequest;

                    /**
                     * Decodes a DeleteGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteGlobalAddressRequest;

                    /**
                     * Verifies a DeleteGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteGlobalAddressRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalForwardingRuleRequest. */
                interface IDeleteGlobalForwardingRuleRequest {

                    /** DeleteGlobalForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** DeleteGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** DeleteGlobalForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalForwardingRuleRequest. */
                class DeleteGlobalForwardingRuleRequest implements IDeleteGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new DeleteGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteGlobalForwardingRuleRequest);

                    /** DeleteGlobalForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** DeleteGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** DeleteGlobalForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteGlobalForwardingRuleRequest): google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified DeleteGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message DeleteGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message DeleteGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest;

                    /**
                     * Decodes a DeleteGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest;

                    /**
                     * Verifies a DeleteGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalNetworkEndpointGroupRequest. */
                interface IDeleteGlobalNetworkEndpointGroupRequest {

                    /** DeleteGlobalNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DeleteGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DeleteGlobalNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalNetworkEndpointGroupRequest. */
                class DeleteGlobalNetworkEndpointGroupRequest implements IDeleteGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DeleteGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteGlobalNetworkEndpointGroupRequest);

                    /** DeleteGlobalNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DeleteGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DeleteGlobalNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DeleteGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DeleteGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DeleteGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalOperationRequest. */
                interface IDeleteGlobalOperationRequest {

                    /** DeleteGlobalOperationRequest operation */
                    operation?: (string|null);

                    /** DeleteGlobalOperationRequest project */
                    project?: (string|null);
                }

                /** Represents a DeleteGlobalOperationRequest. */
                class DeleteGlobalOperationRequest implements IDeleteGlobalOperationRequest {

                    /**
                     * Constructs a new DeleteGlobalOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteGlobalOperationRequest);

                    /** DeleteGlobalOperationRequest operation. */
                    public operation: string;

                    /** DeleteGlobalOperationRequest project. */
                    public project: string;

                    /**
                     * Creates a new DeleteGlobalOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteGlobalOperationRequest): google.cloud.compute.v1.DeleteGlobalOperationRequest;

                    /**
                     * Encodes the specified DeleteGlobalOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalOperationRequest.verify|verify} messages.
                     * @param message DeleteGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalOperationRequest.verify|verify} messages.
                     * @param message DeleteGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteGlobalOperationRequest;

                    /**
                     * Decodes a DeleteGlobalOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteGlobalOperationRequest;

                    /**
                     * Verifies a DeleteGlobalOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteGlobalOperationRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalOperationRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteGlobalOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalOperationResponse. */
                interface IDeleteGlobalOperationResponse {
                }

                /** Represents a DeleteGlobalOperationResponse. */
                class DeleteGlobalOperationResponse implements IDeleteGlobalOperationResponse {

                    /**
                     * Constructs a new DeleteGlobalOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteGlobalOperationResponse);

                    /**
                     * Creates a new DeleteGlobalOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalOperationResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteGlobalOperationResponse): google.cloud.compute.v1.DeleteGlobalOperationResponse;

                    /**
                     * Encodes the specified DeleteGlobalOperationResponse message. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalOperationResponse.verify|verify} messages.
                     * @param message DeleteGlobalOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteGlobalOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalOperationResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalOperationResponse.verify|verify} messages.
                     * @param message DeleteGlobalOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteGlobalOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteGlobalOperationResponse;

                    /**
                     * Decodes a DeleteGlobalOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteGlobalOperationResponse;

                    /**
                     * Verifies a DeleteGlobalOperationResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteGlobalOperationResponse;

                    /**
                     * Creates a plain object from a DeleteGlobalOperationResponse message. Also converts values to other types if specified.
                     * @param message DeleteGlobalOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteGlobalOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalOrganizationOperationRequest. */
                interface IDeleteGlobalOrganizationOperationRequest {

                    /** DeleteGlobalOrganizationOperationRequest operation */
                    operation?: (string|null);

                    /** DeleteGlobalOrganizationOperationRequest parentId */
                    parentId?: (string|null);
                }

                /** Represents a DeleteGlobalOrganizationOperationRequest. */
                class DeleteGlobalOrganizationOperationRequest implements IDeleteGlobalOrganizationOperationRequest {

                    /**
                     * Constructs a new DeleteGlobalOrganizationOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationRequest);

                    /** DeleteGlobalOrganizationOperationRequest operation. */
                    public operation: string;

                    /** DeleteGlobalOrganizationOperationRequest parentId. */
                    public parentId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalOrganizationOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalOrganizationOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationRequest): google.cloud.compute.v1.DeleteGlobalOrganizationOperationRequest;

                    /**
                     * Encodes the specified DeleteGlobalOrganizationOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalOrganizationOperationRequest.verify|verify} messages.
                     * @param message DeleteGlobalOrganizationOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalOrganizationOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalOrganizationOperationRequest.verify|verify} messages.
                     * @param message DeleteGlobalOrganizationOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalOrganizationOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalOrganizationOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteGlobalOrganizationOperationRequest;

                    /**
                     * Decodes a DeleteGlobalOrganizationOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalOrganizationOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteGlobalOrganizationOperationRequest;

                    /**
                     * Verifies a DeleteGlobalOrganizationOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalOrganizationOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalOrganizationOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteGlobalOrganizationOperationRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalOrganizationOperationRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalOrganizationOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteGlobalOrganizationOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalOrganizationOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalOrganizationOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalOrganizationOperationResponse. */
                interface IDeleteGlobalOrganizationOperationResponse {
                }

                /** Represents a DeleteGlobalOrganizationOperationResponse. */
                class DeleteGlobalOrganizationOperationResponse implements IDeleteGlobalOrganizationOperationResponse {

                    /**
                     * Constructs a new DeleteGlobalOrganizationOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationResponse);

                    /**
                     * Creates a new DeleteGlobalOrganizationOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalOrganizationOperationResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationResponse): google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse;

                    /**
                     * Encodes the specified DeleteGlobalOrganizationOperationResponse message. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse.verify|verify} messages.
                     * @param message DeleteGlobalOrganizationOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalOrganizationOperationResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse.verify|verify} messages.
                     * @param message DeleteGlobalOrganizationOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalOrganizationOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalOrganizationOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse;

                    /**
                     * Decodes a DeleteGlobalOrganizationOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalOrganizationOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse;

                    /**
                     * Verifies a DeleteGlobalOrganizationOperationResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalOrganizationOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalOrganizationOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse;

                    /**
                     * Creates a plain object from a DeleteGlobalOrganizationOperationResponse message. Also converts values to other types if specified.
                     * @param message DeleteGlobalOrganizationOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalOrganizationOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalOrganizationOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalPublicDelegatedPrefixeRequest. */
                interface IDeleteGlobalPublicDelegatedPrefixeRequest {

                    /** DeleteGlobalPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** DeleteGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** DeleteGlobalPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalPublicDelegatedPrefixeRequest. */
                class DeleteGlobalPublicDelegatedPrefixeRequest implements IDeleteGlobalPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new DeleteGlobalPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteGlobalPublicDelegatedPrefixeRequest);

                    /** DeleteGlobalPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** DeleteGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** DeleteGlobalPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteGlobalPublicDelegatedPrefixeRequest): google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified DeleteGlobalPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message DeleteGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message DeleteGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a DeleteGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a DeleteGlobalPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteHealthCheckRequest. */
                interface IDeleteHealthCheckRequest {

                    /** DeleteHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** DeleteHealthCheckRequest project */
                    project?: (string|null);

                    /** DeleteHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteHealthCheckRequest. */
                class DeleteHealthCheckRequest implements IDeleteHealthCheckRequest {

                    /**
                     * Constructs a new DeleteHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteHealthCheckRequest);

                    /** DeleteHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** DeleteHealthCheckRequest project. */
                    public project: string;

                    /** DeleteHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteHealthCheckRequest): google.cloud.compute.v1.DeleteHealthCheckRequest;

                    /**
                     * Encodes the specified DeleteHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteHealthCheckRequest;

                    /**
                     * Decodes a DeleteHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteHealthCheckRequest;

                    /**
                     * Verifies a DeleteHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteHealthCheckRequest;

                    /**
                     * Creates a plain object from a DeleteHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message DeleteHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteImageRequest. */
                interface IDeleteImageRequest {

                    /** DeleteImageRequest image */
                    image?: (string|null);

                    /** DeleteImageRequest project */
                    project?: (string|null);

                    /** DeleteImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteImageRequest. */
                class DeleteImageRequest implements IDeleteImageRequest {

                    /**
                     * Constructs a new DeleteImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteImageRequest);

                    /** DeleteImageRequest image. */
                    public image: string;

                    /** DeleteImageRequest project. */
                    public project: string;

                    /** DeleteImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteImageRequest): google.cloud.compute.v1.DeleteImageRequest;

                    /**
                     * Encodes the specified DeleteImageRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteImageRequest.verify|verify} messages.
                     * @param message DeleteImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteImageRequest.verify|verify} messages.
                     * @param message DeleteImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteImageRequest;

                    /**
                     * Decodes a DeleteImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteImageRequest;

                    /**
                     * Verifies a DeleteImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteImageRequest;

                    /**
                     * Creates a plain object from a DeleteImageRequest message. Also converts values to other types if specified.
                     * @param message DeleteImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceGroupManagerRequest. */
                interface IDeleteInstanceGroupManagerRequest {

                    /** DeleteInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeleteInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstanceGroupManagerRequest. */
                class DeleteInstanceGroupManagerRequest implements IDeleteInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeleteInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInstanceGroupManagerRequest);

                    /** DeleteInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeleteInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInstanceGroupManagerRequest): google.cloud.compute.v1.DeleteInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeleteInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeleteInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeleteInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceGroupManagerResizeRequestRequest. */
                interface IDeleteInstanceGroupManagerResizeRequestRequest {

                    /** DeleteInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstanceGroupManagerResizeRequestRequest. */
                class DeleteInstanceGroupManagerResizeRequestRequest implements IDeleteInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new DeleteInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInstanceGroupManagerResizeRequestRequest);

                    /** DeleteInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** DeleteInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /** DeleteInstanceGroupManagerResizeRequestRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified DeleteInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a DeleteInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a DeleteInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceGroupRequest. */
                interface IDeleteInstanceGroupRequest {

                    /** DeleteInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** DeleteInstanceGroupRequest project */
                    project?: (string|null);

                    /** DeleteInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstanceGroupRequest. */
                class DeleteInstanceGroupRequest implements IDeleteInstanceGroupRequest {

                    /**
                     * Constructs a new DeleteInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInstanceGroupRequest);

                    /** DeleteInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** DeleteInstanceGroupRequest project. */
                    public project: string;

                    /** DeleteInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInstanceGroupRequest): google.cloud.compute.v1.DeleteInstanceGroupRequest;

                    /**
                     * Encodes the specified DeleteInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceGroupRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceGroupRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInstanceGroupRequest;

                    /**
                     * Decodes a DeleteInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInstanceGroupRequest;

                    /**
                     * Verifies a DeleteInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInstanceGroupRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceRequest. */
                interface IDeleteInstanceRequest {

                    /** DeleteInstanceRequest instance */
                    instance?: (string|null);

                    /** DeleteInstanceRequest project */
                    project?: (string|null);

                    /** DeleteInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstanceRequest. */
                class DeleteInstanceRequest implements IDeleteInstanceRequest {

                    /**
                     * Constructs a new DeleteInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInstanceRequest);

                    /** DeleteInstanceRequest instance. */
                    public instance: string;

                    /** DeleteInstanceRequest project. */
                    public project: string;

                    /** DeleteInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInstanceRequest): google.cloud.compute.v1.DeleteInstanceRequest;

                    /**
                     * Encodes the specified DeleteInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceRequest.verify|verify} messages.
                     * @param message DeleteInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceRequest.verify|verify} messages.
                     * @param message DeleteInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInstanceRequest;

                    /**
                     * Decodes a DeleteInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInstanceRequest;

                    /**
                     * Verifies a DeleteInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInstanceRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceTemplateRequest. */
                interface IDeleteInstanceTemplateRequest {

                    /** DeleteInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** DeleteInstanceTemplateRequest project */
                    project?: (string|null);

                    /** DeleteInstanceTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInstanceTemplateRequest. */
                class DeleteInstanceTemplateRequest implements IDeleteInstanceTemplateRequest {

                    /**
                     * Constructs a new DeleteInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInstanceTemplateRequest);

                    /** DeleteInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate: string;

                    /** DeleteInstanceTemplateRequest project. */
                    public project: string;

                    /** DeleteInstanceTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInstanceTemplateRequest): google.cloud.compute.v1.DeleteInstanceTemplateRequest;

                    /**
                     * Encodes the specified DeleteInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceTemplateRequest.verify|verify} messages.
                     * @param message DeleteInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInstanceTemplateRequest.verify|verify} messages.
                     * @param message DeleteInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInstanceTemplateRequest;

                    /**
                     * Decodes a DeleteInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInstanceTemplateRequest;

                    /**
                     * Verifies a DeleteInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstancesInstanceGroupManagerRequest. */
                interface IDeleteInstancesInstanceGroupManagerRequest {

                    /** DeleteInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteInstancesInstanceGroupManagerRequest instanceGroupManagersDeleteInstancesRequestResource */
                    instanceGroupManagersDeleteInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersDeleteInstancesRequest|null);

                    /** DeleteInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeleteInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstancesInstanceGroupManagerRequest. */
                class DeleteInstancesInstanceGroupManagerRequest implements IDeleteInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeleteInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInstancesInstanceGroupManagerRequest);

                    /** DeleteInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteInstancesInstanceGroupManagerRequest instanceGroupManagersDeleteInstancesRequestResource. */
                    public instanceGroupManagersDeleteInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersDeleteInstancesRequest|null);

                    /** DeleteInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeleteInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInstancesInstanceGroupManagerRequest): google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeleteInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeleteInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeleteInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeleteInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstancesRegionInstanceGroupManagerRequest. */
                interface IDeleteInstancesRegionInstanceGroupManagerRequest {

                    /** DeleteInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersDeleteInstancesRequestResource */
                    regionInstanceGroupManagersDeleteInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersDeleteInstancesRequest|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInstancesRegionInstanceGroupManagerRequest. */
                class DeleteInstancesRegionInstanceGroupManagerRequest implements IDeleteInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeleteInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInstancesRegionInstanceGroupManagerRequest);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeleteInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** DeleteInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersDeleteInstancesRequestResource. */
                    public regionInstanceGroupManagersDeleteInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersDeleteInstancesRequest|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1.DeleteInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeleteInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeleteInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeleteInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeleteInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstantSnapshotRequest. */
                interface IDeleteInstantSnapshotRequest {

                    /** DeleteInstantSnapshotRequest instantSnapshot */
                    instantSnapshot?: (string|null);

                    /** DeleteInstantSnapshotRequest project */
                    project?: (string|null);

                    /** DeleteInstantSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstantSnapshotRequest. */
                class DeleteInstantSnapshotRequest implements IDeleteInstantSnapshotRequest {

                    /**
                     * Constructs a new DeleteInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInstantSnapshotRequest);

                    /** DeleteInstantSnapshotRequest instantSnapshot. */
                    public instantSnapshot: string;

                    /** DeleteInstantSnapshotRequest project. */
                    public project: string;

                    /** DeleteInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInstantSnapshotRequest): google.cloud.compute.v1.DeleteInstantSnapshotRequest;

                    /**
                     * Encodes the specified DeleteInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInstantSnapshotRequest.verify|verify} messages.
                     * @param message DeleteInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInstantSnapshotRequest.verify|verify} messages.
                     * @param message DeleteInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInstantSnapshotRequest;

                    /**
                     * Decodes a DeleteInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInstantSnapshotRequest;

                    /**
                     * Verifies a DeleteInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a DeleteInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInterconnectAttachmentGroupRequest. */
                interface IDeleteInterconnectAttachmentGroupRequest {

                    /** DeleteInterconnectAttachmentGroupRequest interconnectAttachmentGroup */
                    interconnectAttachmentGroup?: (string|null);

                    /** DeleteInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** DeleteInterconnectAttachmentGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInterconnectAttachmentGroupRequest. */
                class DeleteInterconnectAttachmentGroupRequest implements IDeleteInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new DeleteInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInterconnectAttachmentGroupRequest);

                    /** DeleteInterconnectAttachmentGroupRequest interconnectAttachmentGroup. */
                    public interconnectAttachmentGroup: string;

                    /** DeleteInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** DeleteInterconnectAttachmentGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInterconnectAttachmentGroupRequest): google.cloud.compute.v1.DeleteInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified DeleteInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message DeleteInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message DeleteInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a DeleteInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a DeleteInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a DeleteInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInterconnectAttachmentRequest. */
                interface IDeleteInterconnectAttachmentRequest {

                    /** DeleteInterconnectAttachmentRequest interconnectAttachment */
                    interconnectAttachment?: (string|null);

                    /** DeleteInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** DeleteInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** DeleteInterconnectAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInterconnectAttachmentRequest. */
                class DeleteInterconnectAttachmentRequest implements IDeleteInterconnectAttachmentRequest {

                    /**
                     * Constructs a new DeleteInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInterconnectAttachmentRequest);

                    /** DeleteInterconnectAttachmentRequest interconnectAttachment. */
                    public interconnectAttachment: string;

                    /** DeleteInterconnectAttachmentRequest project. */
                    public project: string;

                    /** DeleteInterconnectAttachmentRequest region. */
                    public region: string;

                    /** DeleteInterconnectAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInterconnectAttachmentRequest): google.cloud.compute.v1.DeleteInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified DeleteInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message DeleteInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message DeleteInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInterconnectAttachmentRequest;

                    /**
                     * Decodes a DeleteInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInterconnectAttachmentRequest;

                    /**
                     * Verifies a DeleteInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a DeleteInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message DeleteInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInterconnectGroupRequest. */
                interface IDeleteInterconnectGroupRequest {

                    /** DeleteInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** DeleteInterconnectGroupRequest project */
                    project?: (string|null);

                    /** DeleteInterconnectGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInterconnectGroupRequest. */
                class DeleteInterconnectGroupRequest implements IDeleteInterconnectGroupRequest {

                    /**
                     * Constructs a new DeleteInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInterconnectGroupRequest);

                    /** DeleteInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** DeleteInterconnectGroupRequest project. */
                    public project: string;

                    /** DeleteInterconnectGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInterconnectGroupRequest): google.cloud.compute.v1.DeleteInterconnectGroupRequest;

                    /**
                     * Encodes the specified DeleteInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInterconnectGroupRequest.verify|verify} messages.
                     * @param message DeleteInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInterconnectGroupRequest.verify|verify} messages.
                     * @param message DeleteInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInterconnectGroupRequest;

                    /**
                     * Decodes a DeleteInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInterconnectGroupRequest;

                    /**
                     * Verifies a DeleteInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a DeleteInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInterconnectRequest. */
                interface IDeleteInterconnectRequest {

                    /** DeleteInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** DeleteInterconnectRequest project */
                    project?: (string|null);

                    /** DeleteInterconnectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInterconnectRequest. */
                class DeleteInterconnectRequest implements IDeleteInterconnectRequest {

                    /**
                     * Constructs a new DeleteInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteInterconnectRequest);

                    /** DeleteInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** DeleteInterconnectRequest project. */
                    public project: string;

                    /** DeleteInterconnectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteInterconnectRequest): google.cloud.compute.v1.DeleteInterconnectRequest;

                    /**
                     * Encodes the specified DeleteInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteInterconnectRequest.verify|verify} messages.
                     * @param message DeleteInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteInterconnectRequest.verify|verify} messages.
                     * @param message DeleteInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteInterconnectRequest;

                    /**
                     * Decodes a DeleteInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteInterconnectRequest;

                    /**
                     * Verifies a DeleteInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteInterconnectRequest;

                    /**
                     * Creates a plain object from a DeleteInterconnectRequest message. Also converts values to other types if specified.
                     * @param message DeleteInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteLicenseRequest. */
                interface IDeleteLicenseRequest {

                    /** DeleteLicenseRequest license */
                    license?: (string|null);

                    /** DeleteLicenseRequest project */
                    project?: (string|null);

                    /** DeleteLicenseRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteLicenseRequest. */
                class DeleteLicenseRequest implements IDeleteLicenseRequest {

                    /**
                     * Constructs a new DeleteLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteLicenseRequest);

                    /** DeleteLicenseRequest license. */
                    public license: string;

                    /** DeleteLicenseRequest project. */
                    public project: string;

                    /** DeleteLicenseRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteLicenseRequest): google.cloud.compute.v1.DeleteLicenseRequest;

                    /**
                     * Encodes the specified DeleteLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteLicenseRequest.verify|verify} messages.
                     * @param message DeleteLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteLicenseRequest.verify|verify} messages.
                     * @param message DeleteLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteLicenseRequest;

                    /**
                     * Decodes a DeleteLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteLicenseRequest;

                    /**
                     * Verifies a DeleteLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteLicenseRequest;

                    /**
                     * Creates a plain object from a DeleteLicenseRequest message. Also converts values to other types if specified.
                     * @param message DeleteLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteMachineImageRequest. */
                interface IDeleteMachineImageRequest {

                    /** DeleteMachineImageRequest machineImage */
                    machineImage?: (string|null);

                    /** DeleteMachineImageRequest project */
                    project?: (string|null);

                    /** DeleteMachineImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteMachineImageRequest. */
                class DeleteMachineImageRequest implements IDeleteMachineImageRequest {

                    /**
                     * Constructs a new DeleteMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteMachineImageRequest);

                    /** DeleteMachineImageRequest machineImage. */
                    public machineImage: string;

                    /** DeleteMachineImageRequest project. */
                    public project: string;

                    /** DeleteMachineImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteMachineImageRequest): google.cloud.compute.v1.DeleteMachineImageRequest;

                    /**
                     * Encodes the specified DeleteMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteMachineImageRequest.verify|verify} messages.
                     * @param message DeleteMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteMachineImageRequest.verify|verify} messages.
                     * @param message DeleteMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteMachineImageRequest;

                    /**
                     * Decodes a DeleteMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteMachineImageRequest;

                    /**
                     * Verifies a DeleteMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteMachineImageRequest;

                    /**
                     * Creates a plain object from a DeleteMachineImageRequest message. Also converts values to other types if specified.
                     * @param message DeleteMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkAttachmentRequest. */
                interface IDeleteNetworkAttachmentRequest {

                    /** DeleteNetworkAttachmentRequest networkAttachment */
                    networkAttachment?: (string|null);

                    /** DeleteNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** DeleteNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** DeleteNetworkAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNetworkAttachmentRequest. */
                class DeleteNetworkAttachmentRequest implements IDeleteNetworkAttachmentRequest {

                    /**
                     * Constructs a new DeleteNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNetworkAttachmentRequest);

                    /** DeleteNetworkAttachmentRequest networkAttachment. */
                    public networkAttachment: string;

                    /** DeleteNetworkAttachmentRequest project. */
                    public project: string;

                    /** DeleteNetworkAttachmentRequest region. */
                    public region: string;

                    /** DeleteNetworkAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNetworkAttachmentRequest): google.cloud.compute.v1.DeleteNetworkAttachmentRequest;

                    /**
                     * Encodes the specified DeleteNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkAttachmentRequest.verify|verify} messages.
                     * @param message DeleteNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkAttachmentRequest.verify|verify} messages.
                     * @param message DeleteNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNetworkAttachmentRequest;

                    /**
                     * Decodes a DeleteNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNetworkAttachmentRequest;

                    /**
                     * Verifies a DeleteNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkEdgeSecurityServiceRequest. */
                interface IDeleteNetworkEdgeSecurityServiceRequest {

                    /** DeleteNetworkEdgeSecurityServiceRequest networkEdgeSecurityService */
                    networkEdgeSecurityService?: (string|null);

                    /** DeleteNetworkEdgeSecurityServiceRequest project */
                    project?: (string|null);

                    /** DeleteNetworkEdgeSecurityServiceRequest region */
                    region?: (string|null);

                    /** DeleteNetworkEdgeSecurityServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNetworkEdgeSecurityServiceRequest. */
                class DeleteNetworkEdgeSecurityServiceRequest implements IDeleteNetworkEdgeSecurityServiceRequest {

                    /**
                     * Constructs a new DeleteNetworkEdgeSecurityServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNetworkEdgeSecurityServiceRequest);

                    /** DeleteNetworkEdgeSecurityServiceRequest networkEdgeSecurityService. */
                    public networkEdgeSecurityService: string;

                    /** DeleteNetworkEdgeSecurityServiceRequest project. */
                    public project: string;

                    /** DeleteNetworkEdgeSecurityServiceRequest region. */
                    public region: string;

                    /** DeleteNetworkEdgeSecurityServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNetworkEdgeSecurityServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkEdgeSecurityServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNetworkEdgeSecurityServiceRequest): google.cloud.compute.v1.DeleteNetworkEdgeSecurityServiceRequest;

                    /**
                     * Encodes the specified DeleteNetworkEdgeSecurityServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message DeleteNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkEdgeSecurityServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message DeleteNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkEdgeSecurityServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNetworkEdgeSecurityServiceRequest;

                    /**
                     * Decodes a DeleteNetworkEdgeSecurityServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNetworkEdgeSecurityServiceRequest;

                    /**
                     * Verifies a DeleteNetworkEdgeSecurityServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkEdgeSecurityServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkEdgeSecurityServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNetworkEdgeSecurityServiceRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkEdgeSecurityServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkEdgeSecurityServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNetworkEdgeSecurityServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkEdgeSecurityServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkEdgeSecurityServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkEndpointGroupRequest. */
                interface IDeleteNetworkEndpointGroupRequest {

                    /** DeleteNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DeleteNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DeleteNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteNetworkEndpointGroupRequest. */
                class DeleteNetworkEndpointGroupRequest implements IDeleteNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DeleteNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNetworkEndpointGroupRequest);

                    /** DeleteNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DeleteNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DeleteNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNetworkEndpointGroupRequest): google.cloud.compute.v1.DeleteNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DeleteNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DeleteNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DeleteNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkFirewallPolicyRequest. */
                interface IDeleteNetworkFirewallPolicyRequest {

                    /** DeleteNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** DeleteNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** DeleteNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNetworkFirewallPolicyRequest. */
                class DeleteNetworkFirewallPolicyRequest implements IDeleteNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new DeleteNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNetworkFirewallPolicyRequest);

                    /** DeleteNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** DeleteNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** DeleteNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNetworkFirewallPolicyRequest): google.cloud.compute.v1.DeleteNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified DeleteNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a DeleteNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a DeleteNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkInterfaceInstanceRequest. */
                interface IDeleteNetworkInterfaceInstanceRequest {

                    /** DeleteNetworkInterfaceInstanceRequest instance */
                    instance?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest networkInterfaceName */
                    networkInterfaceName?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest project */
                    project?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteNetworkInterfaceInstanceRequest. */
                class DeleteNetworkInterfaceInstanceRequest implements IDeleteNetworkInterfaceInstanceRequest {

                    /**
                     * Constructs a new DeleteNetworkInterfaceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNetworkInterfaceInstanceRequest);

                    /** DeleteNetworkInterfaceInstanceRequest instance. */
                    public instance: string;

                    /** DeleteNetworkInterfaceInstanceRequest networkInterfaceName. */
                    public networkInterfaceName: string;

                    /** DeleteNetworkInterfaceInstanceRequest project. */
                    public project: string;

                    /** DeleteNetworkInterfaceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteNetworkInterfaceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkInterfaceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNetworkInterfaceInstanceRequest): google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest;

                    /**
                     * Encodes the specified DeleteNetworkInterfaceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message DeleteNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkInterfaceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message DeleteNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkInterfaceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest;

                    /**
                     * Decodes a DeleteNetworkInterfaceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest;

                    /**
                     * Verifies a DeleteNetworkInterfaceInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkInterfaceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkInterfaceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkInterfaceInstanceRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkInterfaceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkInterfaceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkInterfaceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkRequest. */
                interface IDeleteNetworkRequest {

                    /** DeleteNetworkRequest network */
                    network?: (string|null);

                    /** DeleteNetworkRequest project */
                    project?: (string|null);

                    /** DeleteNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNetworkRequest. */
                class DeleteNetworkRequest implements IDeleteNetworkRequest {

                    /**
                     * Constructs a new DeleteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNetworkRequest);

                    /** DeleteNetworkRequest network. */
                    public network: string;

                    /** DeleteNetworkRequest project. */
                    public project: string;

                    /** DeleteNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNetworkRequest): google.cloud.compute.v1.DeleteNetworkRequest;

                    /**
                     * Encodes the specified DeleteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkRequest.verify|verify} messages.
                     * @param message DeleteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNetworkRequest.verify|verify} messages.
                     * @param message DeleteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNetworkRequest;

                    /**
                     * Decodes a DeleteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNetworkRequest;

                    /**
                     * Verifies a DeleteNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNetworkRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNodeGroupRequest. */
                interface IDeleteNodeGroupRequest {

                    /** DeleteNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** DeleteNodeGroupRequest project */
                    project?: (string|null);

                    /** DeleteNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteNodeGroupRequest. */
                class DeleteNodeGroupRequest implements IDeleteNodeGroupRequest {

                    /**
                     * Constructs a new DeleteNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNodeGroupRequest);

                    /** DeleteNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** DeleteNodeGroupRequest project. */
                    public project: string;

                    /** DeleteNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNodeGroupRequest): google.cloud.compute.v1.DeleteNodeGroupRequest;

                    /**
                     * Encodes the specified DeleteNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNodeGroupRequest.verify|verify} messages.
                     * @param message DeleteNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNodeGroupRequest.verify|verify} messages.
                     * @param message DeleteNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNodeGroupRequest;

                    /**
                     * Decodes a DeleteNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNodeGroupRequest;

                    /**
                     * Verifies a DeleteNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNodeGroupRequest;

                    /**
                     * Creates a plain object from a DeleteNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNodeTemplateRequest. */
                interface IDeleteNodeTemplateRequest {

                    /** DeleteNodeTemplateRequest nodeTemplate */
                    nodeTemplate?: (string|null);

                    /** DeleteNodeTemplateRequest project */
                    project?: (string|null);

                    /** DeleteNodeTemplateRequest region */
                    region?: (string|null);

                    /** DeleteNodeTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNodeTemplateRequest. */
                class DeleteNodeTemplateRequest implements IDeleteNodeTemplateRequest {

                    /**
                     * Constructs a new DeleteNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNodeTemplateRequest);

                    /** DeleteNodeTemplateRequest nodeTemplate. */
                    public nodeTemplate: string;

                    /** DeleteNodeTemplateRequest project. */
                    public project: string;

                    /** DeleteNodeTemplateRequest region. */
                    public region: string;

                    /** DeleteNodeTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNodeTemplateRequest): google.cloud.compute.v1.DeleteNodeTemplateRequest;

                    /**
                     * Encodes the specified DeleteNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNodeTemplateRequest.verify|verify} messages.
                     * @param message DeleteNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNodeTemplateRequest.verify|verify} messages.
                     * @param message DeleteNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNodeTemplateRequest;

                    /**
                     * Decodes a DeleteNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNodeTemplateRequest;

                    /**
                     * Verifies a DeleteNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNodeTemplateRequest;

                    /**
                     * Creates a plain object from a DeleteNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message DeleteNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNodesNodeGroupRequest. */
                interface IDeleteNodesNodeGroupRequest {

                    /** DeleteNodesNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** DeleteNodesNodeGroupRequest nodeGroupsDeleteNodesRequestResource */
                    nodeGroupsDeleteNodesRequestResource?: (google.cloud.compute.v1.INodeGroupsDeleteNodesRequest|null);

                    /** DeleteNodesNodeGroupRequest project */
                    project?: (string|null);

                    /** DeleteNodesNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNodesNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteNodesNodeGroupRequest. */
                class DeleteNodesNodeGroupRequest implements IDeleteNodesNodeGroupRequest {

                    /**
                     * Constructs a new DeleteNodesNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteNodesNodeGroupRequest);

                    /** DeleteNodesNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** DeleteNodesNodeGroupRequest nodeGroupsDeleteNodesRequestResource. */
                    public nodeGroupsDeleteNodesRequestResource?: (google.cloud.compute.v1.INodeGroupsDeleteNodesRequest|null);

                    /** DeleteNodesNodeGroupRequest project. */
                    public project: string;

                    /** DeleteNodesNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNodesNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteNodesNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNodesNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteNodesNodeGroupRequest): google.cloud.compute.v1.DeleteNodesNodeGroupRequest;

                    /**
                     * Encodes the specified DeleteNodesNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteNodesNodeGroupRequest.verify|verify} messages.
                     * @param message DeleteNodesNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteNodesNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNodesNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteNodesNodeGroupRequest.verify|verify} messages.
                     * @param message DeleteNodesNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteNodesNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNodesNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNodesNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteNodesNodeGroupRequest;

                    /**
                     * Decodes a DeleteNodesNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNodesNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteNodesNodeGroupRequest;

                    /**
                     * Verifies a DeleteNodesNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNodesNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNodesNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteNodesNodeGroupRequest;

                    /**
                     * Creates a plain object from a DeleteNodesNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteNodesNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteNodesNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNodesNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNodesNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteOrganizationSecurityPolicyRequest. */
                interface IDeleteOrganizationSecurityPolicyRequest {

                    /** DeleteOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a DeleteOrganizationSecurityPolicyRequest. */
                class DeleteOrganizationSecurityPolicyRequest implements IDeleteOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new DeleteOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteOrganizationSecurityPolicyRequest);

                    /** DeleteOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new DeleteOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteOrganizationSecurityPolicyRequest): google.cloud.compute.v1.DeleteOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified DeleteOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a DeleteOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a DeleteOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePacketMirroringRequest. */
                interface IDeletePacketMirroringRequest {

                    /** DeletePacketMirroringRequest packetMirroring */
                    packetMirroring?: (string|null);

                    /** DeletePacketMirroringRequest project */
                    project?: (string|null);

                    /** DeletePacketMirroringRequest region */
                    region?: (string|null);

                    /** DeletePacketMirroringRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeletePacketMirroringRequest. */
                class DeletePacketMirroringRequest implements IDeletePacketMirroringRequest {

                    /**
                     * Constructs a new DeletePacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeletePacketMirroringRequest);

                    /** DeletePacketMirroringRequest packetMirroring. */
                    public packetMirroring: string;

                    /** DeletePacketMirroringRequest project. */
                    public project: string;

                    /** DeletePacketMirroringRequest region. */
                    public region: string;

                    /** DeletePacketMirroringRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeletePacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeletePacketMirroringRequest): google.cloud.compute.v1.DeletePacketMirroringRequest;

                    /**
                     * Encodes the specified DeletePacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1.DeletePacketMirroringRequest.verify|verify} messages.
                     * @param message DeletePacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeletePacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeletePacketMirroringRequest.verify|verify} messages.
                     * @param message DeletePacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeletePacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeletePacketMirroringRequest;

                    /**
                     * Decodes a DeletePacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeletePacketMirroringRequest;

                    /**
                     * Verifies a DeletePacketMirroringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeletePacketMirroringRequest;

                    /**
                     * Creates a plain object from a DeletePacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message DeletePacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeletePacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePerInstanceConfigsInstanceGroupManagerRequest. */
                interface IDeletePerInstanceConfigsInstanceGroupManagerRequest {

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersDeletePerInstanceConfigsReqResource */
                    instanceGroupManagersDeletePerInstanceConfigsReqResource?: (google.cloud.compute.v1.IInstanceGroupManagersDeletePerInstanceConfigsReq|null);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeletePerInstanceConfigsInstanceGroupManagerRequest. */
                class DeletePerInstanceConfigsInstanceGroupManagerRequest implements IDeletePerInstanceConfigsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeletePerInstanceConfigsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeletePerInstanceConfigsInstanceGroupManagerRequest);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersDeletePerInstanceConfigsReqResource. */
                    public instanceGroupManagersDeletePerInstanceConfigsReqResource?: (google.cloud.compute.v1.IInstanceGroupManagersDeletePerInstanceConfigsReq|null);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeletePerInstanceConfigsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePerInstanceConfigsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeletePerInstanceConfigsInstanceGroupManagerRequest): google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeletePerInstanceConfigsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeletePerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeletePerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePerInstanceConfigsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeletePerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeletePerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeletePerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeletePerInstanceConfigsInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePerInstanceConfigsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePerInstanceConfigsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeletePerInstanceConfigsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeletePerInstanceConfigsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePerInstanceConfigsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePerInstanceConfigsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest. */
                interface IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerDeleteInstanceConfigReqResource */
                    regionInstanceGroupManagerDeleteInstanceConfigReqResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagerDeleteInstanceConfigReq|null);
                }

                /** Represents a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest. */
                class DeletePerInstanceConfigsRegionInstanceGroupManagerRequest implements IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeletePerInstanceConfigsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest);

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerDeleteInstanceConfigReqResource. */
                    public regionInstanceGroupManagerDeleteInstanceConfigReqResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagerDeleteInstanceConfigReq|null);

                    /**
                     * Creates a new DeletePerInstanceConfigsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePerInstanceConfigsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest): google.cloud.compute.v1.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePerInstanceConfigsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePublicAdvertisedPrefixeRequest. */
                interface IDeletePublicAdvertisedPrefixeRequest {

                    /** DeletePublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** DeletePublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);

                    /** DeletePublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeletePublicAdvertisedPrefixeRequest. */
                class DeletePublicAdvertisedPrefixeRequest implements IDeletePublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new DeletePublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeletePublicAdvertisedPrefixeRequest);

                    /** DeletePublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** DeletePublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /** DeletePublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeletePublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeletePublicAdvertisedPrefixeRequest): google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified DeletePublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message DeletePublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeletePublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message DeletePublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeletePublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes a DeletePublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies a DeletePublicAdvertisedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from a DeletePublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message DeletePublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePublicDelegatedPrefixeRequest. */
                interface IDeletePublicDelegatedPrefixeRequest {

                    /** DeletePublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** DeletePublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** DeletePublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** DeletePublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeletePublicDelegatedPrefixeRequest. */
                class DeletePublicDelegatedPrefixeRequest implements IDeletePublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new DeletePublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeletePublicDelegatedPrefixeRequest);

                    /** DeletePublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** DeletePublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** DeletePublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** DeletePublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeletePublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeletePublicDelegatedPrefixeRequest): google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified DeletePublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message DeletePublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeletePublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message DeletePublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeletePublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a DeletePublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a DeletePublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a DeletePublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message DeletePublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionAutoscalerRequest. */
                interface IDeleteRegionAutoscalerRequest {

                    /** DeleteRegionAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** DeleteRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** DeleteRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** DeleteRegionAutoscalerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionAutoscalerRequest. */
                class DeleteRegionAutoscalerRequest implements IDeleteRegionAutoscalerRequest {

                    /**
                     * Constructs a new DeleteRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionAutoscalerRequest);

                    /** DeleteRegionAutoscalerRequest autoscaler. */
                    public autoscaler: string;

                    /** DeleteRegionAutoscalerRequest project. */
                    public project: string;

                    /** DeleteRegionAutoscalerRequest region. */
                    public region: string;

                    /** DeleteRegionAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionAutoscalerRequest): google.cloud.compute.v1.DeleteRegionAutoscalerRequest;

                    /**
                     * Encodes the specified DeleteRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionAutoscalerRequest.verify|verify} messages.
                     * @param message DeleteRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionAutoscalerRequest.verify|verify} messages.
                     * @param message DeleteRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionAutoscalerRequest;

                    /**
                     * Decodes a DeleteRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionAutoscalerRequest;

                    /**
                     * Verifies a DeleteRegionAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from a DeleteRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionBackendServiceRequest. */
                interface IDeleteRegionBackendServiceRequest {

                    /** DeleteRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** DeleteRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** DeleteRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** DeleteRegionBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionBackendServiceRequest. */
                class DeleteRegionBackendServiceRequest implements IDeleteRegionBackendServiceRequest {

                    /**
                     * Constructs a new DeleteRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionBackendServiceRequest);

                    /** DeleteRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** DeleteRegionBackendServiceRequest project. */
                    public project: string;

                    /** DeleteRegionBackendServiceRequest region. */
                    public region: string;

                    /** DeleteRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionBackendServiceRequest): google.cloud.compute.v1.DeleteRegionBackendServiceRequest;

                    /**
                     * Encodes the specified DeleteRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionBackendServiceRequest;

                    /**
                     * Decodes a DeleteRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionBackendServiceRequest;

                    /**
                     * Verifies a DeleteRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a DeleteRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionCompositeHealthCheckRequest. */
                interface IDeleteRegionCompositeHealthCheckRequest {

                    /** DeleteRegionCompositeHealthCheckRequest compositeHealthCheck */
                    compositeHealthCheck?: (string|null);

                    /** DeleteRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** DeleteRegionCompositeHealthCheckRequest region */
                    region?: (string|null);

                    /** DeleteRegionCompositeHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionCompositeHealthCheckRequest. */
                class DeleteRegionCompositeHealthCheckRequest implements IDeleteRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new DeleteRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionCompositeHealthCheckRequest);

                    /** DeleteRegionCompositeHealthCheckRequest compositeHealthCheck. */
                    public compositeHealthCheck: string;

                    /** DeleteRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** DeleteRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /** DeleteRegionCompositeHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionCompositeHealthCheckRequest): google.cloud.compute.v1.DeleteRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified DeleteRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes a DeleteRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies a DeleteRegionCompositeHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from a DeleteRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionDiskRequest. */
                interface IDeleteRegionDiskRequest {

                    /** DeleteRegionDiskRequest disk */
                    disk?: (string|null);

                    /** DeleteRegionDiskRequest project */
                    project?: (string|null);

                    /** DeleteRegionDiskRequest region */
                    region?: (string|null);

                    /** DeleteRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionDiskRequest. */
                class DeleteRegionDiskRequest implements IDeleteRegionDiskRequest {

                    /**
                     * Constructs a new DeleteRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionDiskRequest);

                    /** DeleteRegionDiskRequest disk. */
                    public disk: string;

                    /** DeleteRegionDiskRequest project. */
                    public project: string;

                    /** DeleteRegionDiskRequest region. */
                    public region: string;

                    /** DeleteRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionDiskRequest): google.cloud.compute.v1.DeleteRegionDiskRequest;

                    /**
                     * Encodes the specified DeleteRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionDiskRequest.verify|verify} messages.
                     * @param message DeleteRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionDiskRequest.verify|verify} messages.
                     * @param message DeleteRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionDiskRequest;

                    /**
                     * Decodes a DeleteRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionDiskRequest;

                    /**
                     * Verifies a DeleteRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionDiskRequest;

                    /**
                     * Creates a plain object from a DeleteRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionHealthAggregationPolicyRequest. */
                interface IDeleteRegionHealthAggregationPolicyRequest {

                    /** DeleteRegionHealthAggregationPolicyRequest healthAggregationPolicy */
                    healthAggregationPolicy?: (string|null);

                    /** DeleteRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionHealthAggregationPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionHealthAggregationPolicyRequest. */
                class DeleteRegionHealthAggregationPolicyRequest implements IDeleteRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionHealthAggregationPolicyRequest);

                    /** DeleteRegionHealthAggregationPolicyRequest healthAggregationPolicy. */
                    public healthAggregationPolicy: string;

                    /** DeleteRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionHealthAggregationPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionHealthAggregationPolicyRequest): google.cloud.compute.v1.DeleteRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes a DeleteRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies a DeleteRegionHealthAggregationPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionHealthCheckRequest. */
                interface IDeleteRegionHealthCheckRequest {

                    /** DeleteRegionHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** DeleteRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** DeleteRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** DeleteRegionHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionHealthCheckRequest. */
                class DeleteRegionHealthCheckRequest implements IDeleteRegionHealthCheckRequest {

                    /**
                     * Constructs a new DeleteRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionHealthCheckRequest);

                    /** DeleteRegionHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** DeleteRegionHealthCheckRequest project. */
                    public project: string;

                    /** DeleteRegionHealthCheckRequest region. */
                    public region: string;

                    /** DeleteRegionHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionHealthCheckRequest): google.cloud.compute.v1.DeleteRegionHealthCheckRequest;

                    /**
                     * Encodes the specified DeleteRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionHealthCheckRequest;

                    /**
                     * Decodes a DeleteRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionHealthCheckRequest;

                    /**
                     * Verifies a DeleteRegionHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from a DeleteRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionHealthCheckServiceRequest. */
                interface IDeleteRegionHealthCheckServiceRequest {

                    /** DeleteRegionHealthCheckServiceRequest healthCheckService */
                    healthCheckService?: (string|null);

                    /** DeleteRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** DeleteRegionHealthCheckServiceRequest region */
                    region?: (string|null);

                    /** DeleteRegionHealthCheckServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionHealthCheckServiceRequest. */
                class DeleteRegionHealthCheckServiceRequest implements IDeleteRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new DeleteRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionHealthCheckServiceRequest);

                    /** DeleteRegionHealthCheckServiceRequest healthCheckService. */
                    public healthCheckService: string;

                    /** DeleteRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** DeleteRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /** DeleteRegionHealthCheckServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionHealthCheckServiceRequest): google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified DeleteRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest;

                    /**
                     * Decodes a DeleteRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest;

                    /**
                     * Verifies a DeleteRegionHealthCheckServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from a DeleteRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionHealthSourceRequest. */
                interface IDeleteRegionHealthSourceRequest {

                    /** DeleteRegionHealthSourceRequest healthSource */
                    healthSource?: (string|null);

                    /** DeleteRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** DeleteRegionHealthSourceRequest region */
                    region?: (string|null);

                    /** DeleteRegionHealthSourceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionHealthSourceRequest. */
                class DeleteRegionHealthSourceRequest implements IDeleteRegionHealthSourceRequest {

                    /**
                     * Constructs a new DeleteRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionHealthSourceRequest);

                    /** DeleteRegionHealthSourceRequest healthSource. */
                    public healthSource: string;

                    /** DeleteRegionHealthSourceRequest project. */
                    public project: string;

                    /** DeleteRegionHealthSourceRequest region. */
                    public region: string;

                    /** DeleteRegionHealthSourceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionHealthSourceRequest): google.cloud.compute.v1.DeleteRegionHealthSourceRequest;

                    /**
                     * Encodes the specified DeleteRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionHealthSourceRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionHealthSourceRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionHealthSourceRequest;

                    /**
                     * Decodes a DeleteRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionHealthSourceRequest;

                    /**
                     * Verifies a DeleteRegionHealthSourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from a DeleteRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionInstanceGroupManagerRequest. */
                interface IDeleteRegionInstanceGroupManagerRequest {

                    /** DeleteRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeleteRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** DeleteRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionInstanceGroupManagerRequest. */
                class DeleteRegionInstanceGroupManagerRequest implements IDeleteRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeleteRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionInstanceGroupManagerRequest);

                    /** DeleteRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeleteRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** DeleteRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionInstanceGroupManagerRequest): google.cloud.compute.v1.DeleteRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeleteRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeleteRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeleteRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeleteRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionInstanceTemplateRequest. */
                interface IDeleteRegionInstanceTemplateRequest {

                    /** DeleteRegionInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** DeleteRegionInstanceTemplateRequest project */
                    project?: (string|null);

                    /** DeleteRegionInstanceTemplateRequest region */
                    region?: (string|null);

                    /** DeleteRegionInstanceTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionInstanceTemplateRequest. */
                class DeleteRegionInstanceTemplateRequest implements IDeleteRegionInstanceTemplateRequest {

                    /**
                     * Constructs a new DeleteRegionInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionInstanceTemplateRequest);

                    /** DeleteRegionInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate: string;

                    /** DeleteRegionInstanceTemplateRequest project. */
                    public project: string;

                    /** DeleteRegionInstanceTemplateRequest region. */
                    public region: string;

                    /** DeleteRegionInstanceTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionInstanceTemplateRequest): google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest;

                    /**
                     * Encodes the specified DeleteRegionInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest;

                    /**
                     * Decodes a DeleteRegionInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest;

                    /**
                     * Verifies a DeleteRegionInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a DeleteRegionInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionInstantSnapshotRequest. */
                interface IDeleteRegionInstantSnapshotRequest {

                    /** DeleteRegionInstantSnapshotRequest instantSnapshot */
                    instantSnapshot?: (string|null);

                    /** DeleteRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** DeleteRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** DeleteRegionInstantSnapshotRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionInstantSnapshotRequest. */
                class DeleteRegionInstantSnapshotRequest implements IDeleteRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new DeleteRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionInstantSnapshotRequest);

                    /** DeleteRegionInstantSnapshotRequest instantSnapshot. */
                    public instantSnapshot: string;

                    /** DeleteRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** DeleteRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** DeleteRegionInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionInstantSnapshotRequest): google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified DeleteRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message DeleteRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message DeleteRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest;

                    /**
                     * Decodes a DeleteRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest;

                    /**
                     * Verifies a DeleteRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a DeleteRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionNetworkEndpointGroupRequest. */
                interface IDeleteRegionNetworkEndpointGroupRequest {

                    /** DeleteRegionNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DeleteRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DeleteRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);

                    /** DeleteRegionNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionNetworkEndpointGroupRequest. */
                class DeleteRegionNetworkEndpointGroupRequest implements IDeleteRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DeleteRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionNetworkEndpointGroupRequest);

                    /** DeleteRegionNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DeleteRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DeleteRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /** DeleteRegionNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionNetworkEndpointGroupRequest): google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DeleteRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DeleteRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DeleteRegionNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DeleteRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionNetworkFirewallPolicyRequest. */
                interface IDeleteRegionNetworkFirewallPolicyRequest {

                    /** DeleteRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** DeleteRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionNetworkFirewallPolicyRequest. */
                class DeleteRegionNetworkFirewallPolicyRequest implements IDeleteRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionNetworkFirewallPolicyRequest);

                    /** DeleteRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** DeleteRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.DeleteRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a DeleteRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a DeleteRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionNotificationEndpointRequest. */
                interface IDeleteRegionNotificationEndpointRequest {

                    /** DeleteRegionNotificationEndpointRequest notificationEndpoint */
                    notificationEndpoint?: (string|null);

                    /** DeleteRegionNotificationEndpointRequest project */
                    project?: (string|null);

                    /** DeleteRegionNotificationEndpointRequest region */
                    region?: (string|null);

                    /** DeleteRegionNotificationEndpointRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionNotificationEndpointRequest. */
                class DeleteRegionNotificationEndpointRequest implements IDeleteRegionNotificationEndpointRequest {

                    /**
                     * Constructs a new DeleteRegionNotificationEndpointRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionNotificationEndpointRequest);

                    /** DeleteRegionNotificationEndpointRequest notificationEndpoint. */
                    public notificationEndpoint: string;

                    /** DeleteRegionNotificationEndpointRequest project. */
                    public project: string;

                    /** DeleteRegionNotificationEndpointRequest region. */
                    public region: string;

                    /** DeleteRegionNotificationEndpointRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionNotificationEndpointRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionNotificationEndpointRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionNotificationEndpointRequest): google.cloud.compute.v1.DeleteRegionNotificationEndpointRequest;

                    /**
                     * Encodes the specified DeleteRegionNotificationEndpointRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message DeleteRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionNotificationEndpointRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message DeleteRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionNotificationEndpointRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionNotificationEndpointRequest;

                    /**
                     * Decodes a DeleteRegionNotificationEndpointRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionNotificationEndpointRequest;

                    /**
                     * Verifies a DeleteRegionNotificationEndpointRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionNotificationEndpointRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionNotificationEndpointRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionNotificationEndpointRequest;

                    /**
                     * Creates a plain object from a DeleteRegionNotificationEndpointRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionNotificationEndpointRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionNotificationEndpointRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionNotificationEndpointRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionNotificationEndpointRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionOperationRequest. */
                interface IDeleteRegionOperationRequest {

                    /** DeleteRegionOperationRequest operation */
                    operation?: (string|null);

                    /** DeleteRegionOperationRequest project */
                    project?: (string|null);

                    /** DeleteRegionOperationRequest region */
                    region?: (string|null);
                }

                /** Represents a DeleteRegionOperationRequest. */
                class DeleteRegionOperationRequest implements IDeleteRegionOperationRequest {

                    /**
                     * Constructs a new DeleteRegionOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionOperationRequest);

                    /** DeleteRegionOperationRequest operation. */
                    public operation: string;

                    /** DeleteRegionOperationRequest project. */
                    public project: string;

                    /** DeleteRegionOperationRequest region. */
                    public region: string;

                    /**
                     * Creates a new DeleteRegionOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionOperationRequest): google.cloud.compute.v1.DeleteRegionOperationRequest;

                    /**
                     * Encodes the specified DeleteRegionOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionOperationRequest.verify|verify} messages.
                     * @param message DeleteRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionOperationRequest.verify|verify} messages.
                     * @param message DeleteRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionOperationRequest;

                    /**
                     * Decodes a DeleteRegionOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionOperationRequest;

                    /**
                     * Verifies a DeleteRegionOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionOperationRequest;

                    /**
                     * Creates a plain object from a DeleteRegionOperationRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionOperationResponse. */
                interface IDeleteRegionOperationResponse {
                }

                /** Represents a DeleteRegionOperationResponse. */
                class DeleteRegionOperationResponse implements IDeleteRegionOperationResponse {

                    /**
                     * Constructs a new DeleteRegionOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionOperationResponse);

                    /**
                     * Creates a new DeleteRegionOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionOperationResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionOperationResponse): google.cloud.compute.v1.DeleteRegionOperationResponse;

                    /**
                     * Encodes the specified DeleteRegionOperationResponse message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionOperationResponse.verify|verify} messages.
                     * @param message DeleteRegionOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionOperationResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionOperationResponse.verify|verify} messages.
                     * @param message DeleteRegionOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionOperationResponse;

                    /**
                     * Decodes a DeleteRegionOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionOperationResponse;

                    /**
                     * Verifies a DeleteRegionOperationResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionOperationResponse;

                    /**
                     * Creates a plain object from a DeleteRegionOperationResponse message. Also converts values to other types if specified.
                     * @param message DeleteRegionOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionSecurityPolicyRequest. */
                interface IDeleteRegionSecurityPolicyRequest {

                    /** DeleteRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a DeleteRegionSecurityPolicyRequest. */
                class DeleteRegionSecurityPolicyRequest implements IDeleteRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionSecurityPolicyRequest);

                    /** DeleteRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new DeleteRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionSecurityPolicyRequest): google.cloud.compute.v1.DeleteRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionSecurityPolicyRequest;

                    /**
                     * Decodes a DeleteRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionSecurityPolicyRequest;

                    /**
                     * Verifies a DeleteRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionSslCertificateRequest. */
                interface IDeleteRegionSslCertificateRequest {

                    /** DeleteRegionSslCertificateRequest project */
                    project?: (string|null);

                    /** DeleteRegionSslCertificateRequest region */
                    region?: (string|null);

                    /** DeleteRegionSslCertificateRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionSslCertificateRequest sslCertificate */
                    sslCertificate?: (string|null);
                }

                /** Represents a DeleteRegionSslCertificateRequest. */
                class DeleteRegionSslCertificateRequest implements IDeleteRegionSslCertificateRequest {

                    /**
                     * Constructs a new DeleteRegionSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionSslCertificateRequest);

                    /** DeleteRegionSslCertificateRequest project. */
                    public project: string;

                    /** DeleteRegionSslCertificateRequest region. */
                    public region: string;

                    /** DeleteRegionSslCertificateRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionSslCertificateRequest sslCertificate. */
                    public sslCertificate: string;

                    /**
                     * Creates a new DeleteRegionSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionSslCertificateRequest): google.cloud.compute.v1.DeleteRegionSslCertificateRequest;

                    /**
                     * Encodes the specified DeleteRegionSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionSslCertificateRequest.verify|verify} messages.
                     * @param message DeleteRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionSslCertificateRequest.verify|verify} messages.
                     * @param message DeleteRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionSslCertificateRequest;

                    /**
                     * Decodes a DeleteRegionSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionSslCertificateRequest;

                    /**
                     * Verifies a DeleteRegionSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionSslCertificateRequest;

                    /**
                     * Creates a plain object from a DeleteRegionSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionSslPolicyRequest. */
                interface IDeleteRegionSslPolicyRequest {

                    /** DeleteRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a DeleteRegionSslPolicyRequest. */
                class DeleteRegionSslPolicyRequest implements IDeleteRegionSslPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionSslPolicyRequest);

                    /** DeleteRegionSslPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionSslPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /**
                     * Creates a new DeleteRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionSslPolicyRequest): google.cloud.compute.v1.DeleteRegionSslPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionSslPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionSslPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionSslPolicyRequest;

                    /**
                     * Decodes a DeleteRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionSslPolicyRequest;

                    /**
                     * Verifies a DeleteRegionSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionTargetHttpProxyRequest. */
                interface IDeleteRegionTargetHttpProxyRequest {

                    /** DeleteRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** DeleteRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** DeleteRegionTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);
                }

                /** Represents a DeleteRegionTargetHttpProxyRequest. */
                class DeleteRegionTargetHttpProxyRequest implements IDeleteRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new DeleteRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionTargetHttpProxyRequest);

                    /** DeleteRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** DeleteRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** DeleteRegionTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /**
                     * Creates a new DeleteRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionTargetHttpProxyRequest): google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified DeleteRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest;

                    /**
                     * Decodes a DeleteRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest;

                    /**
                     * Verifies a DeleteRegionTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionTargetHttpsProxyRequest. */
                interface IDeleteRegionTargetHttpsProxyRequest {

                    /** DeleteRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** DeleteRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** DeleteRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a DeleteRegionTargetHttpsProxyRequest. */
                class DeleteRegionTargetHttpsProxyRequest implements IDeleteRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new DeleteRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionTargetHttpsProxyRequest);

                    /** DeleteRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** DeleteRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** DeleteRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new DeleteRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionTargetHttpsProxyRequest): google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified DeleteRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a DeleteRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a DeleteRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionTargetTcpProxyRequest. */
                interface IDeleteRegionTargetTcpProxyRequest {

                    /** DeleteRegionTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** DeleteRegionTargetTcpProxyRequest region */
                    region?: (string|null);

                    /** DeleteRegionTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a DeleteRegionTargetTcpProxyRequest. */
                class DeleteRegionTargetTcpProxyRequest implements IDeleteRegionTargetTcpProxyRequest {

                    /**
                     * Constructs a new DeleteRegionTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionTargetTcpProxyRequest);

                    /** DeleteRegionTargetTcpProxyRequest project. */
                    public project: string;

                    /** DeleteRegionTargetTcpProxyRequest region. */
                    public region: string;

                    /** DeleteRegionTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new DeleteRegionTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionTargetTcpProxyRequest): google.cloud.compute.v1.DeleteRegionTargetTcpProxyRequest;

                    /**
                     * Encodes the specified DeleteRegionTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionTargetTcpProxyRequest;

                    /**
                     * Decodes a DeleteRegionTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionTargetTcpProxyRequest;

                    /**
                     * Verifies a DeleteRegionTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionUrlMapRequest. */
                interface IDeleteRegionUrlMapRequest {

                    /** DeleteRegionUrlMapRequest project */
                    project?: (string|null);

                    /** DeleteRegionUrlMapRequest region */
                    region?: (string|null);

                    /** DeleteRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a DeleteRegionUrlMapRequest. */
                class DeleteRegionUrlMapRequest implements IDeleteRegionUrlMapRequest {

                    /**
                     * Constructs a new DeleteRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRegionUrlMapRequest);

                    /** DeleteRegionUrlMapRequest project. */
                    public project: string;

                    /** DeleteRegionUrlMapRequest region. */
                    public region: string;

                    /** DeleteRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new DeleteRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRegionUrlMapRequest): google.cloud.compute.v1.DeleteRegionUrlMapRequest;

                    /**
                     * Encodes the specified DeleteRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionUrlMapRequest.verify|verify} messages.
                     * @param message DeleteRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRegionUrlMapRequest.verify|verify} messages.
                     * @param message DeleteRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRegionUrlMapRequest;

                    /**
                     * Decodes a DeleteRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRegionUrlMapRequest;

                    /**
                     * Verifies a DeleteRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a DeleteRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteReservationRequest. */
                interface IDeleteReservationRequest {

                    /** DeleteReservationRequest project */
                    project?: (string|null);

                    /** DeleteReservationRequest requestId */
                    requestId?: (string|null);

                    /** DeleteReservationRequest reservation */
                    reservation?: (string|null);

                    /** DeleteReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteReservationRequest. */
                class DeleteReservationRequest implements IDeleteReservationRequest {

                    /**
                     * Constructs a new DeleteReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteReservationRequest);

                    /** DeleteReservationRequest project. */
                    public project: string;

                    /** DeleteReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteReservationRequest reservation. */
                    public reservation: string;

                    /** DeleteReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteReservationRequest): google.cloud.compute.v1.DeleteReservationRequest;

                    /**
                     * Encodes the specified DeleteReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteReservationRequest.verify|verify} messages.
                     * @param message DeleteReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteReservationRequest.verify|verify} messages.
                     * @param message DeleteReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteReservationRequest;

                    /**
                     * Decodes a DeleteReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteReservationRequest;

                    /**
                     * Verifies a DeleteReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteReservationRequest;

                    /**
                     * Creates a plain object from a DeleteReservationRequest message. Also converts values to other types if specified.
                     * @param message DeleteReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteResourcePolicyRequest. */
                interface IDeleteResourcePolicyRequest {

                    /** DeleteResourcePolicyRequest project */
                    project?: (string|null);

                    /** DeleteResourcePolicyRequest region */
                    region?: (string|null);

                    /** DeleteResourcePolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteResourcePolicyRequest resourcePolicy */
                    resourcePolicy?: (string|null);
                }

                /** Represents a DeleteResourcePolicyRequest. */
                class DeleteResourcePolicyRequest implements IDeleteResourcePolicyRequest {

                    /**
                     * Constructs a new DeleteResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteResourcePolicyRequest);

                    /** DeleteResourcePolicyRequest project. */
                    public project: string;

                    /** DeleteResourcePolicyRequest region. */
                    public region: string;

                    /** DeleteResourcePolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteResourcePolicyRequest resourcePolicy. */
                    public resourcePolicy: string;

                    /**
                     * Creates a new DeleteResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteResourcePolicyRequest): google.cloud.compute.v1.DeleteResourcePolicyRequest;

                    /**
                     * Encodes the specified DeleteResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteResourcePolicyRequest.verify|verify} messages.
                     * @param message DeleteResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteResourcePolicyRequest.verify|verify} messages.
                     * @param message DeleteResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteResourcePolicyRequest;

                    /**
                     * Decodes a DeleteResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteResourcePolicyRequest;

                    /**
                     * Verifies a DeleteResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteResourcePolicyRequest;

                    /**
                     * Creates a plain object from a DeleteResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRoutePolicyRouterRequest. */
                interface IDeleteRoutePolicyRouterRequest {

                    /** DeleteRoutePolicyRouterRequest policy */
                    policy?: (string|null);

                    /** DeleteRoutePolicyRouterRequest project */
                    project?: (string|null);

                    /** DeleteRoutePolicyRouterRequest region */
                    region?: (string|null);

                    /** DeleteRoutePolicyRouterRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRoutePolicyRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a DeleteRoutePolicyRouterRequest. */
                class DeleteRoutePolicyRouterRequest implements IDeleteRoutePolicyRouterRequest {

                    /**
                     * Constructs a new DeleteRoutePolicyRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRoutePolicyRouterRequest);

                    /** DeleteRoutePolicyRouterRequest policy. */
                    public policy?: (string|null);

                    /** DeleteRoutePolicyRouterRequest project. */
                    public project: string;

                    /** DeleteRoutePolicyRouterRequest region. */
                    public region: string;

                    /** DeleteRoutePolicyRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRoutePolicyRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new DeleteRoutePolicyRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRoutePolicyRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRoutePolicyRouterRequest): google.cloud.compute.v1.DeleteRoutePolicyRouterRequest;

                    /**
                     * Encodes the specified DeleteRoutePolicyRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message DeleteRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRoutePolicyRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message DeleteRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRoutePolicyRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRoutePolicyRouterRequest;

                    /**
                     * Decodes a DeleteRoutePolicyRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRoutePolicyRouterRequest;

                    /**
                     * Verifies a DeleteRoutePolicyRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRoutePolicyRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRoutePolicyRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRoutePolicyRouterRequest;

                    /**
                     * Creates a plain object from a DeleteRoutePolicyRouterRequest message. Also converts values to other types if specified.
                     * @param message DeleteRoutePolicyRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRoutePolicyRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRoutePolicyRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRoutePolicyRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRouteRequest. */
                interface IDeleteRouteRequest {

                    /** DeleteRouteRequest project */
                    project?: (string|null);

                    /** DeleteRouteRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRouteRequest route */
                    route?: (string|null);
                }

                /** Represents a DeleteRouteRequest. */
                class DeleteRouteRequest implements IDeleteRouteRequest {

                    /**
                     * Constructs a new DeleteRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRouteRequest);

                    /** DeleteRouteRequest project. */
                    public project: string;

                    /** DeleteRouteRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRouteRequest route. */
                    public route: string;

                    /**
                     * Creates a new DeleteRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRouteRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRouteRequest): google.cloud.compute.v1.DeleteRouteRequest;

                    /**
                     * Encodes the specified DeleteRouteRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRouteRequest.verify|verify} messages.
                     * @param message DeleteRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRouteRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRouteRequest.verify|verify} messages.
                     * @param message DeleteRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRouteRequest;

                    /**
                     * Decodes a DeleteRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRouteRequest;

                    /**
                     * Verifies a DeleteRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRouteRequest;

                    /**
                     * Creates a plain object from a DeleteRouteRequest message. Also converts values to other types if specified.
                     * @param message DeleteRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRouterRequest. */
                interface IDeleteRouterRequest {

                    /** DeleteRouterRequest project */
                    project?: (string|null);

                    /** DeleteRouterRequest region */
                    region?: (string|null);

                    /** DeleteRouterRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a DeleteRouterRequest. */
                class DeleteRouterRequest implements IDeleteRouterRequest {

                    /**
                     * Constructs a new DeleteRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteRouterRequest);

                    /** DeleteRouterRequest project. */
                    public project: string;

                    /** DeleteRouterRequest region. */
                    public region: string;

                    /** DeleteRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new DeleteRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteRouterRequest): google.cloud.compute.v1.DeleteRouterRequest;

                    /**
                     * Encodes the specified DeleteRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteRouterRequest.verify|verify} messages.
                     * @param message DeleteRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteRouterRequest.verify|verify} messages.
                     * @param message DeleteRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteRouterRequest;

                    /**
                     * Decodes a DeleteRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteRouterRequest;

                    /**
                     * Verifies a DeleteRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteRouterRequest;

                    /**
                     * Creates a plain object from a DeleteRouterRequest message. Also converts values to other types if specified.
                     * @param message DeleteRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSecurityPolicyRequest. */
                interface IDeleteSecurityPolicyRequest {

                    /** DeleteSecurityPolicyRequest project */
                    project?: (string|null);

                    /** DeleteSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a DeleteSecurityPolicyRequest. */
                class DeleteSecurityPolicyRequest implements IDeleteSecurityPolicyRequest {

                    /**
                     * Constructs a new DeleteSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteSecurityPolicyRequest);

                    /** DeleteSecurityPolicyRequest project. */
                    public project: string;

                    /** DeleteSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new DeleteSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteSecurityPolicyRequest): google.cloud.compute.v1.DeleteSecurityPolicyRequest;

                    /**
                     * Encodes the specified DeleteSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteSecurityPolicyRequest;

                    /**
                     * Decodes a DeleteSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteSecurityPolicyRequest;

                    /**
                     * Verifies a DeleteSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteServiceAttachmentRequest. */
                interface IDeleteServiceAttachmentRequest {

                    /** DeleteServiceAttachmentRequest project */
                    project?: (string|null);

                    /** DeleteServiceAttachmentRequest region */
                    region?: (string|null);

                    /** DeleteServiceAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** DeleteServiceAttachmentRequest serviceAttachment */
                    serviceAttachment?: (string|null);
                }

                /** Represents a DeleteServiceAttachmentRequest. */
                class DeleteServiceAttachmentRequest implements IDeleteServiceAttachmentRequest {

                    /**
                     * Constructs a new DeleteServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteServiceAttachmentRequest);

                    /** DeleteServiceAttachmentRequest project. */
                    public project: string;

                    /** DeleteServiceAttachmentRequest region. */
                    public region: string;

                    /** DeleteServiceAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteServiceAttachmentRequest serviceAttachment. */
                    public serviceAttachment: string;

                    /**
                     * Creates a new DeleteServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteServiceAttachmentRequest): google.cloud.compute.v1.DeleteServiceAttachmentRequest;

                    /**
                     * Encodes the specified DeleteServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteServiceAttachmentRequest.verify|verify} messages.
                     * @param message DeleteServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteServiceAttachmentRequest.verify|verify} messages.
                     * @param message DeleteServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteServiceAttachmentRequest;

                    /**
                     * Decodes a DeleteServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteServiceAttachmentRequest;

                    /**
                     * Verifies a DeleteServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a DeleteServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message DeleteServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSignedUrlKeyBackendBucketRequest. */
                interface IDeleteSignedUrlKeyBackendBucketRequest {

                    /** DeleteSignedUrlKeyBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** DeleteSignedUrlKeyBackendBucketRequest keyName */
                    keyName?: (string|null);

                    /** DeleteSignedUrlKeyBackendBucketRequest project */
                    project?: (string|null);

                    /** DeleteSignedUrlKeyBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteSignedUrlKeyBackendBucketRequest. */
                class DeleteSignedUrlKeyBackendBucketRequest implements IDeleteSignedUrlKeyBackendBucketRequest {

                    /**
                     * Constructs a new DeleteSignedUrlKeyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendBucketRequest);

                    /** DeleteSignedUrlKeyBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** DeleteSignedUrlKeyBackendBucketRequest keyName. */
                    public keyName: string;

                    /** DeleteSignedUrlKeyBackendBucketRequest project. */
                    public project: string;

                    /** DeleteSignedUrlKeyBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteSignedUrlKeyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSignedUrlKeyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendBucketRequest): google.cloud.compute.v1.DeleteSignedUrlKeyBackendBucketRequest;

                    /**
                     * Encodes the specified DeleteSignedUrlKeyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteSignedUrlKeyBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteSignedUrlKeyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSignedUrlKeyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteSignedUrlKeyBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteSignedUrlKeyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSignedUrlKeyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSignedUrlKeyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteSignedUrlKeyBackendBucketRequest;

                    /**
                     * Decodes a DeleteSignedUrlKeyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSignedUrlKeyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteSignedUrlKeyBackendBucketRequest;

                    /**
                     * Verifies a DeleteSignedUrlKeyBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSignedUrlKeyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSignedUrlKeyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteSignedUrlKeyBackendBucketRequest;

                    /**
                     * Creates a plain object from a DeleteSignedUrlKeyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message DeleteSignedUrlKeyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteSignedUrlKeyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSignedUrlKeyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSignedUrlKeyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSignedUrlKeyBackendServiceRequest. */
                interface IDeleteSignedUrlKeyBackendServiceRequest {

                    /** DeleteSignedUrlKeyBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** DeleteSignedUrlKeyBackendServiceRequest keyName */
                    keyName?: (string|null);

                    /** DeleteSignedUrlKeyBackendServiceRequest project */
                    project?: (string|null);

                    /** DeleteSignedUrlKeyBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteSignedUrlKeyBackendServiceRequest. */
                class DeleteSignedUrlKeyBackendServiceRequest implements IDeleteSignedUrlKeyBackendServiceRequest {

                    /**
                     * Constructs a new DeleteSignedUrlKeyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendServiceRequest);

                    /** DeleteSignedUrlKeyBackendServiceRequest backendService. */
                    public backendService: string;

                    /** DeleteSignedUrlKeyBackendServiceRequest keyName. */
                    public keyName: string;

                    /** DeleteSignedUrlKeyBackendServiceRequest project. */
                    public project: string;

                    /** DeleteSignedUrlKeyBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteSignedUrlKeyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSignedUrlKeyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendServiceRequest): google.cloud.compute.v1.DeleteSignedUrlKeyBackendServiceRequest;

                    /**
                     * Encodes the specified DeleteSignedUrlKeyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteSignedUrlKeyBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteSignedUrlKeyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSignedUrlKeyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteSignedUrlKeyBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteSignedUrlKeyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSignedUrlKeyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSignedUrlKeyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteSignedUrlKeyBackendServiceRequest;

                    /**
                     * Decodes a DeleteSignedUrlKeyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSignedUrlKeyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteSignedUrlKeyBackendServiceRequest;

                    /**
                     * Verifies a DeleteSignedUrlKeyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSignedUrlKeyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSignedUrlKeyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteSignedUrlKeyBackendServiceRequest;

                    /**
                     * Creates a plain object from a DeleteSignedUrlKeyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteSignedUrlKeyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteSignedUrlKeyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSignedUrlKeyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSignedUrlKeyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSnapshotRequest. */
                interface IDeleteSnapshotRequest {

                    /** DeleteSnapshotRequest project */
                    project?: (string|null);

                    /** DeleteSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSnapshotRequest snapshot */
                    snapshot?: (string|null);
                }

                /** Represents a DeleteSnapshotRequest. */
                class DeleteSnapshotRequest implements IDeleteSnapshotRequest {

                    /**
                     * Constructs a new DeleteSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteSnapshotRequest);

                    /** DeleteSnapshotRequest project. */
                    public project: string;

                    /** DeleteSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSnapshotRequest snapshot. */
                    public snapshot: string;

                    /**
                     * Creates a new DeleteSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteSnapshotRequest): google.cloud.compute.v1.DeleteSnapshotRequest;

                    /**
                     * Encodes the specified DeleteSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteSnapshotRequest.verify|verify} messages.
                     * @param message DeleteSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteSnapshotRequest.verify|verify} messages.
                     * @param message DeleteSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteSnapshotRequest;

                    /**
                     * Decodes a DeleteSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteSnapshotRequest;

                    /**
                     * Verifies a DeleteSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteSnapshotRequest;

                    /**
                     * Creates a plain object from a DeleteSnapshotRequest message. Also converts values to other types if specified.
                     * @param message DeleteSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSslCertificateRequest. */
                interface IDeleteSslCertificateRequest {

                    /** DeleteSslCertificateRequest project */
                    project?: (string|null);

                    /** DeleteSslCertificateRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSslCertificateRequest sslCertificate */
                    sslCertificate?: (string|null);
                }

                /** Represents a DeleteSslCertificateRequest. */
                class DeleteSslCertificateRequest implements IDeleteSslCertificateRequest {

                    /**
                     * Constructs a new DeleteSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteSslCertificateRequest);

                    /** DeleteSslCertificateRequest project. */
                    public project: string;

                    /** DeleteSslCertificateRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSslCertificateRequest sslCertificate. */
                    public sslCertificate: string;

                    /**
                     * Creates a new DeleteSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteSslCertificateRequest): google.cloud.compute.v1.DeleteSslCertificateRequest;

                    /**
                     * Encodes the specified DeleteSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteSslCertificateRequest.verify|verify} messages.
                     * @param message DeleteSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteSslCertificateRequest.verify|verify} messages.
                     * @param message DeleteSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteSslCertificateRequest;

                    /**
                     * Decodes a DeleteSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteSslCertificateRequest;

                    /**
                     * Verifies a DeleteSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteSslCertificateRequest;

                    /**
                     * Creates a plain object from a DeleteSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message DeleteSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSslPolicyRequest. */
                interface IDeleteSslPolicyRequest {

                    /** DeleteSslPolicyRequest project */
                    project?: (string|null);

                    /** DeleteSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a DeleteSslPolicyRequest. */
                class DeleteSslPolicyRequest implements IDeleteSslPolicyRequest {

                    /**
                     * Constructs a new DeleteSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteSslPolicyRequest);

                    /** DeleteSslPolicyRequest project. */
                    public project: string;

                    /** DeleteSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /**
                     * Creates a new DeleteSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteSslPolicyRequest): google.cloud.compute.v1.DeleteSslPolicyRequest;

                    /**
                     * Encodes the specified DeleteSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteSslPolicyRequest.verify|verify} messages.
                     * @param message DeleteSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteSslPolicyRequest.verify|verify} messages.
                     * @param message DeleteSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteSslPolicyRequest;

                    /**
                     * Decodes a DeleteSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteSslPolicyRequest;

                    /**
                     * Verifies a DeleteSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteSslPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteStoragePoolRequest. */
                interface IDeleteStoragePoolRequest {

                    /** DeleteStoragePoolRequest project */
                    project?: (string|null);

                    /** DeleteStoragePoolRequest requestId */
                    requestId?: (string|null);

                    /** DeleteStoragePoolRequest storagePool */
                    storagePool?: (string|null);

                    /** DeleteStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteStoragePoolRequest. */
                class DeleteStoragePoolRequest implements IDeleteStoragePoolRequest {

                    /**
                     * Constructs a new DeleteStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteStoragePoolRequest);

                    /** DeleteStoragePoolRequest project. */
                    public project: string;

                    /** DeleteStoragePoolRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteStoragePoolRequest storagePool. */
                    public storagePool: string;

                    /** DeleteStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteStoragePoolRequest): google.cloud.compute.v1.DeleteStoragePoolRequest;

                    /**
                     * Encodes the specified DeleteStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteStoragePoolRequest.verify|verify} messages.
                     * @param message DeleteStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteStoragePoolRequest.verify|verify} messages.
                     * @param message DeleteStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteStoragePoolRequest;

                    /**
                     * Decodes a DeleteStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteStoragePoolRequest;

                    /**
                     * Verifies a DeleteStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteStoragePoolRequest;

                    /**
                     * Creates a plain object from a DeleteStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message DeleteStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSubnetworkRequest. */
                interface IDeleteSubnetworkRequest {

                    /** DeleteSubnetworkRequest project */
                    project?: (string|null);

                    /** DeleteSubnetworkRequest region */
                    region?: (string|null);

                    /** DeleteSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);
                }

                /** Represents a DeleteSubnetworkRequest. */
                class DeleteSubnetworkRequest implements IDeleteSubnetworkRequest {

                    /**
                     * Constructs a new DeleteSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteSubnetworkRequest);

                    /** DeleteSubnetworkRequest project. */
                    public project: string;

                    /** DeleteSubnetworkRequest region. */
                    public region: string;

                    /** DeleteSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /**
                     * Creates a new DeleteSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteSubnetworkRequest): google.cloud.compute.v1.DeleteSubnetworkRequest;

                    /**
                     * Encodes the specified DeleteSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteSubnetworkRequest.verify|verify} messages.
                     * @param message DeleteSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteSubnetworkRequest.verify|verify} messages.
                     * @param message DeleteSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteSubnetworkRequest;

                    /**
                     * Decodes a DeleteSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteSubnetworkRequest;

                    /**
                     * Verifies a DeleteSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteSubnetworkRequest;

                    /**
                     * Creates a plain object from a DeleteSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message DeleteSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetGrpcProxyRequest. */
                interface IDeleteTargetGrpcProxyRequest {

                    /** DeleteTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetGrpcProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetGrpcProxyRequest targetGrpcProxy */
                    targetGrpcProxy?: (string|null);
                }

                /** Represents a DeleteTargetGrpcProxyRequest. */
                class DeleteTargetGrpcProxyRequest implements IDeleteTargetGrpcProxyRequest {

                    /**
                     * Constructs a new DeleteTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteTargetGrpcProxyRequest);

                    /** DeleteTargetGrpcProxyRequest project. */
                    public project: string;

                    /** DeleteTargetGrpcProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetGrpcProxyRequest targetGrpcProxy. */
                    public targetGrpcProxy: string;

                    /**
                     * Creates a new DeleteTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteTargetGrpcProxyRequest): google.cloud.compute.v1.DeleteTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteTargetGrpcProxyRequest;

                    /**
                     * Decodes a DeleteTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteTargetGrpcProxyRequest;

                    /**
                     * Verifies a DeleteTargetGrpcProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetHttpProxyRequest. */
                interface IDeleteTargetHttpProxyRequest {

                    /** DeleteTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);
                }

                /** Represents a DeleteTargetHttpProxyRequest. */
                class DeleteTargetHttpProxyRequest implements IDeleteTargetHttpProxyRequest {

                    /**
                     * Constructs a new DeleteTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteTargetHttpProxyRequest);

                    /** DeleteTargetHttpProxyRequest project. */
                    public project: string;

                    /** DeleteTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /**
                     * Creates a new DeleteTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteTargetHttpProxyRequest): google.cloud.compute.v1.DeleteTargetHttpProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetHttpProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetHttpProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteTargetHttpProxyRequest;

                    /**
                     * Decodes a DeleteTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteTargetHttpProxyRequest;

                    /**
                     * Verifies a DeleteTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetHttpsProxyRequest. */
                interface IDeleteTargetHttpsProxyRequest {

                    /** DeleteTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a DeleteTargetHttpsProxyRequest. */
                class DeleteTargetHttpsProxyRequest implements IDeleteTargetHttpsProxyRequest {

                    /**
                     * Constructs a new DeleteTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteTargetHttpsProxyRequest);

                    /** DeleteTargetHttpsProxyRequest project. */
                    public project: string;

                    /** DeleteTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new DeleteTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteTargetHttpsProxyRequest): google.cloud.compute.v1.DeleteTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteTargetHttpsProxyRequest;

                    /**
                     * Decodes a DeleteTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteTargetHttpsProxyRequest;

                    /**
                     * Verifies a DeleteTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetInstanceRequest. */
                interface IDeleteTargetInstanceRequest {

                    /** DeleteTargetInstanceRequest project */
                    project?: (string|null);

                    /** DeleteTargetInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetInstanceRequest targetInstance */
                    targetInstance?: (string|null);

                    /** DeleteTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteTargetInstanceRequest. */
                class DeleteTargetInstanceRequest implements IDeleteTargetInstanceRequest {

                    /**
                     * Constructs a new DeleteTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteTargetInstanceRequest);

                    /** DeleteTargetInstanceRequest project. */
                    public project: string;

                    /** DeleteTargetInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetInstanceRequest targetInstance. */
                    public targetInstance: string;

                    /** DeleteTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteTargetInstanceRequest): google.cloud.compute.v1.DeleteTargetInstanceRequest;

                    /**
                     * Encodes the specified DeleteTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetInstanceRequest.verify|verify} messages.
                     * @param message DeleteTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetInstanceRequest.verify|verify} messages.
                     * @param message DeleteTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteTargetInstanceRequest;

                    /**
                     * Decodes a DeleteTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteTargetInstanceRequest;

                    /**
                     * Verifies a DeleteTargetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteTargetInstanceRequest;

                    /**
                     * Creates a plain object from a DeleteTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetPoolRequest. */
                interface IDeleteTargetPoolRequest {

                    /** DeleteTargetPoolRequest project */
                    project?: (string|null);

                    /** DeleteTargetPoolRequest region */
                    region?: (string|null);

                    /** DeleteTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetPoolRequest targetPool */
                    targetPool?: (string|null);
                }

                /** Represents a DeleteTargetPoolRequest. */
                class DeleteTargetPoolRequest implements IDeleteTargetPoolRequest {

                    /**
                     * Constructs a new DeleteTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteTargetPoolRequest);

                    /** DeleteTargetPoolRequest project. */
                    public project: string;

                    /** DeleteTargetPoolRequest region. */
                    public region: string;

                    /** DeleteTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /**
                     * Creates a new DeleteTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteTargetPoolRequest): google.cloud.compute.v1.DeleteTargetPoolRequest;

                    /**
                     * Encodes the specified DeleteTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetPoolRequest.verify|verify} messages.
                     * @param message DeleteTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetPoolRequest.verify|verify} messages.
                     * @param message DeleteTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteTargetPoolRequest;

                    /**
                     * Decodes a DeleteTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteTargetPoolRequest;

                    /**
                     * Verifies a DeleteTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteTargetPoolRequest;

                    /**
                     * Creates a plain object from a DeleteTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetSslProxyRequest. */
                interface IDeleteTargetSslProxyRequest {

                    /** DeleteTargetSslProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a DeleteTargetSslProxyRequest. */
                class DeleteTargetSslProxyRequest implements IDeleteTargetSslProxyRequest {

                    /**
                     * Constructs a new DeleteTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteTargetSslProxyRequest);

                    /** DeleteTargetSslProxyRequest project. */
                    public project: string;

                    /** DeleteTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new DeleteTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteTargetSslProxyRequest): google.cloud.compute.v1.DeleteTargetSslProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetSslProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetSslProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteTargetSslProxyRequest;

                    /**
                     * Decodes a DeleteTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteTargetSslProxyRequest;

                    /**
                     * Verifies a DeleteTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetTcpProxyRequest. */
                interface IDeleteTargetTcpProxyRequest {

                    /** DeleteTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a DeleteTargetTcpProxyRequest. */
                class DeleteTargetTcpProxyRequest implements IDeleteTargetTcpProxyRequest {

                    /**
                     * Constructs a new DeleteTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteTargetTcpProxyRequest);

                    /** DeleteTargetTcpProxyRequest project. */
                    public project: string;

                    /** DeleteTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new DeleteTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteTargetTcpProxyRequest): google.cloud.compute.v1.DeleteTargetTcpProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetTcpProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetTcpProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteTargetTcpProxyRequest;

                    /**
                     * Decodes a DeleteTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteTargetTcpProxyRequest;

                    /**
                     * Verifies a DeleteTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetVpnGatewayRequest. */
                interface IDeleteTargetVpnGatewayRequest {

                    /** DeleteTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** DeleteTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** DeleteTargetVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetVpnGatewayRequest targetVpnGateway */
                    targetVpnGateway?: (string|null);
                }

                /** Represents a DeleteTargetVpnGatewayRequest. */
                class DeleteTargetVpnGatewayRequest implements IDeleteTargetVpnGatewayRequest {

                    /**
                     * Constructs a new DeleteTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteTargetVpnGatewayRequest);

                    /** DeleteTargetVpnGatewayRequest project. */
                    public project: string;

                    /** DeleteTargetVpnGatewayRequest region. */
                    public region: string;

                    /** DeleteTargetVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetVpnGatewayRequest targetVpnGateway. */
                    public targetVpnGateway: string;

                    /**
                     * Creates a new DeleteTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteTargetVpnGatewayRequest): google.cloud.compute.v1.DeleteTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified DeleteTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteTargetVpnGatewayRequest;

                    /**
                     * Decodes a DeleteTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteTargetVpnGatewayRequest;

                    /**
                     * Verifies a DeleteTargetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a DeleteTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteUrlMapRequest. */
                interface IDeleteUrlMapRequest {

                    /** DeleteUrlMapRequest project */
                    project?: (string|null);

                    /** DeleteUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** DeleteUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a DeleteUrlMapRequest. */
                class DeleteUrlMapRequest implements IDeleteUrlMapRequest {

                    /**
                     * Constructs a new DeleteUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteUrlMapRequest);

                    /** DeleteUrlMapRequest project. */
                    public project: string;

                    /** DeleteUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new DeleteUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteUrlMapRequest): google.cloud.compute.v1.DeleteUrlMapRequest;

                    /**
                     * Encodes the specified DeleteUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteUrlMapRequest.verify|verify} messages.
                     * @param message DeleteUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteUrlMapRequest.verify|verify} messages.
                     * @param message DeleteUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteUrlMapRequest;

                    /**
                     * Decodes a DeleteUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteUrlMapRequest;

                    /**
                     * Verifies a DeleteUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteUrlMapRequest;

                    /**
                     * Creates a plain object from a DeleteUrlMapRequest message. Also converts values to other types if specified.
                     * @param message DeleteUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteVpnGatewayRequest. */
                interface IDeleteVpnGatewayRequest {

                    /** DeleteVpnGatewayRequest project */
                    project?: (string|null);

                    /** DeleteVpnGatewayRequest region */
                    region?: (string|null);

                    /** DeleteVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** DeleteVpnGatewayRequest vpnGateway */
                    vpnGateway?: (string|null);
                }

                /** Represents a DeleteVpnGatewayRequest. */
                class DeleteVpnGatewayRequest implements IDeleteVpnGatewayRequest {

                    /**
                     * Constructs a new DeleteVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteVpnGatewayRequest);

                    /** DeleteVpnGatewayRequest project. */
                    public project: string;

                    /** DeleteVpnGatewayRequest region. */
                    public region: string;

                    /** DeleteVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteVpnGatewayRequest vpnGateway. */
                    public vpnGateway: string;

                    /**
                     * Creates a new DeleteVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteVpnGatewayRequest): google.cloud.compute.v1.DeleteVpnGatewayRequest;

                    /**
                     * Encodes the specified DeleteVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteVpnGatewayRequest;

                    /**
                     * Decodes a DeleteVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteVpnGatewayRequest;

                    /**
                     * Verifies a DeleteVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteVpnGatewayRequest;

                    /**
                     * Creates a plain object from a DeleteVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message DeleteVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteVpnTunnelRequest. */
                interface IDeleteVpnTunnelRequest {

                    /** DeleteVpnTunnelRequest project */
                    project?: (string|null);

                    /** DeleteVpnTunnelRequest region */
                    region?: (string|null);

                    /** DeleteVpnTunnelRequest requestId */
                    requestId?: (string|null);

                    /** DeleteVpnTunnelRequest vpnTunnel */
                    vpnTunnel?: (string|null);
                }

                /** Represents a DeleteVpnTunnelRequest. */
                class DeleteVpnTunnelRequest implements IDeleteVpnTunnelRequest {

                    /**
                     * Constructs a new DeleteVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteVpnTunnelRequest);

                    /** DeleteVpnTunnelRequest project. */
                    public project: string;

                    /** DeleteVpnTunnelRequest region. */
                    public region: string;

                    /** DeleteVpnTunnelRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteVpnTunnelRequest vpnTunnel. */
                    public vpnTunnel: string;

                    /**
                     * Creates a new DeleteVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteVpnTunnelRequest): google.cloud.compute.v1.DeleteVpnTunnelRequest;

                    /**
                     * Encodes the specified DeleteVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteVpnTunnelRequest.verify|verify} messages.
                     * @param message DeleteVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteVpnTunnelRequest.verify|verify} messages.
                     * @param message DeleteVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteVpnTunnelRequest;

                    /**
                     * Decodes a DeleteVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteVpnTunnelRequest;

                    /**
                     * Verifies a DeleteVpnTunnelRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteVpnTunnelRequest;

                    /**
                     * Creates a plain object from a DeleteVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message DeleteVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteWireGroupRequest. */
                interface IDeleteWireGroupRequest {

                    /** DeleteWireGroupRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** DeleteWireGroupRequest project */
                    project?: (string|null);

                    /** DeleteWireGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteWireGroupRequest wireGroup */
                    wireGroup?: (string|null);
                }

                /** Represents a DeleteWireGroupRequest. */
                class DeleteWireGroupRequest implements IDeleteWireGroupRequest {

                    /**
                     * Constructs a new DeleteWireGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteWireGroupRequest);

                    /** DeleteWireGroupRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** DeleteWireGroupRequest project. */
                    public project: string;

                    /** DeleteWireGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteWireGroupRequest wireGroup. */
                    public wireGroup: string;

                    /**
                     * Creates a new DeleteWireGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteWireGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteWireGroupRequest): google.cloud.compute.v1.DeleteWireGroupRequest;

                    /**
                     * Encodes the specified DeleteWireGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteWireGroupRequest.verify|verify} messages.
                     * @param message DeleteWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteWireGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteWireGroupRequest.verify|verify} messages.
                     * @param message DeleteWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteWireGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteWireGroupRequest;

                    /**
                     * Decodes a DeleteWireGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteWireGroupRequest;

                    /**
                     * Verifies a DeleteWireGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteWireGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteWireGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteWireGroupRequest;

                    /**
                     * Creates a plain object from a DeleteWireGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteWireGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteWireGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteWireGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteWireGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteZoneOperationRequest. */
                interface IDeleteZoneOperationRequest {

                    /** DeleteZoneOperationRequest operation */
                    operation?: (string|null);

                    /** DeleteZoneOperationRequest project */
                    project?: (string|null);

                    /** DeleteZoneOperationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteZoneOperationRequest. */
                class DeleteZoneOperationRequest implements IDeleteZoneOperationRequest {

                    /**
                     * Constructs a new DeleteZoneOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteZoneOperationRequest);

                    /** DeleteZoneOperationRequest operation. */
                    public operation: string;

                    /** DeleteZoneOperationRequest project. */
                    public project: string;

                    /** DeleteZoneOperationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteZoneOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteZoneOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteZoneOperationRequest): google.cloud.compute.v1.DeleteZoneOperationRequest;

                    /**
                     * Encodes the specified DeleteZoneOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.DeleteZoneOperationRequest.verify|verify} messages.
                     * @param message DeleteZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteZoneOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteZoneOperationRequest.verify|verify} messages.
                     * @param message DeleteZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteZoneOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteZoneOperationRequest;

                    /**
                     * Decodes a DeleteZoneOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteZoneOperationRequest;

                    /**
                     * Verifies a DeleteZoneOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteZoneOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteZoneOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteZoneOperationRequest;

                    /**
                     * Creates a plain object from a DeleteZoneOperationRequest message. Also converts values to other types if specified.
                     * @param message DeleteZoneOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteZoneOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteZoneOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteZoneOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteZoneOperationResponse. */
                interface IDeleteZoneOperationResponse {
                }

                /** Represents a DeleteZoneOperationResponse. */
                class DeleteZoneOperationResponse implements IDeleteZoneOperationResponse {

                    /**
                     * Constructs a new DeleteZoneOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeleteZoneOperationResponse);

                    /**
                     * Creates a new DeleteZoneOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteZoneOperationResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeleteZoneOperationResponse): google.cloud.compute.v1.DeleteZoneOperationResponse;

                    /**
                     * Encodes the specified DeleteZoneOperationResponse message. Does not implicitly {@link google.cloud.compute.v1.DeleteZoneOperationResponse.verify|verify} messages.
                     * @param message DeleteZoneOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeleteZoneOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteZoneOperationResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeleteZoneOperationResponse.verify|verify} messages.
                     * @param message DeleteZoneOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeleteZoneOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteZoneOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteZoneOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeleteZoneOperationResponse;

                    /**
                     * Decodes a DeleteZoneOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteZoneOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeleteZoneOperationResponse;

                    /**
                     * Verifies a DeleteZoneOperationResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteZoneOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteZoneOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeleteZoneOperationResponse;

                    /**
                     * Creates a plain object from a DeleteZoneOperationResponse message. Also converts values to other types if specified.
                     * @param message DeleteZoneOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeleteZoneOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteZoneOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteZoneOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Denied. */
                interface IDenied {

                    /** Denied IPProtocol */
                    IPProtocol?: (string|null);

                    /** Denied ports */
                    ports?: (string[]|null);
                }

                /** Represents a Denied. */
                class Denied implements IDenied {

                    /**
                     * Constructs a new Denied.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDenied);

                    /** Denied IPProtocol. */
                    public IPProtocol?: (string|null);

                    /** Denied ports. */
                    public ports: string[];

                    /**
                     * Creates a new Denied instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Denied instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDenied): google.cloud.compute.v1.Denied;

                    /**
                     * Encodes the specified Denied message. Does not implicitly {@link google.cloud.compute.v1.Denied.verify|verify} messages.
                     * @param message Denied message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDenied, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Denied message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Denied.verify|verify} messages.
                     * @param message Denied message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDenied, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Denied message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Denied
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Denied;

                    /**
                     * Decodes a Denied message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Denied
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Denied;

                    /**
                     * Verifies a Denied message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Denied message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Denied
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Denied;

                    /**
                     * Creates a plain object from a Denied message. Also converts values to other types if specified.
                     * @param message Denied
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Denied, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Denied to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Denied
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeprecateImageRequest. */
                interface IDeprecateImageRequest {

                    /** DeprecateImageRequest deprecationStatusResource */
                    deprecationStatusResource?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** DeprecateImageRequest image */
                    image?: (string|null);

                    /** DeprecateImageRequest project */
                    project?: (string|null);

                    /** DeprecateImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeprecateImageRequest. */
                class DeprecateImageRequest implements IDeprecateImageRequest {

                    /**
                     * Constructs a new DeprecateImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeprecateImageRequest);

                    /** DeprecateImageRequest deprecationStatusResource. */
                    public deprecationStatusResource?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** DeprecateImageRequest image. */
                    public image: string;

                    /** DeprecateImageRequest project. */
                    public project: string;

                    /** DeprecateImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeprecateImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeprecateImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeprecateImageRequest): google.cloud.compute.v1.DeprecateImageRequest;

                    /**
                     * Encodes the specified DeprecateImageRequest message. Does not implicitly {@link google.cloud.compute.v1.DeprecateImageRequest.verify|verify} messages.
                     * @param message DeprecateImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeprecateImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeprecateImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeprecateImageRequest.verify|verify} messages.
                     * @param message DeprecateImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeprecateImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeprecateImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeprecateImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeprecateImageRequest;

                    /**
                     * Decodes a DeprecateImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeprecateImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeprecateImageRequest;

                    /**
                     * Verifies a DeprecateImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeprecateImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeprecateImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeprecateImageRequest;

                    /**
                     * Creates a plain object from a DeprecateImageRequest message. Also converts values to other types if specified.
                     * @param message DeprecateImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeprecateImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeprecateImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeprecateImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeprecationStatus. */
                interface IDeprecationStatus {

                    /** DeprecationStatus deleted */
                    deleted?: (string|null);

                    /** DeprecationStatus deprecated */
                    deprecated?: (string|null);

                    /** DeprecationStatus obsolete */
                    obsolete?: (string|null);

                    /** DeprecationStatus replacement */
                    replacement?: (string|null);

                    /** DeprecationStatus state */
                    state?: (string|null);
                }

                /** Represents a DeprecationStatus. */
                class DeprecationStatus implements IDeprecationStatus {

                    /**
                     * Constructs a new DeprecationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDeprecationStatus);

                    /** DeprecationStatus deleted. */
                    public deleted?: (string|null);

                    /** DeprecationStatus deprecated. */
                    public deprecated?: (string|null);

                    /** DeprecationStatus obsolete. */
                    public obsolete?: (string|null);

                    /** DeprecationStatus replacement. */
                    public replacement?: (string|null);

                    /** DeprecationStatus state. */
                    public state?: (string|null);

                    /**
                     * Creates a new DeprecationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeprecationStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDeprecationStatus): google.cloud.compute.v1.DeprecationStatus;

                    /**
                     * Encodes the specified DeprecationStatus message. Does not implicitly {@link google.cloud.compute.v1.DeprecationStatus.verify|verify} messages.
                     * @param message DeprecationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDeprecationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeprecationStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DeprecationStatus.verify|verify} messages.
                     * @param message DeprecationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDeprecationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeprecationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeprecationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DeprecationStatus;

                    /**
                     * Decodes a DeprecationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeprecationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DeprecationStatus;

                    /**
                     * Verifies a DeprecationStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeprecationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeprecationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DeprecationStatus;

                    /**
                     * Creates a plain object from a DeprecationStatus message. Also converts values to other types if specified.
                     * @param message DeprecationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DeprecationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeprecationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeprecationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DeprecationStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DELETED = 120962041,
                        DEPRECATED = 463360435,
                        OBSOLETE = 66532761
                    }
                }

                /** Properties of a DetachDiskInstanceRequest. */
                interface IDetachDiskInstanceRequest {

                    /** DetachDiskInstanceRequest deviceName */
                    deviceName?: (string|null);

                    /** DetachDiskInstanceRequest instance */
                    instance?: (string|null);

                    /** DetachDiskInstanceRequest project */
                    project?: (string|null);

                    /** DetachDiskInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DetachDiskInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DetachDiskInstanceRequest. */
                class DetachDiskInstanceRequest implements IDetachDiskInstanceRequest {

                    /**
                     * Constructs a new DetachDiskInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDetachDiskInstanceRequest);

                    /** DetachDiskInstanceRequest deviceName. */
                    public deviceName: string;

                    /** DetachDiskInstanceRequest instance. */
                    public instance: string;

                    /** DetachDiskInstanceRequest project. */
                    public project: string;

                    /** DetachDiskInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DetachDiskInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DetachDiskInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetachDiskInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDetachDiskInstanceRequest): google.cloud.compute.v1.DetachDiskInstanceRequest;

                    /**
                     * Encodes the specified DetachDiskInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.DetachDiskInstanceRequest.verify|verify} messages.
                     * @param message DetachDiskInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDetachDiskInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetachDiskInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DetachDiskInstanceRequest.verify|verify} messages.
                     * @param message DetachDiskInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDetachDiskInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetachDiskInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetachDiskInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DetachDiskInstanceRequest;

                    /**
                     * Decodes a DetachDiskInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetachDiskInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DetachDiskInstanceRequest;

                    /**
                     * Verifies a DetachDiskInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DetachDiskInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetachDiskInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DetachDiskInstanceRequest;

                    /**
                     * Creates a plain object from a DetachDiskInstanceRequest message. Also converts values to other types if specified.
                     * @param message DetachDiskInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DetachDiskInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetachDiskInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetachDiskInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest. */
                interface IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest {

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest globalNetworkEndpointGroupsDetachEndpointsRequestResource */
                    globalNetworkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1.IGlobalNetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest. */
                class DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest implements IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest globalNetworkEndpointGroupsDetachEndpointsRequestResource. */
                    public globalNetworkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1.IGlobalNetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DetachNetworkEndpointsNetworkEndpointGroupRequest. */
                interface IDetachNetworkEndpointsNetworkEndpointGroupRequest {

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroupsDetachEndpointsRequestResource */
                    networkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1.INetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DetachNetworkEndpointsNetworkEndpointGroupRequest. */
                class DetachNetworkEndpointsNetworkEndpointGroupRequest implements IDetachNetworkEndpointsNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DetachNetworkEndpointsNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDetachNetworkEndpointsNetworkEndpointGroupRequest);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroupsDetachEndpointsRequestResource. */
                    public networkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1.INetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DetachNetworkEndpointsNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetachNetworkEndpointsNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDetachNetworkEndpointsNetworkEndpointGroupRequest): google.cloud.compute.v1.DetachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DetachNetworkEndpointsNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DetachNetworkEndpointsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDetachNetworkEndpointsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetachNetworkEndpointsNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DetachNetworkEndpointsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDetachNetworkEndpointsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetachNetworkEndpointsNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetachNetworkEndpointsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DetachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DetachNetworkEndpointsNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetachNetworkEndpointsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DetachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DetachNetworkEndpointsNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DetachNetworkEndpointsNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetachNetworkEndpointsNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DetachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DetachNetworkEndpointsNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DetachNetworkEndpointsNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DetachNetworkEndpointsNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetachNetworkEndpointsNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetachNetworkEndpointsNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest. */
                interface IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest {

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest regionNetworkEndpointGroupsDetachEndpointsRequestResource */
                    regionNetworkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1.IRegionNetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest. */
                class DetachNetworkEndpointsRegionNetworkEndpointGroupRequest implements IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DetachNetworkEndpointsRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest regionNetworkEndpointGroupsDetachEndpointsRequestResource. */
                    public regionNetworkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1.IRegionNetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DetachNetworkEndpointsRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetachNetworkEndpointsRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest): google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetachNetworkEndpointsRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisableXpnHostProjectRequest. */
                interface IDisableXpnHostProjectRequest {

                    /** DisableXpnHostProjectRequest project */
                    project?: (string|null);

                    /** DisableXpnHostProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DisableXpnHostProjectRequest. */
                class DisableXpnHostProjectRequest implements IDisableXpnHostProjectRequest {

                    /**
                     * Constructs a new DisableXpnHostProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisableXpnHostProjectRequest);

                    /** DisableXpnHostProjectRequest project. */
                    public project: string;

                    /** DisableXpnHostProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DisableXpnHostProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisableXpnHostProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisableXpnHostProjectRequest): google.cloud.compute.v1.DisableXpnHostProjectRequest;

                    /**
                     * Encodes the specified DisableXpnHostProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.DisableXpnHostProjectRequest.verify|verify} messages.
                     * @param message DisableXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisableXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisableXpnHostProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisableXpnHostProjectRequest.verify|verify} messages.
                     * @param message DisableXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisableXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisableXpnHostProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisableXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisableXpnHostProjectRequest;

                    /**
                     * Decodes a DisableXpnHostProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisableXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisableXpnHostProjectRequest;

                    /**
                     * Verifies a DisableXpnHostProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisableXpnHostProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisableXpnHostProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisableXpnHostProjectRequest;

                    /**
                     * Creates a plain object from a DisableXpnHostProjectRequest message. Also converts values to other types if specified.
                     * @param message DisableXpnHostProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisableXpnHostProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisableXpnHostProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisableXpnHostProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisableXpnResourceProjectRequest. */
                interface IDisableXpnResourceProjectRequest {

                    /** DisableXpnResourceProjectRequest project */
                    project?: (string|null);

                    /** DisableXpnResourceProjectRequest projectsDisableXpnResourceRequestResource */
                    projectsDisableXpnResourceRequestResource?: (google.cloud.compute.v1.IProjectsDisableXpnResourceRequest|null);

                    /** DisableXpnResourceProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DisableXpnResourceProjectRequest. */
                class DisableXpnResourceProjectRequest implements IDisableXpnResourceProjectRequest {

                    /**
                     * Constructs a new DisableXpnResourceProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisableXpnResourceProjectRequest);

                    /** DisableXpnResourceProjectRequest project. */
                    public project: string;

                    /** DisableXpnResourceProjectRequest projectsDisableXpnResourceRequestResource. */
                    public projectsDisableXpnResourceRequestResource?: (google.cloud.compute.v1.IProjectsDisableXpnResourceRequest|null);

                    /** DisableXpnResourceProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DisableXpnResourceProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisableXpnResourceProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisableXpnResourceProjectRequest): google.cloud.compute.v1.DisableXpnResourceProjectRequest;

                    /**
                     * Encodes the specified DisableXpnResourceProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.DisableXpnResourceProjectRequest.verify|verify} messages.
                     * @param message DisableXpnResourceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisableXpnResourceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisableXpnResourceProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisableXpnResourceProjectRequest.verify|verify} messages.
                     * @param message DisableXpnResourceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisableXpnResourceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisableXpnResourceProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisableXpnResourceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisableXpnResourceProjectRequest;

                    /**
                     * Decodes a DisableXpnResourceProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisableXpnResourceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisableXpnResourceProjectRequest;

                    /**
                     * Verifies a DisableXpnResourceProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisableXpnResourceProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisableXpnResourceProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisableXpnResourceProjectRequest;

                    /**
                     * Creates a plain object from a DisableXpnResourceProjectRequest message. Also converts values to other types if specified.
                     * @param message DisableXpnResourceProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisableXpnResourceProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisableXpnResourceProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisableXpnResourceProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Disk. */
                interface IDisk {

                    /** Disk accessMode */
                    accessMode?: (string|null);

                    /** Disk architecture */
                    architecture?: (string|null);

                    /** Disk asyncPrimaryDisk */
                    asyncPrimaryDisk?: (google.cloud.compute.v1.IDiskAsyncReplication|null);

                    /** Disk asyncSecondaryDisks */
                    asyncSecondaryDisks?: ({ [k: string]: google.cloud.compute.v1.IDiskAsyncReplicationList }|null);

                    /** Disk creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Disk description */
                    description?: (string|null);

                    /** Disk diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Disk enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);

                    /** Disk guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1.IGuestOsFeature[]|null);

                    /** Disk id */
                    id?: (number|Long|string|null);

                    /** Disk kind */
                    kind?: (string|null);

                    /** Disk labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Disk labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Disk lastAttachTimestamp */
                    lastAttachTimestamp?: (string|null);

                    /** Disk lastDetachTimestamp */
                    lastDetachTimestamp?: (string|null);

                    /** Disk licenseCodes */
                    licenseCodes?: ((number|Long|string)[]|null);

                    /** Disk licenses */
                    licenses?: (string[]|null);

                    /** Disk locationHint */
                    locationHint?: (string|null);

                    /** Disk name */
                    name?: (string|null);

                    /** Disk options */
                    options?: (string|null);

                    /** Disk params */
                    params?: (google.cloud.compute.v1.IDiskParams|null);

                    /** Disk physicalBlockSizeBytes */
                    physicalBlockSizeBytes?: (number|Long|string|null);

                    /** Disk provisionedIops */
                    provisionedIops?: (number|Long|string|null);

                    /** Disk provisionedThroughput */
                    provisionedThroughput?: (number|Long|string|null);

                    /** Disk region */
                    region?: (string|null);

                    /** Disk replicaZones */
                    replicaZones?: (string[]|null);

                    /** Disk resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** Disk resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1.IDiskResourceStatus|null);

                    /** Disk satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** Disk satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Disk selfLink */
                    selfLink?: (string|null);

                    /** Disk sizeGb */
                    sizeGb?: (number|Long|string|null);

                    /** Disk sourceConsistencyGroupPolicy */
                    sourceConsistencyGroupPolicy?: (string|null);

                    /** Disk sourceConsistencyGroupPolicyId */
                    sourceConsistencyGroupPolicyId?: (string|null);

                    /** Disk sourceDisk */
                    sourceDisk?: (string|null);

                    /** Disk sourceDiskId */
                    sourceDiskId?: (string|null);

                    /** Disk sourceImage */
                    sourceImage?: (string|null);

                    /** Disk sourceImageEncryptionKey */
                    sourceImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Disk sourceImageId */
                    sourceImageId?: (string|null);

                    /** Disk sourceInstantSnapshot */
                    sourceInstantSnapshot?: (string|null);

                    /** Disk sourceInstantSnapshotId */
                    sourceInstantSnapshotId?: (string|null);

                    /** Disk sourceSnapshot */
                    sourceSnapshot?: (string|null);

                    /** Disk sourceSnapshotEncryptionKey */
                    sourceSnapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Disk sourceSnapshotId */
                    sourceSnapshotId?: (string|null);

                    /** Disk sourceStorageObject */
                    sourceStorageObject?: (string|null);

                    /** Disk status */
                    status?: (string|null);

                    /** Disk storagePool */
                    storagePool?: (string|null);

                    /** Disk type */
                    type?: (string|null);

                    /** Disk users */
                    users?: (string[]|null);

                    /** Disk zone */
                    zone?: (string|null);
                }

                /** Represents a Disk. */
                class Disk implements IDisk {

                    /**
                     * Constructs a new Disk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisk);

                    /** Disk accessMode. */
                    public accessMode?: (string|null);

                    /** Disk architecture. */
                    public architecture?: (string|null);

                    /** Disk asyncPrimaryDisk. */
                    public asyncPrimaryDisk?: (google.cloud.compute.v1.IDiskAsyncReplication|null);

                    /** Disk asyncSecondaryDisks. */
                    public asyncSecondaryDisks: { [k: string]: google.cloud.compute.v1.IDiskAsyncReplicationList };

                    /** Disk creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Disk description. */
                    public description?: (string|null);

                    /** Disk diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Disk enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /** Disk guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1.IGuestOsFeature[];

                    /** Disk id. */
                    public id?: (number|Long|string|null);

                    /** Disk kind. */
                    public kind?: (string|null);

                    /** Disk labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Disk labels. */
                    public labels: { [k: string]: string };

                    /** Disk lastAttachTimestamp. */
                    public lastAttachTimestamp?: (string|null);

                    /** Disk lastDetachTimestamp. */
                    public lastDetachTimestamp?: (string|null);

                    /** Disk licenseCodes. */
                    public licenseCodes: (number|Long|string)[];

                    /** Disk licenses. */
                    public licenses: string[];

                    /** Disk locationHint. */
                    public locationHint?: (string|null);

                    /** Disk name. */
                    public name?: (string|null);

                    /** Disk options. */
                    public options?: (string|null);

                    /** Disk params. */
                    public params?: (google.cloud.compute.v1.IDiskParams|null);

                    /** Disk physicalBlockSizeBytes. */
                    public physicalBlockSizeBytes?: (number|Long|string|null);

                    /** Disk provisionedIops. */
                    public provisionedIops?: (number|Long|string|null);

                    /** Disk provisionedThroughput. */
                    public provisionedThroughput?: (number|Long|string|null);

                    /** Disk region. */
                    public region?: (string|null);

                    /** Disk replicaZones. */
                    public replicaZones: string[];

                    /** Disk resourcePolicies. */
                    public resourcePolicies: string[];

                    /** Disk resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1.IDiskResourceStatus|null);

                    /** Disk satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Disk satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Disk selfLink. */
                    public selfLink?: (string|null);

                    /** Disk sizeGb. */
                    public sizeGb?: (number|Long|string|null);

                    /** Disk sourceConsistencyGroupPolicy. */
                    public sourceConsistencyGroupPolicy?: (string|null);

                    /** Disk sourceConsistencyGroupPolicyId. */
                    public sourceConsistencyGroupPolicyId?: (string|null);

                    /** Disk sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** Disk sourceDiskId. */
                    public sourceDiskId?: (string|null);

                    /** Disk sourceImage. */
                    public sourceImage?: (string|null);

                    /** Disk sourceImageEncryptionKey. */
                    public sourceImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Disk sourceImageId. */
                    public sourceImageId?: (string|null);

                    /** Disk sourceInstantSnapshot. */
                    public sourceInstantSnapshot?: (string|null);

                    /** Disk sourceInstantSnapshotId. */
                    public sourceInstantSnapshotId?: (string|null);

                    /** Disk sourceSnapshot. */
                    public sourceSnapshot?: (string|null);

                    /** Disk sourceSnapshotEncryptionKey. */
                    public sourceSnapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Disk sourceSnapshotId. */
                    public sourceSnapshotId?: (string|null);

                    /** Disk sourceStorageObject. */
                    public sourceStorageObject?: (string|null);

                    /** Disk status. */
                    public status?: (string|null);

                    /** Disk storagePool. */
                    public storagePool?: (string|null);

                    /** Disk type. */
                    public type?: (string|null);

                    /** Disk users. */
                    public users: string[];

                    /** Disk zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Disk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Disk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisk): google.cloud.compute.v1.Disk;

                    /**
                     * Encodes the specified Disk message. Does not implicitly {@link google.cloud.compute.v1.Disk.verify|verify} messages.
                     * @param message Disk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Disk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Disk.verify|verify} messages.
                     * @param message Disk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Disk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Disk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Disk;

                    /**
                     * Decodes a Disk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Disk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Disk;

                    /**
                     * Verifies a Disk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Disk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Disk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Disk;

                    /**
                     * Creates a plain object from a Disk message. Also converts values to other types if specified.
                     * @param message Disk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Disk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Disk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Disk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Disk {

                    /** AccessMode enum. */
                    enum AccessMode {
                        UNDEFINED_ACCESS_MODE = 0,
                        READ_ONLY_MANY = 63460265,
                        READ_WRITE_MANY = 488743208,
                        READ_WRITE_SINGLE = 99323089
                    }

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963,
                        RESTORING = 404263851,
                        UNAVAILABLE = 413756464
                    }
                }

                /** Properties of a DiskAggregatedList. */
                interface IDiskAggregatedList {

                    /** DiskAggregatedList id */
                    id?: (string|null);

                    /** DiskAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IDisksScopedList }|null);

                    /** DiskAggregatedList kind */
                    kind?: (string|null);

                    /** DiskAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** DiskAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** DiskAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** DiskAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a DiskAggregatedList. */
                class DiskAggregatedList implements IDiskAggregatedList {

                    /**
                     * Constructs a new DiskAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskAggregatedList);

                    /** DiskAggregatedList id. */
                    public id?: (string|null);

                    /** DiskAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IDisksScopedList };

                    /** DiskAggregatedList kind. */
                    public kind?: (string|null);

                    /** DiskAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** DiskAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** DiskAggregatedList unreachables. */
                    public unreachables: string[];

                    /** DiskAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new DiskAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskAggregatedList): google.cloud.compute.v1.DiskAggregatedList;

                    /**
                     * Encodes the specified DiskAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.DiskAggregatedList.verify|verify} messages.
                     * @param message DiskAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskAggregatedList.verify|verify} messages.
                     * @param message DiskAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskAggregatedList;

                    /**
                     * Decodes a DiskAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskAggregatedList;

                    /**
                     * Verifies a DiskAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskAggregatedList;

                    /**
                     * Creates a plain object from a DiskAggregatedList message. Also converts values to other types if specified.
                     * @param message DiskAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskAsyncReplication. */
                interface IDiskAsyncReplication {

                    /** DiskAsyncReplication consistencyGroupPolicy */
                    consistencyGroupPolicy?: (string|null);

                    /** DiskAsyncReplication consistencyGroupPolicyId */
                    consistencyGroupPolicyId?: (string|null);

                    /** DiskAsyncReplication disk */
                    disk?: (string|null);

                    /** DiskAsyncReplication diskId */
                    diskId?: (string|null);
                }

                /** Represents a DiskAsyncReplication. */
                class DiskAsyncReplication implements IDiskAsyncReplication {

                    /**
                     * Constructs a new DiskAsyncReplication.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskAsyncReplication);

                    /** DiskAsyncReplication consistencyGroupPolicy. */
                    public consistencyGroupPolicy?: (string|null);

                    /** DiskAsyncReplication consistencyGroupPolicyId. */
                    public consistencyGroupPolicyId?: (string|null);

                    /** DiskAsyncReplication disk. */
                    public disk?: (string|null);

                    /** DiskAsyncReplication diskId. */
                    public diskId?: (string|null);

                    /**
                     * Creates a new DiskAsyncReplication instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskAsyncReplication instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskAsyncReplication): google.cloud.compute.v1.DiskAsyncReplication;

                    /**
                     * Encodes the specified DiskAsyncReplication message. Does not implicitly {@link google.cloud.compute.v1.DiskAsyncReplication.verify|verify} messages.
                     * @param message DiskAsyncReplication message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskAsyncReplication, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskAsyncReplication message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskAsyncReplication.verify|verify} messages.
                     * @param message DiskAsyncReplication message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskAsyncReplication, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskAsyncReplication message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskAsyncReplication
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskAsyncReplication;

                    /**
                     * Decodes a DiskAsyncReplication message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskAsyncReplication
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskAsyncReplication;

                    /**
                     * Verifies a DiskAsyncReplication message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskAsyncReplication message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskAsyncReplication
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskAsyncReplication;

                    /**
                     * Creates a plain object from a DiskAsyncReplication message. Also converts values to other types if specified.
                     * @param message DiskAsyncReplication
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskAsyncReplication, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskAsyncReplication to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskAsyncReplication
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskAsyncReplicationList. */
                interface IDiskAsyncReplicationList {

                    /** DiskAsyncReplicationList asyncReplicationDisk */
                    asyncReplicationDisk?: (google.cloud.compute.v1.IDiskAsyncReplication|null);
                }

                /** Represents a DiskAsyncReplicationList. */
                class DiskAsyncReplicationList implements IDiskAsyncReplicationList {

                    /**
                     * Constructs a new DiskAsyncReplicationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskAsyncReplicationList);

                    /** DiskAsyncReplicationList asyncReplicationDisk. */
                    public asyncReplicationDisk?: (google.cloud.compute.v1.IDiskAsyncReplication|null);

                    /**
                     * Creates a new DiskAsyncReplicationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskAsyncReplicationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskAsyncReplicationList): google.cloud.compute.v1.DiskAsyncReplicationList;

                    /**
                     * Encodes the specified DiskAsyncReplicationList message. Does not implicitly {@link google.cloud.compute.v1.DiskAsyncReplicationList.verify|verify} messages.
                     * @param message DiskAsyncReplicationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskAsyncReplicationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskAsyncReplicationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskAsyncReplicationList.verify|verify} messages.
                     * @param message DiskAsyncReplicationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskAsyncReplicationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskAsyncReplicationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskAsyncReplicationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskAsyncReplicationList;

                    /**
                     * Decodes a DiskAsyncReplicationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskAsyncReplicationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskAsyncReplicationList;

                    /**
                     * Verifies a DiskAsyncReplicationList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskAsyncReplicationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskAsyncReplicationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskAsyncReplicationList;

                    /**
                     * Creates a plain object from a DiskAsyncReplicationList message. Also converts values to other types if specified.
                     * @param message DiskAsyncReplicationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskAsyncReplicationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskAsyncReplicationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskAsyncReplicationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskInstantiationConfig. */
                interface IDiskInstantiationConfig {

                    /** DiskInstantiationConfig autoDelete */
                    autoDelete?: (boolean|null);

                    /** DiskInstantiationConfig customImage */
                    customImage?: (string|null);

                    /** DiskInstantiationConfig deviceName */
                    deviceName?: (string|null);

                    /** DiskInstantiationConfig instantiateFrom */
                    instantiateFrom?: (string|null);
                }

                /** Represents a DiskInstantiationConfig. */
                class DiskInstantiationConfig implements IDiskInstantiationConfig {

                    /**
                     * Constructs a new DiskInstantiationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskInstantiationConfig);

                    /** DiskInstantiationConfig autoDelete. */
                    public autoDelete?: (boolean|null);

                    /** DiskInstantiationConfig customImage. */
                    public customImage?: (string|null);

                    /** DiskInstantiationConfig deviceName. */
                    public deviceName?: (string|null);

                    /** DiskInstantiationConfig instantiateFrom. */
                    public instantiateFrom?: (string|null);

                    /**
                     * Creates a new DiskInstantiationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskInstantiationConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskInstantiationConfig): google.cloud.compute.v1.DiskInstantiationConfig;

                    /**
                     * Encodes the specified DiskInstantiationConfig message. Does not implicitly {@link google.cloud.compute.v1.DiskInstantiationConfig.verify|verify} messages.
                     * @param message DiskInstantiationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskInstantiationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskInstantiationConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskInstantiationConfig.verify|verify} messages.
                     * @param message DiskInstantiationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskInstantiationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskInstantiationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskInstantiationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskInstantiationConfig;

                    /**
                     * Decodes a DiskInstantiationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskInstantiationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskInstantiationConfig;

                    /**
                     * Verifies a DiskInstantiationConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskInstantiationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskInstantiationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskInstantiationConfig;

                    /**
                     * Creates a plain object from a DiskInstantiationConfig message. Also converts values to other types if specified.
                     * @param message DiskInstantiationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskInstantiationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskInstantiationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskInstantiationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DiskInstantiationConfig {

                    /** InstantiateFrom enum. */
                    enum InstantiateFrom {
                        UNDEFINED_INSTANTIATE_FROM = 0,
                        ATTACH_READ_ONLY = 513775419,
                        BLANK = 63281460,
                        CUSTOM_IMAGE = 196311789,
                        DEFAULT = 115302945,
                        DO_NOT_INCLUDE = 104218952,
                        SOURCE_IMAGE = 62631959,
                        SOURCE_IMAGE_FAMILY = 76850316
                    }
                }

                /** Properties of a DiskList. */
                interface IDiskList {

                    /** DiskList id */
                    id?: (string|null);

                    /** DiskList items */
                    items?: (google.cloud.compute.v1.IDisk[]|null);

                    /** DiskList kind */
                    kind?: (string|null);

                    /** DiskList nextPageToken */
                    nextPageToken?: (string|null);

                    /** DiskList selfLink */
                    selfLink?: (string|null);

                    /** DiskList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a DiskList. */
                class DiskList implements IDiskList {

                    /**
                     * Constructs a new DiskList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskList);

                    /** DiskList id. */
                    public id?: (string|null);

                    /** DiskList items. */
                    public items: google.cloud.compute.v1.IDisk[];

                    /** DiskList kind. */
                    public kind?: (string|null);

                    /** DiskList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** DiskList selfLink. */
                    public selfLink?: (string|null);

                    /** DiskList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new DiskList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskList): google.cloud.compute.v1.DiskList;

                    /**
                     * Encodes the specified DiskList message. Does not implicitly {@link google.cloud.compute.v1.DiskList.verify|verify} messages.
                     * @param message DiskList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskList.verify|verify} messages.
                     * @param message DiskList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskList;

                    /**
                     * Decodes a DiskList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskList;

                    /**
                     * Verifies a DiskList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskList;

                    /**
                     * Creates a plain object from a DiskList message. Also converts values to other types if specified.
                     * @param message DiskList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskMoveRequest. */
                interface IDiskMoveRequest {

                    /** DiskMoveRequest destinationZone */
                    destinationZone?: (string|null);

                    /** DiskMoveRequest targetDisk */
                    targetDisk?: (string|null);
                }

                /** Represents a DiskMoveRequest. */
                class DiskMoveRequest implements IDiskMoveRequest {

                    /**
                     * Constructs a new DiskMoveRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskMoveRequest);

                    /** DiskMoveRequest destinationZone. */
                    public destinationZone?: (string|null);

                    /** DiskMoveRequest targetDisk. */
                    public targetDisk?: (string|null);

                    /**
                     * Creates a new DiskMoveRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskMoveRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskMoveRequest): google.cloud.compute.v1.DiskMoveRequest;

                    /**
                     * Encodes the specified DiskMoveRequest message. Does not implicitly {@link google.cloud.compute.v1.DiskMoveRequest.verify|verify} messages.
                     * @param message DiskMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskMoveRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskMoveRequest.verify|verify} messages.
                     * @param message DiskMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskMoveRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskMoveRequest;

                    /**
                     * Decodes a DiskMoveRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskMoveRequest;

                    /**
                     * Verifies a DiskMoveRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskMoveRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskMoveRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskMoveRequest;

                    /**
                     * Creates a plain object from a DiskMoveRequest message. Also converts values to other types if specified.
                     * @param message DiskMoveRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskMoveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskMoveRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskMoveRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskParams. */
                interface IDiskParams {

                    /** DiskParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a DiskParams. */
                class DiskParams implements IDiskParams {

                    /**
                     * Constructs a new DiskParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskParams);

                    /** DiskParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new DiskParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskParams): google.cloud.compute.v1.DiskParams;

                    /**
                     * Encodes the specified DiskParams message. Does not implicitly {@link google.cloud.compute.v1.DiskParams.verify|verify} messages.
                     * @param message DiskParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskParams.verify|verify} messages.
                     * @param message DiskParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskParams;

                    /**
                     * Decodes a DiskParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskParams;

                    /**
                     * Verifies a DiskParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskParams;

                    /**
                     * Creates a plain object from a DiskParams message. Also converts values to other types if specified.
                     * @param message DiskParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskResourceStatus. */
                interface IDiskResourceStatus {

                    /** DiskResourceStatus asyncPrimaryDisk */
                    asyncPrimaryDisk?: (google.cloud.compute.v1.IDiskResourceStatusAsyncReplicationStatus|null);

                    /** DiskResourceStatus asyncSecondaryDisks */
                    asyncSecondaryDisks?: ({ [k: string]: google.cloud.compute.v1.IDiskResourceStatusAsyncReplicationStatus }|null);
                }

                /** Represents a DiskResourceStatus. */
                class DiskResourceStatus implements IDiskResourceStatus {

                    /**
                     * Constructs a new DiskResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskResourceStatus);

                    /** DiskResourceStatus asyncPrimaryDisk. */
                    public asyncPrimaryDisk?: (google.cloud.compute.v1.IDiskResourceStatusAsyncReplicationStatus|null);

                    /** DiskResourceStatus asyncSecondaryDisks. */
                    public asyncSecondaryDisks: { [k: string]: google.cloud.compute.v1.IDiskResourceStatusAsyncReplicationStatus };

                    /**
                     * Creates a new DiskResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskResourceStatus): google.cloud.compute.v1.DiskResourceStatus;

                    /**
                     * Encodes the specified DiskResourceStatus message. Does not implicitly {@link google.cloud.compute.v1.DiskResourceStatus.verify|verify} messages.
                     * @param message DiskResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskResourceStatus.verify|verify} messages.
                     * @param message DiskResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskResourceStatus;

                    /**
                     * Decodes a DiskResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskResourceStatus;

                    /**
                     * Verifies a DiskResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskResourceStatus;

                    /**
                     * Creates a plain object from a DiskResourceStatus message. Also converts values to other types if specified.
                     * @param message DiskResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskResourceStatusAsyncReplicationStatus. */
                interface IDiskResourceStatusAsyncReplicationStatus {

                    /** DiskResourceStatusAsyncReplicationStatus state */
                    state?: (string|null);
                }

                /** Represents a DiskResourceStatusAsyncReplicationStatus. */
                class DiskResourceStatusAsyncReplicationStatus implements IDiskResourceStatusAsyncReplicationStatus {

                    /**
                     * Constructs a new DiskResourceStatusAsyncReplicationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskResourceStatusAsyncReplicationStatus);

                    /** DiskResourceStatusAsyncReplicationStatus state. */
                    public state?: (string|null);

                    /**
                     * Creates a new DiskResourceStatusAsyncReplicationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskResourceStatusAsyncReplicationStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskResourceStatusAsyncReplicationStatus): google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus;

                    /**
                     * Encodes the specified DiskResourceStatusAsyncReplicationStatus message. Does not implicitly {@link google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus.verify|verify} messages.
                     * @param message DiskResourceStatusAsyncReplicationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskResourceStatusAsyncReplicationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskResourceStatusAsyncReplicationStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus.verify|verify} messages.
                     * @param message DiskResourceStatusAsyncReplicationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskResourceStatusAsyncReplicationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskResourceStatusAsyncReplicationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskResourceStatusAsyncReplicationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus;

                    /**
                     * Decodes a DiskResourceStatusAsyncReplicationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskResourceStatusAsyncReplicationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus;

                    /**
                     * Verifies a DiskResourceStatusAsyncReplicationStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskResourceStatusAsyncReplicationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskResourceStatusAsyncReplicationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus;

                    /**
                     * Creates a plain object from a DiskResourceStatusAsyncReplicationStatus message. Also converts values to other types if specified.
                     * @param message DiskResourceStatusAsyncReplicationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskResourceStatusAsyncReplicationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskResourceStatusAsyncReplicationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DiskResourceStatusAsyncReplicationStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        CREATED = 135924424,
                        STARTING = 488820800,
                        STATE_UNSPECIFIED = 470755401,
                        STOPPED = 444276141,
                        STOPPING = 350791796
                    }
                }

                /** Properties of a DiskType. */
                interface IDiskType {

                    /** DiskType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** DiskType defaultDiskSizeGb */
                    defaultDiskSizeGb?: (number|Long|string|null);

                    /** DiskType deprecated */
                    deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** DiskType description */
                    description?: (string|null);

                    /** DiskType id */
                    id?: (number|Long|string|null);

                    /** DiskType kind */
                    kind?: (string|null);

                    /** DiskType name */
                    name?: (string|null);

                    /** DiskType region */
                    region?: (string|null);

                    /** DiskType selfLink */
                    selfLink?: (string|null);

                    /** DiskType validDiskSize */
                    validDiskSize?: (string|null);

                    /** DiskType zone */
                    zone?: (string|null);
                }

                /** Represents a DiskType. */
                class DiskType implements IDiskType {

                    /**
                     * Constructs a new DiskType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskType);

                    /** DiskType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** DiskType defaultDiskSizeGb. */
                    public defaultDiskSizeGb?: (number|Long|string|null);

                    /** DiskType deprecated. */
                    public deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** DiskType description. */
                    public description?: (string|null);

                    /** DiskType id. */
                    public id?: (number|Long|string|null);

                    /** DiskType kind. */
                    public kind?: (string|null);

                    /** DiskType name. */
                    public name?: (string|null);

                    /** DiskType region. */
                    public region?: (string|null);

                    /** DiskType selfLink. */
                    public selfLink?: (string|null);

                    /** DiskType validDiskSize. */
                    public validDiskSize?: (string|null);

                    /** DiskType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new DiskType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskType instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskType): google.cloud.compute.v1.DiskType;

                    /**
                     * Encodes the specified DiskType message. Does not implicitly {@link google.cloud.compute.v1.DiskType.verify|verify} messages.
                     * @param message DiskType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskType message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskType.verify|verify} messages.
                     * @param message DiskType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskType;

                    /**
                     * Decodes a DiskType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskType;

                    /**
                     * Verifies a DiskType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskType;

                    /**
                     * Creates a plain object from a DiskType message. Also converts values to other types if specified.
                     * @param message DiskType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskTypeAggregatedList. */
                interface IDiskTypeAggregatedList {

                    /** DiskTypeAggregatedList id */
                    id?: (string|null);

                    /** DiskTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IDiskTypesScopedList }|null);

                    /** DiskTypeAggregatedList kind */
                    kind?: (string|null);

                    /** DiskTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** DiskTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** DiskTypeAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** DiskTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a DiskTypeAggregatedList. */
                class DiskTypeAggregatedList implements IDiskTypeAggregatedList {

                    /**
                     * Constructs a new DiskTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskTypeAggregatedList);

                    /** DiskTypeAggregatedList id. */
                    public id?: (string|null);

                    /** DiskTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IDiskTypesScopedList };

                    /** DiskTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** DiskTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** DiskTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** DiskTypeAggregatedList unreachables. */
                    public unreachables: string[];

                    /** DiskTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new DiskTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskTypeAggregatedList): google.cloud.compute.v1.DiskTypeAggregatedList;

                    /**
                     * Encodes the specified DiskTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.DiskTypeAggregatedList.verify|verify} messages.
                     * @param message DiskTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskTypeAggregatedList.verify|verify} messages.
                     * @param message DiskTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskTypeAggregatedList;

                    /**
                     * Decodes a DiskTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskTypeAggregatedList;

                    /**
                     * Verifies a DiskTypeAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskTypeAggregatedList;

                    /**
                     * Creates a plain object from a DiskTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message DiskTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskTypeList. */
                interface IDiskTypeList {

                    /** DiskTypeList id */
                    id?: (string|null);

                    /** DiskTypeList items */
                    items?: (google.cloud.compute.v1.IDiskType[]|null);

                    /** DiskTypeList kind */
                    kind?: (string|null);

                    /** DiskTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** DiskTypeList selfLink */
                    selfLink?: (string|null);

                    /** DiskTypeList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a DiskTypeList. */
                class DiskTypeList implements IDiskTypeList {

                    /**
                     * Constructs a new DiskTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskTypeList);

                    /** DiskTypeList id. */
                    public id?: (string|null);

                    /** DiskTypeList items. */
                    public items: google.cloud.compute.v1.IDiskType[];

                    /** DiskTypeList kind. */
                    public kind?: (string|null);

                    /** DiskTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** DiskTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** DiskTypeList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new DiskTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskTypeList): google.cloud.compute.v1.DiskTypeList;

                    /**
                     * Encodes the specified DiskTypeList message. Does not implicitly {@link google.cloud.compute.v1.DiskTypeList.verify|verify} messages.
                     * @param message DiskTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskTypeList.verify|verify} messages.
                     * @param message DiskTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskTypeList;

                    /**
                     * Decodes a DiskTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskTypeList;

                    /**
                     * Verifies a DiskTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskTypeList;

                    /**
                     * Creates a plain object from a DiskTypeList message. Also converts values to other types if specified.
                     * @param message DiskTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskTypesScopedList. */
                interface IDiskTypesScopedList {

                    /** DiskTypesScopedList diskTypes */
                    diskTypes?: (google.cloud.compute.v1.IDiskType[]|null);

                    /** DiskTypesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a DiskTypesScopedList. */
                class DiskTypesScopedList implements IDiskTypesScopedList {

                    /**
                     * Constructs a new DiskTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDiskTypesScopedList);

                    /** DiskTypesScopedList diskTypes. */
                    public diskTypes: google.cloud.compute.v1.IDiskType[];

                    /** DiskTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new DiskTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDiskTypesScopedList): google.cloud.compute.v1.DiskTypesScopedList;

                    /**
                     * Encodes the specified DiskTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1.DiskTypesScopedList.verify|verify} messages.
                     * @param message DiskTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDiskTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DiskTypesScopedList.verify|verify} messages.
                     * @param message DiskTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDiskTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DiskTypesScopedList;

                    /**
                     * Decodes a DiskTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DiskTypesScopedList;

                    /**
                     * Verifies a DiskTypesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DiskTypesScopedList;

                    /**
                     * Creates a plain object from a DiskTypesScopedList message. Also converts values to other types if specified.
                     * @param message DiskTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DiskTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksAddResourcePoliciesRequest. */
                interface IDisksAddResourcePoliciesRequest {

                    /** DisksAddResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents a DisksAddResourcePoliciesRequest. */
                class DisksAddResourcePoliciesRequest implements IDisksAddResourcePoliciesRequest {

                    /**
                     * Constructs a new DisksAddResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisksAddResourcePoliciesRequest);

                    /** DisksAddResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new DisksAddResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksAddResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisksAddResourcePoliciesRequest): google.cloud.compute.v1.DisksAddResourcePoliciesRequest;

                    /**
                     * Encodes the specified DisksAddResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.DisksAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message DisksAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisksAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksAddResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisksAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message DisksAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisksAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksAddResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisksAddResourcePoliciesRequest;

                    /**
                     * Decodes a DisksAddResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisksAddResourcePoliciesRequest;

                    /**
                     * Verifies a DisksAddResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksAddResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksAddResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisksAddResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a DisksAddResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message DisksAddResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisksAddResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksAddResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksAddResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksRemoveResourcePoliciesRequest. */
                interface IDisksRemoveResourcePoliciesRequest {

                    /** DisksRemoveResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents a DisksRemoveResourcePoliciesRequest. */
                class DisksRemoveResourcePoliciesRequest implements IDisksRemoveResourcePoliciesRequest {

                    /**
                     * Constructs a new DisksRemoveResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisksRemoveResourcePoliciesRequest);

                    /** DisksRemoveResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new DisksRemoveResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksRemoveResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisksRemoveResourcePoliciesRequest): google.cloud.compute.v1.DisksRemoveResourcePoliciesRequest;

                    /**
                     * Encodes the specified DisksRemoveResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.DisksRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message DisksRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisksRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksRemoveResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisksRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message DisksRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisksRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksRemoveResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisksRemoveResourcePoliciesRequest;

                    /**
                     * Decodes a DisksRemoveResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisksRemoveResourcePoliciesRequest;

                    /**
                     * Verifies a DisksRemoveResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksRemoveResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksRemoveResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisksRemoveResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a DisksRemoveResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message DisksRemoveResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisksRemoveResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksRemoveResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksRemoveResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksResizeRequest. */
                interface IDisksResizeRequest {

                    /** DisksResizeRequest sizeGb */
                    sizeGb?: (number|Long|string|null);
                }

                /** Represents a DisksResizeRequest. */
                class DisksResizeRequest implements IDisksResizeRequest {

                    /**
                     * Constructs a new DisksResizeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisksResizeRequest);

                    /** DisksResizeRequest sizeGb. */
                    public sizeGb?: (number|Long|string|null);

                    /**
                     * Creates a new DisksResizeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksResizeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisksResizeRequest): google.cloud.compute.v1.DisksResizeRequest;

                    /**
                     * Encodes the specified DisksResizeRequest message. Does not implicitly {@link google.cloud.compute.v1.DisksResizeRequest.verify|verify} messages.
                     * @param message DisksResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisksResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksResizeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisksResizeRequest.verify|verify} messages.
                     * @param message DisksResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisksResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksResizeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisksResizeRequest;

                    /**
                     * Decodes a DisksResizeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisksResizeRequest;

                    /**
                     * Verifies a DisksResizeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksResizeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksResizeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisksResizeRequest;

                    /**
                     * Creates a plain object from a DisksResizeRequest message. Also converts values to other types if specified.
                     * @param message DisksResizeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisksResizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksResizeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksResizeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksScopedList. */
                interface IDisksScopedList {

                    /** DisksScopedList disks */
                    disks?: (google.cloud.compute.v1.IDisk[]|null);

                    /** DisksScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a DisksScopedList. */
                class DisksScopedList implements IDisksScopedList {

                    /**
                     * Constructs a new DisksScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisksScopedList);

                    /** DisksScopedList disks. */
                    public disks: google.cloud.compute.v1.IDisk[];

                    /** DisksScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new DisksScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisksScopedList): google.cloud.compute.v1.DisksScopedList;

                    /**
                     * Encodes the specified DisksScopedList message. Does not implicitly {@link google.cloud.compute.v1.DisksScopedList.verify|verify} messages.
                     * @param message DisksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisksScopedList.verify|verify} messages.
                     * @param message DisksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisksScopedList;

                    /**
                     * Decodes a DisksScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisksScopedList;

                    /**
                     * Verifies a DisksScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisksScopedList;

                    /**
                     * Creates a plain object from a DisksScopedList message. Also converts values to other types if specified.
                     * @param message DisksScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisksScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksStartAsyncReplicationRequest. */
                interface IDisksStartAsyncReplicationRequest {

                    /** DisksStartAsyncReplicationRequest asyncSecondaryDisk */
                    asyncSecondaryDisk?: (string|null);
                }

                /** Represents a DisksStartAsyncReplicationRequest. */
                class DisksStartAsyncReplicationRequest implements IDisksStartAsyncReplicationRequest {

                    /**
                     * Constructs a new DisksStartAsyncReplicationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisksStartAsyncReplicationRequest);

                    /** DisksStartAsyncReplicationRequest asyncSecondaryDisk. */
                    public asyncSecondaryDisk?: (string|null);

                    /**
                     * Creates a new DisksStartAsyncReplicationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksStartAsyncReplicationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisksStartAsyncReplicationRequest): google.cloud.compute.v1.DisksStartAsyncReplicationRequest;

                    /**
                     * Encodes the specified DisksStartAsyncReplicationRequest message. Does not implicitly {@link google.cloud.compute.v1.DisksStartAsyncReplicationRequest.verify|verify} messages.
                     * @param message DisksStartAsyncReplicationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisksStartAsyncReplicationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksStartAsyncReplicationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisksStartAsyncReplicationRequest.verify|verify} messages.
                     * @param message DisksStartAsyncReplicationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisksStartAsyncReplicationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksStartAsyncReplicationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksStartAsyncReplicationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisksStartAsyncReplicationRequest;

                    /**
                     * Decodes a DisksStartAsyncReplicationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksStartAsyncReplicationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisksStartAsyncReplicationRequest;

                    /**
                     * Verifies a DisksStartAsyncReplicationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksStartAsyncReplicationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksStartAsyncReplicationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisksStartAsyncReplicationRequest;

                    /**
                     * Creates a plain object from a DisksStartAsyncReplicationRequest message. Also converts values to other types if specified.
                     * @param message DisksStartAsyncReplicationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisksStartAsyncReplicationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksStartAsyncReplicationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksStartAsyncReplicationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksStopGroupAsyncReplicationResource. */
                interface IDisksStopGroupAsyncReplicationResource {

                    /** DisksStopGroupAsyncReplicationResource resourcePolicy */
                    resourcePolicy?: (string|null);
                }

                /** Represents a DisksStopGroupAsyncReplicationResource. */
                class DisksStopGroupAsyncReplicationResource implements IDisksStopGroupAsyncReplicationResource {

                    /**
                     * Constructs a new DisksStopGroupAsyncReplicationResource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisksStopGroupAsyncReplicationResource);

                    /** DisksStopGroupAsyncReplicationResource resourcePolicy. */
                    public resourcePolicy?: (string|null);

                    /**
                     * Creates a new DisksStopGroupAsyncReplicationResource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksStopGroupAsyncReplicationResource instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisksStopGroupAsyncReplicationResource): google.cloud.compute.v1.DisksStopGroupAsyncReplicationResource;

                    /**
                     * Encodes the specified DisksStopGroupAsyncReplicationResource message. Does not implicitly {@link google.cloud.compute.v1.DisksStopGroupAsyncReplicationResource.verify|verify} messages.
                     * @param message DisksStopGroupAsyncReplicationResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisksStopGroupAsyncReplicationResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksStopGroupAsyncReplicationResource message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisksStopGroupAsyncReplicationResource.verify|verify} messages.
                     * @param message DisksStopGroupAsyncReplicationResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisksStopGroupAsyncReplicationResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksStopGroupAsyncReplicationResource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksStopGroupAsyncReplicationResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisksStopGroupAsyncReplicationResource;

                    /**
                     * Decodes a DisksStopGroupAsyncReplicationResource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksStopGroupAsyncReplicationResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisksStopGroupAsyncReplicationResource;

                    /**
                     * Verifies a DisksStopGroupAsyncReplicationResource message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksStopGroupAsyncReplicationResource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksStopGroupAsyncReplicationResource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisksStopGroupAsyncReplicationResource;

                    /**
                     * Creates a plain object from a DisksStopGroupAsyncReplicationResource message. Also converts values to other types if specified.
                     * @param message DisksStopGroupAsyncReplicationResource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisksStopGroupAsyncReplicationResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksStopGroupAsyncReplicationResource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksStopGroupAsyncReplicationResource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisplayDevice. */
                interface IDisplayDevice {

                    /** DisplayDevice enableDisplay */
                    enableDisplay?: (boolean|null);
                }

                /** Represents a DisplayDevice. */
                class DisplayDevice implements IDisplayDevice {

                    /**
                     * Constructs a new DisplayDevice.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDisplayDevice);

                    /** DisplayDevice enableDisplay. */
                    public enableDisplay?: (boolean|null);

                    /**
                     * Creates a new DisplayDevice instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisplayDevice instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDisplayDevice): google.cloud.compute.v1.DisplayDevice;

                    /**
                     * Encodes the specified DisplayDevice message. Does not implicitly {@link google.cloud.compute.v1.DisplayDevice.verify|verify} messages.
                     * @param message DisplayDevice message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDisplayDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisplayDevice message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DisplayDevice.verify|verify} messages.
                     * @param message DisplayDevice message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDisplayDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisplayDevice message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisplayDevice
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DisplayDevice;

                    /**
                     * Decodes a DisplayDevice message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisplayDevice
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DisplayDevice;

                    /**
                     * Verifies a DisplayDevice message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisplayDevice message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisplayDevice
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DisplayDevice;

                    /**
                     * Creates a plain object from a DisplayDevice message. Also converts values to other types if specified.
                     * @param message DisplayDevice
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DisplayDevice, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisplayDevice to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisplayDevice
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DistributionPolicy. */
                interface IDistributionPolicy {

                    /** DistributionPolicy targetShape */
                    targetShape?: (string|null);

                    /** DistributionPolicy zones */
                    zones?: (google.cloud.compute.v1.IDistributionPolicyZoneConfiguration[]|null);
                }

                /** Represents a DistributionPolicy. */
                class DistributionPolicy implements IDistributionPolicy {

                    /**
                     * Constructs a new DistributionPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDistributionPolicy);

                    /** DistributionPolicy targetShape. */
                    public targetShape?: (string|null);

                    /** DistributionPolicy zones. */
                    public zones: google.cloud.compute.v1.IDistributionPolicyZoneConfiguration[];

                    /**
                     * Creates a new DistributionPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DistributionPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDistributionPolicy): google.cloud.compute.v1.DistributionPolicy;

                    /**
                     * Encodes the specified DistributionPolicy message. Does not implicitly {@link google.cloud.compute.v1.DistributionPolicy.verify|verify} messages.
                     * @param message DistributionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDistributionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DistributionPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DistributionPolicy.verify|verify} messages.
                     * @param message DistributionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDistributionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DistributionPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DistributionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DistributionPolicy;

                    /**
                     * Decodes a DistributionPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DistributionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DistributionPolicy;

                    /**
                     * Verifies a DistributionPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DistributionPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DistributionPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DistributionPolicy;

                    /**
                     * Creates a plain object from a DistributionPolicy message. Also converts values to other types if specified.
                     * @param message DistributionPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DistributionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DistributionPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DistributionPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DistributionPolicy {

                    /** TargetShape enum. */
                    enum TargetShape {
                        UNDEFINED_TARGET_SHAPE = 0,
                        ANY = 64972,
                        ANY_SINGLE_ZONE = 61100880,
                        BALANCED = 468409608,
                        EVEN = 2140442
                    }
                }

                /** Properties of a DistributionPolicyZoneConfiguration. */
                interface IDistributionPolicyZoneConfiguration {

                    /** DistributionPolicyZoneConfiguration zone */
                    zone?: (string|null);
                }

                /** Represents a DistributionPolicyZoneConfiguration. */
                class DistributionPolicyZoneConfiguration implements IDistributionPolicyZoneConfiguration {

                    /**
                     * Constructs a new DistributionPolicyZoneConfiguration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDistributionPolicyZoneConfiguration);

                    /** DistributionPolicyZoneConfiguration zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new DistributionPolicyZoneConfiguration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DistributionPolicyZoneConfiguration instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDistributionPolicyZoneConfiguration): google.cloud.compute.v1.DistributionPolicyZoneConfiguration;

                    /**
                     * Encodes the specified DistributionPolicyZoneConfiguration message. Does not implicitly {@link google.cloud.compute.v1.DistributionPolicyZoneConfiguration.verify|verify} messages.
                     * @param message DistributionPolicyZoneConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDistributionPolicyZoneConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DistributionPolicyZoneConfiguration message, length delimited. Does not implicitly {@link google.cloud.compute.v1.DistributionPolicyZoneConfiguration.verify|verify} messages.
                     * @param message DistributionPolicyZoneConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDistributionPolicyZoneConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DistributionPolicyZoneConfiguration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DistributionPolicyZoneConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.DistributionPolicyZoneConfiguration;

                    /**
                     * Decodes a DistributionPolicyZoneConfiguration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DistributionPolicyZoneConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.DistributionPolicyZoneConfiguration;

                    /**
                     * Verifies a DistributionPolicyZoneConfiguration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DistributionPolicyZoneConfiguration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DistributionPolicyZoneConfiguration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.DistributionPolicyZoneConfiguration;

                    /**
                     * Creates a plain object from a DistributionPolicyZoneConfiguration message. Also converts values to other types if specified.
                     * @param message DistributionPolicyZoneConfiguration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.DistributionPolicyZoneConfiguration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DistributionPolicyZoneConfiguration to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DistributionPolicyZoneConfiguration
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Duration. */
                interface IDuration {

                    /** Duration nanos */
                    nanos?: (number|null);

                    /** Duration seconds */
                    seconds?: (number|Long|string|null);
                }

                /** Represents a Duration. */
                class Duration implements IDuration {

                    /**
                     * Constructs a new Duration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IDuration);

                    /** Duration nanos. */
                    public nanos?: (number|null);

                    /** Duration seconds. */
                    public seconds?: (number|Long|string|null);

                    /**
                     * Creates a new Duration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Duration instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IDuration): google.cloud.compute.v1.Duration;

                    /**
                     * Encodes the specified Duration message. Does not implicitly {@link google.cloud.compute.v1.Duration.verify|verify} messages.
                     * @param message Duration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Duration.verify|verify} messages.
                     * @param message Duration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Duration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Duration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Duration;

                    /**
                     * Decodes a Duration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Duration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Duration;

                    /**
                     * Verifies a Duration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Duration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Duration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Duration;

                    /**
                     * Creates a plain object from a Duration message. Also converts values to other types if specified.
                     * @param message Duration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.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 EnableXpnHostProjectRequest. */
                interface IEnableXpnHostProjectRequest {

                    /** EnableXpnHostProjectRequest project */
                    project?: (string|null);

                    /** EnableXpnHostProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an EnableXpnHostProjectRequest. */
                class EnableXpnHostProjectRequest implements IEnableXpnHostProjectRequest {

                    /**
                     * Constructs a new EnableXpnHostProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IEnableXpnHostProjectRequest);

                    /** EnableXpnHostProjectRequest project. */
                    public project: string;

                    /** EnableXpnHostProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new EnableXpnHostProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EnableXpnHostProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IEnableXpnHostProjectRequest): google.cloud.compute.v1.EnableXpnHostProjectRequest;

                    /**
                     * Encodes the specified EnableXpnHostProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.EnableXpnHostProjectRequest.verify|verify} messages.
                     * @param message EnableXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IEnableXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EnableXpnHostProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.EnableXpnHostProjectRequest.verify|verify} messages.
                     * @param message EnableXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IEnableXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EnableXpnHostProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EnableXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.EnableXpnHostProjectRequest;

                    /**
                     * Decodes an EnableXpnHostProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EnableXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.EnableXpnHostProjectRequest;

                    /**
                     * Verifies an EnableXpnHostProjectRequest message.
                     * @param message Plain 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 EnableXpnHostProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EnableXpnHostProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.EnableXpnHostProjectRequest;

                    /**
                     * Creates a plain object from an EnableXpnHostProjectRequest message. Also converts values to other types if specified.
                     * @param message EnableXpnHostProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.EnableXpnHostProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EnableXpnHostProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EnableXpnHostProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EnableXpnResourceProjectRequest. */
                interface IEnableXpnResourceProjectRequest {

                    /** EnableXpnResourceProjectRequest project */
                    project?: (string|null);

                    /** EnableXpnResourceProjectRequest projectsEnableXpnResourceRequestResource */
                    projectsEnableXpnResourceRequestResource?: (google.cloud.compute.v1.IProjectsEnableXpnResourceRequest|null);

                    /** EnableXpnResourceProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an EnableXpnResourceProjectRequest. */
                class EnableXpnResourceProjectRequest implements IEnableXpnResourceProjectRequest {

                    /**
                     * Constructs a new EnableXpnResourceProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IEnableXpnResourceProjectRequest);

                    /** EnableXpnResourceProjectRequest project. */
                    public project: string;

                    /** EnableXpnResourceProjectRequest projectsEnableXpnResourceRequestResource. */
                    public projectsEnableXpnResourceRequestResource?: (google.cloud.compute.v1.IProjectsEnableXpnResourceRequest|null);

                    /** EnableXpnResourceProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new EnableXpnResourceProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EnableXpnResourceProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IEnableXpnResourceProjectRequest): google.cloud.compute.v1.EnableXpnResourceProjectRequest;

                    /**
                     * Encodes the specified EnableXpnResourceProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.EnableXpnResourceProjectRequest.verify|verify} messages.
                     * @param message EnableXpnResourceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IEnableXpnResourceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EnableXpnResourceProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.EnableXpnResourceProjectRequest.verify|verify} messages.
                     * @param message EnableXpnResourceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IEnableXpnResourceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EnableXpnResourceProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EnableXpnResourceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.EnableXpnResourceProjectRequest;

                    /**
                     * Decodes an EnableXpnResourceProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EnableXpnResourceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.EnableXpnResourceProjectRequest;

                    /**
                     * Verifies an EnableXpnResourceProjectRequest message.
                     * @param message Plain 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 EnableXpnResourceProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EnableXpnResourceProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.EnableXpnResourceProjectRequest;

                    /**
                     * Creates a plain object from an EnableXpnResourceProjectRequest message. Also converts values to other types if specified.
                     * @param message EnableXpnResourceProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.EnableXpnResourceProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EnableXpnResourceProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EnableXpnResourceProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Error. */
                interface IError {

                    /** Error errors */
                    errors?: (google.cloud.compute.v1.IErrors[]|null);
                }

                /** Represents an Error. */
                class Error implements IError {

                    /**
                     * Constructs a new Error.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IError);

                    /** Error errors. */
                    public errors: google.cloud.compute.v1.IErrors[];

                    /**
                     * Creates a new Error instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Error instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IError): google.cloud.compute.v1.Error;

                    /**
                     * Encodes the specified Error message. Does not implicitly {@link google.cloud.compute.v1.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Error message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Error message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Error;

                    /**
                     * Decodes an Error message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Error;

                    /**
                     * Verifies an Error message.
                     * @param message Plain 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 Error message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Error
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Error;

                    /**
                     * Creates a plain object from an Error message. Also converts values to other types if specified.
                     * @param message Error
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Error, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Error to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Error
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ErrorDetails. */
                interface IErrorDetails {

                    /** ErrorDetails errorInfo */
                    errorInfo?: (google.cloud.compute.v1.IErrorInfo|null);

                    /** ErrorDetails help */
                    help?: (google.cloud.compute.v1.IHelp|null);

                    /** ErrorDetails localizedMessage */
                    localizedMessage?: (google.cloud.compute.v1.ILocalizedMessage|null);

                    /** ErrorDetails quotaInfo */
                    quotaInfo?: (google.cloud.compute.v1.IQuotaExceededInfo|null);
                }

                /** Represents an ErrorDetails. */
                class ErrorDetails implements IErrorDetails {

                    /**
                     * Constructs a new ErrorDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IErrorDetails);

                    /** ErrorDetails errorInfo. */
                    public errorInfo?: (google.cloud.compute.v1.IErrorInfo|null);

                    /** ErrorDetails help. */
                    public help?: (google.cloud.compute.v1.IHelp|null);

                    /** ErrorDetails localizedMessage. */
                    public localizedMessage?: (google.cloud.compute.v1.ILocalizedMessage|null);

                    /** ErrorDetails quotaInfo. */
                    public quotaInfo?: (google.cloud.compute.v1.IQuotaExceededInfo|null);

                    /**
                     * Creates a new ErrorDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ErrorDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IErrorDetails): google.cloud.compute.v1.ErrorDetails;

                    /**
                     * Encodes the specified ErrorDetails message. Does not implicitly {@link google.cloud.compute.v1.ErrorDetails.verify|verify} messages.
                     * @param message ErrorDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IErrorDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ErrorDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ErrorDetails.verify|verify} messages.
                     * @param message ErrorDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IErrorDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ErrorDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ErrorDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ErrorDetails;

                    /**
                     * Decodes an ErrorDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ErrorDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ErrorDetails;

                    /**
                     * Verifies an ErrorDetails message.
                     * @param message Plain 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 ErrorDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ErrorDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ErrorDetails;

                    /**
                     * Creates a plain object from an ErrorDetails message. Also converts values to other types if specified.
                     * @param message ErrorDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ErrorDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ErrorDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ErrorDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ErrorInfo. */
                interface IErrorInfo {

                    /** ErrorInfo domain */
                    domain?: (string|null);

                    /** ErrorInfo metadatas */
                    metadatas?: ({ [k: string]: string }|null);

                    /** ErrorInfo reason */
                    reason?: (string|null);
                }

                /** Represents an ErrorInfo. */
                class ErrorInfo implements IErrorInfo {

                    /**
                     * Constructs a new ErrorInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IErrorInfo);

                    /** ErrorInfo domain. */
                    public domain?: (string|null);

                    /** ErrorInfo metadatas. */
                    public metadatas: { [k: string]: string };

                    /** ErrorInfo reason. */
                    public reason?: (string|null);

                    /**
                     * Creates a new ErrorInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ErrorInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IErrorInfo): google.cloud.compute.v1.ErrorInfo;

                    /**
                     * Encodes the specified ErrorInfo message. Does not implicitly {@link google.cloud.compute.v1.ErrorInfo.verify|verify} messages.
                     * @param message ErrorInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IErrorInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ErrorInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ErrorInfo.verify|verify} messages.
                     * @param message ErrorInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IErrorInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ErrorInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ErrorInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ErrorInfo;

                    /**
                     * Decodes an ErrorInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ErrorInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ErrorInfo;

                    /**
                     * Verifies an ErrorInfo message.
                     * @param message Plain 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 ErrorInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ErrorInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ErrorInfo;

                    /**
                     * Creates a plain object from an ErrorInfo message. Also converts values to other types if specified.
                     * @param message ErrorInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ErrorInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ErrorInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ErrorInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Errors. */
                interface IErrors {

                    /** Errors code */
                    code?: (string|null);

                    /** Errors errorDetails */
                    errorDetails?: (google.cloud.compute.v1.IErrorDetails[]|null);

                    /** Errors location */
                    location?: (string|null);

                    /** Errors message */
                    message?: (string|null);
                }

                /** Represents an Errors. */
                class Errors implements IErrors {

                    /**
                     * Constructs a new Errors.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IErrors);

                    /** Errors code. */
                    public code?: (string|null);

                    /** Errors errorDetails. */
                    public errorDetails: google.cloud.compute.v1.IErrorDetails[];

                    /** Errors location. */
                    public location?: (string|null);

                    /** Errors message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Errors instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Errors instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IErrors): google.cloud.compute.v1.Errors;

                    /**
                     * Encodes the specified Errors message. Does not implicitly {@link google.cloud.compute.v1.Errors.verify|verify} messages.
                     * @param message Errors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Errors message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Errors.verify|verify} messages.
                     * @param message Errors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Errors message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Errors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Errors;

                    /**
                     * Decodes an Errors message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Errors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Errors;

                    /**
                     * Verifies an Errors message.
                     * @param message Plain 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 Errors message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Errors
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Errors;

                    /**
                     * Creates a plain object from an Errors message. Also converts values to other types if specified.
                     * @param message Errors
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Errors, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Errors to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Errors
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExchangedPeeringRoute. */
                interface IExchangedPeeringRoute {

                    /** ExchangedPeeringRoute destRange */
                    destRange?: (string|null);

                    /** ExchangedPeeringRoute imported */
                    imported?: (boolean|null);

                    /** ExchangedPeeringRoute nextHopRegion */
                    nextHopRegion?: (string|null);

                    /** ExchangedPeeringRoute priority */
                    priority?: (number|null);

                    /** ExchangedPeeringRoute type */
                    type?: (string|null);
                }

                /** Represents an ExchangedPeeringRoute. */
                class ExchangedPeeringRoute implements IExchangedPeeringRoute {

                    /**
                     * Constructs a new ExchangedPeeringRoute.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IExchangedPeeringRoute);

                    /** ExchangedPeeringRoute destRange. */
                    public destRange?: (string|null);

                    /** ExchangedPeeringRoute imported. */
                    public imported?: (boolean|null);

                    /** ExchangedPeeringRoute nextHopRegion. */
                    public nextHopRegion?: (string|null);

                    /** ExchangedPeeringRoute priority. */
                    public priority?: (number|null);

                    /** ExchangedPeeringRoute type. */
                    public type?: (string|null);

                    /**
                     * Creates a new ExchangedPeeringRoute instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExchangedPeeringRoute instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IExchangedPeeringRoute): google.cloud.compute.v1.ExchangedPeeringRoute;

                    /**
                     * Encodes the specified ExchangedPeeringRoute message. Does not implicitly {@link google.cloud.compute.v1.ExchangedPeeringRoute.verify|verify} messages.
                     * @param message ExchangedPeeringRoute message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IExchangedPeeringRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExchangedPeeringRoute message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ExchangedPeeringRoute.verify|verify} messages.
                     * @param message ExchangedPeeringRoute message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IExchangedPeeringRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExchangedPeeringRoute message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExchangedPeeringRoute
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ExchangedPeeringRoute;

                    /**
                     * Decodes an ExchangedPeeringRoute message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExchangedPeeringRoute
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ExchangedPeeringRoute;

                    /**
                     * Verifies an ExchangedPeeringRoute message.
                     * @param message Plain 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 ExchangedPeeringRoute message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExchangedPeeringRoute
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ExchangedPeeringRoute;

                    /**
                     * Creates a plain object from an ExchangedPeeringRoute message. Also converts values to other types if specified.
                     * @param message ExchangedPeeringRoute
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ExchangedPeeringRoute, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExchangedPeeringRoute to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExchangedPeeringRoute
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ExchangedPeeringRoute {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        DYNAMIC_PEERING_ROUTE = 469794858,
                        STATIC_PEERING_ROUTE = 473407545,
                        SUBNET_PEERING_ROUTE = 465782504
                    }
                }

                /** Properties of an ExchangedPeeringRoutesList. */
                interface IExchangedPeeringRoutesList {

                    /** ExchangedPeeringRoutesList id */
                    id?: (string|null);

                    /** ExchangedPeeringRoutesList items */
                    items?: (google.cloud.compute.v1.IExchangedPeeringRoute[]|null);

                    /** ExchangedPeeringRoutesList kind */
                    kind?: (string|null);

                    /** ExchangedPeeringRoutesList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ExchangedPeeringRoutesList selfLink */
                    selfLink?: (string|null);

                    /** ExchangedPeeringRoutesList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an ExchangedPeeringRoutesList. */
                class ExchangedPeeringRoutesList implements IExchangedPeeringRoutesList {

                    /**
                     * Constructs a new ExchangedPeeringRoutesList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IExchangedPeeringRoutesList);

                    /** ExchangedPeeringRoutesList id. */
                    public id?: (string|null);

                    /** ExchangedPeeringRoutesList items. */
                    public items: google.cloud.compute.v1.IExchangedPeeringRoute[];

                    /** ExchangedPeeringRoutesList kind. */
                    public kind?: (string|null);

                    /** ExchangedPeeringRoutesList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ExchangedPeeringRoutesList selfLink. */
                    public selfLink?: (string|null);

                    /** ExchangedPeeringRoutesList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ExchangedPeeringRoutesList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExchangedPeeringRoutesList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IExchangedPeeringRoutesList): google.cloud.compute.v1.ExchangedPeeringRoutesList;

                    /**
                     * Encodes the specified ExchangedPeeringRoutesList message. Does not implicitly {@link google.cloud.compute.v1.ExchangedPeeringRoutesList.verify|verify} messages.
                     * @param message ExchangedPeeringRoutesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IExchangedPeeringRoutesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExchangedPeeringRoutesList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ExchangedPeeringRoutesList.verify|verify} messages.
                     * @param message ExchangedPeeringRoutesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IExchangedPeeringRoutesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExchangedPeeringRoutesList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExchangedPeeringRoutesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ExchangedPeeringRoutesList;

                    /**
                     * Decodes an ExchangedPeeringRoutesList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExchangedPeeringRoutesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ExchangedPeeringRoutesList;

                    /**
                     * Verifies an ExchangedPeeringRoutesList message.
                     * @param message Plain 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 ExchangedPeeringRoutesList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExchangedPeeringRoutesList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ExchangedPeeringRoutesList;

                    /**
                     * Creates a plain object from an ExchangedPeeringRoutesList message. Also converts values to other types if specified.
                     * @param message ExchangedPeeringRoutesList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ExchangedPeeringRoutesList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExchangedPeeringRoutesList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExchangedPeeringRoutesList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExpandIpCidrRangeSubnetworkRequest. */
                interface IExpandIpCidrRangeSubnetworkRequest {

                    /** ExpandIpCidrRangeSubnetworkRequest project */
                    project?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest region */
                    region?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest subnetworksExpandIpCidrRangeRequestResource */
                    subnetworksExpandIpCidrRangeRequestResource?: (google.cloud.compute.v1.ISubnetworksExpandIpCidrRangeRequest|null);
                }

                /** Represents an ExpandIpCidrRangeSubnetworkRequest. */
                class ExpandIpCidrRangeSubnetworkRequest implements IExpandIpCidrRangeSubnetworkRequest {

                    /**
                     * Constructs a new ExpandIpCidrRangeSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IExpandIpCidrRangeSubnetworkRequest);

                    /** ExpandIpCidrRangeSubnetworkRequest project. */
                    public project: string;

                    /** ExpandIpCidrRangeSubnetworkRequest region. */
                    public region: string;

                    /** ExpandIpCidrRangeSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /** ExpandIpCidrRangeSubnetworkRequest subnetworksExpandIpCidrRangeRequestResource. */
                    public subnetworksExpandIpCidrRangeRequestResource?: (google.cloud.compute.v1.ISubnetworksExpandIpCidrRangeRequest|null);

                    /**
                     * Creates a new ExpandIpCidrRangeSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExpandIpCidrRangeSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IExpandIpCidrRangeSubnetworkRequest): google.cloud.compute.v1.ExpandIpCidrRangeSubnetworkRequest;

                    /**
                     * Encodes the specified ExpandIpCidrRangeSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.ExpandIpCidrRangeSubnetworkRequest.verify|verify} messages.
                     * @param message ExpandIpCidrRangeSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IExpandIpCidrRangeSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExpandIpCidrRangeSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ExpandIpCidrRangeSubnetworkRequest.verify|verify} messages.
                     * @param message ExpandIpCidrRangeSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IExpandIpCidrRangeSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExpandIpCidrRangeSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExpandIpCidrRangeSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ExpandIpCidrRangeSubnetworkRequest;

                    /**
                     * Decodes an ExpandIpCidrRangeSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExpandIpCidrRangeSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ExpandIpCidrRangeSubnetworkRequest;

                    /**
                     * Verifies an ExpandIpCidrRangeSubnetworkRequest message.
                     * @param message Plain 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 ExpandIpCidrRangeSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExpandIpCidrRangeSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ExpandIpCidrRangeSubnetworkRequest;

                    /**
                     * Creates a plain object from an ExpandIpCidrRangeSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message ExpandIpCidrRangeSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ExpandIpCidrRangeSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExpandIpCidrRangeSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExpandIpCidrRangeSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Expr. */
                interface IExpr {

                    /** Expr description */
                    description?: (string|null);

                    /** Expr expression */
                    expression?: (string|null);

                    /** Expr location */
                    location?: (string|null);

                    /** Expr title */
                    title?: (string|null);
                }

                /** Represents an Expr. */
                class Expr implements IExpr {

                    /**
                     * Constructs a new Expr.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IExpr);

                    /** Expr description. */
                    public description?: (string|null);

                    /** Expr expression. */
                    public expression?: (string|null);

                    /** Expr location. */
                    public location?: (string|null);

                    /** Expr title. */
                    public title?: (string|null);

                    /**
                     * Creates a new Expr instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Expr instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IExpr): google.cloud.compute.v1.Expr;

                    /**
                     * Encodes the specified Expr message. Does not implicitly {@link google.cloud.compute.v1.Expr.verify|verify} messages.
                     * @param message Expr message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IExpr, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Expr message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Expr.verify|verify} messages.
                     * @param message Expr message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IExpr, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Expr message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Expr
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Expr;

                    /**
                     * Decodes an Expr message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Expr
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Expr;

                    /**
                     * Verifies an Expr message.
                     * @param message Plain 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 Expr message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Expr
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Expr;

                    /**
                     * Creates a plain object from an Expr message. Also converts values to other types if specified.
                     * @param message Expr
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Expr, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Expr to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Expr
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExternalVpnGateway. */
                interface IExternalVpnGateway {

                    /** ExternalVpnGateway creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ExternalVpnGateway description */
                    description?: (string|null);

                    /** ExternalVpnGateway id */
                    id?: (number|Long|string|null);

                    /** ExternalVpnGateway interfaces */
                    interfaces?: (google.cloud.compute.v1.IExternalVpnGatewayInterface[]|null);

                    /** ExternalVpnGateway kind */
                    kind?: (string|null);

                    /** ExternalVpnGateway labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** ExternalVpnGateway labels */
                    labels?: ({ [k: string]: string }|null);

                    /** ExternalVpnGateway name */
                    name?: (string|null);

                    /** ExternalVpnGateway params */
                    params?: (google.cloud.compute.v1.IExternalVpnGatewayParams|null);

                    /** ExternalVpnGateway redundancyType */
                    redundancyType?: (string|null);

                    /** ExternalVpnGateway selfLink */
                    selfLink?: (string|null);
                }

                /** Represents an ExternalVpnGateway. */
                class ExternalVpnGateway implements IExternalVpnGateway {

                    /**
                     * Constructs a new ExternalVpnGateway.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IExternalVpnGateway);

                    /** ExternalVpnGateway creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ExternalVpnGateway description. */
                    public description?: (string|null);

                    /** ExternalVpnGateway id. */
                    public id?: (number|Long|string|null);

                    /** ExternalVpnGateway interfaces. */
                    public interfaces: google.cloud.compute.v1.IExternalVpnGatewayInterface[];

                    /** ExternalVpnGateway kind. */
                    public kind?: (string|null);

                    /** ExternalVpnGateway labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** ExternalVpnGateway labels. */
                    public labels: { [k: string]: string };

                    /** ExternalVpnGateway name. */
                    public name?: (string|null);

                    /** ExternalVpnGateway params. */
                    public params?: (google.cloud.compute.v1.IExternalVpnGatewayParams|null);

                    /** ExternalVpnGateway redundancyType. */
                    public redundancyType?: (string|null);

                    /** ExternalVpnGateway selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new ExternalVpnGateway instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExternalVpnGateway instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IExternalVpnGateway): google.cloud.compute.v1.ExternalVpnGateway;

                    /**
                     * Encodes the specified ExternalVpnGateway message. Does not implicitly {@link google.cloud.compute.v1.ExternalVpnGateway.verify|verify} messages.
                     * @param message ExternalVpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IExternalVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExternalVpnGateway message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ExternalVpnGateway.verify|verify} messages.
                     * @param message ExternalVpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IExternalVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExternalVpnGateway message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExternalVpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ExternalVpnGateway;

                    /**
                     * Decodes an ExternalVpnGateway message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExternalVpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ExternalVpnGateway;

                    /**
                     * Verifies an ExternalVpnGateway message.
                     * @param message Plain 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 ExternalVpnGateway message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExternalVpnGateway
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ExternalVpnGateway;

                    /**
                     * Creates a plain object from an ExternalVpnGateway message. Also converts values to other types if specified.
                     * @param message ExternalVpnGateway
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ExternalVpnGateway, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExternalVpnGateway to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExternalVpnGateway
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ExternalVpnGateway {

                    /** RedundancyType enum. */
                    enum RedundancyType {
                        UNDEFINED_REDUNDANCY_TYPE = 0,
                        FOUR_IPS_REDUNDANCY = 520087913,
                        SINGLE_IP_INTERNALLY_REDUNDANT = 133914873,
                        TWO_IPS_REDUNDANCY = 367049635
                    }
                }

                /** Properties of an ExternalVpnGatewayInterface. */
                interface IExternalVpnGatewayInterface {

                    /** ExternalVpnGatewayInterface id */
                    id?: (number|null);

                    /** ExternalVpnGatewayInterface ipAddress */
                    ipAddress?: (string|null);

                    /** ExternalVpnGatewayInterface ipv6Address */
                    ipv6Address?: (string|null);
                }

                /** Represents an ExternalVpnGatewayInterface. */
                class ExternalVpnGatewayInterface implements IExternalVpnGatewayInterface {

                    /**
                     * Constructs a new ExternalVpnGatewayInterface.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IExternalVpnGatewayInterface);

                    /** ExternalVpnGatewayInterface id. */
                    public id?: (number|null);

                    /** ExternalVpnGatewayInterface ipAddress. */
                    public ipAddress?: (string|null);

                    /** ExternalVpnGatewayInterface ipv6Address. */
                    public ipv6Address?: (string|null);

                    /**
                     * Creates a new ExternalVpnGatewayInterface instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExternalVpnGatewayInterface instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IExternalVpnGatewayInterface): google.cloud.compute.v1.ExternalVpnGatewayInterface;

                    /**
                     * Encodes the specified ExternalVpnGatewayInterface message. Does not implicitly {@link google.cloud.compute.v1.ExternalVpnGatewayInterface.verify|verify} messages.
                     * @param message ExternalVpnGatewayInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IExternalVpnGatewayInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExternalVpnGatewayInterface message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ExternalVpnGatewayInterface.verify|verify} messages.
                     * @param message ExternalVpnGatewayInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IExternalVpnGatewayInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExternalVpnGatewayInterface message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExternalVpnGatewayInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ExternalVpnGatewayInterface;

                    /**
                     * Decodes an ExternalVpnGatewayInterface message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExternalVpnGatewayInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ExternalVpnGatewayInterface;

                    /**
                     * Verifies an ExternalVpnGatewayInterface message.
                     * @param message Plain 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 ExternalVpnGatewayInterface message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExternalVpnGatewayInterface
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ExternalVpnGatewayInterface;

                    /**
                     * Creates a plain object from an ExternalVpnGatewayInterface message. Also converts values to other types if specified.
                     * @param message ExternalVpnGatewayInterface
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ExternalVpnGatewayInterface, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExternalVpnGatewayInterface to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExternalVpnGatewayInterface
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExternalVpnGatewayList. */
                interface IExternalVpnGatewayList {

                    /** ExternalVpnGatewayList etag */
                    etag?: (string|null);

                    /** ExternalVpnGatewayList id */
                    id?: (string|null);

                    /** ExternalVpnGatewayList items */
                    items?: (google.cloud.compute.v1.IExternalVpnGateway[]|null);

                    /** ExternalVpnGatewayList kind */
                    kind?: (string|null);

                    /** ExternalVpnGatewayList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ExternalVpnGatewayList selfLink */
                    selfLink?: (string|null);

                    /** ExternalVpnGatewayList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an ExternalVpnGatewayList. */
                class ExternalVpnGatewayList implements IExternalVpnGatewayList {

                    /**
                     * Constructs a new ExternalVpnGatewayList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IExternalVpnGatewayList);

                    /** ExternalVpnGatewayList etag. */
                    public etag?: (string|null);

                    /** ExternalVpnGatewayList id. */
                    public id?: (string|null);

                    /** ExternalVpnGatewayList items. */
                    public items: google.cloud.compute.v1.IExternalVpnGateway[];

                    /** ExternalVpnGatewayList kind. */
                    public kind?: (string|null);

                    /** ExternalVpnGatewayList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ExternalVpnGatewayList selfLink. */
                    public selfLink?: (string|null);

                    /** ExternalVpnGatewayList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ExternalVpnGatewayList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExternalVpnGatewayList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IExternalVpnGatewayList): google.cloud.compute.v1.ExternalVpnGatewayList;

                    /**
                     * Encodes the specified ExternalVpnGatewayList message. Does not implicitly {@link google.cloud.compute.v1.ExternalVpnGatewayList.verify|verify} messages.
                     * @param message ExternalVpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IExternalVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExternalVpnGatewayList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ExternalVpnGatewayList.verify|verify} messages.
                     * @param message ExternalVpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IExternalVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExternalVpnGatewayList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExternalVpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ExternalVpnGatewayList;

                    /**
                     * Decodes an ExternalVpnGatewayList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExternalVpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ExternalVpnGatewayList;

                    /**
                     * Verifies an ExternalVpnGatewayList message.
                     * @param message Plain 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 ExternalVpnGatewayList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExternalVpnGatewayList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ExternalVpnGatewayList;

                    /**
                     * Creates a plain object from an ExternalVpnGatewayList message. Also converts values to other types if specified.
                     * @param message ExternalVpnGatewayList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ExternalVpnGatewayList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExternalVpnGatewayList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExternalVpnGatewayList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExternalVpnGatewayParams. */
                interface IExternalVpnGatewayParams {

                    /** ExternalVpnGatewayParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an ExternalVpnGatewayParams. */
                class ExternalVpnGatewayParams implements IExternalVpnGatewayParams {

                    /**
                     * Constructs a new ExternalVpnGatewayParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IExternalVpnGatewayParams);

                    /** ExternalVpnGatewayParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new ExternalVpnGatewayParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExternalVpnGatewayParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IExternalVpnGatewayParams): google.cloud.compute.v1.ExternalVpnGatewayParams;

                    /**
                     * Encodes the specified ExternalVpnGatewayParams message. Does not implicitly {@link google.cloud.compute.v1.ExternalVpnGatewayParams.verify|verify} messages.
                     * @param message ExternalVpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IExternalVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExternalVpnGatewayParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ExternalVpnGatewayParams.verify|verify} messages.
                     * @param message ExternalVpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IExternalVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExternalVpnGatewayParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExternalVpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ExternalVpnGatewayParams;

                    /**
                     * Decodes an ExternalVpnGatewayParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExternalVpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ExternalVpnGatewayParams;

                    /**
                     * Verifies an ExternalVpnGatewayParams message.
                     * @param message Plain 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 ExternalVpnGatewayParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExternalVpnGatewayParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ExternalVpnGatewayParams;

                    /**
                     * Creates a plain object from an ExternalVpnGatewayParams message. Also converts values to other types if specified.
                     * @param message ExternalVpnGatewayParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ExternalVpnGatewayParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExternalVpnGatewayParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExternalVpnGatewayParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FileContentBuffer. */
                interface IFileContentBuffer {

                    /** FileContentBuffer content */
                    content?: (string|null);

                    /** FileContentBuffer fileType */
                    fileType?: (string|null);
                }

                /** Represents a FileContentBuffer. */
                class FileContentBuffer implements IFileContentBuffer {

                    /**
                     * Constructs a new FileContentBuffer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFileContentBuffer);

                    /** FileContentBuffer content. */
                    public content?: (string|null);

                    /** FileContentBuffer fileType. */
                    public fileType?: (string|null);

                    /**
                     * Creates a new FileContentBuffer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FileContentBuffer instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFileContentBuffer): google.cloud.compute.v1.FileContentBuffer;

                    /**
                     * Encodes the specified FileContentBuffer message. Does not implicitly {@link google.cloud.compute.v1.FileContentBuffer.verify|verify} messages.
                     * @param message FileContentBuffer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFileContentBuffer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FileContentBuffer message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FileContentBuffer.verify|verify} messages.
                     * @param message FileContentBuffer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFileContentBuffer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FileContentBuffer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileContentBuffer
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FileContentBuffer;

                    /**
                     * Decodes a FileContentBuffer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileContentBuffer
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FileContentBuffer;

                    /**
                     * Verifies a FileContentBuffer message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FileContentBuffer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileContentBuffer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FileContentBuffer;

                    /**
                     * Creates a plain object from a FileContentBuffer message. Also converts values to other types if specified.
                     * @param message FileContentBuffer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FileContentBuffer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FileContentBuffer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FileContentBuffer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FileContentBuffer {

                    /** FileType enum. */
                    enum FileType {
                        UNDEFINED_FILE_TYPE = 0,
                        BIN = 65767,
                        UNDEFINED = 137851184,
                        X509 = 2674086
                    }
                }

                /** Properties of a Firewall. */
                interface IFirewall {

                    /** Firewall allowed */
                    allowed?: (google.cloud.compute.v1.IAllowed[]|null);

                    /** Firewall creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Firewall denied */
                    denied?: (google.cloud.compute.v1.IDenied[]|null);

                    /** Firewall description */
                    description?: (string|null);

                    /** Firewall destinationRanges */
                    destinationRanges?: (string[]|null);

                    /** Firewall direction */
                    direction?: (string|null);

                    /** Firewall disabled */
                    disabled?: (boolean|null);

                    /** Firewall id */
                    id?: (number|Long|string|null);

                    /** Firewall kind */
                    kind?: (string|null);

                    /** Firewall logConfig */
                    logConfig?: (google.cloud.compute.v1.IFirewallLogConfig|null);

                    /** Firewall name */
                    name?: (string|null);

                    /** Firewall network */
                    network?: (string|null);

                    /** Firewall params */
                    params?: (google.cloud.compute.v1.IFirewallParams|null);

                    /** Firewall priority */
                    priority?: (number|null);

                    /** Firewall selfLink */
                    selfLink?: (string|null);

                    /** Firewall sourceRanges */
                    sourceRanges?: (string[]|null);

                    /** Firewall sourceServiceAccounts */
                    sourceServiceAccounts?: (string[]|null);

                    /** Firewall sourceTags */
                    sourceTags?: (string[]|null);

                    /** Firewall targetServiceAccounts */
                    targetServiceAccounts?: (string[]|null);

                    /** Firewall targetTags */
                    targetTags?: (string[]|null);
                }

                /** Represents a Firewall. */
                class Firewall implements IFirewall {

                    /**
                     * Constructs a new Firewall.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewall);

                    /** Firewall allowed. */
                    public allowed: google.cloud.compute.v1.IAllowed[];

                    /** Firewall creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Firewall denied. */
                    public denied: google.cloud.compute.v1.IDenied[];

                    /** Firewall description. */
                    public description?: (string|null);

                    /** Firewall destinationRanges. */
                    public destinationRanges: string[];

                    /** Firewall direction. */
                    public direction?: (string|null);

                    /** Firewall disabled. */
                    public disabled?: (boolean|null);

                    /** Firewall id. */
                    public id?: (number|Long|string|null);

                    /** Firewall kind. */
                    public kind?: (string|null);

                    /** Firewall logConfig. */
                    public logConfig?: (google.cloud.compute.v1.IFirewallLogConfig|null);

                    /** Firewall name. */
                    public name?: (string|null);

                    /** Firewall network. */
                    public network?: (string|null);

                    /** Firewall params. */
                    public params?: (google.cloud.compute.v1.IFirewallParams|null);

                    /** Firewall priority. */
                    public priority?: (number|null);

                    /** Firewall selfLink. */
                    public selfLink?: (string|null);

                    /** Firewall sourceRanges. */
                    public sourceRanges: string[];

                    /** Firewall sourceServiceAccounts. */
                    public sourceServiceAccounts: string[];

                    /** Firewall sourceTags. */
                    public sourceTags: string[];

                    /** Firewall targetServiceAccounts. */
                    public targetServiceAccounts: string[];

                    /** Firewall targetTags. */
                    public targetTags: string[];

                    /**
                     * Creates a new Firewall instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Firewall instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewall): google.cloud.compute.v1.Firewall;

                    /**
                     * Encodes the specified Firewall message. Does not implicitly {@link google.cloud.compute.v1.Firewall.verify|verify} messages.
                     * @param message Firewall message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewall, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Firewall message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Firewall.verify|verify} messages.
                     * @param message Firewall message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewall, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Firewall message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Firewall
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Firewall;

                    /**
                     * Decodes a Firewall message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Firewall
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Firewall;

                    /**
                     * Verifies a Firewall message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Firewall message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Firewall
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Firewall;

                    /**
                     * Creates a plain object from a Firewall message. Also converts values to other types if specified.
                     * @param message Firewall
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Firewall, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Firewall to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Firewall
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Firewall {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        EGRESS = 432880501,
                        INGRESS = 516931221
                    }
                }

                /** Properties of a FirewallList. */
                interface IFirewallList {

                    /** FirewallList id */
                    id?: (string|null);

                    /** FirewallList items */
                    items?: (google.cloud.compute.v1.IFirewall[]|null);

                    /** FirewallList kind */
                    kind?: (string|null);

                    /** FirewallList nextPageToken */
                    nextPageToken?: (string|null);

                    /** FirewallList selfLink */
                    selfLink?: (string|null);

                    /** FirewallList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a FirewallList. */
                class FirewallList implements IFirewallList {

                    /**
                     * Constructs a new FirewallList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallList);

                    /** FirewallList id. */
                    public id?: (string|null);

                    /** FirewallList items. */
                    public items: google.cloud.compute.v1.IFirewall[];

                    /** FirewallList kind. */
                    public kind?: (string|null);

                    /** FirewallList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** FirewallList selfLink. */
                    public selfLink?: (string|null);

                    /** FirewallList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new FirewallList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallList): google.cloud.compute.v1.FirewallList;

                    /**
                     * Encodes the specified FirewallList message. Does not implicitly {@link google.cloud.compute.v1.FirewallList.verify|verify} messages.
                     * @param message FirewallList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallList.verify|verify} messages.
                     * @param message FirewallList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallList;

                    /**
                     * Decodes a FirewallList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallList;

                    /**
                     * Verifies a FirewallList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallList;

                    /**
                     * Creates a plain object from a FirewallList message. Also converts values to other types if specified.
                     * @param message FirewallList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallLogConfig. */
                interface IFirewallLogConfig {

                    /** FirewallLogConfig enable */
                    enable?: (boolean|null);

                    /** FirewallLogConfig metadata */
                    metadata?: (string|null);
                }

                /** Represents a FirewallLogConfig. */
                class FirewallLogConfig implements IFirewallLogConfig {

                    /**
                     * Constructs a new FirewallLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallLogConfig);

                    /** FirewallLogConfig enable. */
                    public enable?: (boolean|null);

                    /** FirewallLogConfig metadata. */
                    public metadata?: (string|null);

                    /**
                     * Creates a new FirewallLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallLogConfig): google.cloud.compute.v1.FirewallLogConfig;

                    /**
                     * Encodes the specified FirewallLogConfig message. Does not implicitly {@link google.cloud.compute.v1.FirewallLogConfig.verify|verify} messages.
                     * @param message FirewallLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallLogConfig.verify|verify} messages.
                     * @param message FirewallLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallLogConfig;

                    /**
                     * Decodes a FirewallLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallLogConfig;

                    /**
                     * Verifies a FirewallLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallLogConfig;

                    /**
                     * Creates a plain object from a FirewallLogConfig message. Also converts values to other types if specified.
                     * @param message FirewallLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallLogConfig {

                    /** Metadata enum. */
                    enum Metadata {
                        UNDEFINED_METADATA = 0,
                        EXCLUDE_ALL_METADATA = 334519954,
                        INCLUDE_ALL_METADATA = 164619908
                    }
                }

                /** Properties of a FirewallParams. */
                interface IFirewallParams {

                    /** FirewallParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a FirewallParams. */
                class FirewallParams implements IFirewallParams {

                    /**
                     * Constructs a new FirewallParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallParams);

                    /** FirewallParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new FirewallParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallParams): google.cloud.compute.v1.FirewallParams;

                    /**
                     * Encodes the specified FirewallParams message. Does not implicitly {@link google.cloud.compute.v1.FirewallParams.verify|verify} messages.
                     * @param message FirewallParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallParams.verify|verify} messages.
                     * @param message FirewallParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallParams;

                    /**
                     * Decodes a FirewallParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallParams;

                    /**
                     * Verifies a FirewallParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallParams;

                    /**
                     * Creates a plain object from a FirewallParams message. Also converts values to other types if specified.
                     * @param message FirewallParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPoliciesListAssociationsResponse. */
                interface IFirewallPoliciesListAssociationsResponse {

                    /** FirewallPoliciesListAssociationsResponse associations */
                    associations?: (google.cloud.compute.v1.IFirewallPolicyAssociation[]|null);

                    /** FirewallPoliciesListAssociationsResponse kind */
                    kind?: (string|null);
                }

                /** Represents a FirewallPoliciesListAssociationsResponse. */
                class FirewallPoliciesListAssociationsResponse implements IFirewallPoliciesListAssociationsResponse {

                    /**
                     * Constructs a new FirewallPoliciesListAssociationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPoliciesListAssociationsResponse);

                    /** FirewallPoliciesListAssociationsResponse associations. */
                    public associations: google.cloud.compute.v1.IFirewallPolicyAssociation[];

                    /** FirewallPoliciesListAssociationsResponse kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new FirewallPoliciesListAssociationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPoliciesListAssociationsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPoliciesListAssociationsResponse): google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse;

                    /**
                     * Encodes the specified FirewallPoliciesListAssociationsResponse message. Does not implicitly {@link google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse.verify|verify} messages.
                     * @param message FirewallPoliciesListAssociationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPoliciesListAssociationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPoliciesListAssociationsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse.verify|verify} messages.
                     * @param message FirewallPoliciesListAssociationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPoliciesListAssociationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPoliciesListAssociationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPoliciesListAssociationsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse;

                    /**
                     * Decodes a FirewallPoliciesListAssociationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPoliciesListAssociationsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse;

                    /**
                     * Verifies a FirewallPoliciesListAssociationsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPoliciesListAssociationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPoliciesListAssociationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse;

                    /**
                     * Creates a plain object from a FirewallPoliciesListAssociationsResponse message. Also converts values to other types if specified.
                     * @param message FirewallPoliciesListAssociationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPoliciesListAssociationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPoliciesListAssociationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPoliciesScopedList. */
                interface IFirewallPoliciesScopedList {

                    /** FirewallPoliciesScopedList firewallPolicies */
                    firewallPolicies?: (google.cloud.compute.v1.IFirewallPolicy[]|null);

                    /** FirewallPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a FirewallPoliciesScopedList. */
                class FirewallPoliciesScopedList implements IFirewallPoliciesScopedList {

                    /**
                     * Constructs a new FirewallPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPoliciesScopedList);

                    /** FirewallPoliciesScopedList firewallPolicies. */
                    public firewallPolicies: google.cloud.compute.v1.IFirewallPolicy[];

                    /** FirewallPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new FirewallPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPoliciesScopedList): google.cloud.compute.v1.FirewallPoliciesScopedList;

                    /**
                     * Encodes the specified FirewallPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1.FirewallPoliciesScopedList.verify|verify} messages.
                     * @param message FirewallPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPoliciesScopedList.verify|verify} messages.
                     * @param message FirewallPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPoliciesScopedList;

                    /**
                     * Decodes a FirewallPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPoliciesScopedList;

                    /**
                     * Verifies a FirewallPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPoliciesScopedList;

                    /**
                     * Creates a plain object from a FirewallPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message FirewallPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPolicy. */
                interface IFirewallPolicy {

                    /** FirewallPolicy associations */
                    associations?: (google.cloud.compute.v1.IFirewallPolicyAssociation[]|null);

                    /** FirewallPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** FirewallPolicy description */
                    description?: (string|null);

                    /** FirewallPolicy displayName */
                    displayName?: (string|null);

                    /** FirewallPolicy fingerprint */
                    fingerprint?: (string|null);

                    /** FirewallPolicy id */
                    id?: (number|Long|string|null);

                    /** FirewallPolicy kind */
                    kind?: (string|null);

                    /** FirewallPolicy name */
                    name?: (string|null);

                    /** FirewallPolicy packetMirroringRules */
                    packetMirroringRules?: (google.cloud.compute.v1.IFirewallPolicyRule[]|null);

                    /** FirewallPolicy parent */
                    parent?: (string|null);

                    /** FirewallPolicy policyType */
                    policyType?: (string|null);

                    /** FirewallPolicy region */
                    region?: (string|null);

                    /** FirewallPolicy ruleTupleCount */
                    ruleTupleCount?: (number|null);

                    /** FirewallPolicy rules */
                    rules?: (google.cloud.compute.v1.IFirewallPolicyRule[]|null);

                    /** FirewallPolicy selfLink */
                    selfLink?: (string|null);

                    /** FirewallPolicy selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** FirewallPolicy shortName */
                    shortName?: (string|null);
                }

                /** Represents a FirewallPolicy. */
                class FirewallPolicy implements IFirewallPolicy {

                    /**
                     * Constructs a new FirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPolicy);

                    /** FirewallPolicy associations. */
                    public associations: google.cloud.compute.v1.IFirewallPolicyAssociation[];

                    /** FirewallPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** FirewallPolicy description. */
                    public description?: (string|null);

                    /** FirewallPolicy displayName. */
                    public displayName?: (string|null);

                    /** FirewallPolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** FirewallPolicy id. */
                    public id?: (number|Long|string|null);

                    /** FirewallPolicy kind. */
                    public kind?: (string|null);

                    /** FirewallPolicy name. */
                    public name?: (string|null);

                    /** FirewallPolicy packetMirroringRules. */
                    public packetMirroringRules: google.cloud.compute.v1.IFirewallPolicyRule[];

                    /** FirewallPolicy parent. */
                    public parent?: (string|null);

                    /** FirewallPolicy policyType. */
                    public policyType?: (string|null);

                    /** FirewallPolicy region. */
                    public region?: (string|null);

                    /** FirewallPolicy ruleTupleCount. */
                    public ruleTupleCount?: (number|null);

                    /** FirewallPolicy rules. */
                    public rules: google.cloud.compute.v1.IFirewallPolicyRule[];

                    /** FirewallPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** FirewallPolicy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** FirewallPolicy shortName. */
                    public shortName?: (string|null);

                    /**
                     * Creates a new FirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPolicy): google.cloud.compute.v1.FirewallPolicy;

                    /**
                     * Encodes the specified FirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicy.verify|verify} messages.
                     * @param message FirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicy.verify|verify} messages.
                     * @param message FirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPolicy;

                    /**
                     * Decodes a FirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPolicy;

                    /**
                     * Verifies a FirewallPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPolicy;

                    /**
                     * Creates a plain object from a FirewallPolicy message. Also converts values to other types if specified.
                     * @param message FirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallPolicy {

                    /** PolicyType enum. */
                    enum PolicyType {
                        UNDEFINED_POLICY_TYPE = 0,
                        RDMA_ROCE_POLICY = 148757145,
                        VPC_POLICY = 74319208
                    }
                }

                /** Properties of a FirewallPolicyAssociation. */
                interface IFirewallPolicyAssociation {

                    /** FirewallPolicyAssociation attachmentTarget */
                    attachmentTarget?: (string|null);

                    /** FirewallPolicyAssociation displayName */
                    displayName?: (string|null);

                    /** FirewallPolicyAssociation firewallPolicyId */
                    firewallPolicyId?: (string|null);

                    /** FirewallPolicyAssociation name */
                    name?: (string|null);

                    /** FirewallPolicyAssociation shortName */
                    shortName?: (string|null);
                }

                /** Represents a FirewallPolicyAssociation. */
                class FirewallPolicyAssociation implements IFirewallPolicyAssociation {

                    /**
                     * Constructs a new FirewallPolicyAssociation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPolicyAssociation);

                    /** FirewallPolicyAssociation attachmentTarget. */
                    public attachmentTarget?: (string|null);

                    /** FirewallPolicyAssociation displayName. */
                    public displayName?: (string|null);

                    /** FirewallPolicyAssociation firewallPolicyId. */
                    public firewallPolicyId?: (string|null);

                    /** FirewallPolicyAssociation name. */
                    public name?: (string|null);

                    /** FirewallPolicyAssociation shortName. */
                    public shortName?: (string|null);

                    /**
                     * Creates a new FirewallPolicyAssociation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyAssociation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPolicyAssociation): google.cloud.compute.v1.FirewallPolicyAssociation;

                    /**
                     * Encodes the specified FirewallPolicyAssociation message. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyAssociation.verify|verify} messages.
                     * @param message FirewallPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyAssociation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyAssociation.verify|verify} messages.
                     * @param message FirewallPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyAssociation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPolicyAssociation;

                    /**
                     * Decodes a FirewallPolicyAssociation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPolicyAssociation;

                    /**
                     * Verifies a FirewallPolicyAssociation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyAssociation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyAssociation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPolicyAssociation;

                    /**
                     * Creates a plain object from a FirewallPolicyAssociation message. Also converts values to other types if specified.
                     * @param message FirewallPolicyAssociation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPolicyAssociation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyAssociation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyAssociation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPolicyList. */
                interface IFirewallPolicyList {

                    /** FirewallPolicyList id */
                    id?: (string|null);

                    /** FirewallPolicyList items */
                    items?: (google.cloud.compute.v1.IFirewallPolicy[]|null);

                    /** FirewallPolicyList kind */
                    kind?: (string|null);

                    /** FirewallPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** FirewallPolicyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a FirewallPolicyList. */
                class FirewallPolicyList implements IFirewallPolicyList {

                    /**
                     * Constructs a new FirewallPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPolicyList);

                    /** FirewallPolicyList id. */
                    public id?: (string|null);

                    /** FirewallPolicyList items. */
                    public items: google.cloud.compute.v1.IFirewallPolicy[];

                    /** FirewallPolicyList kind. */
                    public kind?: (string|null);

                    /** FirewallPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** FirewallPolicyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new FirewallPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPolicyList): google.cloud.compute.v1.FirewallPolicyList;

                    /**
                     * Encodes the specified FirewallPolicyList message. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyList.verify|verify} messages.
                     * @param message FirewallPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyList.verify|verify} messages.
                     * @param message FirewallPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPolicyList;

                    /**
                     * Decodes a FirewallPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPolicyList;

                    /**
                     * Verifies a FirewallPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPolicyList;

                    /**
                     * Creates a plain object from a FirewallPolicyList message. Also converts values to other types if specified.
                     * @param message FirewallPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPolicyRule. */
                interface IFirewallPolicyRule {

                    /** FirewallPolicyRule action */
                    action?: (string|null);

                    /** FirewallPolicyRule description */
                    description?: (string|null);

                    /** FirewallPolicyRule direction */
                    direction?: (string|null);

                    /** FirewallPolicyRule disabled */
                    disabled?: (boolean|null);

                    /** FirewallPolicyRule enableLogging */
                    enableLogging?: (boolean|null);

                    /** FirewallPolicyRule kind */
                    kind?: (string|null);

                    /** FirewallPolicyRule match */
                    match?: (google.cloud.compute.v1.IFirewallPolicyRuleMatcher|null);

                    /** FirewallPolicyRule priority */
                    priority?: (number|null);

                    /** FirewallPolicyRule ruleName */
                    ruleName?: (string|null);

                    /** FirewallPolicyRule ruleTupleCount */
                    ruleTupleCount?: (number|null);

                    /** FirewallPolicyRule securityProfileGroup */
                    securityProfileGroup?: (string|null);

                    /** FirewallPolicyRule targetResources */
                    targetResources?: (string[]|null);

                    /** FirewallPolicyRule targetSecureTags */
                    targetSecureTags?: (google.cloud.compute.v1.IFirewallPolicyRuleSecureTag[]|null);

                    /** FirewallPolicyRule targetServiceAccounts */
                    targetServiceAccounts?: (string[]|null);

                    /** FirewallPolicyRule tlsInspect */
                    tlsInspect?: (boolean|null);
                }

                /** Represents a FirewallPolicyRule. */
                class FirewallPolicyRule implements IFirewallPolicyRule {

                    /**
                     * Constructs a new FirewallPolicyRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPolicyRule);

                    /** FirewallPolicyRule action. */
                    public action?: (string|null);

                    /** FirewallPolicyRule description. */
                    public description?: (string|null);

                    /** FirewallPolicyRule direction. */
                    public direction?: (string|null);

                    /** FirewallPolicyRule disabled. */
                    public disabled?: (boolean|null);

                    /** FirewallPolicyRule enableLogging. */
                    public enableLogging?: (boolean|null);

                    /** FirewallPolicyRule kind. */
                    public kind?: (string|null);

                    /** FirewallPolicyRule match. */
                    public match?: (google.cloud.compute.v1.IFirewallPolicyRuleMatcher|null);

                    /** FirewallPolicyRule priority. */
                    public priority?: (number|null);

                    /** FirewallPolicyRule ruleName. */
                    public ruleName?: (string|null);

                    /** FirewallPolicyRule ruleTupleCount. */
                    public ruleTupleCount?: (number|null);

                    /** FirewallPolicyRule securityProfileGroup. */
                    public securityProfileGroup?: (string|null);

                    /** FirewallPolicyRule targetResources. */
                    public targetResources: string[];

                    /** FirewallPolicyRule targetSecureTags. */
                    public targetSecureTags: google.cloud.compute.v1.IFirewallPolicyRuleSecureTag[];

                    /** FirewallPolicyRule targetServiceAccounts. */
                    public targetServiceAccounts: string[];

                    /** FirewallPolicyRule tlsInspect. */
                    public tlsInspect?: (boolean|null);

                    /**
                     * Creates a new FirewallPolicyRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPolicyRule): google.cloud.compute.v1.FirewallPolicyRule;

                    /**
                     * Encodes the specified FirewallPolicyRule message. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyRule.verify|verify} messages.
                     * @param message FirewallPolicyRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPolicyRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyRule.verify|verify} messages.
                     * @param message FirewallPolicyRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPolicyRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPolicyRule;

                    /**
                     * Decodes a FirewallPolicyRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPolicyRule;

                    /**
                     * Verifies a FirewallPolicyRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPolicyRule;

                    /**
                     * Creates a plain object from a FirewallPolicyRule message. Also converts values to other types if specified.
                     * @param message FirewallPolicyRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPolicyRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallPolicyRule {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        EGRESS = 432880501,
                        INGRESS = 516931221
                    }
                }

                /** Properties of a FirewallPolicyRuleMatcher. */
                interface IFirewallPolicyRuleMatcher {

                    /** FirewallPolicyRuleMatcher destAddressGroups */
                    destAddressGroups?: (string[]|null);

                    /** FirewallPolicyRuleMatcher destFqdns */
                    destFqdns?: (string[]|null);

                    /** FirewallPolicyRuleMatcher destIpRanges */
                    destIpRanges?: (string[]|null);

                    /** FirewallPolicyRuleMatcher destNetworkContext */
                    destNetworkContext?: (string|null);

                    /** FirewallPolicyRuleMatcher destNetworkType */
                    destNetworkType?: (string|null);

                    /** FirewallPolicyRuleMatcher destRegionCodes */
                    destRegionCodes?: (string[]|null);

                    /** FirewallPolicyRuleMatcher destThreatIntelligences */
                    destThreatIntelligences?: (string[]|null);

                    /** FirewallPolicyRuleMatcher layer4Configs */
                    layer4Configs?: (google.cloud.compute.v1.IFirewallPolicyRuleMatcherLayer4Config[]|null);

                    /** FirewallPolicyRuleMatcher srcAddressGroups */
                    srcAddressGroups?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcFqdns */
                    srcFqdns?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcIpRanges */
                    srcIpRanges?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcNetworkContext */
                    srcNetworkContext?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworkType */
                    srcNetworkType?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworks */
                    srcNetworks?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcRegionCodes */
                    srcRegionCodes?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcSecureTags */
                    srcSecureTags?: (google.cloud.compute.v1.IFirewallPolicyRuleSecureTag[]|null);

                    /** FirewallPolicyRuleMatcher srcThreatIntelligences */
                    srcThreatIntelligences?: (string[]|null);
                }

                /** Represents a FirewallPolicyRuleMatcher. */
                class FirewallPolicyRuleMatcher implements IFirewallPolicyRuleMatcher {

                    /**
                     * Constructs a new FirewallPolicyRuleMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPolicyRuleMatcher);

                    /** FirewallPolicyRuleMatcher destAddressGroups. */
                    public destAddressGroups: string[];

                    /** FirewallPolicyRuleMatcher destFqdns. */
                    public destFqdns: string[];

                    /** FirewallPolicyRuleMatcher destIpRanges. */
                    public destIpRanges: string[];

                    /** FirewallPolicyRuleMatcher destNetworkContext. */
                    public destNetworkContext?: (string|null);

                    /** FirewallPolicyRuleMatcher destNetworkType. */
                    public destNetworkType?: (string|null);

                    /** FirewallPolicyRuleMatcher destRegionCodes. */
                    public destRegionCodes: string[];

                    /** FirewallPolicyRuleMatcher destThreatIntelligences. */
                    public destThreatIntelligences: string[];

                    /** FirewallPolicyRuleMatcher layer4Configs. */
                    public layer4Configs: google.cloud.compute.v1.IFirewallPolicyRuleMatcherLayer4Config[];

                    /** FirewallPolicyRuleMatcher srcAddressGroups. */
                    public srcAddressGroups: string[];

                    /** FirewallPolicyRuleMatcher srcFqdns. */
                    public srcFqdns: string[];

                    /** FirewallPolicyRuleMatcher srcIpRanges. */
                    public srcIpRanges: string[];

                    /** FirewallPolicyRuleMatcher srcNetworkContext. */
                    public srcNetworkContext?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworkType. */
                    public srcNetworkType?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworks. */
                    public srcNetworks: string[];

                    /** FirewallPolicyRuleMatcher srcRegionCodes. */
                    public srcRegionCodes: string[];

                    /** FirewallPolicyRuleMatcher srcSecureTags. */
                    public srcSecureTags: google.cloud.compute.v1.IFirewallPolicyRuleSecureTag[];

                    /** FirewallPolicyRuleMatcher srcThreatIntelligences. */
                    public srcThreatIntelligences: string[];

                    /**
                     * Creates a new FirewallPolicyRuleMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyRuleMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPolicyRuleMatcher): google.cloud.compute.v1.FirewallPolicyRuleMatcher;

                    /**
                     * Encodes the specified FirewallPolicyRuleMatcher message. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyRuleMatcher.verify|verify} messages.
                     * @param message FirewallPolicyRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPolicyRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyRuleMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyRuleMatcher.verify|verify} messages.
                     * @param message FirewallPolicyRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPolicyRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyRuleMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPolicyRuleMatcher;

                    /**
                     * Decodes a FirewallPolicyRuleMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPolicyRuleMatcher;

                    /**
                     * Verifies a FirewallPolicyRuleMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyRuleMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyRuleMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPolicyRuleMatcher;

                    /**
                     * Creates a plain object from a FirewallPolicyRuleMatcher message. Also converts values to other types if specified.
                     * @param message FirewallPolicyRuleMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPolicyRuleMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyRuleMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyRuleMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallPolicyRuleMatcher {

                    /** DestNetworkContext enum. */
                    enum DestNetworkContext {
                        UNDEFINED_DEST_NETWORK_CONTEXT = 0
                    }

                    /** DestNetworkType enum. */
                    enum DestNetworkType {
                        UNDEFINED_DEST_NETWORK_TYPE = 0
                    }

                    /** SrcNetworkContext enum. */
                    enum SrcNetworkContext {
                        UNDEFINED_SRC_NETWORK_CONTEXT = 0
                    }

                    /** SrcNetworkType enum. */
                    enum SrcNetworkType {
                        UNDEFINED_SRC_NETWORK_TYPE = 0
                    }
                }

                /** Properties of a FirewallPolicyRuleMatcherLayer4Config. */
                interface IFirewallPolicyRuleMatcherLayer4Config {

                    /** FirewallPolicyRuleMatcherLayer4Config ipProtocol */
                    ipProtocol?: (string|null);

                    /** FirewallPolicyRuleMatcherLayer4Config ports */
                    ports?: (string[]|null);
                }

                /** Represents a FirewallPolicyRuleMatcherLayer4Config. */
                class FirewallPolicyRuleMatcherLayer4Config implements IFirewallPolicyRuleMatcherLayer4Config {

                    /**
                     * Constructs a new FirewallPolicyRuleMatcherLayer4Config.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPolicyRuleMatcherLayer4Config);

                    /** FirewallPolicyRuleMatcherLayer4Config ipProtocol. */
                    public ipProtocol?: (string|null);

                    /** FirewallPolicyRuleMatcherLayer4Config ports. */
                    public ports: string[];

                    /**
                     * Creates a new FirewallPolicyRuleMatcherLayer4Config instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyRuleMatcherLayer4Config instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPolicyRuleMatcherLayer4Config): google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config;

                    /**
                     * Encodes the specified FirewallPolicyRuleMatcherLayer4Config message. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config.verify|verify} messages.
                     * @param message FirewallPolicyRuleMatcherLayer4Config message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPolicyRuleMatcherLayer4Config, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyRuleMatcherLayer4Config message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config.verify|verify} messages.
                     * @param message FirewallPolicyRuleMatcherLayer4Config message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPolicyRuleMatcherLayer4Config, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyRuleMatcherLayer4Config message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyRuleMatcherLayer4Config
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config;

                    /**
                     * Decodes a FirewallPolicyRuleMatcherLayer4Config message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyRuleMatcherLayer4Config
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config;

                    /**
                     * Verifies a FirewallPolicyRuleMatcherLayer4Config message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyRuleMatcherLayer4Config message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyRuleMatcherLayer4Config
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config;

                    /**
                     * Creates a plain object from a FirewallPolicyRuleMatcherLayer4Config message. Also converts values to other types if specified.
                     * @param message FirewallPolicyRuleMatcherLayer4Config
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyRuleMatcherLayer4Config to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyRuleMatcherLayer4Config
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPolicyRuleSecureTag. */
                interface IFirewallPolicyRuleSecureTag {

                    /** FirewallPolicyRuleSecureTag name */
                    name?: (string|null);

                    /** FirewallPolicyRuleSecureTag state */
                    state?: (string|null);
                }

                /** Represents a FirewallPolicyRuleSecureTag. */
                class FirewallPolicyRuleSecureTag implements IFirewallPolicyRuleSecureTag {

                    /**
                     * Constructs a new FirewallPolicyRuleSecureTag.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFirewallPolicyRuleSecureTag);

                    /** FirewallPolicyRuleSecureTag name. */
                    public name?: (string|null);

                    /** FirewallPolicyRuleSecureTag state. */
                    public state?: (string|null);

                    /**
                     * Creates a new FirewallPolicyRuleSecureTag instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyRuleSecureTag instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFirewallPolicyRuleSecureTag): google.cloud.compute.v1.FirewallPolicyRuleSecureTag;

                    /**
                     * Encodes the specified FirewallPolicyRuleSecureTag message. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyRuleSecureTag.verify|verify} messages.
                     * @param message FirewallPolicyRuleSecureTag message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFirewallPolicyRuleSecureTag, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyRuleSecureTag message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FirewallPolicyRuleSecureTag.verify|verify} messages.
                     * @param message FirewallPolicyRuleSecureTag message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFirewallPolicyRuleSecureTag, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyRuleSecureTag message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyRuleSecureTag
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FirewallPolicyRuleSecureTag;

                    /**
                     * Decodes a FirewallPolicyRuleSecureTag message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyRuleSecureTag
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FirewallPolicyRuleSecureTag;

                    /**
                     * Verifies a FirewallPolicyRuleSecureTag message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyRuleSecureTag message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyRuleSecureTag
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FirewallPolicyRuleSecureTag;

                    /**
                     * Creates a plain object from a FirewallPolicyRuleSecureTag message. Also converts values to other types if specified.
                     * @param message FirewallPolicyRuleSecureTag
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FirewallPolicyRuleSecureTag, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyRuleSecureTag to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyRuleSecureTag
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallPolicyRuleSecureTag {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        EFFECTIVE = 244201863,
                        INEFFECTIVE = 304458242
                    }
                }

                /** Properties of a FixedOrPercent. */
                interface IFixedOrPercent {

                    /** FixedOrPercent calculated */
                    calculated?: (number|null);

                    /** FixedOrPercent fixed */
                    fixed?: (number|null);

                    /** FixedOrPercent percent */
                    percent?: (number|null);
                }

                /** Represents a FixedOrPercent. */
                class FixedOrPercent implements IFixedOrPercent {

                    /**
                     * Constructs a new FixedOrPercent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFixedOrPercent);

                    /** FixedOrPercent calculated. */
                    public calculated?: (number|null);

                    /** FixedOrPercent fixed. */
                    public fixed?: (number|null);

                    /** FixedOrPercent percent. */
                    public percent?: (number|null);

                    /**
                     * Creates a new FixedOrPercent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FixedOrPercent instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFixedOrPercent): google.cloud.compute.v1.FixedOrPercent;

                    /**
                     * Encodes the specified FixedOrPercent message. Does not implicitly {@link google.cloud.compute.v1.FixedOrPercent.verify|verify} messages.
                     * @param message FixedOrPercent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFixedOrPercent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FixedOrPercent message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FixedOrPercent.verify|verify} messages.
                     * @param message FixedOrPercent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFixedOrPercent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FixedOrPercent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FixedOrPercent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FixedOrPercent;

                    /**
                     * Decodes a FixedOrPercent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FixedOrPercent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FixedOrPercent;

                    /**
                     * Verifies a FixedOrPercent message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FixedOrPercent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FixedOrPercent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FixedOrPercent;

                    /**
                     * Creates a plain object from a FixedOrPercent message. Also converts values to other types if specified.
                     * @param message FixedOrPercent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FixedOrPercent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FixedOrPercent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FixedOrPercent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FlexibleTimeRange. */
                interface IFlexibleTimeRange {

                    /** FlexibleTimeRange maxDuration */
                    maxDuration?: (string|null);

                    /** FlexibleTimeRange minDuration */
                    minDuration?: (string|null);

                    /** FlexibleTimeRange startTimeNotEarlierThan */
                    startTimeNotEarlierThan?: (string|null);

                    /** FlexibleTimeRange startTimeNotLaterThan */
                    startTimeNotLaterThan?: (string|null);
                }

                /** Represents a FlexibleTimeRange. */
                class FlexibleTimeRange implements IFlexibleTimeRange {

                    /**
                     * Constructs a new FlexibleTimeRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFlexibleTimeRange);

                    /** FlexibleTimeRange maxDuration. */
                    public maxDuration?: (string|null);

                    /** FlexibleTimeRange minDuration. */
                    public minDuration?: (string|null);

                    /** FlexibleTimeRange startTimeNotEarlierThan. */
                    public startTimeNotEarlierThan?: (string|null);

                    /** FlexibleTimeRange startTimeNotLaterThan. */
                    public startTimeNotLaterThan?: (string|null);

                    /**
                     * Creates a new FlexibleTimeRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FlexibleTimeRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFlexibleTimeRange): google.cloud.compute.v1.FlexibleTimeRange;

                    /**
                     * Encodes the specified FlexibleTimeRange message. Does not implicitly {@link google.cloud.compute.v1.FlexibleTimeRange.verify|verify} messages.
                     * @param message FlexibleTimeRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFlexibleTimeRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FlexibleTimeRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FlexibleTimeRange.verify|verify} messages.
                     * @param message FlexibleTimeRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFlexibleTimeRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FlexibleTimeRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FlexibleTimeRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FlexibleTimeRange;

                    /**
                     * Decodes a FlexibleTimeRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FlexibleTimeRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FlexibleTimeRange;

                    /**
                     * Verifies a FlexibleTimeRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FlexibleTimeRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FlexibleTimeRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FlexibleTimeRange;

                    /**
                     * Creates a plain object from a FlexibleTimeRange message. Also converts values to other types if specified.
                     * @param message FlexibleTimeRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FlexibleTimeRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FlexibleTimeRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FlexibleTimeRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRule. */
                interface IForwardingRule {

                    /** ForwardingRule IPAddress */
                    IPAddress?: (string|null);

                    /** ForwardingRule IPProtocol */
                    IPProtocol?: (string|null);

                    /** ForwardingRule allPorts */
                    allPorts?: (boolean|null);

                    /** ForwardingRule allowGlobalAccess */
                    allowGlobalAccess?: (boolean|null);

                    /** ForwardingRule allowPscGlobalAccess */
                    allowPscGlobalAccess?: (boolean|null);

                    /** ForwardingRule backendService */
                    backendService?: (string|null);

                    /** ForwardingRule baseForwardingRule */
                    baseForwardingRule?: (string|null);

                    /** ForwardingRule creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ForwardingRule description */
                    description?: (string|null);

                    /** ForwardingRule externalManagedBackendBucketMigrationState */
                    externalManagedBackendBucketMigrationState?: (string|null);

                    /** ForwardingRule externalManagedBackendBucketMigrationTestingPercentage */
                    externalManagedBackendBucketMigrationTestingPercentage?: (number|null);

                    /** ForwardingRule fingerprint */
                    fingerprint?: (string|null);

                    /** ForwardingRule id */
                    id?: (number|Long|string|null);

                    /** ForwardingRule ipCollection */
                    ipCollection?: (string|null);

                    /** ForwardingRule ipVersion */
                    ipVersion?: (string|null);

                    /** ForwardingRule isMirroringCollector */
                    isMirroringCollector?: (boolean|null);

                    /** ForwardingRule kind */
                    kind?: (string|null);

                    /** ForwardingRule labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** ForwardingRule labels */
                    labels?: ({ [k: string]: string }|null);

                    /** ForwardingRule loadBalancingScheme */
                    loadBalancingScheme?: (string|null);

                    /** ForwardingRule metadataFilters */
                    metadataFilters?: (google.cloud.compute.v1.IMetadataFilter[]|null);

                    /** ForwardingRule name */
                    name?: (string|null);

                    /** ForwardingRule network */
                    network?: (string|null);

                    /** ForwardingRule networkTier */
                    networkTier?: (string|null);

                    /** ForwardingRule noAutomateDnsZone */
                    noAutomateDnsZone?: (boolean|null);

                    /** ForwardingRule portRange */
                    portRange?: (string|null);

                    /** ForwardingRule ports */
                    ports?: (string[]|null);

                    /** ForwardingRule pscConnectionId */
                    pscConnectionId?: (number|Long|string|null);

                    /** ForwardingRule pscConnectionStatus */
                    pscConnectionStatus?: (string|null);

                    /** ForwardingRule region */
                    region?: (string|null);

                    /** ForwardingRule selfLink */
                    selfLink?: (string|null);

                    /** ForwardingRule selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** ForwardingRule serviceDirectoryRegistrations */
                    serviceDirectoryRegistrations?: (google.cloud.compute.v1.IForwardingRuleServiceDirectoryRegistration[]|null);

                    /** ForwardingRule serviceLabel */
                    serviceLabel?: (string|null);

                    /** ForwardingRule serviceName */
                    serviceName?: (string|null);

                    /** ForwardingRule sourceIpRanges */
                    sourceIpRanges?: (string[]|null);

                    /** ForwardingRule subnetwork */
                    subnetwork?: (string|null);

                    /** ForwardingRule target */
                    target?: (string|null);
                }

                /** Represents a ForwardingRule. */
                class ForwardingRule implements IForwardingRule {

                    /**
                     * Constructs a new ForwardingRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IForwardingRule);

                    /** ForwardingRule IPAddress. */
                    public IPAddress?: (string|null);

                    /** ForwardingRule IPProtocol. */
                    public IPProtocol?: (string|null);

                    /** ForwardingRule allPorts. */
                    public allPorts?: (boolean|null);

                    /** ForwardingRule allowGlobalAccess. */
                    public allowGlobalAccess?: (boolean|null);

                    /** ForwardingRule allowPscGlobalAccess. */
                    public allowPscGlobalAccess?: (boolean|null);

                    /** ForwardingRule backendService. */
                    public backendService?: (string|null);

                    /** ForwardingRule baseForwardingRule. */
                    public baseForwardingRule?: (string|null);

                    /** ForwardingRule creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ForwardingRule description. */
                    public description?: (string|null);

                    /** ForwardingRule externalManagedBackendBucketMigrationState. */
                    public externalManagedBackendBucketMigrationState?: (string|null);

                    /** ForwardingRule externalManagedBackendBucketMigrationTestingPercentage. */
                    public externalManagedBackendBucketMigrationTestingPercentage?: (number|null);

                    /** ForwardingRule fingerprint. */
                    public fingerprint?: (string|null);

                    /** ForwardingRule id. */
                    public id?: (number|Long|string|null);

                    /** ForwardingRule ipCollection. */
                    public ipCollection?: (string|null);

                    /** ForwardingRule ipVersion. */
                    public ipVersion?: (string|null);

                    /** ForwardingRule isMirroringCollector. */
                    public isMirroringCollector?: (boolean|null);

                    /** ForwardingRule kind. */
                    public kind?: (string|null);

                    /** ForwardingRule labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** ForwardingRule labels. */
                    public labels: { [k: string]: string };

                    /** ForwardingRule loadBalancingScheme. */
                    public loadBalancingScheme?: (string|null);

                    /** ForwardingRule metadataFilters. */
                    public metadataFilters: google.cloud.compute.v1.IMetadataFilter[];

                    /** ForwardingRule name. */
                    public name?: (string|null);

                    /** ForwardingRule network. */
                    public network?: (string|null);

                    /** ForwardingRule networkTier. */
                    public networkTier?: (string|null);

                    /** ForwardingRule noAutomateDnsZone. */
                    public noAutomateDnsZone?: (boolean|null);

                    /** ForwardingRule portRange. */
                    public portRange?: (string|null);

                    /** ForwardingRule ports. */
                    public ports: string[];

                    /** ForwardingRule pscConnectionId. */
                    public pscConnectionId?: (number|Long|string|null);

                    /** ForwardingRule pscConnectionStatus. */
                    public pscConnectionStatus?: (string|null);

                    /** ForwardingRule region. */
                    public region?: (string|null);

                    /** ForwardingRule selfLink. */
                    public selfLink?: (string|null);

                    /** ForwardingRule selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** ForwardingRule serviceDirectoryRegistrations. */
                    public serviceDirectoryRegistrations: google.cloud.compute.v1.IForwardingRuleServiceDirectoryRegistration[];

                    /** ForwardingRule serviceLabel. */
                    public serviceLabel?: (string|null);

                    /** ForwardingRule serviceName. */
                    public serviceName?: (string|null);

                    /** ForwardingRule sourceIpRanges. */
                    public sourceIpRanges: string[];

                    /** ForwardingRule subnetwork. */
                    public subnetwork?: (string|null);

                    /** ForwardingRule target. */
                    public target?: (string|null);

                    /**
                     * Creates a new ForwardingRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IForwardingRule): google.cloud.compute.v1.ForwardingRule;

                    /**
                     * Encodes the specified ForwardingRule message. Does not implicitly {@link google.cloud.compute.v1.ForwardingRule.verify|verify} messages.
                     * @param message ForwardingRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IForwardingRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ForwardingRule.verify|verify} messages.
                     * @param message ForwardingRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IForwardingRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ForwardingRule;

                    /**
                     * Decodes a ForwardingRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ForwardingRule;

                    /**
                     * Verifies a ForwardingRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ForwardingRule;

                    /**
                     * Creates a plain object from a ForwardingRule message. Also converts values to other types if specified.
                     * @param message ForwardingRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ForwardingRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ForwardingRule {

                    /** ExternalManagedBackendBucketMigrationState enum. */
                    enum ExternalManagedBackendBucketMigrationState {
                        UNDEFINED_EXTERNAL_MANAGED_BACKEND_BUCKET_MIGRATION_STATE = 0,
                        PREPARE = 399612135,
                        TEST_ALL_TRAFFIC = 79728882,
                        TEST_BY_PERCENTAGE = 513738389
                    }

                    /** IPProtocolEnum enum. */
                    enum IPProtocolEnum {
                        UNDEFINED_I_P_PROTOCOL_ENUM = 0,
                        AH = 2087,
                        ESP = 68962,
                        ICMP = 2241597,
                        L3_DEFAULT = 48151369,
                        SCTP = 2539724,
                        TCP = 82881,
                        UDP = 83873
                    }

                    /** IpVersion enum. */
                    enum IpVersion {
                        UNDEFINED_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        UNSPECIFIED_VERSION = 21850000
                    }

                    /** LoadBalancingScheme enum. */
                    enum LoadBalancingScheme {
                        UNDEFINED_LOAD_BALANCING_SCHEME = 0,
                        EXTERNAL = 35607499,
                        EXTERNAL_MANAGED = 512006923,
                        INTERNAL = 279295677,
                        INTERNAL_MANAGED = 37350397,
                        INTERNAL_SELF_MANAGED = 236211150,
                        INVALID = 530283991
                    }

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** PscConnectionStatus enum. */
                    enum PscConnectionStatus {
                        UNDEFINED_PSC_CONNECTION_STATUS = 0,
                        ACCEPTED = 246714279,
                        CLOSED = 380163436,
                        NEEDS_ATTENTION = 344491452,
                        PENDING = 35394935,
                        REJECTED = 174130302,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a ForwardingRuleAggregatedList. */
                interface IForwardingRuleAggregatedList {

                    /** ForwardingRuleAggregatedList id */
                    id?: (string|null);

                    /** ForwardingRuleAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IForwardingRulesScopedList }|null);

                    /** ForwardingRuleAggregatedList kind */
                    kind?: (string|null);

                    /** ForwardingRuleAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ForwardingRuleAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** ForwardingRuleAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** ForwardingRuleAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ForwardingRuleAggregatedList. */
                class ForwardingRuleAggregatedList implements IForwardingRuleAggregatedList {

                    /**
                     * Constructs a new ForwardingRuleAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IForwardingRuleAggregatedList);

                    /** ForwardingRuleAggregatedList id. */
                    public id?: (string|null);

                    /** ForwardingRuleAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IForwardingRulesScopedList };

                    /** ForwardingRuleAggregatedList kind. */
                    public kind?: (string|null);

                    /** ForwardingRuleAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ForwardingRuleAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** ForwardingRuleAggregatedList unreachables. */
                    public unreachables: string[];

                    /** ForwardingRuleAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ForwardingRuleAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRuleAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IForwardingRuleAggregatedList): google.cloud.compute.v1.ForwardingRuleAggregatedList;

                    /**
                     * Encodes the specified ForwardingRuleAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.ForwardingRuleAggregatedList.verify|verify} messages.
                     * @param message ForwardingRuleAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IForwardingRuleAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRuleAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ForwardingRuleAggregatedList.verify|verify} messages.
                     * @param message ForwardingRuleAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IForwardingRuleAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRuleAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRuleAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ForwardingRuleAggregatedList;

                    /**
                     * Decodes a ForwardingRuleAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRuleAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ForwardingRuleAggregatedList;

                    /**
                     * Verifies a ForwardingRuleAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRuleAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRuleAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ForwardingRuleAggregatedList;

                    /**
                     * Creates a plain object from a ForwardingRuleAggregatedList message. Also converts values to other types if specified.
                     * @param message ForwardingRuleAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ForwardingRuleAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRuleAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRuleAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRuleList. */
                interface IForwardingRuleList {

                    /** ForwardingRuleList id */
                    id?: (string|null);

                    /** ForwardingRuleList items */
                    items?: (google.cloud.compute.v1.IForwardingRule[]|null);

                    /** ForwardingRuleList kind */
                    kind?: (string|null);

                    /** ForwardingRuleList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ForwardingRuleList selfLink */
                    selfLink?: (string|null);

                    /** ForwardingRuleList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ForwardingRuleList. */
                class ForwardingRuleList implements IForwardingRuleList {

                    /**
                     * Constructs a new ForwardingRuleList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IForwardingRuleList);

                    /** ForwardingRuleList id. */
                    public id?: (string|null);

                    /** ForwardingRuleList items. */
                    public items: google.cloud.compute.v1.IForwardingRule[];

                    /** ForwardingRuleList kind. */
                    public kind?: (string|null);

                    /** ForwardingRuleList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ForwardingRuleList selfLink. */
                    public selfLink?: (string|null);

                    /** ForwardingRuleList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ForwardingRuleList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRuleList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IForwardingRuleList): google.cloud.compute.v1.ForwardingRuleList;

                    /**
                     * Encodes the specified ForwardingRuleList message. Does not implicitly {@link google.cloud.compute.v1.ForwardingRuleList.verify|verify} messages.
                     * @param message ForwardingRuleList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IForwardingRuleList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRuleList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ForwardingRuleList.verify|verify} messages.
                     * @param message ForwardingRuleList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IForwardingRuleList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRuleList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRuleList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ForwardingRuleList;

                    /**
                     * Decodes a ForwardingRuleList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRuleList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ForwardingRuleList;

                    /**
                     * Verifies a ForwardingRuleList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRuleList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRuleList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ForwardingRuleList;

                    /**
                     * Creates a plain object from a ForwardingRuleList message. Also converts values to other types if specified.
                     * @param message ForwardingRuleList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ForwardingRuleList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRuleList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRuleList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRuleReference. */
                interface IForwardingRuleReference {

                    /** ForwardingRuleReference forwardingRule */
                    forwardingRule?: (string|null);
                }

                /** Represents a ForwardingRuleReference. */
                class ForwardingRuleReference implements IForwardingRuleReference {

                    /**
                     * Constructs a new ForwardingRuleReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IForwardingRuleReference);

                    /** ForwardingRuleReference forwardingRule. */
                    public forwardingRule?: (string|null);

                    /**
                     * Creates a new ForwardingRuleReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRuleReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IForwardingRuleReference): google.cloud.compute.v1.ForwardingRuleReference;

                    /**
                     * Encodes the specified ForwardingRuleReference message. Does not implicitly {@link google.cloud.compute.v1.ForwardingRuleReference.verify|verify} messages.
                     * @param message ForwardingRuleReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IForwardingRuleReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRuleReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ForwardingRuleReference.verify|verify} messages.
                     * @param message ForwardingRuleReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IForwardingRuleReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRuleReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRuleReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ForwardingRuleReference;

                    /**
                     * Decodes a ForwardingRuleReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRuleReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ForwardingRuleReference;

                    /**
                     * Verifies a ForwardingRuleReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRuleReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRuleReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ForwardingRuleReference;

                    /**
                     * Creates a plain object from a ForwardingRuleReference message. Also converts values to other types if specified.
                     * @param message ForwardingRuleReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ForwardingRuleReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRuleReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRuleReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRuleServiceDirectoryRegistration. */
                interface IForwardingRuleServiceDirectoryRegistration {

                    /** ForwardingRuleServiceDirectoryRegistration namespace */
                    namespace?: (string|null);

                    /** ForwardingRuleServiceDirectoryRegistration service */
                    service?: (string|null);

                    /** ForwardingRuleServiceDirectoryRegistration serviceDirectoryRegion */
                    serviceDirectoryRegion?: (string|null);
                }

                /** Represents a ForwardingRuleServiceDirectoryRegistration. */
                class ForwardingRuleServiceDirectoryRegistration implements IForwardingRuleServiceDirectoryRegistration {

                    /**
                     * Constructs a new ForwardingRuleServiceDirectoryRegistration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IForwardingRuleServiceDirectoryRegistration);

                    /** ForwardingRuleServiceDirectoryRegistration namespace. */
                    public namespace?: (string|null);

                    /** ForwardingRuleServiceDirectoryRegistration service. */
                    public service?: (string|null);

                    /** ForwardingRuleServiceDirectoryRegistration serviceDirectoryRegion. */
                    public serviceDirectoryRegion?: (string|null);

                    /**
                     * Creates a new ForwardingRuleServiceDirectoryRegistration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRuleServiceDirectoryRegistration instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IForwardingRuleServiceDirectoryRegistration): google.cloud.compute.v1.ForwardingRuleServiceDirectoryRegistration;

                    /**
                     * Encodes the specified ForwardingRuleServiceDirectoryRegistration message. Does not implicitly {@link google.cloud.compute.v1.ForwardingRuleServiceDirectoryRegistration.verify|verify} messages.
                     * @param message ForwardingRuleServiceDirectoryRegistration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IForwardingRuleServiceDirectoryRegistration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRuleServiceDirectoryRegistration message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ForwardingRuleServiceDirectoryRegistration.verify|verify} messages.
                     * @param message ForwardingRuleServiceDirectoryRegistration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IForwardingRuleServiceDirectoryRegistration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRuleServiceDirectoryRegistration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRuleServiceDirectoryRegistration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ForwardingRuleServiceDirectoryRegistration;

                    /**
                     * Decodes a ForwardingRuleServiceDirectoryRegistration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRuleServiceDirectoryRegistration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ForwardingRuleServiceDirectoryRegistration;

                    /**
                     * Verifies a ForwardingRuleServiceDirectoryRegistration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRuleServiceDirectoryRegistration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRuleServiceDirectoryRegistration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ForwardingRuleServiceDirectoryRegistration;

                    /**
                     * Creates a plain object from a ForwardingRuleServiceDirectoryRegistration message. Also converts values to other types if specified.
                     * @param message ForwardingRuleServiceDirectoryRegistration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ForwardingRuleServiceDirectoryRegistration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRuleServiceDirectoryRegistration to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRuleServiceDirectoryRegistration
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRulesScopedList. */
                interface IForwardingRulesScopedList {

                    /** ForwardingRulesScopedList forwardingRules */
                    forwardingRules?: (google.cloud.compute.v1.IForwardingRule[]|null);

                    /** ForwardingRulesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ForwardingRulesScopedList. */
                class ForwardingRulesScopedList implements IForwardingRulesScopedList {

                    /**
                     * Constructs a new ForwardingRulesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IForwardingRulesScopedList);

                    /** ForwardingRulesScopedList forwardingRules. */
                    public forwardingRules: google.cloud.compute.v1.IForwardingRule[];

                    /** ForwardingRulesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ForwardingRulesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRulesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IForwardingRulesScopedList): google.cloud.compute.v1.ForwardingRulesScopedList;

                    /**
                     * Encodes the specified ForwardingRulesScopedList message. Does not implicitly {@link google.cloud.compute.v1.ForwardingRulesScopedList.verify|verify} messages.
                     * @param message ForwardingRulesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IForwardingRulesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRulesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ForwardingRulesScopedList.verify|verify} messages.
                     * @param message ForwardingRulesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IForwardingRulesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRulesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRulesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ForwardingRulesScopedList;

                    /**
                     * Decodes a ForwardingRulesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRulesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ForwardingRulesScopedList;

                    /**
                     * Verifies a ForwardingRulesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRulesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRulesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ForwardingRulesScopedList;

                    /**
                     * Creates a plain object from a ForwardingRulesScopedList message. Also converts values to other types if specified.
                     * @param message ForwardingRulesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ForwardingRulesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRulesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRulesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservation. */
                interface IFutureReservation {

                    /** FutureReservation aggregateReservation */
                    aggregateReservation?: (google.cloud.compute.v1.IAllocationAggregateReservation|null);

                    /** FutureReservation autoCreatedReservationsDeleteTime */
                    autoCreatedReservationsDeleteTime?: (string|null);

                    /** FutureReservation autoCreatedReservationsDuration */
                    autoCreatedReservationsDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** FutureReservation autoDeleteAutoCreatedReservations */
                    autoDeleteAutoCreatedReservations?: (boolean|null);

                    /** FutureReservation commitmentInfo */
                    commitmentInfo?: (google.cloud.compute.v1.IFutureReservationCommitmentInfo|null);

                    /** FutureReservation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** FutureReservation deploymentType */
                    deploymentType?: (string|null);

                    /** FutureReservation description */
                    description?: (string|null);

                    /** FutureReservation enableEmergentMaintenance */
                    enableEmergentMaintenance?: (boolean|null);

                    /** FutureReservation id */
                    id?: (number|Long|string|null);

                    /** FutureReservation kind */
                    kind?: (string|null);

                    /** FutureReservation name */
                    name?: (string|null);

                    /** FutureReservation namePrefix */
                    namePrefix?: (string|null);

                    /** FutureReservation planningStatus */
                    planningStatus?: (string|null);

                    /** FutureReservation reservationMode */
                    reservationMode?: (string|null);

                    /** FutureReservation reservationName */
                    reservationName?: (string|null);

                    /** FutureReservation schedulingType */
                    schedulingType?: (string|null);

                    /** FutureReservation selfLink */
                    selfLink?: (string|null);

                    /** FutureReservation selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** FutureReservation shareSettings */
                    shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** FutureReservation specificReservationRequired */
                    specificReservationRequired?: (boolean|null);

                    /** FutureReservation specificSkuProperties */
                    specificSkuProperties?: (google.cloud.compute.v1.IFutureReservationSpecificSKUProperties|null);

                    /** FutureReservation status */
                    status?: (google.cloud.compute.v1.IFutureReservationStatus|null);

                    /** FutureReservation timeWindow */
                    timeWindow?: (google.cloud.compute.v1.IFutureReservationTimeWindow|null);

                    /** FutureReservation zone */
                    zone?: (string|null);
                }

                /** Represents a FutureReservation. */
                class FutureReservation implements IFutureReservation {

                    /**
                     * Constructs a new FutureReservation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservation);

                    /** FutureReservation aggregateReservation. */
                    public aggregateReservation?: (google.cloud.compute.v1.IAllocationAggregateReservation|null);

                    /** FutureReservation autoCreatedReservationsDeleteTime. */
                    public autoCreatedReservationsDeleteTime?: (string|null);

                    /** FutureReservation autoCreatedReservationsDuration. */
                    public autoCreatedReservationsDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** FutureReservation autoDeleteAutoCreatedReservations. */
                    public autoDeleteAutoCreatedReservations?: (boolean|null);

                    /** FutureReservation commitmentInfo. */
                    public commitmentInfo?: (google.cloud.compute.v1.IFutureReservationCommitmentInfo|null);

                    /** FutureReservation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** FutureReservation deploymentType. */
                    public deploymentType?: (string|null);

                    /** FutureReservation description. */
                    public description?: (string|null);

                    /** FutureReservation enableEmergentMaintenance. */
                    public enableEmergentMaintenance?: (boolean|null);

                    /** FutureReservation id. */
                    public id?: (number|Long|string|null);

                    /** FutureReservation kind. */
                    public kind?: (string|null);

                    /** FutureReservation name. */
                    public name?: (string|null);

                    /** FutureReservation namePrefix. */
                    public namePrefix?: (string|null);

                    /** FutureReservation planningStatus. */
                    public planningStatus?: (string|null);

                    /** FutureReservation reservationMode. */
                    public reservationMode?: (string|null);

                    /** FutureReservation reservationName. */
                    public reservationName?: (string|null);

                    /** FutureReservation schedulingType. */
                    public schedulingType?: (string|null);

                    /** FutureReservation selfLink. */
                    public selfLink?: (string|null);

                    /** FutureReservation selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** FutureReservation shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** FutureReservation specificReservationRequired. */
                    public specificReservationRequired?: (boolean|null);

                    /** FutureReservation specificSkuProperties. */
                    public specificSkuProperties?: (google.cloud.compute.v1.IFutureReservationSpecificSKUProperties|null);

                    /** FutureReservation status. */
                    public status?: (google.cloud.compute.v1.IFutureReservationStatus|null);

                    /** FutureReservation timeWindow. */
                    public timeWindow?: (google.cloud.compute.v1.IFutureReservationTimeWindow|null);

                    /** FutureReservation zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new FutureReservation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservation): google.cloud.compute.v1.FutureReservation;

                    /**
                     * Encodes the specified FutureReservation message. Does not implicitly {@link google.cloud.compute.v1.FutureReservation.verify|verify} messages.
                     * @param message FutureReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservation.verify|verify} messages.
                     * @param message FutureReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservation;

                    /**
                     * Decodes a FutureReservation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservation;

                    /**
                     * Verifies a FutureReservation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservation;

                    /**
                     * Creates a plain object from a FutureReservation message. Also converts values to other types if specified.
                     * @param message FutureReservation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureReservation {

                    /** DeploymentType enum. */
                    enum DeploymentType {
                        UNDEFINED_DEPLOYMENT_TYPE = 0,
                        DENSE = 64932607,
                        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180
                    }

                    /** PlanningStatus enum. */
                    enum PlanningStatus {
                        UNDEFINED_PLANNING_STATUS = 0,
                        DRAFT = 65307009,
                        PLANNING_STATUS_UNSPECIFIED = 252728940,
                        SUBMITTED = 450918619
                    }

                    /** ReservationMode enum. */
                    enum ReservationMode {
                        UNDEFINED_RESERVATION_MODE = 0,
                        CALENDAR = 67431230,
                        DEFAULT = 115302945,
                        RESERVATION_MODE_UNSPECIFIED = 233810606
                    }

                    /** SchedulingType enum. */
                    enum SchedulingType {
                        UNDEFINED_SCHEDULING_TYPE = 0,
                        GROUPED = 474540862,
                        GROUP_MAINTENANCE_TYPE_UNSPECIFIED = 447183678,
                        INDEPENDENT = 127011674
                    }
                }

                /** Properties of a FutureReservationCommitmentInfo. */
                interface IFutureReservationCommitmentInfo {

                    /** FutureReservationCommitmentInfo commitmentName */
                    commitmentName?: (string|null);

                    /** FutureReservationCommitmentInfo commitmentPlan */
                    commitmentPlan?: (string|null);

                    /** FutureReservationCommitmentInfo previousCommitmentTerms */
                    previousCommitmentTerms?: (string|null);
                }

                /** Represents a FutureReservationCommitmentInfo. */
                class FutureReservationCommitmentInfo implements IFutureReservationCommitmentInfo {

                    /**
                     * Constructs a new FutureReservationCommitmentInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationCommitmentInfo);

                    /** FutureReservationCommitmentInfo commitmentName. */
                    public commitmentName?: (string|null);

                    /** FutureReservationCommitmentInfo commitmentPlan. */
                    public commitmentPlan?: (string|null);

                    /** FutureReservationCommitmentInfo previousCommitmentTerms. */
                    public previousCommitmentTerms?: (string|null);

                    /**
                     * Creates a new FutureReservationCommitmentInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationCommitmentInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationCommitmentInfo): google.cloud.compute.v1.FutureReservationCommitmentInfo;

                    /**
                     * Encodes the specified FutureReservationCommitmentInfo message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationCommitmentInfo.verify|verify} messages.
                     * @param message FutureReservationCommitmentInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationCommitmentInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationCommitmentInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationCommitmentInfo.verify|verify} messages.
                     * @param message FutureReservationCommitmentInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationCommitmentInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationCommitmentInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationCommitmentInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationCommitmentInfo;

                    /**
                     * Decodes a FutureReservationCommitmentInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationCommitmentInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationCommitmentInfo;

                    /**
                     * Verifies a FutureReservationCommitmentInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationCommitmentInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationCommitmentInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationCommitmentInfo;

                    /**
                     * Creates a plain object from a FutureReservationCommitmentInfo message. Also converts values to other types if specified.
                     * @param message FutureReservationCommitmentInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationCommitmentInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationCommitmentInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationCommitmentInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureReservationCommitmentInfo {

                    /** CommitmentPlan enum. */
                    enum CommitmentPlan {
                        UNDEFINED_COMMITMENT_PLAN = 0,
                        INVALID = 530283991,
                        THIRTY_SIX_MONTH = 266295942,
                        TWELVE_MONTH = 173083962
                    }

                    /** PreviousCommitmentTerms enum. */
                    enum PreviousCommitmentTerms {
                        UNDEFINED_PREVIOUS_COMMITMENT_TERMS = 0,
                        EXTEND = 448639770,
                        PREVIOUSCOMMITMENTTERM_UNSPECIFIED = 98482448
                    }
                }

                /** Properties of a FutureReservationSpecificSKUProperties. */
                interface IFutureReservationSpecificSKUProperties {

                    /** FutureReservationSpecificSKUProperties instanceProperties */
                    instanceProperties?: (google.cloud.compute.v1.IAllocationSpecificSKUAllocationReservedInstanceProperties|null);

                    /** FutureReservationSpecificSKUProperties sourceInstanceTemplate */
                    sourceInstanceTemplate?: (string|null);

                    /** FutureReservationSpecificSKUProperties totalCount */
                    totalCount?: (number|Long|string|null);
                }

                /** Represents a FutureReservationSpecificSKUProperties. */
                class FutureReservationSpecificSKUProperties implements IFutureReservationSpecificSKUProperties {

                    /**
                     * Constructs a new FutureReservationSpecificSKUProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationSpecificSKUProperties);

                    /** FutureReservationSpecificSKUProperties instanceProperties. */
                    public instanceProperties?: (google.cloud.compute.v1.IAllocationSpecificSKUAllocationReservedInstanceProperties|null);

                    /** FutureReservationSpecificSKUProperties sourceInstanceTemplate. */
                    public sourceInstanceTemplate?: (string|null);

                    /** FutureReservationSpecificSKUProperties totalCount. */
                    public totalCount?: (number|Long|string|null);

                    /**
                     * Creates a new FutureReservationSpecificSKUProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationSpecificSKUProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationSpecificSKUProperties): google.cloud.compute.v1.FutureReservationSpecificSKUProperties;

                    /**
                     * Encodes the specified FutureReservationSpecificSKUProperties message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationSpecificSKUProperties.verify|verify} messages.
                     * @param message FutureReservationSpecificSKUProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationSpecificSKUProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationSpecificSKUProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationSpecificSKUProperties.verify|verify} messages.
                     * @param message FutureReservationSpecificSKUProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationSpecificSKUProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationSpecificSKUProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationSpecificSKUProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationSpecificSKUProperties;

                    /**
                     * Decodes a FutureReservationSpecificSKUProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationSpecificSKUProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationSpecificSKUProperties;

                    /**
                     * Verifies a FutureReservationSpecificSKUProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationSpecificSKUProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationSpecificSKUProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationSpecificSKUProperties;

                    /**
                     * Creates a plain object from a FutureReservationSpecificSKUProperties message. Also converts values to other types if specified.
                     * @param message FutureReservationSpecificSKUProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationSpecificSKUProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationSpecificSKUProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationSpecificSKUProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationStatus. */
                interface IFutureReservationStatus {

                    /** FutureReservationStatus amendmentStatus */
                    amendmentStatus?: (string|null);

                    /** FutureReservationStatus autoCreatedReservations */
                    autoCreatedReservations?: (string[]|null);

                    /** FutureReservationStatus existingMatchingUsageInfo */
                    existingMatchingUsageInfo?: (google.cloud.compute.v1.IFutureReservationStatusExistingMatchingUsageInfo|null);

                    /** FutureReservationStatus fulfilledCount */
                    fulfilledCount?: (number|Long|string|null);

                    /** FutureReservationStatus lastKnownGoodState */
                    lastKnownGoodState?: (google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodState|null);

                    /** FutureReservationStatus lockTime */
                    lockTime?: (string|null);

                    /** FutureReservationStatus procurementStatus */
                    procurementStatus?: (string|null);

                    /** FutureReservationStatus specificSkuProperties */
                    specificSkuProperties?: (google.cloud.compute.v1.IFutureReservationStatusSpecificSKUProperties|null);
                }

                /** Represents a FutureReservationStatus. */
                class FutureReservationStatus implements IFutureReservationStatus {

                    /**
                     * Constructs a new FutureReservationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationStatus);

                    /** FutureReservationStatus amendmentStatus. */
                    public amendmentStatus?: (string|null);

                    /** FutureReservationStatus autoCreatedReservations. */
                    public autoCreatedReservations: string[];

                    /** FutureReservationStatus existingMatchingUsageInfo. */
                    public existingMatchingUsageInfo?: (google.cloud.compute.v1.IFutureReservationStatusExistingMatchingUsageInfo|null);

                    /** FutureReservationStatus fulfilledCount. */
                    public fulfilledCount?: (number|Long|string|null);

                    /** FutureReservationStatus lastKnownGoodState. */
                    public lastKnownGoodState?: (google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodState|null);

                    /** FutureReservationStatus lockTime. */
                    public lockTime?: (string|null);

                    /** FutureReservationStatus procurementStatus. */
                    public procurementStatus?: (string|null);

                    /** FutureReservationStatus specificSkuProperties. */
                    public specificSkuProperties?: (google.cloud.compute.v1.IFutureReservationStatusSpecificSKUProperties|null);

                    /**
                     * Creates a new FutureReservationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationStatus): google.cloud.compute.v1.FutureReservationStatus;

                    /**
                     * Encodes the specified FutureReservationStatus message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatus.verify|verify} messages.
                     * @param message FutureReservationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatus.verify|verify} messages.
                     * @param message FutureReservationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationStatus;

                    /**
                     * Decodes a FutureReservationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationStatus;

                    /**
                     * Verifies a FutureReservationStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationStatus;

                    /**
                     * Creates a plain object from a FutureReservationStatus message. Also converts values to other types if specified.
                     * @param message FutureReservationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureReservationStatus {

                    /** AmendmentStatus enum. */
                    enum AmendmentStatus {
                        UNDEFINED_AMENDMENT_STATUS = 0,
                        AMENDMENT_APPROVED = 150573001,
                        AMENDMENT_DECLINED = 70395200,
                        AMENDMENT_IN_REVIEW = 25830624,
                        AMENDMENT_STATUS_UNSPECIFIED = 412250332
                    }

                    /** ProcurementStatus enum. */
                    enum ProcurementStatus {
                        UNDEFINED_PROCUREMENT_STATUS = 0,
                        APPROVED = 357258935,
                        CANCELLED = 41957681,
                        COMMITTED = 221710172,
                        DECLINED = 277081134,
                        DRAFTING = 477863585,
                        FAILED = 455706685,
                        FAILED_PARTIALLY_FULFILLED = 14455212,
                        FULFILLED = 409958655,
                        PENDING_AMENDMENT_APPROVAL = 510150429,
                        PENDING_APPROVAL = 209692683,
                        PROCUREMENT_STATUS_UNSPECIFIED = 45807705,
                        PROCURING = 95959663,
                        PROVISIONING = 290896621
                    }
                }

                /** Properties of a FutureReservationStatusExistingMatchingUsageInfo. */
                interface IFutureReservationStatusExistingMatchingUsageInfo {

                    /** FutureReservationStatusExistingMatchingUsageInfo count */
                    count?: (number|Long|string|null);

                    /** FutureReservationStatusExistingMatchingUsageInfo timestamp */
                    timestamp?: (string|null);
                }

                /** Represents a FutureReservationStatusExistingMatchingUsageInfo. */
                class FutureReservationStatusExistingMatchingUsageInfo implements IFutureReservationStatusExistingMatchingUsageInfo {

                    /**
                     * Constructs a new FutureReservationStatusExistingMatchingUsageInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationStatusExistingMatchingUsageInfo);

                    /** FutureReservationStatusExistingMatchingUsageInfo count. */
                    public count?: (number|Long|string|null);

                    /** FutureReservationStatusExistingMatchingUsageInfo timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new FutureReservationStatusExistingMatchingUsageInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatusExistingMatchingUsageInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationStatusExistingMatchingUsageInfo): google.cloud.compute.v1.FutureReservationStatusExistingMatchingUsageInfo;

                    /**
                     * Encodes the specified FutureReservationStatusExistingMatchingUsageInfo message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatusExistingMatchingUsageInfo.verify|verify} messages.
                     * @param message FutureReservationStatusExistingMatchingUsageInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationStatusExistingMatchingUsageInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatusExistingMatchingUsageInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatusExistingMatchingUsageInfo.verify|verify} messages.
                     * @param message FutureReservationStatusExistingMatchingUsageInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationStatusExistingMatchingUsageInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatusExistingMatchingUsageInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatusExistingMatchingUsageInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationStatusExistingMatchingUsageInfo;

                    /**
                     * Decodes a FutureReservationStatusExistingMatchingUsageInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatusExistingMatchingUsageInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationStatusExistingMatchingUsageInfo;

                    /**
                     * Verifies a FutureReservationStatusExistingMatchingUsageInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatusExistingMatchingUsageInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatusExistingMatchingUsageInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationStatusExistingMatchingUsageInfo;

                    /**
                     * Creates a plain object from a FutureReservationStatusExistingMatchingUsageInfo message. Also converts values to other types if specified.
                     * @param message FutureReservationStatusExistingMatchingUsageInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationStatusExistingMatchingUsageInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatusExistingMatchingUsageInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatusExistingMatchingUsageInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationStatusLastKnownGoodState. */
                interface IFutureReservationStatusLastKnownGoodState {

                    /** FutureReservationStatusLastKnownGoodState description */
                    description?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState existingMatchingUsageInfo */
                    existingMatchingUsageInfo?: (google.cloud.compute.v1.IFutureReservationStatusExistingMatchingUsageInfo|null);

                    /** FutureReservationStatusLastKnownGoodState futureReservationSpecs */
                    futureReservationSpecs?: (google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs|null);

                    /** FutureReservationStatusLastKnownGoodState lockTime */
                    lockTime?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState namePrefix */
                    namePrefix?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState procurementStatus */
                    procurementStatus?: (string|null);
                }

                /** Represents a FutureReservationStatusLastKnownGoodState. */
                class FutureReservationStatusLastKnownGoodState implements IFutureReservationStatusLastKnownGoodState {

                    /**
                     * Constructs a new FutureReservationStatusLastKnownGoodState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodState);

                    /** FutureReservationStatusLastKnownGoodState description. */
                    public description?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState existingMatchingUsageInfo. */
                    public existingMatchingUsageInfo?: (google.cloud.compute.v1.IFutureReservationStatusExistingMatchingUsageInfo|null);

                    /** FutureReservationStatusLastKnownGoodState futureReservationSpecs. */
                    public futureReservationSpecs?: (google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs|null);

                    /** FutureReservationStatusLastKnownGoodState lockTime. */
                    public lockTime?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState namePrefix. */
                    public namePrefix?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState procurementStatus. */
                    public procurementStatus?: (string|null);

                    /**
                     * Creates a new FutureReservationStatusLastKnownGoodState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatusLastKnownGoodState instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodState): google.cloud.compute.v1.FutureReservationStatusLastKnownGoodState;

                    /**
                     * Encodes the specified FutureReservationStatusLastKnownGoodState message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatusLastKnownGoodState.verify|verify} messages.
                     * @param message FutureReservationStatusLastKnownGoodState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatusLastKnownGoodState message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatusLastKnownGoodState.verify|verify} messages.
                     * @param message FutureReservationStatusLastKnownGoodState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatusLastKnownGoodState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatusLastKnownGoodState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationStatusLastKnownGoodState;

                    /**
                     * Decodes a FutureReservationStatusLastKnownGoodState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatusLastKnownGoodState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationStatusLastKnownGoodState;

                    /**
                     * Verifies a FutureReservationStatusLastKnownGoodState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatusLastKnownGoodState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatusLastKnownGoodState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationStatusLastKnownGoodState;

                    /**
                     * Creates a plain object from a FutureReservationStatusLastKnownGoodState message. Also converts values to other types if specified.
                     * @param message FutureReservationStatusLastKnownGoodState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationStatusLastKnownGoodState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatusLastKnownGoodState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatusLastKnownGoodState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureReservationStatusLastKnownGoodState {

                    /** ProcurementStatus enum. */
                    enum ProcurementStatus {
                        UNDEFINED_PROCUREMENT_STATUS = 0,
                        APPROVED = 357258935,
                        CANCELLED = 41957681,
                        COMMITTED = 221710172,
                        DECLINED = 277081134,
                        DRAFTING = 477863585,
                        FAILED = 455706685,
                        FAILED_PARTIALLY_FULFILLED = 14455212,
                        FULFILLED = 409958655,
                        PENDING_AMENDMENT_APPROVAL = 510150429,
                        PENDING_APPROVAL = 209692683,
                        PROCUREMENT_STATUS_UNSPECIFIED = 45807705,
                        PROCURING = 95959663,
                        PROVISIONING = 290896621
                    }
                }

                /** Properties of a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs. */
                interface IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs {

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs shareSettings */
                    shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs specificSkuProperties */
                    specificSkuProperties?: (google.cloud.compute.v1.IFutureReservationSpecificSKUProperties|null);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs timeWindow */
                    timeWindow?: (google.cloud.compute.v1.IFutureReservationTimeWindow|null);
                }

                /** Represents a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs. */
                class FutureReservationStatusLastKnownGoodStateFutureReservationSpecs implements IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs {

                    /**
                     * Constructs a new FutureReservationStatusLastKnownGoodStateFutureReservationSpecs.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs specificSkuProperties. */
                    public specificSkuProperties?: (google.cloud.compute.v1.IFutureReservationSpecificSKUProperties|null);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs timeWindow. */
                    public timeWindow?: (google.cloud.compute.v1.IFutureReservationTimeWindow|null);

                    /**
                     * Creates a new FutureReservationStatusLastKnownGoodStateFutureReservationSpecs instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatusLastKnownGoodStateFutureReservationSpecs instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs): google.cloud.compute.v1.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs;

                    /**
                     * Encodes the specified FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs.verify|verify} messages.
                     * @param message FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs.verify|verify} messages.
                     * @param message FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs;

                    /**
                     * Decodes a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs;

                    /**
                     * Verifies a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs;

                    /**
                     * Creates a plain object from a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message. Also converts values to other types if specified.
                     * @param message FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatusLastKnownGoodStateFutureReservationSpecs to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationStatusSpecificSKUProperties. */
                interface IFutureReservationStatusSpecificSKUProperties {

                    /** FutureReservationStatusSpecificSKUProperties sourceInstanceTemplateId */
                    sourceInstanceTemplateId?: (string|null);
                }

                /** Represents a FutureReservationStatusSpecificSKUProperties. */
                class FutureReservationStatusSpecificSKUProperties implements IFutureReservationStatusSpecificSKUProperties {

                    /**
                     * Constructs a new FutureReservationStatusSpecificSKUProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationStatusSpecificSKUProperties);

                    /** FutureReservationStatusSpecificSKUProperties sourceInstanceTemplateId. */
                    public sourceInstanceTemplateId?: (string|null);

                    /**
                     * Creates a new FutureReservationStatusSpecificSKUProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatusSpecificSKUProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationStatusSpecificSKUProperties): google.cloud.compute.v1.FutureReservationStatusSpecificSKUProperties;

                    /**
                     * Encodes the specified FutureReservationStatusSpecificSKUProperties message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatusSpecificSKUProperties.verify|verify} messages.
                     * @param message FutureReservationStatusSpecificSKUProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationStatusSpecificSKUProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatusSpecificSKUProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationStatusSpecificSKUProperties.verify|verify} messages.
                     * @param message FutureReservationStatusSpecificSKUProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationStatusSpecificSKUProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatusSpecificSKUProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatusSpecificSKUProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationStatusSpecificSKUProperties;

                    /**
                     * Decodes a FutureReservationStatusSpecificSKUProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatusSpecificSKUProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationStatusSpecificSKUProperties;

                    /**
                     * Verifies a FutureReservationStatusSpecificSKUProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatusSpecificSKUProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatusSpecificSKUProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationStatusSpecificSKUProperties;

                    /**
                     * Creates a plain object from a FutureReservationStatusSpecificSKUProperties message. Also converts values to other types if specified.
                     * @param message FutureReservationStatusSpecificSKUProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationStatusSpecificSKUProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatusSpecificSKUProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatusSpecificSKUProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationTimeWindow. */
                interface IFutureReservationTimeWindow {

                    /** FutureReservationTimeWindow duration */
                    duration?: (google.cloud.compute.v1.IDuration|null);

                    /** FutureReservationTimeWindow endTime */
                    endTime?: (string|null);

                    /** FutureReservationTimeWindow startTime */
                    startTime?: (string|null);
                }

                /** Represents a FutureReservationTimeWindow. */
                class FutureReservationTimeWindow implements IFutureReservationTimeWindow {

                    /**
                     * Constructs a new FutureReservationTimeWindow.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationTimeWindow);

                    /** FutureReservationTimeWindow duration. */
                    public duration?: (google.cloud.compute.v1.IDuration|null);

                    /** FutureReservationTimeWindow endTime. */
                    public endTime?: (string|null);

                    /** FutureReservationTimeWindow startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new FutureReservationTimeWindow instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationTimeWindow instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationTimeWindow): google.cloud.compute.v1.FutureReservationTimeWindow;

                    /**
                     * Encodes the specified FutureReservationTimeWindow message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationTimeWindow.verify|verify} messages.
                     * @param message FutureReservationTimeWindow message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationTimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationTimeWindow message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationTimeWindow.verify|verify} messages.
                     * @param message FutureReservationTimeWindow message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationTimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationTimeWindow message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationTimeWindow
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationTimeWindow;

                    /**
                     * Decodes a FutureReservationTimeWindow message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationTimeWindow
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationTimeWindow;

                    /**
                     * Verifies a FutureReservationTimeWindow message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationTimeWindow message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationTimeWindow
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationTimeWindow;

                    /**
                     * Creates a plain object from a FutureReservationTimeWindow message. Also converts values to other types if specified.
                     * @param message FutureReservationTimeWindow
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationTimeWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationTimeWindow to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationTimeWindow
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationsAggregatedListResponse. */
                interface IFutureReservationsAggregatedListResponse {

                    /** FutureReservationsAggregatedListResponse etag */
                    etag?: (string|null);

                    /** FutureReservationsAggregatedListResponse id */
                    id?: (string|null);

                    /** FutureReservationsAggregatedListResponse items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IFutureReservationsScopedList }|null);

                    /** FutureReservationsAggregatedListResponse kind */
                    kind?: (string|null);

                    /** FutureReservationsAggregatedListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** FutureReservationsAggregatedListResponse selfLink */
                    selfLink?: (string|null);

                    /** FutureReservationsAggregatedListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** FutureReservationsAggregatedListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a FutureReservationsAggregatedListResponse. */
                class FutureReservationsAggregatedListResponse implements IFutureReservationsAggregatedListResponse {

                    /**
                     * Constructs a new FutureReservationsAggregatedListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationsAggregatedListResponse);

                    /** FutureReservationsAggregatedListResponse etag. */
                    public etag?: (string|null);

                    /** FutureReservationsAggregatedListResponse id. */
                    public id?: (string|null);

                    /** FutureReservationsAggregatedListResponse items. */
                    public items: { [k: string]: google.cloud.compute.v1.IFutureReservationsScopedList };

                    /** FutureReservationsAggregatedListResponse kind. */
                    public kind?: (string|null);

                    /** FutureReservationsAggregatedListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** FutureReservationsAggregatedListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** FutureReservationsAggregatedListResponse unreachables. */
                    public unreachables: string[];

                    /** FutureReservationsAggregatedListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new FutureReservationsAggregatedListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationsAggregatedListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationsAggregatedListResponse): google.cloud.compute.v1.FutureReservationsAggregatedListResponse;

                    /**
                     * Encodes the specified FutureReservationsAggregatedListResponse message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationsAggregatedListResponse.verify|verify} messages.
                     * @param message FutureReservationsAggregatedListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationsAggregatedListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationsAggregatedListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationsAggregatedListResponse.verify|verify} messages.
                     * @param message FutureReservationsAggregatedListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationsAggregatedListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationsAggregatedListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationsAggregatedListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationsAggregatedListResponse;

                    /**
                     * Decodes a FutureReservationsAggregatedListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationsAggregatedListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationsAggregatedListResponse;

                    /**
                     * Verifies a FutureReservationsAggregatedListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationsAggregatedListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationsAggregatedListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationsAggregatedListResponse;

                    /**
                     * Creates a plain object from a FutureReservationsAggregatedListResponse message. Also converts values to other types if specified.
                     * @param message FutureReservationsAggregatedListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationsAggregatedListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationsAggregatedListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationsAggregatedListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationsListResponse. */
                interface IFutureReservationsListResponse {

                    /** FutureReservationsListResponse etag */
                    etag?: (string|null);

                    /** FutureReservationsListResponse id */
                    id?: (string|null);

                    /** FutureReservationsListResponse items */
                    items?: (google.cloud.compute.v1.IFutureReservation[]|null);

                    /** FutureReservationsListResponse kind */
                    kind?: (string|null);

                    /** FutureReservationsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** FutureReservationsListResponse selfLink */
                    selfLink?: (string|null);

                    /** FutureReservationsListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** FutureReservationsListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a FutureReservationsListResponse. */
                class FutureReservationsListResponse implements IFutureReservationsListResponse {

                    /**
                     * Constructs a new FutureReservationsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationsListResponse);

                    /** FutureReservationsListResponse etag. */
                    public etag?: (string|null);

                    /** FutureReservationsListResponse id. */
                    public id?: (string|null);

                    /** FutureReservationsListResponse items. */
                    public items: google.cloud.compute.v1.IFutureReservation[];

                    /** FutureReservationsListResponse kind. */
                    public kind?: (string|null);

                    /** FutureReservationsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** FutureReservationsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** FutureReservationsListResponse unreachables. */
                    public unreachables: string[];

                    /** FutureReservationsListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new FutureReservationsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationsListResponse): google.cloud.compute.v1.FutureReservationsListResponse;

                    /**
                     * Encodes the specified FutureReservationsListResponse message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationsListResponse.verify|verify} messages.
                     * @param message FutureReservationsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationsListResponse.verify|verify} messages.
                     * @param message FutureReservationsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationsListResponse;

                    /**
                     * Decodes a FutureReservationsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationsListResponse;

                    /**
                     * Verifies a FutureReservationsListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationsListResponse;

                    /**
                     * Creates a plain object from a FutureReservationsListResponse message. Also converts values to other types if specified.
                     * @param message FutureReservationsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationsScopedList. */
                interface IFutureReservationsScopedList {

                    /** FutureReservationsScopedList futureReservations */
                    futureReservations?: (google.cloud.compute.v1.IFutureReservation[]|null);

                    /** FutureReservationsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a FutureReservationsScopedList. */
                class FutureReservationsScopedList implements IFutureReservationsScopedList {

                    /**
                     * Constructs a new FutureReservationsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureReservationsScopedList);

                    /** FutureReservationsScopedList futureReservations. */
                    public futureReservations: google.cloud.compute.v1.IFutureReservation[];

                    /** FutureReservationsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new FutureReservationsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureReservationsScopedList): google.cloud.compute.v1.FutureReservationsScopedList;

                    /**
                     * Encodes the specified FutureReservationsScopedList message. Does not implicitly {@link google.cloud.compute.v1.FutureReservationsScopedList.verify|verify} messages.
                     * @param message FutureReservationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureReservationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureReservationsScopedList.verify|verify} messages.
                     * @param message FutureReservationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureReservationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureReservationsScopedList;

                    /**
                     * Decodes a FutureReservationsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureReservationsScopedList;

                    /**
                     * Verifies a FutureReservationsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureReservationsScopedList;

                    /**
                     * Creates a plain object from a FutureReservationsScopedList message. Also converts values to other types if specified.
                     * @param message FutureReservationsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureReservationsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureResourcesRecommendation. */
                interface IFutureResourcesRecommendation {

                    /** FutureResourcesRecommendation endTime */
                    endTime?: (string|null);

                    /** FutureResourcesRecommendation location */
                    location?: (string|null);

                    /** FutureResourcesRecommendation otherLocations */
                    otherLocations?: ({ [k: string]: google.cloud.compute.v1.IFutureResourcesRecommendationOtherLocation }|null);

                    /** FutureResourcesRecommendation recommendationId */
                    recommendationId?: (string|null);

                    /** FutureResourcesRecommendation recommendationType */
                    recommendationType?: (string|null);

                    /** FutureResourcesRecommendation startTime */
                    startTime?: (string|null);
                }

                /** Represents a FutureResourcesRecommendation. */
                class FutureResourcesRecommendation implements IFutureResourcesRecommendation {

                    /**
                     * Constructs a new FutureResourcesRecommendation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesRecommendation);

                    /** FutureResourcesRecommendation endTime. */
                    public endTime?: (string|null);

                    /** FutureResourcesRecommendation location. */
                    public location?: (string|null);

                    /** FutureResourcesRecommendation otherLocations. */
                    public otherLocations: { [k: string]: google.cloud.compute.v1.IFutureResourcesRecommendationOtherLocation };

                    /** FutureResourcesRecommendation recommendationId. */
                    public recommendationId?: (string|null);

                    /** FutureResourcesRecommendation recommendationType. */
                    public recommendationType?: (string|null);

                    /** FutureResourcesRecommendation startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new FutureResourcesRecommendation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesRecommendation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesRecommendation): google.cloud.compute.v1.FutureResourcesRecommendation;

                    /**
                     * Encodes the specified FutureResourcesRecommendation message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesRecommendation.verify|verify} messages.
                     * @param message FutureResourcesRecommendation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesRecommendation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesRecommendation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesRecommendation.verify|verify} messages.
                     * @param message FutureResourcesRecommendation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesRecommendation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesRecommendation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesRecommendation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesRecommendation;

                    /**
                     * Decodes a FutureResourcesRecommendation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesRecommendation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesRecommendation;

                    /**
                     * Verifies a FutureResourcesRecommendation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesRecommendation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesRecommendation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesRecommendation;

                    /**
                     * Creates a plain object from a FutureResourcesRecommendation message. Also converts values to other types if specified.
                     * @param message FutureResourcesRecommendation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesRecommendation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesRecommendation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesRecommendation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesRecommendation {

                    /** RecommendationType enum. */
                    enum RecommendationType {
                        UNDEFINED_RECOMMENDATION_TYPE = 0,
                        FUTURE_RESERVATION = 41036592,
                        RECOMMENDATION_TYPE_UNSPECIFIED = 140641624
                    }
                }

                /** Properties of a FutureResourcesRecommendationOtherLocation. */
                interface IFutureResourcesRecommendationOtherLocation {

                    /** FutureResourcesRecommendationOtherLocation details */
                    details?: (string|null);

                    /** FutureResourcesRecommendationOtherLocation status */
                    status?: (string|null);
                }

                /** Represents a FutureResourcesRecommendationOtherLocation. */
                class FutureResourcesRecommendationOtherLocation implements IFutureResourcesRecommendationOtherLocation {

                    /**
                     * Constructs a new FutureResourcesRecommendationOtherLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesRecommendationOtherLocation);

                    /** FutureResourcesRecommendationOtherLocation details. */
                    public details?: (string|null);

                    /** FutureResourcesRecommendationOtherLocation status. */
                    public status?: (string|null);

                    /**
                     * Creates a new FutureResourcesRecommendationOtherLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesRecommendationOtherLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesRecommendationOtherLocation): google.cloud.compute.v1.FutureResourcesRecommendationOtherLocation;

                    /**
                     * Encodes the specified FutureResourcesRecommendationOtherLocation message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesRecommendationOtherLocation.verify|verify} messages.
                     * @param message FutureResourcesRecommendationOtherLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesRecommendationOtherLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesRecommendationOtherLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesRecommendationOtherLocation.verify|verify} messages.
                     * @param message FutureResourcesRecommendationOtherLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesRecommendationOtherLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesRecommendationOtherLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesRecommendationOtherLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesRecommendationOtherLocation;

                    /**
                     * Decodes a FutureResourcesRecommendationOtherLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesRecommendationOtherLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesRecommendationOtherLocation;

                    /**
                     * Verifies a FutureResourcesRecommendationOtherLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesRecommendationOtherLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesRecommendationOtherLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesRecommendationOtherLocation;

                    /**
                     * Creates a plain object from a FutureResourcesRecommendationOtherLocation message. Also converts values to other types if specified.
                     * @param message FutureResourcesRecommendationOtherLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesRecommendationOtherLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesRecommendationOtherLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesRecommendationOtherLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesRecommendationOtherLocation {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CONDITIONS_NOT_MET = 363628457,
                        NOT_SUPPORTED = 317950466,
                        NO_CAPACITY = 274240888,
                        OTHER_LOCATION_STATUS_UNDEFINED = 222662622,
                        RECOMMENDED = 369652283
                    }
                }

                /** Properties of a FutureResourcesSpec. */
                interface IFutureResourcesSpec {

                    /** FutureResourcesSpec deploymentType */
                    deploymentType?: (string|null);

                    /** FutureResourcesSpec locationPolicy */
                    locationPolicy?: (google.cloud.compute.v1.IFutureResourcesSpecLocationPolicy|null);

                    /** FutureResourcesSpec targetResources */
                    targetResources?: (google.cloud.compute.v1.IFutureResourcesSpecTargetResources|null);

                    /** FutureResourcesSpec timeRangeSpec */
                    timeRangeSpec?: (google.cloud.compute.v1.IFlexibleTimeRange|null);
                }

                /** Represents a FutureResourcesSpec. */
                class FutureResourcesSpec implements IFutureResourcesSpec {

                    /**
                     * Constructs a new FutureResourcesSpec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesSpec);

                    /** FutureResourcesSpec deploymentType. */
                    public deploymentType?: (string|null);

                    /** FutureResourcesSpec locationPolicy. */
                    public locationPolicy?: (google.cloud.compute.v1.IFutureResourcesSpecLocationPolicy|null);

                    /** FutureResourcesSpec targetResources. */
                    public targetResources?: (google.cloud.compute.v1.IFutureResourcesSpecTargetResources|null);

                    /** FutureResourcesSpec timeRangeSpec. */
                    public timeRangeSpec?: (google.cloud.compute.v1.IFlexibleTimeRange|null);

                    /**
                     * Creates a new FutureResourcesSpec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpec instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesSpec): google.cloud.compute.v1.FutureResourcesSpec;

                    /**
                     * Encodes the specified FutureResourcesSpec message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpec.verify|verify} messages.
                     * @param message FutureResourcesSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpec message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpec.verify|verify} messages.
                     * @param message FutureResourcesSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpec
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesSpec;

                    /**
                     * Decodes a FutureResourcesSpec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpec
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesSpec;

                    /**
                     * Verifies a FutureResourcesSpec message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesSpec;

                    /**
                     * Creates a plain object from a FutureResourcesSpec message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpec
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpec to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpec
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesSpec {

                    /** DeploymentType enum. */
                    enum DeploymentType {
                        UNDEFINED_DEPLOYMENT_TYPE = 0,
                        DENSE = 64932607,
                        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180
                    }
                }

                /** Properties of a FutureResourcesSpecAggregateResources. */
                interface IFutureResourcesSpecAggregateResources {

                    /** FutureResourcesSpecAggregateResources acceleratorCount */
                    acceleratorCount?: (number|Long|string|null);

                    /** FutureResourcesSpecAggregateResources vmFamily */
                    vmFamily?: (string|null);

                    /** FutureResourcesSpecAggregateResources workloadType */
                    workloadType?: (string|null);
                }

                /** Represents a FutureResourcesSpecAggregateResources. */
                class FutureResourcesSpecAggregateResources implements IFutureResourcesSpecAggregateResources {

                    /**
                     * Constructs a new FutureResourcesSpecAggregateResources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesSpecAggregateResources);

                    /** FutureResourcesSpecAggregateResources acceleratorCount. */
                    public acceleratorCount?: (number|Long|string|null);

                    /** FutureResourcesSpecAggregateResources vmFamily. */
                    public vmFamily?: (string|null);

                    /** FutureResourcesSpecAggregateResources workloadType. */
                    public workloadType?: (string|null);

                    /**
                     * Creates a new FutureResourcesSpecAggregateResources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecAggregateResources instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesSpecAggregateResources): google.cloud.compute.v1.FutureResourcesSpecAggregateResources;

                    /**
                     * Encodes the specified FutureResourcesSpecAggregateResources message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecAggregateResources.verify|verify} messages.
                     * @param message FutureResourcesSpecAggregateResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesSpecAggregateResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecAggregateResources message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecAggregateResources.verify|verify} messages.
                     * @param message FutureResourcesSpecAggregateResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesSpecAggregateResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecAggregateResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecAggregateResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesSpecAggregateResources;

                    /**
                     * Decodes a FutureResourcesSpecAggregateResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecAggregateResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesSpecAggregateResources;

                    /**
                     * Verifies a FutureResourcesSpecAggregateResources message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecAggregateResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecAggregateResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesSpecAggregateResources;

                    /**
                     * Creates a plain object from a FutureResourcesSpecAggregateResources message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecAggregateResources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesSpecAggregateResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecAggregateResources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecAggregateResources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesSpecAggregateResources {

                    /** VmFamily enum. */
                    enum VmFamily {
                        UNDEFINED_VM_FAMILY = 0,
                        VM_FAMILY_CLOUD_TPU_DEVICE_CT3 = 42845948,
                        VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L = 108020067,
                        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP = 18705267,
                        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E = 398926997,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P = 517384376,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P = 517384407,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P = 517384438,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X = 485271888
                    }

                    /** WorkloadType enum. */
                    enum WorkloadType {
                        UNDEFINED_WORKLOAD_TYPE = 0,
                        BATCH = 62971674,
                        SERVING = 17781740,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a FutureResourcesSpecLocalSsdPartition. */
                interface IFutureResourcesSpecLocalSsdPartition {

                    /** FutureResourcesSpecLocalSsdPartition diskInterface */
                    diskInterface?: (string|null);

                    /** FutureResourcesSpecLocalSsdPartition diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);
                }

                /** Represents a FutureResourcesSpecLocalSsdPartition. */
                class FutureResourcesSpecLocalSsdPartition implements IFutureResourcesSpecLocalSsdPartition {

                    /**
                     * Constructs a new FutureResourcesSpecLocalSsdPartition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesSpecLocalSsdPartition);

                    /** FutureResourcesSpecLocalSsdPartition diskInterface. */
                    public diskInterface?: (string|null);

                    /** FutureResourcesSpecLocalSsdPartition diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /**
                     * Creates a new FutureResourcesSpecLocalSsdPartition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecLocalSsdPartition instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesSpecLocalSsdPartition): google.cloud.compute.v1.FutureResourcesSpecLocalSsdPartition;

                    /**
                     * Encodes the specified FutureResourcesSpecLocalSsdPartition message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecLocalSsdPartition.verify|verify} messages.
                     * @param message FutureResourcesSpecLocalSsdPartition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesSpecLocalSsdPartition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecLocalSsdPartition message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecLocalSsdPartition.verify|verify} messages.
                     * @param message FutureResourcesSpecLocalSsdPartition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesSpecLocalSsdPartition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecLocalSsdPartition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecLocalSsdPartition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesSpecLocalSsdPartition;

                    /**
                     * Decodes a FutureResourcesSpecLocalSsdPartition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecLocalSsdPartition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesSpecLocalSsdPartition;

                    /**
                     * Verifies a FutureResourcesSpecLocalSsdPartition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecLocalSsdPartition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecLocalSsdPartition
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesSpecLocalSsdPartition;

                    /**
                     * Creates a plain object from a FutureResourcesSpecLocalSsdPartition message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecLocalSsdPartition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesSpecLocalSsdPartition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecLocalSsdPartition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecLocalSsdPartition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesSpecLocalSsdPartition {

                    /** DiskInterface enum. */
                    enum DiskInterface {
                        UNDEFINED_DISK_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686
                    }
                }

                /** Properties of a FutureResourcesSpecLocationPolicy. */
                interface IFutureResourcesSpecLocationPolicy {

                    /** FutureResourcesSpecLocationPolicy locations */
                    locations?: ({ [k: string]: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicyLocation }|null);
                }

                /** Represents a FutureResourcesSpecLocationPolicy. */
                class FutureResourcesSpecLocationPolicy implements IFutureResourcesSpecLocationPolicy {

                    /**
                     * Constructs a new FutureResourcesSpecLocationPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicy);

                    /** FutureResourcesSpecLocationPolicy locations. */
                    public locations: { [k: string]: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicyLocation };

                    /**
                     * Creates a new FutureResourcesSpecLocationPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecLocationPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicy): google.cloud.compute.v1.FutureResourcesSpecLocationPolicy;

                    /**
                     * Encodes the specified FutureResourcesSpecLocationPolicy message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecLocationPolicy.verify|verify} messages.
                     * @param message FutureResourcesSpecLocationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecLocationPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecLocationPolicy.verify|verify} messages.
                     * @param message FutureResourcesSpecLocationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecLocationPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecLocationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesSpecLocationPolicy;

                    /**
                     * Decodes a FutureResourcesSpecLocationPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecLocationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesSpecLocationPolicy;

                    /**
                     * Verifies a FutureResourcesSpecLocationPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecLocationPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecLocationPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesSpecLocationPolicy;

                    /**
                     * Creates a plain object from a FutureResourcesSpecLocationPolicy message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecLocationPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesSpecLocationPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecLocationPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecLocationPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureResourcesSpecLocationPolicyLocation. */
                interface IFutureResourcesSpecLocationPolicyLocation {

                    /** FutureResourcesSpecLocationPolicyLocation preference */
                    preference?: (string|null);
                }

                /** Represents a FutureResourcesSpecLocationPolicyLocation. */
                class FutureResourcesSpecLocationPolicyLocation implements IFutureResourcesSpecLocationPolicyLocation {

                    /**
                     * Constructs a new FutureResourcesSpecLocationPolicyLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicyLocation);

                    /** FutureResourcesSpecLocationPolicyLocation preference. */
                    public preference?: (string|null);

                    /**
                     * Creates a new FutureResourcesSpecLocationPolicyLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecLocationPolicyLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicyLocation): google.cloud.compute.v1.FutureResourcesSpecLocationPolicyLocation;

                    /**
                     * Encodes the specified FutureResourcesSpecLocationPolicyLocation message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecLocationPolicyLocation.verify|verify} messages.
                     * @param message FutureResourcesSpecLocationPolicyLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicyLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecLocationPolicyLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecLocationPolicyLocation.verify|verify} messages.
                     * @param message FutureResourcesSpecLocationPolicyLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesSpecLocationPolicyLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecLocationPolicyLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecLocationPolicyLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesSpecLocationPolicyLocation;

                    /**
                     * Decodes a FutureResourcesSpecLocationPolicyLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecLocationPolicyLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesSpecLocationPolicyLocation;

                    /**
                     * Verifies a FutureResourcesSpecLocationPolicyLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecLocationPolicyLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecLocationPolicyLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesSpecLocationPolicyLocation;

                    /**
                     * Creates a plain object from a FutureResourcesSpecLocationPolicyLocation message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecLocationPolicyLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesSpecLocationPolicyLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecLocationPolicyLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecLocationPolicyLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesSpecLocationPolicyLocation {

                    /** Preference enum. */
                    enum Preference {
                        UNDEFINED_PREFERENCE = 0,
                        ALLOW = 62368553,
                        DENY = 2094604,
                        PREFERENCE_UNSPECIFIED = 496219571
                    }
                }

                /** Properties of a FutureResourcesSpecSpecificSKUResources. */
                interface IFutureResourcesSpecSpecificSKUResources {

                    /** FutureResourcesSpecSpecificSKUResources instanceCount */
                    instanceCount?: (number|Long|string|null);

                    /** FutureResourcesSpecSpecificSKUResources localSsdPartitions */
                    localSsdPartitions?: (google.cloud.compute.v1.IFutureResourcesSpecLocalSsdPartition[]|null);

                    /** FutureResourcesSpecSpecificSKUResources machineType */
                    machineType?: (string|null);
                }

                /** Represents a FutureResourcesSpecSpecificSKUResources. */
                class FutureResourcesSpecSpecificSKUResources implements IFutureResourcesSpecSpecificSKUResources {

                    /**
                     * Constructs a new FutureResourcesSpecSpecificSKUResources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesSpecSpecificSKUResources);

                    /** FutureResourcesSpecSpecificSKUResources instanceCount. */
                    public instanceCount?: (number|Long|string|null);

                    /** FutureResourcesSpecSpecificSKUResources localSsdPartitions. */
                    public localSsdPartitions: google.cloud.compute.v1.IFutureResourcesSpecLocalSsdPartition[];

                    /** FutureResourcesSpecSpecificSKUResources machineType. */
                    public machineType?: (string|null);

                    /**
                     * Creates a new FutureResourcesSpecSpecificSKUResources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecSpecificSKUResources instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesSpecSpecificSKUResources): google.cloud.compute.v1.FutureResourcesSpecSpecificSKUResources;

                    /**
                     * Encodes the specified FutureResourcesSpecSpecificSKUResources message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecSpecificSKUResources.verify|verify} messages.
                     * @param message FutureResourcesSpecSpecificSKUResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesSpecSpecificSKUResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecSpecificSKUResources message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecSpecificSKUResources.verify|verify} messages.
                     * @param message FutureResourcesSpecSpecificSKUResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesSpecSpecificSKUResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecSpecificSKUResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecSpecificSKUResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesSpecSpecificSKUResources;

                    /**
                     * Decodes a FutureResourcesSpecSpecificSKUResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecSpecificSKUResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesSpecSpecificSKUResources;

                    /**
                     * Verifies a FutureResourcesSpecSpecificSKUResources message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecSpecificSKUResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecSpecificSKUResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesSpecSpecificSKUResources;

                    /**
                     * Creates a plain object from a FutureResourcesSpecSpecificSKUResources message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecSpecificSKUResources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesSpecSpecificSKUResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecSpecificSKUResources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecSpecificSKUResources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureResourcesSpecTargetResources. */
                interface IFutureResourcesSpecTargetResources {

                    /** FutureResourcesSpecTargetResources aggregateResources */
                    aggregateResources?: (google.cloud.compute.v1.IFutureResourcesSpecAggregateResources|null);

                    /** FutureResourcesSpecTargetResources specificSkuResources */
                    specificSkuResources?: (google.cloud.compute.v1.IFutureResourcesSpecSpecificSKUResources|null);
                }

                /** Represents a FutureResourcesSpecTargetResources. */
                class FutureResourcesSpecTargetResources implements IFutureResourcesSpecTargetResources {

                    /**
                     * Constructs a new FutureResourcesSpecTargetResources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IFutureResourcesSpecTargetResources);

                    /** FutureResourcesSpecTargetResources aggregateResources. */
                    public aggregateResources?: (google.cloud.compute.v1.IFutureResourcesSpecAggregateResources|null);

                    /** FutureResourcesSpecTargetResources specificSkuResources. */
                    public specificSkuResources?: (google.cloud.compute.v1.IFutureResourcesSpecSpecificSKUResources|null);

                    /**
                     * Creates a new FutureResourcesSpecTargetResources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecTargetResources instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IFutureResourcesSpecTargetResources): google.cloud.compute.v1.FutureResourcesSpecTargetResources;

                    /**
                     * Encodes the specified FutureResourcesSpecTargetResources message. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecTargetResources.verify|verify} messages.
                     * @param message FutureResourcesSpecTargetResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IFutureResourcesSpecTargetResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecTargetResources message, length delimited. Does not implicitly {@link google.cloud.compute.v1.FutureResourcesSpecTargetResources.verify|verify} messages.
                     * @param message FutureResourcesSpecTargetResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IFutureResourcesSpecTargetResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecTargetResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecTargetResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.FutureResourcesSpecTargetResources;

                    /**
                     * Decodes a FutureResourcesSpecTargetResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecTargetResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.FutureResourcesSpecTargetResources;

                    /**
                     * Verifies a FutureResourcesSpecTargetResources message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecTargetResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecTargetResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.FutureResourcesSpecTargetResources;

                    /**
                     * Creates a plain object from a FutureResourcesSpecTargetResources message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecTargetResources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.FutureResourcesSpecTargetResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecTargetResources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecTargetResources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GRPCHealthCheck. */
                interface IGRPCHealthCheck {

                    /** GRPCHealthCheck grpcServiceName */
                    grpcServiceName?: (string|null);

                    /** GRPCHealthCheck port */
                    port?: (number|null);

                    /** GRPCHealthCheck portName */
                    portName?: (string|null);

                    /** GRPCHealthCheck portSpecification */
                    portSpecification?: (string|null);
                }

                /** Represents a GRPCHealthCheck. */
                class GRPCHealthCheck implements IGRPCHealthCheck {

                    /**
                     * Constructs a new GRPCHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGRPCHealthCheck);

                    /** GRPCHealthCheck grpcServiceName. */
                    public grpcServiceName?: (string|null);

                    /** GRPCHealthCheck port. */
                    public port?: (number|null);

                    /** GRPCHealthCheck portName. */
                    public portName?: (string|null);

                    /** GRPCHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /**
                     * Creates a new GRPCHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GRPCHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGRPCHealthCheck): google.cloud.compute.v1.GRPCHealthCheck;

                    /**
                     * Encodes the specified GRPCHealthCheck message. Does not implicitly {@link google.cloud.compute.v1.GRPCHealthCheck.verify|verify} messages.
                     * @param message GRPCHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGRPCHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GRPCHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GRPCHealthCheck.verify|verify} messages.
                     * @param message GRPCHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGRPCHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GRPCHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GRPCHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GRPCHealthCheck;

                    /**
                     * Decodes a GRPCHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GRPCHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GRPCHealthCheck;

                    /**
                     * Verifies a GRPCHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GRPCHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GRPCHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GRPCHealthCheck;

                    /**
                     * Creates a plain object from a GRPCHealthCheck message. Also converts values to other types if specified.
                     * @param message GRPCHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GRPCHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GRPCHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GRPCHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GRPCHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }
                }

                /** Properties of a GRPCTLSHealthCheck. */
                interface IGRPCTLSHealthCheck {

                    /** GRPCTLSHealthCheck grpcServiceName */
                    grpcServiceName?: (string|null);

                    /** GRPCTLSHealthCheck port */
                    port?: (number|null);

                    /** GRPCTLSHealthCheck portSpecification */
                    portSpecification?: (string|null);
                }

                /** Represents a GRPCTLSHealthCheck. */
                class GRPCTLSHealthCheck implements IGRPCTLSHealthCheck {

                    /**
                     * Constructs a new GRPCTLSHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGRPCTLSHealthCheck);

                    /** GRPCTLSHealthCheck grpcServiceName. */
                    public grpcServiceName?: (string|null);

                    /** GRPCTLSHealthCheck port. */
                    public port?: (number|null);

                    /** GRPCTLSHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /**
                     * Creates a new GRPCTLSHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GRPCTLSHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGRPCTLSHealthCheck): google.cloud.compute.v1.GRPCTLSHealthCheck;

                    /**
                     * Encodes the specified GRPCTLSHealthCheck message. Does not implicitly {@link google.cloud.compute.v1.GRPCTLSHealthCheck.verify|verify} messages.
                     * @param message GRPCTLSHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGRPCTLSHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GRPCTLSHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GRPCTLSHealthCheck.verify|verify} messages.
                     * @param message GRPCTLSHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGRPCTLSHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GRPCTLSHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GRPCTLSHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GRPCTLSHealthCheck;

                    /**
                     * Decodes a GRPCTLSHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GRPCTLSHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GRPCTLSHealthCheck;

                    /**
                     * Verifies a GRPCTLSHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GRPCTLSHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GRPCTLSHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GRPCTLSHealthCheck;

                    /**
                     * Creates a plain object from a GRPCTLSHealthCheck message. Also converts values to other types if specified.
                     * @param message GRPCTLSHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GRPCTLSHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GRPCTLSHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GRPCTLSHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GRPCTLSHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }
                }

                /** Properties of a GetAcceleratorTypeRequest. */
                interface IGetAcceleratorTypeRequest {

                    /** GetAcceleratorTypeRequest acceleratorType */
                    acceleratorType?: (string|null);

                    /** GetAcceleratorTypeRequest project */
                    project?: (string|null);

                    /** GetAcceleratorTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetAcceleratorTypeRequest. */
                class GetAcceleratorTypeRequest implements IGetAcceleratorTypeRequest {

                    /**
                     * Constructs a new GetAcceleratorTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetAcceleratorTypeRequest);

                    /** GetAcceleratorTypeRequest acceleratorType. */
                    public acceleratorType: string;

                    /** GetAcceleratorTypeRequest project. */
                    public project: string;

                    /** GetAcceleratorTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetAcceleratorTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAcceleratorTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetAcceleratorTypeRequest): google.cloud.compute.v1.GetAcceleratorTypeRequest;

                    /**
                     * Encodes the specified GetAcceleratorTypeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetAcceleratorTypeRequest.verify|verify} messages.
                     * @param message GetAcceleratorTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetAcceleratorTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAcceleratorTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetAcceleratorTypeRequest.verify|verify} messages.
                     * @param message GetAcceleratorTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetAcceleratorTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAcceleratorTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAcceleratorTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetAcceleratorTypeRequest;

                    /**
                     * Decodes a GetAcceleratorTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAcceleratorTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetAcceleratorTypeRequest;

                    /**
                     * Verifies a GetAcceleratorTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAcceleratorTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAcceleratorTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetAcceleratorTypeRequest;

                    /**
                     * Creates a plain object from a GetAcceleratorTypeRequest message. Also converts values to other types if specified.
                     * @param message GetAcceleratorTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetAcceleratorTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAcceleratorTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAcceleratorTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAddressRequest. */
                interface IGetAddressRequest {

                    /** GetAddressRequest address */
                    address?: (string|null);

                    /** GetAddressRequest project */
                    project?: (string|null);

                    /** GetAddressRequest region */
                    region?: (string|null);
                }

                /** Represents a GetAddressRequest. */
                class GetAddressRequest implements IGetAddressRequest {

                    /**
                     * Constructs a new GetAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetAddressRequest);

                    /** GetAddressRequest address. */
                    public address: string;

                    /** GetAddressRequest project. */
                    public project: string;

                    /** GetAddressRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetAddressRequest): google.cloud.compute.v1.GetAddressRequest;

                    /**
                     * Encodes the specified GetAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.GetAddressRequest.verify|verify} messages.
                     * @param message GetAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetAddressRequest.verify|verify} messages.
                     * @param message GetAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetAddressRequest;

                    /**
                     * Decodes a GetAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetAddressRequest;

                    /**
                     * Verifies a GetAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetAddressRequest;

                    /**
                     * Creates a plain object from a GetAddressRequest message. Also converts values to other types if specified.
                     * @param message GetAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationFirewallPolicyRequest. */
                interface IGetAssociationFirewallPolicyRequest {

                    /** GetAssociationFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetAssociationFirewallPolicyRequest name */
                    name?: (string|null);
                }

                /** Represents a GetAssociationFirewallPolicyRequest. */
                class GetAssociationFirewallPolicyRequest implements IGetAssociationFirewallPolicyRequest {

                    /**
                     * Constructs a new GetAssociationFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetAssociationFirewallPolicyRequest);

                    /** GetAssociationFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetAssociationFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new GetAssociationFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetAssociationFirewallPolicyRequest): google.cloud.compute.v1.GetAssociationFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetAssociationFirewallPolicyRequest;

                    /**
                     * Decodes a GetAssociationFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetAssociationFirewallPolicyRequest;

                    /**
                     * Verifies a GetAssociationFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetAssociationFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetAssociationFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationNetworkFirewallPolicyRequest. */
                interface IGetAssociationNetworkFirewallPolicyRequest {

                    /** GetAssociationNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetAssociationNetworkFirewallPolicyRequest name */
                    name?: (string|null);

                    /** GetAssociationNetworkFirewallPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetAssociationNetworkFirewallPolicyRequest. */
                class GetAssociationNetworkFirewallPolicyRequest implements IGetAssociationNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetAssociationNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetAssociationNetworkFirewallPolicyRequest);

                    /** GetAssociationNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetAssociationNetworkFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** GetAssociationNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetAssociationNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetAssociationNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetAssociationNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetAssociationNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationOrganizationSecurityPolicyRequest. */
                interface IGetAssociationOrganizationSecurityPolicyRequest {

                    /** GetAssociationOrganizationSecurityPolicyRequest name */
                    name?: (string|null);

                    /** GetAssociationOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetAssociationOrganizationSecurityPolicyRequest. */
                class GetAssociationOrganizationSecurityPolicyRequest implements IGetAssociationOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new GetAssociationOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetAssociationOrganizationSecurityPolicyRequest);

                    /** GetAssociationOrganizationSecurityPolicyRequest name. */
                    public name?: (string|null);

                    /** GetAssociationOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetAssociationOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetAssociationOrganizationSecurityPolicyRequest): google.cloud.compute.v1.GetAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a GetAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a GetAssociationOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetAssociationOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationRegionNetworkFirewallPolicyRequest. */
                interface IGetAssociationRegionNetworkFirewallPolicyRequest {

                    /** GetAssociationRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest name */
                    name?: (string|null);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetAssociationRegionNetworkFirewallPolicyRequest. */
                class GetAssociationRegionNetworkFirewallPolicyRequest implements IGetAssociationRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetAssociationRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetAssociationRegionNetworkFirewallPolicyRequest);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetAssociationRegionNetworkFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetAssociationRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetAssociationRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetAssociationRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetAssociationRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAutoscalerRequest. */
                interface IGetAutoscalerRequest {

                    /** GetAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** GetAutoscalerRequest project */
                    project?: (string|null);

                    /** GetAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetAutoscalerRequest. */
                class GetAutoscalerRequest implements IGetAutoscalerRequest {

                    /**
                     * Constructs a new GetAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetAutoscalerRequest);

                    /** GetAutoscalerRequest autoscaler. */
                    public autoscaler: string;

                    /** GetAutoscalerRequest project. */
                    public project: string;

                    /** GetAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetAutoscalerRequest): google.cloud.compute.v1.GetAutoscalerRequest;

                    /**
                     * Encodes the specified GetAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.GetAutoscalerRequest.verify|verify} messages.
                     * @param message GetAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetAutoscalerRequest.verify|verify} messages.
                     * @param message GetAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetAutoscalerRequest;

                    /**
                     * Decodes a GetAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetAutoscalerRequest;

                    /**
                     * Verifies a GetAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetAutoscalerRequest;

                    /**
                     * Creates a plain object from a GetAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message GetAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetBackendBucketRequest. */
                interface IGetBackendBucketRequest {

                    /** GetBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** GetBackendBucketRequest project */
                    project?: (string|null);
                }

                /** Represents a GetBackendBucketRequest. */
                class GetBackendBucketRequest implements IGetBackendBucketRequest {

                    /**
                     * Constructs a new GetBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetBackendBucketRequest);

                    /** GetBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** GetBackendBucketRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetBackendBucketRequest): google.cloud.compute.v1.GetBackendBucketRequest;

                    /**
                     * Encodes the specified GetBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.GetBackendBucketRequest.verify|verify} messages.
                     * @param message GetBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetBackendBucketRequest.verify|verify} messages.
                     * @param message GetBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetBackendBucketRequest;

                    /**
                     * Decodes a GetBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetBackendBucketRequest;

                    /**
                     * Verifies a GetBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetBackendBucketRequest;

                    /**
                     * Creates a plain object from a GetBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message GetBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetBackendServiceRequest. */
                interface IGetBackendServiceRequest {

                    /** GetBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetBackendServiceRequest project */
                    project?: (string|null);
                }

                /** Represents a GetBackendServiceRequest. */
                class GetBackendServiceRequest implements IGetBackendServiceRequest {

                    /**
                     * Constructs a new GetBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetBackendServiceRequest);

                    /** GetBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetBackendServiceRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetBackendServiceRequest): google.cloud.compute.v1.GetBackendServiceRequest;

                    /**
                     * Encodes the specified GetBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetBackendServiceRequest.verify|verify} messages.
                     * @param message GetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetBackendServiceRequest.verify|verify} messages.
                     * @param message GetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetBackendServiceRequest;

                    /**
                     * Decodes a GetBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetBackendServiceRequest;

                    /**
                     * Verifies a GetBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetCrossSiteNetworkRequest. */
                interface IGetCrossSiteNetworkRequest {

                    /** GetCrossSiteNetworkRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** GetCrossSiteNetworkRequest project */
                    project?: (string|null);
                }

                /** Represents a GetCrossSiteNetworkRequest. */
                class GetCrossSiteNetworkRequest implements IGetCrossSiteNetworkRequest {

                    /**
                     * Constructs a new GetCrossSiteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetCrossSiteNetworkRequest);

                    /** GetCrossSiteNetworkRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** GetCrossSiteNetworkRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetCrossSiteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetCrossSiteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetCrossSiteNetworkRequest): google.cloud.compute.v1.GetCrossSiteNetworkRequest;

                    /**
                     * Encodes the specified GetCrossSiteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.GetCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message GetCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetCrossSiteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message GetCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetCrossSiteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetCrossSiteNetworkRequest;

                    /**
                     * Decodes a GetCrossSiteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetCrossSiteNetworkRequest;

                    /**
                     * Verifies a GetCrossSiteNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetCrossSiteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetCrossSiteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetCrossSiteNetworkRequest;

                    /**
                     * Creates a plain object from a GetCrossSiteNetworkRequest message. Also converts values to other types if specified.
                     * @param message GetCrossSiteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetCrossSiteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetCrossSiteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetCrossSiteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetDiagnosticsInterconnectRequest. */
                interface IGetDiagnosticsInterconnectRequest {

                    /** GetDiagnosticsInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** GetDiagnosticsInterconnectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetDiagnosticsInterconnectRequest. */
                class GetDiagnosticsInterconnectRequest implements IGetDiagnosticsInterconnectRequest {

                    /**
                     * Constructs a new GetDiagnosticsInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetDiagnosticsInterconnectRequest);

                    /** GetDiagnosticsInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** GetDiagnosticsInterconnectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetDiagnosticsInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDiagnosticsInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetDiagnosticsInterconnectRequest): google.cloud.compute.v1.GetDiagnosticsInterconnectRequest;

                    /**
                     * Encodes the specified GetDiagnosticsInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1.GetDiagnosticsInterconnectRequest.verify|verify} messages.
                     * @param message GetDiagnosticsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetDiagnosticsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDiagnosticsInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetDiagnosticsInterconnectRequest.verify|verify} messages.
                     * @param message GetDiagnosticsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetDiagnosticsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDiagnosticsInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDiagnosticsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetDiagnosticsInterconnectRequest;

                    /**
                     * Decodes a GetDiagnosticsInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDiagnosticsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetDiagnosticsInterconnectRequest;

                    /**
                     * Verifies a GetDiagnosticsInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDiagnosticsInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDiagnosticsInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetDiagnosticsInterconnectRequest;

                    /**
                     * Creates a plain object from a GetDiagnosticsInterconnectRequest message. Also converts values to other types if specified.
                     * @param message GetDiagnosticsInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetDiagnosticsInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDiagnosticsInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDiagnosticsInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetDiskRequest. */
                interface IGetDiskRequest {

                    /** GetDiskRequest disk */
                    disk?: (string|null);

                    /** GetDiskRequest project */
                    project?: (string|null);

                    /** GetDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetDiskRequest. */
                class GetDiskRequest implements IGetDiskRequest {

                    /**
                     * Constructs a new GetDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetDiskRequest);

                    /** GetDiskRequest disk. */
                    public disk: string;

                    /** GetDiskRequest project. */
                    public project: string;

                    /** GetDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetDiskRequest): google.cloud.compute.v1.GetDiskRequest;

                    /**
                     * Encodes the specified GetDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.GetDiskRequest.verify|verify} messages.
                     * @param message GetDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetDiskRequest.verify|verify} messages.
                     * @param message GetDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetDiskRequest;

                    /**
                     * Decodes a GetDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetDiskRequest;

                    /**
                     * Verifies a GetDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetDiskRequest;

                    /**
                     * Creates a plain object from a GetDiskRequest message. Also converts values to other types if specified.
                     * @param message GetDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetDiskTypeRequest. */
                interface IGetDiskTypeRequest {

                    /** GetDiskTypeRequest diskType */
                    diskType?: (string|null);

                    /** GetDiskTypeRequest project */
                    project?: (string|null);

                    /** GetDiskTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetDiskTypeRequest. */
                class GetDiskTypeRequest implements IGetDiskTypeRequest {

                    /**
                     * Constructs a new GetDiskTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetDiskTypeRequest);

                    /** GetDiskTypeRequest diskType. */
                    public diskType: string;

                    /** GetDiskTypeRequest project. */
                    public project: string;

                    /** GetDiskTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetDiskTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDiskTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetDiskTypeRequest): google.cloud.compute.v1.GetDiskTypeRequest;

                    /**
                     * Encodes the specified GetDiskTypeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetDiskTypeRequest.verify|verify} messages.
                     * @param message GetDiskTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetDiskTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDiskTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetDiskTypeRequest.verify|verify} messages.
                     * @param message GetDiskTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetDiskTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDiskTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDiskTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetDiskTypeRequest;

                    /**
                     * Decodes a GetDiskTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDiskTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetDiskTypeRequest;

                    /**
                     * Verifies a GetDiskTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDiskTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDiskTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetDiskTypeRequest;

                    /**
                     * Creates a plain object from a GetDiskTypeRequest message. Also converts values to other types if specified.
                     * @param message GetDiskTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetDiskTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDiskTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDiskTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveFirewallsInstanceRequest. */
                interface IGetEffectiveFirewallsInstanceRequest {

                    /** GetEffectiveFirewallsInstanceRequest instance */
                    instance?: (string|null);

                    /** GetEffectiveFirewallsInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** GetEffectiveFirewallsInstanceRequest project */
                    project?: (string|null);

                    /** GetEffectiveFirewallsInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetEffectiveFirewallsInstanceRequest. */
                class GetEffectiveFirewallsInstanceRequest implements IGetEffectiveFirewallsInstanceRequest {

                    /**
                     * Constructs a new GetEffectiveFirewallsInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetEffectiveFirewallsInstanceRequest);

                    /** GetEffectiveFirewallsInstanceRequest instance. */
                    public instance: string;

                    /** GetEffectiveFirewallsInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** GetEffectiveFirewallsInstanceRequest project. */
                    public project: string;

                    /** GetEffectiveFirewallsInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetEffectiveFirewallsInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveFirewallsInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetEffectiveFirewallsInstanceRequest): google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest;

                    /**
                     * Encodes the specified GetEffectiveFirewallsInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetEffectiveFirewallsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveFirewallsInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetEffectiveFirewallsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveFirewallsInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveFirewallsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest;

                    /**
                     * Decodes a GetEffectiveFirewallsInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveFirewallsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest;

                    /**
                     * Verifies a GetEffectiveFirewallsInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveFirewallsInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveFirewallsInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest;

                    /**
                     * Creates a plain object from a GetEffectiveFirewallsInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetEffectiveFirewallsInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveFirewallsInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveFirewallsInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveFirewallsNetworkRequest. */
                interface IGetEffectiveFirewallsNetworkRequest {

                    /** GetEffectiveFirewallsNetworkRequest network */
                    network?: (string|null);

                    /** GetEffectiveFirewallsNetworkRequest project */
                    project?: (string|null);
                }

                /** Represents a GetEffectiveFirewallsNetworkRequest. */
                class GetEffectiveFirewallsNetworkRequest implements IGetEffectiveFirewallsNetworkRequest {

                    /**
                     * Constructs a new GetEffectiveFirewallsNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetEffectiveFirewallsNetworkRequest);

                    /** GetEffectiveFirewallsNetworkRequest network. */
                    public network: string;

                    /** GetEffectiveFirewallsNetworkRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetEffectiveFirewallsNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveFirewallsNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetEffectiveFirewallsNetworkRequest): google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest;

                    /**
                     * Encodes the specified GetEffectiveFirewallsNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetEffectiveFirewallsNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveFirewallsNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetEffectiveFirewallsNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveFirewallsNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveFirewallsNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest;

                    /**
                     * Decodes a GetEffectiveFirewallsNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveFirewallsNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest;

                    /**
                     * Verifies a GetEffectiveFirewallsNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveFirewallsNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveFirewallsNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest;

                    /**
                     * Creates a plain object from a GetEffectiveFirewallsNetworkRequest message. Also converts values to other types if specified.
                     * @param message GetEffectiveFirewallsNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveFirewallsNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveFirewallsNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest. */
                interface IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest {

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest network */
                    network?: (string|null);

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest. */
                class GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest implements IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest);

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest network. */
                    public network: string;

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveSecurityPoliciesBackendServiceRequest. */
                interface IGetEffectiveSecurityPoliciesBackendServiceRequest {

                    /** GetEffectiveSecurityPoliciesBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetEffectiveSecurityPoliciesBackendServiceRequest project */
                    project?: (string|null);
                }

                /** Represents a GetEffectiveSecurityPoliciesBackendServiceRequest. */
                class GetEffectiveSecurityPoliciesBackendServiceRequest implements IGetEffectiveSecurityPoliciesBackendServiceRequest {

                    /**
                     * Constructs a new GetEffectiveSecurityPoliciesBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceRequest);

                    /** GetEffectiveSecurityPoliciesBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetEffectiveSecurityPoliciesBackendServiceRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetEffectiveSecurityPoliciesBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveSecurityPoliciesBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceRequest): google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceRequest;

                    /**
                     * Encodes the specified GetEffectiveSecurityPoliciesBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceRequest.verify|verify} messages.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveSecurityPoliciesBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceRequest.verify|verify} messages.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveSecurityPoliciesBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveSecurityPoliciesBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceRequest;

                    /**
                     * Decodes a GetEffectiveSecurityPoliciesBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveSecurityPoliciesBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceRequest;

                    /**
                     * Verifies a GetEffectiveSecurityPoliciesBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveSecurityPoliciesBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveSecurityPoliciesBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetEffectiveSecurityPoliciesBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveSecurityPoliciesBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveSecurityPoliciesBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveSecurityPoliciesBackendServiceResponse. */
                interface IGetEffectiveSecurityPoliciesBackendServiceResponse {
                }

                /** Represents a GetEffectiveSecurityPoliciesBackendServiceResponse. */
                class GetEffectiveSecurityPoliciesBackendServiceResponse implements IGetEffectiveSecurityPoliciesBackendServiceResponse {

                    /**
                     * Constructs a new GetEffectiveSecurityPoliciesBackendServiceResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceResponse);

                    /**
                     * Creates a new GetEffectiveSecurityPoliciesBackendServiceResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveSecurityPoliciesBackendServiceResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceResponse): google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse;

                    /**
                     * Encodes the specified GetEffectiveSecurityPoliciesBackendServiceResponse message. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse.verify|verify} messages.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveSecurityPoliciesBackendServiceResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse.verify|verify} messages.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveSecurityPoliciesBackendServiceResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveSecurityPoliciesBackendServiceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse;

                    /**
                     * Decodes a GetEffectiveSecurityPoliciesBackendServiceResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveSecurityPoliciesBackendServiceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse;

                    /**
                     * Verifies a GetEffectiveSecurityPoliciesBackendServiceResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveSecurityPoliciesBackendServiceResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveSecurityPoliciesBackendServiceResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse;

                    /**
                     * Creates a plain object from a GetEffectiveSecurityPoliciesBackendServiceResponse message. Also converts values to other types if specified.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveSecurityPoliciesBackendServiceResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveSecurityPoliciesBackendServiceResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetExternalVpnGatewayRequest. */
                interface IGetExternalVpnGatewayRequest {

                    /** GetExternalVpnGatewayRequest externalVpnGateway */
                    externalVpnGateway?: (string|null);

                    /** GetExternalVpnGatewayRequest project */
                    project?: (string|null);
                }

                /** Represents a GetExternalVpnGatewayRequest. */
                class GetExternalVpnGatewayRequest implements IGetExternalVpnGatewayRequest {

                    /**
                     * Constructs a new GetExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetExternalVpnGatewayRequest);

                    /** GetExternalVpnGatewayRequest externalVpnGateway. */
                    public externalVpnGateway: string;

                    /** GetExternalVpnGatewayRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetExternalVpnGatewayRequest): google.cloud.compute.v1.GetExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified GetExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.GetExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message GetExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message GetExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetExternalVpnGatewayRequest;

                    /**
                     * Decodes a GetExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetExternalVpnGatewayRequest;

                    /**
                     * Verifies a GetExternalVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from a GetExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message GetExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFirewallPolicyRequest. */
                interface IGetFirewallPolicyRequest {

                    /** GetFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);
                }

                /** Represents a GetFirewallPolicyRequest. */
                class GetFirewallPolicyRequest implements IGetFirewallPolicyRequest {

                    /**
                     * Constructs a new GetFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetFirewallPolicyRequest);

                    /** GetFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /**
                     * Creates a new GetFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetFirewallPolicyRequest): google.cloud.compute.v1.GetFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetFirewallPolicyRequest;

                    /**
                     * Decodes a GetFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetFirewallPolicyRequest;

                    /**
                     * Verifies a GetFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFirewallRequest. */
                interface IGetFirewallRequest {

                    /** GetFirewallRequest firewall */
                    firewall?: (string|null);

                    /** GetFirewallRequest project */
                    project?: (string|null);
                }

                /** Represents a GetFirewallRequest. */
                class GetFirewallRequest implements IGetFirewallRequest {

                    /**
                     * Constructs a new GetFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetFirewallRequest);

                    /** GetFirewallRequest firewall. */
                    public firewall: string;

                    /** GetFirewallRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetFirewallRequest): google.cloud.compute.v1.GetFirewallRequest;

                    /**
                     * Encodes the specified GetFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1.GetFirewallRequest.verify|verify} messages.
                     * @param message GetFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetFirewallRequest.verify|verify} messages.
                     * @param message GetFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetFirewallRequest;

                    /**
                     * Decodes a GetFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetFirewallRequest;

                    /**
                     * Verifies a GetFirewallRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetFirewallRequest;

                    /**
                     * Creates a plain object from a GetFirewallRequest message. Also converts values to other types if specified.
                     * @param message GetFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetForwardingRuleRequest. */
                interface IGetForwardingRuleRequest {

                    /** GetForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** GetForwardingRuleRequest project */
                    project?: (string|null);

                    /** GetForwardingRuleRequest region */
                    region?: (string|null);
                }

                /** Represents a GetForwardingRuleRequest. */
                class GetForwardingRuleRequest implements IGetForwardingRuleRequest {

                    /**
                     * Constructs a new GetForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetForwardingRuleRequest);

                    /** GetForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** GetForwardingRuleRequest project. */
                    public project: string;

                    /** GetForwardingRuleRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetForwardingRuleRequest): google.cloud.compute.v1.GetForwardingRuleRequest;

                    /**
                     * Encodes the specified GetForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.GetForwardingRuleRequest.verify|verify} messages.
                     * @param message GetForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetForwardingRuleRequest.verify|verify} messages.
                     * @param message GetForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetForwardingRuleRequest;

                    /**
                     * Decodes a GetForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetForwardingRuleRequest;

                    /**
                     * Verifies a GetForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetForwardingRuleRequest;

                    /**
                     * Creates a plain object from a GetForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message GetForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFromFamilyImageRequest. */
                interface IGetFromFamilyImageRequest {

                    /** GetFromFamilyImageRequest family */
                    family?: (string|null);

                    /** GetFromFamilyImageRequest project */
                    project?: (string|null);
                }

                /** Represents a GetFromFamilyImageRequest. */
                class GetFromFamilyImageRequest implements IGetFromFamilyImageRequest {

                    /**
                     * Constructs a new GetFromFamilyImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetFromFamilyImageRequest);

                    /** GetFromFamilyImageRequest family. */
                    public family: string;

                    /** GetFromFamilyImageRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetFromFamilyImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFromFamilyImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetFromFamilyImageRequest): google.cloud.compute.v1.GetFromFamilyImageRequest;

                    /**
                     * Encodes the specified GetFromFamilyImageRequest message. Does not implicitly {@link google.cloud.compute.v1.GetFromFamilyImageRequest.verify|verify} messages.
                     * @param message GetFromFamilyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetFromFamilyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFromFamilyImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetFromFamilyImageRequest.verify|verify} messages.
                     * @param message GetFromFamilyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetFromFamilyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFromFamilyImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFromFamilyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetFromFamilyImageRequest;

                    /**
                     * Decodes a GetFromFamilyImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFromFamilyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetFromFamilyImageRequest;

                    /**
                     * Verifies a GetFromFamilyImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetFromFamilyImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFromFamilyImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetFromFamilyImageRequest;

                    /**
                     * Creates a plain object from a GetFromFamilyImageRequest message. Also converts values to other types if specified.
                     * @param message GetFromFamilyImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetFromFamilyImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFromFamilyImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFromFamilyImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFutureReservationRequest. */
                interface IGetFutureReservationRequest {

                    /** GetFutureReservationRequest futureReservation */
                    futureReservation?: (string|null);

                    /** GetFutureReservationRequest project */
                    project?: (string|null);

                    /** GetFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetFutureReservationRequest. */
                class GetFutureReservationRequest implements IGetFutureReservationRequest {

                    /**
                     * Constructs a new GetFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetFutureReservationRequest);

                    /** GetFutureReservationRequest futureReservation. */
                    public futureReservation: string;

                    /** GetFutureReservationRequest project. */
                    public project: string;

                    /** GetFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetFutureReservationRequest): google.cloud.compute.v1.GetFutureReservationRequest;

                    /**
                     * Encodes the specified GetFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetFutureReservationRequest.verify|verify} messages.
                     * @param message GetFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetFutureReservationRequest.verify|verify} messages.
                     * @param message GetFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetFutureReservationRequest;

                    /**
                     * Decodes a GetFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetFutureReservationRequest;

                    /**
                     * Verifies a GetFutureReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetFutureReservationRequest;

                    /**
                     * Creates a plain object from a GetFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message GetFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalAddressRequest. */
                interface IGetGlobalAddressRequest {

                    /** GetGlobalAddressRequest address */
                    address?: (string|null);

                    /** GetGlobalAddressRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalAddressRequest. */
                class GetGlobalAddressRequest implements IGetGlobalAddressRequest {

                    /**
                     * Constructs a new GetGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetGlobalAddressRequest);

                    /** GetGlobalAddressRequest address. */
                    public address: string;

                    /** GetGlobalAddressRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetGlobalAddressRequest): google.cloud.compute.v1.GetGlobalAddressRequest;

                    /**
                     * Encodes the specified GetGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.GetGlobalAddressRequest.verify|verify} messages.
                     * @param message GetGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetGlobalAddressRequest.verify|verify} messages.
                     * @param message GetGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetGlobalAddressRequest;

                    /**
                     * Decodes a GetGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetGlobalAddressRequest;

                    /**
                     * Verifies a GetGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetGlobalAddressRequest;

                    /**
                     * Creates a plain object from a GetGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalForwardingRuleRequest. */
                interface IGetGlobalForwardingRuleRequest {

                    /** GetGlobalForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** GetGlobalForwardingRuleRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalForwardingRuleRequest. */
                class GetGlobalForwardingRuleRequest implements IGetGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new GetGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetGlobalForwardingRuleRequest);

                    /** GetGlobalForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** GetGlobalForwardingRuleRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetGlobalForwardingRuleRequest): google.cloud.compute.v1.GetGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified GetGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.GetGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message GetGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message GetGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetGlobalForwardingRuleRequest;

                    /**
                     * Decodes a GetGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetGlobalForwardingRuleRequest;

                    /**
                     * Verifies a GetGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a GetGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalNetworkEndpointGroupRequest. */
                interface IGetGlobalNetworkEndpointGroupRequest {

                    /** GetGlobalNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** GetGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalNetworkEndpointGroupRequest. */
                class GetGlobalNetworkEndpointGroupRequest implements IGetGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new GetGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetGlobalNetworkEndpointGroupRequest);

                    /** GetGlobalNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** GetGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified GetGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes a GetGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies a GetGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a GetGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalOperationRequest. */
                interface IGetGlobalOperationRequest {

                    /** GetGlobalOperationRequest operation */
                    operation?: (string|null);

                    /** GetGlobalOperationRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalOperationRequest. */
                class GetGlobalOperationRequest implements IGetGlobalOperationRequest {

                    /**
                     * Constructs a new GetGlobalOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetGlobalOperationRequest);

                    /** GetGlobalOperationRequest operation. */
                    public operation: string;

                    /** GetGlobalOperationRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetGlobalOperationRequest): google.cloud.compute.v1.GetGlobalOperationRequest;

                    /**
                     * Encodes the specified GetGlobalOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetGlobalOperationRequest.verify|verify} messages.
                     * @param message GetGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetGlobalOperationRequest.verify|verify} messages.
                     * @param message GetGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetGlobalOperationRequest;

                    /**
                     * Decodes a GetGlobalOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetGlobalOperationRequest;

                    /**
                     * Verifies a GetGlobalOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetGlobalOperationRequest;

                    /**
                     * Creates a plain object from a GetGlobalOperationRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetGlobalOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalOrganizationOperationRequest. */
                interface IGetGlobalOrganizationOperationRequest {

                    /** GetGlobalOrganizationOperationRequest operation */
                    operation?: (string|null);

                    /** GetGlobalOrganizationOperationRequest parentId */
                    parentId?: (string|null);
                }

                /** Represents a GetGlobalOrganizationOperationRequest. */
                class GetGlobalOrganizationOperationRequest implements IGetGlobalOrganizationOperationRequest {

                    /**
                     * Constructs a new GetGlobalOrganizationOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetGlobalOrganizationOperationRequest);

                    /** GetGlobalOrganizationOperationRequest operation. */
                    public operation: string;

                    /** GetGlobalOrganizationOperationRequest parentId. */
                    public parentId?: (string|null);

                    /**
                     * Creates a new GetGlobalOrganizationOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalOrganizationOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetGlobalOrganizationOperationRequest): google.cloud.compute.v1.GetGlobalOrganizationOperationRequest;

                    /**
                     * Encodes the specified GetGlobalOrganizationOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetGlobalOrganizationOperationRequest.verify|verify} messages.
                     * @param message GetGlobalOrganizationOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetGlobalOrganizationOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalOrganizationOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetGlobalOrganizationOperationRequest.verify|verify} messages.
                     * @param message GetGlobalOrganizationOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetGlobalOrganizationOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalOrganizationOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalOrganizationOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetGlobalOrganizationOperationRequest;

                    /**
                     * Decodes a GetGlobalOrganizationOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalOrganizationOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetGlobalOrganizationOperationRequest;

                    /**
                     * Verifies a GetGlobalOrganizationOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalOrganizationOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalOrganizationOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetGlobalOrganizationOperationRequest;

                    /**
                     * Creates a plain object from a GetGlobalOrganizationOperationRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalOrganizationOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetGlobalOrganizationOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalOrganizationOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalOrganizationOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalPublicDelegatedPrefixeRequest. */
                interface IGetGlobalPublicDelegatedPrefixeRequest {

                    /** GetGlobalPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** GetGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);
                }

                /** Represents a GetGlobalPublicDelegatedPrefixeRequest. */
                class GetGlobalPublicDelegatedPrefixeRequest implements IGetGlobalPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new GetGlobalPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetGlobalPublicDelegatedPrefixeRequest);

                    /** GetGlobalPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** GetGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /**
                     * Creates a new GetGlobalPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetGlobalPublicDelegatedPrefixeRequest): google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified GetGlobalPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message GetGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message GetGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a GetGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a GetGlobalPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a GetGlobalPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGuestAttributesInstanceRequest. */
                interface IGetGuestAttributesInstanceRequest {

                    /** GetGuestAttributesInstanceRequest instance */
                    instance?: (string|null);

                    /** GetGuestAttributesInstanceRequest project */
                    project?: (string|null);

                    /** GetGuestAttributesInstanceRequest queryPath */
                    queryPath?: (string|null);

                    /** GetGuestAttributesInstanceRequest variableKey */
                    variableKey?: (string|null);

                    /** GetGuestAttributesInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetGuestAttributesInstanceRequest. */
                class GetGuestAttributesInstanceRequest implements IGetGuestAttributesInstanceRequest {

                    /**
                     * Constructs a new GetGuestAttributesInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetGuestAttributesInstanceRequest);

                    /** GetGuestAttributesInstanceRequest instance. */
                    public instance: string;

                    /** GetGuestAttributesInstanceRequest project. */
                    public project: string;

                    /** GetGuestAttributesInstanceRequest queryPath. */
                    public queryPath?: (string|null);

                    /** GetGuestAttributesInstanceRequest variableKey. */
                    public variableKey?: (string|null);

                    /** GetGuestAttributesInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetGuestAttributesInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGuestAttributesInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetGuestAttributesInstanceRequest): google.cloud.compute.v1.GetGuestAttributesInstanceRequest;

                    /**
                     * Encodes the specified GetGuestAttributesInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetGuestAttributesInstanceRequest.verify|verify} messages.
                     * @param message GetGuestAttributesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetGuestAttributesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGuestAttributesInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetGuestAttributesInstanceRequest.verify|verify} messages.
                     * @param message GetGuestAttributesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetGuestAttributesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGuestAttributesInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGuestAttributesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetGuestAttributesInstanceRequest;

                    /**
                     * Decodes a GetGuestAttributesInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGuestAttributesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetGuestAttributesInstanceRequest;

                    /**
                     * Verifies a GetGuestAttributesInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGuestAttributesInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGuestAttributesInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetGuestAttributesInstanceRequest;

                    /**
                     * Creates a plain object from a GetGuestAttributesInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetGuestAttributesInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetGuestAttributesInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGuestAttributesInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGuestAttributesInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetHealthBackendServiceRequest. */
                interface IGetHealthBackendServiceRequest {

                    /** GetHealthBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetHealthBackendServiceRequest project */
                    project?: (string|null);

                    /** GetHealthBackendServiceRequest resourceGroupReferenceResource */
                    resourceGroupReferenceResource?: (google.cloud.compute.v1.IResourceGroupReference|null);
                }

                /** Represents a GetHealthBackendServiceRequest. */
                class GetHealthBackendServiceRequest implements IGetHealthBackendServiceRequest {

                    /**
                     * Constructs a new GetHealthBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetHealthBackendServiceRequest);

                    /** GetHealthBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetHealthBackendServiceRequest project. */
                    public project: string;

                    /** GetHealthBackendServiceRequest resourceGroupReferenceResource. */
                    public resourceGroupReferenceResource?: (google.cloud.compute.v1.IResourceGroupReference|null);

                    /**
                     * Creates a new GetHealthBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetHealthBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetHealthBackendServiceRequest): google.cloud.compute.v1.GetHealthBackendServiceRequest;

                    /**
                     * Encodes the specified GetHealthBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetHealthBackendServiceRequest.verify|verify} messages.
                     * @param message GetHealthBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetHealthBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetHealthBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetHealthBackendServiceRequest.verify|verify} messages.
                     * @param message GetHealthBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetHealthBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetHealthBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetHealthBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetHealthBackendServiceRequest;

                    /**
                     * Decodes a GetHealthBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetHealthBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetHealthBackendServiceRequest;

                    /**
                     * Verifies a GetHealthBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetHealthBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetHealthBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetHealthBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetHealthBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetHealthBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetHealthBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetHealthBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetHealthBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetHealthCheckRequest. */
                interface IGetHealthCheckRequest {

                    /** GetHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** GetHealthCheckRequest project */
                    project?: (string|null);
                }

                /** Represents a GetHealthCheckRequest. */
                class GetHealthCheckRequest implements IGetHealthCheckRequest {

                    /**
                     * Constructs a new GetHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetHealthCheckRequest);

                    /** GetHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** GetHealthCheckRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetHealthCheckRequest): google.cloud.compute.v1.GetHealthCheckRequest;

                    /**
                     * Encodes the specified GetHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.GetHealthCheckRequest.verify|verify} messages.
                     * @param message GetHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetHealthCheckRequest.verify|verify} messages.
                     * @param message GetHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetHealthCheckRequest;

                    /**
                     * Decodes a GetHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetHealthCheckRequest;

                    /**
                     * Verifies a GetHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetHealthCheckRequest;

                    /**
                     * Creates a plain object from a GetHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message GetHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetHealthRegionBackendServiceRequest. */
                interface IGetHealthRegionBackendServiceRequest {

                    /** GetHealthRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetHealthRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** GetHealthRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** GetHealthRegionBackendServiceRequest resourceGroupReferenceResource */
                    resourceGroupReferenceResource?: (google.cloud.compute.v1.IResourceGroupReference|null);
                }

                /** Represents a GetHealthRegionBackendServiceRequest. */
                class GetHealthRegionBackendServiceRequest implements IGetHealthRegionBackendServiceRequest {

                    /**
                     * Constructs a new GetHealthRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetHealthRegionBackendServiceRequest);

                    /** GetHealthRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetHealthRegionBackendServiceRequest project. */
                    public project: string;

                    /** GetHealthRegionBackendServiceRequest region. */
                    public region: string;

                    /** GetHealthRegionBackendServiceRequest resourceGroupReferenceResource. */
                    public resourceGroupReferenceResource?: (google.cloud.compute.v1.IResourceGroupReference|null);

                    /**
                     * Creates a new GetHealthRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetHealthRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetHealthRegionBackendServiceRequest): google.cloud.compute.v1.GetHealthRegionBackendServiceRequest;

                    /**
                     * Encodes the specified GetHealthRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetHealthRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetHealthRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetHealthRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetHealthRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetHealthRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetHealthRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetHealthRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetHealthRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetHealthRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetHealthRegionBackendServiceRequest;

                    /**
                     * Decodes a GetHealthRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetHealthRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetHealthRegionBackendServiceRequest;

                    /**
                     * Verifies a GetHealthRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetHealthRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetHealthRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetHealthRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetHealthRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetHealthRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetHealthRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetHealthRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetHealthRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetHealthTargetPoolRequest. */
                interface IGetHealthTargetPoolRequest {

                    /** GetHealthTargetPoolRequest instanceReferenceResource */
                    instanceReferenceResource?: (google.cloud.compute.v1.IInstanceReference|null);

                    /** GetHealthTargetPoolRequest project */
                    project?: (string|null);

                    /** GetHealthTargetPoolRequest region */
                    region?: (string|null);

                    /** GetHealthTargetPoolRequest targetPool */
                    targetPool?: (string|null);
                }

                /** Represents a GetHealthTargetPoolRequest. */
                class GetHealthTargetPoolRequest implements IGetHealthTargetPoolRequest {

                    /**
                     * Constructs a new GetHealthTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetHealthTargetPoolRequest);

                    /** GetHealthTargetPoolRequest instanceReferenceResource. */
                    public instanceReferenceResource?: (google.cloud.compute.v1.IInstanceReference|null);

                    /** GetHealthTargetPoolRequest project. */
                    public project: string;

                    /** GetHealthTargetPoolRequest region. */
                    public region: string;

                    /** GetHealthTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /**
                     * Creates a new GetHealthTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetHealthTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetHealthTargetPoolRequest): google.cloud.compute.v1.GetHealthTargetPoolRequest;

                    /**
                     * Encodes the specified GetHealthTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.GetHealthTargetPoolRequest.verify|verify} messages.
                     * @param message GetHealthTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetHealthTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetHealthTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetHealthTargetPoolRequest.verify|verify} messages.
                     * @param message GetHealthTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetHealthTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetHealthTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetHealthTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetHealthTargetPoolRequest;

                    /**
                     * Decodes a GetHealthTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetHealthTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetHealthTargetPoolRequest;

                    /**
                     * Verifies a GetHealthTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetHealthTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetHealthTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetHealthTargetPoolRequest;

                    /**
                     * Creates a plain object from a GetHealthTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message GetHealthTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetHealthTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetHealthTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetHealthTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyBackendBucketRequest. */
                interface IGetIamPolicyBackendBucketRequest {

                    /** GetIamPolicyBackendBucketRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyBackendBucketRequest project */
                    project?: (string|null);

                    /** GetIamPolicyBackendBucketRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyBackendBucketRequest. */
                class GetIamPolicyBackendBucketRequest implements IGetIamPolicyBackendBucketRequest {

                    /**
                     * Constructs a new GetIamPolicyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyBackendBucketRequest);

                    /** GetIamPolicyBackendBucketRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyBackendBucketRequest project. */
                    public project: string;

                    /** GetIamPolicyBackendBucketRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyBackendBucketRequest): google.cloud.compute.v1.GetIamPolicyBackendBucketRequest;

                    /**
                     * Encodes the specified GetIamPolicyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message GetIamPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message GetIamPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyBackendBucketRequest;

                    /**
                     * Decodes a GetIamPolicyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyBackendBucketRequest;

                    /**
                     * Verifies a GetIamPolicyBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyBackendBucketRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyBackendServiceRequest. */
                interface IGetIamPolicyBackendServiceRequest {

                    /** GetIamPolicyBackendServiceRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyBackendServiceRequest project */
                    project?: (string|null);

                    /** GetIamPolicyBackendServiceRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyBackendServiceRequest. */
                class GetIamPolicyBackendServiceRequest implements IGetIamPolicyBackendServiceRequest {

                    /**
                     * Constructs a new GetIamPolicyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyBackendServiceRequest);

                    /** GetIamPolicyBackendServiceRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyBackendServiceRequest project. */
                    public project: string;

                    /** GetIamPolicyBackendServiceRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyBackendServiceRequest): google.cloud.compute.v1.GetIamPolicyBackendServiceRequest;

                    /**
                     * Encodes the specified GetIamPolicyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message GetIamPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message GetIamPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyBackendServiceRequest;

                    /**
                     * Decodes a GetIamPolicyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyBackendServiceRequest;

                    /**
                     * Verifies a GetIamPolicyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyDiskRequest. */
                interface IGetIamPolicyDiskRequest {

                    /** GetIamPolicyDiskRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyDiskRequest project */
                    project?: (string|null);

                    /** GetIamPolicyDiskRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyDiskRequest. */
                class GetIamPolicyDiskRequest implements IGetIamPolicyDiskRequest {

                    /**
                     * Constructs a new GetIamPolicyDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyDiskRequest);

                    /** GetIamPolicyDiskRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyDiskRequest project. */
                    public project: string;

                    /** GetIamPolicyDiskRequest resource. */
                    public resource: string;

                    /** GetIamPolicyDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyDiskRequest): google.cloud.compute.v1.GetIamPolicyDiskRequest;

                    /**
                     * Encodes the specified GetIamPolicyDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyDiskRequest.verify|verify} messages.
                     * @param message GetIamPolicyDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyDiskRequest.verify|verify} messages.
                     * @param message GetIamPolicyDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyDiskRequest;

                    /**
                     * Decodes a GetIamPolicyDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyDiskRequest;

                    /**
                     * Verifies a GetIamPolicyDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyDiskRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyDiskRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyFirewallPolicyRequest. */
                interface IGetIamPolicyFirewallPolicyRequest {

                    /** GetIamPolicyFirewallPolicyRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyFirewallPolicyRequest. */
                class GetIamPolicyFirewallPolicyRequest implements IGetIamPolicyFirewallPolicyRequest {

                    /**
                     * Constructs a new GetIamPolicyFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyFirewallPolicyRequest);

                    /** GetIamPolicyFirewallPolicyRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyFirewallPolicyRequest): google.cloud.compute.v1.GetIamPolicyFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetIamPolicyFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyFirewallPolicyRequest;

                    /**
                     * Decodes a GetIamPolicyFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyFirewallPolicyRequest;

                    /**
                     * Verifies a GetIamPolicyFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyImageRequest. */
                interface IGetIamPolicyImageRequest {

                    /** GetIamPolicyImageRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyImageRequest project */
                    project?: (string|null);

                    /** GetIamPolicyImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyImageRequest. */
                class GetIamPolicyImageRequest implements IGetIamPolicyImageRequest {

                    /**
                     * Constructs a new GetIamPolicyImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyImageRequest);

                    /** GetIamPolicyImageRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyImageRequest project. */
                    public project: string;

                    /** GetIamPolicyImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyImageRequest): google.cloud.compute.v1.GetIamPolicyImageRequest;

                    /**
                     * Encodes the specified GetIamPolicyImageRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyImageRequest.verify|verify} messages.
                     * @param message GetIamPolicyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyImageRequest.verify|verify} messages.
                     * @param message GetIamPolicyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyImageRequest;

                    /**
                     * Decodes a GetIamPolicyImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyImageRequest;

                    /**
                     * Verifies a GetIamPolicyImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyImageRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyImageRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInstanceRequest. */
                interface IGetIamPolicyInstanceRequest {

                    /** GetIamPolicyInstanceRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstanceRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInstanceRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyInstanceRequest. */
                class GetIamPolicyInstanceRequest implements IGetIamPolicyInstanceRequest {

                    /**
                     * Constructs a new GetIamPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyInstanceRequest);

                    /** GetIamPolicyInstanceRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstanceRequest project. */
                    public project: string;

                    /** GetIamPolicyInstanceRequest resource. */
                    public resource: string;

                    /** GetIamPolicyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyInstanceRequest): google.cloud.compute.v1.GetIamPolicyInstanceRequest;

                    /**
                     * Encodes the specified GetIamPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInstanceRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInstanceRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyInstanceRequest;

                    /**
                     * Decodes a GetIamPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyInstanceRequest;

                    /**
                     * Verifies a GetIamPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInstanceTemplateRequest. */
                interface IGetIamPolicyInstanceTemplateRequest {

                    /** GetIamPolicyInstanceTemplateRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstanceTemplateRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInstanceTemplateRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyInstanceTemplateRequest. */
                class GetIamPolicyInstanceTemplateRequest implements IGetIamPolicyInstanceTemplateRequest {

                    /**
                     * Constructs a new GetIamPolicyInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyInstanceTemplateRequest);

                    /** GetIamPolicyInstanceTemplateRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstanceTemplateRequest project. */
                    public project: string;

                    /** GetIamPolicyInstanceTemplateRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyInstanceTemplateRequest): google.cloud.compute.v1.GetIamPolicyInstanceTemplateRequest;

                    /**
                     * Encodes the specified GetIamPolicyInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyInstanceTemplateRequest;

                    /**
                     * Decodes a GetIamPolicyInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyInstanceTemplateRequest;

                    /**
                     * Verifies a GetIamPolicyInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInstantSnapshotRequest. */
                interface IGetIamPolicyInstantSnapshotRequest {

                    /** GetIamPolicyInstantSnapshotRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstantSnapshotRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyInstantSnapshotRequest. */
                class GetIamPolicyInstantSnapshotRequest implements IGetIamPolicyInstantSnapshotRequest {

                    /**
                     * Constructs a new GetIamPolicyInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyInstantSnapshotRequest);

                    /** GetIamPolicyInstantSnapshotRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstantSnapshotRequest project. */
                    public project: string;

                    /** GetIamPolicyInstantSnapshotRequest resource. */
                    public resource: string;

                    /** GetIamPolicyInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyInstantSnapshotRequest): google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest;

                    /**
                     * Encodes the specified GetIamPolicyInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest;

                    /**
                     * Decodes a GetIamPolicyInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest;

                    /**
                     * Verifies a GetIamPolicyInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInterconnectAttachmentGroupRequest. */
                interface IGetIamPolicyInterconnectAttachmentGroupRequest {

                    /** GetIamPolicyInterconnectAttachmentGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInterconnectAttachmentGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyInterconnectAttachmentGroupRequest. */
                class GetIamPolicyInterconnectAttachmentGroupRequest implements IGetIamPolicyInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new GetIamPolicyInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyInterconnectAttachmentGroupRequest);

                    /** GetIamPolicyInterconnectAttachmentGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** GetIamPolicyInterconnectAttachmentGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyInterconnectAttachmentGroupRequest): google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicyInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a GetIamPolicyInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a GetIamPolicyInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInterconnectGroupRequest. */
                interface IGetIamPolicyInterconnectGroupRequest {

                    /** GetIamPolicyInterconnectGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInterconnectGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInterconnectGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyInterconnectGroupRequest. */
                class GetIamPolicyInterconnectGroupRequest implements IGetIamPolicyInterconnectGroupRequest {

                    /**
                     * Constructs a new GetIamPolicyInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyInterconnectGroupRequest);

                    /** GetIamPolicyInterconnectGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInterconnectGroupRequest project. */
                    public project: string;

                    /** GetIamPolicyInterconnectGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyInterconnectGroupRequest): google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicyInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest;

                    /**
                     * Decodes a GetIamPolicyInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest;

                    /**
                     * Verifies a GetIamPolicyInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyLicenseRequest. */
                interface IGetIamPolicyLicenseRequest {

                    /** GetIamPolicyLicenseRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyLicenseRequest project */
                    project?: (string|null);

                    /** GetIamPolicyLicenseRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyLicenseRequest. */
                class GetIamPolicyLicenseRequest implements IGetIamPolicyLicenseRequest {

                    /**
                     * Constructs a new GetIamPolicyLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyLicenseRequest);

                    /** GetIamPolicyLicenseRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyLicenseRequest project. */
                    public project: string;

                    /** GetIamPolicyLicenseRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyLicenseRequest): google.cloud.compute.v1.GetIamPolicyLicenseRequest;

                    /**
                     * Encodes the specified GetIamPolicyLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyLicenseRequest.verify|verify} messages.
                     * @param message GetIamPolicyLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyLicenseRequest.verify|verify} messages.
                     * @param message GetIamPolicyLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyLicenseRequest;

                    /**
                     * Decodes a GetIamPolicyLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyLicenseRequest;

                    /**
                     * Verifies a GetIamPolicyLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyLicenseRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyLicenseRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyMachineImageRequest. */
                interface IGetIamPolicyMachineImageRequest {

                    /** GetIamPolicyMachineImageRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyMachineImageRequest project */
                    project?: (string|null);

                    /** GetIamPolicyMachineImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyMachineImageRequest. */
                class GetIamPolicyMachineImageRequest implements IGetIamPolicyMachineImageRequest {

                    /**
                     * Constructs a new GetIamPolicyMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyMachineImageRequest);

                    /** GetIamPolicyMachineImageRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyMachineImageRequest project. */
                    public project: string;

                    /** GetIamPolicyMachineImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyMachineImageRequest): google.cloud.compute.v1.GetIamPolicyMachineImageRequest;

                    /**
                     * Encodes the specified GetIamPolicyMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyMachineImageRequest.verify|verify} messages.
                     * @param message GetIamPolicyMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyMachineImageRequest.verify|verify} messages.
                     * @param message GetIamPolicyMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyMachineImageRequest;

                    /**
                     * Decodes a GetIamPolicyMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyMachineImageRequest;

                    /**
                     * Verifies a GetIamPolicyMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyMachineImageRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyMachineImageRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyNetworkAttachmentRequest. */
                interface IGetIamPolicyNetworkAttachmentRequest {

                    /** GetIamPolicyNetworkAttachmentRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** GetIamPolicyNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** GetIamPolicyNetworkAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyNetworkAttachmentRequest. */
                class GetIamPolicyNetworkAttachmentRequest implements IGetIamPolicyNetworkAttachmentRequest {

                    /**
                     * Constructs a new GetIamPolicyNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyNetworkAttachmentRequest);

                    /** GetIamPolicyNetworkAttachmentRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNetworkAttachmentRequest project. */
                    public project: string;

                    /** GetIamPolicyNetworkAttachmentRequest region. */
                    public region: string;

                    /** GetIamPolicyNetworkAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyNetworkAttachmentRequest): google.cloud.compute.v1.GetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Encodes the specified GetIamPolicyNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyNetworkAttachmentRequest.verify|verify} messages.
                     * @param message GetIamPolicyNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyNetworkAttachmentRequest.verify|verify} messages.
                     * @param message GetIamPolicyNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Decodes a GetIamPolicyNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Verifies a GetIamPolicyNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyNetworkFirewallPolicyRequest. */
                interface IGetIamPolicyNetworkFirewallPolicyRequest {

                    /** GetIamPolicyNetworkFirewallPolicyRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetIamPolicyNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyNetworkFirewallPolicyRequest. */
                class GetIamPolicyNetworkFirewallPolicyRequest implements IGetIamPolicyNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetIamPolicyNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyNetworkFirewallPolicyRequest);

                    /** GetIamPolicyNetworkFirewallPolicyRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetIamPolicyNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetIamPolicyNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetIamPolicyNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetIamPolicyNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyNodeGroupRequest. */
                interface IGetIamPolicyNodeGroupRequest {

                    /** GetIamPolicyNodeGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNodeGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicyNodeGroupRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyNodeGroupRequest. */
                class GetIamPolicyNodeGroupRequest implements IGetIamPolicyNodeGroupRequest {

                    /**
                     * Constructs a new GetIamPolicyNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyNodeGroupRequest);

                    /** GetIamPolicyNodeGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNodeGroupRequest project. */
                    public project: string;

                    /** GetIamPolicyNodeGroupRequest resource. */
                    public resource: string;

                    /** GetIamPolicyNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyNodeGroupRequest): google.cloud.compute.v1.GetIamPolicyNodeGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicyNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyNodeGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyNodeGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyNodeGroupRequest;

                    /**
                     * Decodes a GetIamPolicyNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyNodeGroupRequest;

                    /**
                     * Verifies a GetIamPolicyNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyNodeGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyNodeTemplateRequest. */
                interface IGetIamPolicyNodeTemplateRequest {

                    /** GetIamPolicyNodeTemplateRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNodeTemplateRequest project */
                    project?: (string|null);

                    /** GetIamPolicyNodeTemplateRequest region */
                    region?: (string|null);

                    /** GetIamPolicyNodeTemplateRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyNodeTemplateRequest. */
                class GetIamPolicyNodeTemplateRequest implements IGetIamPolicyNodeTemplateRequest {

                    /**
                     * Constructs a new GetIamPolicyNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyNodeTemplateRequest);

                    /** GetIamPolicyNodeTemplateRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNodeTemplateRequest project. */
                    public project: string;

                    /** GetIamPolicyNodeTemplateRequest region. */
                    public region: string;

                    /** GetIamPolicyNodeTemplateRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyNodeTemplateRequest): google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest;

                    /**
                     * Encodes the specified GetIamPolicyNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest.verify|verify} messages.
                     * @param message GetIamPolicyNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest.verify|verify} messages.
                     * @param message GetIamPolicyNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest;

                    /**
                     * Decodes a GetIamPolicyNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest;

                    /**
                     * Verifies a GetIamPolicyNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionBackendServiceRequest. */
                interface IGetIamPolicyRegionBackendServiceRequest {

                    /** GetIamPolicyRegionBackendServiceRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionBackendServiceRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionBackendServiceRequest. */
                class GetIamPolicyRegionBackendServiceRequest implements IGetIamPolicyRegionBackendServiceRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyRegionBackendServiceRequest);

                    /** GetIamPolicyRegionBackendServiceRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionBackendServiceRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionBackendServiceRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionBackendServiceRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyRegionBackendServiceRequest): google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Decodes a GetIamPolicyRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Verifies a GetIamPolicyRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionDiskRequest. */
                interface IGetIamPolicyRegionDiskRequest {

                    /** GetIamPolicyRegionDiskRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionDiskRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionDiskRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionDiskRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionDiskRequest. */
                class GetIamPolicyRegionDiskRequest implements IGetIamPolicyRegionDiskRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyRegionDiskRequest);

                    /** GetIamPolicyRegionDiskRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionDiskRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionDiskRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionDiskRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyRegionDiskRequest): google.cloud.compute.v1.GetIamPolicyRegionDiskRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyRegionDiskRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyRegionDiskRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyRegionDiskRequest;

                    /**
                     * Decodes a GetIamPolicyRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyRegionDiskRequest;

                    /**
                     * Verifies a GetIamPolicyRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyRegionDiskRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionInstantSnapshotRequest. */
                interface IGetIamPolicyRegionInstantSnapshotRequest {

                    /** GetIamPolicyRegionInstantSnapshotRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionInstantSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionInstantSnapshotRequest. */
                class GetIamPolicyRegionInstantSnapshotRequest implements IGetIamPolicyRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyRegionInstantSnapshotRequest);

                    /** GetIamPolicyRegionInstantSnapshotRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionInstantSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyRegionInstantSnapshotRequest): google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Decodes a GetIamPolicyRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Verifies a GetIamPolicyRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionNetworkFirewallPolicyRequest. */
                interface IGetIamPolicyRegionNetworkFirewallPolicyRequest {

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionNetworkFirewallPolicyRequest. */
                class GetIamPolicyRegionNetworkFirewallPolicyRequest implements IGetIamPolicyRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyRegionNetworkFirewallPolicyRequest);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetIamPolicyRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetIamPolicyRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyReservationBlockRequest. */
                interface IGetIamPolicyReservationBlockRequest {

                    /** GetIamPolicyReservationBlockRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** GetIamPolicyReservationBlockRequest project */
                    project?: (string|null);

                    /** GetIamPolicyReservationBlockRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyReservationBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyReservationBlockRequest. */
                class GetIamPolicyReservationBlockRequest implements IGetIamPolicyReservationBlockRequest {

                    /**
                     * Constructs a new GetIamPolicyReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyReservationBlockRequest);

                    /** GetIamPolicyReservationBlockRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationBlockRequest parentResource. */
                    public parentResource: string;

                    /** GetIamPolicyReservationBlockRequest project. */
                    public project: string;

                    /** GetIamPolicyReservationBlockRequest resource. */
                    public resource: string;

                    /** GetIamPolicyReservationBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyReservationBlockRequest): google.cloud.compute.v1.GetIamPolicyReservationBlockRequest;

                    /**
                     * Encodes the specified GetIamPolicyReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyReservationBlockRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyReservationBlockRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyReservationBlockRequest;

                    /**
                     * Decodes a GetIamPolicyReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyReservationBlockRequest;

                    /**
                     * Verifies a GetIamPolicyReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyReservationBlockRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyReservationRequest. */
                interface IGetIamPolicyReservationRequest {

                    /** GetIamPolicyReservationRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationRequest project */
                    project?: (string|null);

                    /** GetIamPolicyReservationRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyReservationRequest. */
                class GetIamPolicyReservationRequest implements IGetIamPolicyReservationRequest {

                    /**
                     * Constructs a new GetIamPolicyReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyReservationRequest);

                    /** GetIamPolicyReservationRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationRequest project. */
                    public project: string;

                    /** GetIamPolicyReservationRequest resource. */
                    public resource: string;

                    /** GetIamPolicyReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyReservationRequest): google.cloud.compute.v1.GetIamPolicyReservationRequest;

                    /**
                     * Encodes the specified GetIamPolicyReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyReservationRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyReservationRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyReservationRequest;

                    /**
                     * Decodes a GetIamPolicyReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyReservationRequest;

                    /**
                     * Verifies a GetIamPolicyReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyReservationRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyReservationRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyReservationSubBlockRequest. */
                interface IGetIamPolicyReservationSubBlockRequest {

                    /** GetIamPolicyReservationSubBlockRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationSubBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** GetIamPolicyReservationSubBlockRequest project */
                    project?: (string|null);

                    /** GetIamPolicyReservationSubBlockRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyReservationSubBlockRequest. */
                class GetIamPolicyReservationSubBlockRequest implements IGetIamPolicyReservationSubBlockRequest {

                    /**
                     * Constructs a new GetIamPolicyReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyReservationSubBlockRequest);

                    /** GetIamPolicyReservationSubBlockRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationSubBlockRequest parentResource. */
                    public parentResource: string;

                    /** GetIamPolicyReservationSubBlockRequest project. */
                    public project: string;

                    /** GetIamPolicyReservationSubBlockRequest resource. */
                    public resource: string;

                    /** GetIamPolicyReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyReservationSubBlockRequest): google.cloud.compute.v1.GetIamPolicyReservationSubBlockRequest;

                    /**
                     * Encodes the specified GetIamPolicyReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyReservationSubBlockRequest;

                    /**
                     * Decodes a GetIamPolicyReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyReservationSubBlockRequest;

                    /**
                     * Verifies a GetIamPolicyReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyResourcePolicyRequest. */
                interface IGetIamPolicyResourcePolicyRequest {

                    /** GetIamPolicyResourcePolicyRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyResourcePolicyRequest project */
                    project?: (string|null);

                    /** GetIamPolicyResourcePolicyRequest region */
                    region?: (string|null);

                    /** GetIamPolicyResourcePolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyResourcePolicyRequest. */
                class GetIamPolicyResourcePolicyRequest implements IGetIamPolicyResourcePolicyRequest {

                    /**
                     * Constructs a new GetIamPolicyResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyResourcePolicyRequest);

                    /** GetIamPolicyResourcePolicyRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyResourcePolicyRequest project. */
                    public project: string;

                    /** GetIamPolicyResourcePolicyRequest region. */
                    public region: string;

                    /** GetIamPolicyResourcePolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyResourcePolicyRequest): google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest;

                    /**
                     * Encodes the specified GetIamPolicyResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest;

                    /**
                     * Decodes a GetIamPolicyResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest;

                    /**
                     * Verifies a GetIamPolicyResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyServiceAttachmentRequest. */
                interface IGetIamPolicyServiceAttachmentRequest {

                    /** GetIamPolicyServiceAttachmentRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyServiceAttachmentRequest project */
                    project?: (string|null);

                    /** GetIamPolicyServiceAttachmentRequest region */
                    region?: (string|null);

                    /** GetIamPolicyServiceAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyServiceAttachmentRequest. */
                class GetIamPolicyServiceAttachmentRequest implements IGetIamPolicyServiceAttachmentRequest {

                    /**
                     * Constructs a new GetIamPolicyServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyServiceAttachmentRequest);

                    /** GetIamPolicyServiceAttachmentRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyServiceAttachmentRequest project. */
                    public project: string;

                    /** GetIamPolicyServiceAttachmentRequest region. */
                    public region: string;

                    /** GetIamPolicyServiceAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyServiceAttachmentRequest): google.cloud.compute.v1.GetIamPolicyServiceAttachmentRequest;

                    /**
                     * Encodes the specified GetIamPolicyServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyServiceAttachmentRequest.verify|verify} messages.
                     * @param message GetIamPolicyServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyServiceAttachmentRequest.verify|verify} messages.
                     * @param message GetIamPolicyServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyServiceAttachmentRequest;

                    /**
                     * Decodes a GetIamPolicyServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyServiceAttachmentRequest;

                    /**
                     * Verifies a GetIamPolicyServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicySnapshotRequest. */
                interface IGetIamPolicySnapshotRequest {

                    /** GetIamPolicySnapshotRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySnapshotRequest project */
                    project?: (string|null);

                    /** GetIamPolicySnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicySnapshotRequest. */
                class GetIamPolicySnapshotRequest implements IGetIamPolicySnapshotRequest {

                    /**
                     * Constructs a new GetIamPolicySnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicySnapshotRequest);

                    /** GetIamPolicySnapshotRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySnapshotRequest project. */
                    public project: string;

                    /** GetIamPolicySnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicySnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicySnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicySnapshotRequest): google.cloud.compute.v1.GetIamPolicySnapshotRequest;

                    /**
                     * Encodes the specified GetIamPolicySnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicySnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicySnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicySnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicySnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicySnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicySnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicySnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicySnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicySnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicySnapshotRequest;

                    /**
                     * Decodes a GetIamPolicySnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicySnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicySnapshotRequest;

                    /**
                     * Verifies a GetIamPolicySnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicySnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicySnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicySnapshotRequest;

                    /**
                     * Creates a plain object from a GetIamPolicySnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicySnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicySnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicySnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicySnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyStoragePoolRequest. */
                interface IGetIamPolicyStoragePoolRequest {

                    /** GetIamPolicyStoragePoolRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyStoragePoolRequest project */
                    project?: (string|null);

                    /** GetIamPolicyStoragePoolRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyStoragePoolRequest. */
                class GetIamPolicyStoragePoolRequest implements IGetIamPolicyStoragePoolRequest {

                    /**
                     * Constructs a new GetIamPolicyStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicyStoragePoolRequest);

                    /** GetIamPolicyStoragePoolRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyStoragePoolRequest project. */
                    public project: string;

                    /** GetIamPolicyStoragePoolRequest resource. */
                    public resource: string;

                    /** GetIamPolicyStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicyStoragePoolRequest): google.cloud.compute.v1.GetIamPolicyStoragePoolRequest;

                    /**
                     * Encodes the specified GetIamPolicyStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyStoragePoolRequest.verify|verify} messages.
                     * @param message GetIamPolicyStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicyStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicyStoragePoolRequest.verify|verify} messages.
                     * @param message GetIamPolicyStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicyStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicyStoragePoolRequest;

                    /**
                     * Decodes a GetIamPolicyStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicyStoragePoolRequest;

                    /**
                     * Verifies a GetIamPolicyStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicyStoragePoolRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicyStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicySubnetworkRequest. */
                interface IGetIamPolicySubnetworkRequest {

                    /** GetIamPolicySubnetworkRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySubnetworkRequest project */
                    project?: (string|null);

                    /** GetIamPolicySubnetworkRequest region */
                    region?: (string|null);

                    /** GetIamPolicySubnetworkRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicySubnetworkRequest. */
                class GetIamPolicySubnetworkRequest implements IGetIamPolicySubnetworkRequest {

                    /**
                     * Constructs a new GetIamPolicySubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetIamPolicySubnetworkRequest);

                    /** GetIamPolicySubnetworkRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySubnetworkRequest project. */
                    public project: string;

                    /** GetIamPolicySubnetworkRequest region. */
                    public region: string;

                    /** GetIamPolicySubnetworkRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicySubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicySubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetIamPolicySubnetworkRequest): google.cloud.compute.v1.GetIamPolicySubnetworkRequest;

                    /**
                     * Encodes the specified GetIamPolicySubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicySubnetworkRequest.verify|verify} messages.
                     * @param message GetIamPolicySubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetIamPolicySubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicySubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetIamPolicySubnetworkRequest.verify|verify} messages.
                     * @param message GetIamPolicySubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetIamPolicySubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicySubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicySubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetIamPolicySubnetworkRequest;

                    /**
                     * Decodes a GetIamPolicySubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicySubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetIamPolicySubnetworkRequest;

                    /**
                     * Verifies a GetIamPolicySubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicySubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicySubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetIamPolicySubnetworkRequest;

                    /**
                     * Creates a plain object from a GetIamPolicySubnetworkRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicySubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetIamPolicySubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicySubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicySubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetImageFamilyViewRequest. */
                interface IGetImageFamilyViewRequest {

                    /** GetImageFamilyViewRequest family */
                    family?: (string|null);

                    /** GetImageFamilyViewRequest project */
                    project?: (string|null);

                    /** GetImageFamilyViewRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetImageFamilyViewRequest. */
                class GetImageFamilyViewRequest implements IGetImageFamilyViewRequest {

                    /**
                     * Constructs a new GetImageFamilyViewRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetImageFamilyViewRequest);

                    /** GetImageFamilyViewRequest family. */
                    public family: string;

                    /** GetImageFamilyViewRequest project. */
                    public project: string;

                    /** GetImageFamilyViewRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetImageFamilyViewRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetImageFamilyViewRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetImageFamilyViewRequest): google.cloud.compute.v1.GetImageFamilyViewRequest;

                    /**
                     * Encodes the specified GetImageFamilyViewRequest message. Does not implicitly {@link google.cloud.compute.v1.GetImageFamilyViewRequest.verify|verify} messages.
                     * @param message GetImageFamilyViewRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetImageFamilyViewRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetImageFamilyViewRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetImageFamilyViewRequest.verify|verify} messages.
                     * @param message GetImageFamilyViewRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetImageFamilyViewRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetImageFamilyViewRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetImageFamilyViewRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetImageFamilyViewRequest;

                    /**
                     * Decodes a GetImageFamilyViewRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetImageFamilyViewRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetImageFamilyViewRequest;

                    /**
                     * Verifies a GetImageFamilyViewRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetImageFamilyViewRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetImageFamilyViewRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetImageFamilyViewRequest;

                    /**
                     * Creates a plain object from a GetImageFamilyViewRequest message. Also converts values to other types if specified.
                     * @param message GetImageFamilyViewRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetImageFamilyViewRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetImageFamilyViewRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetImageFamilyViewRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetImageRequest. */
                interface IGetImageRequest {

                    /** GetImageRequest image */
                    image?: (string|null);

                    /** GetImageRequest project */
                    project?: (string|null);
                }

                /** Represents a GetImageRequest. */
                class GetImageRequest implements IGetImageRequest {

                    /**
                     * Constructs a new GetImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetImageRequest);

                    /** GetImageRequest image. */
                    public image: string;

                    /** GetImageRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetImageRequest): google.cloud.compute.v1.GetImageRequest;

                    /**
                     * Encodes the specified GetImageRequest message. Does not implicitly {@link google.cloud.compute.v1.GetImageRequest.verify|verify} messages.
                     * @param message GetImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetImageRequest.verify|verify} messages.
                     * @param message GetImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetImageRequest;

                    /**
                     * Decodes a GetImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetImageRequest;

                    /**
                     * Verifies a GetImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetImageRequest;

                    /**
                     * Creates a plain object from a GetImageRequest message. Also converts values to other types if specified.
                     * @param message GetImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceGroupManagerRequest. */
                interface IGetInstanceGroupManagerRequest {

                    /** GetInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** GetInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** GetInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceGroupManagerRequest. */
                class GetInstanceGroupManagerRequest implements IGetInstanceGroupManagerRequest {

                    /**
                     * Constructs a new GetInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInstanceGroupManagerRequest);

                    /** GetInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** GetInstanceGroupManagerRequest project. */
                    public project: string;

                    /** GetInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInstanceGroupManagerRequest): google.cloud.compute.v1.GetInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified GetInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInstanceGroupManagerRequest;

                    /**
                     * Decodes a GetInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInstanceGroupManagerRequest;

                    /**
                     * Verifies a GetInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a GetInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceGroupManagerResizeRequestRequest. */
                interface IGetInstanceGroupManagerResizeRequestRequest {

                    /** GetInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** GetInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** GetInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);

                    /** GetInstanceGroupManagerResizeRequestRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceGroupManagerResizeRequestRequest. */
                class GetInstanceGroupManagerResizeRequestRequest implements IGetInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new GetInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInstanceGroupManagerResizeRequestRequest);

                    /** GetInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** GetInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** GetInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /** GetInstanceGroupManagerResizeRequestRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified GetInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message GetInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message GetInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a GetInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a GetInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a GetInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceGroupRequest. */
                interface IGetInstanceGroupRequest {

                    /** GetInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** GetInstanceGroupRequest project */
                    project?: (string|null);

                    /** GetInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceGroupRequest. */
                class GetInstanceGroupRequest implements IGetInstanceGroupRequest {

                    /**
                     * Constructs a new GetInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInstanceGroupRequest);

                    /** GetInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** GetInstanceGroupRequest project. */
                    public project: string;

                    /** GetInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInstanceGroupRequest): google.cloud.compute.v1.GetInstanceGroupRequest;

                    /**
                     * Encodes the specified GetInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInstanceGroupRequest.verify|verify} messages.
                     * @param message GetInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInstanceGroupRequest.verify|verify} messages.
                     * @param message GetInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInstanceGroupRequest;

                    /**
                     * Decodes a GetInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInstanceGroupRequest;

                    /**
                     * Verifies a GetInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInstanceGroupRequest;

                    /**
                     * Creates a plain object from a GetInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceRequest. */
                interface IGetInstanceRequest {

                    /** GetInstanceRequest instance */
                    instance?: (string|null);

                    /** GetInstanceRequest project */
                    project?: (string|null);

                    /** GetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceRequest. */
                class GetInstanceRequest implements IGetInstanceRequest {

                    /**
                     * Constructs a new GetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInstanceRequest);

                    /** GetInstanceRequest instance. */
                    public instance: string;

                    /** GetInstanceRequest project. */
                    public project: string;

                    /** GetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInstanceRequest): google.cloud.compute.v1.GetInstanceRequest;

                    /**
                     * Encodes the specified GetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInstanceRequest.verify|verify} messages.
                     * @param message GetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInstanceRequest.verify|verify} messages.
                     * @param message GetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInstanceRequest;

                    /**
                     * Decodes a GetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInstanceRequest;

                    /**
                     * Verifies a GetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInstanceRequest;

                    /**
                     * Creates a plain object from a GetInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceSettingRequest. */
                interface IGetInstanceSettingRequest {

                    /** GetInstanceSettingRequest project */
                    project?: (string|null);

                    /** GetInstanceSettingRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceSettingRequest. */
                class GetInstanceSettingRequest implements IGetInstanceSettingRequest {

                    /**
                     * Constructs a new GetInstanceSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInstanceSettingRequest);

                    /** GetInstanceSettingRequest project. */
                    public project: string;

                    /** GetInstanceSettingRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInstanceSettingRequest): google.cloud.compute.v1.GetInstanceSettingRequest;

                    /**
                     * Encodes the specified GetInstanceSettingRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInstanceSettingRequest.verify|verify} messages.
                     * @param message GetInstanceSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInstanceSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInstanceSettingRequest.verify|verify} messages.
                     * @param message GetInstanceSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInstanceSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInstanceSettingRequest;

                    /**
                     * Decodes a GetInstanceSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInstanceSettingRequest;

                    /**
                     * Verifies a GetInstanceSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInstanceSettingRequest;

                    /**
                     * Creates a plain object from a GetInstanceSettingRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInstanceSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceTemplateRequest. */
                interface IGetInstanceTemplateRequest {

                    /** GetInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** GetInstanceTemplateRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInstanceTemplateRequest. */
                class GetInstanceTemplateRequest implements IGetInstanceTemplateRequest {

                    /**
                     * Constructs a new GetInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInstanceTemplateRequest);

                    /** GetInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate: string;

                    /** GetInstanceTemplateRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInstanceTemplateRequest): google.cloud.compute.v1.GetInstanceTemplateRequest;

                    /**
                     * Encodes the specified GetInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInstanceTemplateRequest;

                    /**
                     * Decodes a GetInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInstanceTemplateRequest;

                    /**
                     * Verifies a GetInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a GetInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstantSnapshotRequest. */
                interface IGetInstantSnapshotRequest {

                    /** GetInstantSnapshotRequest instantSnapshot */
                    instantSnapshot?: (string|null);

                    /** GetInstantSnapshotRequest project */
                    project?: (string|null);

                    /** GetInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstantSnapshotRequest. */
                class GetInstantSnapshotRequest implements IGetInstantSnapshotRequest {

                    /**
                     * Constructs a new GetInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInstantSnapshotRequest);

                    /** GetInstantSnapshotRequest instantSnapshot. */
                    public instantSnapshot: string;

                    /** GetInstantSnapshotRequest project. */
                    public project: string;

                    /** GetInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInstantSnapshotRequest): google.cloud.compute.v1.GetInstantSnapshotRequest;

                    /**
                     * Encodes the specified GetInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInstantSnapshotRequest;

                    /**
                     * Decodes a GetInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInstantSnapshotRequest;

                    /**
                     * Verifies a GetInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a GetInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectAttachmentGroupRequest. */
                interface IGetInterconnectAttachmentGroupRequest {

                    /** GetInterconnectAttachmentGroupRequest interconnectAttachmentGroup */
                    interconnectAttachmentGroup?: (string|null);

                    /** GetInterconnectAttachmentGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectAttachmentGroupRequest. */
                class GetInterconnectAttachmentGroupRequest implements IGetInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new GetInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInterconnectAttachmentGroupRequest);

                    /** GetInterconnectAttachmentGroupRequest interconnectAttachmentGroup. */
                    public interconnectAttachmentGroup: string;

                    /** GetInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInterconnectAttachmentGroupRequest): google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified GetInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a GetInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a GetInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a GetInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectAttachmentRequest. */
                interface IGetInterconnectAttachmentRequest {

                    /** GetInterconnectAttachmentRequest interconnectAttachment */
                    interconnectAttachment?: (string|null);

                    /** GetInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** GetInterconnectAttachmentRequest region */
                    region?: (string|null);
                }

                /** Represents a GetInterconnectAttachmentRequest. */
                class GetInterconnectAttachmentRequest implements IGetInterconnectAttachmentRequest {

                    /**
                     * Constructs a new GetInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInterconnectAttachmentRequest);

                    /** GetInterconnectAttachmentRequest interconnectAttachment. */
                    public interconnectAttachment: string;

                    /** GetInterconnectAttachmentRequest project. */
                    public project: string;

                    /** GetInterconnectAttachmentRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInterconnectAttachmentRequest): google.cloud.compute.v1.GetInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified GetInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message GetInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message GetInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInterconnectAttachmentRequest;

                    /**
                     * Decodes a GetInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInterconnectAttachmentRequest;

                    /**
                     * Verifies a GetInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a GetInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectGroupRequest. */
                interface IGetInterconnectGroupRequest {

                    /** GetInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** GetInterconnectGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectGroupRequest. */
                class GetInterconnectGroupRequest implements IGetInterconnectGroupRequest {

                    /**
                     * Constructs a new GetInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInterconnectGroupRequest);

                    /** GetInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** GetInterconnectGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInterconnectGroupRequest): google.cloud.compute.v1.GetInterconnectGroupRequest;

                    /**
                     * Encodes the specified GetInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInterconnectGroupRequest;

                    /**
                     * Decodes a GetInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInterconnectGroupRequest;

                    /**
                     * Verifies a GetInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a GetInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectLocationRequest. */
                interface IGetInterconnectLocationRequest {

                    /** GetInterconnectLocationRequest interconnectLocation */
                    interconnectLocation?: (string|null);

                    /** GetInterconnectLocationRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectLocationRequest. */
                class GetInterconnectLocationRequest implements IGetInterconnectLocationRequest {

                    /**
                     * Constructs a new GetInterconnectLocationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInterconnectLocationRequest);

                    /** GetInterconnectLocationRequest interconnectLocation. */
                    public interconnectLocation: string;

                    /** GetInterconnectLocationRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectLocationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectLocationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInterconnectLocationRequest): google.cloud.compute.v1.GetInterconnectLocationRequest;

                    /**
                     * Encodes the specified GetInterconnectLocationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectLocationRequest.verify|verify} messages.
                     * @param message GetInterconnectLocationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInterconnectLocationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectLocationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectLocationRequest.verify|verify} messages.
                     * @param message GetInterconnectLocationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInterconnectLocationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectLocationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectLocationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInterconnectLocationRequest;

                    /**
                     * Decodes a GetInterconnectLocationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectLocationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInterconnectLocationRequest;

                    /**
                     * Verifies a GetInterconnectLocationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectLocationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectLocationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInterconnectLocationRequest;

                    /**
                     * Creates a plain object from a GetInterconnectLocationRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectLocationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInterconnectLocationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectLocationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectLocationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectRemoteLocationRequest. */
                interface IGetInterconnectRemoteLocationRequest {

                    /** GetInterconnectRemoteLocationRequest interconnectRemoteLocation */
                    interconnectRemoteLocation?: (string|null);

                    /** GetInterconnectRemoteLocationRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectRemoteLocationRequest. */
                class GetInterconnectRemoteLocationRequest implements IGetInterconnectRemoteLocationRequest {

                    /**
                     * Constructs a new GetInterconnectRemoteLocationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInterconnectRemoteLocationRequest);

                    /** GetInterconnectRemoteLocationRequest interconnectRemoteLocation. */
                    public interconnectRemoteLocation: string;

                    /** GetInterconnectRemoteLocationRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectRemoteLocationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectRemoteLocationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInterconnectRemoteLocationRequest): google.cloud.compute.v1.GetInterconnectRemoteLocationRequest;

                    /**
                     * Encodes the specified GetInterconnectRemoteLocationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectRemoteLocationRequest.verify|verify} messages.
                     * @param message GetInterconnectRemoteLocationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInterconnectRemoteLocationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectRemoteLocationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectRemoteLocationRequest.verify|verify} messages.
                     * @param message GetInterconnectRemoteLocationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInterconnectRemoteLocationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectRemoteLocationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectRemoteLocationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInterconnectRemoteLocationRequest;

                    /**
                     * Decodes a GetInterconnectRemoteLocationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectRemoteLocationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInterconnectRemoteLocationRequest;

                    /**
                     * Verifies a GetInterconnectRemoteLocationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectRemoteLocationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectRemoteLocationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInterconnectRemoteLocationRequest;

                    /**
                     * Creates a plain object from a GetInterconnectRemoteLocationRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectRemoteLocationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInterconnectRemoteLocationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectRemoteLocationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectRemoteLocationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectRequest. */
                interface IGetInterconnectRequest {

                    /** GetInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** GetInterconnectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectRequest. */
                class GetInterconnectRequest implements IGetInterconnectRequest {

                    /**
                     * Constructs a new GetInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetInterconnectRequest);

                    /** GetInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** GetInterconnectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetInterconnectRequest): google.cloud.compute.v1.GetInterconnectRequest;

                    /**
                     * Encodes the specified GetInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectRequest.verify|verify} messages.
                     * @param message GetInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetInterconnectRequest.verify|verify} messages.
                     * @param message GetInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetInterconnectRequest;

                    /**
                     * Decodes a GetInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetInterconnectRequest;

                    /**
                     * Verifies a GetInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetInterconnectRequest;

                    /**
                     * Creates a plain object from a GetInterconnectRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetLicenseCodeRequest. */
                interface IGetLicenseCodeRequest {

                    /** GetLicenseCodeRequest licenseCode */
                    licenseCode?: (string|null);

                    /** GetLicenseCodeRequest project */
                    project?: (string|null);
                }

                /** Represents a GetLicenseCodeRequest. */
                class GetLicenseCodeRequest implements IGetLicenseCodeRequest {

                    /**
                     * Constructs a new GetLicenseCodeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetLicenseCodeRequest);

                    /** GetLicenseCodeRequest licenseCode. */
                    public licenseCode: string;

                    /** GetLicenseCodeRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetLicenseCodeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetLicenseCodeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetLicenseCodeRequest): google.cloud.compute.v1.GetLicenseCodeRequest;

                    /**
                     * Encodes the specified GetLicenseCodeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetLicenseCodeRequest.verify|verify} messages.
                     * @param message GetLicenseCodeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetLicenseCodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetLicenseCodeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetLicenseCodeRequest.verify|verify} messages.
                     * @param message GetLicenseCodeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetLicenseCodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetLicenseCodeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetLicenseCodeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetLicenseCodeRequest;

                    /**
                     * Decodes a GetLicenseCodeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetLicenseCodeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetLicenseCodeRequest;

                    /**
                     * Verifies a GetLicenseCodeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetLicenseCodeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetLicenseCodeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetLicenseCodeRequest;

                    /**
                     * Creates a plain object from a GetLicenseCodeRequest message. Also converts values to other types if specified.
                     * @param message GetLicenseCodeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetLicenseCodeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetLicenseCodeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetLicenseCodeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetLicenseRequest. */
                interface IGetLicenseRequest {

                    /** GetLicenseRequest license */
                    license?: (string|null);

                    /** GetLicenseRequest project */
                    project?: (string|null);
                }

                /** Represents a GetLicenseRequest. */
                class GetLicenseRequest implements IGetLicenseRequest {

                    /**
                     * Constructs a new GetLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetLicenseRequest);

                    /** GetLicenseRequest license. */
                    public license: string;

                    /** GetLicenseRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetLicenseRequest): google.cloud.compute.v1.GetLicenseRequest;

                    /**
                     * Encodes the specified GetLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1.GetLicenseRequest.verify|verify} messages.
                     * @param message GetLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetLicenseRequest.verify|verify} messages.
                     * @param message GetLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetLicenseRequest;

                    /**
                     * Decodes a GetLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetLicenseRequest;

                    /**
                     * Verifies a GetLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetLicenseRequest;

                    /**
                     * Creates a plain object from a GetLicenseRequest message. Also converts values to other types if specified.
                     * @param message GetLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetMachineImageRequest. */
                interface IGetMachineImageRequest {

                    /** GetMachineImageRequest machineImage */
                    machineImage?: (string|null);

                    /** GetMachineImageRequest project */
                    project?: (string|null);
                }

                /** Represents a GetMachineImageRequest. */
                class GetMachineImageRequest implements IGetMachineImageRequest {

                    /**
                     * Constructs a new GetMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetMachineImageRequest);

                    /** GetMachineImageRequest machineImage. */
                    public machineImage: string;

                    /** GetMachineImageRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetMachineImageRequest): google.cloud.compute.v1.GetMachineImageRequest;

                    /**
                     * Encodes the specified GetMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1.GetMachineImageRequest.verify|verify} messages.
                     * @param message GetMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetMachineImageRequest.verify|verify} messages.
                     * @param message GetMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetMachineImageRequest;

                    /**
                     * Decodes a GetMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetMachineImageRequest;

                    /**
                     * Verifies a GetMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetMachineImageRequest;

                    /**
                     * Creates a plain object from a GetMachineImageRequest message. Also converts values to other types if specified.
                     * @param message GetMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetMachineTypeRequest. */
                interface IGetMachineTypeRequest {

                    /** GetMachineTypeRequest machineType */
                    machineType?: (string|null);

                    /** GetMachineTypeRequest project */
                    project?: (string|null);

                    /** GetMachineTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetMachineTypeRequest. */
                class GetMachineTypeRequest implements IGetMachineTypeRequest {

                    /**
                     * Constructs a new GetMachineTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetMachineTypeRequest);

                    /** GetMachineTypeRequest machineType. */
                    public machineType: string;

                    /** GetMachineTypeRequest project. */
                    public project: string;

                    /** GetMachineTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetMachineTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetMachineTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetMachineTypeRequest): google.cloud.compute.v1.GetMachineTypeRequest;

                    /**
                     * Encodes the specified GetMachineTypeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetMachineTypeRequest.verify|verify} messages.
                     * @param message GetMachineTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetMachineTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetMachineTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetMachineTypeRequest.verify|verify} messages.
                     * @param message GetMachineTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetMachineTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetMachineTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetMachineTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetMachineTypeRequest;

                    /**
                     * Decodes a GetMachineTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetMachineTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetMachineTypeRequest;

                    /**
                     * Verifies a GetMachineTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetMachineTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetMachineTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetMachineTypeRequest;

                    /**
                     * Creates a plain object from a GetMachineTypeRequest message. Also converts values to other types if specified.
                     * @param message GetMachineTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetMachineTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetMachineTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetMachineTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetMacsecConfigInterconnectRequest. */
                interface IGetMacsecConfigInterconnectRequest {

                    /** GetMacsecConfigInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** GetMacsecConfigInterconnectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetMacsecConfigInterconnectRequest. */
                class GetMacsecConfigInterconnectRequest implements IGetMacsecConfigInterconnectRequest {

                    /**
                     * Constructs a new GetMacsecConfigInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetMacsecConfigInterconnectRequest);

                    /** GetMacsecConfigInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** GetMacsecConfigInterconnectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetMacsecConfigInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetMacsecConfigInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetMacsecConfigInterconnectRequest): google.cloud.compute.v1.GetMacsecConfigInterconnectRequest;

                    /**
                     * Encodes the specified GetMacsecConfigInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1.GetMacsecConfigInterconnectRequest.verify|verify} messages.
                     * @param message GetMacsecConfigInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetMacsecConfigInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetMacsecConfigInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetMacsecConfigInterconnectRequest.verify|verify} messages.
                     * @param message GetMacsecConfigInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetMacsecConfigInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetMacsecConfigInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetMacsecConfigInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetMacsecConfigInterconnectRequest;

                    /**
                     * Decodes a GetMacsecConfigInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetMacsecConfigInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetMacsecConfigInterconnectRequest;

                    /**
                     * Verifies a GetMacsecConfigInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetMacsecConfigInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetMacsecConfigInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetMacsecConfigInterconnectRequest;

                    /**
                     * Creates a plain object from a GetMacsecConfigInterconnectRequest message. Also converts values to other types if specified.
                     * @param message GetMacsecConfigInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetMacsecConfigInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetMacsecConfigInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetMacsecConfigInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNatIpInfoRouterRequest. */
                interface IGetNatIpInfoRouterRequest {

                    /** GetNatIpInfoRouterRequest natName */
                    natName?: (string|null);

                    /** GetNatIpInfoRouterRequest project */
                    project?: (string|null);

                    /** GetNatIpInfoRouterRequest region */
                    region?: (string|null);

                    /** GetNatIpInfoRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetNatIpInfoRouterRequest. */
                class GetNatIpInfoRouterRequest implements IGetNatIpInfoRouterRequest {

                    /**
                     * Constructs a new GetNatIpInfoRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNatIpInfoRouterRequest);

                    /** GetNatIpInfoRouterRequest natName. */
                    public natName?: (string|null);

                    /** GetNatIpInfoRouterRequest project. */
                    public project: string;

                    /** GetNatIpInfoRouterRequest region. */
                    public region: string;

                    /** GetNatIpInfoRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetNatIpInfoRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNatIpInfoRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNatIpInfoRouterRequest): google.cloud.compute.v1.GetNatIpInfoRouterRequest;

                    /**
                     * Encodes the specified GetNatIpInfoRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNatIpInfoRouterRequest.verify|verify} messages.
                     * @param message GetNatIpInfoRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNatIpInfoRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNatIpInfoRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNatIpInfoRouterRequest.verify|verify} messages.
                     * @param message GetNatIpInfoRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNatIpInfoRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNatIpInfoRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNatIpInfoRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNatIpInfoRouterRequest;

                    /**
                     * Decodes a GetNatIpInfoRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNatIpInfoRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNatIpInfoRouterRequest;

                    /**
                     * Verifies a GetNatIpInfoRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNatIpInfoRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNatIpInfoRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNatIpInfoRouterRequest;

                    /**
                     * Creates a plain object from a GetNatIpInfoRouterRequest message. Also converts values to other types if specified.
                     * @param message GetNatIpInfoRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNatIpInfoRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNatIpInfoRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNatIpInfoRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNatMappingInfoRoutersRequest. */
                interface IGetNatMappingInfoRoutersRequest {

                    /** GetNatMappingInfoRoutersRequest filter */
                    filter?: (string|null);

                    /** GetNatMappingInfoRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** GetNatMappingInfoRoutersRequest natName */
                    natName?: (string|null);

                    /** GetNatMappingInfoRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** GetNatMappingInfoRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** GetNatMappingInfoRoutersRequest project */
                    project?: (string|null);

                    /** GetNatMappingInfoRoutersRequest region */
                    region?: (string|null);

                    /** GetNatMappingInfoRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** GetNatMappingInfoRoutersRequest router */
                    router?: (string|null);
                }

                /** Represents a GetNatMappingInfoRoutersRequest. */
                class GetNatMappingInfoRoutersRequest implements IGetNatMappingInfoRoutersRequest {

                    /**
                     * Constructs a new GetNatMappingInfoRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNatMappingInfoRoutersRequest);

                    /** GetNatMappingInfoRoutersRequest filter. */
                    public filter?: (string|null);

                    /** GetNatMappingInfoRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** GetNatMappingInfoRoutersRequest natName. */
                    public natName?: (string|null);

                    /** GetNatMappingInfoRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** GetNatMappingInfoRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** GetNatMappingInfoRoutersRequest project. */
                    public project: string;

                    /** GetNatMappingInfoRoutersRequest region. */
                    public region: string;

                    /** GetNatMappingInfoRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** GetNatMappingInfoRoutersRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetNatMappingInfoRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNatMappingInfoRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNatMappingInfoRoutersRequest): google.cloud.compute.v1.GetNatMappingInfoRoutersRequest;

                    /**
                     * Encodes the specified GetNatMappingInfoRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNatMappingInfoRoutersRequest.verify|verify} messages.
                     * @param message GetNatMappingInfoRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNatMappingInfoRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNatMappingInfoRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNatMappingInfoRoutersRequest.verify|verify} messages.
                     * @param message GetNatMappingInfoRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNatMappingInfoRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNatMappingInfoRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNatMappingInfoRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNatMappingInfoRoutersRequest;

                    /**
                     * Decodes a GetNatMappingInfoRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNatMappingInfoRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNatMappingInfoRoutersRequest;

                    /**
                     * Verifies a GetNatMappingInfoRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNatMappingInfoRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNatMappingInfoRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNatMappingInfoRoutersRequest;

                    /**
                     * Creates a plain object from a GetNatMappingInfoRoutersRequest message. Also converts values to other types if specified.
                     * @param message GetNatMappingInfoRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNatMappingInfoRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNatMappingInfoRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNatMappingInfoRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkAttachmentRequest. */
                interface IGetNetworkAttachmentRequest {

                    /** GetNetworkAttachmentRequest networkAttachment */
                    networkAttachment?: (string|null);

                    /** GetNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** GetNetworkAttachmentRequest region */
                    region?: (string|null);
                }

                /** Represents a GetNetworkAttachmentRequest. */
                class GetNetworkAttachmentRequest implements IGetNetworkAttachmentRequest {

                    /**
                     * Constructs a new GetNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNetworkAttachmentRequest);

                    /** GetNetworkAttachmentRequest networkAttachment. */
                    public networkAttachment: string;

                    /** GetNetworkAttachmentRequest project. */
                    public project: string;

                    /** GetNetworkAttachmentRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNetworkAttachmentRequest): google.cloud.compute.v1.GetNetworkAttachmentRequest;

                    /**
                     * Encodes the specified GetNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNetworkAttachmentRequest.verify|verify} messages.
                     * @param message GetNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNetworkAttachmentRequest.verify|verify} messages.
                     * @param message GetNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNetworkAttachmentRequest;

                    /**
                     * Decodes a GetNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNetworkAttachmentRequest;

                    /**
                     * Verifies a GetNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a GetNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkEdgeSecurityServiceRequest. */
                interface IGetNetworkEdgeSecurityServiceRequest {

                    /** GetNetworkEdgeSecurityServiceRequest networkEdgeSecurityService */
                    networkEdgeSecurityService?: (string|null);

                    /** GetNetworkEdgeSecurityServiceRequest project */
                    project?: (string|null);

                    /** GetNetworkEdgeSecurityServiceRequest region */
                    region?: (string|null);
                }

                /** Represents a GetNetworkEdgeSecurityServiceRequest. */
                class GetNetworkEdgeSecurityServiceRequest implements IGetNetworkEdgeSecurityServiceRequest {

                    /**
                     * Constructs a new GetNetworkEdgeSecurityServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNetworkEdgeSecurityServiceRequest);

                    /** GetNetworkEdgeSecurityServiceRequest networkEdgeSecurityService. */
                    public networkEdgeSecurityService: string;

                    /** GetNetworkEdgeSecurityServiceRequest project. */
                    public project: string;

                    /** GetNetworkEdgeSecurityServiceRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetNetworkEdgeSecurityServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkEdgeSecurityServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNetworkEdgeSecurityServiceRequest): google.cloud.compute.v1.GetNetworkEdgeSecurityServiceRequest;

                    /**
                     * Encodes the specified GetNetworkEdgeSecurityServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message GetNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkEdgeSecurityServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message GetNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkEdgeSecurityServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNetworkEdgeSecurityServiceRequest;

                    /**
                     * Decodes a GetNetworkEdgeSecurityServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNetworkEdgeSecurityServiceRequest;

                    /**
                     * Verifies a GetNetworkEdgeSecurityServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkEdgeSecurityServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkEdgeSecurityServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNetworkEdgeSecurityServiceRequest;

                    /**
                     * Creates a plain object from a GetNetworkEdgeSecurityServiceRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkEdgeSecurityServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNetworkEdgeSecurityServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkEdgeSecurityServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkEdgeSecurityServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkEndpointGroupRequest. */
                interface IGetNetworkEndpointGroupRequest {

                    /** GetNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** GetNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** GetNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetNetworkEndpointGroupRequest. */
                class GetNetworkEndpointGroupRequest implements IGetNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new GetNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNetworkEndpointGroupRequest);

                    /** GetNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** GetNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** GetNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNetworkEndpointGroupRequest): google.cloud.compute.v1.GetNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified GetNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNetworkEndpointGroupRequest;

                    /**
                     * Decodes a GetNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNetworkEndpointGroupRequest;

                    /**
                     * Verifies a GetNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a GetNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkFirewallPolicyRequest. */
                interface IGetNetworkFirewallPolicyRequest {

                    /** GetNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetNetworkFirewallPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetNetworkFirewallPolicyRequest. */
                class GetNetworkFirewallPolicyRequest implements IGetNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNetworkFirewallPolicyRequest);

                    /** GetNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkProfileRequest. */
                interface IGetNetworkProfileRequest {

                    /** GetNetworkProfileRequest networkProfile */
                    networkProfile?: (string|null);

                    /** GetNetworkProfileRequest project */
                    project?: (string|null);
                }

                /** Represents a GetNetworkProfileRequest. */
                class GetNetworkProfileRequest implements IGetNetworkProfileRequest {

                    /**
                     * Constructs a new GetNetworkProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNetworkProfileRequest);

                    /** GetNetworkProfileRequest networkProfile. */
                    public networkProfile: string;

                    /** GetNetworkProfileRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetNetworkProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkProfileRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNetworkProfileRequest): google.cloud.compute.v1.GetNetworkProfileRequest;

                    /**
                     * Encodes the specified GetNetworkProfileRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNetworkProfileRequest.verify|verify} messages.
                     * @param message GetNetworkProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNetworkProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkProfileRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNetworkProfileRequest.verify|verify} messages.
                     * @param message GetNetworkProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNetworkProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNetworkProfileRequest;

                    /**
                     * Decodes a GetNetworkProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNetworkProfileRequest;

                    /**
                     * Verifies a GetNetworkProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNetworkProfileRequest;

                    /**
                     * Creates a plain object from a GetNetworkProfileRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNetworkProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkRequest. */
                interface IGetNetworkRequest {

                    /** GetNetworkRequest network */
                    network?: (string|null);

                    /** GetNetworkRequest project */
                    project?: (string|null);
                }

                /** Represents a GetNetworkRequest. */
                class GetNetworkRequest implements IGetNetworkRequest {

                    /**
                     * Constructs a new GetNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNetworkRequest);

                    /** GetNetworkRequest network. */
                    public network: string;

                    /** GetNetworkRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNetworkRequest): google.cloud.compute.v1.GetNetworkRequest;

                    /**
                     * Encodes the specified GetNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNetworkRequest.verify|verify} messages.
                     * @param message GetNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNetworkRequest.verify|verify} messages.
                     * @param message GetNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNetworkRequest;

                    /**
                     * Decodes a GetNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNetworkRequest;

                    /**
                     * Verifies a GetNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNetworkRequest;

                    /**
                     * Creates a plain object from a GetNetworkRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNodeGroupRequest. */
                interface IGetNodeGroupRequest {

                    /** GetNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** GetNodeGroupRequest project */
                    project?: (string|null);

                    /** GetNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetNodeGroupRequest. */
                class GetNodeGroupRequest implements IGetNodeGroupRequest {

                    /**
                     * Constructs a new GetNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNodeGroupRequest);

                    /** GetNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** GetNodeGroupRequest project. */
                    public project: string;

                    /** GetNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNodeGroupRequest): google.cloud.compute.v1.GetNodeGroupRequest;

                    /**
                     * Encodes the specified GetNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNodeGroupRequest.verify|verify} messages.
                     * @param message GetNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNodeGroupRequest.verify|verify} messages.
                     * @param message GetNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNodeGroupRequest;

                    /**
                     * Decodes a GetNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNodeGroupRequest;

                    /**
                     * Verifies a GetNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNodeGroupRequest;

                    /**
                     * Creates a plain object from a GetNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message GetNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNodeTemplateRequest. */
                interface IGetNodeTemplateRequest {

                    /** GetNodeTemplateRequest nodeTemplate */
                    nodeTemplate?: (string|null);

                    /** GetNodeTemplateRequest project */
                    project?: (string|null);

                    /** GetNodeTemplateRequest region */
                    region?: (string|null);
                }

                /** Represents a GetNodeTemplateRequest. */
                class GetNodeTemplateRequest implements IGetNodeTemplateRequest {

                    /**
                     * Constructs a new GetNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNodeTemplateRequest);

                    /** GetNodeTemplateRequest nodeTemplate. */
                    public nodeTemplate: string;

                    /** GetNodeTemplateRequest project. */
                    public project: string;

                    /** GetNodeTemplateRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNodeTemplateRequest): google.cloud.compute.v1.GetNodeTemplateRequest;

                    /**
                     * Encodes the specified GetNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNodeTemplateRequest.verify|verify} messages.
                     * @param message GetNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNodeTemplateRequest.verify|verify} messages.
                     * @param message GetNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNodeTemplateRequest;

                    /**
                     * Decodes a GetNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNodeTemplateRequest;

                    /**
                     * Verifies a GetNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNodeTemplateRequest;

                    /**
                     * Creates a plain object from a GetNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNodeTypeRequest. */
                interface IGetNodeTypeRequest {

                    /** GetNodeTypeRequest nodeType */
                    nodeType?: (string|null);

                    /** GetNodeTypeRequest project */
                    project?: (string|null);

                    /** GetNodeTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetNodeTypeRequest. */
                class GetNodeTypeRequest implements IGetNodeTypeRequest {

                    /**
                     * Constructs a new GetNodeTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetNodeTypeRequest);

                    /** GetNodeTypeRequest nodeType. */
                    public nodeType: string;

                    /** GetNodeTypeRequest project. */
                    public project: string;

                    /** GetNodeTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetNodeTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNodeTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetNodeTypeRequest): google.cloud.compute.v1.GetNodeTypeRequest;

                    /**
                     * Encodes the specified GetNodeTypeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetNodeTypeRequest.verify|verify} messages.
                     * @param message GetNodeTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetNodeTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNodeTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetNodeTypeRequest.verify|verify} messages.
                     * @param message GetNodeTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetNodeTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNodeTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNodeTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetNodeTypeRequest;

                    /**
                     * Decodes a GetNodeTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNodeTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetNodeTypeRequest;

                    /**
                     * Verifies a GetNodeTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNodeTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNodeTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetNodeTypeRequest;

                    /**
                     * Creates a plain object from a GetNodeTypeRequest message. Also converts values to other types if specified.
                     * @param message GetNodeTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetNodeTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNodeTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNodeTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetOperationalStatusInterconnectAttachmentGroupRequest. */
                interface IGetOperationalStatusInterconnectAttachmentGroupRequest {

                    /** GetOperationalStatusInterconnectAttachmentGroupRequest interconnectAttachmentGroup */
                    interconnectAttachmentGroup?: (string|null);

                    /** GetOperationalStatusInterconnectAttachmentGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetOperationalStatusInterconnectAttachmentGroupRequest. */
                class GetOperationalStatusInterconnectAttachmentGroupRequest implements IGetOperationalStatusInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new GetOperationalStatusInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetOperationalStatusInterconnectAttachmentGroupRequest);

                    /** GetOperationalStatusInterconnectAttachmentGroupRequest interconnectAttachmentGroup. */
                    public interconnectAttachmentGroup: string;

                    /** GetOperationalStatusInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetOperationalStatusInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetOperationalStatusInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetOperationalStatusInterconnectAttachmentGroupRequest): google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified GetOperationalStatusInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetOperationalStatusInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetOperationalStatusInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetOperationalStatusInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetOperationalStatusInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetOperationalStatusInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetOperationalStatusInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetOperationalStatusInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a GetOperationalStatusInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetOperationalStatusInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a GetOperationalStatusInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetOperationalStatusInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetOperationalStatusInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a GetOperationalStatusInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message GetOperationalStatusInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetOperationalStatusInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetOperationalStatusInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetOperationalStatusInterconnectGroupRequest. */
                interface IGetOperationalStatusInterconnectGroupRequest {

                    /** GetOperationalStatusInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** GetOperationalStatusInterconnectGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetOperationalStatusInterconnectGroupRequest. */
                class GetOperationalStatusInterconnectGroupRequest implements IGetOperationalStatusInterconnectGroupRequest {

                    /**
                     * Constructs a new GetOperationalStatusInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetOperationalStatusInterconnectGroupRequest);

                    /** GetOperationalStatusInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** GetOperationalStatusInterconnectGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetOperationalStatusInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetOperationalStatusInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetOperationalStatusInterconnectGroupRequest): google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest;

                    /**
                     * Encodes the specified GetOperationalStatusInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetOperationalStatusInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetOperationalStatusInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetOperationalStatusInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetOperationalStatusInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetOperationalStatusInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetOperationalStatusInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetOperationalStatusInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest;

                    /**
                     * Decodes a GetOperationalStatusInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetOperationalStatusInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest;

                    /**
                     * Verifies a GetOperationalStatusInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetOperationalStatusInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetOperationalStatusInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a GetOperationalStatusInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message GetOperationalStatusInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetOperationalStatusInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetOperationalStatusInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetOrganizationSecurityPolicyRequest. */
                interface IGetOrganizationSecurityPolicyRequest {

                    /** GetOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetOrganizationSecurityPolicyRequest. */
                class GetOrganizationSecurityPolicyRequest implements IGetOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new GetOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetOrganizationSecurityPolicyRequest);

                    /** GetOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetOrganizationSecurityPolicyRequest): google.cloud.compute.v1.GetOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a GetOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a GetOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPacketMirroringRequest. */
                interface IGetPacketMirroringRequest {

                    /** GetPacketMirroringRequest packetMirroring */
                    packetMirroring?: (string|null);

                    /** GetPacketMirroringRequest project */
                    project?: (string|null);

                    /** GetPacketMirroringRequest region */
                    region?: (string|null);
                }

                /** Represents a GetPacketMirroringRequest. */
                class GetPacketMirroringRequest implements IGetPacketMirroringRequest {

                    /**
                     * Constructs a new GetPacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetPacketMirroringRequest);

                    /** GetPacketMirroringRequest packetMirroring. */
                    public packetMirroring: string;

                    /** GetPacketMirroringRequest project. */
                    public project: string;

                    /** GetPacketMirroringRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetPacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetPacketMirroringRequest): google.cloud.compute.v1.GetPacketMirroringRequest;

                    /**
                     * Encodes the specified GetPacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1.GetPacketMirroringRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetPacketMirroringRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetPacketMirroringRequest;

                    /**
                     * Decodes a GetPacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetPacketMirroringRequest;

                    /**
                     * Verifies a GetPacketMirroringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetPacketMirroringRequest;

                    /**
                     * Creates a plain object from a GetPacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message GetPacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetPacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPacketMirroringRuleNetworkFirewallPolicyRequest. */
                interface IGetPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetPacketMirroringRuleNetworkFirewallPolicyRequest. */
                class GetPacketMirroringRuleNetworkFirewallPolicyRequest implements IGetPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetPacketMirroringRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetPacketMirroringRuleNetworkFirewallPolicyRequest);

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetPacketMirroringRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPacketMirroringRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetPacketMirroringRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetPacketMirroringRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPacketMirroringRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetPacketMirroringRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPacketMirroringRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetPacketMirroringRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetPacketMirroringRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPacketMirroringRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPreviewFeatureRequest. */
                interface IGetPreviewFeatureRequest {

                    /** GetPreviewFeatureRequest previewFeature */
                    previewFeature?: (string|null);

                    /** GetPreviewFeatureRequest project */
                    project?: (string|null);
                }

                /** Represents a GetPreviewFeatureRequest. */
                class GetPreviewFeatureRequest implements IGetPreviewFeatureRequest {

                    /**
                     * Constructs a new GetPreviewFeatureRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetPreviewFeatureRequest);

                    /** GetPreviewFeatureRequest previewFeature. */
                    public previewFeature: string;

                    /** GetPreviewFeatureRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetPreviewFeatureRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPreviewFeatureRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetPreviewFeatureRequest): google.cloud.compute.v1.GetPreviewFeatureRequest;

                    /**
                     * Encodes the specified GetPreviewFeatureRequest message. Does not implicitly {@link google.cloud.compute.v1.GetPreviewFeatureRequest.verify|verify} messages.
                     * @param message GetPreviewFeatureRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetPreviewFeatureRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPreviewFeatureRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetPreviewFeatureRequest.verify|verify} messages.
                     * @param message GetPreviewFeatureRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetPreviewFeatureRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPreviewFeatureRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPreviewFeatureRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetPreviewFeatureRequest;

                    /**
                     * Decodes a GetPreviewFeatureRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPreviewFeatureRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetPreviewFeatureRequest;

                    /**
                     * Verifies a GetPreviewFeatureRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPreviewFeatureRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPreviewFeatureRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetPreviewFeatureRequest;

                    /**
                     * Creates a plain object from a GetPreviewFeatureRequest message. Also converts values to other types if specified.
                     * @param message GetPreviewFeatureRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetPreviewFeatureRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPreviewFeatureRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPreviewFeatureRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetProjectRequest. */
                interface IGetProjectRequest {

                    /** GetProjectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetProjectRequest. */
                class GetProjectRequest implements IGetProjectRequest {

                    /**
                     * Constructs a new GetProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetProjectRequest);

                    /** GetProjectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetProjectRequest): google.cloud.compute.v1.GetProjectRequest;

                    /**
                     * Encodes the specified GetProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.GetProjectRequest.verify|verify} messages.
                     * @param message GetProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetProjectRequest.verify|verify} messages.
                     * @param message GetProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetProjectRequest;

                    /**
                     * Decodes a GetProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetProjectRequest;

                    /**
                     * Verifies a GetProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetProjectRequest;

                    /**
                     * Creates a plain object from a GetProjectRequest message. Also converts values to other types if specified.
                     * @param message GetProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPublicAdvertisedPrefixeRequest. */
                interface IGetPublicAdvertisedPrefixeRequest {

                    /** GetPublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** GetPublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);
                }

                /** Represents a GetPublicAdvertisedPrefixeRequest. */
                class GetPublicAdvertisedPrefixeRequest implements IGetPublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new GetPublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetPublicAdvertisedPrefixeRequest);

                    /** GetPublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** GetPublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /**
                     * Creates a new GetPublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetPublicAdvertisedPrefixeRequest): google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified GetPublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message GetPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message GetPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes a GetPublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies a GetPublicAdvertisedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from a GetPublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message GetPublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPublicDelegatedPrefixeRequest. */
                interface IGetPublicDelegatedPrefixeRequest {

                    /** GetPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** GetPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** GetPublicDelegatedPrefixeRequest region */
                    region?: (string|null);
                }

                /** Represents a GetPublicDelegatedPrefixeRequest. */
                class GetPublicDelegatedPrefixeRequest implements IGetPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new GetPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetPublicDelegatedPrefixeRequest);

                    /** GetPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** GetPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** GetPublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetPublicDelegatedPrefixeRequest): google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified GetPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message GetPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message GetPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a GetPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a GetPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a GetPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message GetPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionAutoscalerRequest. */
                interface IGetRegionAutoscalerRequest {

                    /** GetRegionAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** GetRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** GetRegionAutoscalerRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionAutoscalerRequest. */
                class GetRegionAutoscalerRequest implements IGetRegionAutoscalerRequest {

                    /**
                     * Constructs a new GetRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionAutoscalerRequest);

                    /** GetRegionAutoscalerRequest autoscaler. */
                    public autoscaler: string;

                    /** GetRegionAutoscalerRequest project. */
                    public project: string;

                    /** GetRegionAutoscalerRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionAutoscalerRequest): google.cloud.compute.v1.GetRegionAutoscalerRequest;

                    /**
                     * Encodes the specified GetRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionAutoscalerRequest.verify|verify} messages.
                     * @param message GetRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionAutoscalerRequest.verify|verify} messages.
                     * @param message GetRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionAutoscalerRequest;

                    /**
                     * Decodes a GetRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionAutoscalerRequest;

                    /**
                     * Verifies a GetRegionAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from a GetRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message GetRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionBackendServiceRequest. */
                interface IGetRegionBackendServiceRequest {

                    /** GetRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** GetRegionBackendServiceRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionBackendServiceRequest. */
                class GetRegionBackendServiceRequest implements IGetRegionBackendServiceRequest {

                    /**
                     * Constructs a new GetRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionBackendServiceRequest);

                    /** GetRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetRegionBackendServiceRequest project. */
                    public project: string;

                    /** GetRegionBackendServiceRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionBackendServiceRequest): google.cloud.compute.v1.GetRegionBackendServiceRequest;

                    /**
                     * Encodes the specified GetRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionBackendServiceRequest;

                    /**
                     * Decodes a GetRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionBackendServiceRequest;

                    /**
                     * Verifies a GetRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionCommitmentRequest. */
                interface IGetRegionCommitmentRequest {

                    /** GetRegionCommitmentRequest commitment */
                    commitment?: (string|null);

                    /** GetRegionCommitmentRequest project */
                    project?: (string|null);

                    /** GetRegionCommitmentRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionCommitmentRequest. */
                class GetRegionCommitmentRequest implements IGetRegionCommitmentRequest {

                    /**
                     * Constructs a new GetRegionCommitmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionCommitmentRequest);

                    /** GetRegionCommitmentRequest commitment. */
                    public commitment: string;

                    /** GetRegionCommitmentRequest project. */
                    public project: string;

                    /** GetRegionCommitmentRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionCommitmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionCommitmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionCommitmentRequest): google.cloud.compute.v1.GetRegionCommitmentRequest;

                    /**
                     * Encodes the specified GetRegionCommitmentRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionCommitmentRequest.verify|verify} messages.
                     * @param message GetRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionCommitmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionCommitmentRequest.verify|verify} messages.
                     * @param message GetRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionCommitmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionCommitmentRequest;

                    /**
                     * Decodes a GetRegionCommitmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionCommitmentRequest;

                    /**
                     * Verifies a GetRegionCommitmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionCommitmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionCommitmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionCommitmentRequest;

                    /**
                     * Creates a plain object from a GetRegionCommitmentRequest message. Also converts values to other types if specified.
                     * @param message GetRegionCommitmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionCommitmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionCommitmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionCommitmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionCompositeHealthCheckRequest. */
                interface IGetRegionCompositeHealthCheckRequest {

                    /** GetRegionCompositeHealthCheckRequest compositeHealthCheck */
                    compositeHealthCheck?: (string|null);

                    /** GetRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** GetRegionCompositeHealthCheckRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionCompositeHealthCheckRequest. */
                class GetRegionCompositeHealthCheckRequest implements IGetRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new GetRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionCompositeHealthCheckRequest);

                    /** GetRegionCompositeHealthCheckRequest compositeHealthCheck. */
                    public compositeHealthCheck: string;

                    /** GetRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** GetRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionCompositeHealthCheckRequest): google.cloud.compute.v1.GetRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified GetRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message GetRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message GetRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes a GetRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies a GetRegionCompositeHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from a GetRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message GetRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionDiskRequest. */
                interface IGetRegionDiskRequest {

                    /** GetRegionDiskRequest disk */
                    disk?: (string|null);

                    /** GetRegionDiskRequest project */
                    project?: (string|null);

                    /** GetRegionDiskRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionDiskRequest. */
                class GetRegionDiskRequest implements IGetRegionDiskRequest {

                    /**
                     * Constructs a new GetRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionDiskRequest);

                    /** GetRegionDiskRequest disk. */
                    public disk: string;

                    /** GetRegionDiskRequest project. */
                    public project: string;

                    /** GetRegionDiskRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionDiskRequest): google.cloud.compute.v1.GetRegionDiskRequest;

                    /**
                     * Encodes the specified GetRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionDiskRequest.verify|verify} messages.
                     * @param message GetRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionDiskRequest.verify|verify} messages.
                     * @param message GetRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionDiskRequest;

                    /**
                     * Decodes a GetRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionDiskRequest;

                    /**
                     * Verifies a GetRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionDiskRequest;

                    /**
                     * Creates a plain object from a GetRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message GetRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionDiskTypeRequest. */
                interface IGetRegionDiskTypeRequest {

                    /** GetRegionDiskTypeRequest diskType */
                    diskType?: (string|null);

                    /** GetRegionDiskTypeRequest project */
                    project?: (string|null);

                    /** GetRegionDiskTypeRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionDiskTypeRequest. */
                class GetRegionDiskTypeRequest implements IGetRegionDiskTypeRequest {

                    /**
                     * Constructs a new GetRegionDiskTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionDiskTypeRequest);

                    /** GetRegionDiskTypeRequest diskType. */
                    public diskType: string;

                    /** GetRegionDiskTypeRequest project. */
                    public project: string;

                    /** GetRegionDiskTypeRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionDiskTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionDiskTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionDiskTypeRequest): google.cloud.compute.v1.GetRegionDiskTypeRequest;

                    /**
                     * Encodes the specified GetRegionDiskTypeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionDiskTypeRequest.verify|verify} messages.
                     * @param message GetRegionDiskTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionDiskTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionDiskTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionDiskTypeRequest.verify|verify} messages.
                     * @param message GetRegionDiskTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionDiskTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionDiskTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionDiskTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionDiskTypeRequest;

                    /**
                     * Decodes a GetRegionDiskTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionDiskTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionDiskTypeRequest;

                    /**
                     * Verifies a GetRegionDiskTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionDiskTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionDiskTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionDiskTypeRequest;

                    /**
                     * Creates a plain object from a GetRegionDiskTypeRequest message. Also converts values to other types if specified.
                     * @param message GetRegionDiskTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionDiskTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionDiskTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionDiskTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionHealthAggregationPolicyRequest. */
                interface IGetRegionHealthAggregationPolicyRequest {

                    /** GetRegionHealthAggregationPolicyRequest healthAggregationPolicy */
                    healthAggregationPolicy?: (string|null);

                    /** GetRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionHealthAggregationPolicyRequest. */
                class GetRegionHealthAggregationPolicyRequest implements IGetRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new GetRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionHealthAggregationPolicyRequest);

                    /** GetRegionHealthAggregationPolicyRequest healthAggregationPolicy. */
                    public healthAggregationPolicy: string;

                    /** GetRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** GetRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionHealthAggregationPolicyRequest): google.cloud.compute.v1.GetRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified GetRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message GetRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message GetRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes a GetRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies a GetRegionHealthAggregationPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionHealthCheckRequest. */
                interface IGetRegionHealthCheckRequest {

                    /** GetRegionHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** GetRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** GetRegionHealthCheckRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionHealthCheckRequest. */
                class GetRegionHealthCheckRequest implements IGetRegionHealthCheckRequest {

                    /**
                     * Constructs a new GetRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionHealthCheckRequest);

                    /** GetRegionHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** GetRegionHealthCheckRequest project. */
                    public project: string;

                    /** GetRegionHealthCheckRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionHealthCheckRequest): google.cloud.compute.v1.GetRegionHealthCheckRequest;

                    /**
                     * Encodes the specified GetRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionHealthCheckRequest.verify|verify} messages.
                     * @param message GetRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionHealthCheckRequest.verify|verify} messages.
                     * @param message GetRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionHealthCheckRequest;

                    /**
                     * Decodes a GetRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionHealthCheckRequest;

                    /**
                     * Verifies a GetRegionHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from a GetRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message GetRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionHealthCheckServiceRequest. */
                interface IGetRegionHealthCheckServiceRequest {

                    /** GetRegionHealthCheckServiceRequest healthCheckService */
                    healthCheckService?: (string|null);

                    /** GetRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** GetRegionHealthCheckServiceRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionHealthCheckServiceRequest. */
                class GetRegionHealthCheckServiceRequest implements IGetRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new GetRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionHealthCheckServiceRequest);

                    /** GetRegionHealthCheckServiceRequest healthCheckService. */
                    public healthCheckService: string;

                    /** GetRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** GetRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionHealthCheckServiceRequest): google.cloud.compute.v1.GetRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified GetRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message GetRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message GetRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionHealthCheckServiceRequest;

                    /**
                     * Decodes a GetRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionHealthCheckServiceRequest;

                    /**
                     * Verifies a GetRegionHealthCheckServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from a GetRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message GetRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionHealthSourceRequest. */
                interface IGetRegionHealthSourceRequest {

                    /** GetRegionHealthSourceRequest healthSource */
                    healthSource?: (string|null);

                    /** GetRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** GetRegionHealthSourceRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionHealthSourceRequest. */
                class GetRegionHealthSourceRequest implements IGetRegionHealthSourceRequest {

                    /**
                     * Constructs a new GetRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionHealthSourceRequest);

                    /** GetRegionHealthSourceRequest healthSource. */
                    public healthSource: string;

                    /** GetRegionHealthSourceRequest project. */
                    public project: string;

                    /** GetRegionHealthSourceRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionHealthSourceRequest): google.cloud.compute.v1.GetRegionHealthSourceRequest;

                    /**
                     * Encodes the specified GetRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionHealthSourceRequest.verify|verify} messages.
                     * @param message GetRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionHealthSourceRequest.verify|verify} messages.
                     * @param message GetRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionHealthSourceRequest;

                    /**
                     * Decodes a GetRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionHealthSourceRequest;

                    /**
                     * Verifies a GetRegionHealthSourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from a GetRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message GetRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstanceGroupManagerRequest. */
                interface IGetRegionInstanceGroupManagerRequest {

                    /** GetRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** GetRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** GetRegionInstanceGroupManagerRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionInstanceGroupManagerRequest. */
                class GetRegionInstanceGroupManagerRequest implements IGetRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new GetRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionInstanceGroupManagerRequest);

                    /** GetRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** GetRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** GetRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionInstanceGroupManagerRequest): google.cloud.compute.v1.GetRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified GetRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a GetRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a GetRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a GetRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstanceGroupRequest. */
                interface IGetRegionInstanceGroupRequest {

                    /** GetRegionInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** GetRegionInstanceGroupRequest project */
                    project?: (string|null);

                    /** GetRegionInstanceGroupRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionInstanceGroupRequest. */
                class GetRegionInstanceGroupRequest implements IGetRegionInstanceGroupRequest {

                    /**
                     * Constructs a new GetRegionInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionInstanceGroupRequest);

                    /** GetRegionInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** GetRegionInstanceGroupRequest project. */
                    public project: string;

                    /** GetRegionInstanceGroupRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionInstanceGroupRequest): google.cloud.compute.v1.GetRegionInstanceGroupRequest;

                    /**
                     * Encodes the specified GetRegionInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionInstanceGroupRequest;

                    /**
                     * Decodes a GetRegionInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionInstanceGroupRequest;

                    /**
                     * Verifies a GetRegionInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionInstanceGroupRequest;

                    /**
                     * Creates a plain object from a GetRegionInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstanceTemplateRequest. */
                interface IGetRegionInstanceTemplateRequest {

                    /** GetRegionInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** GetRegionInstanceTemplateRequest project */
                    project?: (string|null);

                    /** GetRegionInstanceTemplateRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionInstanceTemplateRequest. */
                class GetRegionInstanceTemplateRequest implements IGetRegionInstanceTemplateRequest {

                    /**
                     * Constructs a new GetRegionInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionInstanceTemplateRequest);

                    /** GetRegionInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate: string;

                    /** GetRegionInstanceTemplateRequest project. */
                    public project: string;

                    /** GetRegionInstanceTemplateRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionInstanceTemplateRequest): google.cloud.compute.v1.GetRegionInstanceTemplateRequest;

                    /**
                     * Encodes the specified GetRegionInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionInstanceTemplateRequest;

                    /**
                     * Decodes a GetRegionInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionInstanceTemplateRequest;

                    /**
                     * Verifies a GetRegionInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a GetRegionInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstantSnapshotRequest. */
                interface IGetRegionInstantSnapshotRequest {

                    /** GetRegionInstantSnapshotRequest instantSnapshot */
                    instantSnapshot?: (string|null);

                    /** GetRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** GetRegionInstantSnapshotRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionInstantSnapshotRequest. */
                class GetRegionInstantSnapshotRequest implements IGetRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new GetRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionInstantSnapshotRequest);

                    /** GetRegionInstantSnapshotRequest instantSnapshot. */
                    public instantSnapshot: string;

                    /** GetRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** GetRegionInstantSnapshotRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionInstantSnapshotRequest): google.cloud.compute.v1.GetRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified GetRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionInstantSnapshotRequest;

                    /**
                     * Decodes a GetRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionInstantSnapshotRequest;

                    /**
                     * Verifies a GetRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a GetRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionNetworkEndpointGroupRequest. */
                interface IGetRegionNetworkEndpointGroupRequest {

                    /** GetRegionNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** GetRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** GetRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionNetworkEndpointGroupRequest. */
                class GetRegionNetworkEndpointGroupRequest implements IGetRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new GetRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionNetworkEndpointGroupRequest);

                    /** GetRegionNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** GetRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** GetRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionNetworkEndpointGroupRequest): google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified GetRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes a GetRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies a GetRegionNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a GetRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message GetRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionNetworkFirewallPolicyRequest. */
                interface IGetRegionNetworkFirewallPolicyRequest {

                    /** GetRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionNetworkFirewallPolicyRequest. */
                class GetRegionNetworkFirewallPolicyRequest implements IGetRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionNetworkFirewallPolicyRequest);

                    /** GetRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionNotificationEndpointRequest. */
                interface IGetRegionNotificationEndpointRequest {

                    /** GetRegionNotificationEndpointRequest notificationEndpoint */
                    notificationEndpoint?: (string|null);

                    /** GetRegionNotificationEndpointRequest project */
                    project?: (string|null);

                    /** GetRegionNotificationEndpointRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionNotificationEndpointRequest. */
                class GetRegionNotificationEndpointRequest implements IGetRegionNotificationEndpointRequest {

                    /**
                     * Constructs a new GetRegionNotificationEndpointRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionNotificationEndpointRequest);

                    /** GetRegionNotificationEndpointRequest notificationEndpoint. */
                    public notificationEndpoint: string;

                    /** GetRegionNotificationEndpointRequest project. */
                    public project: string;

                    /** GetRegionNotificationEndpointRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionNotificationEndpointRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionNotificationEndpointRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionNotificationEndpointRequest): google.cloud.compute.v1.GetRegionNotificationEndpointRequest;

                    /**
                     * Encodes the specified GetRegionNotificationEndpointRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message GetRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionNotificationEndpointRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message GetRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionNotificationEndpointRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionNotificationEndpointRequest;

                    /**
                     * Decodes a GetRegionNotificationEndpointRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionNotificationEndpointRequest;

                    /**
                     * Verifies a GetRegionNotificationEndpointRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionNotificationEndpointRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionNotificationEndpointRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionNotificationEndpointRequest;

                    /**
                     * Creates a plain object from a GetRegionNotificationEndpointRequest message. Also converts values to other types if specified.
                     * @param message GetRegionNotificationEndpointRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionNotificationEndpointRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionNotificationEndpointRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionNotificationEndpointRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionOperationRequest. */
                interface IGetRegionOperationRequest {

                    /** GetRegionOperationRequest operation */
                    operation?: (string|null);

                    /** GetRegionOperationRequest project */
                    project?: (string|null);

                    /** GetRegionOperationRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionOperationRequest. */
                class GetRegionOperationRequest implements IGetRegionOperationRequest {

                    /**
                     * Constructs a new GetRegionOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionOperationRequest);

                    /** GetRegionOperationRequest operation. */
                    public operation: string;

                    /** GetRegionOperationRequest project. */
                    public project: string;

                    /** GetRegionOperationRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionOperationRequest): google.cloud.compute.v1.GetRegionOperationRequest;

                    /**
                     * Encodes the specified GetRegionOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionOperationRequest.verify|verify} messages.
                     * @param message GetRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionOperationRequest.verify|verify} messages.
                     * @param message GetRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionOperationRequest;

                    /**
                     * Decodes a GetRegionOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionOperationRequest;

                    /**
                     * Verifies a GetRegionOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionOperationRequest;

                    /**
                     * Creates a plain object from a GetRegionOperationRequest message. Also converts values to other types if specified.
                     * @param message GetRegionOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionRequest. */
                interface IGetRegionRequest {

                    /** GetRegionRequest project */
                    project?: (string|null);

                    /** GetRegionRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionRequest. */
                class GetRegionRequest implements IGetRegionRequest {

                    /**
                     * Constructs a new GetRegionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionRequest);

                    /** GetRegionRequest project. */
                    public project: string;

                    /** GetRegionRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionRequest): google.cloud.compute.v1.GetRegionRequest;

                    /**
                     * Encodes the specified GetRegionRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionRequest.verify|verify} messages.
                     * @param message GetRegionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionRequest.verify|verify} messages.
                     * @param message GetRegionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionRequest;

                    /**
                     * Decodes a GetRegionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionRequest;

                    /**
                     * Verifies a GetRegionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionRequest;

                    /**
                     * Creates a plain object from a GetRegionRequest message. Also converts values to other types if specified.
                     * @param message GetRegionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionSecurityPolicyRequest. */
                interface IGetRegionSecurityPolicyRequest {

                    /** GetRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** GetRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetRegionSecurityPolicyRequest. */
                class GetRegionSecurityPolicyRequest implements IGetRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new GetRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionSecurityPolicyRequest);

                    /** GetRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** GetRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** GetRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionSecurityPolicyRequest): google.cloud.compute.v1.GetRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionSecurityPolicyRequest;

                    /**
                     * Decodes a GetRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionSecurityPolicyRequest;

                    /**
                     * Verifies a GetRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionSslCertificateRequest. */
                interface IGetRegionSslCertificateRequest {

                    /** GetRegionSslCertificateRequest project */
                    project?: (string|null);

                    /** GetRegionSslCertificateRequest region */
                    region?: (string|null);

                    /** GetRegionSslCertificateRequest sslCertificate */
                    sslCertificate?: (string|null);
                }

                /** Represents a GetRegionSslCertificateRequest. */
                class GetRegionSslCertificateRequest implements IGetRegionSslCertificateRequest {

                    /**
                     * Constructs a new GetRegionSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionSslCertificateRequest);

                    /** GetRegionSslCertificateRequest project. */
                    public project: string;

                    /** GetRegionSslCertificateRequest region. */
                    public region: string;

                    /** GetRegionSslCertificateRequest sslCertificate. */
                    public sslCertificate: string;

                    /**
                     * Creates a new GetRegionSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionSslCertificateRequest): google.cloud.compute.v1.GetRegionSslCertificateRequest;

                    /**
                     * Encodes the specified GetRegionSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionSslCertificateRequest.verify|verify} messages.
                     * @param message GetRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionSslCertificateRequest.verify|verify} messages.
                     * @param message GetRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionSslCertificateRequest;

                    /**
                     * Decodes a GetRegionSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionSslCertificateRequest;

                    /**
                     * Verifies a GetRegionSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionSslCertificateRequest;

                    /**
                     * Creates a plain object from a GetRegionSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message GetRegionSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionSslPolicyRequest. */
                interface IGetRegionSslPolicyRequest {

                    /** GetRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** GetRegionSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a GetRegionSslPolicyRequest. */
                class GetRegionSslPolicyRequest implements IGetRegionSslPolicyRequest {

                    /**
                     * Constructs a new GetRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionSslPolicyRequest);

                    /** GetRegionSslPolicyRequest project. */
                    public project: string;

                    /** GetRegionSslPolicyRequest region. */
                    public region: string;

                    /** GetRegionSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /**
                     * Creates a new GetRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionSslPolicyRequest): google.cloud.compute.v1.GetRegionSslPolicyRequest;

                    /**
                     * Encodes the specified GetRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionSslPolicyRequest.verify|verify} messages.
                     * @param message GetRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionSslPolicyRequest.verify|verify} messages.
                     * @param message GetRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionSslPolicyRequest;

                    /**
                     * Decodes a GetRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionSslPolicyRequest;

                    /**
                     * Verifies a GetRegionSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionTargetHttpProxyRequest. */
                interface IGetRegionTargetHttpProxyRequest {

                    /** GetRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** GetRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** GetRegionTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);
                }

                /** Represents a GetRegionTargetHttpProxyRequest. */
                class GetRegionTargetHttpProxyRequest implements IGetRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new GetRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionTargetHttpProxyRequest);

                    /** GetRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** GetRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** GetRegionTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /**
                     * Creates a new GetRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionTargetHttpProxyRequest): google.cloud.compute.v1.GetRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified GetRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionTargetHttpProxyRequest;

                    /**
                     * Decodes a GetRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionTargetHttpProxyRequest;

                    /**
                     * Verifies a GetRegionTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a GetRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionTargetHttpsProxyRequest. */
                interface IGetRegionTargetHttpsProxyRequest {

                    /** GetRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** GetRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** GetRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a GetRegionTargetHttpsProxyRequest. */
                class GetRegionTargetHttpsProxyRequest implements IGetRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new GetRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionTargetHttpsProxyRequest);

                    /** GetRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** GetRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** GetRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new GetRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionTargetHttpsProxyRequest): google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified GetRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a GetRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a GetRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a GetRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionTargetTcpProxyRequest. */
                interface IGetRegionTargetTcpProxyRequest {

                    /** GetRegionTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** GetRegionTargetTcpProxyRequest region */
                    region?: (string|null);

                    /** GetRegionTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a GetRegionTargetTcpProxyRequest. */
                class GetRegionTargetTcpProxyRequest implements IGetRegionTargetTcpProxyRequest {

                    /**
                     * Constructs a new GetRegionTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionTargetTcpProxyRequest);

                    /** GetRegionTargetTcpProxyRequest project. */
                    public project: string;

                    /** GetRegionTargetTcpProxyRequest region. */
                    public region: string;

                    /** GetRegionTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new GetRegionTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionTargetTcpProxyRequest): google.cloud.compute.v1.GetRegionTargetTcpProxyRequest;

                    /**
                     * Encodes the specified GetRegionTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionTargetTcpProxyRequest;

                    /**
                     * Decodes a GetRegionTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionTargetTcpProxyRequest;

                    /**
                     * Verifies a GetRegionTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a GetRegionTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionUrlMapRequest. */
                interface IGetRegionUrlMapRequest {

                    /** GetRegionUrlMapRequest project */
                    project?: (string|null);

                    /** GetRegionUrlMapRequest region */
                    region?: (string|null);

                    /** GetRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a GetRegionUrlMapRequest. */
                class GetRegionUrlMapRequest implements IGetRegionUrlMapRequest {

                    /**
                     * Constructs a new GetRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRegionUrlMapRequest);

                    /** GetRegionUrlMapRequest project. */
                    public project: string;

                    /** GetRegionUrlMapRequest region. */
                    public region: string;

                    /** GetRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new GetRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRegionUrlMapRequest): google.cloud.compute.v1.GetRegionUrlMapRequest;

                    /**
                     * Encodes the specified GetRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRegionUrlMapRequest.verify|verify} messages.
                     * @param message GetRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRegionUrlMapRequest.verify|verify} messages.
                     * @param message GetRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRegionUrlMapRequest;

                    /**
                     * Decodes a GetRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRegionUrlMapRequest;

                    /**
                     * Verifies a GetRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a GetRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message GetRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetReservationBlockRequest. */
                interface IGetReservationBlockRequest {

                    /** GetReservationBlockRequest project */
                    project?: (string|null);

                    /** GetReservationBlockRequest reservation */
                    reservation?: (string|null);

                    /** GetReservationBlockRequest reservationBlock */
                    reservationBlock?: (string|null);

                    /** GetReservationBlockRequest view */
                    view?: (string|null);

                    /** GetReservationBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetReservationBlockRequest. */
                class GetReservationBlockRequest implements IGetReservationBlockRequest {

                    /**
                     * Constructs a new GetReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetReservationBlockRequest);

                    /** GetReservationBlockRequest project. */
                    public project: string;

                    /** GetReservationBlockRequest reservation. */
                    public reservation: string;

                    /** GetReservationBlockRequest reservationBlock. */
                    public reservationBlock: string;

                    /** GetReservationBlockRequest view. */
                    public view?: (string|null);

                    /** GetReservationBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetReservationBlockRequest): google.cloud.compute.v1.GetReservationBlockRequest;

                    /**
                     * Encodes the specified GetReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.GetReservationBlockRequest.verify|verify} messages.
                     * @param message GetReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetReservationBlockRequest.verify|verify} messages.
                     * @param message GetReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetReservationBlockRequest;

                    /**
                     * Decodes a GetReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetReservationBlockRequest;

                    /**
                     * Verifies a GetReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetReservationBlockRequest;

                    /**
                     * Creates a plain object from a GetReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message GetReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetReservationBlockRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        BASIC = 62970894,
                        BLOCK_VIEW_UNSPECIFIED = 275070479,
                        FULL = 2169487
                    }
                }

                /** Properties of a GetReservationRequest. */
                interface IGetReservationRequest {

                    /** GetReservationRequest project */
                    project?: (string|null);

                    /** GetReservationRequest reservation */
                    reservation?: (string|null);

                    /** GetReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetReservationRequest. */
                class GetReservationRequest implements IGetReservationRequest {

                    /**
                     * Constructs a new GetReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetReservationRequest);

                    /** GetReservationRequest project. */
                    public project: string;

                    /** GetReservationRequest reservation. */
                    public reservation: string;

                    /** GetReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetReservationRequest): google.cloud.compute.v1.GetReservationRequest;

                    /**
                     * Encodes the specified GetReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetReservationRequest.verify|verify} messages.
                     * @param message GetReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetReservationRequest.verify|verify} messages.
                     * @param message GetReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetReservationRequest;

                    /**
                     * Decodes a GetReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetReservationRequest;

                    /**
                     * Verifies a GetReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetReservationRequest;

                    /**
                     * Creates a plain object from a GetReservationRequest message. Also converts values to other types if specified.
                     * @param message GetReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetReservationSlotRequest. */
                interface IGetReservationSlotRequest {

                    /** GetReservationSlotRequest parentName */
                    parentName?: (string|null);

                    /** GetReservationSlotRequest project */
                    project?: (string|null);

                    /** GetReservationSlotRequest reservationSlot */
                    reservationSlot?: (string|null);

                    /** GetReservationSlotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetReservationSlotRequest. */
                class GetReservationSlotRequest implements IGetReservationSlotRequest {

                    /**
                     * Constructs a new GetReservationSlotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetReservationSlotRequest);

                    /** GetReservationSlotRequest parentName. */
                    public parentName: string;

                    /** GetReservationSlotRequest project. */
                    public project: string;

                    /** GetReservationSlotRequest reservationSlot. */
                    public reservationSlot: string;

                    /** GetReservationSlotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetReservationSlotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReservationSlotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetReservationSlotRequest): google.cloud.compute.v1.GetReservationSlotRequest;

                    /**
                     * Encodes the specified GetReservationSlotRequest message. Does not implicitly {@link google.cloud.compute.v1.GetReservationSlotRequest.verify|verify} messages.
                     * @param message GetReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReservationSlotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetReservationSlotRequest.verify|verify} messages.
                     * @param message GetReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReservationSlotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetReservationSlotRequest;

                    /**
                     * Decodes a GetReservationSlotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetReservationSlotRequest;

                    /**
                     * Verifies a GetReservationSlotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReservationSlotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReservationSlotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetReservationSlotRequest;

                    /**
                     * Creates a plain object from a GetReservationSlotRequest message. Also converts values to other types if specified.
                     * @param message GetReservationSlotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetReservationSlotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReservationSlotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReservationSlotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetReservationSubBlockRequest. */
                interface IGetReservationSubBlockRequest {

                    /** GetReservationSubBlockRequest parentName */
                    parentName?: (string|null);

                    /** GetReservationSubBlockRequest project */
                    project?: (string|null);

                    /** GetReservationSubBlockRequest reservationSubBlock */
                    reservationSubBlock?: (string|null);

                    /** GetReservationSubBlockRequest view */
                    view?: (string|null);

                    /** GetReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetReservationSubBlockRequest. */
                class GetReservationSubBlockRequest implements IGetReservationSubBlockRequest {

                    /**
                     * Constructs a new GetReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetReservationSubBlockRequest);

                    /** GetReservationSubBlockRequest parentName. */
                    public parentName: string;

                    /** GetReservationSubBlockRequest project. */
                    public project: string;

                    /** GetReservationSubBlockRequest reservationSubBlock. */
                    public reservationSubBlock: string;

                    /** GetReservationSubBlockRequest view. */
                    public view?: (string|null);

                    /** GetReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetReservationSubBlockRequest): google.cloud.compute.v1.GetReservationSubBlockRequest;

                    /**
                     * Encodes the specified GetReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.GetReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetReservationSubBlockRequest;

                    /**
                     * Decodes a GetReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetReservationSubBlockRequest;

                    /**
                     * Verifies a GetReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a GetReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message GetReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetReservationSubBlockRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        SUB_BLOCK_VIEW_BASIC = 236009797,
                        SUB_BLOCK_VIEW_FULL = 440711800,
                        SUB_BLOCK_VIEW_UNSPECIFIED = 246642446
                    }
                }

                /** Properties of a GetResourcePolicyRequest. */
                interface IGetResourcePolicyRequest {

                    /** GetResourcePolicyRequest project */
                    project?: (string|null);

                    /** GetResourcePolicyRequest region */
                    region?: (string|null);

                    /** GetResourcePolicyRequest resourcePolicy */
                    resourcePolicy?: (string|null);
                }

                /** Represents a GetResourcePolicyRequest. */
                class GetResourcePolicyRequest implements IGetResourcePolicyRequest {

                    /**
                     * Constructs a new GetResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetResourcePolicyRequest);

                    /** GetResourcePolicyRequest project. */
                    public project: string;

                    /** GetResourcePolicyRequest region. */
                    public region: string;

                    /** GetResourcePolicyRequest resourcePolicy. */
                    public resourcePolicy: string;

                    /**
                     * Creates a new GetResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetResourcePolicyRequest): google.cloud.compute.v1.GetResourcePolicyRequest;

                    /**
                     * Encodes the specified GetResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetResourcePolicyRequest.verify|verify} messages.
                     * @param message GetResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetResourcePolicyRequest.verify|verify} messages.
                     * @param message GetResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetResourcePolicyRequest;

                    /**
                     * Decodes a GetResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetResourcePolicyRequest;

                    /**
                     * Verifies a GetResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetResourcePolicyRequest;

                    /**
                     * Creates a plain object from a GetResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message GetResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRoutePolicyRouterRequest. */
                interface IGetRoutePolicyRouterRequest {

                    /** GetRoutePolicyRouterRequest policy */
                    policy?: (string|null);

                    /** GetRoutePolicyRouterRequest project */
                    project?: (string|null);

                    /** GetRoutePolicyRouterRequest region */
                    region?: (string|null);

                    /** GetRoutePolicyRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetRoutePolicyRouterRequest. */
                class GetRoutePolicyRouterRequest implements IGetRoutePolicyRouterRequest {

                    /**
                     * Constructs a new GetRoutePolicyRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRoutePolicyRouterRequest);

                    /** GetRoutePolicyRouterRequest policy. */
                    public policy?: (string|null);

                    /** GetRoutePolicyRouterRequest project. */
                    public project: string;

                    /** GetRoutePolicyRouterRequest region. */
                    public region: string;

                    /** GetRoutePolicyRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetRoutePolicyRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRoutePolicyRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRoutePolicyRouterRequest): google.cloud.compute.v1.GetRoutePolicyRouterRequest;

                    /**
                     * Encodes the specified GetRoutePolicyRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message GetRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRoutePolicyRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message GetRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRoutePolicyRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRoutePolicyRouterRequest;

                    /**
                     * Decodes a GetRoutePolicyRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRoutePolicyRouterRequest;

                    /**
                     * Verifies a GetRoutePolicyRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRoutePolicyRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRoutePolicyRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRoutePolicyRouterRequest;

                    /**
                     * Creates a plain object from a GetRoutePolicyRouterRequest message. Also converts values to other types if specified.
                     * @param message GetRoutePolicyRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRoutePolicyRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRoutePolicyRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRoutePolicyRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRouteRequest. */
                interface IGetRouteRequest {

                    /** GetRouteRequest project */
                    project?: (string|null);

                    /** GetRouteRequest route */
                    route?: (string|null);
                }

                /** Represents a GetRouteRequest. */
                class GetRouteRequest implements IGetRouteRequest {

                    /**
                     * Constructs a new GetRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRouteRequest);

                    /** GetRouteRequest project. */
                    public project: string;

                    /** GetRouteRequest route. */
                    public route: string;

                    /**
                     * Creates a new GetRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRouteRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRouteRequest): google.cloud.compute.v1.GetRouteRequest;

                    /**
                     * Encodes the specified GetRouteRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRouteRequest.verify|verify} messages.
                     * @param message GetRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRouteRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRouteRequest.verify|verify} messages.
                     * @param message GetRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRouteRequest;

                    /**
                     * Decodes a GetRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRouteRequest;

                    /**
                     * Verifies a GetRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRouteRequest;

                    /**
                     * Creates a plain object from a GetRouteRequest message. Also converts values to other types if specified.
                     * @param message GetRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRouterRequest. */
                interface IGetRouterRequest {

                    /** GetRouterRequest project */
                    project?: (string|null);

                    /** GetRouterRequest region */
                    region?: (string|null);

                    /** GetRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetRouterRequest. */
                class GetRouterRequest implements IGetRouterRequest {

                    /**
                     * Constructs a new GetRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRouterRequest);

                    /** GetRouterRequest project. */
                    public project: string;

                    /** GetRouterRequest region. */
                    public region: string;

                    /** GetRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRouterRequest): google.cloud.compute.v1.GetRouterRequest;

                    /**
                     * Encodes the specified GetRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRouterRequest.verify|verify} messages.
                     * @param message GetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRouterRequest.verify|verify} messages.
                     * @param message GetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRouterRequest;

                    /**
                     * Decodes a GetRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRouterRequest;

                    /**
                     * Verifies a GetRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRouterRequest;

                    /**
                     * Creates a plain object from a GetRouterRequest message. Also converts values to other types if specified.
                     * @param message GetRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRouterStatusRouterRequest. */
                interface IGetRouterStatusRouterRequest {

                    /** GetRouterStatusRouterRequest project */
                    project?: (string|null);

                    /** GetRouterStatusRouterRequest region */
                    region?: (string|null);

                    /** GetRouterStatusRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetRouterStatusRouterRequest. */
                class GetRouterStatusRouterRequest implements IGetRouterStatusRouterRequest {

                    /**
                     * Constructs a new GetRouterStatusRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRouterStatusRouterRequest);

                    /** GetRouterStatusRouterRequest project. */
                    public project: string;

                    /** GetRouterStatusRouterRequest region. */
                    public region: string;

                    /** GetRouterStatusRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetRouterStatusRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRouterStatusRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRouterStatusRouterRequest): google.cloud.compute.v1.GetRouterStatusRouterRequest;

                    /**
                     * Encodes the specified GetRouterStatusRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRouterStatusRouterRequest.verify|verify} messages.
                     * @param message GetRouterStatusRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRouterStatusRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRouterStatusRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRouterStatusRouterRequest.verify|verify} messages.
                     * @param message GetRouterStatusRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRouterStatusRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRouterStatusRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRouterStatusRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRouterStatusRouterRequest;

                    /**
                     * Decodes a GetRouterStatusRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRouterStatusRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRouterStatusRouterRequest;

                    /**
                     * Verifies a GetRouterStatusRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRouterStatusRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRouterStatusRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRouterStatusRouterRequest;

                    /**
                     * Creates a plain object from a GetRouterStatusRouterRequest message. Also converts values to other types if specified.
                     * @param message GetRouterStatusRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRouterStatusRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRouterStatusRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRouterStatusRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleFirewallPolicyRequest. */
                interface IGetRuleFirewallPolicyRequest {

                    /** GetRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetRuleFirewallPolicyRequest priority */
                    priority?: (number|null);
                }

                /** Represents a GetRuleFirewallPolicyRequest. */
                class GetRuleFirewallPolicyRequest implements IGetRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new GetRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRuleFirewallPolicyRequest);

                    /** GetRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /**
                     * Creates a new GetRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRuleFirewallPolicyRequest): google.cloud.compute.v1.GetRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRuleFirewallPolicyRequest;

                    /**
                     * Decodes a GetRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRuleFirewallPolicyRequest;

                    /**
                     * Verifies a GetRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleNetworkFirewallPolicyRequest. */
                interface IGetRuleNetworkFirewallPolicyRequest {

                    /** GetRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetRuleNetworkFirewallPolicyRequest. */
                class GetRuleNetworkFirewallPolicyRequest implements IGetRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRuleNetworkFirewallPolicyRequest);

                    /** GetRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleOrganizationSecurityPolicyRequest. */
                interface IGetRuleOrganizationSecurityPolicyRequest {

                    /** GetRuleOrganizationSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetRuleOrganizationSecurityPolicyRequest. */
                class GetRuleOrganizationSecurityPolicyRequest implements IGetRuleOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new GetRuleOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRuleOrganizationSecurityPolicyRequest);

                    /** GetRuleOrganizationSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetRuleOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRuleOrganizationSecurityPolicyRequest): google.cloud.compute.v1.GetRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetRuleOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a GetRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a GetRuleOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRuleOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleRegionNetworkFirewallPolicyRequest. */
                interface IGetRuleRegionNetworkFirewallPolicyRequest {

                    /** GetRuleRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetRuleRegionNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetRuleRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRuleRegionNetworkFirewallPolicyRequest. */
                class GetRuleRegionNetworkFirewallPolicyRequest implements IGetRuleRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetRuleRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRuleRegionNetworkFirewallPolicyRequest);

                    /** GetRuleRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetRuleRegionNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetRuleRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRuleRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRuleRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetRuleRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetRuleRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleRegionSecurityPolicyRequest. */
                interface IGetRuleRegionSecurityPolicyRequest {

                    /** GetRuleRegionSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** GetRuleRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** GetRuleRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetRuleRegionSecurityPolicyRequest. */
                class GetRuleRegionSecurityPolicyRequest implements IGetRuleRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new GetRuleRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRuleRegionSecurityPolicyRequest);

                    /** GetRuleRegionSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** GetRuleRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** GetRuleRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetRuleRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRuleRegionSecurityPolicyRequest): google.cloud.compute.v1.GetRuleRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetRuleRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRuleRegionSecurityPolicyRequest;

                    /**
                     * Decodes a GetRuleRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRuleRegionSecurityPolicyRequest;

                    /**
                     * Verifies a GetRuleRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRuleRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRuleRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleSecurityPolicyRequest. */
                interface IGetRuleSecurityPolicyRequest {

                    /** GetRuleSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleSecurityPolicyRequest project */
                    project?: (string|null);

                    /** GetRuleSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetRuleSecurityPolicyRequest. */
                class GetRuleSecurityPolicyRequest implements IGetRuleSecurityPolicyRequest {

                    /**
                     * Constructs a new GetRuleSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetRuleSecurityPolicyRequest);

                    /** GetRuleSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleSecurityPolicyRequest project. */
                    public project: string;

                    /** GetRuleSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetRuleSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetRuleSecurityPolicyRequest): google.cloud.compute.v1.GetRuleSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetRuleSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetRuleSecurityPolicyRequest;

                    /**
                     * Decodes a GetRuleSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetRuleSecurityPolicyRequest;

                    /**
                     * Verifies a GetRuleSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetRuleSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetRuleSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetScreenshotInstanceRequest. */
                interface IGetScreenshotInstanceRequest {

                    /** GetScreenshotInstanceRequest instance */
                    instance?: (string|null);

                    /** GetScreenshotInstanceRequest project */
                    project?: (string|null);

                    /** GetScreenshotInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetScreenshotInstanceRequest. */
                class GetScreenshotInstanceRequest implements IGetScreenshotInstanceRequest {

                    /**
                     * Constructs a new GetScreenshotInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetScreenshotInstanceRequest);

                    /** GetScreenshotInstanceRequest instance. */
                    public instance: string;

                    /** GetScreenshotInstanceRequest project. */
                    public project: string;

                    /** GetScreenshotInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetScreenshotInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetScreenshotInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetScreenshotInstanceRequest): google.cloud.compute.v1.GetScreenshotInstanceRequest;

                    /**
                     * Encodes the specified GetScreenshotInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetScreenshotInstanceRequest.verify|verify} messages.
                     * @param message GetScreenshotInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetScreenshotInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetScreenshotInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetScreenshotInstanceRequest.verify|verify} messages.
                     * @param message GetScreenshotInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetScreenshotInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetScreenshotInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetScreenshotInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetScreenshotInstanceRequest;

                    /**
                     * Decodes a GetScreenshotInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetScreenshotInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetScreenshotInstanceRequest;

                    /**
                     * Verifies a GetScreenshotInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetScreenshotInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetScreenshotInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetScreenshotInstanceRequest;

                    /**
                     * Creates a plain object from a GetScreenshotInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetScreenshotInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetScreenshotInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetScreenshotInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetScreenshotInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSecurityPolicyRequest. */
                interface IGetSecurityPolicyRequest {

                    /** GetSecurityPolicyRequest project */
                    project?: (string|null);

                    /** GetSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetSecurityPolicyRequest. */
                class GetSecurityPolicyRequest implements IGetSecurityPolicyRequest {

                    /**
                     * Constructs a new GetSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetSecurityPolicyRequest);

                    /** GetSecurityPolicyRequest project. */
                    public project: string;

                    /** GetSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetSecurityPolicyRequest): google.cloud.compute.v1.GetSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetSecurityPolicyRequest;

                    /**
                     * Decodes a GetSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetSecurityPolicyRequest;

                    /**
                     * Verifies a GetSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSerialPortOutputInstanceRequest. */
                interface IGetSerialPortOutputInstanceRequest {

                    /** GetSerialPortOutputInstanceRequest instance */
                    instance?: (string|null);

                    /** GetSerialPortOutputInstanceRequest port */
                    port?: (number|null);

                    /** GetSerialPortOutputInstanceRequest project */
                    project?: (string|null);

                    /** GetSerialPortOutputInstanceRequest start */
                    start?: (number|Long|string|null);

                    /** GetSerialPortOutputInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetSerialPortOutputInstanceRequest. */
                class GetSerialPortOutputInstanceRequest implements IGetSerialPortOutputInstanceRequest {

                    /**
                     * Constructs a new GetSerialPortOutputInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetSerialPortOutputInstanceRequest);

                    /** GetSerialPortOutputInstanceRequest instance. */
                    public instance: string;

                    /** GetSerialPortOutputInstanceRequest port. */
                    public port?: (number|null);

                    /** GetSerialPortOutputInstanceRequest project. */
                    public project: string;

                    /** GetSerialPortOutputInstanceRequest start. */
                    public start?: (number|Long|string|null);

                    /** GetSerialPortOutputInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetSerialPortOutputInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSerialPortOutputInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetSerialPortOutputInstanceRequest): google.cloud.compute.v1.GetSerialPortOutputInstanceRequest;

                    /**
                     * Encodes the specified GetSerialPortOutputInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetSerialPortOutputInstanceRequest.verify|verify} messages.
                     * @param message GetSerialPortOutputInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetSerialPortOutputInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSerialPortOutputInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetSerialPortOutputInstanceRequest.verify|verify} messages.
                     * @param message GetSerialPortOutputInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetSerialPortOutputInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSerialPortOutputInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSerialPortOutputInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetSerialPortOutputInstanceRequest;

                    /**
                     * Decodes a GetSerialPortOutputInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSerialPortOutputInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetSerialPortOutputInstanceRequest;

                    /**
                     * Verifies a GetSerialPortOutputInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSerialPortOutputInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSerialPortOutputInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetSerialPortOutputInstanceRequest;

                    /**
                     * Creates a plain object from a GetSerialPortOutputInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetSerialPortOutputInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetSerialPortOutputInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSerialPortOutputInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSerialPortOutputInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetServiceAttachmentRequest. */
                interface IGetServiceAttachmentRequest {

                    /** GetServiceAttachmentRequest project */
                    project?: (string|null);

                    /** GetServiceAttachmentRequest region */
                    region?: (string|null);

                    /** GetServiceAttachmentRequest serviceAttachment */
                    serviceAttachment?: (string|null);

                    /** GetServiceAttachmentRequest showNatIps */
                    showNatIps?: (boolean|null);
                }

                /** Represents a GetServiceAttachmentRequest. */
                class GetServiceAttachmentRequest implements IGetServiceAttachmentRequest {

                    /**
                     * Constructs a new GetServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetServiceAttachmentRequest);

                    /** GetServiceAttachmentRequest project. */
                    public project: string;

                    /** GetServiceAttachmentRequest region. */
                    public region: string;

                    /** GetServiceAttachmentRequest serviceAttachment. */
                    public serviceAttachment: string;

                    /** GetServiceAttachmentRequest showNatIps. */
                    public showNatIps?: (boolean|null);

                    /**
                     * Creates a new GetServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetServiceAttachmentRequest): google.cloud.compute.v1.GetServiceAttachmentRequest;

                    /**
                     * Encodes the specified GetServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.GetServiceAttachmentRequest.verify|verify} messages.
                     * @param message GetServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetServiceAttachmentRequest.verify|verify} messages.
                     * @param message GetServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetServiceAttachmentRequest;

                    /**
                     * Decodes a GetServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetServiceAttachmentRequest;

                    /**
                     * Verifies a GetServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a GetServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetShieldedInstanceIdentityInstanceRequest. */
                interface IGetShieldedInstanceIdentityInstanceRequest {

                    /** GetShieldedInstanceIdentityInstanceRequest instance */
                    instance?: (string|null);

                    /** GetShieldedInstanceIdentityInstanceRequest project */
                    project?: (string|null);

                    /** GetShieldedInstanceIdentityInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetShieldedInstanceIdentityInstanceRequest. */
                class GetShieldedInstanceIdentityInstanceRequest implements IGetShieldedInstanceIdentityInstanceRequest {

                    /**
                     * Constructs a new GetShieldedInstanceIdentityInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetShieldedInstanceIdentityInstanceRequest);

                    /** GetShieldedInstanceIdentityInstanceRequest instance. */
                    public instance: string;

                    /** GetShieldedInstanceIdentityInstanceRequest project. */
                    public project: string;

                    /** GetShieldedInstanceIdentityInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetShieldedInstanceIdentityInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetShieldedInstanceIdentityInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetShieldedInstanceIdentityInstanceRequest): google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest;

                    /**
                     * Encodes the specified GetShieldedInstanceIdentityInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest.verify|verify} messages.
                     * @param message GetShieldedInstanceIdentityInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetShieldedInstanceIdentityInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetShieldedInstanceIdentityInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest.verify|verify} messages.
                     * @param message GetShieldedInstanceIdentityInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetShieldedInstanceIdentityInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetShieldedInstanceIdentityInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetShieldedInstanceIdentityInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest;

                    /**
                     * Decodes a GetShieldedInstanceIdentityInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetShieldedInstanceIdentityInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest;

                    /**
                     * Verifies a GetShieldedInstanceIdentityInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetShieldedInstanceIdentityInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetShieldedInstanceIdentityInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest;

                    /**
                     * Creates a plain object from a GetShieldedInstanceIdentityInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetShieldedInstanceIdentityInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetShieldedInstanceIdentityInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetShieldedInstanceIdentityInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSnapshotRequest. */
                interface IGetSnapshotRequest {

                    /** GetSnapshotRequest project */
                    project?: (string|null);

                    /** GetSnapshotRequest snapshot */
                    snapshot?: (string|null);
                }

                /** Represents a GetSnapshotRequest. */
                class GetSnapshotRequest implements IGetSnapshotRequest {

                    /**
                     * Constructs a new GetSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetSnapshotRequest);

                    /** GetSnapshotRequest project. */
                    public project: string;

                    /** GetSnapshotRequest snapshot. */
                    public snapshot: string;

                    /**
                     * Creates a new GetSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetSnapshotRequest): google.cloud.compute.v1.GetSnapshotRequest;

                    /**
                     * Encodes the specified GetSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.GetSnapshotRequest.verify|verify} messages.
                     * @param message GetSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetSnapshotRequest.verify|verify} messages.
                     * @param message GetSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetSnapshotRequest;

                    /**
                     * Decodes a GetSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetSnapshotRequest;

                    /**
                     * Verifies a GetSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetSnapshotRequest;

                    /**
                     * Creates a plain object from a GetSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSnapshotSettingRequest. */
                interface IGetSnapshotSettingRequest {

                    /** GetSnapshotSettingRequest project */
                    project?: (string|null);
                }

                /** Represents a GetSnapshotSettingRequest. */
                class GetSnapshotSettingRequest implements IGetSnapshotSettingRequest {

                    /**
                     * Constructs a new GetSnapshotSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetSnapshotSettingRequest);

                    /** GetSnapshotSettingRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetSnapshotSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSnapshotSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetSnapshotSettingRequest): google.cloud.compute.v1.GetSnapshotSettingRequest;

                    /**
                     * Encodes the specified GetSnapshotSettingRequest message. Does not implicitly {@link google.cloud.compute.v1.GetSnapshotSettingRequest.verify|verify} messages.
                     * @param message GetSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSnapshotSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetSnapshotSettingRequest.verify|verify} messages.
                     * @param message GetSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSnapshotSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetSnapshotSettingRequest;

                    /**
                     * Decodes a GetSnapshotSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetSnapshotSettingRequest;

                    /**
                     * Verifies a GetSnapshotSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSnapshotSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSnapshotSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetSnapshotSettingRequest;

                    /**
                     * Creates a plain object from a GetSnapshotSettingRequest message. Also converts values to other types if specified.
                     * @param message GetSnapshotSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetSnapshotSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSnapshotSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSnapshotSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSslCertificateRequest. */
                interface IGetSslCertificateRequest {

                    /** GetSslCertificateRequest project */
                    project?: (string|null);

                    /** GetSslCertificateRequest sslCertificate */
                    sslCertificate?: (string|null);
                }

                /** Represents a GetSslCertificateRequest. */
                class GetSslCertificateRequest implements IGetSslCertificateRequest {

                    /**
                     * Constructs a new GetSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetSslCertificateRequest);

                    /** GetSslCertificateRequest project. */
                    public project: string;

                    /** GetSslCertificateRequest sslCertificate. */
                    public sslCertificate: string;

                    /**
                     * Creates a new GetSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetSslCertificateRequest): google.cloud.compute.v1.GetSslCertificateRequest;

                    /**
                     * Encodes the specified GetSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1.GetSslCertificateRequest.verify|verify} messages.
                     * @param message GetSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetSslCertificateRequest.verify|verify} messages.
                     * @param message GetSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetSslCertificateRequest;

                    /**
                     * Decodes a GetSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetSslCertificateRequest;

                    /**
                     * Verifies a GetSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetSslCertificateRequest;

                    /**
                     * Creates a plain object from a GetSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message GetSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSslPolicyRequest. */
                interface IGetSslPolicyRequest {

                    /** GetSslPolicyRequest project */
                    project?: (string|null);

                    /** GetSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a GetSslPolicyRequest. */
                class GetSslPolicyRequest implements IGetSslPolicyRequest {

                    /**
                     * Constructs a new GetSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetSslPolicyRequest);

                    /** GetSslPolicyRequest project. */
                    public project: string;

                    /** GetSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /**
                     * Creates a new GetSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetSslPolicyRequest): google.cloud.compute.v1.GetSslPolicyRequest;

                    /**
                     * Encodes the specified GetSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetSslPolicyRequest.verify|verify} messages.
                     * @param message GetSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetSslPolicyRequest.verify|verify} messages.
                     * @param message GetSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetSslPolicyRequest;

                    /**
                     * Decodes a GetSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetSslPolicyRequest;

                    /**
                     * Verifies a GetSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetSslPolicyRequest;

                    /**
                     * Creates a plain object from a GetSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStatusVpnGatewayRequest. */
                interface IGetStatusVpnGatewayRequest {

                    /** GetStatusVpnGatewayRequest project */
                    project?: (string|null);

                    /** GetStatusVpnGatewayRequest region */
                    region?: (string|null);

                    /** GetStatusVpnGatewayRequest vpnGateway */
                    vpnGateway?: (string|null);
                }

                /** Represents a GetStatusVpnGatewayRequest. */
                class GetStatusVpnGatewayRequest implements IGetStatusVpnGatewayRequest {

                    /**
                     * Constructs a new GetStatusVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetStatusVpnGatewayRequest);

                    /** GetStatusVpnGatewayRequest project. */
                    public project: string;

                    /** GetStatusVpnGatewayRequest region. */
                    public region: string;

                    /** GetStatusVpnGatewayRequest vpnGateway. */
                    public vpnGateway: string;

                    /**
                     * Creates a new GetStatusVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStatusVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetStatusVpnGatewayRequest): google.cloud.compute.v1.GetStatusVpnGatewayRequest;

                    /**
                     * Encodes the specified GetStatusVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.GetStatusVpnGatewayRequest.verify|verify} messages.
                     * @param message GetStatusVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetStatusVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStatusVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetStatusVpnGatewayRequest.verify|verify} messages.
                     * @param message GetStatusVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetStatusVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStatusVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStatusVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetStatusVpnGatewayRequest;

                    /**
                     * Decodes a GetStatusVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStatusVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetStatusVpnGatewayRequest;

                    /**
                     * Verifies a GetStatusVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStatusVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStatusVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetStatusVpnGatewayRequest;

                    /**
                     * Creates a plain object from a GetStatusVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message GetStatusVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetStatusVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStatusVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStatusVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStoragePoolRequest. */
                interface IGetStoragePoolRequest {

                    /** GetStoragePoolRequest project */
                    project?: (string|null);

                    /** GetStoragePoolRequest storagePool */
                    storagePool?: (string|null);

                    /** GetStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetStoragePoolRequest. */
                class GetStoragePoolRequest implements IGetStoragePoolRequest {

                    /**
                     * Constructs a new GetStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetStoragePoolRequest);

                    /** GetStoragePoolRequest project. */
                    public project: string;

                    /** GetStoragePoolRequest storagePool. */
                    public storagePool: string;

                    /** GetStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetStoragePoolRequest): google.cloud.compute.v1.GetStoragePoolRequest;

                    /**
                     * Encodes the specified GetStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1.GetStoragePoolRequest.verify|verify} messages.
                     * @param message GetStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetStoragePoolRequest.verify|verify} messages.
                     * @param message GetStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetStoragePoolRequest;

                    /**
                     * Decodes a GetStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetStoragePoolRequest;

                    /**
                     * Verifies a GetStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetStoragePoolRequest;

                    /**
                     * Creates a plain object from a GetStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message GetStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStoragePoolTypeRequest. */
                interface IGetStoragePoolTypeRequest {

                    /** GetStoragePoolTypeRequest project */
                    project?: (string|null);

                    /** GetStoragePoolTypeRequest storagePoolType */
                    storagePoolType?: (string|null);

                    /** GetStoragePoolTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetStoragePoolTypeRequest. */
                class GetStoragePoolTypeRequest implements IGetStoragePoolTypeRequest {

                    /**
                     * Constructs a new GetStoragePoolTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetStoragePoolTypeRequest);

                    /** GetStoragePoolTypeRequest project. */
                    public project: string;

                    /** GetStoragePoolTypeRequest storagePoolType. */
                    public storagePoolType: string;

                    /** GetStoragePoolTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetStoragePoolTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStoragePoolTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetStoragePoolTypeRequest): google.cloud.compute.v1.GetStoragePoolTypeRequest;

                    /**
                     * Encodes the specified GetStoragePoolTypeRequest message. Does not implicitly {@link google.cloud.compute.v1.GetStoragePoolTypeRequest.verify|verify} messages.
                     * @param message GetStoragePoolTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetStoragePoolTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStoragePoolTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetStoragePoolTypeRequest.verify|verify} messages.
                     * @param message GetStoragePoolTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetStoragePoolTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStoragePoolTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStoragePoolTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetStoragePoolTypeRequest;

                    /**
                     * Decodes a GetStoragePoolTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStoragePoolTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetStoragePoolTypeRequest;

                    /**
                     * Verifies a GetStoragePoolTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStoragePoolTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStoragePoolTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetStoragePoolTypeRequest;

                    /**
                     * Creates a plain object from a GetStoragePoolTypeRequest message. Also converts values to other types if specified.
                     * @param message GetStoragePoolTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetStoragePoolTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStoragePoolTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStoragePoolTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSubnetworkRequest. */
                interface IGetSubnetworkRequest {

                    /** GetSubnetworkRequest project */
                    project?: (string|null);

                    /** GetSubnetworkRequest region */
                    region?: (string|null);

                    /** GetSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);

                    /** GetSubnetworkRequest views */
                    views?: (string|null);
                }

                /** Represents a GetSubnetworkRequest. */
                class GetSubnetworkRequest implements IGetSubnetworkRequest {

                    /**
                     * Constructs a new GetSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetSubnetworkRequest);

                    /** GetSubnetworkRequest project. */
                    public project: string;

                    /** GetSubnetworkRequest region. */
                    public region: string;

                    /** GetSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /** GetSubnetworkRequest views. */
                    public views?: (string|null);

                    /**
                     * Creates a new GetSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetSubnetworkRequest): google.cloud.compute.v1.GetSubnetworkRequest;

                    /**
                     * Encodes the specified GetSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.GetSubnetworkRequest.verify|verify} messages.
                     * @param message GetSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetSubnetworkRequest.verify|verify} messages.
                     * @param message GetSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetSubnetworkRequest;

                    /**
                     * Decodes a GetSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetSubnetworkRequest;

                    /**
                     * Verifies a GetSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetSubnetworkRequest;

                    /**
                     * Creates a plain object from a GetSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message GetSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetSubnetworkRequest {

                    /** Views enum. */
                    enum Views {
                        UNDEFINED_VIEWS = 0,
                        DEFAULT = 115302945,
                        WITH_UTILIZATION = 504090633
                    }
                }

                /** Properties of a GetTargetGrpcProxyRequest. */
                interface IGetTargetGrpcProxyRequest {

                    /** GetTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** GetTargetGrpcProxyRequest targetGrpcProxy */
                    targetGrpcProxy?: (string|null);
                }

                /** Represents a GetTargetGrpcProxyRequest. */
                class GetTargetGrpcProxyRequest implements IGetTargetGrpcProxyRequest {

                    /**
                     * Constructs a new GetTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetTargetGrpcProxyRequest);

                    /** GetTargetGrpcProxyRequest project. */
                    public project: string;

                    /** GetTargetGrpcProxyRequest targetGrpcProxy. */
                    public targetGrpcProxy: string;

                    /**
                     * Creates a new GetTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetTargetGrpcProxyRequest): google.cloud.compute.v1.GetTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified GetTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message GetTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message GetTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetTargetGrpcProxyRequest;

                    /**
                     * Decodes a GetTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetTargetGrpcProxyRequest;

                    /**
                     * Verifies a GetTargetGrpcProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetHttpProxyRequest. */
                interface IGetTargetHttpProxyRequest {

                    /** GetTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** GetTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);
                }

                /** Represents a GetTargetHttpProxyRequest. */
                class GetTargetHttpProxyRequest implements IGetTargetHttpProxyRequest {

                    /**
                     * Constructs a new GetTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetTargetHttpProxyRequest);

                    /** GetTargetHttpProxyRequest project. */
                    public project: string;

                    /** GetTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /**
                     * Creates a new GetTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetTargetHttpProxyRequest): google.cloud.compute.v1.GetTargetHttpProxyRequest;

                    /**
                     * Encodes the specified GetTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetTargetHttpProxyRequest.verify|verify} messages.
                     * @param message GetTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetTargetHttpProxyRequest.verify|verify} messages.
                     * @param message GetTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetTargetHttpProxyRequest;

                    /**
                     * Decodes a GetTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetTargetHttpProxyRequest;

                    /**
                     * Verifies a GetTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetHttpsProxyRequest. */
                interface IGetTargetHttpsProxyRequest {

                    /** GetTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** GetTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a GetTargetHttpsProxyRequest. */
                class GetTargetHttpsProxyRequest implements IGetTargetHttpsProxyRequest {

                    /**
                     * Constructs a new GetTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetTargetHttpsProxyRequest);

                    /** GetTargetHttpsProxyRequest project. */
                    public project: string;

                    /** GetTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new GetTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetTargetHttpsProxyRequest): google.cloud.compute.v1.GetTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified GetTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message GetTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message GetTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetTargetHttpsProxyRequest;

                    /**
                     * Decodes a GetTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetTargetHttpsProxyRequest;

                    /**
                     * Verifies a GetTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetInstanceRequest. */
                interface IGetTargetInstanceRequest {

                    /** GetTargetInstanceRequest project */
                    project?: (string|null);

                    /** GetTargetInstanceRequest targetInstance */
                    targetInstance?: (string|null);

                    /** GetTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetTargetInstanceRequest. */
                class GetTargetInstanceRequest implements IGetTargetInstanceRequest {

                    /**
                     * Constructs a new GetTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetTargetInstanceRequest);

                    /** GetTargetInstanceRequest project. */
                    public project: string;

                    /** GetTargetInstanceRequest targetInstance. */
                    public targetInstance: string;

                    /** GetTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetTargetInstanceRequest): google.cloud.compute.v1.GetTargetInstanceRequest;

                    /**
                     * Encodes the specified GetTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.GetTargetInstanceRequest.verify|verify} messages.
                     * @param message GetTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetTargetInstanceRequest.verify|verify} messages.
                     * @param message GetTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetTargetInstanceRequest;

                    /**
                     * Decodes a GetTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetTargetInstanceRequest;

                    /**
                     * Verifies a GetTargetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetTargetInstanceRequest;

                    /**
                     * Creates a plain object from a GetTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetPoolRequest. */
                interface IGetTargetPoolRequest {

                    /** GetTargetPoolRequest project */
                    project?: (string|null);

                    /** GetTargetPoolRequest region */
                    region?: (string|null);

                    /** GetTargetPoolRequest targetPool */
                    targetPool?: (string|null);
                }

                /** Represents a GetTargetPoolRequest. */
                class GetTargetPoolRequest implements IGetTargetPoolRequest {

                    /**
                     * Constructs a new GetTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetTargetPoolRequest);

                    /** GetTargetPoolRequest project. */
                    public project: string;

                    /** GetTargetPoolRequest region. */
                    public region: string;

                    /** GetTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /**
                     * Creates a new GetTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetTargetPoolRequest): google.cloud.compute.v1.GetTargetPoolRequest;

                    /**
                     * Encodes the specified GetTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.GetTargetPoolRequest.verify|verify} messages.
                     * @param message GetTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetTargetPoolRequest.verify|verify} messages.
                     * @param message GetTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetTargetPoolRequest;

                    /**
                     * Decodes a GetTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetTargetPoolRequest;

                    /**
                     * Verifies a GetTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetTargetPoolRequest;

                    /**
                     * Creates a plain object from a GetTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message GetTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetSslProxyRequest. */
                interface IGetTargetSslProxyRequest {

                    /** GetTargetSslProxyRequest project */
                    project?: (string|null);

                    /** GetTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a GetTargetSslProxyRequest. */
                class GetTargetSslProxyRequest implements IGetTargetSslProxyRequest {

                    /**
                     * Constructs a new GetTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetTargetSslProxyRequest);

                    /** GetTargetSslProxyRequest project. */
                    public project: string;

                    /** GetTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new GetTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetTargetSslProxyRequest): google.cloud.compute.v1.GetTargetSslProxyRequest;

                    /**
                     * Encodes the specified GetTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetTargetSslProxyRequest.verify|verify} messages.
                     * @param message GetTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetTargetSslProxyRequest.verify|verify} messages.
                     * @param message GetTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetTargetSslProxyRequest;

                    /**
                     * Decodes a GetTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetTargetSslProxyRequest;

                    /**
                     * Verifies a GetTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetTcpProxyRequest. */
                interface IGetTargetTcpProxyRequest {

                    /** GetTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** GetTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a GetTargetTcpProxyRequest. */
                class GetTargetTcpProxyRequest implements IGetTargetTcpProxyRequest {

                    /**
                     * Constructs a new GetTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetTargetTcpProxyRequest);

                    /** GetTargetTcpProxyRequest project. */
                    public project: string;

                    /** GetTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new GetTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetTargetTcpProxyRequest): google.cloud.compute.v1.GetTargetTcpProxyRequest;

                    /**
                     * Encodes the specified GetTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.GetTargetTcpProxyRequest.verify|verify} messages.
                     * @param message GetTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetTargetTcpProxyRequest.verify|verify} messages.
                     * @param message GetTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetTargetTcpProxyRequest;

                    /**
                     * Decodes a GetTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetTargetTcpProxyRequest;

                    /**
                     * Verifies a GetTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetVpnGatewayRequest. */
                interface IGetTargetVpnGatewayRequest {

                    /** GetTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** GetTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** GetTargetVpnGatewayRequest targetVpnGateway */
                    targetVpnGateway?: (string|null);
                }

                /** Represents a GetTargetVpnGatewayRequest. */
                class GetTargetVpnGatewayRequest implements IGetTargetVpnGatewayRequest {

                    /**
                     * Constructs a new GetTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetTargetVpnGatewayRequest);

                    /** GetTargetVpnGatewayRequest project. */
                    public project: string;

                    /** GetTargetVpnGatewayRequest region. */
                    public region: string;

                    /** GetTargetVpnGatewayRequest targetVpnGateway. */
                    public targetVpnGateway: string;

                    /**
                     * Creates a new GetTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetTargetVpnGatewayRequest): google.cloud.compute.v1.GetTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified GetTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.GetTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message GetTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message GetTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetTargetVpnGatewayRequest;

                    /**
                     * Decodes a GetTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetTargetVpnGatewayRequest;

                    /**
                     * Verifies a GetTargetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a GetTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message GetTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetUrlMapRequest. */
                interface IGetUrlMapRequest {

                    /** GetUrlMapRequest project */
                    project?: (string|null);

                    /** GetUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a GetUrlMapRequest. */
                class GetUrlMapRequest implements IGetUrlMapRequest {

                    /**
                     * Constructs a new GetUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetUrlMapRequest);

                    /** GetUrlMapRequest project. */
                    public project: string;

                    /** GetUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new GetUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetUrlMapRequest): google.cloud.compute.v1.GetUrlMapRequest;

                    /**
                     * Encodes the specified GetUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.GetUrlMapRequest.verify|verify} messages.
                     * @param message GetUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetUrlMapRequest.verify|verify} messages.
                     * @param message GetUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetUrlMapRequest;

                    /**
                     * Decodes a GetUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetUrlMapRequest;

                    /**
                     * Verifies a GetUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetUrlMapRequest;

                    /**
                     * Creates a plain object from a GetUrlMapRequest message. Also converts values to other types if specified.
                     * @param message GetUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionOperationMetadata. */
                interface IGetVersionOperationMetadata {

                    /** GetVersionOperationMetadata inlineSbomInfo */
                    inlineSbomInfo?: (google.cloud.compute.v1.IGetVersionOperationMetadataSbomInfo|null);
                }

                /** Represents a GetVersionOperationMetadata. */
                class GetVersionOperationMetadata implements IGetVersionOperationMetadata {

                    /**
                     * Constructs a new GetVersionOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetVersionOperationMetadata);

                    /** GetVersionOperationMetadata inlineSbomInfo. */
                    public inlineSbomInfo?: (google.cloud.compute.v1.IGetVersionOperationMetadataSbomInfo|null);

                    /**
                     * Creates a new GetVersionOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetVersionOperationMetadata): google.cloud.compute.v1.GetVersionOperationMetadata;

                    /**
                     * Encodes the specified GetVersionOperationMetadata message. Does not implicitly {@link google.cloud.compute.v1.GetVersionOperationMetadata.verify|verify} messages.
                     * @param message GetVersionOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetVersionOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetVersionOperationMetadata.verify|verify} messages.
                     * @param message GetVersionOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetVersionOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetVersionOperationMetadata;

                    /**
                     * Decodes a GetVersionOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetVersionOperationMetadata;

                    /**
                     * Verifies a GetVersionOperationMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVersionOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetVersionOperationMetadata;

                    /**
                     * Creates a plain object from a GetVersionOperationMetadata message. Also converts values to other types if specified.
                     * @param message GetVersionOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetVersionOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionOperationMetadataSbomInfo. */
                interface IGetVersionOperationMetadataSbomInfo {

                    /** GetVersionOperationMetadataSbomInfo currentComponentVersions */
                    currentComponentVersions?: ({ [k: string]: string }|null);

                    /** GetVersionOperationMetadataSbomInfo targetComponentVersions */
                    targetComponentVersions?: ({ [k: string]: string }|null);
                }

                /** Represents a GetVersionOperationMetadataSbomInfo. */
                class GetVersionOperationMetadataSbomInfo implements IGetVersionOperationMetadataSbomInfo {

                    /**
                     * Constructs a new GetVersionOperationMetadataSbomInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetVersionOperationMetadataSbomInfo);

                    /** GetVersionOperationMetadataSbomInfo currentComponentVersions. */
                    public currentComponentVersions: { [k: string]: string };

                    /** GetVersionOperationMetadataSbomInfo targetComponentVersions. */
                    public targetComponentVersions: { [k: string]: string };

                    /**
                     * Creates a new GetVersionOperationMetadataSbomInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionOperationMetadataSbomInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetVersionOperationMetadataSbomInfo): google.cloud.compute.v1.GetVersionOperationMetadataSbomInfo;

                    /**
                     * Encodes the specified GetVersionOperationMetadataSbomInfo message. Does not implicitly {@link google.cloud.compute.v1.GetVersionOperationMetadataSbomInfo.verify|verify} messages.
                     * @param message GetVersionOperationMetadataSbomInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetVersionOperationMetadataSbomInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionOperationMetadataSbomInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetVersionOperationMetadataSbomInfo.verify|verify} messages.
                     * @param message GetVersionOperationMetadataSbomInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetVersionOperationMetadataSbomInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionOperationMetadataSbomInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionOperationMetadataSbomInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetVersionOperationMetadataSbomInfo;

                    /**
                     * Decodes a GetVersionOperationMetadataSbomInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionOperationMetadataSbomInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetVersionOperationMetadataSbomInfo;

                    /**
                     * Verifies a GetVersionOperationMetadataSbomInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVersionOperationMetadataSbomInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionOperationMetadataSbomInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetVersionOperationMetadataSbomInfo;

                    /**
                     * Creates a plain object from a GetVersionOperationMetadataSbomInfo message. Also converts values to other types if specified.
                     * @param message GetVersionOperationMetadataSbomInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetVersionOperationMetadataSbomInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionOperationMetadataSbomInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionOperationMetadataSbomInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionReservationSlotRequest. */
                interface IGetVersionReservationSlotRequest {

                    /** GetVersionReservationSlotRequest parentName */
                    parentName?: (string|null);

                    /** GetVersionReservationSlotRequest project */
                    project?: (string|null);

                    /** GetVersionReservationSlotRequest requestId */
                    requestId?: (string|null);

                    /** GetVersionReservationSlotRequest reservationSlot */
                    reservationSlot?: (string|null);

                    /** GetVersionReservationSlotRequest reservationSlotsGetVersionRequestResource */
                    reservationSlotsGetVersionRequestResource?: (google.cloud.compute.v1.IReservationSlotsGetVersionRequest|null);

                    /** GetVersionReservationSlotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetVersionReservationSlotRequest. */
                class GetVersionReservationSlotRequest implements IGetVersionReservationSlotRequest {

                    /**
                     * Constructs a new GetVersionReservationSlotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetVersionReservationSlotRequest);

                    /** GetVersionReservationSlotRequest parentName. */
                    public parentName: string;

                    /** GetVersionReservationSlotRequest project. */
                    public project: string;

                    /** GetVersionReservationSlotRequest requestId. */
                    public requestId?: (string|null);

                    /** GetVersionReservationSlotRequest reservationSlot. */
                    public reservationSlot: string;

                    /** GetVersionReservationSlotRequest reservationSlotsGetVersionRequestResource. */
                    public reservationSlotsGetVersionRequestResource?: (google.cloud.compute.v1.IReservationSlotsGetVersionRequest|null);

                    /** GetVersionReservationSlotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetVersionReservationSlotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionReservationSlotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetVersionReservationSlotRequest): google.cloud.compute.v1.GetVersionReservationSlotRequest;

                    /**
                     * Encodes the specified GetVersionReservationSlotRequest message. Does not implicitly {@link google.cloud.compute.v1.GetVersionReservationSlotRequest.verify|verify} messages.
                     * @param message GetVersionReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetVersionReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionReservationSlotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetVersionReservationSlotRequest.verify|verify} messages.
                     * @param message GetVersionReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetVersionReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionReservationSlotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetVersionReservationSlotRequest;

                    /**
                     * Decodes a GetVersionReservationSlotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetVersionReservationSlotRequest;

                    /**
                     * Verifies a GetVersionReservationSlotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVersionReservationSlotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionReservationSlotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetVersionReservationSlotRequest;

                    /**
                     * Creates a plain object from a GetVersionReservationSlotRequest message. Also converts values to other types if specified.
                     * @param message GetVersionReservationSlotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetVersionReservationSlotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionReservationSlotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionReservationSlotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionReservationSubBlockRequest. */
                interface IGetVersionReservationSubBlockRequest {

                    /** GetVersionReservationSubBlockRequest parentName */
                    parentName?: (string|null);

                    /** GetVersionReservationSubBlockRequest project */
                    project?: (string|null);

                    /** GetVersionReservationSubBlockRequest requestId */
                    requestId?: (string|null);

                    /** GetVersionReservationSubBlockRequest reservationSubBlock */
                    reservationSubBlock?: (string|null);

                    /** GetVersionReservationSubBlockRequest reservationSubBlocksGetVersionRequestResource */
                    reservationSubBlocksGetVersionRequestResource?: (google.cloud.compute.v1.IReservationSubBlocksGetVersionRequest|null);

                    /** GetVersionReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetVersionReservationSubBlockRequest. */
                class GetVersionReservationSubBlockRequest implements IGetVersionReservationSubBlockRequest {

                    /**
                     * Constructs a new GetVersionReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetVersionReservationSubBlockRequest);

                    /** GetVersionReservationSubBlockRequest parentName. */
                    public parentName: string;

                    /** GetVersionReservationSubBlockRequest project. */
                    public project: string;

                    /** GetVersionReservationSubBlockRequest requestId. */
                    public requestId?: (string|null);

                    /** GetVersionReservationSubBlockRequest reservationSubBlock. */
                    public reservationSubBlock: string;

                    /** GetVersionReservationSubBlockRequest reservationSubBlocksGetVersionRequestResource. */
                    public reservationSubBlocksGetVersionRequestResource?: (google.cloud.compute.v1.IReservationSubBlocksGetVersionRequest|null);

                    /** GetVersionReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetVersionReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetVersionReservationSubBlockRequest): google.cloud.compute.v1.GetVersionReservationSubBlockRequest;

                    /**
                     * Encodes the specified GetVersionReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.GetVersionReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetVersionReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetVersionReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetVersionReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetVersionReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetVersionReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetVersionReservationSubBlockRequest;

                    /**
                     * Decodes a GetVersionReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetVersionReservationSubBlockRequest;

                    /**
                     * Verifies a GetVersionReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVersionReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetVersionReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a GetVersionReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message GetVersionReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetVersionReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVpnGatewayRequest. */
                interface IGetVpnGatewayRequest {

                    /** GetVpnGatewayRequest project */
                    project?: (string|null);

                    /** GetVpnGatewayRequest region */
                    region?: (string|null);

                    /** GetVpnGatewayRequest vpnGateway */
                    vpnGateway?: (string|null);
                }

                /** Represents a GetVpnGatewayRequest. */
                class GetVpnGatewayRequest implements IGetVpnGatewayRequest {

                    /**
                     * Constructs a new GetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetVpnGatewayRequest);

                    /** GetVpnGatewayRequest project. */
                    public project: string;

                    /** GetVpnGatewayRequest region. */
                    public region: string;

                    /** GetVpnGatewayRequest vpnGateway. */
                    public vpnGateway: string;

                    /**
                     * Creates a new GetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetVpnGatewayRequest): google.cloud.compute.v1.GetVpnGatewayRequest;

                    /**
                     * Encodes the specified GetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.GetVpnGatewayRequest.verify|verify} messages.
                     * @param message GetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetVpnGatewayRequest.verify|verify} messages.
                     * @param message GetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetVpnGatewayRequest;

                    /**
                     * Decodes a GetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetVpnGatewayRequest;

                    /**
                     * Verifies a GetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a GetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message GetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVpnTunnelRequest. */
                interface IGetVpnTunnelRequest {

                    /** GetVpnTunnelRequest project */
                    project?: (string|null);

                    /** GetVpnTunnelRequest region */
                    region?: (string|null);

                    /** GetVpnTunnelRequest vpnTunnel */
                    vpnTunnel?: (string|null);
                }

                /** Represents a GetVpnTunnelRequest. */
                class GetVpnTunnelRequest implements IGetVpnTunnelRequest {

                    /**
                     * Constructs a new GetVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetVpnTunnelRequest);

                    /** GetVpnTunnelRequest project. */
                    public project: string;

                    /** GetVpnTunnelRequest region. */
                    public region: string;

                    /** GetVpnTunnelRequest vpnTunnel. */
                    public vpnTunnel: string;

                    /**
                     * Creates a new GetVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetVpnTunnelRequest): google.cloud.compute.v1.GetVpnTunnelRequest;

                    /**
                     * Encodes the specified GetVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1.GetVpnTunnelRequest.verify|verify} messages.
                     * @param message GetVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetVpnTunnelRequest.verify|verify} messages.
                     * @param message GetVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetVpnTunnelRequest;

                    /**
                     * Decodes a GetVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetVpnTunnelRequest;

                    /**
                     * Verifies a GetVpnTunnelRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetVpnTunnelRequest;

                    /**
                     * Creates a plain object from a GetVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message GetVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetWireGroupRequest. */
                interface IGetWireGroupRequest {

                    /** GetWireGroupRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** GetWireGroupRequest project */
                    project?: (string|null);

                    /** GetWireGroupRequest wireGroup */
                    wireGroup?: (string|null);
                }

                /** Represents a GetWireGroupRequest. */
                class GetWireGroupRequest implements IGetWireGroupRequest {

                    /**
                     * Constructs a new GetWireGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetWireGroupRequest);

                    /** GetWireGroupRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** GetWireGroupRequest project. */
                    public project: string;

                    /** GetWireGroupRequest wireGroup. */
                    public wireGroup: string;

                    /**
                     * Creates a new GetWireGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetWireGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetWireGroupRequest): google.cloud.compute.v1.GetWireGroupRequest;

                    /**
                     * Encodes the specified GetWireGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.GetWireGroupRequest.verify|verify} messages.
                     * @param message GetWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetWireGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetWireGroupRequest.verify|verify} messages.
                     * @param message GetWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetWireGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetWireGroupRequest;

                    /**
                     * Decodes a GetWireGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetWireGroupRequest;

                    /**
                     * Verifies a GetWireGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetWireGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetWireGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetWireGroupRequest;

                    /**
                     * Creates a plain object from a GetWireGroupRequest message. Also converts values to other types if specified.
                     * @param message GetWireGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetWireGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetWireGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetWireGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetXpnHostProjectRequest. */
                interface IGetXpnHostProjectRequest {

                    /** GetXpnHostProjectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetXpnHostProjectRequest. */
                class GetXpnHostProjectRequest implements IGetXpnHostProjectRequest {

                    /**
                     * Constructs a new GetXpnHostProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetXpnHostProjectRequest);

                    /** GetXpnHostProjectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetXpnHostProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetXpnHostProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetXpnHostProjectRequest): google.cloud.compute.v1.GetXpnHostProjectRequest;

                    /**
                     * Encodes the specified GetXpnHostProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.GetXpnHostProjectRequest.verify|verify} messages.
                     * @param message GetXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetXpnHostProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetXpnHostProjectRequest.verify|verify} messages.
                     * @param message GetXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetXpnHostProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetXpnHostProjectRequest;

                    /**
                     * Decodes a GetXpnHostProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetXpnHostProjectRequest;

                    /**
                     * Verifies a GetXpnHostProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetXpnHostProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetXpnHostProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetXpnHostProjectRequest;

                    /**
                     * Creates a plain object from a GetXpnHostProjectRequest message. Also converts values to other types if specified.
                     * @param message GetXpnHostProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetXpnHostProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetXpnHostProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetXpnHostProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetXpnResourcesProjectsRequest. */
                interface IGetXpnResourcesProjectsRequest {

                    /** GetXpnResourcesProjectsRequest filter */
                    filter?: (string|null);

                    /** GetXpnResourcesProjectsRequest maxResults */
                    maxResults?: (number|null);

                    /** GetXpnResourcesProjectsRequest orderBy */
                    orderBy?: (string|null);

                    /** GetXpnResourcesProjectsRequest pageToken */
                    pageToken?: (string|null);

                    /** GetXpnResourcesProjectsRequest project */
                    project?: (string|null);

                    /** GetXpnResourcesProjectsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a GetXpnResourcesProjectsRequest. */
                class GetXpnResourcesProjectsRequest implements IGetXpnResourcesProjectsRequest {

                    /**
                     * Constructs a new GetXpnResourcesProjectsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetXpnResourcesProjectsRequest);

                    /** GetXpnResourcesProjectsRequest filter. */
                    public filter?: (string|null);

                    /** GetXpnResourcesProjectsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** GetXpnResourcesProjectsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** GetXpnResourcesProjectsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** GetXpnResourcesProjectsRequest project. */
                    public project: string;

                    /** GetXpnResourcesProjectsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new GetXpnResourcesProjectsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetXpnResourcesProjectsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetXpnResourcesProjectsRequest): google.cloud.compute.v1.GetXpnResourcesProjectsRequest;

                    /**
                     * Encodes the specified GetXpnResourcesProjectsRequest message. Does not implicitly {@link google.cloud.compute.v1.GetXpnResourcesProjectsRequest.verify|verify} messages.
                     * @param message GetXpnResourcesProjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetXpnResourcesProjectsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetXpnResourcesProjectsRequest.verify|verify} messages.
                     * @param message GetXpnResourcesProjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetXpnResourcesProjectsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetXpnResourcesProjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetXpnResourcesProjectsRequest;

                    /**
                     * Decodes a GetXpnResourcesProjectsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetXpnResourcesProjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetXpnResourcesProjectsRequest;

                    /**
                     * Verifies a GetXpnResourcesProjectsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetXpnResourcesProjectsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetXpnResourcesProjectsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetXpnResourcesProjectsRequest;

                    /**
                     * Creates a plain object from a GetXpnResourcesProjectsRequest message. Also converts values to other types if specified.
                     * @param message GetXpnResourcesProjectsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetXpnResourcesProjectsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetXpnResourcesProjectsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetXpnResourcesProjectsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetZoneOperationRequest. */
                interface IGetZoneOperationRequest {

                    /** GetZoneOperationRequest operation */
                    operation?: (string|null);

                    /** GetZoneOperationRequest project */
                    project?: (string|null);

                    /** GetZoneOperationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetZoneOperationRequest. */
                class GetZoneOperationRequest implements IGetZoneOperationRequest {

                    /**
                     * Constructs a new GetZoneOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetZoneOperationRequest);

                    /** GetZoneOperationRequest operation. */
                    public operation: string;

                    /** GetZoneOperationRequest project. */
                    public project: string;

                    /** GetZoneOperationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetZoneOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetZoneOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetZoneOperationRequest): google.cloud.compute.v1.GetZoneOperationRequest;

                    /**
                     * Encodes the specified GetZoneOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.GetZoneOperationRequest.verify|verify} messages.
                     * @param message GetZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetZoneOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetZoneOperationRequest.verify|verify} messages.
                     * @param message GetZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetZoneOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetZoneOperationRequest;

                    /**
                     * Decodes a GetZoneOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetZoneOperationRequest;

                    /**
                     * Verifies a GetZoneOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetZoneOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetZoneOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetZoneOperationRequest;

                    /**
                     * Creates a plain object from a GetZoneOperationRequest message. Also converts values to other types if specified.
                     * @param message GetZoneOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetZoneOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetZoneOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetZoneOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetZoneRequest. */
                interface IGetZoneRequest {

                    /** GetZoneRequest project */
                    project?: (string|null);

                    /** GetZoneRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetZoneRequest. */
                class GetZoneRequest implements IGetZoneRequest {

                    /**
                     * Constructs a new GetZoneRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGetZoneRequest);

                    /** GetZoneRequest project. */
                    public project: string;

                    /** GetZoneRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetZoneRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetZoneRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGetZoneRequest): google.cloud.compute.v1.GetZoneRequest;

                    /**
                     * Encodes the specified GetZoneRequest message. Does not implicitly {@link google.cloud.compute.v1.GetZoneRequest.verify|verify} messages.
                     * @param message GetZoneRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGetZoneRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetZoneRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GetZoneRequest.verify|verify} messages.
                     * @param message GetZoneRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGetZoneRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetZoneRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetZoneRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GetZoneRequest;

                    /**
                     * Decodes a GetZoneRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetZoneRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GetZoneRequest;

                    /**
                     * Verifies a GetZoneRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetZoneRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetZoneRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GetZoneRequest;

                    /**
                     * Creates a plain object from a GetZoneRequest message. Also converts values to other types if specified.
                     * @param message GetZoneRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GetZoneRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetZoneRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetZoneRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalAddressesMoveRequest. */
                interface IGlobalAddressesMoveRequest {

                    /** GlobalAddressesMoveRequest description */
                    description?: (string|null);

                    /** GlobalAddressesMoveRequest destinationAddress */
                    destinationAddress?: (string|null);
                }

                /** Represents a GlobalAddressesMoveRequest. */
                class GlobalAddressesMoveRequest implements IGlobalAddressesMoveRequest {

                    /**
                     * Constructs a new GlobalAddressesMoveRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGlobalAddressesMoveRequest);

                    /** GlobalAddressesMoveRequest description. */
                    public description?: (string|null);

                    /** GlobalAddressesMoveRequest destinationAddress. */
                    public destinationAddress?: (string|null);

                    /**
                     * Creates a new GlobalAddressesMoveRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalAddressesMoveRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGlobalAddressesMoveRequest): google.cloud.compute.v1.GlobalAddressesMoveRequest;

                    /**
                     * Encodes the specified GlobalAddressesMoveRequest message. Does not implicitly {@link google.cloud.compute.v1.GlobalAddressesMoveRequest.verify|verify} messages.
                     * @param message GlobalAddressesMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGlobalAddressesMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalAddressesMoveRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GlobalAddressesMoveRequest.verify|verify} messages.
                     * @param message GlobalAddressesMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGlobalAddressesMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalAddressesMoveRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalAddressesMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GlobalAddressesMoveRequest;

                    /**
                     * Decodes a GlobalAddressesMoveRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalAddressesMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GlobalAddressesMoveRequest;

                    /**
                     * Verifies a GlobalAddressesMoveRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalAddressesMoveRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalAddressesMoveRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GlobalAddressesMoveRequest;

                    /**
                     * Creates a plain object from a GlobalAddressesMoveRequest message. Also converts values to other types if specified.
                     * @param message GlobalAddressesMoveRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GlobalAddressesMoveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalAddressesMoveRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalAddressesMoveRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalNetworkEndpointGroupsAttachEndpointsRequest. */
                interface IGlobalNetworkEndpointGroupsAttachEndpointsRequest {

                    /** GlobalNetworkEndpointGroupsAttachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1.INetworkEndpoint[]|null);
                }

                /** Represents a GlobalNetworkEndpointGroupsAttachEndpointsRequest. */
                class GlobalNetworkEndpointGroupsAttachEndpointsRequest implements IGlobalNetworkEndpointGroupsAttachEndpointsRequest {

                    /**
                     * Constructs a new GlobalNetworkEndpointGroupsAttachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGlobalNetworkEndpointGroupsAttachEndpointsRequest);

                    /** GlobalNetworkEndpointGroupsAttachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1.INetworkEndpoint[];

                    /**
                     * Creates a new GlobalNetworkEndpointGroupsAttachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalNetworkEndpointGroupsAttachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGlobalNetworkEndpointGroupsAttachEndpointsRequest): google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Encodes the specified GlobalNetworkEndpointGroupsAttachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message GlobalNetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGlobalNetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalNetworkEndpointGroupsAttachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message GlobalNetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGlobalNetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalNetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Decodes a GlobalNetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Verifies a GlobalNetworkEndpointGroupsAttachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalNetworkEndpointGroupsAttachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Creates a plain object from a GlobalNetworkEndpointGroupsAttachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalNetworkEndpointGroupsAttachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalNetworkEndpointGroupsDetachEndpointsRequest. */
                interface IGlobalNetworkEndpointGroupsDetachEndpointsRequest {

                    /** GlobalNetworkEndpointGroupsDetachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1.INetworkEndpoint[]|null);
                }

                /** Represents a GlobalNetworkEndpointGroupsDetachEndpointsRequest. */
                class GlobalNetworkEndpointGroupsDetachEndpointsRequest implements IGlobalNetworkEndpointGroupsDetachEndpointsRequest {

                    /**
                     * Constructs a new GlobalNetworkEndpointGroupsDetachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGlobalNetworkEndpointGroupsDetachEndpointsRequest);

                    /** GlobalNetworkEndpointGroupsDetachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1.INetworkEndpoint[];

                    /**
                     * Creates a new GlobalNetworkEndpointGroupsDetachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalNetworkEndpointGroupsDetachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGlobalNetworkEndpointGroupsDetachEndpointsRequest): google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Encodes the specified GlobalNetworkEndpointGroupsDetachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message GlobalNetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGlobalNetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalNetworkEndpointGroupsDetachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message GlobalNetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGlobalNetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalNetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Decodes a GlobalNetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Verifies a GlobalNetworkEndpointGroupsDetachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalNetworkEndpointGroupsDetachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Creates a plain object from a GlobalNetworkEndpointGroupsDetachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalNetworkEndpointGroupsDetachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalOrganizationSetPolicyRequest. */
                interface IGlobalOrganizationSetPolicyRequest {

                    /** GlobalOrganizationSetPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1.IBinding[]|null);

                    /** GlobalOrganizationSetPolicyRequest etag */
                    etag?: (string|null);

                    /** GlobalOrganizationSetPolicyRequest policy */
                    policy?: (google.cloud.compute.v1.IPolicy|null);
                }

                /** Represents a GlobalOrganizationSetPolicyRequest. */
                class GlobalOrganizationSetPolicyRequest implements IGlobalOrganizationSetPolicyRequest {

                    /**
                     * Constructs a new GlobalOrganizationSetPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGlobalOrganizationSetPolicyRequest);

                    /** GlobalOrganizationSetPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1.IBinding[];

                    /** GlobalOrganizationSetPolicyRequest etag. */
                    public etag?: (string|null);

                    /** GlobalOrganizationSetPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1.IPolicy|null);

                    /**
                     * Creates a new GlobalOrganizationSetPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalOrganizationSetPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGlobalOrganizationSetPolicyRequest): google.cloud.compute.v1.GlobalOrganizationSetPolicyRequest;

                    /**
                     * Encodes the specified GlobalOrganizationSetPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GlobalOrganizationSetPolicyRequest.verify|verify} messages.
                     * @param message GlobalOrganizationSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGlobalOrganizationSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalOrganizationSetPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GlobalOrganizationSetPolicyRequest.verify|verify} messages.
                     * @param message GlobalOrganizationSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGlobalOrganizationSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalOrganizationSetPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalOrganizationSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GlobalOrganizationSetPolicyRequest;

                    /**
                     * Decodes a GlobalOrganizationSetPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalOrganizationSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GlobalOrganizationSetPolicyRequest;

                    /**
                     * Verifies a GlobalOrganizationSetPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalOrganizationSetPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalOrganizationSetPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GlobalOrganizationSetPolicyRequest;

                    /**
                     * Creates a plain object from a GlobalOrganizationSetPolicyRequest message. Also converts values to other types if specified.
                     * @param message GlobalOrganizationSetPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GlobalOrganizationSetPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalOrganizationSetPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalOrganizationSetPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalSetLabelsRequest. */
                interface IGlobalSetLabelsRequest {

                    /** GlobalSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** GlobalSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a GlobalSetLabelsRequest. */
                class GlobalSetLabelsRequest implements IGlobalSetLabelsRequest {

                    /**
                     * Constructs a new GlobalSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGlobalSetLabelsRequest);

                    /** GlobalSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** GlobalSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new GlobalSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGlobalSetLabelsRequest): google.cloud.compute.v1.GlobalSetLabelsRequest;

                    /**
                     * Encodes the specified GlobalSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1.GlobalSetLabelsRequest.verify|verify} messages.
                     * @param message GlobalSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGlobalSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GlobalSetLabelsRequest.verify|verify} messages.
                     * @param message GlobalSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGlobalSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GlobalSetLabelsRequest;

                    /**
                     * Decodes a GlobalSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GlobalSetLabelsRequest;

                    /**
                     * Verifies a GlobalSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GlobalSetLabelsRequest;

                    /**
                     * Creates a plain object from a GlobalSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message GlobalSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GlobalSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalSetPolicyRequest. */
                interface IGlobalSetPolicyRequest {

                    /** GlobalSetPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1.IBinding[]|null);

                    /** GlobalSetPolicyRequest etag */
                    etag?: (string|null);

                    /** GlobalSetPolicyRequest policy */
                    policy?: (google.cloud.compute.v1.IPolicy|null);
                }

                /** Represents a GlobalSetPolicyRequest. */
                class GlobalSetPolicyRequest implements IGlobalSetPolicyRequest {

                    /**
                     * Constructs a new GlobalSetPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGlobalSetPolicyRequest);

                    /** GlobalSetPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1.IBinding[];

                    /** GlobalSetPolicyRequest etag. */
                    public etag?: (string|null);

                    /** GlobalSetPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1.IPolicy|null);

                    /**
                     * Creates a new GlobalSetPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalSetPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGlobalSetPolicyRequest): google.cloud.compute.v1.GlobalSetPolicyRequest;

                    /**
                     * Encodes the specified GlobalSetPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.GlobalSetPolicyRequest.verify|verify} messages.
                     * @param message GlobalSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGlobalSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalSetPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GlobalSetPolicyRequest.verify|verify} messages.
                     * @param message GlobalSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGlobalSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalSetPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GlobalSetPolicyRequest;

                    /**
                     * Decodes a GlobalSetPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GlobalSetPolicyRequest;

                    /**
                     * Verifies a GlobalSetPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalSetPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalSetPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GlobalSetPolicyRequest;

                    /**
                     * Creates a plain object from a GlobalSetPolicyRequest message. Also converts values to other types if specified.
                     * @param message GlobalSetPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GlobalSetPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalSetPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalSetPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GroupMaintenanceInfo. */
                interface IGroupMaintenanceInfo {

                    /** GroupMaintenanceInfo instanceMaintenanceOngoingCount */
                    instanceMaintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo instanceMaintenancePendingCount */
                    instanceMaintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo maintenanceOngoingCount */
                    maintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo maintenancePendingCount */
                    maintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo schedulingType */
                    schedulingType?: (string|null);

                    /** GroupMaintenanceInfo subblockInfraMaintenanceOngoingCount */
                    subblockInfraMaintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo subblockInfraMaintenancePendingCount */
                    subblockInfraMaintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo upcomingGroupMaintenance */
                    upcomingGroupMaintenance?: (google.cloud.compute.v1.IUpcomingMaintenance|null);
                }

                /** Represents a GroupMaintenanceInfo. */
                class GroupMaintenanceInfo implements IGroupMaintenanceInfo {

                    /**
                     * Constructs a new GroupMaintenanceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGroupMaintenanceInfo);

                    /** GroupMaintenanceInfo instanceMaintenanceOngoingCount. */
                    public instanceMaintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo instanceMaintenancePendingCount. */
                    public instanceMaintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo maintenanceOngoingCount. */
                    public maintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo maintenancePendingCount. */
                    public maintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo schedulingType. */
                    public schedulingType?: (string|null);

                    /** GroupMaintenanceInfo subblockInfraMaintenanceOngoingCount. */
                    public subblockInfraMaintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo subblockInfraMaintenancePendingCount. */
                    public subblockInfraMaintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo upcomingGroupMaintenance. */
                    public upcomingGroupMaintenance?: (google.cloud.compute.v1.IUpcomingMaintenance|null);

                    /**
                     * Creates a new GroupMaintenanceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GroupMaintenanceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGroupMaintenanceInfo): google.cloud.compute.v1.GroupMaintenanceInfo;

                    /**
                     * Encodes the specified GroupMaintenanceInfo message. Does not implicitly {@link google.cloud.compute.v1.GroupMaintenanceInfo.verify|verify} messages.
                     * @param message GroupMaintenanceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGroupMaintenanceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GroupMaintenanceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GroupMaintenanceInfo.verify|verify} messages.
                     * @param message GroupMaintenanceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGroupMaintenanceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GroupMaintenanceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GroupMaintenanceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GroupMaintenanceInfo;

                    /**
                     * Decodes a GroupMaintenanceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GroupMaintenanceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GroupMaintenanceInfo;

                    /**
                     * Verifies a GroupMaintenanceInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GroupMaintenanceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GroupMaintenanceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GroupMaintenanceInfo;

                    /**
                     * Creates a plain object from a GroupMaintenanceInfo message. Also converts values to other types if specified.
                     * @param message GroupMaintenanceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GroupMaintenanceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GroupMaintenanceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GroupMaintenanceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GroupMaintenanceInfo {

                    /** SchedulingType enum. */
                    enum SchedulingType {
                        UNDEFINED_SCHEDULING_TYPE = 0,
                        GROUPED = 474540862,
                        GROUP_MAINTENANCE_TYPE_UNSPECIFIED = 447183678,
                        INDEPENDENT = 127011674
                    }
                }

                /** Properties of a GuestAttributes. */
                interface IGuestAttributes {

                    /** GuestAttributes kind */
                    kind?: (string|null);

                    /** GuestAttributes queryPath */
                    queryPath?: (string|null);

                    /** GuestAttributes queryValue */
                    queryValue?: (google.cloud.compute.v1.IGuestAttributesValue|null);

                    /** GuestAttributes selfLink */
                    selfLink?: (string|null);

                    /** GuestAttributes variableKey */
                    variableKey?: (string|null);

                    /** GuestAttributes variableValue */
                    variableValue?: (string|null);
                }

                /** Represents a GuestAttributes. */
                class GuestAttributes implements IGuestAttributes {

                    /**
                     * Constructs a new GuestAttributes.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGuestAttributes);

                    /** GuestAttributes kind. */
                    public kind?: (string|null);

                    /** GuestAttributes queryPath. */
                    public queryPath?: (string|null);

                    /** GuestAttributes queryValue. */
                    public queryValue?: (google.cloud.compute.v1.IGuestAttributesValue|null);

                    /** GuestAttributes selfLink. */
                    public selfLink?: (string|null);

                    /** GuestAttributes variableKey. */
                    public variableKey?: (string|null);

                    /** GuestAttributes variableValue. */
                    public variableValue?: (string|null);

                    /**
                     * Creates a new GuestAttributes instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GuestAttributes instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGuestAttributes): google.cloud.compute.v1.GuestAttributes;

                    /**
                     * Encodes the specified GuestAttributes message. Does not implicitly {@link google.cloud.compute.v1.GuestAttributes.verify|verify} messages.
                     * @param message GuestAttributes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGuestAttributes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GuestAttributes message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GuestAttributes.verify|verify} messages.
                     * @param message GuestAttributes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGuestAttributes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GuestAttributes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GuestAttributes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GuestAttributes;

                    /**
                     * Decodes a GuestAttributes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GuestAttributes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GuestAttributes;

                    /**
                     * Verifies a GuestAttributes message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GuestAttributes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GuestAttributes
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GuestAttributes;

                    /**
                     * Creates a plain object from a GuestAttributes message. Also converts values to other types if specified.
                     * @param message GuestAttributes
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GuestAttributes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GuestAttributes to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GuestAttributes
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GuestAttributesEntry. */
                interface IGuestAttributesEntry {

                    /** GuestAttributesEntry key */
                    key?: (string|null);

                    /** GuestAttributesEntry namespace */
                    namespace?: (string|null);

                    /** GuestAttributesEntry value */
                    value?: (string|null);
                }

                /** Represents a GuestAttributesEntry. */
                class GuestAttributesEntry implements IGuestAttributesEntry {

                    /**
                     * Constructs a new GuestAttributesEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGuestAttributesEntry);

                    /** GuestAttributesEntry key. */
                    public key?: (string|null);

                    /** GuestAttributesEntry namespace. */
                    public namespace?: (string|null);

                    /** GuestAttributesEntry value. */
                    public value?: (string|null);

                    /**
                     * Creates a new GuestAttributesEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GuestAttributesEntry instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGuestAttributesEntry): google.cloud.compute.v1.GuestAttributesEntry;

                    /**
                     * Encodes the specified GuestAttributesEntry message. Does not implicitly {@link google.cloud.compute.v1.GuestAttributesEntry.verify|verify} messages.
                     * @param message GuestAttributesEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGuestAttributesEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GuestAttributesEntry message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GuestAttributesEntry.verify|verify} messages.
                     * @param message GuestAttributesEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGuestAttributesEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GuestAttributesEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GuestAttributesEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GuestAttributesEntry;

                    /**
                     * Decodes a GuestAttributesEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GuestAttributesEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GuestAttributesEntry;

                    /**
                     * Verifies a GuestAttributesEntry message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GuestAttributesEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GuestAttributesEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GuestAttributesEntry;

                    /**
                     * Creates a plain object from a GuestAttributesEntry message. Also converts values to other types if specified.
                     * @param message GuestAttributesEntry
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GuestAttributesEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GuestAttributesEntry to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GuestAttributesEntry
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GuestAttributesValue. */
                interface IGuestAttributesValue {

                    /** GuestAttributesValue items */
                    items?: (google.cloud.compute.v1.IGuestAttributesEntry[]|null);
                }

                /** Represents a GuestAttributesValue. */
                class GuestAttributesValue implements IGuestAttributesValue {

                    /**
                     * Constructs a new GuestAttributesValue.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGuestAttributesValue);

                    /** GuestAttributesValue items. */
                    public items: google.cloud.compute.v1.IGuestAttributesEntry[];

                    /**
                     * Creates a new GuestAttributesValue instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GuestAttributesValue instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGuestAttributesValue): google.cloud.compute.v1.GuestAttributesValue;

                    /**
                     * Encodes the specified GuestAttributesValue message. Does not implicitly {@link google.cloud.compute.v1.GuestAttributesValue.verify|verify} messages.
                     * @param message GuestAttributesValue message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGuestAttributesValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GuestAttributesValue message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GuestAttributesValue.verify|verify} messages.
                     * @param message GuestAttributesValue message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGuestAttributesValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GuestAttributesValue message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GuestAttributesValue
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GuestAttributesValue;

                    /**
                     * Decodes a GuestAttributesValue message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GuestAttributesValue
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GuestAttributesValue;

                    /**
                     * Verifies a GuestAttributesValue message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GuestAttributesValue message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GuestAttributesValue
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GuestAttributesValue;

                    /**
                     * Creates a plain object from a GuestAttributesValue message. Also converts values to other types if specified.
                     * @param message GuestAttributesValue
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GuestAttributesValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GuestAttributesValue to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GuestAttributesValue
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GuestOsFeature. */
                interface IGuestOsFeature {

                    /** GuestOsFeature type */
                    type?: (string|null);
                }

                /** Represents a GuestOsFeature. */
                class GuestOsFeature implements IGuestOsFeature {

                    /**
                     * Constructs a new GuestOsFeature.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IGuestOsFeature);

                    /** GuestOsFeature type. */
                    public type?: (string|null);

                    /**
                     * Creates a new GuestOsFeature instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GuestOsFeature instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IGuestOsFeature): google.cloud.compute.v1.GuestOsFeature;

                    /**
                     * Encodes the specified GuestOsFeature message. Does not implicitly {@link google.cloud.compute.v1.GuestOsFeature.verify|verify} messages.
                     * @param message GuestOsFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IGuestOsFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GuestOsFeature message, length delimited. Does not implicitly {@link google.cloud.compute.v1.GuestOsFeature.verify|verify} messages.
                     * @param message GuestOsFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IGuestOsFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GuestOsFeature message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GuestOsFeature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.GuestOsFeature;

                    /**
                     * Decodes a GuestOsFeature message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GuestOsFeature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.GuestOsFeature;

                    /**
                     * Verifies a GuestOsFeature message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GuestOsFeature message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GuestOsFeature
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.GuestOsFeature;

                    /**
                     * Creates a plain object from a GuestOsFeature message. Also converts values to other types if specified.
                     * @param message GuestOsFeature
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.GuestOsFeature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GuestOsFeature to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GuestOsFeature
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GuestOsFeature {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        BARE_METAL_LINUX_COMPATIBLE = 354232740,
                        FEATURE_TYPE_UNSPECIFIED = 531767259,
                        GVNIC = 68209305,
                        IDPF = 2242641,
                        MULTI_IP_SUBNET = 151776719,
                        SECURE_BOOT = 376811194,
                        SEV_CAPABLE = 87083793,
                        SEV_LIVE_MIGRATABLE = 392039820,
                        SEV_LIVE_MIGRATABLE_V2 = 168551983,
                        SEV_SNP_CAPABLE = 426919,
                        SNP_SVSM_CAPABLE = 52921460,
                        TDX_CAPABLE = 240446133,
                        UEFI_COMPATIBLE = 195865408,
                        VIRTIO_SCSI_MULTIQUEUE = 201597069,
                        WINDOWS = 456863331
                    }
                }

                /** Properties of a HTTP2HealthCheck. */
                interface IHTTP2HealthCheck {

                    /** HTTP2HealthCheck host */
                    host?: (string|null);

                    /** HTTP2HealthCheck port */
                    port?: (number|null);

                    /** HTTP2HealthCheck portName */
                    portName?: (string|null);

                    /** HTTP2HealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** HTTP2HealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** HTTP2HealthCheck requestPath */
                    requestPath?: (string|null);

                    /** HTTP2HealthCheck response */
                    response?: (string|null);
                }

                /** Represents a HTTP2HealthCheck. */
                class HTTP2HealthCheck implements IHTTP2HealthCheck {

                    /**
                     * Constructs a new HTTP2HealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHTTP2HealthCheck);

                    /** HTTP2HealthCheck host. */
                    public host?: (string|null);

                    /** HTTP2HealthCheck port. */
                    public port?: (number|null);

                    /** HTTP2HealthCheck portName. */
                    public portName?: (string|null);

                    /** HTTP2HealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** HTTP2HealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** HTTP2HealthCheck requestPath. */
                    public requestPath?: (string|null);

                    /** HTTP2HealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new HTTP2HealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HTTP2HealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHTTP2HealthCheck): google.cloud.compute.v1.HTTP2HealthCheck;

                    /**
                     * Encodes the specified HTTP2HealthCheck message. Does not implicitly {@link google.cloud.compute.v1.HTTP2HealthCheck.verify|verify} messages.
                     * @param message HTTP2HealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHTTP2HealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HTTP2HealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HTTP2HealthCheck.verify|verify} messages.
                     * @param message HTTP2HealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHTTP2HealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HTTP2HealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HTTP2HealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HTTP2HealthCheck;

                    /**
                     * Decodes a HTTP2HealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HTTP2HealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HTTP2HealthCheck;

                    /**
                     * Verifies a HTTP2HealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HTTP2HealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HTTP2HealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HTTP2HealthCheck;

                    /**
                     * Creates a plain object from a HTTP2HealthCheck message. Also converts values to other types if specified.
                     * @param message HTTP2HealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HTTP2HealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HTTP2HealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HTTP2HealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HTTP2HealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a HTTPHealthCheck. */
                interface IHTTPHealthCheck {

                    /** HTTPHealthCheck host */
                    host?: (string|null);

                    /** HTTPHealthCheck port */
                    port?: (number|null);

                    /** HTTPHealthCheck portName */
                    portName?: (string|null);

                    /** HTTPHealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** HTTPHealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** HTTPHealthCheck requestPath */
                    requestPath?: (string|null);

                    /** HTTPHealthCheck response */
                    response?: (string|null);
                }

                /** Represents a HTTPHealthCheck. */
                class HTTPHealthCheck implements IHTTPHealthCheck {

                    /**
                     * Constructs a new HTTPHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHTTPHealthCheck);

                    /** HTTPHealthCheck host. */
                    public host?: (string|null);

                    /** HTTPHealthCheck port. */
                    public port?: (number|null);

                    /** HTTPHealthCheck portName. */
                    public portName?: (string|null);

                    /** HTTPHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** HTTPHealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** HTTPHealthCheck requestPath. */
                    public requestPath?: (string|null);

                    /** HTTPHealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new HTTPHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HTTPHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHTTPHealthCheck): google.cloud.compute.v1.HTTPHealthCheck;

                    /**
                     * Encodes the specified HTTPHealthCheck message. Does not implicitly {@link google.cloud.compute.v1.HTTPHealthCheck.verify|verify} messages.
                     * @param message HTTPHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHTTPHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HTTPHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HTTPHealthCheck.verify|verify} messages.
                     * @param message HTTPHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHTTPHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HTTPHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HTTPHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HTTPHealthCheck;

                    /**
                     * Decodes a HTTPHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HTTPHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HTTPHealthCheck;

                    /**
                     * Verifies a HTTPHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HTTPHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HTTPHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HTTPHealthCheck;

                    /**
                     * Creates a plain object from a HTTPHealthCheck message. Also converts values to other types if specified.
                     * @param message HTTPHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HTTPHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HTTPHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HTTPHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HTTPHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a HTTPSHealthCheck. */
                interface IHTTPSHealthCheck {

                    /** HTTPSHealthCheck host */
                    host?: (string|null);

                    /** HTTPSHealthCheck port */
                    port?: (number|null);

                    /** HTTPSHealthCheck portName */
                    portName?: (string|null);

                    /** HTTPSHealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** HTTPSHealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** HTTPSHealthCheck requestPath */
                    requestPath?: (string|null);

                    /** HTTPSHealthCheck response */
                    response?: (string|null);
                }

                /** Represents a HTTPSHealthCheck. */
                class HTTPSHealthCheck implements IHTTPSHealthCheck {

                    /**
                     * Constructs a new HTTPSHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHTTPSHealthCheck);

                    /** HTTPSHealthCheck host. */
                    public host?: (string|null);

                    /** HTTPSHealthCheck port. */
                    public port?: (number|null);

                    /** HTTPSHealthCheck portName. */
                    public portName?: (string|null);

                    /** HTTPSHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** HTTPSHealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** HTTPSHealthCheck requestPath. */
                    public requestPath?: (string|null);

                    /** HTTPSHealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new HTTPSHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HTTPSHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHTTPSHealthCheck): google.cloud.compute.v1.HTTPSHealthCheck;

                    /**
                     * Encodes the specified HTTPSHealthCheck message. Does not implicitly {@link google.cloud.compute.v1.HTTPSHealthCheck.verify|verify} messages.
                     * @param message HTTPSHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHTTPSHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HTTPSHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HTTPSHealthCheck.verify|verify} messages.
                     * @param message HTTPSHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHTTPSHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HTTPSHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HTTPSHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HTTPSHealthCheck;

                    /**
                     * Decodes a HTTPSHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HTTPSHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HTTPSHealthCheck;

                    /**
                     * Verifies a HTTPSHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HTTPSHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HTTPSHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HTTPSHealthCheck;

                    /**
                     * Creates a plain object from a HTTPSHealthCheck message. Also converts values to other types if specified.
                     * @param message HTTPSHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HTTPSHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HTTPSHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HTTPSHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HTTPSHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a HealthAggregationPoliciesScopedList. */
                interface IHealthAggregationPoliciesScopedList {

                    /** HealthAggregationPoliciesScopedList healthAggregationPolicies */
                    healthAggregationPolicies?: (google.cloud.compute.v1.IHealthAggregationPolicy[]|null);

                    /** HealthAggregationPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthAggregationPoliciesScopedList. */
                class HealthAggregationPoliciesScopedList implements IHealthAggregationPoliciesScopedList {

                    /**
                     * Constructs a new HealthAggregationPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthAggregationPoliciesScopedList);

                    /** HealthAggregationPoliciesScopedList healthAggregationPolicies. */
                    public healthAggregationPolicies: google.cloud.compute.v1.IHealthAggregationPolicy[];

                    /** HealthAggregationPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthAggregationPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthAggregationPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthAggregationPoliciesScopedList): google.cloud.compute.v1.HealthAggregationPoliciesScopedList;

                    /**
                     * Encodes the specified HealthAggregationPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1.HealthAggregationPoliciesScopedList.verify|verify} messages.
                     * @param message HealthAggregationPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthAggregationPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthAggregationPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthAggregationPoliciesScopedList.verify|verify} messages.
                     * @param message HealthAggregationPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthAggregationPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthAggregationPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthAggregationPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthAggregationPoliciesScopedList;

                    /**
                     * Decodes a HealthAggregationPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthAggregationPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthAggregationPoliciesScopedList;

                    /**
                     * Verifies a HealthAggregationPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthAggregationPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthAggregationPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthAggregationPoliciesScopedList;

                    /**
                     * Creates a plain object from a HealthAggregationPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message HealthAggregationPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthAggregationPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthAggregationPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthAggregationPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthAggregationPolicy. */
                interface IHealthAggregationPolicy {

                    /** HealthAggregationPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** HealthAggregationPolicy description */
                    description?: (string|null);

                    /** HealthAggregationPolicy fingerprint */
                    fingerprint?: (string|null);

                    /** HealthAggregationPolicy healthyPercentThreshold */
                    healthyPercentThreshold?: (number|null);

                    /** HealthAggregationPolicy id */
                    id?: (number|Long|string|null);

                    /** HealthAggregationPolicy kind */
                    kind?: (string|null);

                    /** HealthAggregationPolicy minHealthyThreshold */
                    minHealthyThreshold?: (number|null);

                    /** HealthAggregationPolicy name */
                    name?: (string|null);

                    /** HealthAggregationPolicy policyType */
                    policyType?: (string|null);

                    /** HealthAggregationPolicy region */
                    region?: (string|null);

                    /** HealthAggregationPolicy selfLink */
                    selfLink?: (string|null);

                    /** HealthAggregationPolicy selfLinkWithId */
                    selfLinkWithId?: (string|null);
                }

                /** Represents a HealthAggregationPolicy. */
                class HealthAggregationPolicy implements IHealthAggregationPolicy {

                    /**
                     * Constructs a new HealthAggregationPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthAggregationPolicy);

                    /** HealthAggregationPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** HealthAggregationPolicy description. */
                    public description?: (string|null);

                    /** HealthAggregationPolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** HealthAggregationPolicy healthyPercentThreshold. */
                    public healthyPercentThreshold?: (number|null);

                    /** HealthAggregationPolicy id. */
                    public id?: (number|Long|string|null);

                    /** HealthAggregationPolicy kind. */
                    public kind?: (string|null);

                    /** HealthAggregationPolicy minHealthyThreshold. */
                    public minHealthyThreshold?: (number|null);

                    /** HealthAggregationPolicy name. */
                    public name?: (string|null);

                    /** HealthAggregationPolicy policyType. */
                    public policyType?: (string|null);

                    /** HealthAggregationPolicy region. */
                    public region?: (string|null);

                    /** HealthAggregationPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** HealthAggregationPolicy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /**
                     * Creates a new HealthAggregationPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthAggregationPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthAggregationPolicy): google.cloud.compute.v1.HealthAggregationPolicy;

                    /**
                     * Encodes the specified HealthAggregationPolicy message. Does not implicitly {@link google.cloud.compute.v1.HealthAggregationPolicy.verify|verify} messages.
                     * @param message HealthAggregationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthAggregationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthAggregationPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthAggregationPolicy.verify|verify} messages.
                     * @param message HealthAggregationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthAggregationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthAggregationPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthAggregationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthAggregationPolicy;

                    /**
                     * Decodes a HealthAggregationPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthAggregationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthAggregationPolicy;

                    /**
                     * Verifies a HealthAggregationPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthAggregationPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthAggregationPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthAggregationPolicy;

                    /**
                     * Creates a plain object from a HealthAggregationPolicy message. Also converts values to other types if specified.
                     * @param message HealthAggregationPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthAggregationPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthAggregationPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthAggregationPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthAggregationPolicy {

                    /** PolicyType enum. */
                    enum PolicyType {
                        UNDEFINED_POLICY_TYPE = 0,
                        BACKEND_SERVICE_POLICY = 415582023,
                        DNS_PUBLIC_IP_POLICY = 366354794
                    }
                }

                /** Properties of a HealthAggregationPolicyAggregatedList. */
                interface IHealthAggregationPolicyAggregatedList {

                    /** HealthAggregationPolicyAggregatedList id */
                    id?: (string|null);

                    /** HealthAggregationPolicyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IHealthAggregationPoliciesScopedList }|null);

                    /** HealthAggregationPolicyAggregatedList kind */
                    kind?: (string|null);

                    /** HealthAggregationPolicyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthAggregationPolicyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** HealthAggregationPolicyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** HealthAggregationPolicyAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthAggregationPolicyAggregatedList. */
                class HealthAggregationPolicyAggregatedList implements IHealthAggregationPolicyAggregatedList {

                    /**
                     * Constructs a new HealthAggregationPolicyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthAggregationPolicyAggregatedList);

                    /** HealthAggregationPolicyAggregatedList id. */
                    public id?: (string|null);

                    /** HealthAggregationPolicyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IHealthAggregationPoliciesScopedList };

                    /** HealthAggregationPolicyAggregatedList kind. */
                    public kind?: (string|null);

                    /** HealthAggregationPolicyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthAggregationPolicyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthAggregationPolicyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** HealthAggregationPolicyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthAggregationPolicyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthAggregationPolicyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthAggregationPolicyAggregatedList): google.cloud.compute.v1.HealthAggregationPolicyAggregatedList;

                    /**
                     * Encodes the specified HealthAggregationPolicyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.HealthAggregationPolicyAggregatedList.verify|verify} messages.
                     * @param message HealthAggregationPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthAggregationPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthAggregationPolicyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthAggregationPolicyAggregatedList.verify|verify} messages.
                     * @param message HealthAggregationPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthAggregationPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthAggregationPolicyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthAggregationPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthAggregationPolicyAggregatedList;

                    /**
                     * Decodes a HealthAggregationPolicyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthAggregationPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthAggregationPolicyAggregatedList;

                    /**
                     * Verifies a HealthAggregationPolicyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthAggregationPolicyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthAggregationPolicyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthAggregationPolicyAggregatedList;

                    /**
                     * Creates a plain object from a HealthAggregationPolicyAggregatedList message. Also converts values to other types if specified.
                     * @param message HealthAggregationPolicyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthAggregationPolicyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthAggregationPolicyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthAggregationPolicyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthAggregationPolicyList. */
                interface IHealthAggregationPolicyList {

                    /** HealthAggregationPolicyList id */
                    id?: (string|null);

                    /** HealthAggregationPolicyList items */
                    items?: (google.cloud.compute.v1.IHealthAggregationPolicy[]|null);

                    /** HealthAggregationPolicyList kind */
                    kind?: (string|null);

                    /** HealthAggregationPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthAggregationPolicyList selfLink */
                    selfLink?: (string|null);

                    /** HealthAggregationPolicyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthAggregationPolicyList. */
                class HealthAggregationPolicyList implements IHealthAggregationPolicyList {

                    /**
                     * Constructs a new HealthAggregationPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthAggregationPolicyList);

                    /** HealthAggregationPolicyList id. */
                    public id?: (string|null);

                    /** HealthAggregationPolicyList items. */
                    public items: google.cloud.compute.v1.IHealthAggregationPolicy[];

                    /** HealthAggregationPolicyList kind. */
                    public kind?: (string|null);

                    /** HealthAggregationPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthAggregationPolicyList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthAggregationPolicyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthAggregationPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthAggregationPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthAggregationPolicyList): google.cloud.compute.v1.HealthAggregationPolicyList;

                    /**
                     * Encodes the specified HealthAggregationPolicyList message. Does not implicitly {@link google.cloud.compute.v1.HealthAggregationPolicyList.verify|verify} messages.
                     * @param message HealthAggregationPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthAggregationPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthAggregationPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthAggregationPolicyList.verify|verify} messages.
                     * @param message HealthAggregationPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthAggregationPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthAggregationPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthAggregationPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthAggregationPolicyList;

                    /**
                     * Decodes a HealthAggregationPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthAggregationPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthAggregationPolicyList;

                    /**
                     * Verifies a HealthAggregationPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthAggregationPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthAggregationPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthAggregationPolicyList;

                    /**
                     * Creates a plain object from a HealthAggregationPolicyList message. Also converts values to other types if specified.
                     * @param message HealthAggregationPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthAggregationPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthAggregationPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthAggregationPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheck. */
                interface IHealthCheck {

                    /** HealthCheck checkIntervalSec */
                    checkIntervalSec?: (number|null);

                    /** HealthCheck creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** HealthCheck description */
                    description?: (string|null);

                    /** HealthCheck grpcHealthCheck */
                    grpcHealthCheck?: (google.cloud.compute.v1.IGRPCHealthCheck|null);

                    /** HealthCheck grpcTlsHealthCheck */
                    grpcTlsHealthCheck?: (google.cloud.compute.v1.IGRPCTLSHealthCheck|null);

                    /** HealthCheck healthyThreshold */
                    healthyThreshold?: (number|null);

                    /** HealthCheck http2HealthCheck */
                    http2HealthCheck?: (google.cloud.compute.v1.IHTTP2HealthCheck|null);

                    /** HealthCheck httpHealthCheck */
                    httpHealthCheck?: (google.cloud.compute.v1.IHTTPHealthCheck|null);

                    /** HealthCheck httpsHealthCheck */
                    httpsHealthCheck?: (google.cloud.compute.v1.IHTTPSHealthCheck|null);

                    /** HealthCheck id */
                    id?: (number|Long|string|null);

                    /** HealthCheck kind */
                    kind?: (string|null);

                    /** HealthCheck logConfig */
                    logConfig?: (google.cloud.compute.v1.IHealthCheckLogConfig|null);

                    /** HealthCheck name */
                    name?: (string|null);

                    /** HealthCheck region */
                    region?: (string|null);

                    /** HealthCheck selfLink */
                    selfLink?: (string|null);

                    /** HealthCheck sourceRegions */
                    sourceRegions?: (string[]|null);

                    /** HealthCheck sslHealthCheck */
                    sslHealthCheck?: (google.cloud.compute.v1.ISSLHealthCheck|null);

                    /** HealthCheck tcpHealthCheck */
                    tcpHealthCheck?: (google.cloud.compute.v1.ITCPHealthCheck|null);

                    /** HealthCheck timeoutSec */
                    timeoutSec?: (number|null);

                    /** HealthCheck type */
                    type?: (string|null);

                    /** HealthCheck unhealthyThreshold */
                    unhealthyThreshold?: (number|null);
                }

                /** Represents a HealthCheck. */
                class HealthCheck implements IHealthCheck {

                    /**
                     * Constructs a new HealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheck);

                    /** HealthCheck checkIntervalSec. */
                    public checkIntervalSec?: (number|null);

                    /** HealthCheck creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** HealthCheck description. */
                    public description?: (string|null);

                    /** HealthCheck grpcHealthCheck. */
                    public grpcHealthCheck?: (google.cloud.compute.v1.IGRPCHealthCheck|null);

                    /** HealthCheck grpcTlsHealthCheck. */
                    public grpcTlsHealthCheck?: (google.cloud.compute.v1.IGRPCTLSHealthCheck|null);

                    /** HealthCheck healthyThreshold. */
                    public healthyThreshold?: (number|null);

                    /** HealthCheck http2HealthCheck. */
                    public http2HealthCheck?: (google.cloud.compute.v1.IHTTP2HealthCheck|null);

                    /** HealthCheck httpHealthCheck. */
                    public httpHealthCheck?: (google.cloud.compute.v1.IHTTPHealthCheck|null);

                    /** HealthCheck httpsHealthCheck. */
                    public httpsHealthCheck?: (google.cloud.compute.v1.IHTTPSHealthCheck|null);

                    /** HealthCheck id. */
                    public id?: (number|Long|string|null);

                    /** HealthCheck kind. */
                    public kind?: (string|null);

                    /** HealthCheck logConfig. */
                    public logConfig?: (google.cloud.compute.v1.IHealthCheckLogConfig|null);

                    /** HealthCheck name. */
                    public name?: (string|null);

                    /** HealthCheck region. */
                    public region?: (string|null);

                    /** HealthCheck selfLink. */
                    public selfLink?: (string|null);

                    /** HealthCheck sourceRegions. */
                    public sourceRegions: string[];

                    /** HealthCheck sslHealthCheck. */
                    public sslHealthCheck?: (google.cloud.compute.v1.ISSLHealthCheck|null);

                    /** HealthCheck tcpHealthCheck. */
                    public tcpHealthCheck?: (google.cloud.compute.v1.ITCPHealthCheck|null);

                    /** HealthCheck timeoutSec. */
                    public timeoutSec?: (number|null);

                    /** HealthCheck type. */
                    public type?: (string|null);

                    /** HealthCheck unhealthyThreshold. */
                    public unhealthyThreshold?: (number|null);

                    /**
                     * Creates a new HealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheck): google.cloud.compute.v1.HealthCheck;

                    /**
                     * Encodes the specified HealthCheck message. Does not implicitly {@link google.cloud.compute.v1.HealthCheck.verify|verify} messages.
                     * @param message HealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheck.verify|verify} messages.
                     * @param message HealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheck;

                    /**
                     * Decodes a HealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheck;

                    /**
                     * Verifies a HealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheck;

                    /**
                     * Creates a plain object from a HealthCheck message. Also converts values to other types if specified.
                     * @param message HealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthCheck {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        GRPC = 2196510,
                        GRPC_WITH_TLS = 268089571,
                        HTTP = 2228360,
                        HTTP2 = 69079210,
                        HTTPS = 69079243,
                        INVALID = 530283991,
                        SSL = 82412,
                        TCP = 82881
                    }
                }

                /** Properties of a HealthCheckList. */
                interface IHealthCheckList {

                    /** HealthCheckList id */
                    id?: (string|null);

                    /** HealthCheckList items */
                    items?: (google.cloud.compute.v1.IHealthCheck[]|null);

                    /** HealthCheckList kind */
                    kind?: (string|null);

                    /** HealthCheckList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthCheckList selfLink */
                    selfLink?: (string|null);

                    /** HealthCheckList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthCheckList. */
                class HealthCheckList implements IHealthCheckList {

                    /**
                     * Constructs a new HealthCheckList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheckList);

                    /** HealthCheckList id. */
                    public id?: (string|null);

                    /** HealthCheckList items. */
                    public items: google.cloud.compute.v1.IHealthCheck[];

                    /** HealthCheckList kind. */
                    public kind?: (string|null);

                    /** HealthCheckList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthCheckList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthCheckList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthCheckList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheckList): google.cloud.compute.v1.HealthCheckList;

                    /**
                     * Encodes the specified HealthCheckList message. Does not implicitly {@link google.cloud.compute.v1.HealthCheckList.verify|verify} messages.
                     * @param message HealthCheckList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheckList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheckList.verify|verify} messages.
                     * @param message HealthCheckList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheckList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheckList;

                    /**
                     * Decodes a HealthCheckList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheckList;

                    /**
                     * Verifies a HealthCheckList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheckList;

                    /**
                     * Creates a plain object from a HealthCheckList message. Also converts values to other types if specified.
                     * @param message HealthCheckList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheckList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckLogConfig. */
                interface IHealthCheckLogConfig {

                    /** HealthCheckLogConfig enable */
                    enable?: (boolean|null);
                }

                /** Represents a HealthCheckLogConfig. */
                class HealthCheckLogConfig implements IHealthCheckLogConfig {

                    /**
                     * Constructs a new HealthCheckLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheckLogConfig);

                    /** HealthCheckLogConfig enable. */
                    public enable?: (boolean|null);

                    /**
                     * Creates a new HealthCheckLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheckLogConfig): google.cloud.compute.v1.HealthCheckLogConfig;

                    /**
                     * Encodes the specified HealthCheckLogConfig message. Does not implicitly {@link google.cloud.compute.v1.HealthCheckLogConfig.verify|verify} messages.
                     * @param message HealthCheckLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheckLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheckLogConfig.verify|verify} messages.
                     * @param message HealthCheckLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheckLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheckLogConfig;

                    /**
                     * Decodes a HealthCheckLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheckLogConfig;

                    /**
                     * Verifies a HealthCheckLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheckLogConfig;

                    /**
                     * Creates a plain object from a HealthCheckLogConfig message. Also converts values to other types if specified.
                     * @param message HealthCheckLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheckLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckReference. */
                interface IHealthCheckReference {

                    /** HealthCheckReference healthCheck */
                    healthCheck?: (string|null);
                }

                /** Represents a HealthCheckReference. */
                class HealthCheckReference implements IHealthCheckReference {

                    /**
                     * Constructs a new HealthCheckReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheckReference);

                    /** HealthCheckReference healthCheck. */
                    public healthCheck?: (string|null);

                    /**
                     * Creates a new HealthCheckReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheckReference): google.cloud.compute.v1.HealthCheckReference;

                    /**
                     * Encodes the specified HealthCheckReference message. Does not implicitly {@link google.cloud.compute.v1.HealthCheckReference.verify|verify} messages.
                     * @param message HealthCheckReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheckReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheckReference.verify|verify} messages.
                     * @param message HealthCheckReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheckReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheckReference;

                    /**
                     * Decodes a HealthCheckReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheckReference;

                    /**
                     * Verifies a HealthCheckReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheckReference;

                    /**
                     * Creates a plain object from a HealthCheckReference message. Also converts values to other types if specified.
                     * @param message HealthCheckReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheckReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckService. */
                interface IHealthCheckService {

                    /** HealthCheckService creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** HealthCheckService description */
                    description?: (string|null);

                    /** HealthCheckService fingerprint */
                    fingerprint?: (string|null);

                    /** HealthCheckService healthChecks */
                    healthChecks?: (string[]|null);

                    /** HealthCheckService healthStatusAggregationPolicy */
                    healthStatusAggregationPolicy?: (string|null);

                    /** HealthCheckService id */
                    id?: (number|Long|string|null);

                    /** HealthCheckService kind */
                    kind?: (string|null);

                    /** HealthCheckService name */
                    name?: (string|null);

                    /** HealthCheckService networkEndpointGroups */
                    networkEndpointGroups?: (string[]|null);

                    /** HealthCheckService notificationEndpoints */
                    notificationEndpoints?: (string[]|null);

                    /** HealthCheckService region */
                    region?: (string|null);

                    /** HealthCheckService selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a HealthCheckService. */
                class HealthCheckService implements IHealthCheckService {

                    /**
                     * Constructs a new HealthCheckService.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheckService);

                    /** HealthCheckService creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** HealthCheckService description. */
                    public description?: (string|null);

                    /** HealthCheckService fingerprint. */
                    public fingerprint?: (string|null);

                    /** HealthCheckService healthChecks. */
                    public healthChecks: string[];

                    /** HealthCheckService healthStatusAggregationPolicy. */
                    public healthStatusAggregationPolicy?: (string|null);

                    /** HealthCheckService id. */
                    public id?: (number|Long|string|null);

                    /** HealthCheckService kind. */
                    public kind?: (string|null);

                    /** HealthCheckService name. */
                    public name?: (string|null);

                    /** HealthCheckService networkEndpointGroups. */
                    public networkEndpointGroups: string[];

                    /** HealthCheckService notificationEndpoints. */
                    public notificationEndpoints: string[];

                    /** HealthCheckService region. */
                    public region?: (string|null);

                    /** HealthCheckService selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new HealthCheckService instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckService instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheckService): google.cloud.compute.v1.HealthCheckService;

                    /**
                     * Encodes the specified HealthCheckService message. Does not implicitly {@link google.cloud.compute.v1.HealthCheckService.verify|verify} messages.
                     * @param message HealthCheckService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheckService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckService message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheckService.verify|verify} messages.
                     * @param message HealthCheckService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheckService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckService message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheckService;

                    /**
                     * Decodes a HealthCheckService message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheckService;

                    /**
                     * Verifies a HealthCheckService message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckService message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckService
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheckService;

                    /**
                     * Creates a plain object from a HealthCheckService message. Also converts values to other types if specified.
                     * @param message HealthCheckService
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheckService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckService to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckService
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthCheckService {

                    /** HealthStatusAggregationPolicy enum. */
                    enum HealthStatusAggregationPolicy {
                        UNDEFINED_HEALTH_STATUS_AGGREGATION_POLICY = 0,
                        AND = 64951,
                        NO_AGGREGATION = 426445124
                    }
                }

                /** Properties of a HealthCheckServiceAggregatedList. */
                interface IHealthCheckServiceAggregatedList {

                    /** HealthCheckServiceAggregatedList id */
                    id?: (string|null);

                    /** HealthCheckServiceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IHealthCheckServicesScopedList }|null);

                    /** HealthCheckServiceAggregatedList kind */
                    kind?: (string|null);

                    /** HealthCheckServiceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthCheckServiceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** HealthCheckServiceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** HealthCheckServiceAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthCheckServiceAggregatedList. */
                class HealthCheckServiceAggregatedList implements IHealthCheckServiceAggregatedList {

                    /**
                     * Constructs a new HealthCheckServiceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheckServiceAggregatedList);

                    /** HealthCheckServiceAggregatedList id. */
                    public id?: (string|null);

                    /** HealthCheckServiceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IHealthCheckServicesScopedList };

                    /** HealthCheckServiceAggregatedList kind. */
                    public kind?: (string|null);

                    /** HealthCheckServiceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthCheckServiceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthCheckServiceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** HealthCheckServiceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthCheckServiceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckServiceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheckServiceAggregatedList): google.cloud.compute.v1.HealthCheckServiceAggregatedList;

                    /**
                     * Encodes the specified HealthCheckServiceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.HealthCheckServiceAggregatedList.verify|verify} messages.
                     * @param message HealthCheckServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheckServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckServiceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheckServiceAggregatedList.verify|verify} messages.
                     * @param message HealthCheckServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheckServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckServiceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheckServiceAggregatedList;

                    /**
                     * Decodes a HealthCheckServiceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheckServiceAggregatedList;

                    /**
                     * Verifies a HealthCheckServiceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckServiceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckServiceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheckServiceAggregatedList;

                    /**
                     * Creates a plain object from a HealthCheckServiceAggregatedList message. Also converts values to other types if specified.
                     * @param message HealthCheckServiceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheckServiceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckServiceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckServiceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckServiceReference. */
                interface IHealthCheckServiceReference {

                    /** HealthCheckServiceReference healthCheckService */
                    healthCheckService?: (string|null);
                }

                /** Represents a HealthCheckServiceReference. */
                class HealthCheckServiceReference implements IHealthCheckServiceReference {

                    /**
                     * Constructs a new HealthCheckServiceReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheckServiceReference);

                    /** HealthCheckServiceReference healthCheckService. */
                    public healthCheckService?: (string|null);

                    /**
                     * Creates a new HealthCheckServiceReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckServiceReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheckServiceReference): google.cloud.compute.v1.HealthCheckServiceReference;

                    /**
                     * Encodes the specified HealthCheckServiceReference message. Does not implicitly {@link google.cloud.compute.v1.HealthCheckServiceReference.verify|verify} messages.
                     * @param message HealthCheckServiceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheckServiceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckServiceReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheckServiceReference.verify|verify} messages.
                     * @param message HealthCheckServiceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheckServiceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckServiceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckServiceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheckServiceReference;

                    /**
                     * Decodes a HealthCheckServiceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckServiceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheckServiceReference;

                    /**
                     * Verifies a HealthCheckServiceReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckServiceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckServiceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheckServiceReference;

                    /**
                     * Creates a plain object from a HealthCheckServiceReference message. Also converts values to other types if specified.
                     * @param message HealthCheckServiceReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheckServiceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckServiceReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckServiceReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckServicesList. */
                interface IHealthCheckServicesList {

                    /** HealthCheckServicesList id */
                    id?: (string|null);

                    /** HealthCheckServicesList items */
                    items?: (google.cloud.compute.v1.IHealthCheckService[]|null);

                    /** HealthCheckServicesList kind */
                    kind?: (string|null);

                    /** HealthCheckServicesList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthCheckServicesList selfLink */
                    selfLink?: (string|null);

                    /** HealthCheckServicesList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthCheckServicesList. */
                class HealthCheckServicesList implements IHealthCheckServicesList {

                    /**
                     * Constructs a new HealthCheckServicesList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheckServicesList);

                    /** HealthCheckServicesList id. */
                    public id?: (string|null);

                    /** HealthCheckServicesList items. */
                    public items: google.cloud.compute.v1.IHealthCheckService[];

                    /** HealthCheckServicesList kind. */
                    public kind?: (string|null);

                    /** HealthCheckServicesList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthCheckServicesList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthCheckServicesList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthCheckServicesList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckServicesList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheckServicesList): google.cloud.compute.v1.HealthCheckServicesList;

                    /**
                     * Encodes the specified HealthCheckServicesList message. Does not implicitly {@link google.cloud.compute.v1.HealthCheckServicesList.verify|verify} messages.
                     * @param message HealthCheckServicesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheckServicesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckServicesList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheckServicesList.verify|verify} messages.
                     * @param message HealthCheckServicesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheckServicesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckServicesList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckServicesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheckServicesList;

                    /**
                     * Decodes a HealthCheckServicesList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckServicesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheckServicesList;

                    /**
                     * Verifies a HealthCheckServicesList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckServicesList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckServicesList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheckServicesList;

                    /**
                     * Creates a plain object from a HealthCheckServicesList message. Also converts values to other types if specified.
                     * @param message HealthCheckServicesList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheckServicesList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckServicesList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckServicesList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckServicesScopedList. */
                interface IHealthCheckServicesScopedList {

                    /** HealthCheckServicesScopedList resources */
                    resources?: (google.cloud.compute.v1.IHealthCheckService[]|null);

                    /** HealthCheckServicesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthCheckServicesScopedList. */
                class HealthCheckServicesScopedList implements IHealthCheckServicesScopedList {

                    /**
                     * Constructs a new HealthCheckServicesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthCheckServicesScopedList);

                    /** HealthCheckServicesScopedList resources. */
                    public resources: google.cloud.compute.v1.IHealthCheckService[];

                    /** HealthCheckServicesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthCheckServicesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckServicesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthCheckServicesScopedList): google.cloud.compute.v1.HealthCheckServicesScopedList;

                    /**
                     * Encodes the specified HealthCheckServicesScopedList message. Does not implicitly {@link google.cloud.compute.v1.HealthCheckServicesScopedList.verify|verify} messages.
                     * @param message HealthCheckServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthCheckServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckServicesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthCheckServicesScopedList.verify|verify} messages.
                     * @param message HealthCheckServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthCheckServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckServicesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthCheckServicesScopedList;

                    /**
                     * Decodes a HealthCheckServicesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthCheckServicesScopedList;

                    /**
                     * Verifies a HealthCheckServicesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckServicesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckServicesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthCheckServicesScopedList;

                    /**
                     * Creates a plain object from a HealthCheckServicesScopedList message. Also converts values to other types if specified.
                     * @param message HealthCheckServicesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthCheckServicesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckServicesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckServicesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthChecksAggregatedList. */
                interface IHealthChecksAggregatedList {

                    /** HealthChecksAggregatedList id */
                    id?: (string|null);

                    /** HealthChecksAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IHealthChecksScopedList }|null);

                    /** HealthChecksAggregatedList kind */
                    kind?: (string|null);

                    /** HealthChecksAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthChecksAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** HealthChecksAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** HealthChecksAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthChecksAggregatedList. */
                class HealthChecksAggregatedList implements IHealthChecksAggregatedList {

                    /**
                     * Constructs a new HealthChecksAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthChecksAggregatedList);

                    /** HealthChecksAggregatedList id. */
                    public id?: (string|null);

                    /** HealthChecksAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IHealthChecksScopedList };

                    /** HealthChecksAggregatedList kind. */
                    public kind?: (string|null);

                    /** HealthChecksAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthChecksAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthChecksAggregatedList unreachables. */
                    public unreachables: string[];

                    /** HealthChecksAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthChecksAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthChecksAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthChecksAggregatedList): google.cloud.compute.v1.HealthChecksAggregatedList;

                    /**
                     * Encodes the specified HealthChecksAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.HealthChecksAggregatedList.verify|verify} messages.
                     * @param message HealthChecksAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthChecksAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthChecksAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthChecksAggregatedList.verify|verify} messages.
                     * @param message HealthChecksAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthChecksAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthChecksAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthChecksAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthChecksAggregatedList;

                    /**
                     * Decodes a HealthChecksAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthChecksAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthChecksAggregatedList;

                    /**
                     * Verifies a HealthChecksAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthChecksAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthChecksAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthChecksAggregatedList;

                    /**
                     * Creates a plain object from a HealthChecksAggregatedList message. Also converts values to other types if specified.
                     * @param message HealthChecksAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthChecksAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthChecksAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthChecksAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthChecksScopedList. */
                interface IHealthChecksScopedList {

                    /** HealthChecksScopedList healthChecks */
                    healthChecks?: (google.cloud.compute.v1.IHealthCheck[]|null);

                    /** HealthChecksScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthChecksScopedList. */
                class HealthChecksScopedList implements IHealthChecksScopedList {

                    /**
                     * Constructs a new HealthChecksScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthChecksScopedList);

                    /** HealthChecksScopedList healthChecks. */
                    public healthChecks: google.cloud.compute.v1.IHealthCheck[];

                    /** HealthChecksScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthChecksScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthChecksScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthChecksScopedList): google.cloud.compute.v1.HealthChecksScopedList;

                    /**
                     * Encodes the specified HealthChecksScopedList message. Does not implicitly {@link google.cloud.compute.v1.HealthChecksScopedList.verify|verify} messages.
                     * @param message HealthChecksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthChecksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthChecksScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthChecksScopedList.verify|verify} messages.
                     * @param message HealthChecksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthChecksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthChecksScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthChecksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthChecksScopedList;

                    /**
                     * Decodes a HealthChecksScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthChecksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthChecksScopedList;

                    /**
                     * Verifies a HealthChecksScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthChecksScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthChecksScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthChecksScopedList;

                    /**
                     * Creates a plain object from a HealthChecksScopedList message. Also converts values to other types if specified.
                     * @param message HealthChecksScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthChecksScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthChecksScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthChecksScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthSource. */
                interface IHealthSource {

                    /** HealthSource creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** HealthSource description */
                    description?: (string|null);

                    /** HealthSource fingerprint */
                    fingerprint?: (string|null);

                    /** HealthSource healthAggregationPolicy */
                    healthAggregationPolicy?: (string|null);

                    /** HealthSource id */
                    id?: (number|Long|string|null);

                    /** HealthSource kind */
                    kind?: (string|null);

                    /** HealthSource name */
                    name?: (string|null);

                    /** HealthSource region */
                    region?: (string|null);

                    /** HealthSource selfLink */
                    selfLink?: (string|null);

                    /** HealthSource selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** HealthSource sourceType */
                    sourceType?: (string|null);

                    /** HealthSource sources */
                    sources?: (string[]|null);
                }

                /** Represents a HealthSource. */
                class HealthSource implements IHealthSource {

                    /**
                     * Constructs a new HealthSource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthSource);

                    /** HealthSource creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** HealthSource description. */
                    public description?: (string|null);

                    /** HealthSource fingerprint. */
                    public fingerprint?: (string|null);

                    /** HealthSource healthAggregationPolicy. */
                    public healthAggregationPolicy?: (string|null);

                    /** HealthSource id. */
                    public id?: (number|Long|string|null);

                    /** HealthSource kind. */
                    public kind?: (string|null);

                    /** HealthSource name. */
                    public name?: (string|null);

                    /** HealthSource region. */
                    public region?: (string|null);

                    /** HealthSource selfLink. */
                    public selfLink?: (string|null);

                    /** HealthSource selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** HealthSource sourceType. */
                    public sourceType?: (string|null);

                    /** HealthSource sources. */
                    public sources: string[];

                    /**
                     * Creates a new HealthSource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthSource instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthSource): google.cloud.compute.v1.HealthSource;

                    /**
                     * Encodes the specified HealthSource message. Does not implicitly {@link google.cloud.compute.v1.HealthSource.verify|verify} messages.
                     * @param message HealthSource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthSource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthSource message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthSource.verify|verify} messages.
                     * @param message HealthSource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthSource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthSource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthSource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthSource;

                    /**
                     * Decodes a HealthSource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthSource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthSource;

                    /**
                     * Verifies a HealthSource message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthSource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthSource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthSource;

                    /**
                     * Creates a plain object from a HealthSource message. Also converts values to other types if specified.
                     * @param message HealthSource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthSource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthSource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthSource {

                    /** SourceType enum. */
                    enum SourceType {
                        UNDEFINED_SOURCE_TYPE = 0,
                        BACKEND_SERVICE = 285792202
                    }
                }

                /** Properties of a HealthSourceAggregatedList. */
                interface IHealthSourceAggregatedList {

                    /** HealthSourceAggregatedList id */
                    id?: (string|null);

                    /** HealthSourceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IHealthSourcesScopedList }|null);

                    /** HealthSourceAggregatedList kind */
                    kind?: (string|null);

                    /** HealthSourceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthSourceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** HealthSourceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** HealthSourceAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthSourceAggregatedList. */
                class HealthSourceAggregatedList implements IHealthSourceAggregatedList {

                    /**
                     * Constructs a new HealthSourceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthSourceAggregatedList);

                    /** HealthSourceAggregatedList id. */
                    public id?: (string|null);

                    /** HealthSourceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IHealthSourcesScopedList };

                    /** HealthSourceAggregatedList kind. */
                    public kind?: (string|null);

                    /** HealthSourceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthSourceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthSourceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** HealthSourceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthSourceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthSourceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthSourceAggregatedList): google.cloud.compute.v1.HealthSourceAggregatedList;

                    /**
                     * Encodes the specified HealthSourceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.HealthSourceAggregatedList.verify|verify} messages.
                     * @param message HealthSourceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthSourceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthSourceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthSourceAggregatedList.verify|verify} messages.
                     * @param message HealthSourceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthSourceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthSourceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthSourceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthSourceAggregatedList;

                    /**
                     * Decodes a HealthSourceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthSourceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthSourceAggregatedList;

                    /**
                     * Verifies a HealthSourceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthSourceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthSourceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthSourceAggregatedList;

                    /**
                     * Creates a plain object from a HealthSourceAggregatedList message. Also converts values to other types if specified.
                     * @param message HealthSourceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthSourceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthSourceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthSourceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthSourceList. */
                interface IHealthSourceList {

                    /** HealthSourceList id */
                    id?: (string|null);

                    /** HealthSourceList items */
                    items?: (google.cloud.compute.v1.IHealthSource[]|null);

                    /** HealthSourceList kind */
                    kind?: (string|null);

                    /** HealthSourceList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthSourceList selfLink */
                    selfLink?: (string|null);

                    /** HealthSourceList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthSourceList. */
                class HealthSourceList implements IHealthSourceList {

                    /**
                     * Constructs a new HealthSourceList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthSourceList);

                    /** HealthSourceList id. */
                    public id?: (string|null);

                    /** HealthSourceList items. */
                    public items: google.cloud.compute.v1.IHealthSource[];

                    /** HealthSourceList kind. */
                    public kind?: (string|null);

                    /** HealthSourceList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthSourceList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthSourceList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthSourceList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthSourceList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthSourceList): google.cloud.compute.v1.HealthSourceList;

                    /**
                     * Encodes the specified HealthSourceList message. Does not implicitly {@link google.cloud.compute.v1.HealthSourceList.verify|verify} messages.
                     * @param message HealthSourceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthSourceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthSourceList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthSourceList.verify|verify} messages.
                     * @param message HealthSourceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthSourceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthSourceList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthSourceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthSourceList;

                    /**
                     * Decodes a HealthSourceList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthSourceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthSourceList;

                    /**
                     * Verifies a HealthSourceList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthSourceList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthSourceList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthSourceList;

                    /**
                     * Creates a plain object from a HealthSourceList message. Also converts values to other types if specified.
                     * @param message HealthSourceList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthSourceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthSourceList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthSourceList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthSourcesScopedList. */
                interface IHealthSourcesScopedList {

                    /** HealthSourcesScopedList healthSources */
                    healthSources?: (google.cloud.compute.v1.IHealthSource[]|null);

                    /** HealthSourcesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a HealthSourcesScopedList. */
                class HealthSourcesScopedList implements IHealthSourcesScopedList {

                    /**
                     * Constructs a new HealthSourcesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthSourcesScopedList);

                    /** HealthSourcesScopedList healthSources. */
                    public healthSources: google.cloud.compute.v1.IHealthSource[];

                    /** HealthSourcesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new HealthSourcesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthSourcesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthSourcesScopedList): google.cloud.compute.v1.HealthSourcesScopedList;

                    /**
                     * Encodes the specified HealthSourcesScopedList message. Does not implicitly {@link google.cloud.compute.v1.HealthSourcesScopedList.verify|verify} messages.
                     * @param message HealthSourcesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthSourcesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthSourcesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthSourcesScopedList.verify|verify} messages.
                     * @param message HealthSourcesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthSourcesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthSourcesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthSourcesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthSourcesScopedList;

                    /**
                     * Decodes a HealthSourcesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthSourcesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthSourcesScopedList;

                    /**
                     * Verifies a HealthSourcesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthSourcesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthSourcesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthSourcesScopedList;

                    /**
                     * Creates a plain object from a HealthSourcesScopedList message. Also converts values to other types if specified.
                     * @param message HealthSourcesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthSourcesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthSourcesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthSourcesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthStatus. */
                interface IHealthStatus {

                    /** HealthStatus annotations */
                    annotations?: ({ [k: string]: string }|null);

                    /** HealthStatus forwardingRule */
                    forwardingRule?: (string|null);

                    /** HealthStatus forwardingRuleIp */
                    forwardingRuleIp?: (string|null);

                    /** HealthStatus healthState */
                    healthState?: (string|null);

                    /** HealthStatus instance */
                    instance?: (string|null);

                    /** HealthStatus ipAddress */
                    ipAddress?: (string|null);

                    /** HealthStatus ipv6Address */
                    ipv6Address?: (string|null);

                    /** HealthStatus ipv6HealthState */
                    ipv6HealthState?: (string|null);

                    /** HealthStatus port */
                    port?: (number|null);

                    /** HealthStatus weight */
                    weight?: (string|null);

                    /** HealthStatus weightError */
                    weightError?: (string|null);
                }

                /** Represents a HealthStatus. */
                class HealthStatus implements IHealthStatus {

                    /**
                     * Constructs a new HealthStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthStatus);

                    /** HealthStatus annotations. */
                    public annotations: { [k: string]: string };

                    /** HealthStatus forwardingRule. */
                    public forwardingRule?: (string|null);

                    /** HealthStatus forwardingRuleIp. */
                    public forwardingRuleIp?: (string|null);

                    /** HealthStatus healthState. */
                    public healthState?: (string|null);

                    /** HealthStatus instance. */
                    public instance?: (string|null);

                    /** HealthStatus ipAddress. */
                    public ipAddress?: (string|null);

                    /** HealthStatus ipv6Address. */
                    public ipv6Address?: (string|null);

                    /** HealthStatus ipv6HealthState. */
                    public ipv6HealthState?: (string|null);

                    /** HealthStatus port. */
                    public port?: (number|null);

                    /** HealthStatus weight. */
                    public weight?: (string|null);

                    /** HealthStatus weightError. */
                    public weightError?: (string|null);

                    /**
                     * Creates a new HealthStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthStatus): google.cloud.compute.v1.HealthStatus;

                    /**
                     * Encodes the specified HealthStatus message. Does not implicitly {@link google.cloud.compute.v1.HealthStatus.verify|verify} messages.
                     * @param message HealthStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthStatus.verify|verify} messages.
                     * @param message HealthStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthStatus;

                    /**
                     * Decodes a HealthStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthStatus;

                    /**
                     * Verifies a HealthStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthStatus;

                    /**
                     * Creates a plain object from a HealthStatus message. Also converts values to other types if specified.
                     * @param message HealthStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthStatus {

                    /** HealthState enum. */
                    enum HealthState {
                        UNDEFINED_HEALTH_STATE = 0,
                        HEALTHY = 439801213,
                        UNHEALTHY = 462118084
                    }

                    /** Ipv6HealthState enum. */
                    enum Ipv6HealthState {
                        UNDEFINED_IPV6_HEALTH_STATE = 0
                    }

                    /** WeightError enum. */
                    enum WeightError {
                        UNDEFINED_WEIGHT_ERROR = 0,
                        INVALID_WEIGHT = 383698400,
                        MISSING_WEIGHT = 384027537,
                        UNAVAILABLE_WEIGHT = 439464295,
                        WEIGHT_NONE = 502428831
                    }
                }

                /** Properties of a HealthStatusForNetworkEndpoint. */
                interface IHealthStatusForNetworkEndpoint {

                    /** HealthStatusForNetworkEndpoint backendService */
                    backendService?: (google.cloud.compute.v1.IBackendServiceReference|null);

                    /** HealthStatusForNetworkEndpoint forwardingRule */
                    forwardingRule?: (google.cloud.compute.v1.IForwardingRuleReference|null);

                    /** HealthStatusForNetworkEndpoint healthCheck */
                    healthCheck?: (google.cloud.compute.v1.IHealthCheckReference|null);

                    /** HealthStatusForNetworkEndpoint healthCheckService */
                    healthCheckService?: (google.cloud.compute.v1.IHealthCheckServiceReference|null);

                    /** HealthStatusForNetworkEndpoint healthState */
                    healthState?: (string|null);

                    /** HealthStatusForNetworkEndpoint ipv6HealthState */
                    ipv6HealthState?: (string|null);
                }

                /** Represents a HealthStatusForNetworkEndpoint. */
                class HealthStatusForNetworkEndpoint implements IHealthStatusForNetworkEndpoint {

                    /**
                     * Constructs a new HealthStatusForNetworkEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHealthStatusForNetworkEndpoint);

                    /** HealthStatusForNetworkEndpoint backendService. */
                    public backendService?: (google.cloud.compute.v1.IBackendServiceReference|null);

                    /** HealthStatusForNetworkEndpoint forwardingRule. */
                    public forwardingRule?: (google.cloud.compute.v1.IForwardingRuleReference|null);

                    /** HealthStatusForNetworkEndpoint healthCheck. */
                    public healthCheck?: (google.cloud.compute.v1.IHealthCheckReference|null);

                    /** HealthStatusForNetworkEndpoint healthCheckService. */
                    public healthCheckService?: (google.cloud.compute.v1.IHealthCheckServiceReference|null);

                    /** HealthStatusForNetworkEndpoint healthState. */
                    public healthState?: (string|null);

                    /** HealthStatusForNetworkEndpoint ipv6HealthState. */
                    public ipv6HealthState?: (string|null);

                    /**
                     * Creates a new HealthStatusForNetworkEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthStatusForNetworkEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHealthStatusForNetworkEndpoint): google.cloud.compute.v1.HealthStatusForNetworkEndpoint;

                    /**
                     * Encodes the specified HealthStatusForNetworkEndpoint message. Does not implicitly {@link google.cloud.compute.v1.HealthStatusForNetworkEndpoint.verify|verify} messages.
                     * @param message HealthStatusForNetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHealthStatusForNetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthStatusForNetworkEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HealthStatusForNetworkEndpoint.verify|verify} messages.
                     * @param message HealthStatusForNetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHealthStatusForNetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthStatusForNetworkEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthStatusForNetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HealthStatusForNetworkEndpoint;

                    /**
                     * Decodes a HealthStatusForNetworkEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthStatusForNetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HealthStatusForNetworkEndpoint;

                    /**
                     * Verifies a HealthStatusForNetworkEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthStatusForNetworkEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthStatusForNetworkEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HealthStatusForNetworkEndpoint;

                    /**
                     * Creates a plain object from a HealthStatusForNetworkEndpoint message. Also converts values to other types if specified.
                     * @param message HealthStatusForNetworkEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HealthStatusForNetworkEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthStatusForNetworkEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthStatusForNetworkEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthStatusForNetworkEndpoint {

                    /** HealthState enum. */
                    enum HealthState {
                        UNDEFINED_HEALTH_STATE = 0,
                        DRAINING = 480455402,
                        HEALTHY = 439801213,
                        UNHEALTHY = 462118084,
                        UNKNOWN = 433141802
                    }

                    /** Ipv6HealthState enum. */
                    enum Ipv6HealthState {
                        UNDEFINED_IPV6_HEALTH_STATE = 0
                    }
                }

                /** Properties of a Help. */
                interface IHelp {

                    /** Help links */
                    links?: (google.cloud.compute.v1.IHelpLink[]|null);
                }

                /** Represents a Help. */
                class Help implements IHelp {

                    /**
                     * Constructs a new Help.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHelp);

                    /** Help links. */
                    public links: google.cloud.compute.v1.IHelpLink[];

                    /**
                     * Creates a new Help instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Help instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHelp): google.cloud.compute.v1.Help;

                    /**
                     * Encodes the specified Help message. Does not implicitly {@link google.cloud.compute.v1.Help.verify|verify} messages.
                     * @param message Help message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHelp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Help message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Help.verify|verify} messages.
                     * @param message Help message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHelp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Help message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Help
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Help;

                    /**
                     * Decodes a Help message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Help
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Help;

                    /**
                     * Verifies a Help message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Help message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Help
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Help;

                    /**
                     * Creates a plain object from a Help message. Also converts values to other types if specified.
                     * @param message Help
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Help, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Help to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Help
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HelpLink. */
                interface IHelpLink {

                    /** HelpLink description */
                    description?: (string|null);

                    /** HelpLink url */
                    url?: (string|null);
                }

                /** Represents a HelpLink. */
                class HelpLink implements IHelpLink {

                    /**
                     * Constructs a new HelpLink.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHelpLink);

                    /** HelpLink description. */
                    public description?: (string|null);

                    /** HelpLink url. */
                    public url?: (string|null);

                    /**
                     * Creates a new HelpLink instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HelpLink instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHelpLink): google.cloud.compute.v1.HelpLink;

                    /**
                     * Encodes the specified HelpLink message. Does not implicitly {@link google.cloud.compute.v1.HelpLink.verify|verify} messages.
                     * @param message HelpLink message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHelpLink, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HelpLink message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HelpLink.verify|verify} messages.
                     * @param message HelpLink message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHelpLink, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HelpLink message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HelpLink
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HelpLink;

                    /**
                     * Decodes a HelpLink message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HelpLink
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HelpLink;

                    /**
                     * Verifies a HelpLink message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HelpLink message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HelpLink
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HelpLink;

                    /**
                     * Creates a plain object from a HelpLink message. Also converts values to other types if specified.
                     * @param message HelpLink
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HelpLink, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HelpLink to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HelpLink
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HostRule. */
                interface IHostRule {

                    /** HostRule description */
                    description?: (string|null);

                    /** HostRule hosts */
                    hosts?: (string[]|null);

                    /** HostRule pathMatcher */
                    pathMatcher?: (string|null);
                }

                /** Represents a HostRule. */
                class HostRule implements IHostRule {

                    /**
                     * Constructs a new HostRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHostRule);

                    /** HostRule description. */
                    public description?: (string|null);

                    /** HostRule hosts. */
                    public hosts: string[];

                    /** HostRule pathMatcher. */
                    public pathMatcher?: (string|null);

                    /**
                     * Creates a new HostRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HostRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHostRule): google.cloud.compute.v1.HostRule;

                    /**
                     * Encodes the specified HostRule message. Does not implicitly {@link google.cloud.compute.v1.HostRule.verify|verify} messages.
                     * @param message HostRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHostRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HostRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HostRule.verify|verify} messages.
                     * @param message HostRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHostRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HostRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HostRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HostRule;

                    /**
                     * Decodes a HostRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HostRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HostRule;

                    /**
                     * Verifies a HostRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HostRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HostRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HostRule;

                    /**
                     * Creates a plain object from a HostRule message. Also converts values to other types if specified.
                     * @param message HostRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HostRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HostRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HostRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpFaultAbort. */
                interface IHttpFaultAbort {

                    /** HttpFaultAbort httpStatus */
                    httpStatus?: (number|null);

                    /** HttpFaultAbort percentage */
                    percentage?: (number|null);
                }

                /** Represents a HttpFaultAbort. */
                class HttpFaultAbort implements IHttpFaultAbort {

                    /**
                     * Constructs a new HttpFaultAbort.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpFaultAbort);

                    /** HttpFaultAbort httpStatus. */
                    public httpStatus?: (number|null);

                    /** HttpFaultAbort percentage. */
                    public percentage?: (number|null);

                    /**
                     * Creates a new HttpFaultAbort instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpFaultAbort instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpFaultAbort): google.cloud.compute.v1.HttpFaultAbort;

                    /**
                     * Encodes the specified HttpFaultAbort message. Does not implicitly {@link google.cloud.compute.v1.HttpFaultAbort.verify|verify} messages.
                     * @param message HttpFaultAbort message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpFaultAbort, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpFaultAbort message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpFaultAbort.verify|verify} messages.
                     * @param message HttpFaultAbort message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpFaultAbort, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpFaultAbort message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpFaultAbort
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpFaultAbort;

                    /**
                     * Decodes a HttpFaultAbort message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpFaultAbort
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpFaultAbort;

                    /**
                     * Verifies a HttpFaultAbort message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpFaultAbort message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpFaultAbort
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpFaultAbort;

                    /**
                     * Creates a plain object from a HttpFaultAbort message. Also converts values to other types if specified.
                     * @param message HttpFaultAbort
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpFaultAbort, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpFaultAbort to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpFaultAbort
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpFaultDelay. */
                interface IHttpFaultDelay {

                    /** HttpFaultDelay fixedDelay */
                    fixedDelay?: (google.cloud.compute.v1.IDuration|null);

                    /** HttpFaultDelay percentage */
                    percentage?: (number|null);
                }

                /** Represents a HttpFaultDelay. */
                class HttpFaultDelay implements IHttpFaultDelay {

                    /**
                     * Constructs a new HttpFaultDelay.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpFaultDelay);

                    /** HttpFaultDelay fixedDelay. */
                    public fixedDelay?: (google.cloud.compute.v1.IDuration|null);

                    /** HttpFaultDelay percentage. */
                    public percentage?: (number|null);

                    /**
                     * Creates a new HttpFaultDelay instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpFaultDelay instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpFaultDelay): google.cloud.compute.v1.HttpFaultDelay;

                    /**
                     * Encodes the specified HttpFaultDelay message. Does not implicitly {@link google.cloud.compute.v1.HttpFaultDelay.verify|verify} messages.
                     * @param message HttpFaultDelay message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpFaultDelay, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpFaultDelay message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpFaultDelay.verify|verify} messages.
                     * @param message HttpFaultDelay message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpFaultDelay, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpFaultDelay message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpFaultDelay
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpFaultDelay;

                    /**
                     * Decodes a HttpFaultDelay message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpFaultDelay
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpFaultDelay;

                    /**
                     * Verifies a HttpFaultDelay message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpFaultDelay message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpFaultDelay
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpFaultDelay;

                    /**
                     * Creates a plain object from a HttpFaultDelay message. Also converts values to other types if specified.
                     * @param message HttpFaultDelay
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpFaultDelay, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpFaultDelay to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpFaultDelay
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpFaultInjection. */
                interface IHttpFaultInjection {

                    /** HttpFaultInjection abort */
                    abort?: (google.cloud.compute.v1.IHttpFaultAbort|null);

                    /** HttpFaultInjection delay */
                    delay?: (google.cloud.compute.v1.IHttpFaultDelay|null);
                }

                /** Represents a HttpFaultInjection. */
                class HttpFaultInjection implements IHttpFaultInjection {

                    /**
                     * Constructs a new HttpFaultInjection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpFaultInjection);

                    /** HttpFaultInjection abort. */
                    public abort?: (google.cloud.compute.v1.IHttpFaultAbort|null);

                    /** HttpFaultInjection delay. */
                    public delay?: (google.cloud.compute.v1.IHttpFaultDelay|null);

                    /**
                     * Creates a new HttpFaultInjection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpFaultInjection instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpFaultInjection): google.cloud.compute.v1.HttpFaultInjection;

                    /**
                     * Encodes the specified HttpFaultInjection message. Does not implicitly {@link google.cloud.compute.v1.HttpFaultInjection.verify|verify} messages.
                     * @param message HttpFaultInjection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpFaultInjection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpFaultInjection message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpFaultInjection.verify|verify} messages.
                     * @param message HttpFaultInjection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpFaultInjection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpFaultInjection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpFaultInjection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpFaultInjection;

                    /**
                     * Decodes a HttpFaultInjection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpFaultInjection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpFaultInjection;

                    /**
                     * Verifies a HttpFaultInjection message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpFaultInjection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpFaultInjection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpFaultInjection;

                    /**
                     * Creates a plain object from a HttpFaultInjection message. Also converts values to other types if specified.
                     * @param message HttpFaultInjection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpFaultInjection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpFaultInjection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpFaultInjection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpHeaderAction. */
                interface IHttpHeaderAction {

                    /** HttpHeaderAction requestHeadersToAdd */
                    requestHeadersToAdd?: (google.cloud.compute.v1.IHttpHeaderOption[]|null);

                    /** HttpHeaderAction requestHeadersToRemove */
                    requestHeadersToRemove?: (string[]|null);

                    /** HttpHeaderAction responseHeadersToAdd */
                    responseHeadersToAdd?: (google.cloud.compute.v1.IHttpHeaderOption[]|null);

                    /** HttpHeaderAction responseHeadersToRemove */
                    responseHeadersToRemove?: (string[]|null);
                }

                /** Represents a HttpHeaderAction. */
                class HttpHeaderAction implements IHttpHeaderAction {

                    /**
                     * Constructs a new HttpHeaderAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpHeaderAction);

                    /** HttpHeaderAction requestHeadersToAdd. */
                    public requestHeadersToAdd: google.cloud.compute.v1.IHttpHeaderOption[];

                    /** HttpHeaderAction requestHeadersToRemove. */
                    public requestHeadersToRemove: string[];

                    /** HttpHeaderAction responseHeadersToAdd. */
                    public responseHeadersToAdd: google.cloud.compute.v1.IHttpHeaderOption[];

                    /** HttpHeaderAction responseHeadersToRemove. */
                    public responseHeadersToRemove: string[];

                    /**
                     * Creates a new HttpHeaderAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpHeaderAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpHeaderAction): google.cloud.compute.v1.HttpHeaderAction;

                    /**
                     * Encodes the specified HttpHeaderAction message. Does not implicitly {@link google.cloud.compute.v1.HttpHeaderAction.verify|verify} messages.
                     * @param message HttpHeaderAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpHeaderAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpHeaderAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpHeaderAction.verify|verify} messages.
                     * @param message HttpHeaderAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpHeaderAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpHeaderAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpHeaderAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpHeaderAction;

                    /**
                     * Decodes a HttpHeaderAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpHeaderAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpHeaderAction;

                    /**
                     * Verifies a HttpHeaderAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpHeaderAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpHeaderAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpHeaderAction;

                    /**
                     * Creates a plain object from a HttpHeaderAction message. Also converts values to other types if specified.
                     * @param message HttpHeaderAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpHeaderAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpHeaderAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpHeaderAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpHeaderMatch. */
                interface IHttpHeaderMatch {

                    /** HttpHeaderMatch exactMatch */
                    exactMatch?: (string|null);

                    /** HttpHeaderMatch headerName */
                    headerName?: (string|null);

                    /** HttpHeaderMatch invertMatch */
                    invertMatch?: (boolean|null);

                    /** HttpHeaderMatch prefixMatch */
                    prefixMatch?: (string|null);

                    /** HttpHeaderMatch presentMatch */
                    presentMatch?: (boolean|null);

                    /** HttpHeaderMatch rangeMatch */
                    rangeMatch?: (google.cloud.compute.v1.IInt64RangeMatch|null);

                    /** HttpHeaderMatch regexMatch */
                    regexMatch?: (string|null);

                    /** HttpHeaderMatch suffixMatch */
                    suffixMatch?: (string|null);
                }

                /** Represents a HttpHeaderMatch. */
                class HttpHeaderMatch implements IHttpHeaderMatch {

                    /**
                     * Constructs a new HttpHeaderMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpHeaderMatch);

                    /** HttpHeaderMatch exactMatch. */
                    public exactMatch?: (string|null);

                    /** HttpHeaderMatch headerName. */
                    public headerName?: (string|null);

                    /** HttpHeaderMatch invertMatch. */
                    public invertMatch?: (boolean|null);

                    /** HttpHeaderMatch prefixMatch. */
                    public prefixMatch?: (string|null);

                    /** HttpHeaderMatch presentMatch. */
                    public presentMatch?: (boolean|null);

                    /** HttpHeaderMatch rangeMatch. */
                    public rangeMatch?: (google.cloud.compute.v1.IInt64RangeMatch|null);

                    /** HttpHeaderMatch regexMatch. */
                    public regexMatch?: (string|null);

                    /** HttpHeaderMatch suffixMatch. */
                    public suffixMatch?: (string|null);

                    /**
                     * Creates a new HttpHeaderMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpHeaderMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpHeaderMatch): google.cloud.compute.v1.HttpHeaderMatch;

                    /**
                     * Encodes the specified HttpHeaderMatch message. Does not implicitly {@link google.cloud.compute.v1.HttpHeaderMatch.verify|verify} messages.
                     * @param message HttpHeaderMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpHeaderMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpHeaderMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpHeaderMatch.verify|verify} messages.
                     * @param message HttpHeaderMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpHeaderMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpHeaderMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpHeaderMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpHeaderMatch;

                    /**
                     * Decodes a HttpHeaderMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpHeaderMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpHeaderMatch;

                    /**
                     * Verifies a HttpHeaderMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpHeaderMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpHeaderMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpHeaderMatch;

                    /**
                     * Creates a plain object from a HttpHeaderMatch message. Also converts values to other types if specified.
                     * @param message HttpHeaderMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpHeaderMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpHeaderMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpHeaderMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpHeaderOption. */
                interface IHttpHeaderOption {

                    /** HttpHeaderOption headerName */
                    headerName?: (string|null);

                    /** HttpHeaderOption headerValue */
                    headerValue?: (string|null);

                    /** HttpHeaderOption replace */
                    replace?: (boolean|null);
                }

                /** Represents a HttpHeaderOption. */
                class HttpHeaderOption implements IHttpHeaderOption {

                    /**
                     * Constructs a new HttpHeaderOption.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpHeaderOption);

                    /** HttpHeaderOption headerName. */
                    public headerName?: (string|null);

                    /** HttpHeaderOption headerValue. */
                    public headerValue?: (string|null);

                    /** HttpHeaderOption replace. */
                    public replace?: (boolean|null);

                    /**
                     * Creates a new HttpHeaderOption instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpHeaderOption instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpHeaderOption): google.cloud.compute.v1.HttpHeaderOption;

                    /**
                     * Encodes the specified HttpHeaderOption message. Does not implicitly {@link google.cloud.compute.v1.HttpHeaderOption.verify|verify} messages.
                     * @param message HttpHeaderOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpHeaderOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpHeaderOption message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpHeaderOption.verify|verify} messages.
                     * @param message HttpHeaderOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpHeaderOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpHeaderOption message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpHeaderOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpHeaderOption;

                    /**
                     * Decodes a HttpHeaderOption message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpHeaderOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpHeaderOption;

                    /**
                     * Verifies a HttpHeaderOption message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpHeaderOption message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpHeaderOption
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpHeaderOption;

                    /**
                     * Creates a plain object from a HttpHeaderOption message. Also converts values to other types if specified.
                     * @param message HttpHeaderOption
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpHeaderOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpHeaderOption to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpHeaderOption
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpQueryParameterMatch. */
                interface IHttpQueryParameterMatch {

                    /** HttpQueryParameterMatch exactMatch */
                    exactMatch?: (string|null);

                    /** HttpQueryParameterMatch name */
                    name?: (string|null);

                    /** HttpQueryParameterMatch presentMatch */
                    presentMatch?: (boolean|null);

                    /** HttpQueryParameterMatch regexMatch */
                    regexMatch?: (string|null);
                }

                /** Represents a HttpQueryParameterMatch. */
                class HttpQueryParameterMatch implements IHttpQueryParameterMatch {

                    /**
                     * Constructs a new HttpQueryParameterMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpQueryParameterMatch);

                    /** HttpQueryParameterMatch exactMatch. */
                    public exactMatch?: (string|null);

                    /** HttpQueryParameterMatch name. */
                    public name?: (string|null);

                    /** HttpQueryParameterMatch presentMatch. */
                    public presentMatch?: (boolean|null);

                    /** HttpQueryParameterMatch regexMatch. */
                    public regexMatch?: (string|null);

                    /**
                     * Creates a new HttpQueryParameterMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpQueryParameterMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpQueryParameterMatch): google.cloud.compute.v1.HttpQueryParameterMatch;

                    /**
                     * Encodes the specified HttpQueryParameterMatch message. Does not implicitly {@link google.cloud.compute.v1.HttpQueryParameterMatch.verify|verify} messages.
                     * @param message HttpQueryParameterMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpQueryParameterMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpQueryParameterMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpQueryParameterMatch.verify|verify} messages.
                     * @param message HttpQueryParameterMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpQueryParameterMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpQueryParameterMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpQueryParameterMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpQueryParameterMatch;

                    /**
                     * Decodes a HttpQueryParameterMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpQueryParameterMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpQueryParameterMatch;

                    /**
                     * Verifies a HttpQueryParameterMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpQueryParameterMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpQueryParameterMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpQueryParameterMatch;

                    /**
                     * Creates a plain object from a HttpQueryParameterMatch message. Also converts values to other types if specified.
                     * @param message HttpQueryParameterMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpQueryParameterMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpQueryParameterMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpQueryParameterMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpRedirectAction. */
                interface IHttpRedirectAction {

                    /** HttpRedirectAction hostRedirect */
                    hostRedirect?: (string|null);

                    /** HttpRedirectAction httpsRedirect */
                    httpsRedirect?: (boolean|null);

                    /** HttpRedirectAction pathRedirect */
                    pathRedirect?: (string|null);

                    /** HttpRedirectAction prefixRedirect */
                    prefixRedirect?: (string|null);

                    /** HttpRedirectAction redirectResponseCode */
                    redirectResponseCode?: (string|null);

                    /** HttpRedirectAction stripQuery */
                    stripQuery?: (boolean|null);
                }

                /** Represents a HttpRedirectAction. */
                class HttpRedirectAction implements IHttpRedirectAction {

                    /**
                     * Constructs a new HttpRedirectAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpRedirectAction);

                    /** HttpRedirectAction hostRedirect. */
                    public hostRedirect?: (string|null);

                    /** HttpRedirectAction httpsRedirect. */
                    public httpsRedirect?: (boolean|null);

                    /** HttpRedirectAction pathRedirect. */
                    public pathRedirect?: (string|null);

                    /** HttpRedirectAction prefixRedirect. */
                    public prefixRedirect?: (string|null);

                    /** HttpRedirectAction redirectResponseCode. */
                    public redirectResponseCode?: (string|null);

                    /** HttpRedirectAction stripQuery. */
                    public stripQuery?: (boolean|null);

                    /**
                     * Creates a new HttpRedirectAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRedirectAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpRedirectAction): google.cloud.compute.v1.HttpRedirectAction;

                    /**
                     * Encodes the specified HttpRedirectAction message. Does not implicitly {@link google.cloud.compute.v1.HttpRedirectAction.verify|verify} messages.
                     * @param message HttpRedirectAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpRedirectAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRedirectAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpRedirectAction.verify|verify} messages.
                     * @param message HttpRedirectAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpRedirectAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRedirectAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRedirectAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpRedirectAction;

                    /**
                     * Decodes a HttpRedirectAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRedirectAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpRedirectAction;

                    /**
                     * Verifies a HttpRedirectAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRedirectAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRedirectAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpRedirectAction;

                    /**
                     * Creates a plain object from a HttpRedirectAction message. Also converts values to other types if specified.
                     * @param message HttpRedirectAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpRedirectAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRedirectAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRedirectAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HttpRedirectAction {

                    /** RedirectResponseCode enum. */
                    enum RedirectResponseCode {
                        UNDEFINED_REDIRECT_RESPONSE_CODE = 0,
                        FOUND = 67084130,
                        MOVED_PERMANENTLY_DEFAULT = 386698449,
                        PERMANENT_REDIRECT = 382006381,
                        SEE_OTHER = 445380580,
                        TEMPORARY_REDIRECT = 489550378
                    }
                }

                /** Properties of a HttpRetryPolicy. */
                interface IHttpRetryPolicy {

                    /** HttpRetryPolicy numRetries */
                    numRetries?: (number|null);

                    /** HttpRetryPolicy perTryTimeout */
                    perTryTimeout?: (google.cloud.compute.v1.IDuration|null);

                    /** HttpRetryPolicy retryConditions */
                    retryConditions?: (string[]|null);
                }

                /** Represents a HttpRetryPolicy. */
                class HttpRetryPolicy implements IHttpRetryPolicy {

                    /**
                     * Constructs a new HttpRetryPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpRetryPolicy);

                    /** HttpRetryPolicy numRetries. */
                    public numRetries?: (number|null);

                    /** HttpRetryPolicy perTryTimeout. */
                    public perTryTimeout?: (google.cloud.compute.v1.IDuration|null);

                    /** HttpRetryPolicy retryConditions. */
                    public retryConditions: string[];

                    /**
                     * Creates a new HttpRetryPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRetryPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpRetryPolicy): google.cloud.compute.v1.HttpRetryPolicy;

                    /**
                     * Encodes the specified HttpRetryPolicy message. Does not implicitly {@link google.cloud.compute.v1.HttpRetryPolicy.verify|verify} messages.
                     * @param message HttpRetryPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpRetryPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRetryPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpRetryPolicy.verify|verify} messages.
                     * @param message HttpRetryPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpRetryPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRetryPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRetryPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpRetryPolicy;

                    /**
                     * Decodes a HttpRetryPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRetryPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpRetryPolicy;

                    /**
                     * Verifies a HttpRetryPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRetryPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRetryPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpRetryPolicy;

                    /**
                     * Creates a plain object from a HttpRetryPolicy message. Also converts values to other types if specified.
                     * @param message HttpRetryPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpRetryPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRetryPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRetryPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpRouteAction. */
                interface IHttpRouteAction {

                    /** HttpRouteAction corsPolicy */
                    corsPolicy?: (google.cloud.compute.v1.ICorsPolicy|null);

                    /** HttpRouteAction faultInjectionPolicy */
                    faultInjectionPolicy?: (google.cloud.compute.v1.IHttpFaultInjection|null);

                    /** HttpRouteAction maxStreamDuration */
                    maxStreamDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** HttpRouteAction requestMirrorPolicy */
                    requestMirrorPolicy?: (google.cloud.compute.v1.IRequestMirrorPolicy|null);

                    /** HttpRouteAction retryPolicy */
                    retryPolicy?: (google.cloud.compute.v1.IHttpRetryPolicy|null);

                    /** HttpRouteAction timeout */
                    timeout?: (google.cloud.compute.v1.IDuration|null);

                    /** HttpRouteAction urlRewrite */
                    urlRewrite?: (google.cloud.compute.v1.IUrlRewrite|null);

                    /** HttpRouteAction weightedBackendServices */
                    weightedBackendServices?: (google.cloud.compute.v1.IWeightedBackendService[]|null);
                }

                /** Represents a HttpRouteAction. */
                class HttpRouteAction implements IHttpRouteAction {

                    /**
                     * Constructs a new HttpRouteAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpRouteAction);

                    /** HttpRouteAction corsPolicy. */
                    public corsPolicy?: (google.cloud.compute.v1.ICorsPolicy|null);

                    /** HttpRouteAction faultInjectionPolicy. */
                    public faultInjectionPolicy?: (google.cloud.compute.v1.IHttpFaultInjection|null);

                    /** HttpRouteAction maxStreamDuration. */
                    public maxStreamDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** HttpRouteAction requestMirrorPolicy. */
                    public requestMirrorPolicy?: (google.cloud.compute.v1.IRequestMirrorPolicy|null);

                    /** HttpRouteAction retryPolicy. */
                    public retryPolicy?: (google.cloud.compute.v1.IHttpRetryPolicy|null);

                    /** HttpRouteAction timeout. */
                    public timeout?: (google.cloud.compute.v1.IDuration|null);

                    /** HttpRouteAction urlRewrite. */
                    public urlRewrite?: (google.cloud.compute.v1.IUrlRewrite|null);

                    /** HttpRouteAction weightedBackendServices. */
                    public weightedBackendServices: google.cloud.compute.v1.IWeightedBackendService[];

                    /**
                     * Creates a new HttpRouteAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRouteAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpRouteAction): google.cloud.compute.v1.HttpRouteAction;

                    /**
                     * Encodes the specified HttpRouteAction message. Does not implicitly {@link google.cloud.compute.v1.HttpRouteAction.verify|verify} messages.
                     * @param message HttpRouteAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpRouteAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRouteAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpRouteAction.verify|verify} messages.
                     * @param message HttpRouteAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpRouteAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRouteAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRouteAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpRouteAction;

                    /**
                     * Decodes a HttpRouteAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRouteAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpRouteAction;

                    /**
                     * Verifies a HttpRouteAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRouteAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRouteAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpRouteAction;

                    /**
                     * Creates a plain object from a HttpRouteAction message. Also converts values to other types if specified.
                     * @param message HttpRouteAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpRouteAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRouteAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRouteAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpRouteRule. */
                interface IHttpRouteRule {

                    /** HttpRouteRule customErrorResponsePolicy */
                    customErrorResponsePolicy?: (google.cloud.compute.v1.ICustomErrorResponsePolicy|null);

                    /** HttpRouteRule description */
                    description?: (string|null);

                    /** HttpRouteRule headerAction */
                    headerAction?: (google.cloud.compute.v1.IHttpHeaderAction|null);

                    /** HttpRouteRule matchRules */
                    matchRules?: (google.cloud.compute.v1.IHttpRouteRuleMatch[]|null);

                    /** HttpRouteRule priority */
                    priority?: (number|null);

                    /** HttpRouteRule routeAction */
                    routeAction?: (google.cloud.compute.v1.IHttpRouteAction|null);

                    /** HttpRouteRule service */
                    service?: (string|null);

                    /** HttpRouteRule urlRedirect */
                    urlRedirect?: (google.cloud.compute.v1.IHttpRedirectAction|null);
                }

                /** Represents a HttpRouteRule. */
                class HttpRouteRule implements IHttpRouteRule {

                    /**
                     * Constructs a new HttpRouteRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpRouteRule);

                    /** HttpRouteRule customErrorResponsePolicy. */
                    public customErrorResponsePolicy?: (google.cloud.compute.v1.ICustomErrorResponsePolicy|null);

                    /** HttpRouteRule description. */
                    public description?: (string|null);

                    /** HttpRouteRule headerAction. */
                    public headerAction?: (google.cloud.compute.v1.IHttpHeaderAction|null);

                    /** HttpRouteRule matchRules. */
                    public matchRules: google.cloud.compute.v1.IHttpRouteRuleMatch[];

                    /** HttpRouteRule priority. */
                    public priority?: (number|null);

                    /** HttpRouteRule routeAction. */
                    public routeAction?: (google.cloud.compute.v1.IHttpRouteAction|null);

                    /** HttpRouteRule service. */
                    public service?: (string|null);

                    /** HttpRouteRule urlRedirect. */
                    public urlRedirect?: (google.cloud.compute.v1.IHttpRedirectAction|null);

                    /**
                     * Creates a new HttpRouteRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRouteRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpRouteRule): google.cloud.compute.v1.HttpRouteRule;

                    /**
                     * Encodes the specified HttpRouteRule message. Does not implicitly {@link google.cloud.compute.v1.HttpRouteRule.verify|verify} messages.
                     * @param message HttpRouteRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpRouteRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRouteRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpRouteRule.verify|verify} messages.
                     * @param message HttpRouteRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpRouteRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRouteRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRouteRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpRouteRule;

                    /**
                     * Decodes a HttpRouteRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRouteRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpRouteRule;

                    /**
                     * Verifies a HttpRouteRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRouteRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRouteRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpRouteRule;

                    /**
                     * Creates a plain object from a HttpRouteRule message. Also converts values to other types if specified.
                     * @param message HttpRouteRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpRouteRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRouteRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRouteRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpRouteRuleMatch. */
                interface IHttpRouteRuleMatch {

                    /** HttpRouteRuleMatch fullPathMatch */
                    fullPathMatch?: (string|null);

                    /** HttpRouteRuleMatch headerMatches */
                    headerMatches?: (google.cloud.compute.v1.IHttpHeaderMatch[]|null);

                    /** HttpRouteRuleMatch ignoreCase */
                    ignoreCase?: (boolean|null);

                    /** HttpRouteRuleMatch metadataFilters */
                    metadataFilters?: (google.cloud.compute.v1.IMetadataFilter[]|null);

                    /** HttpRouteRuleMatch pathTemplateMatch */
                    pathTemplateMatch?: (string|null);

                    /** HttpRouteRuleMatch prefixMatch */
                    prefixMatch?: (string|null);

                    /** HttpRouteRuleMatch queryParameterMatches */
                    queryParameterMatches?: (google.cloud.compute.v1.IHttpQueryParameterMatch[]|null);

                    /** HttpRouteRuleMatch regexMatch */
                    regexMatch?: (string|null);
                }

                /** Represents a HttpRouteRuleMatch. */
                class HttpRouteRuleMatch implements IHttpRouteRuleMatch {

                    /**
                     * Constructs a new HttpRouteRuleMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IHttpRouteRuleMatch);

                    /** HttpRouteRuleMatch fullPathMatch. */
                    public fullPathMatch?: (string|null);

                    /** HttpRouteRuleMatch headerMatches. */
                    public headerMatches: google.cloud.compute.v1.IHttpHeaderMatch[];

                    /** HttpRouteRuleMatch ignoreCase. */
                    public ignoreCase?: (boolean|null);

                    /** HttpRouteRuleMatch metadataFilters. */
                    public metadataFilters: google.cloud.compute.v1.IMetadataFilter[];

                    /** HttpRouteRuleMatch pathTemplateMatch. */
                    public pathTemplateMatch?: (string|null);

                    /** HttpRouteRuleMatch prefixMatch. */
                    public prefixMatch?: (string|null);

                    /** HttpRouteRuleMatch queryParameterMatches. */
                    public queryParameterMatches: google.cloud.compute.v1.IHttpQueryParameterMatch[];

                    /** HttpRouteRuleMatch regexMatch. */
                    public regexMatch?: (string|null);

                    /**
                     * Creates a new HttpRouteRuleMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRouteRuleMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IHttpRouteRuleMatch): google.cloud.compute.v1.HttpRouteRuleMatch;

                    /**
                     * Encodes the specified HttpRouteRuleMatch message. Does not implicitly {@link google.cloud.compute.v1.HttpRouteRuleMatch.verify|verify} messages.
                     * @param message HttpRouteRuleMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IHttpRouteRuleMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRouteRuleMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1.HttpRouteRuleMatch.verify|verify} messages.
                     * @param message HttpRouteRuleMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IHttpRouteRuleMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRouteRuleMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRouteRuleMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.HttpRouteRuleMatch;

                    /**
                     * Decodes a HttpRouteRuleMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRouteRuleMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.HttpRouteRuleMatch;

                    /**
                     * Verifies a HttpRouteRuleMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRouteRuleMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRouteRuleMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.HttpRouteRuleMatch;

                    /**
                     * Creates a plain object from a HttpRouteRuleMatch message. Also converts values to other types if specified.
                     * @param message HttpRouteRuleMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.HttpRouteRuleMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRouteRuleMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRouteRuleMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Image. */
                interface IImage {

                    /** Image architecture */
                    architecture?: (string|null);

                    /** Image archiveSizeBytes */
                    archiveSizeBytes?: (number|Long|string|null);

                    /** Image creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Image deprecated */
                    deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** Image description */
                    description?: (string|null);

                    /** Image diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** Image enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);

                    /** Image family */
                    family?: (string|null);

                    /** Image guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1.IGuestOsFeature[]|null);

                    /** Image id */
                    id?: (number|Long|string|null);

                    /** Image imageEncryptionKey */
                    imageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Image kind */
                    kind?: (string|null);

                    /** Image labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Image labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Image licenseCodes */
                    licenseCodes?: ((number|Long|string)[]|null);

                    /** Image licenses */
                    licenses?: (string[]|null);

                    /** Image name */
                    name?: (string|null);

                    /** Image params */
                    params?: (google.cloud.compute.v1.IImageParams|null);

                    /** Image rawDisk */
                    rawDisk?: (google.cloud.compute.v1.IRawDisk|null);

                    /** Image satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** Image satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Image selfLink */
                    selfLink?: (string|null);

                    /** Image shieldedInstanceInitialState */
                    shieldedInstanceInitialState?: (google.cloud.compute.v1.IInitialStateConfig|null);

                    /** Image sourceDisk */
                    sourceDisk?: (string|null);

                    /** Image sourceDiskEncryptionKey */
                    sourceDiskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Image sourceDiskId */
                    sourceDiskId?: (string|null);

                    /** Image sourceImage */
                    sourceImage?: (string|null);

                    /** Image sourceImageEncryptionKey */
                    sourceImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Image sourceImageId */
                    sourceImageId?: (string|null);

                    /** Image sourceSnapshot */
                    sourceSnapshot?: (string|null);

                    /** Image sourceSnapshotEncryptionKey */
                    sourceSnapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Image sourceSnapshotId */
                    sourceSnapshotId?: (string|null);

                    /** Image sourceType */
                    sourceType?: (string|null);

                    /** Image status */
                    status?: (string|null);

                    /** Image storageLocations */
                    storageLocations?: (string[]|null);
                }

                /** Represents an Image. */
                class Image implements IImage {

                    /**
                     * Constructs a new Image.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IImage);

                    /** Image architecture. */
                    public architecture?: (string|null);

                    /** Image archiveSizeBytes. */
                    public archiveSizeBytes?: (number|Long|string|null);

                    /** Image creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Image deprecated. */
                    public deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** Image description. */
                    public description?: (string|null);

                    /** Image diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** Image enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /** Image family. */
                    public family?: (string|null);

                    /** Image guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1.IGuestOsFeature[];

                    /** Image id. */
                    public id?: (number|Long|string|null);

                    /** Image imageEncryptionKey. */
                    public imageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Image kind. */
                    public kind?: (string|null);

                    /** Image labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Image labels. */
                    public labels: { [k: string]: string };

                    /** Image licenseCodes. */
                    public licenseCodes: (number|Long|string)[];

                    /** Image licenses. */
                    public licenses: string[];

                    /** Image name. */
                    public name?: (string|null);

                    /** Image params. */
                    public params?: (google.cloud.compute.v1.IImageParams|null);

                    /** Image rawDisk. */
                    public rawDisk?: (google.cloud.compute.v1.IRawDisk|null);

                    /** Image satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Image satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Image selfLink. */
                    public selfLink?: (string|null);

                    /** Image shieldedInstanceInitialState. */
                    public shieldedInstanceInitialState?: (google.cloud.compute.v1.IInitialStateConfig|null);

                    /** Image sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** Image sourceDiskEncryptionKey. */
                    public sourceDiskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Image sourceDiskId. */
                    public sourceDiskId?: (string|null);

                    /** Image sourceImage. */
                    public sourceImage?: (string|null);

                    /** Image sourceImageEncryptionKey. */
                    public sourceImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Image sourceImageId. */
                    public sourceImageId?: (string|null);

                    /** Image sourceSnapshot. */
                    public sourceSnapshot?: (string|null);

                    /** Image sourceSnapshotEncryptionKey. */
                    public sourceSnapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Image sourceSnapshotId. */
                    public sourceSnapshotId?: (string|null);

                    /** Image sourceType. */
                    public sourceType?: (string|null);

                    /** Image status. */
                    public status?: (string|null);

                    /** Image storageLocations. */
                    public storageLocations: string[];

                    /**
                     * Creates a new Image instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Image instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IImage): google.cloud.compute.v1.Image;

                    /**
                     * Encodes the specified Image message. Does not implicitly {@link google.cloud.compute.v1.Image.verify|verify} messages.
                     * @param message Image message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IImage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Image message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Image.verify|verify} messages.
                     * @param message Image message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IImage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Image message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Image
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Image;

                    /**
                     * Decodes an Image message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Image
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Image;

                    /**
                     * Verifies an Image message.
                     * @param message Plain 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 Image message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Image
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Image;

                    /**
                     * Creates a plain object from an Image message. Also converts values to other types if specified.
                     * @param message Image
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Image, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Image to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Image
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Image {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** SourceType enum. */
                    enum SourceType {
                        UNDEFINED_SOURCE_TYPE = 0,
                        RAW = 80904
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        PENDING = 35394935,
                        READY = 77848963
                    }
                }

                /** Properties of an ImageFamilyView. */
                interface IImageFamilyView {

                    /** ImageFamilyView image */
                    image?: (google.cloud.compute.v1.IImage|null);
                }

                /** Represents an ImageFamilyView. */
                class ImageFamilyView implements IImageFamilyView {

                    /**
                     * Constructs a new ImageFamilyView.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IImageFamilyView);

                    /** ImageFamilyView image. */
                    public image?: (google.cloud.compute.v1.IImage|null);

                    /**
                     * Creates a new ImageFamilyView instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImageFamilyView instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IImageFamilyView): google.cloud.compute.v1.ImageFamilyView;

                    /**
                     * Encodes the specified ImageFamilyView message. Does not implicitly {@link google.cloud.compute.v1.ImageFamilyView.verify|verify} messages.
                     * @param message ImageFamilyView message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IImageFamilyView, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImageFamilyView message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ImageFamilyView.verify|verify} messages.
                     * @param message ImageFamilyView message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IImageFamilyView, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImageFamilyView message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageFamilyView
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ImageFamilyView;

                    /**
                     * Decodes an ImageFamilyView message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageFamilyView
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ImageFamilyView;

                    /**
                     * Verifies an ImageFamilyView message.
                     * @param message Plain 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 ImageFamilyView message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageFamilyView
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ImageFamilyView;

                    /**
                     * Creates a plain object from an ImageFamilyView message. Also converts values to other types if specified.
                     * @param message ImageFamilyView
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ImageFamilyView, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImageFamilyView to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImageFamilyView
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImageList. */
                interface IImageList {

                    /** ImageList id */
                    id?: (string|null);

                    /** ImageList items */
                    items?: (google.cloud.compute.v1.IImage[]|null);

                    /** ImageList kind */
                    kind?: (string|null);

                    /** ImageList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ImageList selfLink */
                    selfLink?: (string|null);

                    /** ImageList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an ImageList. */
                class ImageList implements IImageList {

                    /**
                     * Constructs a new ImageList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IImageList);

                    /** ImageList id. */
                    public id?: (string|null);

                    /** ImageList items. */
                    public items: google.cloud.compute.v1.IImage[];

                    /** ImageList kind. */
                    public kind?: (string|null);

                    /** ImageList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ImageList selfLink. */
                    public selfLink?: (string|null);

                    /** ImageList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ImageList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImageList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IImageList): google.cloud.compute.v1.ImageList;

                    /**
                     * Encodes the specified ImageList message. Does not implicitly {@link google.cloud.compute.v1.ImageList.verify|verify} messages.
                     * @param message ImageList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IImageList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImageList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ImageList.verify|verify} messages.
                     * @param message ImageList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IImageList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImageList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ImageList;

                    /**
                     * Decodes an ImageList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ImageList;

                    /**
                     * Verifies an ImageList message.
                     * @param message Plain 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 ImageList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ImageList;

                    /**
                     * Creates a plain object from an ImageList message. Also converts values to other types if specified.
                     * @param message ImageList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ImageList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImageList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImageList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImageParams. */
                interface IImageParams {

                    /** ImageParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an ImageParams. */
                class ImageParams implements IImageParams {

                    /**
                     * Constructs a new ImageParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IImageParams);

                    /** ImageParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new ImageParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImageParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IImageParams): google.cloud.compute.v1.ImageParams;

                    /**
                     * Encodes the specified ImageParams message. Does not implicitly {@link google.cloud.compute.v1.ImageParams.verify|verify} messages.
                     * @param message ImageParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IImageParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImageParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ImageParams.verify|verify} messages.
                     * @param message ImageParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IImageParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImageParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ImageParams;

                    /**
                     * Decodes an ImageParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ImageParams;

                    /**
                     * Verifies an ImageParams message.
                     * @param message Plain 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 ImageParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ImageParams;

                    /**
                     * Creates a plain object from an ImageParams message. Also converts values to other types if specified.
                     * @param message ImageParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ImageParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImageParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImageParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InitialStateConfig. */
                interface IInitialStateConfig {

                    /** InitialStateConfig dbs */
                    dbs?: (google.cloud.compute.v1.IFileContentBuffer[]|null);

                    /** InitialStateConfig dbxs */
                    dbxs?: (google.cloud.compute.v1.IFileContentBuffer[]|null);

                    /** InitialStateConfig keks */
                    keks?: (google.cloud.compute.v1.IFileContentBuffer[]|null);

                    /** InitialStateConfig pk */
                    pk?: (google.cloud.compute.v1.IFileContentBuffer|null);
                }

                /** Represents an InitialStateConfig. */
                class InitialStateConfig implements IInitialStateConfig {

                    /**
                     * Constructs a new InitialStateConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInitialStateConfig);

                    /** InitialStateConfig dbs. */
                    public dbs: google.cloud.compute.v1.IFileContentBuffer[];

                    /** InitialStateConfig dbxs. */
                    public dbxs: google.cloud.compute.v1.IFileContentBuffer[];

                    /** InitialStateConfig keks. */
                    public keks: google.cloud.compute.v1.IFileContentBuffer[];

                    /** InitialStateConfig pk. */
                    public pk?: (google.cloud.compute.v1.IFileContentBuffer|null);

                    /**
                     * Creates a new InitialStateConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InitialStateConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInitialStateConfig): google.cloud.compute.v1.InitialStateConfig;

                    /**
                     * Encodes the specified InitialStateConfig message. Does not implicitly {@link google.cloud.compute.v1.InitialStateConfig.verify|verify} messages.
                     * @param message InitialStateConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInitialStateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InitialStateConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InitialStateConfig.verify|verify} messages.
                     * @param message InitialStateConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInitialStateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InitialStateConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InitialStateConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InitialStateConfig;

                    /**
                     * Decodes an InitialStateConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InitialStateConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InitialStateConfig;

                    /**
                     * Verifies an InitialStateConfig message.
                     * @param message Plain 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 InitialStateConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InitialStateConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InitialStateConfig;

                    /**
                     * Creates a plain object from an InitialStateConfig message. Also converts values to other types if specified.
                     * @param message InitialStateConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InitialStateConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InitialStateConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InitialStateConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertAddressRequest. */
                interface IInsertAddressRequest {

                    /** InsertAddressRequest addressResource */
                    addressResource?: (google.cloud.compute.v1.IAddress|null);

                    /** InsertAddressRequest project */
                    project?: (string|null);

                    /** InsertAddressRequest region */
                    region?: (string|null);

                    /** InsertAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertAddressRequest. */
                class InsertAddressRequest implements IInsertAddressRequest {

                    /**
                     * Constructs a new InsertAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertAddressRequest);

                    /** InsertAddressRequest addressResource. */
                    public addressResource?: (google.cloud.compute.v1.IAddress|null);

                    /** InsertAddressRequest project. */
                    public project: string;

                    /** InsertAddressRequest region. */
                    public region: string;

                    /** InsertAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertAddressRequest): google.cloud.compute.v1.InsertAddressRequest;

                    /**
                     * Encodes the specified InsertAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertAddressRequest.verify|verify} messages.
                     * @param message InsertAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertAddressRequest.verify|verify} messages.
                     * @param message InsertAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertAddressRequest;

                    /**
                     * Decodes an InsertAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertAddressRequest;

                    /**
                     * Verifies an InsertAddressRequest message.
                     * @param message Plain 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 InsertAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertAddressRequest;

                    /**
                     * Creates a plain object from an InsertAddressRequest message. Also converts values to other types if specified.
                     * @param message InsertAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertAutoscalerRequest. */
                interface IInsertAutoscalerRequest {

                    /** InsertAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** InsertAutoscalerRequest project */
                    project?: (string|null);

                    /** InsertAutoscalerRequest requestId */
                    requestId?: (string|null);

                    /** InsertAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertAutoscalerRequest. */
                class InsertAutoscalerRequest implements IInsertAutoscalerRequest {

                    /**
                     * Constructs a new InsertAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertAutoscalerRequest);

                    /** InsertAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** InsertAutoscalerRequest project. */
                    public project: string;

                    /** InsertAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertAutoscalerRequest): google.cloud.compute.v1.InsertAutoscalerRequest;

                    /**
                     * Encodes the specified InsertAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertAutoscalerRequest.verify|verify} messages.
                     * @param message InsertAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertAutoscalerRequest.verify|verify} messages.
                     * @param message InsertAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertAutoscalerRequest;

                    /**
                     * Decodes an InsertAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertAutoscalerRequest;

                    /**
                     * Verifies an InsertAutoscalerRequest message.
                     * @param message Plain 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 InsertAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertAutoscalerRequest;

                    /**
                     * Creates a plain object from an InsertAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message InsertAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertBackendBucketRequest. */
                interface IInsertBackendBucketRequest {

                    /** InsertBackendBucketRequest backendBucketResource */
                    backendBucketResource?: (google.cloud.compute.v1.IBackendBucket|null);

                    /** InsertBackendBucketRequest project */
                    project?: (string|null);

                    /** InsertBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertBackendBucketRequest. */
                class InsertBackendBucketRequest implements IInsertBackendBucketRequest {

                    /**
                     * Constructs a new InsertBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertBackendBucketRequest);

                    /** InsertBackendBucketRequest backendBucketResource. */
                    public backendBucketResource?: (google.cloud.compute.v1.IBackendBucket|null);

                    /** InsertBackendBucketRequest project. */
                    public project: string;

                    /** InsertBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertBackendBucketRequest): google.cloud.compute.v1.InsertBackendBucketRequest;

                    /**
                     * Encodes the specified InsertBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertBackendBucketRequest.verify|verify} messages.
                     * @param message InsertBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertBackendBucketRequest.verify|verify} messages.
                     * @param message InsertBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertBackendBucketRequest;

                    /**
                     * Decodes an InsertBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertBackendBucketRequest;

                    /**
                     * Verifies an InsertBackendBucketRequest message.
                     * @param message Plain 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 InsertBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertBackendBucketRequest;

                    /**
                     * Creates a plain object from an InsertBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message InsertBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertBackendServiceRequest. */
                interface IInsertBackendServiceRequest {

                    /** InsertBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** InsertBackendServiceRequest project */
                    project?: (string|null);

                    /** InsertBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertBackendServiceRequest. */
                class InsertBackendServiceRequest implements IInsertBackendServiceRequest {

                    /**
                     * Constructs a new InsertBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertBackendServiceRequest);

                    /** InsertBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** InsertBackendServiceRequest project. */
                    public project: string;

                    /** InsertBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertBackendServiceRequest): google.cloud.compute.v1.InsertBackendServiceRequest;

                    /**
                     * Encodes the specified InsertBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertBackendServiceRequest.verify|verify} messages.
                     * @param message InsertBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertBackendServiceRequest.verify|verify} messages.
                     * @param message InsertBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertBackendServiceRequest;

                    /**
                     * Decodes an InsertBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertBackendServiceRequest;

                    /**
                     * Verifies an InsertBackendServiceRequest message.
                     * @param message Plain 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 InsertBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertBackendServiceRequest;

                    /**
                     * Creates a plain object from an InsertBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message InsertBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertCrossSiteNetworkRequest. */
                interface IInsertCrossSiteNetworkRequest {

                    /** InsertCrossSiteNetworkRequest crossSiteNetworkResource */
                    crossSiteNetworkResource?: (google.cloud.compute.v1.ICrossSiteNetwork|null);

                    /** InsertCrossSiteNetworkRequest project */
                    project?: (string|null);

                    /** InsertCrossSiteNetworkRequest requestId */
                    requestId?: (string|null);

                    /** InsertCrossSiteNetworkRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertCrossSiteNetworkRequest. */
                class InsertCrossSiteNetworkRequest implements IInsertCrossSiteNetworkRequest {

                    /**
                     * Constructs a new InsertCrossSiteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertCrossSiteNetworkRequest);

                    /** InsertCrossSiteNetworkRequest crossSiteNetworkResource. */
                    public crossSiteNetworkResource?: (google.cloud.compute.v1.ICrossSiteNetwork|null);

                    /** InsertCrossSiteNetworkRequest project. */
                    public project: string;

                    /** InsertCrossSiteNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertCrossSiteNetworkRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertCrossSiteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertCrossSiteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertCrossSiteNetworkRequest): google.cloud.compute.v1.InsertCrossSiteNetworkRequest;

                    /**
                     * Encodes the specified InsertCrossSiteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message InsertCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertCrossSiteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message InsertCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertCrossSiteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertCrossSiteNetworkRequest;

                    /**
                     * Decodes an InsertCrossSiteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertCrossSiteNetworkRequest;

                    /**
                     * Verifies an InsertCrossSiteNetworkRequest message.
                     * @param message Plain 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 InsertCrossSiteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertCrossSiteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertCrossSiteNetworkRequest;

                    /**
                     * Creates a plain object from an InsertCrossSiteNetworkRequest message. Also converts values to other types if specified.
                     * @param message InsertCrossSiteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertCrossSiteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertCrossSiteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertCrossSiteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertDiskRequest. */
                interface IInsertDiskRequest {

                    /** InsertDiskRequest diskResource */
                    diskResource?: (google.cloud.compute.v1.IDisk|null);

                    /** InsertDiskRequest project */
                    project?: (string|null);

                    /** InsertDiskRequest requestId */
                    requestId?: (string|null);

                    /** InsertDiskRequest sourceImage */
                    sourceImage?: (string|null);

                    /** InsertDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertDiskRequest. */
                class InsertDiskRequest implements IInsertDiskRequest {

                    /**
                     * Constructs a new InsertDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertDiskRequest);

                    /** InsertDiskRequest diskResource. */
                    public diskResource?: (google.cloud.compute.v1.IDisk|null);

                    /** InsertDiskRequest project. */
                    public project: string;

                    /** InsertDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertDiskRequest sourceImage. */
                    public sourceImage?: (string|null);

                    /** InsertDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertDiskRequest): google.cloud.compute.v1.InsertDiskRequest;

                    /**
                     * Encodes the specified InsertDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertDiskRequest.verify|verify} messages.
                     * @param message InsertDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertDiskRequest.verify|verify} messages.
                     * @param message InsertDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertDiskRequest;

                    /**
                     * Decodes an InsertDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertDiskRequest;

                    /**
                     * Verifies an InsertDiskRequest message.
                     * @param message Plain 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 InsertDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertDiskRequest;

                    /**
                     * Creates a plain object from an InsertDiskRequest message. Also converts values to other types if specified.
                     * @param message InsertDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertExternalVpnGatewayRequest. */
                interface IInsertExternalVpnGatewayRequest {

                    /** InsertExternalVpnGatewayRequest externalVpnGatewayResource */
                    externalVpnGatewayResource?: (google.cloud.compute.v1.IExternalVpnGateway|null);

                    /** InsertExternalVpnGatewayRequest project */
                    project?: (string|null);

                    /** InsertExternalVpnGatewayRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertExternalVpnGatewayRequest. */
                class InsertExternalVpnGatewayRequest implements IInsertExternalVpnGatewayRequest {

                    /**
                     * Constructs a new InsertExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertExternalVpnGatewayRequest);

                    /** InsertExternalVpnGatewayRequest externalVpnGatewayResource. */
                    public externalVpnGatewayResource?: (google.cloud.compute.v1.IExternalVpnGateway|null);

                    /** InsertExternalVpnGatewayRequest project. */
                    public project: string;

                    /** InsertExternalVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertExternalVpnGatewayRequest): google.cloud.compute.v1.InsertExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified InsertExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertExternalVpnGatewayRequest;

                    /**
                     * Decodes an InsertExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertExternalVpnGatewayRequest;

                    /**
                     * Verifies an InsertExternalVpnGatewayRequest message.
                     * @param message Plain 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 InsertExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from an InsertExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message InsertExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertFirewallPolicyRequest. */
                interface IInsertFirewallPolicyRequest {

                    /** InsertFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** InsertFirewallPolicyRequest parentId */
                    parentId?: (string|null);

                    /** InsertFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertFirewallPolicyRequest. */
                class InsertFirewallPolicyRequest implements IInsertFirewallPolicyRequest {

                    /**
                     * Constructs a new InsertFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertFirewallPolicyRequest);

                    /** InsertFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** InsertFirewallPolicyRequest parentId. */
                    public parentId: string;

                    /** InsertFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertFirewallPolicyRequest): google.cloud.compute.v1.InsertFirewallPolicyRequest;

                    /**
                     * Encodes the specified InsertFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertFirewallPolicyRequest;

                    /**
                     * Decodes an InsertFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertFirewallPolicyRequest;

                    /**
                     * Verifies an InsertFirewallPolicyRequest message.
                     * @param message Plain 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 InsertFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an InsertFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertFirewallRequest. */
                interface IInsertFirewallRequest {

                    /** InsertFirewallRequest firewallResource */
                    firewallResource?: (google.cloud.compute.v1.IFirewall|null);

                    /** InsertFirewallRequest project */
                    project?: (string|null);

                    /** InsertFirewallRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertFirewallRequest. */
                class InsertFirewallRequest implements IInsertFirewallRequest {

                    /**
                     * Constructs a new InsertFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertFirewallRequest);

                    /** InsertFirewallRequest firewallResource. */
                    public firewallResource?: (google.cloud.compute.v1.IFirewall|null);

                    /** InsertFirewallRequest project. */
                    public project: string;

                    /** InsertFirewallRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertFirewallRequest): google.cloud.compute.v1.InsertFirewallRequest;

                    /**
                     * Encodes the specified InsertFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertFirewallRequest.verify|verify} messages.
                     * @param message InsertFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertFirewallRequest.verify|verify} messages.
                     * @param message InsertFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertFirewallRequest;

                    /**
                     * Decodes an InsertFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertFirewallRequest;

                    /**
                     * Verifies an InsertFirewallRequest message.
                     * @param message Plain 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 InsertFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertFirewallRequest;

                    /**
                     * Creates a plain object from an InsertFirewallRequest message. Also converts values to other types if specified.
                     * @param message InsertFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertForwardingRuleRequest. */
                interface IInsertForwardingRuleRequest {

                    /** InsertForwardingRuleRequest forwardingRuleResource */
                    forwardingRuleResource?: (google.cloud.compute.v1.IForwardingRule|null);

                    /** InsertForwardingRuleRequest project */
                    project?: (string|null);

                    /** InsertForwardingRuleRequest region */
                    region?: (string|null);

                    /** InsertForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertForwardingRuleRequest. */
                class InsertForwardingRuleRequest implements IInsertForwardingRuleRequest {

                    /**
                     * Constructs a new InsertForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertForwardingRuleRequest);

                    /** InsertForwardingRuleRequest forwardingRuleResource. */
                    public forwardingRuleResource?: (google.cloud.compute.v1.IForwardingRule|null);

                    /** InsertForwardingRuleRequest project. */
                    public project: string;

                    /** InsertForwardingRuleRequest region. */
                    public region: string;

                    /** InsertForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertForwardingRuleRequest): google.cloud.compute.v1.InsertForwardingRuleRequest;

                    /**
                     * Encodes the specified InsertForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertForwardingRuleRequest.verify|verify} messages.
                     * @param message InsertForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertForwardingRuleRequest.verify|verify} messages.
                     * @param message InsertForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertForwardingRuleRequest;

                    /**
                     * Decodes an InsertForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertForwardingRuleRequest;

                    /**
                     * Verifies an InsertForwardingRuleRequest message.
                     * @param message Plain 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 InsertForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertForwardingRuleRequest;

                    /**
                     * Creates a plain object from an InsertForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message InsertForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertFutureReservationRequest. */
                interface IInsertFutureReservationRequest {

                    /** InsertFutureReservationRequest futureReservationResource */
                    futureReservationResource?: (google.cloud.compute.v1.IFutureReservation|null);

                    /** InsertFutureReservationRequest project */
                    project?: (string|null);

                    /** InsertFutureReservationRequest requestId */
                    requestId?: (string|null);

                    /** InsertFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertFutureReservationRequest. */
                class InsertFutureReservationRequest implements IInsertFutureReservationRequest {

                    /**
                     * Constructs a new InsertFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertFutureReservationRequest);

                    /** InsertFutureReservationRequest futureReservationResource. */
                    public futureReservationResource?: (google.cloud.compute.v1.IFutureReservation|null);

                    /** InsertFutureReservationRequest project. */
                    public project: string;

                    /** InsertFutureReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertFutureReservationRequest): google.cloud.compute.v1.InsertFutureReservationRequest;

                    /**
                     * Encodes the specified InsertFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertFutureReservationRequest.verify|verify} messages.
                     * @param message InsertFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertFutureReservationRequest.verify|verify} messages.
                     * @param message InsertFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertFutureReservationRequest;

                    /**
                     * Decodes an InsertFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertFutureReservationRequest;

                    /**
                     * Verifies an InsertFutureReservationRequest message.
                     * @param message Plain 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 InsertFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertFutureReservationRequest;

                    /**
                     * Creates a plain object from an InsertFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message InsertFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalAddressRequest. */
                interface IInsertGlobalAddressRequest {

                    /** InsertGlobalAddressRequest addressResource */
                    addressResource?: (google.cloud.compute.v1.IAddress|null);

                    /** InsertGlobalAddressRequest project */
                    project?: (string|null);

                    /** InsertGlobalAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalAddressRequest. */
                class InsertGlobalAddressRequest implements IInsertGlobalAddressRequest {

                    /**
                     * Constructs a new InsertGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertGlobalAddressRequest);

                    /** InsertGlobalAddressRequest addressResource. */
                    public addressResource?: (google.cloud.compute.v1.IAddress|null);

                    /** InsertGlobalAddressRequest project. */
                    public project: string;

                    /** InsertGlobalAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertGlobalAddressRequest): google.cloud.compute.v1.InsertGlobalAddressRequest;

                    /**
                     * Encodes the specified InsertGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertGlobalAddressRequest.verify|verify} messages.
                     * @param message InsertGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertGlobalAddressRequest.verify|verify} messages.
                     * @param message InsertGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertGlobalAddressRequest;

                    /**
                     * Decodes an InsertGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertGlobalAddressRequest;

                    /**
                     * Verifies an InsertGlobalAddressRequest message.
                     * @param message Plain 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 InsertGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertGlobalAddressRequest;

                    /**
                     * Creates a plain object from an InsertGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalForwardingRuleRequest. */
                interface IInsertGlobalForwardingRuleRequest {

                    /** InsertGlobalForwardingRuleRequest forwardingRuleResource */
                    forwardingRuleResource?: (google.cloud.compute.v1.IForwardingRule|null);

                    /** InsertGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** InsertGlobalForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalForwardingRuleRequest. */
                class InsertGlobalForwardingRuleRequest implements IInsertGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new InsertGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertGlobalForwardingRuleRequest);

                    /** InsertGlobalForwardingRuleRequest forwardingRuleResource. */
                    public forwardingRuleResource?: (google.cloud.compute.v1.IForwardingRule|null);

                    /** InsertGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** InsertGlobalForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertGlobalForwardingRuleRequest): google.cloud.compute.v1.InsertGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified InsertGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message InsertGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message InsertGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertGlobalForwardingRuleRequest;

                    /**
                     * Decodes an InsertGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertGlobalForwardingRuleRequest;

                    /**
                     * Verifies an InsertGlobalForwardingRuleRequest message.
                     * @param message Plain 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 InsertGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from an InsertGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalNetworkEndpointGroupRequest. */
                interface IInsertGlobalNetworkEndpointGroupRequest {

                    /** InsertGlobalNetworkEndpointGroupRequest networkEndpointGroupResource */
                    networkEndpointGroupResource?: (google.cloud.compute.v1.INetworkEndpointGroup|null);

                    /** InsertGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** InsertGlobalNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalNetworkEndpointGroupRequest. */
                class InsertGlobalNetworkEndpointGroupRequest implements IInsertGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new InsertGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertGlobalNetworkEndpointGroupRequest);

                    /** InsertGlobalNetworkEndpointGroupRequest networkEndpointGroupResource. */
                    public networkEndpointGroupResource?: (google.cloud.compute.v1.INetworkEndpointGroup|null);

                    /** InsertGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** InsertGlobalNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified InsertGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes an InsertGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies an InsertGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain 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 InsertGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an InsertGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalPublicDelegatedPrefixeRequest. */
                interface IInsertGlobalPublicDelegatedPrefixeRequest {

                    /** InsertGlobalPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** InsertGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefixResource */
                    publicDelegatedPrefixResource?: (google.cloud.compute.v1.IPublicDelegatedPrefix|null);

                    /** InsertGlobalPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalPublicDelegatedPrefixeRequest. */
                class InsertGlobalPublicDelegatedPrefixeRequest implements IInsertGlobalPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new InsertGlobalPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertGlobalPublicDelegatedPrefixeRequest);

                    /** InsertGlobalPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** InsertGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefixResource. */
                    public publicDelegatedPrefixResource?: (google.cloud.compute.v1.IPublicDelegatedPrefix|null);

                    /** InsertGlobalPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertGlobalPublicDelegatedPrefixeRequest): google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified InsertGlobalPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message InsertGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message InsertGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes an InsertGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies an InsertGlobalPublicDelegatedPrefixeRequest message.
                     * @param message Plain 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 InsertGlobalPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from an InsertGlobalPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertHealthCheckRequest. */
                interface IInsertHealthCheckRequest {

                    /** InsertHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** InsertHealthCheckRequest project */
                    project?: (string|null);

                    /** InsertHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertHealthCheckRequest. */
                class InsertHealthCheckRequest implements IInsertHealthCheckRequest {

                    /**
                     * Constructs a new InsertHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertHealthCheckRequest);

                    /** InsertHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** InsertHealthCheckRequest project. */
                    public project: string;

                    /** InsertHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertHealthCheckRequest): google.cloud.compute.v1.InsertHealthCheckRequest;

                    /**
                     * Encodes the specified InsertHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertHealthCheckRequest.verify|verify} messages.
                     * @param message InsertHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertHealthCheckRequest.verify|verify} messages.
                     * @param message InsertHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertHealthCheckRequest;

                    /**
                     * Decodes an InsertHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertHealthCheckRequest;

                    /**
                     * Verifies an InsertHealthCheckRequest message.
                     * @param message Plain 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 InsertHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertHealthCheckRequest;

                    /**
                     * Creates a plain object from an InsertHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message InsertHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertImageRequest. */
                interface IInsertImageRequest {

                    /** InsertImageRequest forceCreate */
                    forceCreate?: (boolean|null);

                    /** InsertImageRequest imageResource */
                    imageResource?: (google.cloud.compute.v1.IImage|null);

                    /** InsertImageRequest project */
                    project?: (string|null);

                    /** InsertImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertImageRequest. */
                class InsertImageRequest implements IInsertImageRequest {

                    /**
                     * Constructs a new InsertImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertImageRequest);

                    /** InsertImageRequest forceCreate. */
                    public forceCreate?: (boolean|null);

                    /** InsertImageRequest imageResource. */
                    public imageResource?: (google.cloud.compute.v1.IImage|null);

                    /** InsertImageRequest project. */
                    public project: string;

                    /** InsertImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertImageRequest): google.cloud.compute.v1.InsertImageRequest;

                    /**
                     * Encodes the specified InsertImageRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertImageRequest.verify|verify} messages.
                     * @param message InsertImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertImageRequest.verify|verify} messages.
                     * @param message InsertImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertImageRequest;

                    /**
                     * Decodes an InsertImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertImageRequest;

                    /**
                     * Verifies an InsertImageRequest message.
                     * @param message Plain 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 InsertImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertImageRequest;

                    /**
                     * Creates a plain object from an InsertImageRequest message. Also converts values to other types if specified.
                     * @param message InsertImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceGroupManagerRequest. */
                interface IInsertInstanceGroupManagerRequest {

                    /** InsertInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1.IInstanceGroupManager|null);

                    /** InsertInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** InsertInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstanceGroupManagerRequest. */
                class InsertInstanceGroupManagerRequest implements IInsertInstanceGroupManagerRequest {

                    /**
                     * Constructs a new InsertInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInstanceGroupManagerRequest);

                    /** InsertInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1.IInstanceGroupManager|null);

                    /** InsertInstanceGroupManagerRequest project. */
                    public project: string;

                    /** InsertInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInstanceGroupManagerRequest): google.cloud.compute.v1.InsertInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified InsertInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInstanceGroupManagerRequest;

                    /**
                     * Decodes an InsertInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInstanceGroupManagerRequest;

                    /**
                     * Verifies an InsertInstanceGroupManagerRequest message.
                     * @param message Plain 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 InsertInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an InsertInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceGroupManagerResizeRequestRequest. */
                interface IInsertInstanceGroupManagerResizeRequestRequest {

                    /** InsertInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest instanceGroupManagerResizeRequestResource */
                    instanceGroupManagerResizeRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagerResizeRequest|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstanceGroupManagerResizeRequestRequest. */
                class InsertInstanceGroupManagerResizeRequestRequest implements IInsertInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new InsertInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInstanceGroupManagerResizeRequestRequest);

                    /** InsertInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** InsertInstanceGroupManagerResizeRequestRequest instanceGroupManagerResizeRequestResource. */
                    public instanceGroupManagerResizeRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagerResizeRequest|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** InsertInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified InsertInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes an InsertInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies an InsertInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain 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 InsertInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from an InsertInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceGroupRequest. */
                interface IInsertInstanceGroupRequest {

                    /** InsertInstanceGroupRequest instanceGroupResource */
                    instanceGroupResource?: (google.cloud.compute.v1.IInstanceGroup|null);

                    /** InsertInstanceGroupRequest project */
                    project?: (string|null);

                    /** InsertInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstanceGroupRequest. */
                class InsertInstanceGroupRequest implements IInsertInstanceGroupRequest {

                    /**
                     * Constructs a new InsertInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInstanceGroupRequest);

                    /** InsertInstanceGroupRequest instanceGroupResource. */
                    public instanceGroupResource?: (google.cloud.compute.v1.IInstanceGroup|null);

                    /** InsertInstanceGroupRequest project. */
                    public project: string;

                    /** InsertInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInstanceGroupRequest): google.cloud.compute.v1.InsertInstanceGroupRequest;

                    /**
                     * Encodes the specified InsertInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceGroupRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceGroupRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInstanceGroupRequest;

                    /**
                     * Decodes an InsertInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInstanceGroupRequest;

                    /**
                     * Verifies an InsertInstanceGroupRequest message.
                     * @param message Plain 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 InsertInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInstanceGroupRequest;

                    /**
                     * Creates a plain object from an InsertInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceRequest. */
                interface IInsertInstanceRequest {

                    /** InsertInstanceRequest instanceResource */
                    instanceResource?: (google.cloud.compute.v1.IInstance|null);

                    /** InsertInstanceRequest project */
                    project?: (string|null);

                    /** InsertInstanceRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstanceRequest sourceInstanceTemplate */
                    sourceInstanceTemplate?: (string|null);

                    /** InsertInstanceRequest sourceMachineImage */
                    sourceMachineImage?: (string|null);

                    /** InsertInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstanceRequest. */
                class InsertInstanceRequest implements IInsertInstanceRequest {

                    /**
                     * Constructs a new InsertInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInstanceRequest);

                    /** InsertInstanceRequest instanceResource. */
                    public instanceResource?: (google.cloud.compute.v1.IInstance|null);

                    /** InsertInstanceRequest project. */
                    public project: string;

                    /** InsertInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstanceRequest sourceInstanceTemplate. */
                    public sourceInstanceTemplate?: (string|null);

                    /** InsertInstanceRequest sourceMachineImage. */
                    public sourceMachineImage?: (string|null);

                    /** InsertInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInstanceRequest): google.cloud.compute.v1.InsertInstanceRequest;

                    /**
                     * Encodes the specified InsertInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceRequest.verify|verify} messages.
                     * @param message InsertInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceRequest.verify|verify} messages.
                     * @param message InsertInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInstanceRequest;

                    /**
                     * Decodes an InsertInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInstanceRequest;

                    /**
                     * Verifies an InsertInstanceRequest message.
                     * @param message Plain 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 InsertInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInstanceRequest;

                    /**
                     * Creates a plain object from an InsertInstanceRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceTemplateRequest. */
                interface IInsertInstanceTemplateRequest {

                    /** InsertInstanceTemplateRequest instanceTemplateResource */
                    instanceTemplateResource?: (google.cloud.compute.v1.IInstanceTemplate|null);

                    /** InsertInstanceTemplateRequest project */
                    project?: (string|null);

                    /** InsertInstanceTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertInstanceTemplateRequest. */
                class InsertInstanceTemplateRequest implements IInsertInstanceTemplateRequest {

                    /**
                     * Constructs a new InsertInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInstanceTemplateRequest);

                    /** InsertInstanceTemplateRequest instanceTemplateResource. */
                    public instanceTemplateResource?: (google.cloud.compute.v1.IInstanceTemplate|null);

                    /** InsertInstanceTemplateRequest project. */
                    public project: string;

                    /** InsertInstanceTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInstanceTemplateRequest): google.cloud.compute.v1.InsertInstanceTemplateRequest;

                    /**
                     * Encodes the specified InsertInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceTemplateRequest.verify|verify} messages.
                     * @param message InsertInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInstanceTemplateRequest.verify|verify} messages.
                     * @param message InsertInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInstanceTemplateRequest;

                    /**
                     * Decodes an InsertInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInstanceTemplateRequest;

                    /**
                     * Verifies an InsertInstanceTemplateRequest message.
                     * @param message Plain 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 InsertInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInstanceTemplateRequest;

                    /**
                     * Creates a plain object from an InsertInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstantSnapshotRequest. */
                interface IInsertInstantSnapshotRequest {

                    /** InsertInstantSnapshotRequest instantSnapshotResource */
                    instantSnapshotResource?: (google.cloud.compute.v1.IInstantSnapshot|null);

                    /** InsertInstantSnapshotRequest project */
                    project?: (string|null);

                    /** InsertInstantSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstantSnapshotRequest. */
                class InsertInstantSnapshotRequest implements IInsertInstantSnapshotRequest {

                    /**
                     * Constructs a new InsertInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInstantSnapshotRequest);

                    /** InsertInstantSnapshotRequest instantSnapshotResource. */
                    public instantSnapshotResource?: (google.cloud.compute.v1.IInstantSnapshot|null);

                    /** InsertInstantSnapshotRequest project. */
                    public project: string;

                    /** InsertInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInstantSnapshotRequest): google.cloud.compute.v1.InsertInstantSnapshotRequest;

                    /**
                     * Encodes the specified InsertInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInstantSnapshotRequest.verify|verify} messages.
                     * @param message InsertInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInstantSnapshotRequest.verify|verify} messages.
                     * @param message InsertInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInstantSnapshotRequest;

                    /**
                     * Decodes an InsertInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInstantSnapshotRequest;

                    /**
                     * Verifies an InsertInstantSnapshotRequest message.
                     * @param message Plain 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 InsertInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInstantSnapshotRequest;

                    /**
                     * Creates a plain object from an InsertInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message InsertInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInterconnectAttachmentGroupRequest. */
                interface IInsertInterconnectAttachmentGroupRequest {

                    /** InsertInterconnectAttachmentGroupRequest interconnectAttachmentGroupResource */
                    interconnectAttachmentGroupResource?: (google.cloud.compute.v1.IInterconnectAttachmentGroup|null);

                    /** InsertInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** InsertInterconnectAttachmentGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertInterconnectAttachmentGroupRequest. */
                class InsertInterconnectAttachmentGroupRequest implements IInsertInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new InsertInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInterconnectAttachmentGroupRequest);

                    /** InsertInterconnectAttachmentGroupRequest interconnectAttachmentGroupResource. */
                    public interconnectAttachmentGroupResource?: (google.cloud.compute.v1.IInterconnectAttachmentGroup|null);

                    /** InsertInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** InsertInterconnectAttachmentGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInterconnectAttachmentGroupRequest): google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified InsertInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message InsertInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message InsertInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes an InsertInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies an InsertInterconnectAttachmentGroupRequest message.
                     * @param message Plain 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 InsertInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from an InsertInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInterconnectAttachmentRequest. */
                interface IInsertInterconnectAttachmentRequest {

                    /** InsertInterconnectAttachmentRequest interconnectAttachmentResource */
                    interconnectAttachmentResource?: (google.cloud.compute.v1.IInterconnectAttachment|null);

                    /** InsertInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** InsertInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** InsertInterconnectAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** InsertInterconnectAttachmentRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertInterconnectAttachmentRequest. */
                class InsertInterconnectAttachmentRequest implements IInsertInterconnectAttachmentRequest {

                    /**
                     * Constructs a new InsertInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInterconnectAttachmentRequest);

                    /** InsertInterconnectAttachmentRequest interconnectAttachmentResource. */
                    public interconnectAttachmentResource?: (google.cloud.compute.v1.IInterconnectAttachment|null);

                    /** InsertInterconnectAttachmentRequest project. */
                    public project: string;

                    /** InsertInterconnectAttachmentRequest region. */
                    public region: string;

                    /** InsertInterconnectAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInterconnectAttachmentRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInterconnectAttachmentRequest): google.cloud.compute.v1.InsertInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified InsertInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message InsertInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message InsertInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInterconnectAttachmentRequest;

                    /**
                     * Decodes an InsertInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInterconnectAttachmentRequest;

                    /**
                     * Verifies an InsertInterconnectAttachmentRequest message.
                     * @param message Plain 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 InsertInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from an InsertInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message InsertInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInterconnectGroupRequest. */
                interface IInsertInterconnectGroupRequest {

                    /** InsertInterconnectGroupRequest interconnectGroupResource */
                    interconnectGroupResource?: (google.cloud.compute.v1.IInterconnectGroup|null);

                    /** InsertInterconnectGroupRequest project */
                    project?: (string|null);

                    /** InsertInterconnectGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertInterconnectGroupRequest. */
                class InsertInterconnectGroupRequest implements IInsertInterconnectGroupRequest {

                    /**
                     * Constructs a new InsertInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInterconnectGroupRequest);

                    /** InsertInterconnectGroupRequest interconnectGroupResource. */
                    public interconnectGroupResource?: (google.cloud.compute.v1.IInterconnectGroup|null);

                    /** InsertInterconnectGroupRequest project. */
                    public project: string;

                    /** InsertInterconnectGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInterconnectGroupRequest): google.cloud.compute.v1.InsertInterconnectGroupRequest;

                    /**
                     * Encodes the specified InsertInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInterconnectGroupRequest.verify|verify} messages.
                     * @param message InsertInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInterconnectGroupRequest.verify|verify} messages.
                     * @param message InsertInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInterconnectGroupRequest;

                    /**
                     * Decodes an InsertInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInterconnectGroupRequest;

                    /**
                     * Verifies an InsertInterconnectGroupRequest message.
                     * @param message Plain 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 InsertInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInterconnectGroupRequest;

                    /**
                     * Creates a plain object from an InsertInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInterconnectRequest. */
                interface IInsertInterconnectRequest {

                    /** InsertInterconnectRequest interconnectResource */
                    interconnectResource?: (google.cloud.compute.v1.IInterconnect|null);

                    /** InsertInterconnectRequest project */
                    project?: (string|null);

                    /** InsertInterconnectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertInterconnectRequest. */
                class InsertInterconnectRequest implements IInsertInterconnectRequest {

                    /**
                     * Constructs a new InsertInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertInterconnectRequest);

                    /** InsertInterconnectRequest interconnectResource. */
                    public interconnectResource?: (google.cloud.compute.v1.IInterconnect|null);

                    /** InsertInterconnectRequest project. */
                    public project: string;

                    /** InsertInterconnectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertInterconnectRequest): google.cloud.compute.v1.InsertInterconnectRequest;

                    /**
                     * Encodes the specified InsertInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertInterconnectRequest.verify|verify} messages.
                     * @param message InsertInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertInterconnectRequest.verify|verify} messages.
                     * @param message InsertInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertInterconnectRequest;

                    /**
                     * Decodes an InsertInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertInterconnectRequest;

                    /**
                     * Verifies an InsertInterconnectRequest message.
                     * @param message Plain 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 InsertInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertInterconnectRequest;

                    /**
                     * Creates a plain object from an InsertInterconnectRequest message. Also converts values to other types if specified.
                     * @param message InsertInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertLicenseRequest. */
                interface IInsertLicenseRequest {

                    /** InsertLicenseRequest licenseResource */
                    licenseResource?: (google.cloud.compute.v1.ILicense|null);

                    /** InsertLicenseRequest project */
                    project?: (string|null);

                    /** InsertLicenseRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertLicenseRequest. */
                class InsertLicenseRequest implements IInsertLicenseRequest {

                    /**
                     * Constructs a new InsertLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertLicenseRequest);

                    /** InsertLicenseRequest licenseResource. */
                    public licenseResource?: (google.cloud.compute.v1.ILicense|null);

                    /** InsertLicenseRequest project. */
                    public project: string;

                    /** InsertLicenseRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertLicenseRequest): google.cloud.compute.v1.InsertLicenseRequest;

                    /**
                     * Encodes the specified InsertLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertLicenseRequest.verify|verify} messages.
                     * @param message InsertLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertLicenseRequest.verify|verify} messages.
                     * @param message InsertLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertLicenseRequest;

                    /**
                     * Decodes an InsertLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertLicenseRequest;

                    /**
                     * Verifies an InsertLicenseRequest message.
                     * @param message Plain 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 InsertLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertLicenseRequest;

                    /**
                     * Creates a plain object from an InsertLicenseRequest message. Also converts values to other types if specified.
                     * @param message InsertLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertMachineImageRequest. */
                interface IInsertMachineImageRequest {

                    /** InsertMachineImageRequest machineImageResource */
                    machineImageResource?: (google.cloud.compute.v1.IMachineImage|null);

                    /** InsertMachineImageRequest project */
                    project?: (string|null);

                    /** InsertMachineImageRequest requestId */
                    requestId?: (string|null);

                    /** InsertMachineImageRequest sourceInstance */
                    sourceInstance?: (string|null);
                }

                /** Represents an InsertMachineImageRequest. */
                class InsertMachineImageRequest implements IInsertMachineImageRequest {

                    /**
                     * Constructs a new InsertMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertMachineImageRequest);

                    /** InsertMachineImageRequest machineImageResource. */
                    public machineImageResource?: (google.cloud.compute.v1.IMachineImage|null);

                    /** InsertMachineImageRequest project. */
                    public project: string;

                    /** InsertMachineImageRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertMachineImageRequest sourceInstance. */
                    public sourceInstance?: (string|null);

                    /**
                     * Creates a new InsertMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertMachineImageRequest): google.cloud.compute.v1.InsertMachineImageRequest;

                    /**
                     * Encodes the specified InsertMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertMachineImageRequest.verify|verify} messages.
                     * @param message InsertMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertMachineImageRequest.verify|verify} messages.
                     * @param message InsertMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertMachineImageRequest;

                    /**
                     * Decodes an InsertMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertMachineImageRequest;

                    /**
                     * Verifies an InsertMachineImageRequest message.
                     * @param message Plain 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 InsertMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertMachineImageRequest;

                    /**
                     * Creates a plain object from an InsertMachineImageRequest message. Also converts values to other types if specified.
                     * @param message InsertMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkAttachmentRequest. */
                interface IInsertNetworkAttachmentRequest {

                    /** InsertNetworkAttachmentRequest networkAttachmentResource */
                    networkAttachmentResource?: (google.cloud.compute.v1.INetworkAttachment|null);

                    /** InsertNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** InsertNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** InsertNetworkAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertNetworkAttachmentRequest. */
                class InsertNetworkAttachmentRequest implements IInsertNetworkAttachmentRequest {

                    /**
                     * Constructs a new InsertNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertNetworkAttachmentRequest);

                    /** InsertNetworkAttachmentRequest networkAttachmentResource. */
                    public networkAttachmentResource?: (google.cloud.compute.v1.INetworkAttachment|null);

                    /** InsertNetworkAttachmentRequest project. */
                    public project: string;

                    /** InsertNetworkAttachmentRequest region. */
                    public region: string;

                    /** InsertNetworkAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertNetworkAttachmentRequest): google.cloud.compute.v1.InsertNetworkAttachmentRequest;

                    /**
                     * Encodes the specified InsertNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkAttachmentRequest.verify|verify} messages.
                     * @param message InsertNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkAttachmentRequest.verify|verify} messages.
                     * @param message InsertNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertNetworkAttachmentRequest;

                    /**
                     * Decodes an InsertNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertNetworkAttachmentRequest;

                    /**
                     * Verifies an InsertNetworkAttachmentRequest message.
                     * @param message Plain 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 InsertNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from an InsertNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkEdgeSecurityServiceRequest. */
                interface IInsertNetworkEdgeSecurityServiceRequest {

                    /** InsertNetworkEdgeSecurityServiceRequest networkEdgeSecurityServiceResource */
                    networkEdgeSecurityServiceResource?: (google.cloud.compute.v1.INetworkEdgeSecurityService|null);

                    /** InsertNetworkEdgeSecurityServiceRequest project */
                    project?: (string|null);

                    /** InsertNetworkEdgeSecurityServiceRequest region */
                    region?: (string|null);

                    /** InsertNetworkEdgeSecurityServiceRequest requestId */
                    requestId?: (string|null);

                    /** InsertNetworkEdgeSecurityServiceRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertNetworkEdgeSecurityServiceRequest. */
                class InsertNetworkEdgeSecurityServiceRequest implements IInsertNetworkEdgeSecurityServiceRequest {

                    /**
                     * Constructs a new InsertNetworkEdgeSecurityServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertNetworkEdgeSecurityServiceRequest);

                    /** InsertNetworkEdgeSecurityServiceRequest networkEdgeSecurityServiceResource. */
                    public networkEdgeSecurityServiceResource?: (google.cloud.compute.v1.INetworkEdgeSecurityService|null);

                    /** InsertNetworkEdgeSecurityServiceRequest project. */
                    public project: string;

                    /** InsertNetworkEdgeSecurityServiceRequest region. */
                    public region: string;

                    /** InsertNetworkEdgeSecurityServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertNetworkEdgeSecurityServiceRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertNetworkEdgeSecurityServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkEdgeSecurityServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertNetworkEdgeSecurityServiceRequest): google.cloud.compute.v1.InsertNetworkEdgeSecurityServiceRequest;

                    /**
                     * Encodes the specified InsertNetworkEdgeSecurityServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message InsertNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkEdgeSecurityServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message InsertNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkEdgeSecurityServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertNetworkEdgeSecurityServiceRequest;

                    /**
                     * Decodes an InsertNetworkEdgeSecurityServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertNetworkEdgeSecurityServiceRequest;

                    /**
                     * Verifies an InsertNetworkEdgeSecurityServiceRequest message.
                     * @param message Plain 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 InsertNetworkEdgeSecurityServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkEdgeSecurityServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertNetworkEdgeSecurityServiceRequest;

                    /**
                     * Creates a plain object from an InsertNetworkEdgeSecurityServiceRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkEdgeSecurityServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertNetworkEdgeSecurityServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkEdgeSecurityServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkEdgeSecurityServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkEndpointGroupRequest. */
                interface IInsertNetworkEndpointGroupRequest {

                    /** InsertNetworkEndpointGroupRequest networkEndpointGroupResource */
                    networkEndpointGroupResource?: (google.cloud.compute.v1.INetworkEndpointGroup|null);

                    /** InsertNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** InsertNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertNetworkEndpointGroupRequest. */
                class InsertNetworkEndpointGroupRequest implements IInsertNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new InsertNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertNetworkEndpointGroupRequest);

                    /** InsertNetworkEndpointGroupRequest networkEndpointGroupResource. */
                    public networkEndpointGroupResource?: (google.cloud.compute.v1.INetworkEndpointGroup|null);

                    /** InsertNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** InsertNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertNetworkEndpointGroupRequest): google.cloud.compute.v1.InsertNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified InsertNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertNetworkEndpointGroupRequest;

                    /**
                     * Decodes an InsertNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertNetworkEndpointGroupRequest;

                    /**
                     * Verifies an InsertNetworkEndpointGroupRequest message.
                     * @param message Plain 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 InsertNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an InsertNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkFirewallPolicyRequest. */
                interface IInsertNetworkFirewallPolicyRequest {

                    /** InsertNetworkFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** InsertNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** InsertNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertNetworkFirewallPolicyRequest. */
                class InsertNetworkFirewallPolicyRequest implements IInsertNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new InsertNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertNetworkFirewallPolicyRequest);

                    /** InsertNetworkFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** InsertNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** InsertNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertNetworkFirewallPolicyRequest): google.cloud.compute.v1.InsertNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified InsertNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an InsertNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an InsertNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 InsertNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an InsertNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkRequest. */
                interface IInsertNetworkRequest {

                    /** InsertNetworkRequest networkResource */
                    networkResource?: (google.cloud.compute.v1.INetwork|null);

                    /** InsertNetworkRequest project */
                    project?: (string|null);

                    /** InsertNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertNetworkRequest. */
                class InsertNetworkRequest implements IInsertNetworkRequest {

                    /**
                     * Constructs a new InsertNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertNetworkRequest);

                    /** InsertNetworkRequest networkResource. */
                    public networkResource?: (google.cloud.compute.v1.INetwork|null);

                    /** InsertNetworkRequest project. */
                    public project: string;

                    /** InsertNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertNetworkRequest): google.cloud.compute.v1.InsertNetworkRequest;

                    /**
                     * Encodes the specified InsertNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkRequest.verify|verify} messages.
                     * @param message InsertNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertNetworkRequest.verify|verify} messages.
                     * @param message InsertNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertNetworkRequest;

                    /**
                     * Decodes an InsertNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertNetworkRequest;

                    /**
                     * Verifies an InsertNetworkRequest message.
                     * @param message Plain 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 InsertNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertNetworkRequest;

                    /**
                     * Creates a plain object from an InsertNetworkRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNodeGroupRequest. */
                interface IInsertNodeGroupRequest {

                    /** InsertNodeGroupRequest initialNodeCount */
                    initialNodeCount?: (number|null);

                    /** InsertNodeGroupRequest nodeGroupResource */
                    nodeGroupResource?: (google.cloud.compute.v1.INodeGroup|null);

                    /** InsertNodeGroupRequest project */
                    project?: (string|null);

                    /** InsertNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertNodeGroupRequest. */
                class InsertNodeGroupRequest implements IInsertNodeGroupRequest {

                    /**
                     * Constructs a new InsertNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertNodeGroupRequest);

                    /** InsertNodeGroupRequest initialNodeCount. */
                    public initialNodeCount: number;

                    /** InsertNodeGroupRequest nodeGroupResource. */
                    public nodeGroupResource?: (google.cloud.compute.v1.INodeGroup|null);

                    /** InsertNodeGroupRequest project. */
                    public project: string;

                    /** InsertNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertNodeGroupRequest): google.cloud.compute.v1.InsertNodeGroupRequest;

                    /**
                     * Encodes the specified InsertNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertNodeGroupRequest.verify|verify} messages.
                     * @param message InsertNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertNodeGroupRequest.verify|verify} messages.
                     * @param message InsertNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertNodeGroupRequest;

                    /**
                     * Decodes an InsertNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertNodeGroupRequest;

                    /**
                     * Verifies an InsertNodeGroupRequest message.
                     * @param message Plain 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 InsertNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertNodeGroupRequest;

                    /**
                     * Creates a plain object from an InsertNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNodeTemplateRequest. */
                interface IInsertNodeTemplateRequest {

                    /** InsertNodeTemplateRequest nodeTemplateResource */
                    nodeTemplateResource?: (google.cloud.compute.v1.INodeTemplate|null);

                    /** InsertNodeTemplateRequest project */
                    project?: (string|null);

                    /** InsertNodeTemplateRequest region */
                    region?: (string|null);

                    /** InsertNodeTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertNodeTemplateRequest. */
                class InsertNodeTemplateRequest implements IInsertNodeTemplateRequest {

                    /**
                     * Constructs a new InsertNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertNodeTemplateRequest);

                    /** InsertNodeTemplateRequest nodeTemplateResource. */
                    public nodeTemplateResource?: (google.cloud.compute.v1.INodeTemplate|null);

                    /** InsertNodeTemplateRequest project. */
                    public project: string;

                    /** InsertNodeTemplateRequest region. */
                    public region: string;

                    /** InsertNodeTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertNodeTemplateRequest): google.cloud.compute.v1.InsertNodeTemplateRequest;

                    /**
                     * Encodes the specified InsertNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertNodeTemplateRequest.verify|verify} messages.
                     * @param message InsertNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertNodeTemplateRequest.verify|verify} messages.
                     * @param message InsertNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertNodeTemplateRequest;

                    /**
                     * Decodes an InsertNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertNodeTemplateRequest;

                    /**
                     * Verifies an InsertNodeTemplateRequest message.
                     * @param message Plain 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 InsertNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertNodeTemplateRequest;

                    /**
                     * Creates a plain object from an InsertNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message InsertNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertOrganizationSecurityPolicyRequest. */
                interface IInsertOrganizationSecurityPolicyRequest {

                    /** InsertOrganizationSecurityPolicyRequest parentId */
                    parentId?: (string|null);

                    /** InsertOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertOrganizationSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);
                }

                /** Represents an InsertOrganizationSecurityPolicyRequest. */
                class InsertOrganizationSecurityPolicyRequest implements IInsertOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new InsertOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertOrganizationSecurityPolicyRequest);

                    /** InsertOrganizationSecurityPolicyRequest parentId. */
                    public parentId?: (string|null);

                    /** InsertOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertOrganizationSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /**
                     * Creates a new InsertOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertOrganizationSecurityPolicyRequest): google.cloud.compute.v1.InsertOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified InsertOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes an InsertOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies an InsertOrganizationSecurityPolicyRequest message.
                     * @param message Plain 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 InsertOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an InsertOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertPacketMirroringRequest. */
                interface IInsertPacketMirroringRequest {

                    /** InsertPacketMirroringRequest packetMirroringResource */
                    packetMirroringResource?: (google.cloud.compute.v1.IPacketMirroring|null);

                    /** InsertPacketMirroringRequest project */
                    project?: (string|null);

                    /** InsertPacketMirroringRequest region */
                    region?: (string|null);

                    /** InsertPacketMirroringRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertPacketMirroringRequest. */
                class InsertPacketMirroringRequest implements IInsertPacketMirroringRequest {

                    /**
                     * Constructs a new InsertPacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertPacketMirroringRequest);

                    /** InsertPacketMirroringRequest packetMirroringResource. */
                    public packetMirroringResource?: (google.cloud.compute.v1.IPacketMirroring|null);

                    /** InsertPacketMirroringRequest project. */
                    public project: string;

                    /** InsertPacketMirroringRequest region. */
                    public region: string;

                    /** InsertPacketMirroringRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertPacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertPacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertPacketMirroringRequest): google.cloud.compute.v1.InsertPacketMirroringRequest;

                    /**
                     * Encodes the specified InsertPacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertPacketMirroringRequest.verify|verify} messages.
                     * @param message InsertPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertPacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertPacketMirroringRequest.verify|verify} messages.
                     * @param message InsertPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertPacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertPacketMirroringRequest;

                    /**
                     * Decodes an InsertPacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertPacketMirroringRequest;

                    /**
                     * Verifies an InsertPacketMirroringRequest message.
                     * @param message Plain 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 InsertPacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertPacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertPacketMirroringRequest;

                    /**
                     * Creates a plain object from an InsertPacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message InsertPacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertPacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertPacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertPacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertPublicAdvertisedPrefixeRequest. */
                interface IInsertPublicAdvertisedPrefixeRequest {

                    /** InsertPublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** InsertPublicAdvertisedPrefixeRequest publicAdvertisedPrefixResource */
                    publicAdvertisedPrefixResource?: (google.cloud.compute.v1.IPublicAdvertisedPrefix|null);

                    /** InsertPublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertPublicAdvertisedPrefixeRequest. */
                class InsertPublicAdvertisedPrefixeRequest implements IInsertPublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new InsertPublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertPublicAdvertisedPrefixeRequest);

                    /** InsertPublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** InsertPublicAdvertisedPrefixeRequest publicAdvertisedPrefixResource. */
                    public publicAdvertisedPrefixResource?: (google.cloud.compute.v1.IPublicAdvertisedPrefix|null);

                    /** InsertPublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertPublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertPublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertPublicAdvertisedPrefixeRequest): google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified InsertPublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message InsertPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertPublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message InsertPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertPublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes an InsertPublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies an InsertPublicAdvertisedPrefixeRequest message.
                     * @param message Plain 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 InsertPublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertPublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from an InsertPublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message InsertPublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertPublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertPublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertPublicDelegatedPrefixeRequest. */
                interface IInsertPublicDelegatedPrefixeRequest {

                    /** InsertPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** InsertPublicDelegatedPrefixeRequest publicDelegatedPrefixResource */
                    publicDelegatedPrefixResource?: (google.cloud.compute.v1.IPublicDelegatedPrefix|null);

                    /** InsertPublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** InsertPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertPublicDelegatedPrefixeRequest. */
                class InsertPublicDelegatedPrefixeRequest implements IInsertPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new InsertPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertPublicDelegatedPrefixeRequest);

                    /** InsertPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** InsertPublicDelegatedPrefixeRequest publicDelegatedPrefixResource. */
                    public publicDelegatedPrefixResource?: (google.cloud.compute.v1.IPublicDelegatedPrefix|null);

                    /** InsertPublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** InsertPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertPublicDelegatedPrefixeRequest): google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified InsertPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message InsertPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message InsertPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes an InsertPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies an InsertPublicDelegatedPrefixeRequest message.
                     * @param message Plain 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 InsertPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from an InsertPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message InsertPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionAutoscalerRequest. */
                interface IInsertRegionAutoscalerRequest {

                    /** InsertRegionAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** InsertRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** InsertRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** InsertRegionAutoscalerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionAutoscalerRequest. */
                class InsertRegionAutoscalerRequest implements IInsertRegionAutoscalerRequest {

                    /**
                     * Constructs a new InsertRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionAutoscalerRequest);

                    /** InsertRegionAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** InsertRegionAutoscalerRequest project. */
                    public project: string;

                    /** InsertRegionAutoscalerRequest region. */
                    public region: string;

                    /** InsertRegionAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionAutoscalerRequest): google.cloud.compute.v1.InsertRegionAutoscalerRequest;

                    /**
                     * Encodes the specified InsertRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionAutoscalerRequest.verify|verify} messages.
                     * @param message InsertRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionAutoscalerRequest.verify|verify} messages.
                     * @param message InsertRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionAutoscalerRequest;

                    /**
                     * Decodes an InsertRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionAutoscalerRequest;

                    /**
                     * Verifies an InsertRegionAutoscalerRequest message.
                     * @param message Plain 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 InsertRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from an InsertRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionBackendServiceRequest. */
                interface IInsertRegionBackendServiceRequest {

                    /** InsertRegionBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** InsertRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** InsertRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** InsertRegionBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionBackendServiceRequest. */
                class InsertRegionBackendServiceRequest implements IInsertRegionBackendServiceRequest {

                    /**
                     * Constructs a new InsertRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionBackendServiceRequest);

                    /** InsertRegionBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** InsertRegionBackendServiceRequest project. */
                    public project: string;

                    /** InsertRegionBackendServiceRequest region. */
                    public region: string;

                    /** InsertRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionBackendServiceRequest): google.cloud.compute.v1.InsertRegionBackendServiceRequest;

                    /**
                     * Encodes the specified InsertRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionBackendServiceRequest.verify|verify} messages.
                     * @param message InsertRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionBackendServiceRequest.verify|verify} messages.
                     * @param message InsertRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionBackendServiceRequest;

                    /**
                     * Decodes an InsertRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionBackendServiceRequest;

                    /**
                     * Verifies an InsertRegionBackendServiceRequest message.
                     * @param message Plain 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 InsertRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from an InsertRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionCommitmentRequest. */
                interface IInsertRegionCommitmentRequest {

                    /** InsertRegionCommitmentRequest commitmentResource */
                    commitmentResource?: (google.cloud.compute.v1.ICommitment|null);

                    /** InsertRegionCommitmentRequest project */
                    project?: (string|null);

                    /** InsertRegionCommitmentRequest region */
                    region?: (string|null);

                    /** InsertRegionCommitmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionCommitmentRequest. */
                class InsertRegionCommitmentRequest implements IInsertRegionCommitmentRequest {

                    /**
                     * Constructs a new InsertRegionCommitmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionCommitmentRequest);

                    /** InsertRegionCommitmentRequest commitmentResource. */
                    public commitmentResource?: (google.cloud.compute.v1.ICommitment|null);

                    /** InsertRegionCommitmentRequest project. */
                    public project: string;

                    /** InsertRegionCommitmentRequest region. */
                    public region: string;

                    /** InsertRegionCommitmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionCommitmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionCommitmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionCommitmentRequest): google.cloud.compute.v1.InsertRegionCommitmentRequest;

                    /**
                     * Encodes the specified InsertRegionCommitmentRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionCommitmentRequest.verify|verify} messages.
                     * @param message InsertRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionCommitmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionCommitmentRequest.verify|verify} messages.
                     * @param message InsertRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionCommitmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionCommitmentRequest;

                    /**
                     * Decodes an InsertRegionCommitmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionCommitmentRequest;

                    /**
                     * Verifies an InsertRegionCommitmentRequest message.
                     * @param message Plain 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 InsertRegionCommitmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionCommitmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionCommitmentRequest;

                    /**
                     * Creates a plain object from an InsertRegionCommitmentRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionCommitmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionCommitmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionCommitmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionCommitmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionCompositeHealthCheckRequest. */
                interface IInsertRegionCompositeHealthCheckRequest {

                    /** InsertRegionCompositeHealthCheckRequest compositeHealthCheckResource */
                    compositeHealthCheckResource?: (google.cloud.compute.v1.ICompositeHealthCheck|null);

                    /** InsertRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** InsertRegionCompositeHealthCheckRequest region */
                    region?: (string|null);

                    /** InsertRegionCompositeHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionCompositeHealthCheckRequest. */
                class InsertRegionCompositeHealthCheckRequest implements IInsertRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new InsertRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionCompositeHealthCheckRequest);

                    /** InsertRegionCompositeHealthCheckRequest compositeHealthCheckResource. */
                    public compositeHealthCheckResource?: (google.cloud.compute.v1.ICompositeHealthCheck|null);

                    /** InsertRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** InsertRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /** InsertRegionCompositeHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionCompositeHealthCheckRequest): google.cloud.compute.v1.InsertRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified InsertRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message InsertRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message InsertRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes an InsertRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies an InsertRegionCompositeHealthCheckRequest message.
                     * @param message Plain 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 InsertRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from an InsertRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionDiskRequest. */
                interface IInsertRegionDiskRequest {

                    /** InsertRegionDiskRequest diskResource */
                    diskResource?: (google.cloud.compute.v1.IDisk|null);

                    /** InsertRegionDiskRequest project */
                    project?: (string|null);

                    /** InsertRegionDiskRequest region */
                    region?: (string|null);

                    /** InsertRegionDiskRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionDiskRequest sourceImage */
                    sourceImage?: (string|null);
                }

                /** Represents an InsertRegionDiskRequest. */
                class InsertRegionDiskRequest implements IInsertRegionDiskRequest {

                    /**
                     * Constructs a new InsertRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionDiskRequest);

                    /** InsertRegionDiskRequest diskResource. */
                    public diskResource?: (google.cloud.compute.v1.IDisk|null);

                    /** InsertRegionDiskRequest project. */
                    public project: string;

                    /** InsertRegionDiskRequest region. */
                    public region: string;

                    /** InsertRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionDiskRequest sourceImage. */
                    public sourceImage?: (string|null);

                    /**
                     * Creates a new InsertRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionDiskRequest): google.cloud.compute.v1.InsertRegionDiskRequest;

                    /**
                     * Encodes the specified InsertRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionDiskRequest.verify|verify} messages.
                     * @param message InsertRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionDiskRequest.verify|verify} messages.
                     * @param message InsertRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionDiskRequest;

                    /**
                     * Decodes an InsertRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionDiskRequest;

                    /**
                     * Verifies an InsertRegionDiskRequest message.
                     * @param message Plain 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 InsertRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionDiskRequest;

                    /**
                     * Creates a plain object from an InsertRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionHealthAggregationPolicyRequest. */
                interface IInsertRegionHealthAggregationPolicyRequest {

                    /** InsertRegionHealthAggregationPolicyRequest healthAggregationPolicyResource */
                    healthAggregationPolicyResource?: (google.cloud.compute.v1.IHealthAggregationPolicy|null);

                    /** InsertRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionHealthAggregationPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionHealthAggregationPolicyRequest. */
                class InsertRegionHealthAggregationPolicyRequest implements IInsertRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new InsertRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionHealthAggregationPolicyRequest);

                    /** InsertRegionHealthAggregationPolicyRequest healthAggregationPolicyResource. */
                    public healthAggregationPolicyResource?: (google.cloud.compute.v1.IHealthAggregationPolicy|null);

                    /** InsertRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** InsertRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /** InsertRegionHealthAggregationPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionHealthAggregationPolicyRequest): google.cloud.compute.v1.InsertRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes an InsertRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies an InsertRegionHealthAggregationPolicyRequest message.
                     * @param message Plain 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 InsertRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionHealthCheckRequest. */
                interface IInsertRegionHealthCheckRequest {

                    /** InsertRegionHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** InsertRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** InsertRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** InsertRegionHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionHealthCheckRequest. */
                class InsertRegionHealthCheckRequest implements IInsertRegionHealthCheckRequest {

                    /**
                     * Constructs a new InsertRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionHealthCheckRequest);

                    /** InsertRegionHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** InsertRegionHealthCheckRequest project. */
                    public project: string;

                    /** InsertRegionHealthCheckRequest region. */
                    public region: string;

                    /** InsertRegionHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionHealthCheckRequest): google.cloud.compute.v1.InsertRegionHealthCheckRequest;

                    /**
                     * Encodes the specified InsertRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionHealthCheckRequest.verify|verify} messages.
                     * @param message InsertRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionHealthCheckRequest.verify|verify} messages.
                     * @param message InsertRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionHealthCheckRequest;

                    /**
                     * Decodes an InsertRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionHealthCheckRequest;

                    /**
                     * Verifies an InsertRegionHealthCheckRequest message.
                     * @param message Plain 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 InsertRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from an InsertRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionHealthCheckServiceRequest. */
                interface IInsertRegionHealthCheckServiceRequest {

                    /** InsertRegionHealthCheckServiceRequest healthCheckServiceResource */
                    healthCheckServiceResource?: (google.cloud.compute.v1.IHealthCheckService|null);

                    /** InsertRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** InsertRegionHealthCheckServiceRequest region */
                    region?: (string|null);

                    /** InsertRegionHealthCheckServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionHealthCheckServiceRequest. */
                class InsertRegionHealthCheckServiceRequest implements IInsertRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new InsertRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionHealthCheckServiceRequest);

                    /** InsertRegionHealthCheckServiceRequest healthCheckServiceResource. */
                    public healthCheckServiceResource?: (google.cloud.compute.v1.IHealthCheckService|null);

                    /** InsertRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** InsertRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /** InsertRegionHealthCheckServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionHealthCheckServiceRequest): google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified InsertRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message InsertRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message InsertRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest;

                    /**
                     * Decodes an InsertRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest;

                    /**
                     * Verifies an InsertRegionHealthCheckServiceRequest message.
                     * @param message Plain 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 InsertRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from an InsertRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionHealthSourceRequest. */
                interface IInsertRegionHealthSourceRequest {

                    /** InsertRegionHealthSourceRequest healthSourceResource */
                    healthSourceResource?: (google.cloud.compute.v1.IHealthSource|null);

                    /** InsertRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** InsertRegionHealthSourceRequest region */
                    region?: (string|null);

                    /** InsertRegionHealthSourceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionHealthSourceRequest. */
                class InsertRegionHealthSourceRequest implements IInsertRegionHealthSourceRequest {

                    /**
                     * Constructs a new InsertRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionHealthSourceRequest);

                    /** InsertRegionHealthSourceRequest healthSourceResource. */
                    public healthSourceResource?: (google.cloud.compute.v1.IHealthSource|null);

                    /** InsertRegionHealthSourceRequest project. */
                    public project: string;

                    /** InsertRegionHealthSourceRequest region. */
                    public region: string;

                    /** InsertRegionHealthSourceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionHealthSourceRequest): google.cloud.compute.v1.InsertRegionHealthSourceRequest;

                    /**
                     * Encodes the specified InsertRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionHealthSourceRequest.verify|verify} messages.
                     * @param message InsertRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionHealthSourceRequest.verify|verify} messages.
                     * @param message InsertRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionHealthSourceRequest;

                    /**
                     * Decodes an InsertRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionHealthSourceRequest;

                    /**
                     * Verifies an InsertRegionHealthSourceRequest message.
                     * @param message Plain 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 InsertRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from an InsertRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionInstanceGroupManagerRequest. */
                interface IInsertRegionInstanceGroupManagerRequest {

                    /** InsertRegionInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1.IInstanceGroupManager|null);

                    /** InsertRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** InsertRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** InsertRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionInstanceGroupManagerRequest. */
                class InsertRegionInstanceGroupManagerRequest implements IInsertRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new InsertRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionInstanceGroupManagerRequest);

                    /** InsertRegionInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1.IInstanceGroupManager|null);

                    /** InsertRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** InsertRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** InsertRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionInstanceGroupManagerRequest): google.cloud.compute.v1.InsertRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified InsertRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an InsertRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an InsertRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 InsertRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an InsertRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionInstanceTemplateRequest. */
                interface IInsertRegionInstanceTemplateRequest {

                    /** InsertRegionInstanceTemplateRequest instanceTemplateResource */
                    instanceTemplateResource?: (google.cloud.compute.v1.IInstanceTemplate|null);

                    /** InsertRegionInstanceTemplateRequest project */
                    project?: (string|null);

                    /** InsertRegionInstanceTemplateRequest region */
                    region?: (string|null);

                    /** InsertRegionInstanceTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionInstanceTemplateRequest. */
                class InsertRegionInstanceTemplateRequest implements IInsertRegionInstanceTemplateRequest {

                    /**
                     * Constructs a new InsertRegionInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionInstanceTemplateRequest);

                    /** InsertRegionInstanceTemplateRequest instanceTemplateResource. */
                    public instanceTemplateResource?: (google.cloud.compute.v1.IInstanceTemplate|null);

                    /** InsertRegionInstanceTemplateRequest project. */
                    public project: string;

                    /** InsertRegionInstanceTemplateRequest region. */
                    public region: string;

                    /** InsertRegionInstanceTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionInstanceTemplateRequest): google.cloud.compute.v1.InsertRegionInstanceTemplateRequest;

                    /**
                     * Encodes the specified InsertRegionInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionInstanceTemplateRequest;

                    /**
                     * Decodes an InsertRegionInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionInstanceTemplateRequest;

                    /**
                     * Verifies an InsertRegionInstanceTemplateRequest message.
                     * @param message Plain 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 InsertRegionInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionInstanceTemplateRequest;

                    /**
                     * Creates a plain object from an InsertRegionInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionInstantSnapshotRequest. */
                interface IInsertRegionInstantSnapshotRequest {

                    /** InsertRegionInstantSnapshotRequest instantSnapshotResource */
                    instantSnapshotResource?: (google.cloud.compute.v1.IInstantSnapshot|null);

                    /** InsertRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** InsertRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** InsertRegionInstantSnapshotRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionInstantSnapshotRequest. */
                class InsertRegionInstantSnapshotRequest implements IInsertRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new InsertRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionInstantSnapshotRequest);

                    /** InsertRegionInstantSnapshotRequest instantSnapshotResource. */
                    public instantSnapshotResource?: (google.cloud.compute.v1.IInstantSnapshot|null);

                    /** InsertRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** InsertRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** InsertRegionInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionInstantSnapshotRequest): google.cloud.compute.v1.InsertRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified InsertRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message InsertRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message InsertRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionInstantSnapshotRequest;

                    /**
                     * Decodes an InsertRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionInstantSnapshotRequest;

                    /**
                     * Verifies an InsertRegionInstantSnapshotRequest message.
                     * @param message Plain 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 InsertRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from an InsertRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionNetworkEndpointGroupRequest. */
                interface IInsertRegionNetworkEndpointGroupRequest {

                    /** InsertRegionNetworkEndpointGroupRequest networkEndpointGroupResource */
                    networkEndpointGroupResource?: (google.cloud.compute.v1.INetworkEndpointGroup|null);

                    /** InsertRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** InsertRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);

                    /** InsertRegionNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionNetworkEndpointGroupRequest. */
                class InsertRegionNetworkEndpointGroupRequest implements IInsertRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new InsertRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionNetworkEndpointGroupRequest);

                    /** InsertRegionNetworkEndpointGroupRequest networkEndpointGroupResource. */
                    public networkEndpointGroupResource?: (google.cloud.compute.v1.INetworkEndpointGroup|null);

                    /** InsertRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** InsertRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /** InsertRegionNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionNetworkEndpointGroupRequest): google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified InsertRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes an InsertRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies an InsertRegionNetworkEndpointGroupRequest message.
                     * @param message Plain 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 InsertRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an InsertRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionNetworkFirewallPolicyRequest. */
                interface IInsertRegionNetworkFirewallPolicyRequest {

                    /** InsertRegionNetworkFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** InsertRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionNetworkFirewallPolicyRequest. */
                class InsertRegionNetworkFirewallPolicyRequest implements IInsertRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new InsertRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionNetworkFirewallPolicyRequest);

                    /** InsertRegionNetworkFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** InsertRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** InsertRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** InsertRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an InsertRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an InsertRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 InsertRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionNotificationEndpointRequest. */
                interface IInsertRegionNotificationEndpointRequest {

                    /** InsertRegionNotificationEndpointRequest notificationEndpointResource */
                    notificationEndpointResource?: (google.cloud.compute.v1.INotificationEndpoint|null);

                    /** InsertRegionNotificationEndpointRequest project */
                    project?: (string|null);

                    /** InsertRegionNotificationEndpointRequest region */
                    region?: (string|null);

                    /** InsertRegionNotificationEndpointRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionNotificationEndpointRequest. */
                class InsertRegionNotificationEndpointRequest implements IInsertRegionNotificationEndpointRequest {

                    /**
                     * Constructs a new InsertRegionNotificationEndpointRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionNotificationEndpointRequest);

                    /** InsertRegionNotificationEndpointRequest notificationEndpointResource. */
                    public notificationEndpointResource?: (google.cloud.compute.v1.INotificationEndpoint|null);

                    /** InsertRegionNotificationEndpointRequest project. */
                    public project: string;

                    /** InsertRegionNotificationEndpointRequest region. */
                    public region: string;

                    /** InsertRegionNotificationEndpointRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionNotificationEndpointRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionNotificationEndpointRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionNotificationEndpointRequest): google.cloud.compute.v1.InsertRegionNotificationEndpointRequest;

                    /**
                     * Encodes the specified InsertRegionNotificationEndpointRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message InsertRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionNotificationEndpointRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message InsertRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionNotificationEndpointRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionNotificationEndpointRequest;

                    /**
                     * Decodes an InsertRegionNotificationEndpointRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionNotificationEndpointRequest;

                    /**
                     * Verifies an InsertRegionNotificationEndpointRequest message.
                     * @param message Plain 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 InsertRegionNotificationEndpointRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionNotificationEndpointRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionNotificationEndpointRequest;

                    /**
                     * Creates a plain object from an InsertRegionNotificationEndpointRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionNotificationEndpointRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionNotificationEndpointRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionNotificationEndpointRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionNotificationEndpointRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionSecurityPolicyRequest. */
                interface IInsertRegionSecurityPolicyRequest {

                    /** InsertRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /** InsertRegionSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertRegionSecurityPolicyRequest. */
                class InsertRegionSecurityPolicyRequest implements IInsertRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new InsertRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionSecurityPolicyRequest);

                    /** InsertRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** InsertRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** InsertRegionSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /** InsertRegionSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionSecurityPolicyRequest): google.cloud.compute.v1.InsertRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionSecurityPolicyRequest;

                    /**
                     * Decodes an InsertRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionSecurityPolicyRequest;

                    /**
                     * Verifies an InsertRegionSecurityPolicyRequest message.
                     * @param message Plain 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 InsertRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionSslCertificateRequest. */
                interface IInsertRegionSslCertificateRequest {

                    /** InsertRegionSslCertificateRequest project */
                    project?: (string|null);

                    /** InsertRegionSslCertificateRequest region */
                    region?: (string|null);

                    /** InsertRegionSslCertificateRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionSslCertificateRequest sslCertificateResource */
                    sslCertificateResource?: (google.cloud.compute.v1.ISslCertificate|null);
                }

                /** Represents an InsertRegionSslCertificateRequest. */
                class InsertRegionSslCertificateRequest implements IInsertRegionSslCertificateRequest {

                    /**
                     * Constructs a new InsertRegionSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionSslCertificateRequest);

                    /** InsertRegionSslCertificateRequest project. */
                    public project: string;

                    /** InsertRegionSslCertificateRequest region. */
                    public region: string;

                    /** InsertRegionSslCertificateRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionSslCertificateRequest sslCertificateResource. */
                    public sslCertificateResource?: (google.cloud.compute.v1.ISslCertificate|null);

                    /**
                     * Creates a new InsertRegionSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionSslCertificateRequest): google.cloud.compute.v1.InsertRegionSslCertificateRequest;

                    /**
                     * Encodes the specified InsertRegionSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionSslCertificateRequest.verify|verify} messages.
                     * @param message InsertRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionSslCertificateRequest.verify|verify} messages.
                     * @param message InsertRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionSslCertificateRequest;

                    /**
                     * Decodes an InsertRegionSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionSslCertificateRequest;

                    /**
                     * Verifies an InsertRegionSslCertificateRequest message.
                     * @param message Plain 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 InsertRegionSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionSslCertificateRequest;

                    /**
                     * Creates a plain object from an InsertRegionSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionSslPolicyRequest. */
                interface IInsertRegionSslPolicyRequest {

                    /** InsertRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionSslPolicyRequest sslPolicyResource */
                    sslPolicyResource?: (google.cloud.compute.v1.ISslPolicy|null);
                }

                /** Represents an InsertRegionSslPolicyRequest. */
                class InsertRegionSslPolicyRequest implements IInsertRegionSslPolicyRequest {

                    /**
                     * Constructs a new InsertRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionSslPolicyRequest);

                    /** InsertRegionSslPolicyRequest project. */
                    public project: string;

                    /** InsertRegionSslPolicyRequest region. */
                    public region: string;

                    /** InsertRegionSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionSslPolicyRequest sslPolicyResource. */
                    public sslPolicyResource?: (google.cloud.compute.v1.ISslPolicy|null);

                    /**
                     * Creates a new InsertRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionSslPolicyRequest): google.cloud.compute.v1.InsertRegionSslPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionSslPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionSslPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionSslPolicyRequest;

                    /**
                     * Decodes an InsertRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionSslPolicyRequest;

                    /**
                     * Verifies an InsertRegionSslPolicyRequest message.
                     * @param message Plain 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 InsertRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionTargetHttpProxyRequest. */
                interface IInsertRegionTargetHttpProxyRequest {

                    /** InsertRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** InsertRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** InsertRegionTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionTargetHttpProxyRequest targetHttpProxyResource */
                    targetHttpProxyResource?: (google.cloud.compute.v1.ITargetHttpProxy|null);
                }

                /** Represents an InsertRegionTargetHttpProxyRequest. */
                class InsertRegionTargetHttpProxyRequest implements IInsertRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new InsertRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionTargetHttpProxyRequest);

                    /** InsertRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** InsertRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** InsertRegionTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionTargetHttpProxyRequest targetHttpProxyResource. */
                    public targetHttpProxyResource?: (google.cloud.compute.v1.ITargetHttpProxy|null);

                    /**
                     * Creates a new InsertRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionTargetHttpProxyRequest): google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified InsertRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest;

                    /**
                     * Decodes an InsertRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest;

                    /**
                     * Verifies an InsertRegionTargetHttpProxyRequest message.
                     * @param message Plain 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 InsertRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from an InsertRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionTargetHttpsProxyRequest. */
                interface IInsertRegionTargetHttpsProxyRequest {

                    /** InsertRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** InsertRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** InsertRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionTargetHttpsProxyRequest targetHttpsProxyResource */
                    targetHttpsProxyResource?: (google.cloud.compute.v1.ITargetHttpsProxy|null);
                }

                /** Represents an InsertRegionTargetHttpsProxyRequest. */
                class InsertRegionTargetHttpsProxyRequest implements IInsertRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new InsertRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionTargetHttpsProxyRequest);

                    /** InsertRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** InsertRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** InsertRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionTargetHttpsProxyRequest targetHttpsProxyResource. */
                    public targetHttpsProxyResource?: (google.cloud.compute.v1.ITargetHttpsProxy|null);

                    /**
                     * Creates a new InsertRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionTargetHttpsProxyRequest): google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified InsertRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes an InsertRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies an InsertRegionTargetHttpsProxyRequest message.
                     * @param message Plain 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 InsertRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from an InsertRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionTargetTcpProxyRequest. */
                interface IInsertRegionTargetTcpProxyRequest {

                    /** InsertRegionTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** InsertRegionTargetTcpProxyRequest region */
                    region?: (string|null);

                    /** InsertRegionTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionTargetTcpProxyRequest targetTcpProxyResource */
                    targetTcpProxyResource?: (google.cloud.compute.v1.ITargetTcpProxy|null);
                }

                /** Represents an InsertRegionTargetTcpProxyRequest. */
                class InsertRegionTargetTcpProxyRequest implements IInsertRegionTargetTcpProxyRequest {

                    /**
                     * Constructs a new InsertRegionTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionTargetTcpProxyRequest);

                    /** InsertRegionTargetTcpProxyRequest project. */
                    public project: string;

                    /** InsertRegionTargetTcpProxyRequest region. */
                    public region: string;

                    /** InsertRegionTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionTargetTcpProxyRequest targetTcpProxyResource. */
                    public targetTcpProxyResource?: (google.cloud.compute.v1.ITargetTcpProxy|null);

                    /**
                     * Creates a new InsertRegionTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionTargetTcpProxyRequest): google.cloud.compute.v1.InsertRegionTargetTcpProxyRequest;

                    /**
                     * Encodes the specified InsertRegionTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionTargetTcpProxyRequest;

                    /**
                     * Decodes an InsertRegionTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionTargetTcpProxyRequest;

                    /**
                     * Verifies an InsertRegionTargetTcpProxyRequest message.
                     * @param message Plain 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 InsertRegionTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from an InsertRegionTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionUrlMapRequest. */
                interface IInsertRegionUrlMapRequest {

                    /** InsertRegionUrlMapRequest project */
                    project?: (string|null);

                    /** InsertRegionUrlMapRequest region */
                    region?: (string|null);

                    /** InsertRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);
                }

                /** Represents an InsertRegionUrlMapRequest. */
                class InsertRegionUrlMapRequest implements IInsertRegionUrlMapRequest {

                    /**
                     * Constructs a new InsertRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRegionUrlMapRequest);

                    /** InsertRegionUrlMapRequest project. */
                    public project: string;

                    /** InsertRegionUrlMapRequest region. */
                    public region: string;

                    /** InsertRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);

                    /**
                     * Creates a new InsertRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRegionUrlMapRequest): google.cloud.compute.v1.InsertRegionUrlMapRequest;

                    /**
                     * Encodes the specified InsertRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRegionUrlMapRequest.verify|verify} messages.
                     * @param message InsertRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRegionUrlMapRequest.verify|verify} messages.
                     * @param message InsertRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRegionUrlMapRequest;

                    /**
                     * Decodes an InsertRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRegionUrlMapRequest;

                    /**
                     * Verifies an InsertRegionUrlMapRequest message.
                     * @param message Plain 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 InsertRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRegionUrlMapRequest;

                    /**
                     * Creates a plain object from an InsertRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertReservationRequest. */
                interface IInsertReservationRequest {

                    /** InsertReservationRequest project */
                    project?: (string|null);

                    /** InsertReservationRequest requestId */
                    requestId?: (string|null);

                    /** InsertReservationRequest reservationResource */
                    reservationResource?: (google.cloud.compute.v1.IReservation|null);

                    /** InsertReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertReservationRequest. */
                class InsertReservationRequest implements IInsertReservationRequest {

                    /**
                     * Constructs a new InsertReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertReservationRequest);

                    /** InsertReservationRequest project. */
                    public project: string;

                    /** InsertReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertReservationRequest reservationResource. */
                    public reservationResource?: (google.cloud.compute.v1.IReservation|null);

                    /** InsertReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertReservationRequest): google.cloud.compute.v1.InsertReservationRequest;

                    /**
                     * Encodes the specified InsertReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertReservationRequest.verify|verify} messages.
                     * @param message InsertReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertReservationRequest.verify|verify} messages.
                     * @param message InsertReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertReservationRequest;

                    /**
                     * Decodes an InsertReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertReservationRequest;

                    /**
                     * Verifies an InsertReservationRequest message.
                     * @param message Plain 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 InsertReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertReservationRequest;

                    /**
                     * Creates a plain object from an InsertReservationRequest message. Also converts values to other types if specified.
                     * @param message InsertReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertResourcePolicyRequest. */
                interface IInsertResourcePolicyRequest {

                    /** InsertResourcePolicyRequest project */
                    project?: (string|null);

                    /** InsertResourcePolicyRequest region */
                    region?: (string|null);

                    /** InsertResourcePolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertResourcePolicyRequest resourcePolicyResource */
                    resourcePolicyResource?: (google.cloud.compute.v1.IResourcePolicy|null);
                }

                /** Represents an InsertResourcePolicyRequest. */
                class InsertResourcePolicyRequest implements IInsertResourcePolicyRequest {

                    /**
                     * Constructs a new InsertResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertResourcePolicyRequest);

                    /** InsertResourcePolicyRequest project. */
                    public project: string;

                    /** InsertResourcePolicyRequest region. */
                    public region: string;

                    /** InsertResourcePolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertResourcePolicyRequest resourcePolicyResource. */
                    public resourcePolicyResource?: (google.cloud.compute.v1.IResourcePolicy|null);

                    /**
                     * Creates a new InsertResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertResourcePolicyRequest): google.cloud.compute.v1.InsertResourcePolicyRequest;

                    /**
                     * Encodes the specified InsertResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertResourcePolicyRequest.verify|verify} messages.
                     * @param message InsertResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertResourcePolicyRequest.verify|verify} messages.
                     * @param message InsertResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertResourcePolicyRequest;

                    /**
                     * Decodes an InsertResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertResourcePolicyRequest;

                    /**
                     * Verifies an InsertResourcePolicyRequest message.
                     * @param message Plain 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 InsertResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertResourcePolicyRequest;

                    /**
                     * Creates a plain object from an InsertResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRouteRequest. */
                interface IInsertRouteRequest {

                    /** InsertRouteRequest project */
                    project?: (string|null);

                    /** InsertRouteRequest requestId */
                    requestId?: (string|null);

                    /** InsertRouteRequest routeResource */
                    routeResource?: (google.cloud.compute.v1.IRoute|null);
                }

                /** Represents an InsertRouteRequest. */
                class InsertRouteRequest implements IInsertRouteRequest {

                    /**
                     * Constructs a new InsertRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRouteRequest);

                    /** InsertRouteRequest project. */
                    public project: string;

                    /** InsertRouteRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRouteRequest routeResource. */
                    public routeResource?: (google.cloud.compute.v1.IRoute|null);

                    /**
                     * Creates a new InsertRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRouteRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRouteRequest): google.cloud.compute.v1.InsertRouteRequest;

                    /**
                     * Encodes the specified InsertRouteRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRouteRequest.verify|verify} messages.
                     * @param message InsertRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRouteRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRouteRequest.verify|verify} messages.
                     * @param message InsertRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRouteRequest;

                    /**
                     * Decodes an InsertRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRouteRequest;

                    /**
                     * Verifies an InsertRouteRequest message.
                     * @param message Plain 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 InsertRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRouteRequest;

                    /**
                     * Creates a plain object from an InsertRouteRequest message. Also converts values to other types if specified.
                     * @param message InsertRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRouterRequest. */
                interface IInsertRouterRequest {

                    /** InsertRouterRequest project */
                    project?: (string|null);

                    /** InsertRouterRequest region */
                    region?: (string|null);

                    /** InsertRouterRequest requestId */
                    requestId?: (string|null);

                    /** InsertRouterRequest routerResource */
                    routerResource?: (google.cloud.compute.v1.IRouter|null);
                }

                /** Represents an InsertRouterRequest. */
                class InsertRouterRequest implements IInsertRouterRequest {

                    /**
                     * Constructs a new InsertRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertRouterRequest);

                    /** InsertRouterRequest project. */
                    public project: string;

                    /** InsertRouterRequest region. */
                    public region: string;

                    /** InsertRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRouterRequest routerResource. */
                    public routerResource?: (google.cloud.compute.v1.IRouter|null);

                    /**
                     * Creates a new InsertRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertRouterRequest): google.cloud.compute.v1.InsertRouterRequest;

                    /**
                     * Encodes the specified InsertRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertRouterRequest.verify|verify} messages.
                     * @param message InsertRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertRouterRequest.verify|verify} messages.
                     * @param message InsertRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertRouterRequest;

                    /**
                     * Decodes an InsertRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertRouterRequest;

                    /**
                     * Verifies an InsertRouterRequest message.
                     * @param message Plain 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 InsertRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertRouterRequest;

                    /**
                     * Creates a plain object from an InsertRouterRequest message. Also converts values to other types if specified.
                     * @param message InsertRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSecurityPolicyRequest. */
                interface IInsertSecurityPolicyRequest {

                    /** InsertSecurityPolicyRequest project */
                    project?: (string|null);

                    /** InsertSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /** InsertSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertSecurityPolicyRequest. */
                class InsertSecurityPolicyRequest implements IInsertSecurityPolicyRequest {

                    /**
                     * Constructs a new InsertSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertSecurityPolicyRequest);

                    /** InsertSecurityPolicyRequest project. */
                    public project: string;

                    /** InsertSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /** InsertSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertSecurityPolicyRequest): google.cloud.compute.v1.InsertSecurityPolicyRequest;

                    /**
                     * Encodes the specified InsertSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertSecurityPolicyRequest;

                    /**
                     * Decodes an InsertSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertSecurityPolicyRequest;

                    /**
                     * Verifies an InsertSecurityPolicyRequest message.
                     * @param message Plain 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 InsertSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an InsertSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertServiceAttachmentRequest. */
                interface IInsertServiceAttachmentRequest {

                    /** InsertServiceAttachmentRequest project */
                    project?: (string|null);

                    /** InsertServiceAttachmentRequest region */
                    region?: (string|null);

                    /** InsertServiceAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** InsertServiceAttachmentRequest serviceAttachmentResource */
                    serviceAttachmentResource?: (google.cloud.compute.v1.IServiceAttachment|null);
                }

                /** Represents an InsertServiceAttachmentRequest. */
                class InsertServiceAttachmentRequest implements IInsertServiceAttachmentRequest {

                    /**
                     * Constructs a new InsertServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertServiceAttachmentRequest);

                    /** InsertServiceAttachmentRequest project. */
                    public project: string;

                    /** InsertServiceAttachmentRequest region. */
                    public region: string;

                    /** InsertServiceAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertServiceAttachmentRequest serviceAttachmentResource. */
                    public serviceAttachmentResource?: (google.cloud.compute.v1.IServiceAttachment|null);

                    /**
                     * Creates a new InsertServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertServiceAttachmentRequest): google.cloud.compute.v1.InsertServiceAttachmentRequest;

                    /**
                     * Encodes the specified InsertServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertServiceAttachmentRequest.verify|verify} messages.
                     * @param message InsertServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertServiceAttachmentRequest.verify|verify} messages.
                     * @param message InsertServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertServiceAttachmentRequest;

                    /**
                     * Decodes an InsertServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertServiceAttachmentRequest;

                    /**
                     * Verifies an InsertServiceAttachmentRequest message.
                     * @param message Plain 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 InsertServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertServiceAttachmentRequest;

                    /**
                     * Creates a plain object from an InsertServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message InsertServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSnapshotRequest. */
                interface IInsertSnapshotRequest {

                    /** InsertSnapshotRequest project */
                    project?: (string|null);

                    /** InsertSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** InsertSnapshotRequest snapshotResource */
                    snapshotResource?: (google.cloud.compute.v1.ISnapshot|null);
                }

                /** Represents an InsertSnapshotRequest. */
                class InsertSnapshotRequest implements IInsertSnapshotRequest {

                    /**
                     * Constructs a new InsertSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertSnapshotRequest);

                    /** InsertSnapshotRequest project. */
                    public project: string;

                    /** InsertSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSnapshotRequest snapshotResource. */
                    public snapshotResource?: (google.cloud.compute.v1.ISnapshot|null);

                    /**
                     * Creates a new InsertSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertSnapshotRequest): google.cloud.compute.v1.InsertSnapshotRequest;

                    /**
                     * Encodes the specified InsertSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertSnapshotRequest.verify|verify} messages.
                     * @param message InsertSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertSnapshotRequest.verify|verify} messages.
                     * @param message InsertSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertSnapshotRequest;

                    /**
                     * Decodes an InsertSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertSnapshotRequest;

                    /**
                     * Verifies an InsertSnapshotRequest message.
                     * @param message Plain 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 InsertSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertSnapshotRequest;

                    /**
                     * Creates a plain object from an InsertSnapshotRequest message. Also converts values to other types if specified.
                     * @param message InsertSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSslCertificateRequest. */
                interface IInsertSslCertificateRequest {

                    /** InsertSslCertificateRequest project */
                    project?: (string|null);

                    /** InsertSslCertificateRequest requestId */
                    requestId?: (string|null);

                    /** InsertSslCertificateRequest sslCertificateResource */
                    sslCertificateResource?: (google.cloud.compute.v1.ISslCertificate|null);
                }

                /** Represents an InsertSslCertificateRequest. */
                class InsertSslCertificateRequest implements IInsertSslCertificateRequest {

                    /**
                     * Constructs a new InsertSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertSslCertificateRequest);

                    /** InsertSslCertificateRequest project. */
                    public project: string;

                    /** InsertSslCertificateRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSslCertificateRequest sslCertificateResource. */
                    public sslCertificateResource?: (google.cloud.compute.v1.ISslCertificate|null);

                    /**
                     * Creates a new InsertSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertSslCertificateRequest): google.cloud.compute.v1.InsertSslCertificateRequest;

                    /**
                     * Encodes the specified InsertSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertSslCertificateRequest.verify|verify} messages.
                     * @param message InsertSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertSslCertificateRequest.verify|verify} messages.
                     * @param message InsertSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertSslCertificateRequest;

                    /**
                     * Decodes an InsertSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertSslCertificateRequest;

                    /**
                     * Verifies an InsertSslCertificateRequest message.
                     * @param message Plain 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 InsertSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertSslCertificateRequest;

                    /**
                     * Creates a plain object from an InsertSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message InsertSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSslPolicyRequest. */
                interface IInsertSslPolicyRequest {

                    /** InsertSslPolicyRequest project */
                    project?: (string|null);

                    /** InsertSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertSslPolicyRequest sslPolicyResource */
                    sslPolicyResource?: (google.cloud.compute.v1.ISslPolicy|null);
                }

                /** Represents an InsertSslPolicyRequest. */
                class InsertSslPolicyRequest implements IInsertSslPolicyRequest {

                    /**
                     * Constructs a new InsertSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertSslPolicyRequest);

                    /** InsertSslPolicyRequest project. */
                    public project: string;

                    /** InsertSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSslPolicyRequest sslPolicyResource. */
                    public sslPolicyResource?: (google.cloud.compute.v1.ISslPolicy|null);

                    /**
                     * Creates a new InsertSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertSslPolicyRequest): google.cloud.compute.v1.InsertSslPolicyRequest;

                    /**
                     * Encodes the specified InsertSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertSslPolicyRequest.verify|verify} messages.
                     * @param message InsertSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertSslPolicyRequest.verify|verify} messages.
                     * @param message InsertSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertSslPolicyRequest;

                    /**
                     * Decodes an InsertSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertSslPolicyRequest;

                    /**
                     * Verifies an InsertSslPolicyRequest message.
                     * @param message Plain 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 InsertSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertSslPolicyRequest;

                    /**
                     * Creates a plain object from an InsertSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertStoragePoolRequest. */
                interface IInsertStoragePoolRequest {

                    /** InsertStoragePoolRequest project */
                    project?: (string|null);

                    /** InsertStoragePoolRequest requestId */
                    requestId?: (string|null);

                    /** InsertStoragePoolRequest storagePoolResource */
                    storagePoolResource?: (google.cloud.compute.v1.IStoragePool|null);

                    /** InsertStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertStoragePoolRequest. */
                class InsertStoragePoolRequest implements IInsertStoragePoolRequest {

                    /**
                     * Constructs a new InsertStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertStoragePoolRequest);

                    /** InsertStoragePoolRequest project. */
                    public project: string;

                    /** InsertStoragePoolRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertStoragePoolRequest storagePoolResource. */
                    public storagePoolResource?: (google.cloud.compute.v1.IStoragePool|null);

                    /** InsertStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertStoragePoolRequest): google.cloud.compute.v1.InsertStoragePoolRequest;

                    /**
                     * Encodes the specified InsertStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertStoragePoolRequest.verify|verify} messages.
                     * @param message InsertStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertStoragePoolRequest.verify|verify} messages.
                     * @param message InsertStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertStoragePoolRequest;

                    /**
                     * Decodes an InsertStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertStoragePoolRequest;

                    /**
                     * Verifies an InsertStoragePoolRequest message.
                     * @param message Plain 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 InsertStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertStoragePoolRequest;

                    /**
                     * Creates a plain object from an InsertStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message InsertStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSubnetworkRequest. */
                interface IInsertSubnetworkRequest {

                    /** InsertSubnetworkRequest project */
                    project?: (string|null);

                    /** InsertSubnetworkRequest region */
                    region?: (string|null);

                    /** InsertSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** InsertSubnetworkRequest subnetworkResource */
                    subnetworkResource?: (google.cloud.compute.v1.ISubnetwork|null);
                }

                /** Represents an InsertSubnetworkRequest. */
                class InsertSubnetworkRequest implements IInsertSubnetworkRequest {

                    /**
                     * Constructs a new InsertSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertSubnetworkRequest);

                    /** InsertSubnetworkRequest project. */
                    public project: string;

                    /** InsertSubnetworkRequest region. */
                    public region: string;

                    /** InsertSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSubnetworkRequest subnetworkResource. */
                    public subnetworkResource?: (google.cloud.compute.v1.ISubnetwork|null);

                    /**
                     * Creates a new InsertSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertSubnetworkRequest): google.cloud.compute.v1.InsertSubnetworkRequest;

                    /**
                     * Encodes the specified InsertSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertSubnetworkRequest.verify|verify} messages.
                     * @param message InsertSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertSubnetworkRequest.verify|verify} messages.
                     * @param message InsertSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertSubnetworkRequest;

                    /**
                     * Decodes an InsertSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertSubnetworkRequest;

                    /**
                     * Verifies an InsertSubnetworkRequest message.
                     * @param message Plain 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 InsertSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertSubnetworkRequest;

                    /**
                     * Creates a plain object from an InsertSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message InsertSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetGrpcProxyRequest. */
                interface IInsertTargetGrpcProxyRequest {

                    /** InsertTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetGrpcProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetGrpcProxyRequest targetGrpcProxyResource */
                    targetGrpcProxyResource?: (google.cloud.compute.v1.ITargetGrpcProxy|null);
                }

                /** Represents an InsertTargetGrpcProxyRequest. */
                class InsertTargetGrpcProxyRequest implements IInsertTargetGrpcProxyRequest {

                    /**
                     * Constructs a new InsertTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertTargetGrpcProxyRequest);

                    /** InsertTargetGrpcProxyRequest project. */
                    public project: string;

                    /** InsertTargetGrpcProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetGrpcProxyRequest targetGrpcProxyResource. */
                    public targetGrpcProxyResource?: (google.cloud.compute.v1.ITargetGrpcProxy|null);

                    /**
                     * Creates a new InsertTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertTargetGrpcProxyRequest): google.cloud.compute.v1.InsertTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified InsertTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message InsertTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message InsertTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertTargetGrpcProxyRequest;

                    /**
                     * Decodes an InsertTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertTargetGrpcProxyRequest;

                    /**
                     * Verifies an InsertTargetGrpcProxyRequest message.
                     * @param message Plain 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 InsertTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetHttpProxyRequest. */
                interface IInsertTargetHttpProxyRequest {

                    /** InsertTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetHttpProxyRequest targetHttpProxyResource */
                    targetHttpProxyResource?: (google.cloud.compute.v1.ITargetHttpProxy|null);
                }

                /** Represents an InsertTargetHttpProxyRequest. */
                class InsertTargetHttpProxyRequest implements IInsertTargetHttpProxyRequest {

                    /**
                     * Constructs a new InsertTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertTargetHttpProxyRequest);

                    /** InsertTargetHttpProxyRequest project. */
                    public project: string;

                    /** InsertTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetHttpProxyRequest targetHttpProxyResource. */
                    public targetHttpProxyResource?: (google.cloud.compute.v1.ITargetHttpProxy|null);

                    /**
                     * Creates a new InsertTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertTargetHttpProxyRequest): google.cloud.compute.v1.InsertTargetHttpProxyRequest;

                    /**
                     * Encodes the specified InsertTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertTargetHttpProxyRequest.verify|verify} messages.
                     * @param message InsertTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertTargetHttpProxyRequest.verify|verify} messages.
                     * @param message InsertTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertTargetHttpProxyRequest;

                    /**
                     * Decodes an InsertTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertTargetHttpProxyRequest;

                    /**
                     * Verifies an InsertTargetHttpProxyRequest message.
                     * @param message Plain 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 InsertTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetHttpsProxyRequest. */
                interface IInsertTargetHttpsProxyRequest {

                    /** InsertTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetHttpsProxyRequest targetHttpsProxyResource */
                    targetHttpsProxyResource?: (google.cloud.compute.v1.ITargetHttpsProxy|null);
                }

                /** Represents an InsertTargetHttpsProxyRequest. */
                class InsertTargetHttpsProxyRequest implements IInsertTargetHttpsProxyRequest {

                    /**
                     * Constructs a new InsertTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertTargetHttpsProxyRequest);

                    /** InsertTargetHttpsProxyRequest project. */
                    public project: string;

                    /** InsertTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetHttpsProxyRequest targetHttpsProxyResource. */
                    public targetHttpsProxyResource?: (google.cloud.compute.v1.ITargetHttpsProxy|null);

                    /**
                     * Creates a new InsertTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertTargetHttpsProxyRequest): google.cloud.compute.v1.InsertTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified InsertTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message InsertTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message InsertTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertTargetHttpsProxyRequest;

                    /**
                     * Decodes an InsertTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertTargetHttpsProxyRequest;

                    /**
                     * Verifies an InsertTargetHttpsProxyRequest message.
                     * @param message Plain 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 InsertTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetInstanceRequest. */
                interface IInsertTargetInstanceRequest {

                    /** InsertTargetInstanceRequest project */
                    project?: (string|null);

                    /** InsertTargetInstanceRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetInstanceRequest targetInstanceResource */
                    targetInstanceResource?: (google.cloud.compute.v1.ITargetInstance|null);

                    /** InsertTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertTargetInstanceRequest. */
                class InsertTargetInstanceRequest implements IInsertTargetInstanceRequest {

                    /**
                     * Constructs a new InsertTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertTargetInstanceRequest);

                    /** InsertTargetInstanceRequest project. */
                    public project: string;

                    /** InsertTargetInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetInstanceRequest targetInstanceResource. */
                    public targetInstanceResource?: (google.cloud.compute.v1.ITargetInstance|null);

                    /** InsertTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertTargetInstanceRequest): google.cloud.compute.v1.InsertTargetInstanceRequest;

                    /**
                     * Encodes the specified InsertTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertTargetInstanceRequest.verify|verify} messages.
                     * @param message InsertTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertTargetInstanceRequest.verify|verify} messages.
                     * @param message InsertTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertTargetInstanceRequest;

                    /**
                     * Decodes an InsertTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertTargetInstanceRequest;

                    /**
                     * Verifies an InsertTargetInstanceRequest message.
                     * @param message Plain 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 InsertTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertTargetInstanceRequest;

                    /**
                     * Creates a plain object from an InsertTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetPoolRequest. */
                interface IInsertTargetPoolRequest {

                    /** InsertTargetPoolRequest project */
                    project?: (string|null);

                    /** InsertTargetPoolRequest region */
                    region?: (string|null);

                    /** InsertTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetPoolRequest targetPoolResource */
                    targetPoolResource?: (google.cloud.compute.v1.ITargetPool|null);
                }

                /** Represents an InsertTargetPoolRequest. */
                class InsertTargetPoolRequest implements IInsertTargetPoolRequest {

                    /**
                     * Constructs a new InsertTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertTargetPoolRequest);

                    /** InsertTargetPoolRequest project. */
                    public project: string;

                    /** InsertTargetPoolRequest region. */
                    public region: string;

                    /** InsertTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetPoolRequest targetPoolResource. */
                    public targetPoolResource?: (google.cloud.compute.v1.ITargetPool|null);

                    /**
                     * Creates a new InsertTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertTargetPoolRequest): google.cloud.compute.v1.InsertTargetPoolRequest;

                    /**
                     * Encodes the specified InsertTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertTargetPoolRequest.verify|verify} messages.
                     * @param message InsertTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertTargetPoolRequest.verify|verify} messages.
                     * @param message InsertTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertTargetPoolRequest;

                    /**
                     * Decodes an InsertTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertTargetPoolRequest;

                    /**
                     * Verifies an InsertTargetPoolRequest message.
                     * @param message Plain 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 InsertTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertTargetPoolRequest;

                    /**
                     * Creates a plain object from an InsertTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetSslProxyRequest. */
                interface IInsertTargetSslProxyRequest {

                    /** InsertTargetSslProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetSslProxyRequest targetSslProxyResource */
                    targetSslProxyResource?: (google.cloud.compute.v1.ITargetSslProxy|null);
                }

                /** Represents an InsertTargetSslProxyRequest. */
                class InsertTargetSslProxyRequest implements IInsertTargetSslProxyRequest {

                    /**
                     * Constructs a new InsertTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertTargetSslProxyRequest);

                    /** InsertTargetSslProxyRequest project. */
                    public project: string;

                    /** InsertTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetSslProxyRequest targetSslProxyResource. */
                    public targetSslProxyResource?: (google.cloud.compute.v1.ITargetSslProxy|null);

                    /**
                     * Creates a new InsertTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertTargetSslProxyRequest): google.cloud.compute.v1.InsertTargetSslProxyRequest;

                    /**
                     * Encodes the specified InsertTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertTargetSslProxyRequest.verify|verify} messages.
                     * @param message InsertTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertTargetSslProxyRequest.verify|verify} messages.
                     * @param message InsertTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertTargetSslProxyRequest;

                    /**
                     * Decodes an InsertTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertTargetSslProxyRequest;

                    /**
                     * Verifies an InsertTargetSslProxyRequest message.
                     * @param message Plain 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 InsertTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertTargetSslProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetTcpProxyRequest. */
                interface IInsertTargetTcpProxyRequest {

                    /** InsertTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetTcpProxyRequest targetTcpProxyResource */
                    targetTcpProxyResource?: (google.cloud.compute.v1.ITargetTcpProxy|null);
                }

                /** Represents an InsertTargetTcpProxyRequest. */
                class InsertTargetTcpProxyRequest implements IInsertTargetTcpProxyRequest {

                    /**
                     * Constructs a new InsertTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertTargetTcpProxyRequest);

                    /** InsertTargetTcpProxyRequest project. */
                    public project: string;

                    /** InsertTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetTcpProxyRequest targetTcpProxyResource. */
                    public targetTcpProxyResource?: (google.cloud.compute.v1.ITargetTcpProxy|null);

                    /**
                     * Creates a new InsertTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertTargetTcpProxyRequest): google.cloud.compute.v1.InsertTargetTcpProxyRequest;

                    /**
                     * Encodes the specified InsertTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertTargetTcpProxyRequest.verify|verify} messages.
                     * @param message InsertTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertTargetTcpProxyRequest.verify|verify} messages.
                     * @param message InsertTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertTargetTcpProxyRequest;

                    /**
                     * Decodes an InsertTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertTargetTcpProxyRequest;

                    /**
                     * Verifies an InsertTargetTcpProxyRequest message.
                     * @param message Plain 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 InsertTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetVpnGatewayRequest. */
                interface IInsertTargetVpnGatewayRequest {

                    /** InsertTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** InsertTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** InsertTargetVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetVpnGatewayRequest targetVpnGatewayResource */
                    targetVpnGatewayResource?: (google.cloud.compute.v1.ITargetVpnGateway|null);
                }

                /** Represents an InsertTargetVpnGatewayRequest. */
                class InsertTargetVpnGatewayRequest implements IInsertTargetVpnGatewayRequest {

                    /**
                     * Constructs a new InsertTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertTargetVpnGatewayRequest);

                    /** InsertTargetVpnGatewayRequest project. */
                    public project: string;

                    /** InsertTargetVpnGatewayRequest region. */
                    public region: string;

                    /** InsertTargetVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetVpnGatewayRequest targetVpnGatewayResource. */
                    public targetVpnGatewayResource?: (google.cloud.compute.v1.ITargetVpnGateway|null);

                    /**
                     * Creates a new InsertTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertTargetVpnGatewayRequest): google.cloud.compute.v1.InsertTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified InsertTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertTargetVpnGatewayRequest;

                    /**
                     * Decodes an InsertTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertTargetVpnGatewayRequest;

                    /**
                     * Verifies an InsertTargetVpnGatewayRequest message.
                     * @param message Plain 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 InsertTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from an InsertTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertUrlMapRequest. */
                interface IInsertUrlMapRequest {

                    /** InsertUrlMapRequest project */
                    project?: (string|null);

                    /** InsertUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** InsertUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);
                }

                /** Represents an InsertUrlMapRequest. */
                class InsertUrlMapRequest implements IInsertUrlMapRequest {

                    /**
                     * Constructs a new InsertUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertUrlMapRequest);

                    /** InsertUrlMapRequest project. */
                    public project: string;

                    /** InsertUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);

                    /**
                     * Creates a new InsertUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertUrlMapRequest): google.cloud.compute.v1.InsertUrlMapRequest;

                    /**
                     * Encodes the specified InsertUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertUrlMapRequest.verify|verify} messages.
                     * @param message InsertUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertUrlMapRequest.verify|verify} messages.
                     * @param message InsertUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertUrlMapRequest;

                    /**
                     * Decodes an InsertUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertUrlMapRequest;

                    /**
                     * Verifies an InsertUrlMapRequest message.
                     * @param message Plain 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 InsertUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertUrlMapRequest;

                    /**
                     * Creates a plain object from an InsertUrlMapRequest message. Also converts values to other types if specified.
                     * @param message InsertUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertVpnGatewayRequest. */
                interface IInsertVpnGatewayRequest {

                    /** InsertVpnGatewayRequest project */
                    project?: (string|null);

                    /** InsertVpnGatewayRequest region */
                    region?: (string|null);

                    /** InsertVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** InsertVpnGatewayRequest vpnGatewayResource */
                    vpnGatewayResource?: (google.cloud.compute.v1.IVpnGateway|null);
                }

                /** Represents an InsertVpnGatewayRequest. */
                class InsertVpnGatewayRequest implements IInsertVpnGatewayRequest {

                    /**
                     * Constructs a new InsertVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertVpnGatewayRequest);

                    /** InsertVpnGatewayRequest project. */
                    public project: string;

                    /** InsertVpnGatewayRequest region. */
                    public region: string;

                    /** InsertVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertVpnGatewayRequest vpnGatewayResource. */
                    public vpnGatewayResource?: (google.cloud.compute.v1.IVpnGateway|null);

                    /**
                     * Creates a new InsertVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertVpnGatewayRequest): google.cloud.compute.v1.InsertVpnGatewayRequest;

                    /**
                     * Encodes the specified InsertVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertVpnGatewayRequest;

                    /**
                     * Decodes an InsertVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertVpnGatewayRequest;

                    /**
                     * Verifies an InsertVpnGatewayRequest message.
                     * @param message Plain 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 InsertVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertVpnGatewayRequest;

                    /**
                     * Creates a plain object from an InsertVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message InsertVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertVpnTunnelRequest. */
                interface IInsertVpnTunnelRequest {

                    /** InsertVpnTunnelRequest project */
                    project?: (string|null);

                    /** InsertVpnTunnelRequest region */
                    region?: (string|null);

                    /** InsertVpnTunnelRequest requestId */
                    requestId?: (string|null);

                    /** InsertVpnTunnelRequest vpnTunnelResource */
                    vpnTunnelResource?: (google.cloud.compute.v1.IVpnTunnel|null);
                }

                /** Represents an InsertVpnTunnelRequest. */
                class InsertVpnTunnelRequest implements IInsertVpnTunnelRequest {

                    /**
                     * Constructs a new InsertVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertVpnTunnelRequest);

                    /** InsertVpnTunnelRequest project. */
                    public project: string;

                    /** InsertVpnTunnelRequest region. */
                    public region: string;

                    /** InsertVpnTunnelRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertVpnTunnelRequest vpnTunnelResource. */
                    public vpnTunnelResource?: (google.cloud.compute.v1.IVpnTunnel|null);

                    /**
                     * Creates a new InsertVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertVpnTunnelRequest): google.cloud.compute.v1.InsertVpnTunnelRequest;

                    /**
                     * Encodes the specified InsertVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertVpnTunnelRequest.verify|verify} messages.
                     * @param message InsertVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertVpnTunnelRequest.verify|verify} messages.
                     * @param message InsertVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertVpnTunnelRequest;

                    /**
                     * Decodes an InsertVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertVpnTunnelRequest;

                    /**
                     * Verifies an InsertVpnTunnelRequest message.
                     * @param message Plain 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 InsertVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertVpnTunnelRequest;

                    /**
                     * Creates a plain object from an InsertVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message InsertVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertWireGroupRequest. */
                interface IInsertWireGroupRequest {

                    /** InsertWireGroupRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** InsertWireGroupRequest project */
                    project?: (string|null);

                    /** InsertWireGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertWireGroupRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** InsertWireGroupRequest wireGroupResource */
                    wireGroupResource?: (google.cloud.compute.v1.IWireGroup|null);
                }

                /** Represents an InsertWireGroupRequest. */
                class InsertWireGroupRequest implements IInsertWireGroupRequest {

                    /**
                     * Constructs a new InsertWireGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInsertWireGroupRequest);

                    /** InsertWireGroupRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** InsertWireGroupRequest project. */
                    public project: string;

                    /** InsertWireGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertWireGroupRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /** InsertWireGroupRequest wireGroupResource. */
                    public wireGroupResource?: (google.cloud.compute.v1.IWireGroup|null);

                    /**
                     * Creates a new InsertWireGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertWireGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInsertWireGroupRequest): google.cloud.compute.v1.InsertWireGroupRequest;

                    /**
                     * Encodes the specified InsertWireGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.InsertWireGroupRequest.verify|verify} messages.
                     * @param message InsertWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInsertWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertWireGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InsertWireGroupRequest.verify|verify} messages.
                     * @param message InsertWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInsertWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertWireGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InsertWireGroupRequest;

                    /**
                     * Decodes an InsertWireGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InsertWireGroupRequest;

                    /**
                     * Verifies an InsertWireGroupRequest message.
                     * @param message Plain 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 InsertWireGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertWireGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InsertWireGroupRequest;

                    /**
                     * Creates a plain object from an InsertWireGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertWireGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InsertWireGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertWireGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertWireGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Instance. */
                interface IInstance {

                    /** Instance advancedMachineFeatures */
                    advancedMachineFeatures?: (google.cloud.compute.v1.IAdvancedMachineFeatures|null);

                    /** Instance canIpForward */
                    canIpForward?: (boolean|null);

                    /** Instance confidentialInstanceConfig */
                    confidentialInstanceConfig?: (google.cloud.compute.v1.IConfidentialInstanceConfig|null);

                    /** Instance cpuPlatform */
                    cpuPlatform?: (string|null);

                    /** Instance creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Instance deletionProtection */
                    deletionProtection?: (boolean|null);

                    /** Instance description */
                    description?: (string|null);

                    /** Instance disks */
                    disks?: (google.cloud.compute.v1.IAttachedDisk[]|null);

                    /** Instance displayDevice */
                    displayDevice?: (google.cloud.compute.v1.IDisplayDevice|null);

                    /** Instance fingerprint */
                    fingerprint?: (string|null);

                    /** Instance guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1.IAcceleratorConfig[]|null);

                    /** Instance hostname */
                    hostname?: (string|null);

                    /** Instance id */
                    id?: (number|Long|string|null);

                    /** Instance instanceEncryptionKey */
                    instanceEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Instance keyRevocationActionType */
                    keyRevocationActionType?: (string|null);

                    /** Instance kind */
                    kind?: (string|null);

                    /** Instance labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Instance labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Instance lastStartTimestamp */
                    lastStartTimestamp?: (string|null);

                    /** Instance lastStopTimestamp */
                    lastStopTimestamp?: (string|null);

                    /** Instance lastSuspendedTimestamp */
                    lastSuspendedTimestamp?: (string|null);

                    /** Instance machineType */
                    machineType?: (string|null);

                    /** Instance metadata */
                    metadata?: (google.cloud.compute.v1.IMetadata|null);

                    /** Instance minCpuPlatform */
                    minCpuPlatform?: (string|null);

                    /** Instance name */
                    name?: (string|null);

                    /** Instance networkInterfaces */
                    networkInterfaces?: (google.cloud.compute.v1.INetworkInterface[]|null);

                    /** Instance networkPerformanceConfig */
                    networkPerformanceConfig?: (google.cloud.compute.v1.INetworkPerformanceConfig|null);

                    /** Instance params */
                    params?: (google.cloud.compute.v1.IInstanceParams|null);

                    /** Instance privateIpv6GoogleAccess */
                    privateIpv6GoogleAccess?: (string|null);

                    /** Instance reservationAffinity */
                    reservationAffinity?: (google.cloud.compute.v1.IReservationAffinity|null);

                    /** Instance resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** Instance resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1.IResourceStatus|null);

                    /** Instance satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** Instance satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Instance scheduling */
                    scheduling?: (google.cloud.compute.v1.IScheduling|null);

                    /** Instance selfLink */
                    selfLink?: (string|null);

                    /** Instance serviceAccounts */
                    serviceAccounts?: (google.cloud.compute.v1.IServiceAccount[]|null);

                    /** Instance shieldedInstanceConfig */
                    shieldedInstanceConfig?: (google.cloud.compute.v1.IShieldedInstanceConfig|null);

                    /** Instance shieldedInstanceIntegrityPolicy */
                    shieldedInstanceIntegrityPolicy?: (google.cloud.compute.v1.IShieldedInstanceIntegrityPolicy|null);

                    /** Instance sourceMachineImage */
                    sourceMachineImage?: (string|null);

                    /** Instance sourceMachineImageEncryptionKey */
                    sourceMachineImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Instance startRestricted */
                    startRestricted?: (boolean|null);

                    /** Instance status */
                    status?: (string|null);

                    /** Instance statusMessage */
                    statusMessage?: (string|null);

                    /** Instance tags */
                    tags?: (google.cloud.compute.v1.ITags|null);

                    /** Instance workloadIdentityConfig */
                    workloadIdentityConfig?: (google.cloud.compute.v1.IWorkloadIdentityConfig|null);

                    /** Instance zone */
                    zone?: (string|null);
                }

                /** Represents an Instance. */
                class Instance implements IInstance {

                    /**
                     * Constructs a new Instance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstance);

                    /** Instance advancedMachineFeatures. */
                    public advancedMachineFeatures?: (google.cloud.compute.v1.IAdvancedMachineFeatures|null);

                    /** Instance canIpForward. */
                    public canIpForward?: (boolean|null);

                    /** Instance confidentialInstanceConfig. */
                    public confidentialInstanceConfig?: (google.cloud.compute.v1.IConfidentialInstanceConfig|null);

                    /** Instance cpuPlatform. */
                    public cpuPlatform?: (string|null);

                    /** Instance creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Instance deletionProtection. */
                    public deletionProtection?: (boolean|null);

                    /** Instance description. */
                    public description?: (string|null);

                    /** Instance disks. */
                    public disks: google.cloud.compute.v1.IAttachedDisk[];

                    /** Instance displayDevice. */
                    public displayDevice?: (google.cloud.compute.v1.IDisplayDevice|null);

                    /** Instance fingerprint. */
                    public fingerprint?: (string|null);

                    /** Instance guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1.IAcceleratorConfig[];

                    /** Instance hostname. */
                    public hostname?: (string|null);

                    /** Instance id. */
                    public id?: (number|Long|string|null);

                    /** Instance instanceEncryptionKey. */
                    public instanceEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Instance keyRevocationActionType. */
                    public keyRevocationActionType?: (string|null);

                    /** Instance kind. */
                    public kind?: (string|null);

                    /** Instance labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Instance labels. */
                    public labels: { [k: string]: string };

                    /** Instance lastStartTimestamp. */
                    public lastStartTimestamp?: (string|null);

                    /** Instance lastStopTimestamp. */
                    public lastStopTimestamp?: (string|null);

                    /** Instance lastSuspendedTimestamp. */
                    public lastSuspendedTimestamp?: (string|null);

                    /** Instance machineType. */
                    public machineType?: (string|null);

                    /** Instance metadata. */
                    public metadata?: (google.cloud.compute.v1.IMetadata|null);

                    /** Instance minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /** Instance name. */
                    public name?: (string|null);

                    /** Instance networkInterfaces. */
                    public networkInterfaces: google.cloud.compute.v1.INetworkInterface[];

                    /** Instance networkPerformanceConfig. */
                    public networkPerformanceConfig?: (google.cloud.compute.v1.INetworkPerformanceConfig|null);

                    /** Instance params. */
                    public params?: (google.cloud.compute.v1.IInstanceParams|null);

                    /** Instance privateIpv6GoogleAccess. */
                    public privateIpv6GoogleAccess?: (string|null);

                    /** Instance reservationAffinity. */
                    public reservationAffinity?: (google.cloud.compute.v1.IReservationAffinity|null);

                    /** Instance resourcePolicies. */
                    public resourcePolicies: string[];

                    /** Instance resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1.IResourceStatus|null);

                    /** Instance satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Instance satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Instance scheduling. */
                    public scheduling?: (google.cloud.compute.v1.IScheduling|null);

                    /** Instance selfLink. */
                    public selfLink?: (string|null);

                    /** Instance serviceAccounts. */
                    public serviceAccounts: google.cloud.compute.v1.IServiceAccount[];

                    /** Instance shieldedInstanceConfig. */
                    public shieldedInstanceConfig?: (google.cloud.compute.v1.IShieldedInstanceConfig|null);

                    /** Instance shieldedInstanceIntegrityPolicy. */
                    public shieldedInstanceIntegrityPolicy?: (google.cloud.compute.v1.IShieldedInstanceIntegrityPolicy|null);

                    /** Instance sourceMachineImage. */
                    public sourceMachineImage?: (string|null);

                    /** Instance sourceMachineImageEncryptionKey. */
                    public sourceMachineImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Instance startRestricted. */
                    public startRestricted?: (boolean|null);

                    /** Instance status. */
                    public status?: (string|null);

                    /** Instance statusMessage. */
                    public statusMessage?: (string|null);

                    /** Instance tags. */
                    public tags?: (google.cloud.compute.v1.ITags|null);

                    /** Instance workloadIdentityConfig. */
                    public workloadIdentityConfig?: (google.cloud.compute.v1.IWorkloadIdentityConfig|null);

                    /** Instance zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Instance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Instance instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstance): google.cloud.compute.v1.Instance;

                    /**
                     * Encodes the specified Instance message. Does not implicitly {@link google.cloud.compute.v1.Instance.verify|verify} messages.
                     * @param message Instance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Instance message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Instance.verify|verify} messages.
                     * @param message Instance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Instance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Instance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Instance;

                    /**
                     * Decodes an Instance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Instance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Instance;

                    /**
                     * Verifies an Instance message.
                     * @param message Plain 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 Instance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Instance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Instance;

                    /**
                     * Creates a plain object from an Instance message. Also converts values to other types if specified.
                     * @param message Instance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Instance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Instance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Instance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Instance {

                    /** KeyRevocationActionType enum. */
                    enum KeyRevocationActionType {
                        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0,
                        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106,
                        NONE = 2402104,
                        STOP = 2555906
                    }

                    /** PrivateIpv6GoogleAccess enum. */
                    enum PrivateIpv6GoogleAccess {
                        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0,
                        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994,
                        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263,
                        INHERIT_FROM_SUBNETWORK = 530256959
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DEPROVISIONING = 428935662,
                        PENDING = 35394935,
                        PROVISIONING = 290896621,
                        REPAIRING = 413483285,
                        RUNNING = 121282975,
                        STAGING = 431072283,
                        STOPPED = 444276141,
                        STOPPING = 350791796,
                        SUSPENDED = 51223995,
                        SUSPENDING = 514206246,
                        TERMINATED = 250018339
                    }
                }

                /** Properties of an InstanceAggregatedList. */
                interface IInstanceAggregatedList {

                    /** InstanceAggregatedList id */
                    id?: (string|null);

                    /** InstanceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IInstancesScopedList }|null);

                    /** InstanceAggregatedList kind */
                    kind?: (string|null);

                    /** InstanceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstanceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InstanceAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceAggregatedList. */
                class InstanceAggregatedList implements IInstanceAggregatedList {

                    /**
                     * Constructs a new InstanceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceAggregatedList);

                    /** InstanceAggregatedList id. */
                    public id?: (string|null);

                    /** InstanceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IInstancesScopedList };

                    /** InstanceAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstanceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InstanceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceAggregatedList): google.cloud.compute.v1.InstanceAggregatedList;

                    /**
                     * Encodes the specified InstanceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.InstanceAggregatedList.verify|verify} messages.
                     * @param message InstanceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceAggregatedList.verify|verify} messages.
                     * @param message InstanceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceAggregatedList;

                    /**
                     * Decodes an InstanceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceAggregatedList;

                    /**
                     * Verifies an InstanceAggregatedList message.
                     * @param message Plain 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 InstanceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceAggregatedList;

                    /**
                     * Creates a plain object from an InstanceAggregatedList message. Also converts values to other types if specified.
                     * @param message InstanceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceConsumptionData. */
                interface IInstanceConsumptionData {

                    /** InstanceConsumptionData consumptionInfo */
                    consumptionInfo?: (google.cloud.compute.v1.IInstanceConsumptionInfo|null);

                    /** InstanceConsumptionData instance */
                    instance?: (string|null);
                }

                /** Represents an InstanceConsumptionData. */
                class InstanceConsumptionData implements IInstanceConsumptionData {

                    /**
                     * Constructs a new InstanceConsumptionData.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceConsumptionData);

                    /** InstanceConsumptionData consumptionInfo. */
                    public consumptionInfo?: (google.cloud.compute.v1.IInstanceConsumptionInfo|null);

                    /** InstanceConsumptionData instance. */
                    public instance?: (string|null);

                    /**
                     * Creates a new InstanceConsumptionData instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceConsumptionData instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceConsumptionData): google.cloud.compute.v1.InstanceConsumptionData;

                    /**
                     * Encodes the specified InstanceConsumptionData message. Does not implicitly {@link google.cloud.compute.v1.InstanceConsumptionData.verify|verify} messages.
                     * @param message InstanceConsumptionData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceConsumptionData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceConsumptionData message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceConsumptionData.verify|verify} messages.
                     * @param message InstanceConsumptionData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceConsumptionData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceConsumptionData message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceConsumptionData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceConsumptionData;

                    /**
                     * Decodes an InstanceConsumptionData message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceConsumptionData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceConsumptionData;

                    /**
                     * Verifies an InstanceConsumptionData message.
                     * @param message Plain 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 InstanceConsumptionData message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceConsumptionData
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceConsumptionData;

                    /**
                     * Creates a plain object from an InstanceConsumptionData message. Also converts values to other types if specified.
                     * @param message InstanceConsumptionData
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceConsumptionData, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceConsumptionData to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceConsumptionData
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceConsumptionInfo. */
                interface IInstanceConsumptionInfo {

                    /** InstanceConsumptionInfo guestCpus */
                    guestCpus?: (number|null);

                    /** InstanceConsumptionInfo localSsdGb */
                    localSsdGb?: (number|null);

                    /** InstanceConsumptionInfo memoryMb */
                    memoryMb?: (number|null);

                    /** InstanceConsumptionInfo minNodeCpus */
                    minNodeCpus?: (number|null);
                }

                /** Represents an InstanceConsumptionInfo. */
                class InstanceConsumptionInfo implements IInstanceConsumptionInfo {

                    /**
                     * Constructs a new InstanceConsumptionInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceConsumptionInfo);

                    /** InstanceConsumptionInfo guestCpus. */
                    public guestCpus?: (number|null);

                    /** InstanceConsumptionInfo localSsdGb. */
                    public localSsdGb?: (number|null);

                    /** InstanceConsumptionInfo memoryMb. */
                    public memoryMb?: (number|null);

                    /** InstanceConsumptionInfo minNodeCpus. */
                    public minNodeCpus?: (number|null);

                    /**
                     * Creates a new InstanceConsumptionInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceConsumptionInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceConsumptionInfo): google.cloud.compute.v1.InstanceConsumptionInfo;

                    /**
                     * Encodes the specified InstanceConsumptionInfo message. Does not implicitly {@link google.cloud.compute.v1.InstanceConsumptionInfo.verify|verify} messages.
                     * @param message InstanceConsumptionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceConsumptionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceConsumptionInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceConsumptionInfo.verify|verify} messages.
                     * @param message InstanceConsumptionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceConsumptionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceConsumptionInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceConsumptionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceConsumptionInfo;

                    /**
                     * Decodes an InstanceConsumptionInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceConsumptionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceConsumptionInfo;

                    /**
                     * Verifies an InstanceConsumptionInfo message.
                     * @param message Plain 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 InstanceConsumptionInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceConsumptionInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceConsumptionInfo;

                    /**
                     * Creates a plain object from an InstanceConsumptionInfo message. Also converts values to other types if specified.
                     * @param message InstanceConsumptionInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceConsumptionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceConsumptionInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceConsumptionInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceFlexibilityPolicy. */
                interface IInstanceFlexibilityPolicy {

                    /** InstanceFlexibilityPolicy instanceSelections */
                    instanceSelections?: ({ [k: string]: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection }|null);
                }

                /** Represents an InstanceFlexibilityPolicy. */
                class InstanceFlexibilityPolicy implements IInstanceFlexibilityPolicy {

                    /**
                     * Constructs a new InstanceFlexibilityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceFlexibilityPolicy);

                    /** InstanceFlexibilityPolicy instanceSelections. */
                    public instanceSelections: { [k: string]: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection };

                    /**
                     * Creates a new InstanceFlexibilityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceFlexibilityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceFlexibilityPolicy): google.cloud.compute.v1.InstanceFlexibilityPolicy;

                    /**
                     * Encodes the specified InstanceFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicy.verify|verify} messages.
                     * @param message InstanceFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicy.verify|verify} messages.
                     * @param message InstanceFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceFlexibilityPolicy;

                    /**
                     * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceFlexibilityPolicy;

                    /**
                     * Verifies an InstanceFlexibilityPolicy message.
                     * @param message Plain 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 InstanceFlexibilityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceFlexibilityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceFlexibilityPolicy;

                    /**
                     * Creates a plain object from an InstanceFlexibilityPolicy message. Also converts values to other types if specified.
                     * @param message InstanceFlexibilityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceFlexibilityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceFlexibilityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceFlexibilityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceFlexibilityPolicyInstanceSelection. */
                interface IInstanceFlexibilityPolicyInstanceSelection {

                    /** InstanceFlexibilityPolicyInstanceSelection disks */
                    disks?: (google.cloud.compute.v1.IAttachedDisk[]|null);

                    /** InstanceFlexibilityPolicyInstanceSelection machineTypes */
                    machineTypes?: (string[]|null);

                    /** InstanceFlexibilityPolicyInstanceSelection rank */
                    rank?: (number|Long|string|null);
                }

                /** Represents an InstanceFlexibilityPolicyInstanceSelection. */
                class InstanceFlexibilityPolicyInstanceSelection implements IInstanceFlexibilityPolicyInstanceSelection {

                    /**
                     * Constructs a new InstanceFlexibilityPolicyInstanceSelection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection);

                    /** InstanceFlexibilityPolicyInstanceSelection disks. */
                    public disks: google.cloud.compute.v1.IAttachedDisk[];

                    /** InstanceFlexibilityPolicyInstanceSelection machineTypes. */
                    public machineTypes: string[];

                    /** InstanceFlexibilityPolicyInstanceSelection rank. */
                    public rank?: (number|Long|string|null);

                    /**
                     * Creates a new InstanceFlexibilityPolicyInstanceSelection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceFlexibilityPolicyInstanceSelection instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection): google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages.
                     * @param message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages.
                     * @param message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceFlexibilityPolicyInstanceSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceFlexibilityPolicyInstanceSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Verifies an InstanceFlexibilityPolicyInstanceSelection message.
                     * @param message Plain 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 InstanceFlexibilityPolicyInstanceSelection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceFlexibilityPolicyInstanceSelection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Creates a plain object from an InstanceFlexibilityPolicyInstanceSelection message. Also converts values to other types if specified.
                     * @param message InstanceFlexibilityPolicyInstanceSelection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceFlexibilityPolicyInstanceSelection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceFlexibilityPolicyInstanceSelection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceFlexibilityPolicyInstanceSelection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroup. */
                interface IInstanceGroup {

                    /** InstanceGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstanceGroup description */
                    description?: (string|null);

                    /** InstanceGroup fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceGroup id */
                    id?: (number|Long|string|null);

                    /** InstanceGroup kind */
                    kind?: (string|null);

                    /** InstanceGroup name */
                    name?: (string|null);

                    /** InstanceGroup namedPorts */
                    namedPorts?: (google.cloud.compute.v1.INamedPort[]|null);

                    /** InstanceGroup network */
                    network?: (string|null);

                    /** InstanceGroup region */
                    region?: (string|null);

                    /** InstanceGroup selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroup size */
                    size?: (number|null);

                    /** InstanceGroup subnetwork */
                    subnetwork?: (string|null);

                    /** InstanceGroup zone */
                    zone?: (string|null);
                }

                /** Represents an InstanceGroup. */
                class InstanceGroup implements IInstanceGroup {

                    /**
                     * Constructs a new InstanceGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroup);

                    /** InstanceGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstanceGroup description. */
                    public description?: (string|null);

                    /** InstanceGroup fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceGroup id. */
                    public id?: (number|Long|string|null);

                    /** InstanceGroup kind. */
                    public kind?: (string|null);

                    /** InstanceGroup name. */
                    public name?: (string|null);

                    /** InstanceGroup namedPorts. */
                    public namedPorts: google.cloud.compute.v1.INamedPort[];

                    /** InstanceGroup network. */
                    public network?: (string|null);

                    /** InstanceGroup region. */
                    public region?: (string|null);

                    /** InstanceGroup selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroup size. */
                    public size?: (number|null);

                    /** InstanceGroup subnetwork. */
                    public subnetwork?: (string|null);

                    /** InstanceGroup zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstanceGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroup): google.cloud.compute.v1.InstanceGroup;

                    /**
                     * Encodes the specified InstanceGroup message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroup.verify|verify} messages.
                     * @param message InstanceGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroup.verify|verify} messages.
                     * @param message InstanceGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroup;

                    /**
                     * Decodes an InstanceGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroup;

                    /**
                     * Verifies an InstanceGroup message.
                     * @param message Plain 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 InstanceGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroup;

                    /**
                     * Creates a plain object from an InstanceGroup message. Also converts values to other types if specified.
                     * @param message InstanceGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupAggregatedList. */
                interface IInstanceGroupAggregatedList {

                    /** InstanceGroupAggregatedList id */
                    id?: (string|null);

                    /** InstanceGroupAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IInstanceGroupsScopedList }|null);

                    /** InstanceGroupAggregatedList kind */
                    kind?: (string|null);

                    /** InstanceGroupAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InstanceGroupAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupAggregatedList. */
                class InstanceGroupAggregatedList implements IInstanceGroupAggregatedList {

                    /**
                     * Constructs a new InstanceGroupAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupAggregatedList);

                    /** InstanceGroupAggregatedList id. */
                    public id?: (string|null);

                    /** InstanceGroupAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IInstanceGroupsScopedList };

                    /** InstanceGroupAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstanceGroupAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InstanceGroupAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupAggregatedList): google.cloud.compute.v1.InstanceGroupAggregatedList;

                    /**
                     * Encodes the specified InstanceGroupAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupAggregatedList.verify|verify} messages.
                     * @param message InstanceGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupAggregatedList.verify|verify} messages.
                     * @param message InstanceGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupAggregatedList;

                    /**
                     * Decodes an InstanceGroupAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupAggregatedList;

                    /**
                     * Verifies an InstanceGroupAggregatedList message.
                     * @param message Plain 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 InstanceGroupAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupAggregatedList;

                    /**
                     * Creates a plain object from an InstanceGroupAggregatedList message. Also converts values to other types if specified.
                     * @param message InstanceGroupAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupList. */
                interface IInstanceGroupList {

                    /** InstanceGroupList id */
                    id?: (string|null);

                    /** InstanceGroupList items */
                    items?: (google.cloud.compute.v1.IInstanceGroup[]|null);

                    /** InstanceGroupList kind */
                    kind?: (string|null);

                    /** InstanceGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupList selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupList. */
                class InstanceGroupList implements IInstanceGroupList {

                    /**
                     * Constructs a new InstanceGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupList);

                    /** InstanceGroupList id. */
                    public id?: (string|null);

                    /** InstanceGroupList items. */
                    public items: google.cloud.compute.v1.IInstanceGroup[];

                    /** InstanceGroupList kind. */
                    public kind?: (string|null);

                    /** InstanceGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupList): google.cloud.compute.v1.InstanceGroupList;

                    /**
                     * Encodes the specified InstanceGroupList message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupList.verify|verify} messages.
                     * @param message InstanceGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupList.verify|verify} messages.
                     * @param message InstanceGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupList;

                    /**
                     * Decodes an InstanceGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupList;

                    /**
                     * Verifies an InstanceGroupList message.
                     * @param message Plain 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 InstanceGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupList;

                    /**
                     * Creates a plain object from an InstanceGroupList message. Also converts values to other types if specified.
                     * @param message InstanceGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManager. */
                interface IInstanceGroupManager {

                    /** InstanceGroupManager allInstancesConfig */
                    allInstancesConfig?: (google.cloud.compute.v1.IInstanceGroupManagerAllInstancesConfig|null);

                    /** InstanceGroupManager autoHealingPolicies */
                    autoHealingPolicies?: (google.cloud.compute.v1.IInstanceGroupManagerAutoHealingPolicy[]|null);

                    /** InstanceGroupManager baseInstanceName */
                    baseInstanceName?: (string|null);

                    /** InstanceGroupManager creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstanceGroupManager currentActions */
                    currentActions?: (google.cloud.compute.v1.IInstanceGroupManagerActionsSummary|null);

                    /** InstanceGroupManager description */
                    description?: (string|null);

                    /** InstanceGroupManager distributionPolicy */
                    distributionPolicy?: (google.cloud.compute.v1.IDistributionPolicy|null);

                    /** InstanceGroupManager fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceGroupManager id */
                    id?: (number|Long|string|null);

                    /** InstanceGroupManager instanceFlexibilityPolicy */
                    instanceFlexibilityPolicy?: (google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicy|null);

                    /** InstanceGroupManager instanceGroup */
                    instanceGroup?: (string|null);

                    /** InstanceGroupManager instanceLifecyclePolicy */
                    instanceLifecyclePolicy?: (google.cloud.compute.v1.IInstanceGroupManagerInstanceLifecyclePolicy|null);

                    /** InstanceGroupManager instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** InstanceGroupManager kind */
                    kind?: (string|null);

                    /** InstanceGroupManager listManagedInstancesResults */
                    listManagedInstancesResults?: (string|null);

                    /** InstanceGroupManager name */
                    name?: (string|null);

                    /** InstanceGroupManager namedPorts */
                    namedPorts?: (google.cloud.compute.v1.INamedPort[]|null);

                    /** InstanceGroupManager region */
                    region?: (string|null);

                    /** InstanceGroupManager resourcePolicies */
                    resourcePolicies?: (google.cloud.compute.v1.IInstanceGroupManagerResourcePolicies|null);

                    /** InstanceGroupManager satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** InstanceGroupManager satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** InstanceGroupManager selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManager standbyPolicy */
                    standbyPolicy?: (google.cloud.compute.v1.IInstanceGroupManagerStandbyPolicy|null);

                    /** InstanceGroupManager statefulPolicy */
                    statefulPolicy?: (google.cloud.compute.v1.IStatefulPolicy|null);

                    /** InstanceGroupManager status */
                    status?: (google.cloud.compute.v1.IInstanceGroupManagerStatus|null);

                    /** InstanceGroupManager targetPools */
                    targetPools?: (string[]|null);

                    /** InstanceGroupManager targetSize */
                    targetSize?: (number|null);

                    /** InstanceGroupManager targetSizePolicy */
                    targetSizePolicy?: (google.cloud.compute.v1.IInstanceGroupManagerTargetSizePolicy|null);

                    /** InstanceGroupManager targetStoppedSize */
                    targetStoppedSize?: (number|null);

                    /** InstanceGroupManager targetSuspendedSize */
                    targetSuspendedSize?: (number|null);

                    /** InstanceGroupManager updatePolicy */
                    updatePolicy?: (google.cloud.compute.v1.IInstanceGroupManagerUpdatePolicy|null);

                    /** InstanceGroupManager versions */
                    versions?: (google.cloud.compute.v1.IInstanceGroupManagerVersion[]|null);

                    /** InstanceGroupManager zone */
                    zone?: (string|null);
                }

                /** Represents an InstanceGroupManager. */
                class InstanceGroupManager implements IInstanceGroupManager {

                    /**
                     * Constructs a new InstanceGroupManager.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManager);

                    /** InstanceGroupManager allInstancesConfig. */
                    public allInstancesConfig?: (google.cloud.compute.v1.IInstanceGroupManagerAllInstancesConfig|null);

                    /** InstanceGroupManager autoHealingPolicies. */
                    public autoHealingPolicies: google.cloud.compute.v1.IInstanceGroupManagerAutoHealingPolicy[];

                    /** InstanceGroupManager baseInstanceName. */
                    public baseInstanceName?: (string|null);

                    /** InstanceGroupManager creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstanceGroupManager currentActions. */
                    public currentActions?: (google.cloud.compute.v1.IInstanceGroupManagerActionsSummary|null);

                    /** InstanceGroupManager description. */
                    public description?: (string|null);

                    /** InstanceGroupManager distributionPolicy. */
                    public distributionPolicy?: (google.cloud.compute.v1.IDistributionPolicy|null);

                    /** InstanceGroupManager fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceGroupManager id. */
                    public id?: (number|Long|string|null);

                    /** InstanceGroupManager instanceFlexibilityPolicy. */
                    public instanceFlexibilityPolicy?: (google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicy|null);

                    /** InstanceGroupManager instanceGroup. */
                    public instanceGroup?: (string|null);

                    /** InstanceGroupManager instanceLifecyclePolicy. */
                    public instanceLifecyclePolicy?: (google.cloud.compute.v1.IInstanceGroupManagerInstanceLifecyclePolicy|null);

                    /** InstanceGroupManager instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /** InstanceGroupManager kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManager listManagedInstancesResults. */
                    public listManagedInstancesResults?: (string|null);

                    /** InstanceGroupManager name. */
                    public name?: (string|null);

                    /** InstanceGroupManager namedPorts. */
                    public namedPorts: google.cloud.compute.v1.INamedPort[];

                    /** InstanceGroupManager region. */
                    public region?: (string|null);

                    /** InstanceGroupManager resourcePolicies. */
                    public resourcePolicies?: (google.cloud.compute.v1.IInstanceGroupManagerResourcePolicies|null);

                    /** InstanceGroupManager satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** InstanceGroupManager satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** InstanceGroupManager selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManager standbyPolicy. */
                    public standbyPolicy?: (google.cloud.compute.v1.IInstanceGroupManagerStandbyPolicy|null);

                    /** InstanceGroupManager statefulPolicy. */
                    public statefulPolicy?: (google.cloud.compute.v1.IStatefulPolicy|null);

                    /** InstanceGroupManager status. */
                    public status?: (google.cloud.compute.v1.IInstanceGroupManagerStatus|null);

                    /** InstanceGroupManager targetPools. */
                    public targetPools: string[];

                    /** InstanceGroupManager targetSize. */
                    public targetSize?: (number|null);

                    /** InstanceGroupManager targetSizePolicy. */
                    public targetSizePolicy?: (google.cloud.compute.v1.IInstanceGroupManagerTargetSizePolicy|null);

                    /** InstanceGroupManager targetStoppedSize. */
                    public targetStoppedSize?: (number|null);

                    /** InstanceGroupManager targetSuspendedSize. */
                    public targetSuspendedSize?: (number|null);

                    /** InstanceGroupManager updatePolicy. */
                    public updatePolicy?: (google.cloud.compute.v1.IInstanceGroupManagerUpdatePolicy|null);

                    /** InstanceGroupManager versions. */
                    public versions: google.cloud.compute.v1.IInstanceGroupManagerVersion[];

                    /** InstanceGroupManager zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstanceGroupManager instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManager instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManager): google.cloud.compute.v1.InstanceGroupManager;

                    /**
                     * Encodes the specified InstanceGroupManager message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManager.verify|verify} messages.
                     * @param message InstanceGroupManager message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManager, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManager message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManager.verify|verify} messages.
                     * @param message InstanceGroupManager message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManager, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManager message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManager
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManager;

                    /**
                     * Decodes an InstanceGroupManager message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManager
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManager;

                    /**
                     * Verifies an InstanceGroupManager message.
                     * @param message Plain 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 InstanceGroupManager message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManager
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManager;

                    /**
                     * Creates a plain object from an InstanceGroupManager message. Also converts values to other types if specified.
                     * @param message InstanceGroupManager
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManager, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManager to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManager
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManager {

                    /** ListManagedInstancesResults enum. */
                    enum ListManagedInstancesResults {
                        UNDEFINED_LIST_MANAGED_INSTANCES_RESULTS = 0,
                        PAGELESS = 32183464,
                        PAGINATED = 40190637
                    }
                }

                /** Properties of an InstanceGroupManagerActionsSummary. */
                interface IInstanceGroupManagerActionsSummary {

                    /** InstanceGroupManagerActionsSummary abandoning */
                    abandoning?: (number|null);

                    /** InstanceGroupManagerActionsSummary creating */
                    creating?: (number|null);

                    /** InstanceGroupManagerActionsSummary creatingWithoutRetries */
                    creatingWithoutRetries?: (number|null);

                    /** InstanceGroupManagerActionsSummary deleting */
                    deleting?: (number|null);

                    /** InstanceGroupManagerActionsSummary none */
                    none?: (number|null);

                    /** InstanceGroupManagerActionsSummary recreating */
                    recreating?: (number|null);

                    /** InstanceGroupManagerActionsSummary refreshing */
                    refreshing?: (number|null);

                    /** InstanceGroupManagerActionsSummary restarting */
                    restarting?: (number|null);

                    /** InstanceGroupManagerActionsSummary resuming */
                    resuming?: (number|null);

                    /** InstanceGroupManagerActionsSummary starting */
                    starting?: (number|null);

                    /** InstanceGroupManagerActionsSummary stopping */
                    stopping?: (number|null);

                    /** InstanceGroupManagerActionsSummary suspending */
                    suspending?: (number|null);

                    /** InstanceGroupManagerActionsSummary verifying */
                    verifying?: (number|null);
                }

                /** Represents an InstanceGroupManagerActionsSummary. */
                class InstanceGroupManagerActionsSummary implements IInstanceGroupManagerActionsSummary {

                    /**
                     * Constructs a new InstanceGroupManagerActionsSummary.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerActionsSummary);

                    /** InstanceGroupManagerActionsSummary abandoning. */
                    public abandoning?: (number|null);

                    /** InstanceGroupManagerActionsSummary creating. */
                    public creating?: (number|null);

                    /** InstanceGroupManagerActionsSummary creatingWithoutRetries. */
                    public creatingWithoutRetries?: (number|null);

                    /** InstanceGroupManagerActionsSummary deleting. */
                    public deleting?: (number|null);

                    /** InstanceGroupManagerActionsSummary none. */
                    public none?: (number|null);

                    /** InstanceGroupManagerActionsSummary recreating. */
                    public recreating?: (number|null);

                    /** InstanceGroupManagerActionsSummary refreshing. */
                    public refreshing?: (number|null);

                    /** InstanceGroupManagerActionsSummary restarting. */
                    public restarting?: (number|null);

                    /** InstanceGroupManagerActionsSummary resuming. */
                    public resuming?: (number|null);

                    /** InstanceGroupManagerActionsSummary starting. */
                    public starting?: (number|null);

                    /** InstanceGroupManagerActionsSummary stopping. */
                    public stopping?: (number|null);

                    /** InstanceGroupManagerActionsSummary suspending. */
                    public suspending?: (number|null);

                    /** InstanceGroupManagerActionsSummary verifying. */
                    public verifying?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagerActionsSummary instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerActionsSummary instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerActionsSummary): google.cloud.compute.v1.InstanceGroupManagerActionsSummary;

                    /**
                     * Encodes the specified InstanceGroupManagerActionsSummary message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerActionsSummary.verify|verify} messages.
                     * @param message InstanceGroupManagerActionsSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerActionsSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerActionsSummary message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerActionsSummary.verify|verify} messages.
                     * @param message InstanceGroupManagerActionsSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerActionsSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerActionsSummary message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerActionsSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerActionsSummary;

                    /**
                     * Decodes an InstanceGroupManagerActionsSummary message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerActionsSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerActionsSummary;

                    /**
                     * Verifies an InstanceGroupManagerActionsSummary message.
                     * @param message Plain 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 InstanceGroupManagerActionsSummary message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerActionsSummary
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerActionsSummary;

                    /**
                     * Creates a plain object from an InstanceGroupManagerActionsSummary message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerActionsSummary
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerActionsSummary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerActionsSummary to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerActionsSummary
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerAggregatedList. */
                interface IInstanceGroupManagerAggregatedList {

                    /** InstanceGroupManagerAggregatedList id */
                    id?: (string|null);

                    /** InstanceGroupManagerAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IInstanceGroupManagersScopedList }|null);

                    /** InstanceGroupManagerAggregatedList kind */
                    kind?: (string|null);

                    /** InstanceGroupManagerAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupManagerAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManagerAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InstanceGroupManagerAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupManagerAggregatedList. */
                class InstanceGroupManagerAggregatedList implements IInstanceGroupManagerAggregatedList {

                    /**
                     * Constructs a new InstanceGroupManagerAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerAggregatedList);

                    /** InstanceGroupManagerAggregatedList id. */
                    public id?: (string|null);

                    /** InstanceGroupManagerAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IInstanceGroupManagersScopedList };

                    /** InstanceGroupManagerAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManagerAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupManagerAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManagerAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InstanceGroupManagerAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagerAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerAggregatedList): google.cloud.compute.v1.InstanceGroupManagerAggregatedList;

                    /**
                     * Encodes the specified InstanceGroupManagerAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerAggregatedList.verify|verify} messages.
                     * @param message InstanceGroupManagerAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerAggregatedList.verify|verify} messages.
                     * @param message InstanceGroupManagerAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerAggregatedList;

                    /**
                     * Decodes an InstanceGroupManagerAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerAggregatedList;

                    /**
                     * Verifies an InstanceGroupManagerAggregatedList message.
                     * @param message Plain 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 InstanceGroupManagerAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerAggregatedList;

                    /**
                     * Creates a plain object from an InstanceGroupManagerAggregatedList message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerAllInstancesConfig. */
                interface IInstanceGroupManagerAllInstancesConfig {

                    /** InstanceGroupManagerAllInstancesConfig properties */
                    properties?: (google.cloud.compute.v1.IInstancePropertiesPatch|null);
                }

                /** Represents an InstanceGroupManagerAllInstancesConfig. */
                class InstanceGroupManagerAllInstancesConfig implements IInstanceGroupManagerAllInstancesConfig {

                    /**
                     * Constructs a new InstanceGroupManagerAllInstancesConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerAllInstancesConfig);

                    /** InstanceGroupManagerAllInstancesConfig properties. */
                    public properties?: (google.cloud.compute.v1.IInstancePropertiesPatch|null);

                    /**
                     * Creates a new InstanceGroupManagerAllInstancesConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerAllInstancesConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerAllInstancesConfig): google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfig;

                    /**
                     * Encodes the specified InstanceGroupManagerAllInstancesConfig message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfig.verify|verify} messages.
                     * @param message InstanceGroupManagerAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerAllInstancesConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfig.verify|verify} messages.
                     * @param message InstanceGroupManagerAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerAllInstancesConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfig;

                    /**
                     * Decodes an InstanceGroupManagerAllInstancesConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfig;

                    /**
                     * Verifies an InstanceGroupManagerAllInstancesConfig message.
                     * @param message Plain 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 InstanceGroupManagerAllInstancesConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerAllInstancesConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfig;

                    /**
                     * Creates a plain object from an InstanceGroupManagerAllInstancesConfig message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerAllInstancesConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerAllInstancesConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerAllInstancesConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerAutoHealingPolicy. */
                interface IInstanceGroupManagerAutoHealingPolicy {

                    /** InstanceGroupManagerAutoHealingPolicy healthCheck */
                    healthCheck?: (string|null);

                    /** InstanceGroupManagerAutoHealingPolicy initialDelaySec */
                    initialDelaySec?: (number|null);
                }

                /** Represents an InstanceGroupManagerAutoHealingPolicy. */
                class InstanceGroupManagerAutoHealingPolicy implements IInstanceGroupManagerAutoHealingPolicy {

                    /**
                     * Constructs a new InstanceGroupManagerAutoHealingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerAutoHealingPolicy);

                    /** InstanceGroupManagerAutoHealingPolicy healthCheck. */
                    public healthCheck?: (string|null);

                    /** InstanceGroupManagerAutoHealingPolicy initialDelaySec. */
                    public initialDelaySec?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagerAutoHealingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerAutoHealingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerAutoHealingPolicy): google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerAutoHealingPolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerAutoHealingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerAutoHealingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerAutoHealingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerAutoHealingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerAutoHealingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerAutoHealingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerAutoHealingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy;

                    /**
                     * Decodes an InstanceGroupManagerAutoHealingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerAutoHealingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy;

                    /**
                     * Verifies an InstanceGroupManagerAutoHealingPolicy message.
                     * @param message Plain 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 InstanceGroupManagerAutoHealingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerAutoHealingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerAutoHealingPolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerAutoHealingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerAutoHealingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerAutoHealingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerInstanceFlexibilityPolicy. */
                interface IInstanceGroupManagerInstanceFlexibilityPolicy {

                    /** InstanceGroupManagerInstanceFlexibilityPolicy instanceSelections */
                    instanceSelections?: ({ [k: string]: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection }|null);
                }

                /** Represents an InstanceGroupManagerInstanceFlexibilityPolicy. */
                class InstanceGroupManagerInstanceFlexibilityPolicy implements IInstanceGroupManagerInstanceFlexibilityPolicy {

                    /**
                     * Constructs a new InstanceGroupManagerInstanceFlexibilityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicy);

                    /** InstanceGroupManagerInstanceFlexibilityPolicy instanceSelections. */
                    public instanceSelections: { [k: string]: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection };

                    /**
                     * Creates a new InstanceGroupManagerInstanceFlexibilityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicy): google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy;

                    /**
                     * Verifies an InstanceGroupManagerInstanceFlexibilityPolicy message.
                     * @param message Plain 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 InstanceGroupManagerInstanceFlexibilityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerInstanceFlexibilityPolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerInstanceFlexibilityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerInstanceFlexibilityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection. */
                interface IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection {

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection machineTypes */
                    machineTypes?: (string[]|null);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection rank */
                    rank?: (number|null);
                }

                /** Represents an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection. */
                class InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection implements IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection {

                    /**
                     * Constructs a new InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection machineTypes. */
                    public machineTypes: string[];

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection rank. */
                    public rank?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection): google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Verifies an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message.
                     * @param message Plain 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 InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Creates a plain object from an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerInstanceLifecyclePolicy. */
                interface IInstanceGroupManagerInstanceLifecyclePolicy {

                    /** InstanceGroupManagerInstanceLifecyclePolicy defaultActionOnFailure */
                    defaultActionOnFailure?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy forceUpdateOnRepair */
                    forceUpdateOnRepair?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy onFailedHealthCheck */
                    onFailedHealthCheck?: (string|null);
                }

                /** Represents an InstanceGroupManagerInstanceLifecyclePolicy. */
                class InstanceGroupManagerInstanceLifecyclePolicy implements IInstanceGroupManagerInstanceLifecyclePolicy {

                    /**
                     * Constructs a new InstanceGroupManagerInstanceLifecyclePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerInstanceLifecyclePolicy);

                    /** InstanceGroupManagerInstanceLifecyclePolicy defaultActionOnFailure. */
                    public defaultActionOnFailure?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy forceUpdateOnRepair. */
                    public forceUpdateOnRepair?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy onFailedHealthCheck. */
                    public onFailedHealthCheck?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerInstanceLifecyclePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerInstanceLifecyclePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerInstanceLifecyclePolicy): google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceLifecyclePolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerInstanceLifecyclePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceLifecyclePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerInstanceLifecyclePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerInstanceLifecyclePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerInstanceLifecyclePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicy;

                    /**
                     * Decodes an InstanceGroupManagerInstanceLifecyclePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerInstanceLifecyclePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicy;

                    /**
                     * Verifies an InstanceGroupManagerInstanceLifecyclePolicy message.
                     * @param message Plain 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 InstanceGroupManagerInstanceLifecyclePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerInstanceLifecyclePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerInstanceLifecyclePolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerInstanceLifecyclePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerInstanceLifecyclePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerInstanceLifecyclePolicy {

                    /** DefaultActionOnFailure enum. */
                    enum DefaultActionOnFailure {
                        UNDEFINED_DEFAULT_ACTION_ON_FAILURE = 0,
                        DO_NOTHING = 451307513,
                        REPAIR = 266277773
                    }

                    /** ForceUpdateOnRepair enum. */
                    enum ForceUpdateOnRepair {
                        UNDEFINED_FORCE_UPDATE_ON_REPAIR = 0,
                        NO = 2497,
                        YES = 87751
                    }

                    /** OnFailedHealthCheck enum. */
                    enum OnFailedHealthCheck {
                        UNDEFINED_ON_FAILED_HEALTH_CHECK = 0,
                        DEFAULT_ACTION = 463967764
                    }
                }

                /** Properties of an InstanceGroupManagerList. */
                interface IInstanceGroupManagerList {

                    /** InstanceGroupManagerList id */
                    id?: (string|null);

                    /** InstanceGroupManagerList items */
                    items?: (google.cloud.compute.v1.IInstanceGroupManager[]|null);

                    /** InstanceGroupManagerList kind */
                    kind?: (string|null);

                    /** InstanceGroupManagerList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupManagerList selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManagerList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupManagerList. */
                class InstanceGroupManagerList implements IInstanceGroupManagerList {

                    /**
                     * Constructs a new InstanceGroupManagerList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerList);

                    /** InstanceGroupManagerList id. */
                    public id?: (string|null);

                    /** InstanceGroupManagerList items. */
                    public items: google.cloud.compute.v1.IInstanceGroupManager[];

                    /** InstanceGroupManagerList kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManagerList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupManagerList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManagerList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagerList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerList): google.cloud.compute.v1.InstanceGroupManagerList;

                    /**
                     * Encodes the specified InstanceGroupManagerList message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerList.verify|verify} messages.
                     * @param message InstanceGroupManagerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerList.verify|verify} messages.
                     * @param message InstanceGroupManagerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerList;

                    /**
                     * Decodes an InstanceGroupManagerList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerList;

                    /**
                     * Verifies an InstanceGroupManagerList message.
                     * @param message Plain 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 InstanceGroupManagerList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerList;

                    /**
                     * Creates a plain object from an InstanceGroupManagerList message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerResizeRequest. */
                interface IInstanceGroupManagerResizeRequest {

                    /** InstanceGroupManagerResizeRequest creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstanceGroupManagerResizeRequest description */
                    description?: (string|null);

                    /** InstanceGroupManagerResizeRequest id */
                    id?: (number|Long|string|null);

                    /** InstanceGroupManagerResizeRequest kind */
                    kind?: (string|null);

                    /** InstanceGroupManagerResizeRequest name */
                    name?: (string|null);

                    /** InstanceGroupManagerResizeRequest requestedRunDuration */
                    requestedRunDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** InstanceGroupManagerResizeRequest resizeBy */
                    resizeBy?: (number|null);

                    /** InstanceGroupManagerResizeRequest selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManagerResizeRequest selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** InstanceGroupManagerResizeRequest state */
                    state?: (string|null);

                    /** InstanceGroupManagerResizeRequest status */
                    status?: (google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatus|null);

                    /** InstanceGroupManagerResizeRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InstanceGroupManagerResizeRequest. */
                class InstanceGroupManagerResizeRequest implements IInstanceGroupManagerResizeRequest {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerResizeRequest);

                    /** InstanceGroupManagerResizeRequest creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstanceGroupManagerResizeRequest description. */
                    public description?: (string|null);

                    /** InstanceGroupManagerResizeRequest id. */
                    public id?: (number|Long|string|null);

                    /** InstanceGroupManagerResizeRequest kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManagerResizeRequest name. */
                    public name?: (string|null);

                    /** InstanceGroupManagerResizeRequest requestedRunDuration. */
                    public requestedRunDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** InstanceGroupManagerResizeRequest resizeBy. */
                    public resizeBy?: (number|null);

                    /** InstanceGroupManagerResizeRequest selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManagerResizeRequest selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** InstanceGroupManagerResizeRequest state. */
                    public state?: (string|null);

                    /** InstanceGroupManagerResizeRequest status. */
                    public status?: (google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatus|null);

                    /** InstanceGroupManagerResizeRequest zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerResizeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResizeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerResizeRequest): google.cloud.compute.v1.InstanceGroupManagerResizeRequest;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequest.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequest.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerResizeRequest;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerResizeRequest;

                    /**
                     * Verifies an InstanceGroupManagerResizeRequest message.
                     * @param message Plain 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 InstanceGroupManagerResizeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResizeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerResizeRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResizeRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResizeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerResizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResizeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResizeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerResizeRequest {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACCEPTED = 246714279,
                        CANCELLED = 41957681,
                        CREATING = 455564985,
                        FAILED = 455706685,
                        STATE_UNSPECIFIED = 470755401,
                        SUCCEEDED = 511103553
                    }
                }

                /** Properties of an InstanceGroupManagerResizeRequestStatus. */
                interface IInstanceGroupManagerResizeRequestStatus {

                    /** InstanceGroupManagerResizeRequestStatus error */
                    error?: (google.cloud.compute.v1.IError|null);

                    /** InstanceGroupManagerResizeRequestStatus lastAttempt */
                    lastAttempt?: (google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatusLastAttempt|null);
                }

                /** Represents an InstanceGroupManagerResizeRequestStatus. */
                class InstanceGroupManagerResizeRequestStatus implements IInstanceGroupManagerResizeRequestStatus {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequestStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatus);

                    /** InstanceGroupManagerResizeRequestStatus error. */
                    public error?: (google.cloud.compute.v1.IError|null);

                    /** InstanceGroupManagerResizeRequestStatus lastAttempt. */
                    public lastAttempt?: (google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatusLastAttempt|null);

                    /**
                     * Creates a new InstanceGroupManagerResizeRequestStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResizeRequestStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatus): google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatus;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestStatus message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatus.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatus.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResizeRequestStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatus;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResizeRequestStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatus;

                    /**
                     * Verifies an InstanceGroupManagerResizeRequestStatus message.
                     * @param message Plain 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 InstanceGroupManagerResizeRequestStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResizeRequestStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatus;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResizeRequestStatus message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResizeRequestStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResizeRequestStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResizeRequestStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerResizeRequestStatusLastAttempt. */
                interface IInstanceGroupManagerResizeRequestStatusLastAttempt {

                    /** InstanceGroupManagerResizeRequestStatusLastAttempt error */
                    error?: (google.cloud.compute.v1.IError|null);
                }

                /** Represents an InstanceGroupManagerResizeRequestStatusLastAttempt. */
                class InstanceGroupManagerResizeRequestStatusLastAttempt implements IInstanceGroupManagerResizeRequestStatusLastAttempt {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequestStatusLastAttempt.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatusLastAttempt);

                    /** InstanceGroupManagerResizeRequestStatusLastAttempt error. */
                    public error?: (google.cloud.compute.v1.IError|null);

                    /**
                     * Creates a new InstanceGroupManagerResizeRequestStatusLastAttempt instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResizeRequestStatusLastAttempt instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatusLastAttempt): google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttempt;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestStatusLastAttempt message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttempt.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestStatusLastAttempt message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatusLastAttempt, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestStatusLastAttempt message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttempt.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestStatusLastAttempt message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestStatusLastAttempt, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestStatusLastAttempt message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResizeRequestStatusLastAttempt
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttempt;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestStatusLastAttempt message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResizeRequestStatusLastAttempt
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttempt;

                    /**
                     * Verifies an InstanceGroupManagerResizeRequestStatusLastAttempt message.
                     * @param message Plain 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 InstanceGroupManagerResizeRequestStatusLastAttempt message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResizeRequestStatusLastAttempt
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttempt;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResizeRequestStatusLastAttempt message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResizeRequestStatusLastAttempt
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttempt, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResizeRequestStatusLastAttempt to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResizeRequestStatusLastAttempt
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerResizeRequestsListResponse. */
                interface IInstanceGroupManagerResizeRequestsListResponse {

                    /** InstanceGroupManagerResizeRequestsListResponse id */
                    id?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse items */
                    items?: (google.cloud.compute.v1.IInstanceGroupManagerResizeRequest[]|null);

                    /** InstanceGroupManagerResizeRequestsListResponse kind */
                    kind?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupManagerResizeRequestsListResponse. */
                class InstanceGroupManagerResizeRequestsListResponse implements IInstanceGroupManagerResizeRequestsListResponse {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequestsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestsListResponse);

                    /** InstanceGroupManagerResizeRequestsListResponse id. */
                    public id?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse items. */
                    public items: google.cloud.compute.v1.IInstanceGroupManagerResizeRequest[];

                    /** InstanceGroupManagerResizeRequestsListResponse kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagerResizeRequestsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResizeRequestsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestsListResponse): google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestsListResponse message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerResizeRequestsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResizeRequestsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResizeRequestsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Verifies an InstanceGroupManagerResizeRequestsListResponse message.
                     * @param message Plain 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 InstanceGroupManagerResizeRequestsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResizeRequestsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResizeRequestsListResponse message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResizeRequestsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResizeRequestsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResizeRequestsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerResourcePolicies. */
                interface IInstanceGroupManagerResourcePolicies {

                    /** InstanceGroupManagerResourcePolicies workloadPolicy */
                    workloadPolicy?: (string|null);
                }

                /** Represents an InstanceGroupManagerResourcePolicies. */
                class InstanceGroupManagerResourcePolicies implements IInstanceGroupManagerResourcePolicies {

                    /**
                     * Constructs a new InstanceGroupManagerResourcePolicies.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerResourcePolicies);

                    /** InstanceGroupManagerResourcePolicies workloadPolicy. */
                    public workloadPolicy?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerResourcePolicies instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResourcePolicies instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerResourcePolicies): google.cloud.compute.v1.InstanceGroupManagerResourcePolicies;

                    /**
                     * Encodes the specified InstanceGroupManagerResourcePolicies message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResourcePolicies.verify|verify} messages.
                     * @param message InstanceGroupManagerResourcePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerResourcePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResourcePolicies message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerResourcePolicies.verify|verify} messages.
                     * @param message InstanceGroupManagerResourcePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerResourcePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResourcePolicies message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResourcePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerResourcePolicies;

                    /**
                     * Decodes an InstanceGroupManagerResourcePolicies message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResourcePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerResourcePolicies;

                    /**
                     * Verifies an InstanceGroupManagerResourcePolicies message.
                     * @param message Plain 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 InstanceGroupManagerResourcePolicies message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResourcePolicies
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerResourcePolicies;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResourcePolicies message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResourcePolicies
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerResourcePolicies, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResourcePolicies to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResourcePolicies
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStandbyPolicy. */
                interface IInstanceGroupManagerStandbyPolicy {

                    /** InstanceGroupManagerStandbyPolicy initialDelaySec */
                    initialDelaySec?: (number|null);

                    /** InstanceGroupManagerStandbyPolicy mode */
                    mode?: (string|null);
                }

                /** Represents an InstanceGroupManagerStandbyPolicy. */
                class InstanceGroupManagerStandbyPolicy implements IInstanceGroupManagerStandbyPolicy {

                    /**
                     * Constructs a new InstanceGroupManagerStandbyPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStandbyPolicy);

                    /** InstanceGroupManagerStandbyPolicy initialDelaySec. */
                    public initialDelaySec?: (number|null);

                    /** InstanceGroupManagerStandbyPolicy mode. */
                    public mode?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerStandbyPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStandbyPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStandbyPolicy): google.cloud.compute.v1.InstanceGroupManagerStandbyPolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerStandbyPolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStandbyPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerStandbyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStandbyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStandbyPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStandbyPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerStandbyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStandbyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStandbyPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStandbyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStandbyPolicy;

                    /**
                     * Decodes an InstanceGroupManagerStandbyPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStandbyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStandbyPolicy;

                    /**
                     * Verifies an InstanceGroupManagerStandbyPolicy message.
                     * @param message Plain 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 InstanceGroupManagerStandbyPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStandbyPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStandbyPolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStandbyPolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStandbyPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStandbyPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStandbyPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStandbyPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerStandbyPolicy {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        MANUAL = 119397318,
                        SCALE_OUT_POOL = 635394
                    }
                }

                /** Properties of an InstanceGroupManagerStatus. */
                interface IInstanceGroupManagerStatus {

                    /** InstanceGroupManagerStatus allInstancesConfig */
                    allInstancesConfig?: (google.cloud.compute.v1.IInstanceGroupManagerStatusAllInstancesConfig|null);

                    /** InstanceGroupManagerStatus appliedAcceleratorTopologies */
                    appliedAcceleratorTopologies?: (google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopology[]|null);

                    /** InstanceGroupManagerStatus autoscaler */
                    autoscaler?: (string|null);

                    /** InstanceGroupManagerStatus bulkInstanceOperation */
                    bulkInstanceOperation?: (google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperation|null);

                    /** InstanceGroupManagerStatus isStable */
                    isStable?: (boolean|null);

                    /** InstanceGroupManagerStatus stateful */
                    stateful?: (google.cloud.compute.v1.IInstanceGroupManagerStatusStateful|null);

                    /** InstanceGroupManagerStatus versionTarget */
                    versionTarget?: (google.cloud.compute.v1.IInstanceGroupManagerStatusVersionTarget|null);
                }

                /** Represents an InstanceGroupManagerStatus. */
                class InstanceGroupManagerStatus implements IInstanceGroupManagerStatus {

                    /**
                     * Constructs a new InstanceGroupManagerStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatus);

                    /** InstanceGroupManagerStatus allInstancesConfig. */
                    public allInstancesConfig?: (google.cloud.compute.v1.IInstanceGroupManagerStatusAllInstancesConfig|null);

                    /** InstanceGroupManagerStatus appliedAcceleratorTopologies. */
                    public appliedAcceleratorTopologies: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopology[];

                    /** InstanceGroupManagerStatus autoscaler. */
                    public autoscaler?: (string|null);

                    /** InstanceGroupManagerStatus bulkInstanceOperation. */
                    public bulkInstanceOperation?: (google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperation|null);

                    /** InstanceGroupManagerStatus isStable. */
                    public isStable?: (boolean|null);

                    /** InstanceGroupManagerStatus stateful. */
                    public stateful?: (google.cloud.compute.v1.IInstanceGroupManagerStatusStateful|null);

                    /** InstanceGroupManagerStatus versionTarget. */
                    public versionTarget?: (google.cloud.compute.v1.IInstanceGroupManagerStatusVersionTarget|null);

                    /**
                     * Creates a new InstanceGroupManagerStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatus): google.cloud.compute.v1.InstanceGroupManagerStatus;

                    /**
                     * Encodes the specified InstanceGroupManagerStatus message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatus.verify|verify} messages.
                     * @param message InstanceGroupManagerStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatus.verify|verify} messages.
                     * @param message InstanceGroupManagerStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatus;

                    /**
                     * Decodes an InstanceGroupManagerStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatus;

                    /**
                     * Verifies an InstanceGroupManagerStatus message.
                     * @param message Plain 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 InstanceGroupManagerStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatus;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatus message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusAcceleratorTopology. */
                interface IInstanceGroupManagerStatusAcceleratorTopology {

                    /** InstanceGroupManagerStatusAcceleratorTopology acceleratorTopology */
                    acceleratorTopology?: (string|null);

                    /** InstanceGroupManagerStatusAcceleratorTopology state */
                    state?: (string|null);

                    /** InstanceGroupManagerStatusAcceleratorTopology stateDetails */
                    stateDetails?: (google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails|null);
                }

                /** Represents an InstanceGroupManagerStatusAcceleratorTopology. */
                class InstanceGroupManagerStatusAcceleratorTopology implements IInstanceGroupManagerStatusAcceleratorTopology {

                    /**
                     * Constructs a new InstanceGroupManagerStatusAcceleratorTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopology);

                    /** InstanceGroupManagerStatusAcceleratorTopology acceleratorTopology. */
                    public acceleratorTopology?: (string|null);

                    /** InstanceGroupManagerStatusAcceleratorTopology state. */
                    public state?: (string|null);

                    /** InstanceGroupManagerStatusAcceleratorTopology stateDetails. */
                    public stateDetails?: (google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusAcceleratorTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusAcceleratorTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopology): google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopology;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAcceleratorTopology message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopology.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAcceleratorTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAcceleratorTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopology.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAcceleratorTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusAcceleratorTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusAcceleratorTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopology;

                    /**
                     * Decodes an InstanceGroupManagerStatusAcceleratorTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusAcceleratorTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopology;

                    /**
                     * Verifies an InstanceGroupManagerStatusAcceleratorTopology message.
                     * @param message Plain 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 InstanceGroupManagerStatusAcceleratorTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusAcceleratorTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopology;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusAcceleratorTopology message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusAcceleratorTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusAcceleratorTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusAcceleratorTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerStatusAcceleratorTopology {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVATING = 378825968,
                        ACTIVE = 314733318,
                        DEACTIVATING = 57182257,
                        FAILED = 455706685,
                        INCOMPLETE = 11941214,
                        REACTIVATING = 253727587
                    }
                }

                /** Properties of an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails. */
                interface IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails {

                    /** InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails error */
                    error?: (google.cloud.compute.v1.IError|null);

                    /** InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails timestamp */
                    timestamp?: (string|null);
                }

                /** Represents an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails. */
                class InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails implements IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails {

                    /**
                     * Constructs a new InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails);

                    /** InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails error. */
                    public error?: (google.cloud.compute.v1.IError|null);

                    /** InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails): google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails;

                    /**
                     * Decodes an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails;

                    /**
                     * Verifies an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message.
                     * @param message Plain 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 InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusAllInstancesConfig. */
                interface IInstanceGroupManagerStatusAllInstancesConfig {

                    /** InstanceGroupManagerStatusAllInstancesConfig currentRevision */
                    currentRevision?: (string|null);

                    /** InstanceGroupManagerStatusAllInstancesConfig effective */
                    effective?: (boolean|null);
                }

                /** Represents an InstanceGroupManagerStatusAllInstancesConfig. */
                class InstanceGroupManagerStatusAllInstancesConfig implements IInstanceGroupManagerStatusAllInstancesConfig {

                    /**
                     * Constructs a new InstanceGroupManagerStatusAllInstancesConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusAllInstancesConfig);

                    /** InstanceGroupManagerStatusAllInstancesConfig currentRevision. */
                    public currentRevision?: (string|null);

                    /** InstanceGroupManagerStatusAllInstancesConfig effective. */
                    public effective?: (boolean|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusAllInstancesConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusAllInstancesConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusAllInstancesConfig): google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfig;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAllInstancesConfig message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfig.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatusAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAllInstancesConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfig.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatusAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusAllInstancesConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfig;

                    /**
                     * Decodes an InstanceGroupManagerStatusAllInstancesConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfig;

                    /**
                     * Verifies an InstanceGroupManagerStatusAllInstancesConfig message.
                     * @param message Plain 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 InstanceGroupManagerStatusAllInstancesConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusAllInstancesConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfig;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusAllInstancesConfig message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusAllInstancesConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusAllInstancesConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusAllInstancesConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusBulkInstanceOperation. */
                interface IInstanceGroupManagerStatusBulkInstanceOperation {

                    /** InstanceGroupManagerStatusBulkInstanceOperation inProgress */
                    inProgress?: (boolean|null);

                    /** InstanceGroupManagerStatusBulkInstanceOperation lastProgressCheck */
                    lastProgressCheck?: (google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck|null);
                }

                /** Represents an InstanceGroupManagerStatusBulkInstanceOperation. */
                class InstanceGroupManagerStatusBulkInstanceOperation implements IInstanceGroupManagerStatusBulkInstanceOperation {

                    /**
                     * Constructs a new InstanceGroupManagerStatusBulkInstanceOperation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperation);

                    /** InstanceGroupManagerStatusBulkInstanceOperation inProgress. */
                    public inProgress?: (boolean|null);

                    /** InstanceGroupManagerStatusBulkInstanceOperation lastProgressCheck. */
                    public lastProgressCheck?: (google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusBulkInstanceOperation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusBulkInstanceOperation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperation): google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperation;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusBulkInstanceOperation message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperation.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusBulkInstanceOperation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperation.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusBulkInstanceOperation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusBulkInstanceOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperation;

                    /**
                     * Decodes an InstanceGroupManagerStatusBulkInstanceOperation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusBulkInstanceOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperation;

                    /**
                     * Verifies an InstanceGroupManagerStatusBulkInstanceOperation message.
                     * @param message Plain 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 InstanceGroupManagerStatusBulkInstanceOperation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusBulkInstanceOperation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperation;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusBulkInstanceOperation message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusBulkInstanceOperation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusBulkInstanceOperation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck. */
                interface IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck {

                    /** InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck error */
                    error?: (google.cloud.compute.v1.IError|null);

                    /** InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck timestamp */
                    timestamp?: (string|null);
                }

                /** Represents an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck. */
                class InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck implements IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck {

                    /**
                     * Constructs a new InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck);

                    /** InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck error. */
                    public error?: (google.cloud.compute.v1.IError|null);

                    /** InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck): google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck;

                    /**
                     * Decodes an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck;

                    /**
                     * Verifies an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message.
                     * @param message Plain 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 InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusStateful. */
                interface IInstanceGroupManagerStatusStateful {

                    /** InstanceGroupManagerStatusStateful hasStatefulConfig */
                    hasStatefulConfig?: (boolean|null);

                    /** InstanceGroupManagerStatusStateful perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1.IInstanceGroupManagerStatusStatefulPerInstanceConfigs|null);
                }

                /** Represents an InstanceGroupManagerStatusStateful. */
                class InstanceGroupManagerStatusStateful implements IInstanceGroupManagerStatusStateful {

                    /**
                     * Constructs a new InstanceGroupManagerStatusStateful.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusStateful);

                    /** InstanceGroupManagerStatusStateful hasStatefulConfig. */
                    public hasStatefulConfig?: (boolean|null);

                    /** InstanceGroupManagerStatusStateful perInstanceConfigs. */
                    public perInstanceConfigs?: (google.cloud.compute.v1.IInstanceGroupManagerStatusStatefulPerInstanceConfigs|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusStateful instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusStateful instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusStateful): google.cloud.compute.v1.InstanceGroupManagerStatusStateful;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusStateful message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusStateful.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusStateful message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatusStateful, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusStateful message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusStateful.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusStateful message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatusStateful, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusStateful message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusStateful
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatusStateful;

                    /**
                     * Decodes an InstanceGroupManagerStatusStateful message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusStateful
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatusStateful;

                    /**
                     * Verifies an InstanceGroupManagerStatusStateful message.
                     * @param message Plain 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 InstanceGroupManagerStatusStateful message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusStateful
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatusStateful;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusStateful message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusStateful
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatusStateful, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusStateful to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusStateful
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusStatefulPerInstanceConfigs. */
                interface IInstanceGroupManagerStatusStatefulPerInstanceConfigs {

                    /** InstanceGroupManagerStatusStatefulPerInstanceConfigs allEffective */
                    allEffective?: (boolean|null);
                }

                /** Represents an InstanceGroupManagerStatusStatefulPerInstanceConfigs. */
                class InstanceGroupManagerStatusStatefulPerInstanceConfigs implements IInstanceGroupManagerStatusStatefulPerInstanceConfigs {

                    /**
                     * Constructs a new InstanceGroupManagerStatusStatefulPerInstanceConfigs.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusStatefulPerInstanceConfigs);

                    /** InstanceGroupManagerStatusStatefulPerInstanceConfigs allEffective. */
                    public allEffective?: (boolean|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusStatefulPerInstanceConfigs instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusStatefulPerInstanceConfigs instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusStatefulPerInstanceConfigs): google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigs;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusStatefulPerInstanceConfigs message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigs.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusStatefulPerInstanceConfigs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatusStatefulPerInstanceConfigs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusStatefulPerInstanceConfigs message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigs.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusStatefulPerInstanceConfigs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatusStatefulPerInstanceConfigs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusStatefulPerInstanceConfigs message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigs;

                    /**
                     * Decodes an InstanceGroupManagerStatusStatefulPerInstanceConfigs message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigs;

                    /**
                     * Verifies an InstanceGroupManagerStatusStatefulPerInstanceConfigs message.
                     * @param message Plain 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 InstanceGroupManagerStatusStatefulPerInstanceConfigs message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigs;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusStatefulPerInstanceConfigs message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusStatefulPerInstanceConfigs to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusVersionTarget. */
                interface IInstanceGroupManagerStatusVersionTarget {

                    /** InstanceGroupManagerStatusVersionTarget isReached */
                    isReached?: (boolean|null);
                }

                /** Represents an InstanceGroupManagerStatusVersionTarget. */
                class InstanceGroupManagerStatusVersionTarget implements IInstanceGroupManagerStatusVersionTarget {

                    /**
                     * Constructs a new InstanceGroupManagerStatusVersionTarget.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusVersionTarget);

                    /** InstanceGroupManagerStatusVersionTarget isReached. */
                    public isReached?: (boolean|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusVersionTarget instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusVersionTarget instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerStatusVersionTarget): google.cloud.compute.v1.InstanceGroupManagerStatusVersionTarget;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusVersionTarget message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusVersionTarget.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusVersionTarget message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerStatusVersionTarget, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusVersionTarget message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerStatusVersionTarget.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusVersionTarget message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerStatusVersionTarget, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusVersionTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusVersionTarget
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerStatusVersionTarget;

                    /**
                     * Decodes an InstanceGroupManagerStatusVersionTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusVersionTarget
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerStatusVersionTarget;

                    /**
                     * Verifies an InstanceGroupManagerStatusVersionTarget message.
                     * @param message Plain 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 InstanceGroupManagerStatusVersionTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusVersionTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerStatusVersionTarget;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusVersionTarget message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusVersionTarget
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerStatusVersionTarget, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusVersionTarget to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusVersionTarget
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerTargetSizePolicy. */
                interface IInstanceGroupManagerTargetSizePolicy {

                    /** InstanceGroupManagerTargetSizePolicy mode */
                    mode?: (string|null);
                }

                /** Represents an InstanceGroupManagerTargetSizePolicy. */
                class InstanceGroupManagerTargetSizePolicy implements IInstanceGroupManagerTargetSizePolicy {

                    /**
                     * Constructs a new InstanceGroupManagerTargetSizePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerTargetSizePolicy);

                    /** InstanceGroupManagerTargetSizePolicy mode. */
                    public mode?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerTargetSizePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerTargetSizePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerTargetSizePolicy): google.cloud.compute.v1.InstanceGroupManagerTargetSizePolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerTargetSizePolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerTargetSizePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerTargetSizePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerTargetSizePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerTargetSizePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerTargetSizePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerTargetSizePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerTargetSizePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerTargetSizePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerTargetSizePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerTargetSizePolicy;

                    /**
                     * Decodes an InstanceGroupManagerTargetSizePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerTargetSizePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerTargetSizePolicy;

                    /**
                     * Verifies an InstanceGroupManagerTargetSizePolicy message.
                     * @param message Plain 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 InstanceGroupManagerTargetSizePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerTargetSizePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerTargetSizePolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerTargetSizePolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerTargetSizePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerTargetSizePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerTargetSizePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerTargetSizePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerTargetSizePolicy {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        BULK = 2050322,
                        INDIVIDUAL = 438800025,
                        UNSPECIFIED_MODE = 53715403
                    }
                }

                /** Properties of an InstanceGroupManagerUpdatePolicy. */
                interface IInstanceGroupManagerUpdatePolicy {

                    /** InstanceGroupManagerUpdatePolicy instanceRedistributionType */
                    instanceRedistributionType?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy maxSurge */
                    maxSurge?: (google.cloud.compute.v1.IFixedOrPercent|null);

                    /** InstanceGroupManagerUpdatePolicy maxUnavailable */
                    maxUnavailable?: (google.cloud.compute.v1.IFixedOrPercent|null);

                    /** InstanceGroupManagerUpdatePolicy minimalAction */
                    minimalAction?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy mostDisruptiveAllowedAction */
                    mostDisruptiveAllowedAction?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy replacementMethod */
                    replacementMethod?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy type */
                    type?: (string|null);
                }

                /** Represents an InstanceGroupManagerUpdatePolicy. */
                class InstanceGroupManagerUpdatePolicy implements IInstanceGroupManagerUpdatePolicy {

                    /**
                     * Constructs a new InstanceGroupManagerUpdatePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerUpdatePolicy);

                    /** InstanceGroupManagerUpdatePolicy instanceRedistributionType. */
                    public instanceRedistributionType?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy maxSurge. */
                    public maxSurge?: (google.cloud.compute.v1.IFixedOrPercent|null);

                    /** InstanceGroupManagerUpdatePolicy maxUnavailable. */
                    public maxUnavailable?: (google.cloud.compute.v1.IFixedOrPercent|null);

                    /** InstanceGroupManagerUpdatePolicy minimalAction. */
                    public minimalAction?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy mostDisruptiveAllowedAction. */
                    public mostDisruptiveAllowedAction?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy replacementMethod. */
                    public replacementMethod?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerUpdatePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerUpdatePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerUpdatePolicy): google.cloud.compute.v1.InstanceGroupManagerUpdatePolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerUpdatePolicy message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerUpdatePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerUpdatePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerUpdatePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerUpdatePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerUpdatePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerUpdatePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerUpdatePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerUpdatePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerUpdatePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerUpdatePolicy;

                    /**
                     * Decodes an InstanceGroupManagerUpdatePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerUpdatePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerUpdatePolicy;

                    /**
                     * Verifies an InstanceGroupManagerUpdatePolicy message.
                     * @param message Plain 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 InstanceGroupManagerUpdatePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerUpdatePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerUpdatePolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerUpdatePolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerUpdatePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerUpdatePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerUpdatePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerUpdatePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerUpdatePolicy {

                    /** InstanceRedistributionType enum. */
                    enum InstanceRedistributionType {
                        UNDEFINED_INSTANCE_REDISTRIBUTION_TYPE = 0
                    }

                    /** MinimalAction enum. */
                    enum MinimalAction {
                        UNDEFINED_MINIMAL_ACTION = 0
                    }

                    /** MostDisruptiveAllowedAction enum. */
                    enum MostDisruptiveAllowedAction {
                        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0
                    }

                    /** ReplacementMethod enum. */
                    enum ReplacementMethod {
                        UNDEFINED_REPLACEMENT_METHOD = 0,
                        RECREATE = 522644719,
                        SUBSTITUTE = 280924314
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        OPPORTUNISTIC = 429530089
                    }
                }

                /** Properties of an InstanceGroupManagerVersion. */
                interface IInstanceGroupManagerVersion {

                    /** InstanceGroupManagerVersion instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** InstanceGroupManagerVersion name */
                    name?: (string|null);

                    /** InstanceGroupManagerVersion targetSize */
                    targetSize?: (google.cloud.compute.v1.IFixedOrPercent|null);
                }

                /** Represents an InstanceGroupManagerVersion. */
                class InstanceGroupManagerVersion implements IInstanceGroupManagerVersion {

                    /**
                     * Constructs a new InstanceGroupManagerVersion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagerVersion);

                    /** InstanceGroupManagerVersion instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /** InstanceGroupManagerVersion name. */
                    public name?: (string|null);

                    /** InstanceGroupManagerVersion targetSize. */
                    public targetSize?: (google.cloud.compute.v1.IFixedOrPercent|null);

                    /**
                     * Creates a new InstanceGroupManagerVersion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerVersion instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagerVersion): google.cloud.compute.v1.InstanceGroupManagerVersion;

                    /**
                     * Encodes the specified InstanceGroupManagerVersion message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerVersion.verify|verify} messages.
                     * @param message InstanceGroupManagerVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagerVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerVersion message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagerVersion.verify|verify} messages.
                     * @param message InstanceGroupManagerVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagerVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerVersion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagerVersion;

                    /**
                     * Decodes an InstanceGroupManagerVersion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagerVersion;

                    /**
                     * Verifies an InstanceGroupManagerVersion message.
                     * @param message Plain 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 InstanceGroupManagerVersion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerVersion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagerVersion;

                    /**
                     * Creates a plain object from an InstanceGroupManagerVersion message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerVersion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagerVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerVersion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerVersion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersAbandonInstancesRequest. */
                interface IInstanceGroupManagersAbandonInstancesRequest {

                    /** InstanceGroupManagersAbandonInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersAbandonInstancesRequest. */
                class InstanceGroupManagersAbandonInstancesRequest implements IInstanceGroupManagersAbandonInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersAbandonInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersAbandonInstancesRequest);

                    /** InstanceGroupManagersAbandonInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersAbandonInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersAbandonInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersAbandonInstancesRequest): google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersAbandonInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersAbandonInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersAbandonInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersAbandonInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersAbandonInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersAbandonInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersAbandonInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersAbandonInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersAbandonInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersAbandonInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersAbandonInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersAbandonInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersAbandonInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersAbandonInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersAbandonInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersAbandonInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersAbandonInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersApplyUpdatesRequest. */
                interface IInstanceGroupManagersApplyUpdatesRequest {

                    /** InstanceGroupManagersApplyUpdatesRequest allInstances */
                    allInstances?: (boolean|null);

                    /** InstanceGroupManagersApplyUpdatesRequest instances */
                    instances?: (string[]|null);

                    /** InstanceGroupManagersApplyUpdatesRequest minimalAction */
                    minimalAction?: (string|null);

                    /** InstanceGroupManagersApplyUpdatesRequest mostDisruptiveAllowedAction */
                    mostDisruptiveAllowedAction?: (string|null);
                }

                /** Represents an InstanceGroupManagersApplyUpdatesRequest. */
                class InstanceGroupManagersApplyUpdatesRequest implements IInstanceGroupManagersApplyUpdatesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersApplyUpdatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersApplyUpdatesRequest);

                    /** InstanceGroupManagersApplyUpdatesRequest allInstances. */
                    public allInstances?: (boolean|null);

                    /** InstanceGroupManagersApplyUpdatesRequest instances. */
                    public instances: string[];

                    /** InstanceGroupManagersApplyUpdatesRequest minimalAction. */
                    public minimalAction?: (string|null);

                    /** InstanceGroupManagersApplyUpdatesRequest mostDisruptiveAllowedAction. */
                    public mostDisruptiveAllowedAction?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersApplyUpdatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersApplyUpdatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersApplyUpdatesRequest): google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersApplyUpdatesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersApplyUpdatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersApplyUpdatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersApplyUpdatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersApplyUpdatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersApplyUpdatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersApplyUpdatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersApplyUpdatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Decodes an InstanceGroupManagersApplyUpdatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersApplyUpdatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Verifies an InstanceGroupManagersApplyUpdatesRequest message.
                     * @param message Plain 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 InstanceGroupManagersApplyUpdatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersApplyUpdatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersApplyUpdatesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersApplyUpdatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersApplyUpdatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersApplyUpdatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagersApplyUpdatesRequest {

                    /** MinimalAction enum. */
                    enum MinimalAction {
                        UNDEFINED_MINIMAL_ACTION = 0
                    }

                    /** MostDisruptiveAllowedAction enum. */
                    enum MostDisruptiveAllowedAction {
                        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0
                    }
                }

                /** Properties of an InstanceGroupManagersCreateInstancesRequest. */
                interface IInstanceGroupManagersCreateInstancesRequest {

                    /** InstanceGroupManagersCreateInstancesRequest instances */
                    instances?: (google.cloud.compute.v1.IPerInstanceConfig[]|null);
                }

                /** Represents an InstanceGroupManagersCreateInstancesRequest. */
                class InstanceGroupManagersCreateInstancesRequest implements IInstanceGroupManagersCreateInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersCreateInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersCreateInstancesRequest);

                    /** InstanceGroupManagersCreateInstancesRequest instances. */
                    public instances: google.cloud.compute.v1.IPerInstanceConfig[];

                    /**
                     * Creates a new InstanceGroupManagersCreateInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersCreateInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersCreateInstancesRequest): google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersCreateInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersCreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersCreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersCreateInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersCreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersCreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersCreateInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersCreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersCreateInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersCreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersCreateInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersCreateInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersCreateInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersCreateInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersCreateInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersCreateInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersCreateInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersDeleteInstancesRequest. */
                interface IInstanceGroupManagersDeleteInstancesRequest {

                    /** InstanceGroupManagersDeleteInstancesRequest instances */
                    instances?: (string[]|null);

                    /** InstanceGroupManagersDeleteInstancesRequest skipInstancesOnValidationError */
                    skipInstancesOnValidationError?: (boolean|null);
                }

                /** Represents an InstanceGroupManagersDeleteInstancesRequest. */
                class InstanceGroupManagersDeleteInstancesRequest implements IInstanceGroupManagersDeleteInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersDeleteInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersDeleteInstancesRequest);

                    /** InstanceGroupManagersDeleteInstancesRequest instances. */
                    public instances: string[];

                    /** InstanceGroupManagersDeleteInstancesRequest skipInstancesOnValidationError. */
                    public skipInstancesOnValidationError?: (boolean|null);

                    /**
                     * Creates a new InstanceGroupManagersDeleteInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersDeleteInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersDeleteInstancesRequest): google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersDeleteInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersDeleteInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersDeleteInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersDeleteInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersDeleteInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersDeleteInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersDeleteInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersDeleteInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersDeleteInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersDeleteInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersDeleteInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersDeleteInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersDeleteInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersDeleteInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersDeleteInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersDeleteInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersDeleteInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersDeletePerInstanceConfigsReq. */
                interface IInstanceGroupManagersDeletePerInstanceConfigsReq {

                    /** InstanceGroupManagersDeletePerInstanceConfigsReq names */
                    names?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersDeletePerInstanceConfigsReq. */
                class InstanceGroupManagersDeletePerInstanceConfigsReq implements IInstanceGroupManagersDeletePerInstanceConfigsReq {

                    /**
                     * Constructs a new InstanceGroupManagersDeletePerInstanceConfigsReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersDeletePerInstanceConfigsReq);

                    /** InstanceGroupManagersDeletePerInstanceConfigsReq names. */
                    public names: string[];

                    /**
                     * Creates a new InstanceGroupManagersDeletePerInstanceConfigsReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersDeletePerInstanceConfigsReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersDeletePerInstanceConfigsReq): google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReq;

                    /**
                     * Encodes the specified InstanceGroupManagersDeletePerInstanceConfigsReq message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersDeletePerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersDeletePerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersDeletePerInstanceConfigsReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersDeletePerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersDeletePerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersDeletePerInstanceConfigsReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersDeletePerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReq;

                    /**
                     * Decodes an InstanceGroupManagersDeletePerInstanceConfigsReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersDeletePerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReq;

                    /**
                     * Verifies an InstanceGroupManagersDeletePerInstanceConfigsReq message.
                     * @param message Plain 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 InstanceGroupManagersDeletePerInstanceConfigsReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersDeletePerInstanceConfigsReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReq;

                    /**
                     * Creates a plain object from an InstanceGroupManagersDeletePerInstanceConfigsReq message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersDeletePerInstanceConfigsReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersDeletePerInstanceConfigsReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersDeletePerInstanceConfigsReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersListErrorsResponse. */
                interface IInstanceGroupManagersListErrorsResponse {

                    /** InstanceGroupManagersListErrorsResponse items */
                    items?: (google.cloud.compute.v1.IInstanceManagedByIgmError[]|null);

                    /** InstanceGroupManagersListErrorsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents an InstanceGroupManagersListErrorsResponse. */
                class InstanceGroupManagersListErrorsResponse implements IInstanceGroupManagersListErrorsResponse {

                    /**
                     * Constructs a new InstanceGroupManagersListErrorsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersListErrorsResponse);

                    /** InstanceGroupManagersListErrorsResponse items. */
                    public items: google.cloud.compute.v1.IInstanceManagedByIgmError[];

                    /** InstanceGroupManagersListErrorsResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersListErrorsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersListErrorsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersListErrorsResponse): google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse;

                    /**
                     * Encodes the specified InstanceGroupManagersListErrorsResponse message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersListErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersListErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersListErrorsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersListErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersListErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersListErrorsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersListErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse;

                    /**
                     * Decodes an InstanceGroupManagersListErrorsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersListErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse;

                    /**
                     * Verifies an InstanceGroupManagersListErrorsResponse message.
                     * @param message Plain 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 InstanceGroupManagersListErrorsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersListErrorsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse;

                    /**
                     * Creates a plain object from an InstanceGroupManagersListErrorsResponse message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersListErrorsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersListErrorsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersListErrorsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersListManagedInstancesResponse. */
                interface IInstanceGroupManagersListManagedInstancesResponse {

                    /** InstanceGroupManagersListManagedInstancesResponse managedInstances */
                    managedInstances?: (google.cloud.compute.v1.IManagedInstance[]|null);

                    /** InstanceGroupManagersListManagedInstancesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents an InstanceGroupManagersListManagedInstancesResponse. */
                class InstanceGroupManagersListManagedInstancesResponse implements IInstanceGroupManagersListManagedInstancesResponse {

                    /**
                     * Constructs a new InstanceGroupManagersListManagedInstancesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersListManagedInstancesResponse);

                    /** InstanceGroupManagersListManagedInstancesResponse managedInstances. */
                    public managedInstances: google.cloud.compute.v1.IManagedInstance[];

                    /** InstanceGroupManagersListManagedInstancesResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersListManagedInstancesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersListManagedInstancesResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersListManagedInstancesResponse): google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse;

                    /**
                     * Encodes the specified InstanceGroupManagersListManagedInstancesResponse message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersListManagedInstancesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersListManagedInstancesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersListManagedInstancesResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersListManagedInstancesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersListManagedInstancesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersListManagedInstancesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersListManagedInstancesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse;

                    /**
                     * Decodes an InstanceGroupManagersListManagedInstancesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersListManagedInstancesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse;

                    /**
                     * Verifies an InstanceGroupManagersListManagedInstancesResponse message.
                     * @param message Plain 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 InstanceGroupManagersListManagedInstancesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersListManagedInstancesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse;

                    /**
                     * Creates a plain object from an InstanceGroupManagersListManagedInstancesResponse message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersListManagedInstancesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersListManagedInstancesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersListManagedInstancesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersListPerInstanceConfigsResp. */
                interface IInstanceGroupManagersListPerInstanceConfigsResp {

                    /** InstanceGroupManagersListPerInstanceConfigsResp items */
                    items?: (google.cloud.compute.v1.IPerInstanceConfig[]|null);

                    /** InstanceGroupManagersListPerInstanceConfigsResp nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupManagersListPerInstanceConfigsResp warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupManagersListPerInstanceConfigsResp. */
                class InstanceGroupManagersListPerInstanceConfigsResp implements IInstanceGroupManagersListPerInstanceConfigsResp {

                    /**
                     * Constructs a new InstanceGroupManagersListPerInstanceConfigsResp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersListPerInstanceConfigsResp);

                    /** InstanceGroupManagersListPerInstanceConfigsResp items. */
                    public items: google.cloud.compute.v1.IPerInstanceConfig[];

                    /** InstanceGroupManagersListPerInstanceConfigsResp nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupManagersListPerInstanceConfigsResp warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagersListPerInstanceConfigsResp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersListPerInstanceConfigsResp instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersListPerInstanceConfigsResp): google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp;

                    /**
                     * Encodes the specified InstanceGroupManagersListPerInstanceConfigsResp message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp.verify|verify} messages.
                     * @param message InstanceGroupManagersListPerInstanceConfigsResp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersListPerInstanceConfigsResp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersListPerInstanceConfigsResp message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp.verify|verify} messages.
                     * @param message InstanceGroupManagersListPerInstanceConfigsResp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersListPerInstanceConfigsResp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersListPerInstanceConfigsResp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersListPerInstanceConfigsResp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp;

                    /**
                     * Decodes an InstanceGroupManagersListPerInstanceConfigsResp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersListPerInstanceConfigsResp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp;

                    /**
                     * Verifies an InstanceGroupManagersListPerInstanceConfigsResp message.
                     * @param message Plain 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 InstanceGroupManagersListPerInstanceConfigsResp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersListPerInstanceConfigsResp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp;

                    /**
                     * Creates a plain object from an InstanceGroupManagersListPerInstanceConfigsResp message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersListPerInstanceConfigsResp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersListPerInstanceConfigsResp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersListPerInstanceConfigsResp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersPatchPerInstanceConfigsReq. */
                interface IInstanceGroupManagersPatchPerInstanceConfigsReq {

                    /** InstanceGroupManagersPatchPerInstanceConfigsReq perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1.IPerInstanceConfig[]|null);
                }

                /** Represents an InstanceGroupManagersPatchPerInstanceConfigsReq. */
                class InstanceGroupManagersPatchPerInstanceConfigsReq implements IInstanceGroupManagersPatchPerInstanceConfigsReq {

                    /**
                     * Constructs a new InstanceGroupManagersPatchPerInstanceConfigsReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersPatchPerInstanceConfigsReq);

                    /** InstanceGroupManagersPatchPerInstanceConfigsReq perInstanceConfigs. */
                    public perInstanceConfigs: google.cloud.compute.v1.IPerInstanceConfig[];

                    /**
                     * Creates a new InstanceGroupManagersPatchPerInstanceConfigsReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersPatchPerInstanceConfigsReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersPatchPerInstanceConfigsReq): google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReq;

                    /**
                     * Encodes the specified InstanceGroupManagersPatchPerInstanceConfigsReq message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersPatchPerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersPatchPerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersPatchPerInstanceConfigsReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersPatchPerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersPatchPerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersPatchPerInstanceConfigsReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersPatchPerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReq;

                    /**
                     * Decodes an InstanceGroupManagersPatchPerInstanceConfigsReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersPatchPerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReq;

                    /**
                     * Verifies an InstanceGroupManagersPatchPerInstanceConfigsReq message.
                     * @param message Plain 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 InstanceGroupManagersPatchPerInstanceConfigsReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersPatchPerInstanceConfigsReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReq;

                    /**
                     * Creates a plain object from an InstanceGroupManagersPatchPerInstanceConfigsReq message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersPatchPerInstanceConfigsReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersPatchPerInstanceConfigsReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersPatchPerInstanceConfigsReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersRecreateInstancesRequest. */
                interface IInstanceGroupManagersRecreateInstancesRequest {

                    /** InstanceGroupManagersRecreateInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersRecreateInstancesRequest. */
                class InstanceGroupManagersRecreateInstancesRequest implements IInstanceGroupManagersRecreateInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersRecreateInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersRecreateInstancesRequest);

                    /** InstanceGroupManagersRecreateInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersRecreateInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersRecreateInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersRecreateInstancesRequest): google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersRecreateInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersRecreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersRecreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersRecreateInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersRecreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersRecreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersRecreateInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersRecreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersRecreateInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersRecreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersRecreateInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersRecreateInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersRecreateInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersRecreateInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersRecreateInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersRecreateInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersRecreateInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersResumeInstancesRequest. */
                interface IInstanceGroupManagersResumeInstancesRequest {

                    /** InstanceGroupManagersResumeInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersResumeInstancesRequest. */
                class InstanceGroupManagersResumeInstancesRequest implements IInstanceGroupManagersResumeInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersResumeInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersResumeInstancesRequest);

                    /** InstanceGroupManagersResumeInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersResumeInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersResumeInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersResumeInstancesRequest): google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersResumeInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersResumeInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersResumeInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersResumeInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersResumeInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersResumeInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersResumeInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersResumeInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersResumeInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersResumeInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersResumeInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersResumeInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersResumeInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersResumeInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersResumeInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersResumeInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersResumeInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersScopedList. */
                interface IInstanceGroupManagersScopedList {

                    /** InstanceGroupManagersScopedList instanceGroupManagers */
                    instanceGroupManagers?: (google.cloud.compute.v1.IInstanceGroupManager[]|null);

                    /** InstanceGroupManagersScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupManagersScopedList. */
                class InstanceGroupManagersScopedList implements IInstanceGroupManagersScopedList {

                    /**
                     * Constructs a new InstanceGroupManagersScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersScopedList);

                    /** InstanceGroupManagersScopedList instanceGroupManagers. */
                    public instanceGroupManagers: google.cloud.compute.v1.IInstanceGroupManager[];

                    /** InstanceGroupManagersScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagersScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersScopedList): google.cloud.compute.v1.InstanceGroupManagersScopedList;

                    /**
                     * Encodes the specified InstanceGroupManagersScopedList message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersScopedList.verify|verify} messages.
                     * @param message InstanceGroupManagersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersScopedList.verify|verify} messages.
                     * @param message InstanceGroupManagersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersScopedList;

                    /**
                     * Decodes an InstanceGroupManagersScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersScopedList;

                    /**
                     * Verifies an InstanceGroupManagersScopedList message.
                     * @param message Plain 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 InstanceGroupManagersScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersScopedList;

                    /**
                     * Creates a plain object from an InstanceGroupManagersScopedList message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersSetInstanceTemplateRequest. */
                interface IInstanceGroupManagersSetInstanceTemplateRequest {

                    /** InstanceGroupManagersSetInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);
                }

                /** Represents an InstanceGroupManagersSetInstanceTemplateRequest. */
                class InstanceGroupManagersSetInstanceTemplateRequest implements IInstanceGroupManagersSetInstanceTemplateRequest {

                    /**
                     * Constructs a new InstanceGroupManagersSetInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersSetInstanceTemplateRequest);

                    /** InstanceGroupManagersSetInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersSetInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersSetInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersSetInstanceTemplateRequest): google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersSetInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersSetInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersSetInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersSetInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersSetInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersSetInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequest;

                    /**
                     * Decodes an InstanceGroupManagersSetInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersSetInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequest;

                    /**
                     * Verifies an InstanceGroupManagersSetInstanceTemplateRequest message.
                     * @param message Plain 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 InstanceGroupManagersSetInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersSetInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersSetInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersSetInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersSetInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersSetInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersSetTargetPoolsRequest. */
                interface IInstanceGroupManagersSetTargetPoolsRequest {

                    /** InstanceGroupManagersSetTargetPoolsRequest fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceGroupManagersSetTargetPoolsRequest targetPools */
                    targetPools?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersSetTargetPoolsRequest. */
                class InstanceGroupManagersSetTargetPoolsRequest implements IInstanceGroupManagersSetTargetPoolsRequest {

                    /**
                     * Constructs a new InstanceGroupManagersSetTargetPoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersSetTargetPoolsRequest);

                    /** InstanceGroupManagersSetTargetPoolsRequest fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceGroupManagersSetTargetPoolsRequest targetPools. */
                    public targetPools: string[];

                    /**
                     * Creates a new InstanceGroupManagersSetTargetPoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersSetTargetPoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersSetTargetPoolsRequest): google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersSetTargetPoolsRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersSetTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersSetTargetPoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersSetTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersSetTargetPoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersSetTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Decodes an InstanceGroupManagersSetTargetPoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersSetTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Verifies an InstanceGroupManagersSetTargetPoolsRequest message.
                     * @param message Plain 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 InstanceGroupManagersSetTargetPoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersSetTargetPoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersSetTargetPoolsRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersSetTargetPoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersSetTargetPoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersSetTargetPoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersStartInstancesRequest. */
                interface IInstanceGroupManagersStartInstancesRequest {

                    /** InstanceGroupManagersStartInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersStartInstancesRequest. */
                class InstanceGroupManagersStartInstancesRequest implements IInstanceGroupManagersStartInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersStartInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersStartInstancesRequest);

                    /** InstanceGroupManagersStartInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersStartInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersStartInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersStartInstancesRequest): google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersStartInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersStartInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersStartInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersStartInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersStartInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersStartInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersStartInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersStartInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersStartInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersStartInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersStartInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersStartInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersStartInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersStartInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersStartInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersStartInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersStartInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersStopInstancesRequest. */
                interface IInstanceGroupManagersStopInstancesRequest {

                    /** InstanceGroupManagersStopInstancesRequest forceStop */
                    forceStop?: (boolean|null);

                    /** InstanceGroupManagersStopInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersStopInstancesRequest. */
                class InstanceGroupManagersStopInstancesRequest implements IInstanceGroupManagersStopInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersStopInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersStopInstancesRequest);

                    /** InstanceGroupManagersStopInstancesRequest forceStop. */
                    public forceStop?: (boolean|null);

                    /** InstanceGroupManagersStopInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersStopInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersStopInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersStopInstancesRequest): google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersStopInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersStopInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersStopInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersStopInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersStopInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersStopInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersStopInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersStopInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersStopInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersStopInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersStopInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersStopInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersStopInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersStopInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersStopInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersStopInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersStopInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersSuspendInstancesRequest. */
                interface IInstanceGroupManagersSuspendInstancesRequest {

                    /** InstanceGroupManagersSuspendInstancesRequest forceSuspend */
                    forceSuspend?: (boolean|null);

                    /** InstanceGroupManagersSuspendInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersSuspendInstancesRequest. */
                class InstanceGroupManagersSuspendInstancesRequest implements IInstanceGroupManagersSuspendInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersSuspendInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersSuspendInstancesRequest);

                    /** InstanceGroupManagersSuspendInstancesRequest forceSuspend. */
                    public forceSuspend?: (boolean|null);

                    /** InstanceGroupManagersSuspendInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersSuspendInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersSuspendInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersSuspendInstancesRequest): google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersSuspendInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSuspendInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersSuspendInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersSuspendInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSuspendInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersSuspendInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersSuspendInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersSuspendInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersSuspendInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersSuspendInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersSuspendInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersSuspendInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersSuspendInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersSuspendInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersSuspendInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersSuspendInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersSuspendInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersUpdatePerInstanceConfigsReq. */
                interface IInstanceGroupManagersUpdatePerInstanceConfigsReq {

                    /** InstanceGroupManagersUpdatePerInstanceConfigsReq perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1.IPerInstanceConfig[]|null);
                }

                /** Represents an InstanceGroupManagersUpdatePerInstanceConfigsReq. */
                class InstanceGroupManagersUpdatePerInstanceConfigsReq implements IInstanceGroupManagersUpdatePerInstanceConfigsReq {

                    /**
                     * Constructs a new InstanceGroupManagersUpdatePerInstanceConfigsReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupManagersUpdatePerInstanceConfigsReq);

                    /** InstanceGroupManagersUpdatePerInstanceConfigsReq perInstanceConfigs. */
                    public perInstanceConfigs: google.cloud.compute.v1.IPerInstanceConfig[];

                    /**
                     * Creates a new InstanceGroupManagersUpdatePerInstanceConfigsReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersUpdatePerInstanceConfigsReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupManagersUpdatePerInstanceConfigsReq): google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReq;

                    /**
                     * Encodes the specified InstanceGroupManagersUpdatePerInstanceConfigsReq message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersUpdatePerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupManagersUpdatePerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersUpdatePerInstanceConfigsReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersUpdatePerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupManagersUpdatePerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersUpdatePerInstanceConfigsReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersUpdatePerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReq;

                    /**
                     * Decodes an InstanceGroupManagersUpdatePerInstanceConfigsReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersUpdatePerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReq;

                    /**
                     * Verifies an InstanceGroupManagersUpdatePerInstanceConfigsReq message.
                     * @param message Plain 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 InstanceGroupManagersUpdatePerInstanceConfigsReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersUpdatePerInstanceConfigsReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReq;

                    /**
                     * Creates a plain object from an InstanceGroupManagersUpdatePerInstanceConfigsReq message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersUpdatePerInstanceConfigsReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersUpdatePerInstanceConfigsReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersUpdatePerInstanceConfigsReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsAddInstancesRequest. */
                interface IInstanceGroupsAddInstancesRequest {

                    /** InstanceGroupsAddInstancesRequest instances */
                    instances?: (google.cloud.compute.v1.IInstanceReference[]|null);
                }

                /** Represents an InstanceGroupsAddInstancesRequest. */
                class InstanceGroupsAddInstancesRequest implements IInstanceGroupsAddInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupsAddInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupsAddInstancesRequest);

                    /** InstanceGroupsAddInstancesRequest instances. */
                    public instances: google.cloud.compute.v1.IInstanceReference[];

                    /**
                     * Creates a new InstanceGroupsAddInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsAddInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupsAddInstancesRequest): google.cloud.compute.v1.InstanceGroupsAddInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupsAddInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsAddInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsAddInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupsAddInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsAddInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsAddInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsAddInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupsAddInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsAddInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsAddInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupsAddInstancesRequest;

                    /**
                     * Decodes an InstanceGroupsAddInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsAddInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupsAddInstancesRequest;

                    /**
                     * Verifies an InstanceGroupsAddInstancesRequest message.
                     * @param message Plain 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 InstanceGroupsAddInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsAddInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupsAddInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupsAddInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupsAddInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupsAddInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsAddInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsAddInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsListInstances. */
                interface IInstanceGroupsListInstances {

                    /** InstanceGroupsListInstances id */
                    id?: (string|null);

                    /** InstanceGroupsListInstances items */
                    items?: (google.cloud.compute.v1.IInstanceWithNamedPorts[]|null);

                    /** InstanceGroupsListInstances kind */
                    kind?: (string|null);

                    /** InstanceGroupsListInstances nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupsListInstances selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupsListInstances warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupsListInstances. */
                class InstanceGroupsListInstances implements IInstanceGroupsListInstances {

                    /**
                     * Constructs a new InstanceGroupsListInstances.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupsListInstances);

                    /** InstanceGroupsListInstances id. */
                    public id?: (string|null);

                    /** InstanceGroupsListInstances items. */
                    public items: google.cloud.compute.v1.IInstanceWithNamedPorts[];

                    /** InstanceGroupsListInstances kind. */
                    public kind?: (string|null);

                    /** InstanceGroupsListInstances nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupsListInstances selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupsListInstances warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupsListInstances instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsListInstances instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupsListInstances): google.cloud.compute.v1.InstanceGroupsListInstances;

                    /**
                     * Encodes the specified InstanceGroupsListInstances message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsListInstances.verify|verify} messages.
                     * @param message InstanceGroupsListInstances message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupsListInstances, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsListInstances message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsListInstances.verify|verify} messages.
                     * @param message InstanceGroupsListInstances message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupsListInstances, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsListInstances message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsListInstances
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupsListInstances;

                    /**
                     * Decodes an InstanceGroupsListInstances message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsListInstances
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupsListInstances;

                    /**
                     * Verifies an InstanceGroupsListInstances message.
                     * @param message Plain 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 InstanceGroupsListInstances message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsListInstances
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupsListInstances;

                    /**
                     * Creates a plain object from an InstanceGroupsListInstances message. Also converts values to other types if specified.
                     * @param message InstanceGroupsListInstances
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupsListInstances, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsListInstances to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsListInstances
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsListInstancesRequest. */
                interface IInstanceGroupsListInstancesRequest {

                    /** InstanceGroupsListInstancesRequest instanceState */
                    instanceState?: (string|null);
                }

                /** Represents an InstanceGroupsListInstancesRequest. */
                class InstanceGroupsListInstancesRequest implements IInstanceGroupsListInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupsListInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupsListInstancesRequest);

                    /** InstanceGroupsListInstancesRequest instanceState. */
                    public instanceState?: (string|null);

                    /**
                     * Creates a new InstanceGroupsListInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsListInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupsListInstancesRequest): google.cloud.compute.v1.InstanceGroupsListInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupsListInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsListInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupsListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsListInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsListInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupsListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsListInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupsListInstancesRequest;

                    /**
                     * Decodes an InstanceGroupsListInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupsListInstancesRequest;

                    /**
                     * Verifies an InstanceGroupsListInstancesRequest message.
                     * @param message Plain 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 InstanceGroupsListInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsListInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupsListInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupsListInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupsListInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupsListInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsListInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsListInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupsListInstancesRequest {

                    /** InstanceState enum. */
                    enum InstanceState {
                        UNDEFINED_INSTANCE_STATE = 0,
                        ALL = 64897,
                        RUNNING = 121282975
                    }
                }

                /** Properties of an InstanceGroupsRemoveInstancesRequest. */
                interface IInstanceGroupsRemoveInstancesRequest {

                    /** InstanceGroupsRemoveInstancesRequest instances */
                    instances?: (google.cloud.compute.v1.IInstanceReference[]|null);
                }

                /** Represents an InstanceGroupsRemoveInstancesRequest. */
                class InstanceGroupsRemoveInstancesRequest implements IInstanceGroupsRemoveInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupsRemoveInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupsRemoveInstancesRequest);

                    /** InstanceGroupsRemoveInstancesRequest instances. */
                    public instances: google.cloud.compute.v1.IInstanceReference[];

                    /**
                     * Creates a new InstanceGroupsRemoveInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsRemoveInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupsRemoveInstancesRequest): google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupsRemoveInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsRemoveInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupsRemoveInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsRemoveInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsRemoveInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupsRemoveInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsRemoveInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsRemoveInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequest;

                    /**
                     * Decodes an InstanceGroupsRemoveInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsRemoveInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequest;

                    /**
                     * Verifies an InstanceGroupsRemoveInstancesRequest message.
                     * @param message Plain 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 InstanceGroupsRemoveInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsRemoveInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupsRemoveInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupsRemoveInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsRemoveInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsRemoveInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsScopedList. */
                interface IInstanceGroupsScopedList {

                    /** InstanceGroupsScopedList instanceGroups */
                    instanceGroups?: (google.cloud.compute.v1.IInstanceGroup[]|null);

                    /** InstanceGroupsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceGroupsScopedList. */
                class InstanceGroupsScopedList implements IInstanceGroupsScopedList {

                    /**
                     * Constructs a new InstanceGroupsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupsScopedList);

                    /** InstanceGroupsScopedList instanceGroups. */
                    public instanceGroups: google.cloud.compute.v1.IInstanceGroup[];

                    /** InstanceGroupsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceGroupsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupsScopedList): google.cloud.compute.v1.InstanceGroupsScopedList;

                    /**
                     * Encodes the specified InstanceGroupsScopedList message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsScopedList.verify|verify} messages.
                     * @param message InstanceGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsScopedList.verify|verify} messages.
                     * @param message InstanceGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupsScopedList;

                    /**
                     * Decodes an InstanceGroupsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupsScopedList;

                    /**
                     * Verifies an InstanceGroupsScopedList message.
                     * @param message Plain 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 InstanceGroupsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupsScopedList;

                    /**
                     * Creates a plain object from an InstanceGroupsScopedList message. Also converts values to other types if specified.
                     * @param message InstanceGroupsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsSetNamedPortsRequest. */
                interface IInstanceGroupsSetNamedPortsRequest {

                    /** InstanceGroupsSetNamedPortsRequest fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceGroupsSetNamedPortsRequest namedPorts */
                    namedPorts?: (google.cloud.compute.v1.INamedPort[]|null);
                }

                /** Represents an InstanceGroupsSetNamedPortsRequest. */
                class InstanceGroupsSetNamedPortsRequest implements IInstanceGroupsSetNamedPortsRequest {

                    /**
                     * Constructs a new InstanceGroupsSetNamedPortsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceGroupsSetNamedPortsRequest);

                    /** InstanceGroupsSetNamedPortsRequest fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceGroupsSetNamedPortsRequest namedPorts. */
                    public namedPorts: google.cloud.compute.v1.INamedPort[];

                    /**
                     * Creates a new InstanceGroupsSetNamedPortsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsSetNamedPortsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceGroupsSetNamedPortsRequest): google.cloud.compute.v1.InstanceGroupsSetNamedPortsRequest;

                    /**
                     * Encodes the specified InstanceGroupsSetNamedPortsRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsSetNamedPortsRequest.verify|verify} messages.
                     * @param message InstanceGroupsSetNamedPortsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceGroupsSetNamedPortsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsSetNamedPortsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceGroupsSetNamedPortsRequest.verify|verify} messages.
                     * @param message InstanceGroupsSetNamedPortsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceGroupsSetNamedPortsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsSetNamedPortsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsSetNamedPortsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceGroupsSetNamedPortsRequest;

                    /**
                     * Decodes an InstanceGroupsSetNamedPortsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsSetNamedPortsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceGroupsSetNamedPortsRequest;

                    /**
                     * Verifies an InstanceGroupsSetNamedPortsRequest message.
                     * @param message Plain 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 InstanceGroupsSetNamedPortsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsSetNamedPortsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceGroupsSetNamedPortsRequest;

                    /**
                     * Creates a plain object from an InstanceGroupsSetNamedPortsRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupsSetNamedPortsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceGroupsSetNamedPortsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsSetNamedPortsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsSetNamedPortsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceList. */
                interface IInstanceList {

                    /** InstanceList id */
                    id?: (string|null);

                    /** InstanceList items */
                    items?: (google.cloud.compute.v1.IInstance[]|null);

                    /** InstanceList kind */
                    kind?: (string|null);

                    /** InstanceList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceList selfLink */
                    selfLink?: (string|null);

                    /** InstanceList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceList. */
                class InstanceList implements IInstanceList {

                    /**
                     * Constructs a new InstanceList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceList);

                    /** InstanceList id. */
                    public id?: (string|null);

                    /** InstanceList items. */
                    public items: google.cloud.compute.v1.IInstance[];

                    /** InstanceList kind. */
                    public kind?: (string|null);

                    /** InstanceList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceList): google.cloud.compute.v1.InstanceList;

                    /**
                     * Encodes the specified InstanceList message. Does not implicitly {@link google.cloud.compute.v1.InstanceList.verify|verify} messages.
                     * @param message InstanceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceList.verify|verify} messages.
                     * @param message InstanceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceList;

                    /**
                     * Decodes an InstanceList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceList;

                    /**
                     * Verifies an InstanceList message.
                     * @param message Plain 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 InstanceList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceList;

                    /**
                     * Creates a plain object from an InstanceList message. Also converts values to other types if specified.
                     * @param message InstanceList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceListReferrers. */
                interface IInstanceListReferrers {

                    /** InstanceListReferrers id */
                    id?: (string|null);

                    /** InstanceListReferrers items */
                    items?: (google.cloud.compute.v1.IReference[]|null);

                    /** InstanceListReferrers kind */
                    kind?: (string|null);

                    /** InstanceListReferrers nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceListReferrers selfLink */
                    selfLink?: (string|null);

                    /** InstanceListReferrers warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceListReferrers. */
                class InstanceListReferrers implements IInstanceListReferrers {

                    /**
                     * Constructs a new InstanceListReferrers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceListReferrers);

                    /** InstanceListReferrers id. */
                    public id?: (string|null);

                    /** InstanceListReferrers items. */
                    public items: google.cloud.compute.v1.IReference[];

                    /** InstanceListReferrers kind. */
                    public kind?: (string|null);

                    /** InstanceListReferrers nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceListReferrers selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceListReferrers warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceListReferrers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceListReferrers instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceListReferrers): google.cloud.compute.v1.InstanceListReferrers;

                    /**
                     * Encodes the specified InstanceListReferrers message. Does not implicitly {@link google.cloud.compute.v1.InstanceListReferrers.verify|verify} messages.
                     * @param message InstanceListReferrers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceListReferrers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceListReferrers message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceListReferrers.verify|verify} messages.
                     * @param message InstanceListReferrers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceListReferrers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceListReferrers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceListReferrers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceListReferrers;

                    /**
                     * Decodes an InstanceListReferrers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceListReferrers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceListReferrers;

                    /**
                     * Verifies an InstanceListReferrers message.
                     * @param message Plain 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 InstanceListReferrers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceListReferrers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceListReferrers;

                    /**
                     * Creates a plain object from an InstanceListReferrers message. Also converts values to other types if specified.
                     * @param message InstanceListReferrers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceListReferrers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceListReferrers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceListReferrers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceManagedByIgmError. */
                interface IInstanceManagedByIgmError {

                    /** InstanceManagedByIgmError error */
                    error?: (google.cloud.compute.v1.IInstanceManagedByIgmErrorManagedInstanceError|null);

                    /** InstanceManagedByIgmError instanceActionDetails */
                    instanceActionDetails?: (google.cloud.compute.v1.IInstanceManagedByIgmErrorInstanceActionDetails|null);

                    /** InstanceManagedByIgmError timestamp */
                    timestamp?: (string|null);
                }

                /** Represents an InstanceManagedByIgmError. */
                class InstanceManagedByIgmError implements IInstanceManagedByIgmError {

                    /**
                     * Constructs a new InstanceManagedByIgmError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceManagedByIgmError);

                    /** InstanceManagedByIgmError error. */
                    public error?: (google.cloud.compute.v1.IInstanceManagedByIgmErrorManagedInstanceError|null);

                    /** InstanceManagedByIgmError instanceActionDetails. */
                    public instanceActionDetails?: (google.cloud.compute.v1.IInstanceManagedByIgmErrorInstanceActionDetails|null);

                    /** InstanceManagedByIgmError timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new InstanceManagedByIgmError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceManagedByIgmError instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceManagedByIgmError): google.cloud.compute.v1.InstanceManagedByIgmError;

                    /**
                     * Encodes the specified InstanceManagedByIgmError message. Does not implicitly {@link google.cloud.compute.v1.InstanceManagedByIgmError.verify|verify} messages.
                     * @param message InstanceManagedByIgmError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceManagedByIgmError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceManagedByIgmError message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceManagedByIgmError.verify|verify} messages.
                     * @param message InstanceManagedByIgmError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceManagedByIgmError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceManagedByIgmError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceManagedByIgmError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceManagedByIgmError;

                    /**
                     * Decodes an InstanceManagedByIgmError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceManagedByIgmError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceManagedByIgmError;

                    /**
                     * Verifies an InstanceManagedByIgmError message.
                     * @param message Plain 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 InstanceManagedByIgmError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceManagedByIgmError
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceManagedByIgmError;

                    /**
                     * Creates a plain object from an InstanceManagedByIgmError message. Also converts values to other types if specified.
                     * @param message InstanceManagedByIgmError
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceManagedByIgmError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceManagedByIgmError to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceManagedByIgmError
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceManagedByIgmErrorInstanceActionDetails. */
                interface IInstanceManagedByIgmErrorInstanceActionDetails {

                    /** InstanceManagedByIgmErrorInstanceActionDetails action */
                    action?: (string|null);

                    /** InstanceManagedByIgmErrorInstanceActionDetails instance */
                    instance?: (string|null);

                    /** InstanceManagedByIgmErrorInstanceActionDetails version */
                    version?: (google.cloud.compute.v1.IManagedInstanceVersion|null);
                }

                /** Represents an InstanceManagedByIgmErrorInstanceActionDetails. */
                class InstanceManagedByIgmErrorInstanceActionDetails implements IInstanceManagedByIgmErrorInstanceActionDetails {

                    /**
                     * Constructs a new InstanceManagedByIgmErrorInstanceActionDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceManagedByIgmErrorInstanceActionDetails);

                    /** InstanceManagedByIgmErrorInstanceActionDetails action. */
                    public action?: (string|null);

                    /** InstanceManagedByIgmErrorInstanceActionDetails instance. */
                    public instance?: (string|null);

                    /** InstanceManagedByIgmErrorInstanceActionDetails version. */
                    public version?: (google.cloud.compute.v1.IManagedInstanceVersion|null);

                    /**
                     * Creates a new InstanceManagedByIgmErrorInstanceActionDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceManagedByIgmErrorInstanceActionDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceManagedByIgmErrorInstanceActionDetails): google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetails;

                    /**
                     * Encodes the specified InstanceManagedByIgmErrorInstanceActionDetails message. Does not implicitly {@link google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetails.verify|verify} messages.
                     * @param message InstanceManagedByIgmErrorInstanceActionDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceManagedByIgmErrorInstanceActionDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceManagedByIgmErrorInstanceActionDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetails.verify|verify} messages.
                     * @param message InstanceManagedByIgmErrorInstanceActionDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceManagedByIgmErrorInstanceActionDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceManagedByIgmErrorInstanceActionDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceManagedByIgmErrorInstanceActionDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetails;

                    /**
                     * Decodes an InstanceManagedByIgmErrorInstanceActionDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceManagedByIgmErrorInstanceActionDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetails;

                    /**
                     * Verifies an InstanceManagedByIgmErrorInstanceActionDetails message.
                     * @param message Plain 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 InstanceManagedByIgmErrorInstanceActionDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceManagedByIgmErrorInstanceActionDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetails;

                    /**
                     * Creates a plain object from an InstanceManagedByIgmErrorInstanceActionDetails message. Also converts values to other types if specified.
                     * @param message InstanceManagedByIgmErrorInstanceActionDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceManagedByIgmErrorInstanceActionDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceManagedByIgmErrorInstanceActionDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceManagedByIgmErrorInstanceActionDetails {

                    /** Action enum. */
                    enum Action {
                        UNDEFINED_ACTION = 0,
                        ABANDONING = 388244813,
                        CREATING = 455564985,
                        CREATING_WITHOUT_RETRIES = 428843785,
                        DELETING = 528602024,
                        NONE = 2402104,
                        RECREATING = 287278572,
                        REFRESHING = 163266343,
                        RESTARTING = 320534387,
                        RESUMING = 446856618,
                        STARTING = 488820800,
                        STOPPING = 350791796,
                        SUSPENDING = 514206246,
                        VERIFYING = 16982185
                    }
                }

                /** Properties of an InstanceManagedByIgmErrorManagedInstanceError. */
                interface IInstanceManagedByIgmErrorManagedInstanceError {

                    /** InstanceManagedByIgmErrorManagedInstanceError code */
                    code?: (string|null);

                    /** InstanceManagedByIgmErrorManagedInstanceError message */
                    message?: (string|null);
                }

                /** Represents an InstanceManagedByIgmErrorManagedInstanceError. */
                class InstanceManagedByIgmErrorManagedInstanceError implements IInstanceManagedByIgmErrorManagedInstanceError {

                    /**
                     * Constructs a new InstanceManagedByIgmErrorManagedInstanceError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceManagedByIgmErrorManagedInstanceError);

                    /** InstanceManagedByIgmErrorManagedInstanceError code. */
                    public code?: (string|null);

                    /** InstanceManagedByIgmErrorManagedInstanceError message. */
                    public message?: (string|null);

                    /**
                     * Creates a new InstanceManagedByIgmErrorManagedInstanceError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceManagedByIgmErrorManagedInstanceError instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceManagedByIgmErrorManagedInstanceError): google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceError;

                    /**
                     * Encodes the specified InstanceManagedByIgmErrorManagedInstanceError message. Does not implicitly {@link google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceError.verify|verify} messages.
                     * @param message InstanceManagedByIgmErrorManagedInstanceError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceManagedByIgmErrorManagedInstanceError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceManagedByIgmErrorManagedInstanceError message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceError.verify|verify} messages.
                     * @param message InstanceManagedByIgmErrorManagedInstanceError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceManagedByIgmErrorManagedInstanceError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceManagedByIgmErrorManagedInstanceError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceManagedByIgmErrorManagedInstanceError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceError;

                    /**
                     * Decodes an InstanceManagedByIgmErrorManagedInstanceError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceManagedByIgmErrorManagedInstanceError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceError;

                    /**
                     * Verifies an InstanceManagedByIgmErrorManagedInstanceError message.
                     * @param message Plain 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 InstanceManagedByIgmErrorManagedInstanceError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceManagedByIgmErrorManagedInstanceError
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceError;

                    /**
                     * Creates a plain object from an InstanceManagedByIgmErrorManagedInstanceError message. Also converts values to other types if specified.
                     * @param message InstanceManagedByIgmErrorManagedInstanceError
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceManagedByIgmErrorManagedInstanceError to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceManagedByIgmErrorManagedInstanceError
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceMoveRequest. */
                interface IInstanceMoveRequest {

                    /** InstanceMoveRequest destinationZone */
                    destinationZone?: (string|null);

                    /** InstanceMoveRequest targetInstance */
                    targetInstance?: (string|null);
                }

                /** Represents an InstanceMoveRequest. */
                class InstanceMoveRequest implements IInstanceMoveRequest {

                    /**
                     * Constructs a new InstanceMoveRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceMoveRequest);

                    /** InstanceMoveRequest destinationZone. */
                    public destinationZone?: (string|null);

                    /** InstanceMoveRequest targetInstance. */
                    public targetInstance?: (string|null);

                    /**
                     * Creates a new InstanceMoveRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceMoveRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceMoveRequest): google.cloud.compute.v1.InstanceMoveRequest;

                    /**
                     * Encodes the specified InstanceMoveRequest message. Does not implicitly {@link google.cloud.compute.v1.InstanceMoveRequest.verify|verify} messages.
                     * @param message InstanceMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceMoveRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceMoveRequest.verify|verify} messages.
                     * @param message InstanceMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceMoveRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceMoveRequest;

                    /**
                     * Decodes an InstanceMoveRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceMoveRequest;

                    /**
                     * Verifies an InstanceMoveRequest message.
                     * @param message Plain 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 InstanceMoveRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceMoveRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceMoveRequest;

                    /**
                     * Creates a plain object from an InstanceMoveRequest message. Also converts values to other types if specified.
                     * @param message InstanceMoveRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceMoveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceMoveRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceMoveRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceParams. */
                interface IInstanceParams {

                    /** InstanceParams requestValidForDuration */
                    requestValidForDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** InstanceParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InstanceParams. */
                class InstanceParams implements IInstanceParams {

                    /**
                     * Constructs a new InstanceParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceParams);

                    /** InstanceParams requestValidForDuration. */
                    public requestValidForDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** InstanceParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InstanceParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceParams): google.cloud.compute.v1.InstanceParams;

                    /**
                     * Encodes the specified InstanceParams message. Does not implicitly {@link google.cloud.compute.v1.InstanceParams.verify|verify} messages.
                     * @param message InstanceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceParams.verify|verify} messages.
                     * @param message InstanceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceParams;

                    /**
                     * Decodes an InstanceParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceParams;

                    /**
                     * Verifies an InstanceParams message.
                     * @param message Plain 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 InstanceParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceParams;

                    /**
                     * Creates a plain object from an InstanceParams message. Also converts values to other types if specified.
                     * @param message InstanceParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceProperties. */
                interface IInstanceProperties {

                    /** InstanceProperties advancedMachineFeatures */
                    advancedMachineFeatures?: (google.cloud.compute.v1.IAdvancedMachineFeatures|null);

                    /** InstanceProperties canIpForward */
                    canIpForward?: (boolean|null);

                    /** InstanceProperties confidentialInstanceConfig */
                    confidentialInstanceConfig?: (google.cloud.compute.v1.IConfidentialInstanceConfig|null);

                    /** InstanceProperties description */
                    description?: (string|null);

                    /** InstanceProperties disks */
                    disks?: (google.cloud.compute.v1.IAttachedDisk[]|null);

                    /** InstanceProperties guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1.IAcceleratorConfig[]|null);

                    /** InstanceProperties keyRevocationActionType */
                    keyRevocationActionType?: (string|null);

                    /** InstanceProperties labels */
                    labels?: ({ [k: string]: string }|null);

                    /** InstanceProperties machineType */
                    machineType?: (string|null);

                    /** InstanceProperties metadata */
                    metadata?: (google.cloud.compute.v1.IMetadata|null);

                    /** InstanceProperties minCpuPlatform */
                    minCpuPlatform?: (string|null);

                    /** InstanceProperties networkInterfaces */
                    networkInterfaces?: (google.cloud.compute.v1.INetworkInterface[]|null);

                    /** InstanceProperties networkPerformanceConfig */
                    networkPerformanceConfig?: (google.cloud.compute.v1.INetworkPerformanceConfig|null);

                    /** InstanceProperties privateIpv6GoogleAccess */
                    privateIpv6GoogleAccess?: (string|null);

                    /** InstanceProperties reservationAffinity */
                    reservationAffinity?: (google.cloud.compute.v1.IReservationAffinity|null);

                    /** InstanceProperties resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);

                    /** InstanceProperties resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** InstanceProperties scheduling */
                    scheduling?: (google.cloud.compute.v1.IScheduling|null);

                    /** InstanceProperties serviceAccounts */
                    serviceAccounts?: (google.cloud.compute.v1.IServiceAccount[]|null);

                    /** InstanceProperties shieldedInstanceConfig */
                    shieldedInstanceConfig?: (google.cloud.compute.v1.IShieldedInstanceConfig|null);

                    /** InstanceProperties tags */
                    tags?: (google.cloud.compute.v1.ITags|null);

                    /** InstanceProperties workloadIdentityConfig */
                    workloadIdentityConfig?: (google.cloud.compute.v1.IWorkloadIdentityConfig|null);
                }

                /** Represents an InstanceProperties. */
                class InstanceProperties implements IInstanceProperties {

                    /**
                     * Constructs a new InstanceProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceProperties);

                    /** InstanceProperties advancedMachineFeatures. */
                    public advancedMachineFeatures?: (google.cloud.compute.v1.IAdvancedMachineFeatures|null);

                    /** InstanceProperties canIpForward. */
                    public canIpForward?: (boolean|null);

                    /** InstanceProperties confidentialInstanceConfig. */
                    public confidentialInstanceConfig?: (google.cloud.compute.v1.IConfidentialInstanceConfig|null);

                    /** InstanceProperties description. */
                    public description?: (string|null);

                    /** InstanceProperties disks. */
                    public disks: google.cloud.compute.v1.IAttachedDisk[];

                    /** InstanceProperties guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1.IAcceleratorConfig[];

                    /** InstanceProperties keyRevocationActionType. */
                    public keyRevocationActionType?: (string|null);

                    /** InstanceProperties labels. */
                    public labels: { [k: string]: string };

                    /** InstanceProperties machineType. */
                    public machineType?: (string|null);

                    /** InstanceProperties metadata. */
                    public metadata?: (google.cloud.compute.v1.IMetadata|null);

                    /** InstanceProperties minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /** InstanceProperties networkInterfaces. */
                    public networkInterfaces: google.cloud.compute.v1.INetworkInterface[];

                    /** InstanceProperties networkPerformanceConfig. */
                    public networkPerformanceConfig?: (google.cloud.compute.v1.INetworkPerformanceConfig|null);

                    /** InstanceProperties privateIpv6GoogleAccess. */
                    public privateIpv6GoogleAccess?: (string|null);

                    /** InstanceProperties reservationAffinity. */
                    public reservationAffinity?: (google.cloud.compute.v1.IReservationAffinity|null);

                    /** InstanceProperties resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /** InstanceProperties resourcePolicies. */
                    public resourcePolicies: string[];

                    /** InstanceProperties scheduling. */
                    public scheduling?: (google.cloud.compute.v1.IScheduling|null);

                    /** InstanceProperties serviceAccounts. */
                    public serviceAccounts: google.cloud.compute.v1.IServiceAccount[];

                    /** InstanceProperties shieldedInstanceConfig. */
                    public shieldedInstanceConfig?: (google.cloud.compute.v1.IShieldedInstanceConfig|null);

                    /** InstanceProperties tags. */
                    public tags?: (google.cloud.compute.v1.ITags|null);

                    /** InstanceProperties workloadIdentityConfig. */
                    public workloadIdentityConfig?: (google.cloud.compute.v1.IWorkloadIdentityConfig|null);

                    /**
                     * Creates a new InstanceProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceProperties): google.cloud.compute.v1.InstanceProperties;

                    /**
                     * Encodes the specified InstanceProperties message. Does not implicitly {@link google.cloud.compute.v1.InstanceProperties.verify|verify} messages.
                     * @param message InstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceProperties.verify|verify} messages.
                     * @param message InstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceProperties;

                    /**
                     * Decodes an InstanceProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceProperties;

                    /**
                     * Verifies an InstanceProperties message.
                     * @param message Plain 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 InstanceProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceProperties;

                    /**
                     * Creates a plain object from an InstanceProperties message. Also converts values to other types if specified.
                     * @param message InstanceProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceProperties {

                    /** KeyRevocationActionType enum. */
                    enum KeyRevocationActionType {
                        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0,
                        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106,
                        NONE = 2402104,
                        STOP = 2555906
                    }

                    /** PrivateIpv6GoogleAccess enum. */
                    enum PrivateIpv6GoogleAccess {
                        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0,
                        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994,
                        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263,
                        INHERIT_FROM_SUBNETWORK = 530256959
                    }
                }

                /** Properties of an InstancePropertiesPatch. */
                interface IInstancePropertiesPatch {

                    /** InstancePropertiesPatch labels */
                    labels?: ({ [k: string]: string }|null);

                    /** InstancePropertiesPatch metadata */
                    metadata?: ({ [k: string]: string }|null);
                }

                /** Represents an InstancePropertiesPatch. */
                class InstancePropertiesPatch implements IInstancePropertiesPatch {

                    /**
                     * Constructs a new InstancePropertiesPatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancePropertiesPatch);

                    /** InstancePropertiesPatch labels. */
                    public labels: { [k: string]: string };

                    /** InstancePropertiesPatch metadata. */
                    public metadata: { [k: string]: string };

                    /**
                     * Creates a new InstancePropertiesPatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancePropertiesPatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancePropertiesPatch): google.cloud.compute.v1.InstancePropertiesPatch;

                    /**
                     * Encodes the specified InstancePropertiesPatch message. Does not implicitly {@link google.cloud.compute.v1.InstancePropertiesPatch.verify|verify} messages.
                     * @param message InstancePropertiesPatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancePropertiesPatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancePropertiesPatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancePropertiesPatch.verify|verify} messages.
                     * @param message InstancePropertiesPatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancePropertiesPatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancePropertiesPatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancePropertiesPatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancePropertiesPatch;

                    /**
                     * Decodes an InstancePropertiesPatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancePropertiesPatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancePropertiesPatch;

                    /**
                     * Verifies an InstancePropertiesPatch message.
                     * @param message Plain 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 InstancePropertiesPatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancePropertiesPatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancePropertiesPatch;

                    /**
                     * Creates a plain object from an InstancePropertiesPatch message. Also converts values to other types if specified.
                     * @param message InstancePropertiesPatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancePropertiesPatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancePropertiesPatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancePropertiesPatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceReference. */
                interface IInstanceReference {

                    /** InstanceReference instance */
                    instance?: (string|null);
                }

                /** Represents an InstanceReference. */
                class InstanceReference implements IInstanceReference {

                    /**
                     * Constructs a new InstanceReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceReference);

                    /** InstanceReference instance. */
                    public instance?: (string|null);

                    /**
                     * Creates a new InstanceReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceReference): google.cloud.compute.v1.InstanceReference;

                    /**
                     * Encodes the specified InstanceReference message. Does not implicitly {@link google.cloud.compute.v1.InstanceReference.verify|verify} messages.
                     * @param message InstanceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceReference.verify|verify} messages.
                     * @param message InstanceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceReference;

                    /**
                     * Decodes an InstanceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceReference;

                    /**
                     * Verifies an InstanceReference message.
                     * @param message Plain 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 InstanceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceReference;

                    /**
                     * Creates a plain object from an InstanceReference message. Also converts values to other types if specified.
                     * @param message InstanceReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceSettings. */
                interface IInstanceSettings {

                    /** InstanceSettings fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceSettings kind */
                    kind?: (string|null);

                    /** InstanceSettings metadata */
                    metadata?: (google.cloud.compute.v1.IInstanceSettingsMetadata|null);

                    /** InstanceSettings zone */
                    zone?: (string|null);
                }

                /** Represents an InstanceSettings. */
                class InstanceSettings implements IInstanceSettings {

                    /**
                     * Constructs a new InstanceSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceSettings);

                    /** InstanceSettings fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceSettings kind. */
                    public kind?: (string|null);

                    /** InstanceSettings metadata. */
                    public metadata?: (google.cloud.compute.v1.IInstanceSettingsMetadata|null);

                    /** InstanceSettings zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstanceSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceSettings): google.cloud.compute.v1.InstanceSettings;

                    /**
                     * Encodes the specified InstanceSettings message. Does not implicitly {@link google.cloud.compute.v1.InstanceSettings.verify|verify} messages.
                     * @param message InstanceSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceSettings.verify|verify} messages.
                     * @param message InstanceSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceSettings;

                    /**
                     * Decodes an InstanceSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceSettings;

                    /**
                     * Verifies an InstanceSettings message.
                     * @param message Plain 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 InstanceSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceSettings;

                    /**
                     * Creates a plain object from an InstanceSettings message. Also converts values to other types if specified.
                     * @param message InstanceSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceSettingsMetadata. */
                interface IInstanceSettingsMetadata {

                    /** InstanceSettingsMetadata items */
                    items?: ({ [k: string]: string }|null);

                    /** InstanceSettingsMetadata kind */
                    kind?: (string|null);
                }

                /** Represents an InstanceSettingsMetadata. */
                class InstanceSettingsMetadata implements IInstanceSettingsMetadata {

                    /**
                     * Constructs a new InstanceSettingsMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceSettingsMetadata);

                    /** InstanceSettingsMetadata items. */
                    public items: { [k: string]: string };

                    /** InstanceSettingsMetadata kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new InstanceSettingsMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceSettingsMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceSettingsMetadata): google.cloud.compute.v1.InstanceSettingsMetadata;

                    /**
                     * Encodes the specified InstanceSettingsMetadata message. Does not implicitly {@link google.cloud.compute.v1.InstanceSettingsMetadata.verify|verify} messages.
                     * @param message InstanceSettingsMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceSettingsMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceSettingsMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceSettingsMetadata.verify|verify} messages.
                     * @param message InstanceSettingsMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceSettingsMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceSettingsMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceSettingsMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceSettingsMetadata;

                    /**
                     * Decodes an InstanceSettingsMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceSettingsMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceSettingsMetadata;

                    /**
                     * Verifies an InstanceSettingsMetadata message.
                     * @param message Plain 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 InstanceSettingsMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceSettingsMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceSettingsMetadata;

                    /**
                     * Creates a plain object from an InstanceSettingsMetadata message. Also converts values to other types if specified.
                     * @param message InstanceSettingsMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceSettingsMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceSettingsMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceSettingsMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceTemplate. */
                interface IInstanceTemplate {

                    /** InstanceTemplate creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstanceTemplate description */
                    description?: (string|null);

                    /** InstanceTemplate id */
                    id?: (number|Long|string|null);

                    /** InstanceTemplate kind */
                    kind?: (string|null);

                    /** InstanceTemplate name */
                    name?: (string|null);

                    /** InstanceTemplate properties */
                    properties?: (google.cloud.compute.v1.IInstanceProperties|null);

                    /** InstanceTemplate region */
                    region?: (string|null);

                    /** InstanceTemplate selfLink */
                    selfLink?: (string|null);

                    /** InstanceTemplate sourceInstance */
                    sourceInstance?: (string|null);

                    /** InstanceTemplate sourceInstanceParams */
                    sourceInstanceParams?: (google.cloud.compute.v1.ISourceInstanceParams|null);
                }

                /** Represents an InstanceTemplate. */
                class InstanceTemplate implements IInstanceTemplate {

                    /**
                     * Constructs a new InstanceTemplate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceTemplate);

                    /** InstanceTemplate creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstanceTemplate description. */
                    public description?: (string|null);

                    /** InstanceTemplate id. */
                    public id?: (number|Long|string|null);

                    /** InstanceTemplate kind. */
                    public kind?: (string|null);

                    /** InstanceTemplate name. */
                    public name?: (string|null);

                    /** InstanceTemplate properties. */
                    public properties?: (google.cloud.compute.v1.IInstanceProperties|null);

                    /** InstanceTemplate region. */
                    public region?: (string|null);

                    /** InstanceTemplate selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceTemplate sourceInstance. */
                    public sourceInstance?: (string|null);

                    /** InstanceTemplate sourceInstanceParams. */
                    public sourceInstanceParams?: (google.cloud.compute.v1.ISourceInstanceParams|null);

                    /**
                     * Creates a new InstanceTemplate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceTemplate instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceTemplate): google.cloud.compute.v1.InstanceTemplate;

                    /**
                     * Encodes the specified InstanceTemplate message. Does not implicitly {@link google.cloud.compute.v1.InstanceTemplate.verify|verify} messages.
                     * @param message InstanceTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceTemplate message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceTemplate.verify|verify} messages.
                     * @param message InstanceTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceTemplate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceTemplate;

                    /**
                     * Decodes an InstanceTemplate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceTemplate;

                    /**
                     * Verifies an InstanceTemplate message.
                     * @param message Plain 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 InstanceTemplate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceTemplate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceTemplate;

                    /**
                     * Creates a plain object from an InstanceTemplate message. Also converts values to other types if specified.
                     * @param message InstanceTemplate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceTemplate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceTemplate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceTemplateAggregatedList. */
                interface IInstanceTemplateAggregatedList {

                    /** InstanceTemplateAggregatedList id */
                    id?: (string|null);

                    /** InstanceTemplateAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IInstanceTemplatesScopedList }|null);

                    /** InstanceTemplateAggregatedList kind */
                    kind?: (string|null);

                    /** InstanceTemplateAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceTemplateAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstanceTemplateAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceTemplateAggregatedList. */
                class InstanceTemplateAggregatedList implements IInstanceTemplateAggregatedList {

                    /**
                     * Constructs a new InstanceTemplateAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceTemplateAggregatedList);

                    /** InstanceTemplateAggregatedList id. */
                    public id?: (string|null);

                    /** InstanceTemplateAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IInstanceTemplatesScopedList };

                    /** InstanceTemplateAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstanceTemplateAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceTemplateAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceTemplateAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceTemplateAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceTemplateAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceTemplateAggregatedList): google.cloud.compute.v1.InstanceTemplateAggregatedList;

                    /**
                     * Encodes the specified InstanceTemplateAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.InstanceTemplateAggregatedList.verify|verify} messages.
                     * @param message InstanceTemplateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceTemplateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceTemplateAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceTemplateAggregatedList.verify|verify} messages.
                     * @param message InstanceTemplateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceTemplateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceTemplateAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceTemplateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceTemplateAggregatedList;

                    /**
                     * Decodes an InstanceTemplateAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceTemplateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceTemplateAggregatedList;

                    /**
                     * Verifies an InstanceTemplateAggregatedList message.
                     * @param message Plain 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 InstanceTemplateAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceTemplateAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceTemplateAggregatedList;

                    /**
                     * Creates a plain object from an InstanceTemplateAggregatedList message. Also converts values to other types if specified.
                     * @param message InstanceTemplateAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceTemplateAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceTemplateAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceTemplateAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceTemplateList. */
                interface IInstanceTemplateList {

                    /** InstanceTemplateList id */
                    id?: (string|null);

                    /** InstanceTemplateList items */
                    items?: (google.cloud.compute.v1.IInstanceTemplate[]|null);

                    /** InstanceTemplateList kind */
                    kind?: (string|null);

                    /** InstanceTemplateList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceTemplateList selfLink */
                    selfLink?: (string|null);

                    /** InstanceTemplateList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceTemplateList. */
                class InstanceTemplateList implements IInstanceTemplateList {

                    /**
                     * Constructs a new InstanceTemplateList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceTemplateList);

                    /** InstanceTemplateList id. */
                    public id?: (string|null);

                    /** InstanceTemplateList items. */
                    public items: google.cloud.compute.v1.IInstanceTemplate[];

                    /** InstanceTemplateList kind. */
                    public kind?: (string|null);

                    /** InstanceTemplateList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceTemplateList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceTemplateList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceTemplateList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceTemplateList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceTemplateList): google.cloud.compute.v1.InstanceTemplateList;

                    /**
                     * Encodes the specified InstanceTemplateList message. Does not implicitly {@link google.cloud.compute.v1.InstanceTemplateList.verify|verify} messages.
                     * @param message InstanceTemplateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceTemplateList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceTemplateList.verify|verify} messages.
                     * @param message InstanceTemplateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceTemplateList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceTemplateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceTemplateList;

                    /**
                     * Decodes an InstanceTemplateList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceTemplateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceTemplateList;

                    /**
                     * Verifies an InstanceTemplateList message.
                     * @param message Plain 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 InstanceTemplateList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceTemplateList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceTemplateList;

                    /**
                     * Creates a plain object from an InstanceTemplateList message. Also converts values to other types if specified.
                     * @param message InstanceTemplateList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceTemplateList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceTemplateList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceTemplateList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceTemplatesScopedList. */
                interface IInstanceTemplatesScopedList {

                    /** InstanceTemplatesScopedList instanceTemplates */
                    instanceTemplates?: (google.cloud.compute.v1.IInstanceTemplate[]|null);

                    /** InstanceTemplatesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstanceTemplatesScopedList. */
                class InstanceTemplatesScopedList implements IInstanceTemplatesScopedList {

                    /**
                     * Constructs a new InstanceTemplatesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceTemplatesScopedList);

                    /** InstanceTemplatesScopedList instanceTemplates. */
                    public instanceTemplates: google.cloud.compute.v1.IInstanceTemplate[];

                    /** InstanceTemplatesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstanceTemplatesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceTemplatesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceTemplatesScopedList): google.cloud.compute.v1.InstanceTemplatesScopedList;

                    /**
                     * Encodes the specified InstanceTemplatesScopedList message. Does not implicitly {@link google.cloud.compute.v1.InstanceTemplatesScopedList.verify|verify} messages.
                     * @param message InstanceTemplatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceTemplatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceTemplatesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceTemplatesScopedList.verify|verify} messages.
                     * @param message InstanceTemplatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceTemplatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceTemplatesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceTemplatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceTemplatesScopedList;

                    /**
                     * Decodes an InstanceTemplatesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceTemplatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceTemplatesScopedList;

                    /**
                     * Verifies an InstanceTemplatesScopedList message.
                     * @param message Plain 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 InstanceTemplatesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceTemplatesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceTemplatesScopedList;

                    /**
                     * Creates a plain object from an InstanceTemplatesScopedList message. Also converts values to other types if specified.
                     * @param message InstanceTemplatesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceTemplatesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceTemplatesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceTemplatesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceWithNamedPorts. */
                interface IInstanceWithNamedPorts {

                    /** InstanceWithNamedPorts instance */
                    instance?: (string|null);

                    /** InstanceWithNamedPorts namedPorts */
                    namedPorts?: (google.cloud.compute.v1.INamedPort[]|null);

                    /** InstanceWithNamedPorts status */
                    status?: (string|null);
                }

                /** Represents an InstanceWithNamedPorts. */
                class InstanceWithNamedPorts implements IInstanceWithNamedPorts {

                    /**
                     * Constructs a new InstanceWithNamedPorts.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstanceWithNamedPorts);

                    /** InstanceWithNamedPorts instance. */
                    public instance?: (string|null);

                    /** InstanceWithNamedPorts namedPorts. */
                    public namedPorts: google.cloud.compute.v1.INamedPort[];

                    /** InstanceWithNamedPorts status. */
                    public status?: (string|null);

                    /**
                     * Creates a new InstanceWithNamedPorts instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceWithNamedPorts instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstanceWithNamedPorts): google.cloud.compute.v1.InstanceWithNamedPorts;

                    /**
                     * Encodes the specified InstanceWithNamedPorts message. Does not implicitly {@link google.cloud.compute.v1.InstanceWithNamedPorts.verify|verify} messages.
                     * @param message InstanceWithNamedPorts message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstanceWithNamedPorts, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceWithNamedPorts message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstanceWithNamedPorts.verify|verify} messages.
                     * @param message InstanceWithNamedPorts message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstanceWithNamedPorts, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceWithNamedPorts message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceWithNamedPorts
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstanceWithNamedPorts;

                    /**
                     * Decodes an InstanceWithNamedPorts message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceWithNamedPorts
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstanceWithNamedPorts;

                    /**
                     * Verifies an InstanceWithNamedPorts message.
                     * @param message Plain 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 InstanceWithNamedPorts message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceWithNamedPorts
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstanceWithNamedPorts;

                    /**
                     * Creates a plain object from an InstanceWithNamedPorts message. Also converts values to other types if specified.
                     * @param message InstanceWithNamedPorts
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstanceWithNamedPorts, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceWithNamedPorts to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceWithNamedPorts
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceWithNamedPorts {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DEPROVISIONING = 428935662,
                        PENDING = 35394935,
                        PROVISIONING = 290896621,
                        REPAIRING = 413483285,
                        RUNNING = 121282975,
                        STAGING = 431072283,
                        STOPPED = 444276141,
                        STOPPING = 350791796,
                        SUSPENDED = 51223995,
                        SUSPENDING = 514206246,
                        TERMINATED = 250018339
                    }
                }

                /** Properties of an InstancesAddResourcePoliciesRequest. */
                interface IInstancesAddResourcePoliciesRequest {

                    /** InstancesAddResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents an InstancesAddResourcePoliciesRequest. */
                class InstancesAddResourcePoliciesRequest implements IInstancesAddResourcePoliciesRequest {

                    /**
                     * Constructs a new InstancesAddResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesAddResourcePoliciesRequest);

                    /** InstancesAddResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new InstancesAddResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesAddResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesAddResourcePoliciesRequest): google.cloud.compute.v1.InstancesAddResourcePoliciesRequest;

                    /**
                     * Encodes the specified InstancesAddResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message InstancesAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesAddResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message InstancesAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesAddResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesAddResourcePoliciesRequest;

                    /**
                     * Decodes an InstancesAddResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesAddResourcePoliciesRequest;

                    /**
                     * Verifies an InstancesAddResourcePoliciesRequest message.
                     * @param message Plain 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 InstancesAddResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesAddResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesAddResourcePoliciesRequest;

                    /**
                     * Creates a plain object from an InstancesAddResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message InstancesAddResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesAddResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesAddResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesAddResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesBulkInsertOperationMetadata. */
                interface IInstancesBulkInsertOperationMetadata {

                    /** InstancesBulkInsertOperationMetadata perLocationStatus */
                    perLocationStatus?: ({ [k: string]: google.cloud.compute.v1.IBulkInsertOperationStatus }|null);
                }

                /** Represents an InstancesBulkInsertOperationMetadata. */
                class InstancesBulkInsertOperationMetadata implements IInstancesBulkInsertOperationMetadata {

                    /**
                     * Constructs a new InstancesBulkInsertOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesBulkInsertOperationMetadata);

                    /** InstancesBulkInsertOperationMetadata perLocationStatus. */
                    public perLocationStatus: { [k: string]: google.cloud.compute.v1.IBulkInsertOperationStatus };

                    /**
                     * Creates a new InstancesBulkInsertOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesBulkInsertOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesBulkInsertOperationMetadata): google.cloud.compute.v1.InstancesBulkInsertOperationMetadata;

                    /**
                     * Encodes the specified InstancesBulkInsertOperationMetadata message. Does not implicitly {@link google.cloud.compute.v1.InstancesBulkInsertOperationMetadata.verify|verify} messages.
                     * @param message InstancesBulkInsertOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesBulkInsertOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesBulkInsertOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesBulkInsertOperationMetadata.verify|verify} messages.
                     * @param message InstancesBulkInsertOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesBulkInsertOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesBulkInsertOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesBulkInsertOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesBulkInsertOperationMetadata;

                    /**
                     * Decodes an InstancesBulkInsertOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesBulkInsertOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesBulkInsertOperationMetadata;

                    /**
                     * Verifies an InstancesBulkInsertOperationMetadata message.
                     * @param message Plain 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 InstancesBulkInsertOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesBulkInsertOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesBulkInsertOperationMetadata;

                    /**
                     * Creates a plain object from an InstancesBulkInsertOperationMetadata message. Also converts values to other types if specified.
                     * @param message InstancesBulkInsertOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesBulkInsertOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesBulkInsertOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesBulkInsertOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesGetEffectiveFirewallsResponse. */
                interface IInstancesGetEffectiveFirewallsResponse {

                    /** InstancesGetEffectiveFirewallsResponse firewallPolicys */
                    firewallPolicys?: (google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy[]|null);

                    /** InstancesGetEffectiveFirewallsResponse firewalls */
                    firewalls?: (google.cloud.compute.v1.IFirewall[]|null);
                }

                /** Represents an InstancesGetEffectiveFirewallsResponse. */
                class InstancesGetEffectiveFirewallsResponse implements IInstancesGetEffectiveFirewallsResponse {

                    /**
                     * Constructs a new InstancesGetEffectiveFirewallsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponse);

                    /** InstancesGetEffectiveFirewallsResponse firewallPolicys. */
                    public firewallPolicys: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy[];

                    /** InstancesGetEffectiveFirewallsResponse firewalls. */
                    public firewalls: google.cloud.compute.v1.IFirewall[];

                    /**
                     * Creates a new InstancesGetEffectiveFirewallsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesGetEffectiveFirewallsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponse): google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponse message. Does not implicitly {@link google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse;

                    /**
                     * Verifies an InstancesGetEffectiveFirewallsResponse message.
                     * @param message Plain 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 InstancesGetEffectiveFirewallsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesGetEffectiveFirewallsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse;

                    /**
                     * Creates a plain object from an InstancesGetEffectiveFirewallsResponse message. Also converts values to other types if specified.
                     * @param message InstancesGetEffectiveFirewallsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesGetEffectiveFirewallsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesGetEffectiveFirewallsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                interface IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName */
                    displayName?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy name */
                    name?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules */
                    packetMirroringRules?: (google.cloud.compute.v1.IFirewallPolicyRule[]|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority */
                    priority?: (number|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules */
                    rules?: (google.cloud.compute.v1.IFirewallPolicyRule[]|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy shortName */
                    shortName?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy type */
                    type?: (string|null);
                }

                /** Represents an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy implements IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /**
                     * Constructs a new InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName. */
                    public displayName?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy name. */
                    public name?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules. */
                    public packetMirroringRules: google.cloud.compute.v1.IFirewallPolicyRule[];

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority. */
                    public priority?: (number|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules. */
                    public rules: google.cloud.compute.v1.IFirewallPolicyRule[];

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy shortName. */
                    public shortName?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy): google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Verifies an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message.
                     * @param message Plain 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 InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Creates a plain object from an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Also converts values to other types if specified.
                     * @param message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HIERARCHY = 69902869,
                        NETWORK = 413984270,
                        NETWORK_REGIONAL = 190804272,
                        SYSTEM_GLOBAL = 60099507,
                        SYSTEM_REGIONAL = 161777199,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InstancesRemoveResourcePoliciesRequest. */
                interface IInstancesRemoveResourcePoliciesRequest {

                    /** InstancesRemoveResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents an InstancesRemoveResourcePoliciesRequest. */
                class InstancesRemoveResourcePoliciesRequest implements IInstancesRemoveResourcePoliciesRequest {

                    /**
                     * Constructs a new InstancesRemoveResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesRemoveResourcePoliciesRequest);

                    /** InstancesRemoveResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new InstancesRemoveResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesRemoveResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesRemoveResourcePoliciesRequest): google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequest;

                    /**
                     * Encodes the specified InstancesRemoveResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message InstancesRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesRemoveResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message InstancesRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesRemoveResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequest;

                    /**
                     * Decodes an InstancesRemoveResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequest;

                    /**
                     * Verifies an InstancesRemoveResourcePoliciesRequest message.
                     * @param message Plain 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 InstancesRemoveResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesRemoveResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequest;

                    /**
                     * Creates a plain object from an InstancesRemoveResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message InstancesRemoveResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesRemoveResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesRemoveResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesReportHostAsFaultyRequest. */
                interface IInstancesReportHostAsFaultyRequest {

                    /** InstancesReportHostAsFaultyRequest disruptionSchedule */
                    disruptionSchedule?: (string|null);

                    /** InstancesReportHostAsFaultyRequest faultReasons */
                    faultReasons?: (google.cloud.compute.v1.IInstancesReportHostAsFaultyRequestFaultReason[]|null);
                }

                /** Represents an InstancesReportHostAsFaultyRequest. */
                class InstancesReportHostAsFaultyRequest implements IInstancesReportHostAsFaultyRequest {

                    /**
                     * Constructs a new InstancesReportHostAsFaultyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequest);

                    /** InstancesReportHostAsFaultyRequest disruptionSchedule. */
                    public disruptionSchedule?: (string|null);

                    /** InstancesReportHostAsFaultyRequest faultReasons. */
                    public faultReasons: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequestFaultReason[];

                    /**
                     * Creates a new InstancesReportHostAsFaultyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesReportHostAsFaultyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequest): google.cloud.compute.v1.InstancesReportHostAsFaultyRequest;

                    /**
                     * Encodes the specified InstancesReportHostAsFaultyRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesReportHostAsFaultyRequest.verify|verify} messages.
                     * @param message InstancesReportHostAsFaultyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesReportHostAsFaultyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesReportHostAsFaultyRequest.verify|verify} messages.
                     * @param message InstancesReportHostAsFaultyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesReportHostAsFaultyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesReportHostAsFaultyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesReportHostAsFaultyRequest;

                    /**
                     * Decodes an InstancesReportHostAsFaultyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesReportHostAsFaultyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesReportHostAsFaultyRequest;

                    /**
                     * Verifies an InstancesReportHostAsFaultyRequest message.
                     * @param message Plain 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 InstancesReportHostAsFaultyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesReportHostAsFaultyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesReportHostAsFaultyRequest;

                    /**
                     * Creates a plain object from an InstancesReportHostAsFaultyRequest message. Also converts values to other types if specified.
                     * @param message InstancesReportHostAsFaultyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesReportHostAsFaultyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesReportHostAsFaultyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesReportHostAsFaultyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstancesReportHostAsFaultyRequest {

                    /** DisruptionSchedule enum. */
                    enum DisruptionSchedule {
                        UNDEFINED_DISRUPTION_SCHEDULE = 0,
                        DISRUPTION_SCHEDULE_UNSPECIFIED = 332543835,
                        FUTURE = 474513859,
                        IMMEDIATE = 152881041
                    }
                }

                /** Properties of an InstancesReportHostAsFaultyRequestFaultReason. */
                interface IInstancesReportHostAsFaultyRequestFaultReason {

                    /** InstancesReportHostAsFaultyRequestFaultReason behavior */
                    behavior?: (string|null);

                    /** InstancesReportHostAsFaultyRequestFaultReason description */
                    description?: (string|null);
                }

                /** Represents an InstancesReportHostAsFaultyRequestFaultReason. */
                class InstancesReportHostAsFaultyRequestFaultReason implements IInstancesReportHostAsFaultyRequestFaultReason {

                    /**
                     * Constructs a new InstancesReportHostAsFaultyRequestFaultReason.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequestFaultReason);

                    /** InstancesReportHostAsFaultyRequestFaultReason behavior. */
                    public behavior?: (string|null);

                    /** InstancesReportHostAsFaultyRequestFaultReason description. */
                    public description?: (string|null);

                    /**
                     * Creates a new InstancesReportHostAsFaultyRequestFaultReason instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesReportHostAsFaultyRequestFaultReason instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequestFaultReason): google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason;

                    /**
                     * Encodes the specified InstancesReportHostAsFaultyRequestFaultReason message. Does not implicitly {@link google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason.verify|verify} messages.
                     * @param message InstancesReportHostAsFaultyRequestFaultReason message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequestFaultReason, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesReportHostAsFaultyRequestFaultReason message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason.verify|verify} messages.
                     * @param message InstancesReportHostAsFaultyRequestFaultReason message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesReportHostAsFaultyRequestFaultReason, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesReportHostAsFaultyRequestFaultReason message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesReportHostAsFaultyRequestFaultReason
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason;

                    /**
                     * Decodes an InstancesReportHostAsFaultyRequestFaultReason message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesReportHostAsFaultyRequestFaultReason
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason;

                    /**
                     * Verifies an InstancesReportHostAsFaultyRequestFaultReason message.
                     * @param message Plain 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 InstancesReportHostAsFaultyRequestFaultReason message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesReportHostAsFaultyRequestFaultReason
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason;

                    /**
                     * Creates a plain object from an InstancesReportHostAsFaultyRequestFaultReason message. Also converts values to other types if specified.
                     * @param message InstancesReportHostAsFaultyRequestFaultReason
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesReportHostAsFaultyRequestFaultReason to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesReportHostAsFaultyRequestFaultReason
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstancesReportHostAsFaultyRequestFaultReason {

                    /** Behavior enum. */
                    enum Behavior {
                        UNDEFINED_BEHAVIOR = 0,
                        BEHAVIOR_UNSPECIFIED = 85734570,
                        CHIP_ERROR = 263151669,
                        PERFORMANCE = 135701520,
                        SILENT_DATA_CORRUPTION = 111360678,
                        UNRECOVERABLE_GPU_ERROR = 363710747
                    }
                }

                /** Properties of an InstancesScopedList. */
                interface IInstancesScopedList {

                    /** InstancesScopedList instances */
                    instances?: (google.cloud.compute.v1.IInstance[]|null);

                    /** InstancesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstancesScopedList. */
                class InstancesScopedList implements IInstancesScopedList {

                    /**
                     * Constructs a new InstancesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesScopedList);

                    /** InstancesScopedList instances. */
                    public instances: google.cloud.compute.v1.IInstance[];

                    /** InstancesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstancesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesScopedList): google.cloud.compute.v1.InstancesScopedList;

                    /**
                     * Encodes the specified InstancesScopedList message. Does not implicitly {@link google.cloud.compute.v1.InstancesScopedList.verify|verify} messages.
                     * @param message InstancesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesScopedList.verify|verify} messages.
                     * @param message InstancesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesScopedList;

                    /**
                     * Decodes an InstancesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesScopedList;

                    /**
                     * Verifies an InstancesScopedList message.
                     * @param message Plain 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 InstancesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesScopedList;

                    /**
                     * Creates a plain object from an InstancesScopedList message. Also converts values to other types if specified.
                     * @param message InstancesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetLabelsRequest. */
                interface IInstancesSetLabelsRequest {

                    /** InstancesSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** InstancesSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents an InstancesSetLabelsRequest. */
                class InstancesSetLabelsRequest implements IInstancesSetLabelsRequest {

                    /**
                     * Constructs a new InstancesSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesSetLabelsRequest);

                    /** InstancesSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** InstancesSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new InstancesSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesSetLabelsRequest): google.cloud.compute.v1.InstancesSetLabelsRequest;

                    /**
                     * Encodes the specified InstancesSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesSetLabelsRequest.verify|verify} messages.
                     * @param message InstancesSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesSetLabelsRequest.verify|verify} messages.
                     * @param message InstancesSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesSetLabelsRequest;

                    /**
                     * Decodes an InstancesSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesSetLabelsRequest;

                    /**
                     * Verifies an InstancesSetLabelsRequest message.
                     * @param message Plain 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 InstancesSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesSetLabelsRequest;

                    /**
                     * Creates a plain object from an InstancesSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetMachineResourcesRequest. */
                interface IInstancesSetMachineResourcesRequest {

                    /** InstancesSetMachineResourcesRequest guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1.IAcceleratorConfig[]|null);
                }

                /** Represents an InstancesSetMachineResourcesRequest. */
                class InstancesSetMachineResourcesRequest implements IInstancesSetMachineResourcesRequest {

                    /**
                     * Constructs a new InstancesSetMachineResourcesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesSetMachineResourcesRequest);

                    /** InstancesSetMachineResourcesRequest guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1.IAcceleratorConfig[];

                    /**
                     * Creates a new InstancesSetMachineResourcesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetMachineResourcesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesSetMachineResourcesRequest): google.cloud.compute.v1.InstancesSetMachineResourcesRequest;

                    /**
                     * Encodes the specified InstancesSetMachineResourcesRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesSetMachineResourcesRequest.verify|verify} messages.
                     * @param message InstancesSetMachineResourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesSetMachineResourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetMachineResourcesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesSetMachineResourcesRequest.verify|verify} messages.
                     * @param message InstancesSetMachineResourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesSetMachineResourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetMachineResourcesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetMachineResourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesSetMachineResourcesRequest;

                    /**
                     * Decodes an InstancesSetMachineResourcesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetMachineResourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesSetMachineResourcesRequest;

                    /**
                     * Verifies an InstancesSetMachineResourcesRequest message.
                     * @param message Plain 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 InstancesSetMachineResourcesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetMachineResourcesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesSetMachineResourcesRequest;

                    /**
                     * Creates a plain object from an InstancesSetMachineResourcesRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetMachineResourcesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesSetMachineResourcesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetMachineResourcesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetMachineResourcesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetMachineTypeRequest. */
                interface IInstancesSetMachineTypeRequest {

                    /** InstancesSetMachineTypeRequest machineType */
                    machineType?: (string|null);
                }

                /** Represents an InstancesSetMachineTypeRequest. */
                class InstancesSetMachineTypeRequest implements IInstancesSetMachineTypeRequest {

                    /**
                     * Constructs a new InstancesSetMachineTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesSetMachineTypeRequest);

                    /** InstancesSetMachineTypeRequest machineType. */
                    public machineType?: (string|null);

                    /**
                     * Creates a new InstancesSetMachineTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetMachineTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesSetMachineTypeRequest): google.cloud.compute.v1.InstancesSetMachineTypeRequest;

                    /**
                     * Encodes the specified InstancesSetMachineTypeRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesSetMachineTypeRequest.verify|verify} messages.
                     * @param message InstancesSetMachineTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesSetMachineTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetMachineTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesSetMachineTypeRequest.verify|verify} messages.
                     * @param message InstancesSetMachineTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesSetMachineTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetMachineTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetMachineTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesSetMachineTypeRequest;

                    /**
                     * Decodes an InstancesSetMachineTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetMachineTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesSetMachineTypeRequest;

                    /**
                     * Verifies an InstancesSetMachineTypeRequest message.
                     * @param message Plain 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 InstancesSetMachineTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetMachineTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesSetMachineTypeRequest;

                    /**
                     * Creates a plain object from an InstancesSetMachineTypeRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetMachineTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesSetMachineTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetMachineTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetMachineTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetMinCpuPlatformRequest. */
                interface IInstancesSetMinCpuPlatformRequest {

                    /** InstancesSetMinCpuPlatformRequest minCpuPlatform */
                    minCpuPlatform?: (string|null);
                }

                /** Represents an InstancesSetMinCpuPlatformRequest. */
                class InstancesSetMinCpuPlatformRequest implements IInstancesSetMinCpuPlatformRequest {

                    /**
                     * Constructs a new InstancesSetMinCpuPlatformRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesSetMinCpuPlatformRequest);

                    /** InstancesSetMinCpuPlatformRequest minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /**
                     * Creates a new InstancesSetMinCpuPlatformRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetMinCpuPlatformRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesSetMinCpuPlatformRequest): google.cloud.compute.v1.InstancesSetMinCpuPlatformRequest;

                    /**
                     * Encodes the specified InstancesSetMinCpuPlatformRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesSetMinCpuPlatformRequest.verify|verify} messages.
                     * @param message InstancesSetMinCpuPlatformRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesSetMinCpuPlatformRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetMinCpuPlatformRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesSetMinCpuPlatformRequest.verify|verify} messages.
                     * @param message InstancesSetMinCpuPlatformRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesSetMinCpuPlatformRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetMinCpuPlatformRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetMinCpuPlatformRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesSetMinCpuPlatformRequest;

                    /**
                     * Decodes an InstancesSetMinCpuPlatformRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetMinCpuPlatformRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesSetMinCpuPlatformRequest;

                    /**
                     * Verifies an InstancesSetMinCpuPlatformRequest message.
                     * @param message Plain 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 InstancesSetMinCpuPlatformRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetMinCpuPlatformRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesSetMinCpuPlatformRequest;

                    /**
                     * Creates a plain object from an InstancesSetMinCpuPlatformRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetMinCpuPlatformRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesSetMinCpuPlatformRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetMinCpuPlatformRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetMinCpuPlatformRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetNameRequest. */
                interface IInstancesSetNameRequest {

                    /** InstancesSetNameRequest currentName */
                    currentName?: (string|null);

                    /** InstancesSetNameRequest name */
                    name?: (string|null);
                }

                /** Represents an InstancesSetNameRequest. */
                class InstancesSetNameRequest implements IInstancesSetNameRequest {

                    /**
                     * Constructs a new InstancesSetNameRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesSetNameRequest);

                    /** InstancesSetNameRequest currentName. */
                    public currentName?: (string|null);

                    /** InstancesSetNameRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new InstancesSetNameRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetNameRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesSetNameRequest): google.cloud.compute.v1.InstancesSetNameRequest;

                    /**
                     * Encodes the specified InstancesSetNameRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesSetNameRequest.verify|verify} messages.
                     * @param message InstancesSetNameRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesSetNameRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetNameRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesSetNameRequest.verify|verify} messages.
                     * @param message InstancesSetNameRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesSetNameRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetNameRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetNameRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesSetNameRequest;

                    /**
                     * Decodes an InstancesSetNameRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetNameRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesSetNameRequest;

                    /**
                     * Verifies an InstancesSetNameRequest message.
                     * @param message Plain 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 InstancesSetNameRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetNameRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesSetNameRequest;

                    /**
                     * Creates a plain object from an InstancesSetNameRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetNameRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesSetNameRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetNameRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetNameRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetSecurityPolicyRequest. */
                interface IInstancesSetSecurityPolicyRequest {

                    /** InstancesSetSecurityPolicyRequest networkInterfaces */
                    networkInterfaces?: (string[]|null);

                    /** InstancesSetSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents an InstancesSetSecurityPolicyRequest. */
                class InstancesSetSecurityPolicyRequest implements IInstancesSetSecurityPolicyRequest {

                    /**
                     * Constructs a new InstancesSetSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesSetSecurityPolicyRequest);

                    /** InstancesSetSecurityPolicyRequest networkInterfaces. */
                    public networkInterfaces: string[];

                    /** InstancesSetSecurityPolicyRequest securityPolicy. */
                    public securityPolicy?: (string|null);

                    /**
                     * Creates a new InstancesSetSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesSetSecurityPolicyRequest): google.cloud.compute.v1.InstancesSetSecurityPolicyRequest;

                    /**
                     * Encodes the specified InstancesSetSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesSetSecurityPolicyRequest.verify|verify} messages.
                     * @param message InstancesSetSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesSetSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesSetSecurityPolicyRequest.verify|verify} messages.
                     * @param message InstancesSetSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesSetSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesSetSecurityPolicyRequest;

                    /**
                     * Decodes an InstancesSetSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesSetSecurityPolicyRequest;

                    /**
                     * Verifies an InstancesSetSecurityPolicyRequest message.
                     * @param message Plain 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 InstancesSetSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesSetSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an InstancesSetSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesSetSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetServiceAccountRequest. */
                interface IInstancesSetServiceAccountRequest {

                    /** InstancesSetServiceAccountRequest email */
                    email?: (string|null);

                    /** InstancesSetServiceAccountRequest scopes */
                    scopes?: (string[]|null);
                }

                /** Represents an InstancesSetServiceAccountRequest. */
                class InstancesSetServiceAccountRequest implements IInstancesSetServiceAccountRequest {

                    /**
                     * Constructs a new InstancesSetServiceAccountRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesSetServiceAccountRequest);

                    /** InstancesSetServiceAccountRequest email. */
                    public email?: (string|null);

                    /** InstancesSetServiceAccountRequest scopes. */
                    public scopes: string[];

                    /**
                     * Creates a new InstancesSetServiceAccountRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetServiceAccountRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesSetServiceAccountRequest): google.cloud.compute.v1.InstancesSetServiceAccountRequest;

                    /**
                     * Encodes the specified InstancesSetServiceAccountRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesSetServiceAccountRequest.verify|verify} messages.
                     * @param message InstancesSetServiceAccountRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesSetServiceAccountRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetServiceAccountRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesSetServiceAccountRequest.verify|verify} messages.
                     * @param message InstancesSetServiceAccountRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesSetServiceAccountRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetServiceAccountRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetServiceAccountRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesSetServiceAccountRequest;

                    /**
                     * Decodes an InstancesSetServiceAccountRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetServiceAccountRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesSetServiceAccountRequest;

                    /**
                     * Verifies an InstancesSetServiceAccountRequest message.
                     * @param message Plain 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 InstancesSetServiceAccountRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetServiceAccountRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesSetServiceAccountRequest;

                    /**
                     * Creates a plain object from an InstancesSetServiceAccountRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetServiceAccountRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesSetServiceAccountRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetServiceAccountRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetServiceAccountRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesStartWithEncryptionKeyRequest. */
                interface IInstancesStartWithEncryptionKeyRequest {

                    /** InstancesStartWithEncryptionKeyRequest disks */
                    disks?: (google.cloud.compute.v1.ICustomerEncryptionKeyProtectedDisk[]|null);
                }

                /** Represents an InstancesStartWithEncryptionKeyRequest. */
                class InstancesStartWithEncryptionKeyRequest implements IInstancesStartWithEncryptionKeyRequest {

                    /**
                     * Constructs a new InstancesStartWithEncryptionKeyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstancesStartWithEncryptionKeyRequest);

                    /** InstancesStartWithEncryptionKeyRequest disks. */
                    public disks: google.cloud.compute.v1.ICustomerEncryptionKeyProtectedDisk[];

                    /**
                     * Creates a new InstancesStartWithEncryptionKeyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesStartWithEncryptionKeyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstancesStartWithEncryptionKeyRequest): google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequest;

                    /**
                     * Encodes the specified InstancesStartWithEncryptionKeyRequest message. Does not implicitly {@link google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequest.verify|verify} messages.
                     * @param message InstancesStartWithEncryptionKeyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstancesStartWithEncryptionKeyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesStartWithEncryptionKeyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequest.verify|verify} messages.
                     * @param message InstancesStartWithEncryptionKeyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstancesStartWithEncryptionKeyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesStartWithEncryptionKeyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesStartWithEncryptionKeyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequest;

                    /**
                     * Decodes an InstancesStartWithEncryptionKeyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesStartWithEncryptionKeyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequest;

                    /**
                     * Verifies an InstancesStartWithEncryptionKeyRequest message.
                     * @param message Plain 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 InstancesStartWithEncryptionKeyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesStartWithEncryptionKeyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequest;

                    /**
                     * Creates a plain object from an InstancesStartWithEncryptionKeyRequest message. Also converts values to other types if specified.
                     * @param message InstancesStartWithEncryptionKeyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesStartWithEncryptionKeyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesStartWithEncryptionKeyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshot. */
                interface IInstantSnapshot {

                    /** InstantSnapshot architecture */
                    architecture?: (string|null);

                    /** InstantSnapshot creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstantSnapshot description */
                    description?: (string|null);

                    /** InstantSnapshot diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** InstantSnapshot id */
                    id?: (number|Long|string|null);

                    /** InstantSnapshot kind */
                    kind?: (string|null);

                    /** InstantSnapshot labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** InstantSnapshot labels */
                    labels?: ({ [k: string]: string }|null);

                    /** InstantSnapshot name */
                    name?: (string|null);

                    /** InstantSnapshot params */
                    params?: (google.cloud.compute.v1.IInstantSnapshotParams|null);

                    /** InstantSnapshot region */
                    region?: (string|null);

                    /** InstantSnapshot resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1.IInstantSnapshotResourceStatus|null);

                    /** InstantSnapshot satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** InstantSnapshot satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** InstantSnapshot selfLink */
                    selfLink?: (string|null);

                    /** InstantSnapshot selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** InstantSnapshot sourceDisk */
                    sourceDisk?: (string|null);

                    /** InstantSnapshot sourceDiskId */
                    sourceDiskId?: (string|null);

                    /** InstantSnapshot status */
                    status?: (string|null);

                    /** InstantSnapshot zone */
                    zone?: (string|null);
                }

                /** Represents an InstantSnapshot. */
                class InstantSnapshot implements IInstantSnapshot {

                    /**
                     * Constructs a new InstantSnapshot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstantSnapshot);

                    /** InstantSnapshot architecture. */
                    public architecture?: (string|null);

                    /** InstantSnapshot creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstantSnapshot description. */
                    public description?: (string|null);

                    /** InstantSnapshot diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** InstantSnapshot id. */
                    public id?: (number|Long|string|null);

                    /** InstantSnapshot kind. */
                    public kind?: (string|null);

                    /** InstantSnapshot labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** InstantSnapshot labels. */
                    public labels: { [k: string]: string };

                    /** InstantSnapshot name. */
                    public name?: (string|null);

                    /** InstantSnapshot params. */
                    public params?: (google.cloud.compute.v1.IInstantSnapshotParams|null);

                    /** InstantSnapshot region. */
                    public region?: (string|null);

                    /** InstantSnapshot resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1.IInstantSnapshotResourceStatus|null);

                    /** InstantSnapshot satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** InstantSnapshot satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** InstantSnapshot selfLink. */
                    public selfLink?: (string|null);

                    /** InstantSnapshot selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** InstantSnapshot sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** InstantSnapshot sourceDiskId. */
                    public sourceDiskId?: (string|null);

                    /** InstantSnapshot status. */
                    public status?: (string|null);

                    /** InstantSnapshot zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstantSnapshot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshot instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstantSnapshot): google.cloud.compute.v1.InstantSnapshot;

                    /**
                     * Encodes the specified InstantSnapshot message. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshot.verify|verify} messages.
                     * @param message InstantSnapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstantSnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshot message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshot.verify|verify} messages.
                     * @param message InstantSnapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstantSnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstantSnapshot;

                    /**
                     * Decodes an InstantSnapshot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstantSnapshot;

                    /**
                     * Verifies an InstantSnapshot message.
                     * @param message Plain 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 InstantSnapshot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshot
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstantSnapshot;

                    /**
                     * Creates a plain object from an InstantSnapshot message. Also converts values to other types if specified.
                     * @param message InstantSnapshot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstantSnapshot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstantSnapshot {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963,
                        UNAVAILABLE = 413756464
                    }
                }

                /** Properties of an InstantSnapshotAggregatedList. */
                interface IInstantSnapshotAggregatedList {

                    /** InstantSnapshotAggregatedList id */
                    id?: (string|null);

                    /** InstantSnapshotAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IInstantSnapshotsScopedList }|null);

                    /** InstantSnapshotAggregatedList kind */
                    kind?: (string|null);

                    /** InstantSnapshotAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstantSnapshotAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstantSnapshotAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InstantSnapshotAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstantSnapshotAggregatedList. */
                class InstantSnapshotAggregatedList implements IInstantSnapshotAggregatedList {

                    /**
                     * Constructs a new InstantSnapshotAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstantSnapshotAggregatedList);

                    /** InstantSnapshotAggregatedList id. */
                    public id?: (string|null);

                    /** InstantSnapshotAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IInstantSnapshotsScopedList };

                    /** InstantSnapshotAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstantSnapshotAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstantSnapshotAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstantSnapshotAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InstantSnapshotAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstantSnapshotAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstantSnapshotAggregatedList): google.cloud.compute.v1.InstantSnapshotAggregatedList;

                    /**
                     * Encodes the specified InstantSnapshotAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotAggregatedList.verify|verify} messages.
                     * @param message InstantSnapshotAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstantSnapshotAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotAggregatedList.verify|verify} messages.
                     * @param message InstantSnapshotAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstantSnapshotAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstantSnapshotAggregatedList;

                    /**
                     * Decodes an InstantSnapshotAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstantSnapshotAggregatedList;

                    /**
                     * Verifies an InstantSnapshotAggregatedList message.
                     * @param message Plain 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 InstantSnapshotAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstantSnapshotAggregatedList;

                    /**
                     * Creates a plain object from an InstantSnapshotAggregatedList message. Also converts values to other types if specified.
                     * @param message InstantSnapshotAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstantSnapshotAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotList. */
                interface IInstantSnapshotList {

                    /** InstantSnapshotList id */
                    id?: (string|null);

                    /** InstantSnapshotList items */
                    items?: (google.cloud.compute.v1.IInstantSnapshot[]|null);

                    /** InstantSnapshotList kind */
                    kind?: (string|null);

                    /** InstantSnapshotList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstantSnapshotList selfLink */
                    selfLink?: (string|null);

                    /** InstantSnapshotList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstantSnapshotList. */
                class InstantSnapshotList implements IInstantSnapshotList {

                    /**
                     * Constructs a new InstantSnapshotList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstantSnapshotList);

                    /** InstantSnapshotList id. */
                    public id?: (string|null);

                    /** InstantSnapshotList items. */
                    public items: google.cloud.compute.v1.IInstantSnapshot[];

                    /** InstantSnapshotList kind. */
                    public kind?: (string|null);

                    /** InstantSnapshotList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstantSnapshotList selfLink. */
                    public selfLink?: (string|null);

                    /** InstantSnapshotList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstantSnapshotList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstantSnapshotList): google.cloud.compute.v1.InstantSnapshotList;

                    /**
                     * Encodes the specified InstantSnapshotList message. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotList.verify|verify} messages.
                     * @param message InstantSnapshotList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstantSnapshotList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotList.verify|verify} messages.
                     * @param message InstantSnapshotList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstantSnapshotList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstantSnapshotList;

                    /**
                     * Decodes an InstantSnapshotList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstantSnapshotList;

                    /**
                     * Verifies an InstantSnapshotList message.
                     * @param message Plain 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 InstantSnapshotList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstantSnapshotList;

                    /**
                     * Creates a plain object from an InstantSnapshotList message. Also converts values to other types if specified.
                     * @param message InstantSnapshotList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstantSnapshotList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotParams. */
                interface IInstantSnapshotParams {

                    /** InstantSnapshotParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InstantSnapshotParams. */
                class InstantSnapshotParams implements IInstantSnapshotParams {

                    /**
                     * Constructs a new InstantSnapshotParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstantSnapshotParams);

                    /** InstantSnapshotParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InstantSnapshotParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstantSnapshotParams): google.cloud.compute.v1.InstantSnapshotParams;

                    /**
                     * Encodes the specified InstantSnapshotParams message. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotParams.verify|verify} messages.
                     * @param message InstantSnapshotParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstantSnapshotParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotParams.verify|verify} messages.
                     * @param message InstantSnapshotParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstantSnapshotParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstantSnapshotParams;

                    /**
                     * Decodes an InstantSnapshotParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstantSnapshotParams;

                    /**
                     * Verifies an InstantSnapshotParams message.
                     * @param message Plain 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 InstantSnapshotParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstantSnapshotParams;

                    /**
                     * Creates a plain object from an InstantSnapshotParams message. Also converts values to other types if specified.
                     * @param message InstantSnapshotParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstantSnapshotParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotResourceStatus. */
                interface IInstantSnapshotResourceStatus {

                    /** InstantSnapshotResourceStatus storageSizeBytes */
                    storageSizeBytes?: (number|Long|string|null);
                }

                /** Represents an InstantSnapshotResourceStatus. */
                class InstantSnapshotResourceStatus implements IInstantSnapshotResourceStatus {

                    /**
                     * Constructs a new InstantSnapshotResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstantSnapshotResourceStatus);

                    /** InstantSnapshotResourceStatus storageSizeBytes. */
                    public storageSizeBytes?: (number|Long|string|null);

                    /**
                     * Creates a new InstantSnapshotResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstantSnapshotResourceStatus): google.cloud.compute.v1.InstantSnapshotResourceStatus;

                    /**
                     * Encodes the specified InstantSnapshotResourceStatus message. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotResourceStatus.verify|verify} messages.
                     * @param message InstantSnapshotResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstantSnapshotResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotResourceStatus.verify|verify} messages.
                     * @param message InstantSnapshotResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstantSnapshotResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstantSnapshotResourceStatus;

                    /**
                     * Decodes an InstantSnapshotResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstantSnapshotResourceStatus;

                    /**
                     * Verifies an InstantSnapshotResourceStatus message.
                     * @param message Plain 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 InstantSnapshotResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstantSnapshotResourceStatus;

                    /**
                     * Creates a plain object from an InstantSnapshotResourceStatus message. Also converts values to other types if specified.
                     * @param message InstantSnapshotResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstantSnapshotResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotsScopedList. */
                interface IInstantSnapshotsScopedList {

                    /** InstantSnapshotsScopedList instantSnapshots */
                    instantSnapshots?: (google.cloud.compute.v1.IInstantSnapshot[]|null);

                    /** InstantSnapshotsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InstantSnapshotsScopedList. */
                class InstantSnapshotsScopedList implements IInstantSnapshotsScopedList {

                    /**
                     * Constructs a new InstantSnapshotsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInstantSnapshotsScopedList);

                    /** InstantSnapshotsScopedList instantSnapshots. */
                    public instantSnapshots: google.cloud.compute.v1.IInstantSnapshot[];

                    /** InstantSnapshotsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InstantSnapshotsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInstantSnapshotsScopedList): google.cloud.compute.v1.InstantSnapshotsScopedList;

                    /**
                     * Encodes the specified InstantSnapshotsScopedList message. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotsScopedList.verify|verify} messages.
                     * @param message InstantSnapshotsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInstantSnapshotsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InstantSnapshotsScopedList.verify|verify} messages.
                     * @param message InstantSnapshotsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInstantSnapshotsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InstantSnapshotsScopedList;

                    /**
                     * Decodes an InstantSnapshotsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InstantSnapshotsScopedList;

                    /**
                     * Verifies an InstantSnapshotsScopedList message.
                     * @param message Plain 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 InstantSnapshotsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InstantSnapshotsScopedList;

                    /**
                     * Creates a plain object from an InstantSnapshotsScopedList message. Also converts values to other types if specified.
                     * @param message InstantSnapshotsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InstantSnapshotsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Int64RangeMatch. */
                interface IInt64RangeMatch {

                    /** Int64RangeMatch rangeEnd */
                    rangeEnd?: (number|Long|string|null);

                    /** Int64RangeMatch rangeStart */
                    rangeStart?: (number|Long|string|null);
                }

                /** Represents an Int64RangeMatch. */
                class Int64RangeMatch implements IInt64RangeMatch {

                    /**
                     * Constructs a new Int64RangeMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInt64RangeMatch);

                    /** Int64RangeMatch rangeEnd. */
                    public rangeEnd?: (number|Long|string|null);

                    /** Int64RangeMatch rangeStart. */
                    public rangeStart?: (number|Long|string|null);

                    /**
                     * Creates a new Int64RangeMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Int64RangeMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInt64RangeMatch): google.cloud.compute.v1.Int64RangeMatch;

                    /**
                     * Encodes the specified Int64RangeMatch message. Does not implicitly {@link google.cloud.compute.v1.Int64RangeMatch.verify|verify} messages.
                     * @param message Int64RangeMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInt64RangeMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Int64RangeMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Int64RangeMatch.verify|verify} messages.
                     * @param message Int64RangeMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInt64RangeMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Int64RangeMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Int64RangeMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Int64RangeMatch;

                    /**
                     * Decodes an Int64RangeMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Int64RangeMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Int64RangeMatch;

                    /**
                     * Verifies an Int64RangeMatch message.
                     * @param message Plain 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 Int64RangeMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Int64RangeMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Int64RangeMatch;

                    /**
                     * Creates a plain object from an Int64RangeMatch message. Also converts values to other types if specified.
                     * @param message Int64RangeMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Int64RangeMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Int64RangeMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Int64RangeMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Interconnect. */
                interface IInterconnect {

                    /** Interconnect aaiEnabled */
                    aaiEnabled?: (boolean|null);

                    /** Interconnect adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** Interconnect applicationAwareInterconnect */
                    applicationAwareInterconnect?: (google.cloud.compute.v1.IInterconnectApplicationAwareInterconnect|null);

                    /** Interconnect availableFeatures */
                    availableFeatures?: (string[]|null);

                    /** Interconnect circuitInfos */
                    circuitInfos?: (google.cloud.compute.v1.IInterconnectCircuitInfo[]|null);

                    /** Interconnect creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Interconnect customerName */
                    customerName?: (string|null);

                    /** Interconnect description */
                    description?: (string|null);

                    /** Interconnect expectedOutages */
                    expectedOutages?: (google.cloud.compute.v1.IInterconnectOutageNotification[]|null);

                    /** Interconnect googleIpAddress */
                    googleIpAddress?: (string|null);

                    /** Interconnect googleReferenceId */
                    googleReferenceId?: (string|null);

                    /** Interconnect id */
                    id?: (number|Long|string|null);

                    /** Interconnect interconnectAttachments */
                    interconnectAttachments?: (string[]|null);

                    /** Interconnect interconnectGroups */
                    interconnectGroups?: (string[]|null);

                    /** Interconnect interconnectType */
                    interconnectType?: (string|null);

                    /** Interconnect kind */
                    kind?: (string|null);

                    /** Interconnect labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Interconnect labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Interconnect linkType */
                    linkType?: (string|null);

                    /** Interconnect location */
                    location?: (string|null);

                    /** Interconnect macsec */
                    macsec?: (google.cloud.compute.v1.IInterconnectMacsec|null);

                    /** Interconnect macsecEnabled */
                    macsecEnabled?: (boolean|null);

                    /** Interconnect name */
                    name?: (string|null);

                    /** Interconnect nocContactEmail */
                    nocContactEmail?: (string|null);

                    /** Interconnect operationalStatus */
                    operationalStatus?: (string|null);

                    /** Interconnect params */
                    params?: (google.cloud.compute.v1.IInterconnectParams|null);

                    /** Interconnect peerIpAddress */
                    peerIpAddress?: (string|null);

                    /** Interconnect provisionedLinkCount */
                    provisionedLinkCount?: (number|null);

                    /** Interconnect remoteLocation */
                    remoteLocation?: (string|null);

                    /** Interconnect requestedFeatures */
                    requestedFeatures?: (string[]|null);

                    /** Interconnect requestedLinkCount */
                    requestedLinkCount?: (number|null);

                    /** Interconnect satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Interconnect selfLink */
                    selfLink?: (string|null);

                    /** Interconnect state */
                    state?: (string|null);

                    /** Interconnect subzone */
                    subzone?: (string|null);

                    /** Interconnect wireGroups */
                    wireGroups?: (string[]|null);
                }

                /** Represents an Interconnect. */
                class Interconnect implements IInterconnect {

                    /**
                     * Constructs a new Interconnect.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnect);

                    /** Interconnect aaiEnabled. */
                    public aaiEnabled?: (boolean|null);

                    /** Interconnect adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** Interconnect applicationAwareInterconnect. */
                    public applicationAwareInterconnect?: (google.cloud.compute.v1.IInterconnectApplicationAwareInterconnect|null);

                    /** Interconnect availableFeatures. */
                    public availableFeatures: string[];

                    /** Interconnect circuitInfos. */
                    public circuitInfos: google.cloud.compute.v1.IInterconnectCircuitInfo[];

                    /** Interconnect creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Interconnect customerName. */
                    public customerName?: (string|null);

                    /** Interconnect description. */
                    public description?: (string|null);

                    /** Interconnect expectedOutages. */
                    public expectedOutages: google.cloud.compute.v1.IInterconnectOutageNotification[];

                    /** Interconnect googleIpAddress. */
                    public googleIpAddress?: (string|null);

                    /** Interconnect googleReferenceId. */
                    public googleReferenceId?: (string|null);

                    /** Interconnect id. */
                    public id?: (number|Long|string|null);

                    /** Interconnect interconnectAttachments. */
                    public interconnectAttachments: string[];

                    /** Interconnect interconnectGroups. */
                    public interconnectGroups: string[];

                    /** Interconnect interconnectType. */
                    public interconnectType?: (string|null);

                    /** Interconnect kind. */
                    public kind?: (string|null);

                    /** Interconnect labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Interconnect labels. */
                    public labels: { [k: string]: string };

                    /** Interconnect linkType. */
                    public linkType?: (string|null);

                    /** Interconnect location. */
                    public location?: (string|null);

                    /** Interconnect macsec. */
                    public macsec?: (google.cloud.compute.v1.IInterconnectMacsec|null);

                    /** Interconnect macsecEnabled. */
                    public macsecEnabled?: (boolean|null);

                    /** Interconnect name. */
                    public name?: (string|null);

                    /** Interconnect nocContactEmail. */
                    public nocContactEmail?: (string|null);

                    /** Interconnect operationalStatus. */
                    public operationalStatus?: (string|null);

                    /** Interconnect params. */
                    public params?: (google.cloud.compute.v1.IInterconnectParams|null);

                    /** Interconnect peerIpAddress. */
                    public peerIpAddress?: (string|null);

                    /** Interconnect provisionedLinkCount. */
                    public provisionedLinkCount?: (number|null);

                    /** Interconnect remoteLocation. */
                    public remoteLocation?: (string|null);

                    /** Interconnect requestedFeatures. */
                    public requestedFeatures: string[];

                    /** Interconnect requestedLinkCount. */
                    public requestedLinkCount?: (number|null);

                    /** Interconnect satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Interconnect selfLink. */
                    public selfLink?: (string|null);

                    /** Interconnect state. */
                    public state?: (string|null);

                    /** Interconnect subzone. */
                    public subzone?: (string|null);

                    /** Interconnect wireGroups. */
                    public wireGroups: string[];

                    /**
                     * Creates a new Interconnect instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Interconnect instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnect): google.cloud.compute.v1.Interconnect;

                    /**
                     * Encodes the specified Interconnect message. Does not implicitly {@link google.cloud.compute.v1.Interconnect.verify|verify} messages.
                     * @param message Interconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Interconnect message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Interconnect.verify|verify} messages.
                     * @param message Interconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Interconnect message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Interconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Interconnect;

                    /**
                     * Decodes an Interconnect message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Interconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Interconnect;

                    /**
                     * Verifies an Interconnect message.
                     * @param message Plain 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 Interconnect message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Interconnect
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Interconnect;

                    /**
                     * Creates a plain object from an Interconnect message. Also converts values to other types if specified.
                     * @param message Interconnect
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Interconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Interconnect to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Interconnect
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Interconnect {

                    /** AvailableFeatures enum. */
                    enum AvailableFeatures {
                        UNDEFINED_AVAILABLE_FEATURES = 0
                    }

                    /** InterconnectType enum. */
                    enum InterconnectType {
                        UNDEFINED_INTERCONNECT_TYPE = 0,
                        DEDICATED = 258411983,
                        IT_PRIVATE = 335677007,
                        PARTNER = 461924520
                    }

                    /** LinkType enum. */
                    enum LinkType {
                        UNDEFINED_LINK_TYPE = 0,
                        LINK_TYPE_ETHERNET_100G_LR = 337672551,
                        LINK_TYPE_ETHERNET_10G_LR = 236739749,
                        LINK_TYPE_ETHERNET_400G_LR4 = 127023690
                    }

                    /** OperationalStatus enum. */
                    enum OperationalStatus {
                        UNDEFINED_OPERATIONAL_STATUS = 0,
                        OS_ACTIVE = 55721409,
                        OS_UNPROVISIONED = 239771840
                    }

                    /** RequestedFeatures enum. */
                    enum RequestedFeatures {
                        UNDEFINED_REQUESTED_FEATURES = 0
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        UNPROVISIONED = 517333979
                    }

                    /** Subzone enum. */
                    enum Subzone {
                        UNDEFINED_SUBZONE = 0,
                        SUBZONE_A = 291575438,
                        SUBZONE_B = 291575439
                    }
                }

                /** Properties of an InterconnectApplicationAwareInterconnect. */
                interface IInterconnectApplicationAwareInterconnect {

                    /** InterconnectApplicationAwareInterconnect bandwidthPercentagePolicy */
                    bandwidthPercentagePolicy?: (google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy|null);

                    /** InterconnectApplicationAwareInterconnect profileDescription */
                    profileDescription?: (string|null);

                    /** InterconnectApplicationAwareInterconnect shapeAveragePercentages */
                    shapeAveragePercentages?: (google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentage[]|null);

                    /** InterconnectApplicationAwareInterconnect strictPriorityPolicy */
                    strictPriorityPolicy?: (google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy|null);
                }

                /** Represents an InterconnectApplicationAwareInterconnect. */
                class InterconnectApplicationAwareInterconnect implements IInterconnectApplicationAwareInterconnect {

                    /**
                     * Constructs a new InterconnectApplicationAwareInterconnect.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnect);

                    /** InterconnectApplicationAwareInterconnect bandwidthPercentagePolicy. */
                    public bandwidthPercentagePolicy?: (google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy|null);

                    /** InterconnectApplicationAwareInterconnect profileDescription. */
                    public profileDescription?: (string|null);

                    /** InterconnectApplicationAwareInterconnect shapeAveragePercentages. */
                    public shapeAveragePercentages: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentage[];

                    /** InterconnectApplicationAwareInterconnect strictPriorityPolicy. */
                    public strictPriorityPolicy?: (google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy|null);

                    /**
                     * Creates a new InterconnectApplicationAwareInterconnect instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectApplicationAwareInterconnect instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnect): google.cloud.compute.v1.InterconnectApplicationAwareInterconnect;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnect message. Does not implicitly {@link google.cloud.compute.v1.InterconnectApplicationAwareInterconnect.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnect message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectApplicationAwareInterconnect.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnect message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectApplicationAwareInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectApplicationAwareInterconnect;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnect message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectApplicationAwareInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectApplicationAwareInterconnect;

                    /**
                     * Verifies an InterconnectApplicationAwareInterconnect message.
                     * @param message Plain 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 InterconnectApplicationAwareInterconnect message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectApplicationAwareInterconnect
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectApplicationAwareInterconnect;

                    /**
                     * Creates a plain object from an InterconnectApplicationAwareInterconnect message. Also converts values to other types if specified.
                     * @param message InterconnectApplicationAwareInterconnect
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectApplicationAwareInterconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectApplicationAwareInterconnect to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectApplicationAwareInterconnect
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectApplicationAwareInterconnectBandwidthPercentage. */
                interface IInterconnectApplicationAwareInterconnectBandwidthPercentage {

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentage percentage */
                    percentage?: (number|null);

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentage trafficClass */
                    trafficClass?: (string|null);
                }

                /** Represents an InterconnectApplicationAwareInterconnectBandwidthPercentage. */
                class InterconnectApplicationAwareInterconnectBandwidthPercentage implements IInterconnectApplicationAwareInterconnectBandwidthPercentage {

                    /**
                     * Constructs a new InterconnectApplicationAwareInterconnectBandwidthPercentage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentage);

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentage percentage. */
                    public percentage?: (number|null);

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentage trafficClass. */
                    public trafficClass?: (string|null);

                    /**
                     * Creates a new InterconnectApplicationAwareInterconnectBandwidthPercentage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentage instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentage): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectBandwidthPercentage message. Does not implicitly {@link google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectBandwidthPercentage message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectBandwidthPercentage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectBandwidthPercentage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage;

                    /**
                     * Verifies an InterconnectApplicationAwareInterconnectBandwidthPercentage message.
                     * @param message Plain 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 InterconnectApplicationAwareInterconnectBandwidthPercentage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage;

                    /**
                     * Creates a plain object from an InterconnectApplicationAwareInterconnectBandwidthPercentage message. Also converts values to other types if specified.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectApplicationAwareInterconnectBandwidthPercentage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectApplicationAwareInterconnectBandwidthPercentage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectApplicationAwareInterconnectBandwidthPercentage {

                    /** TrafficClass enum. */
                    enum TrafficClass {
                        UNDEFINED_TRAFFIC_CLASS = 0,
                        TC1 = 82850,
                        TC2 = 82851,
                        TC3 = 82852,
                        TC4 = 82853,
                        TC5 = 82854,
                        TC6 = 82855
                    }
                }

                /** Properties of an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy. */
                interface IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy {

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy bandwidthPercentages */
                    bandwidthPercentages?: (google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentage[]|null);
                }

                /** Represents an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy. */
                class InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy implements IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy {

                    /**
                     * Constructs a new InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy);

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy bandwidthPercentages. */
                    public bandwidthPercentages: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentage[];

                    /**
                     * Creates a new InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message. Does not implicitly {@link google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy;

                    /**
                     * Verifies an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message.
                     * @param message Plain 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 InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy;

                    /**
                     * Creates a plain object from an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message. Also converts values to other types if specified.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectApplicationAwareInterconnectStrictPriorityPolicy. */
                interface IInterconnectApplicationAwareInterconnectStrictPriorityPolicy {
                }

                /** Represents an InterconnectApplicationAwareInterconnectStrictPriorityPolicy. */
                class InterconnectApplicationAwareInterconnectStrictPriorityPolicy implements IInterconnectApplicationAwareInterconnectStrictPriorityPolicy {

                    /**
                     * Constructs a new InterconnectApplicationAwareInterconnectStrictPriorityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy);

                    /**
                     * Creates a new InterconnectApplicationAwareInterconnectStrictPriorityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectApplicationAwareInterconnectStrictPriorityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicy;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectStrictPriorityPolicy message. Does not implicitly {@link google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicy.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectStrictPriorityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectStrictPriorityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicy.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectStrictPriorityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectStrictPriorityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicy;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectStrictPriorityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicy;

                    /**
                     * Verifies an InterconnectApplicationAwareInterconnectStrictPriorityPolicy message.
                     * @param message Plain 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 InterconnectApplicationAwareInterconnectStrictPriorityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicy;

                    /**
                     * Creates a plain object from an InterconnectApplicationAwareInterconnectStrictPriorityPolicy message. Also converts values to other types if specified.
                     * @param message InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectApplicationAwareInterconnectStrictPriorityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachment. */
                interface IInterconnectAttachment {

                    /** InterconnectAttachment adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** InterconnectAttachment attachmentGroup */
                    attachmentGroup?: (string|null);

                    /** InterconnectAttachment bandwidth */
                    bandwidth?: (string|null);

                    /** InterconnectAttachment candidateCloudRouterIpAddress */
                    candidateCloudRouterIpAddress?: (string|null);

                    /** InterconnectAttachment candidateCloudRouterIpv6Address */
                    candidateCloudRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment candidateCustomerRouterIpAddress */
                    candidateCustomerRouterIpAddress?: (string|null);

                    /** InterconnectAttachment candidateCustomerRouterIpv6Address */
                    candidateCustomerRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment candidateIpv6Subnets */
                    candidateIpv6Subnets?: (string[]|null);

                    /** InterconnectAttachment candidateSubnets */
                    candidateSubnets?: (string[]|null);

                    /** InterconnectAttachment cloudRouterIpAddress */
                    cloudRouterIpAddress?: (string|null);

                    /** InterconnectAttachment cloudRouterIpv6Address */
                    cloudRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment cloudRouterIpv6InterfaceId */
                    cloudRouterIpv6InterfaceId?: (string|null);

                    /** InterconnectAttachment configurationConstraints */
                    configurationConstraints?: (google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraints|null);

                    /** InterconnectAttachment creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectAttachment customerRouterIpAddress */
                    customerRouterIpAddress?: (string|null);

                    /** InterconnectAttachment customerRouterIpv6Address */
                    customerRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment customerRouterIpv6InterfaceId */
                    customerRouterIpv6InterfaceId?: (string|null);

                    /** InterconnectAttachment dataplaneVersion */
                    dataplaneVersion?: (number|null);

                    /** InterconnectAttachment description */
                    description?: (string|null);

                    /** InterconnectAttachment edgeAvailabilityDomain */
                    edgeAvailabilityDomain?: (string|null);

                    /** InterconnectAttachment encryption */
                    encryption?: (string|null);

                    /** InterconnectAttachment googleReferenceId */
                    googleReferenceId?: (string|null);

                    /** InterconnectAttachment id */
                    id?: (number|Long|string|null);

                    /** InterconnectAttachment interconnect */
                    interconnect?: (string|null);

                    /** InterconnectAttachment ipsecInternalAddresses */
                    ipsecInternalAddresses?: (string[]|null);

                    /** InterconnectAttachment kind */
                    kind?: (string|null);

                    /** InterconnectAttachment l2Forwarding */
                    l2Forwarding?: (google.cloud.compute.v1.IInterconnectAttachmentL2Forwarding|null);

                    /** InterconnectAttachment labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** InterconnectAttachment labels */
                    labels?: ({ [k: string]: string }|null);

                    /** InterconnectAttachment mtu */
                    mtu?: (number|null);

                    /** InterconnectAttachment name */
                    name?: (string|null);

                    /** InterconnectAttachment operationalStatus */
                    operationalStatus?: (string|null);

                    /** InterconnectAttachment pairingKey */
                    pairingKey?: (string|null);

                    /** InterconnectAttachment params */
                    params?: (google.cloud.compute.v1.IInterconnectAttachmentParams|null);

                    /** InterconnectAttachment partnerAsn */
                    partnerAsn?: (number|Long|string|null);

                    /** InterconnectAttachment partnerMetadata */
                    partnerMetadata?: (google.cloud.compute.v1.IInterconnectAttachmentPartnerMetadata|null);

                    /** InterconnectAttachment privateInterconnectInfo */
                    privateInterconnectInfo?: (google.cloud.compute.v1.IInterconnectAttachmentPrivateInfo|null);

                    /** InterconnectAttachment region */
                    region?: (string|null);

                    /** InterconnectAttachment remoteService */
                    remoteService?: (string|null);

                    /** InterconnectAttachment router */
                    router?: (string|null);

                    /** InterconnectAttachment satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** InterconnectAttachment selfLink */
                    selfLink?: (string|null);

                    /** InterconnectAttachment stackType */
                    stackType?: (string|null);

                    /** InterconnectAttachment state */
                    state?: (string|null);

                    /** InterconnectAttachment subnetLength */
                    subnetLength?: (number|null);

                    /** InterconnectAttachment type */
                    type?: (string|null);

                    /** InterconnectAttachment vlanTag8021q */
                    vlanTag8021q?: (number|null);
                }

                /** Represents an InterconnectAttachment. */
                class InterconnectAttachment implements IInterconnectAttachment {

                    /**
                     * Constructs a new InterconnectAttachment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachment);

                    /** InterconnectAttachment adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** InterconnectAttachment attachmentGroup. */
                    public attachmentGroup?: (string|null);

                    /** InterconnectAttachment bandwidth. */
                    public bandwidth?: (string|null);

                    /** InterconnectAttachment candidateCloudRouterIpAddress. */
                    public candidateCloudRouterIpAddress?: (string|null);

                    /** InterconnectAttachment candidateCloudRouterIpv6Address. */
                    public candidateCloudRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment candidateCustomerRouterIpAddress. */
                    public candidateCustomerRouterIpAddress?: (string|null);

                    /** InterconnectAttachment candidateCustomerRouterIpv6Address. */
                    public candidateCustomerRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment candidateIpv6Subnets. */
                    public candidateIpv6Subnets: string[];

                    /** InterconnectAttachment candidateSubnets. */
                    public candidateSubnets: string[];

                    /** InterconnectAttachment cloudRouterIpAddress. */
                    public cloudRouterIpAddress?: (string|null);

                    /** InterconnectAttachment cloudRouterIpv6Address. */
                    public cloudRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment cloudRouterIpv6InterfaceId. */
                    public cloudRouterIpv6InterfaceId?: (string|null);

                    /** InterconnectAttachment configurationConstraints. */
                    public configurationConstraints?: (google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraints|null);

                    /** InterconnectAttachment creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectAttachment customerRouterIpAddress. */
                    public customerRouterIpAddress?: (string|null);

                    /** InterconnectAttachment customerRouterIpv6Address. */
                    public customerRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment customerRouterIpv6InterfaceId. */
                    public customerRouterIpv6InterfaceId?: (string|null);

                    /** InterconnectAttachment dataplaneVersion. */
                    public dataplaneVersion?: (number|null);

                    /** InterconnectAttachment description. */
                    public description?: (string|null);

                    /** InterconnectAttachment edgeAvailabilityDomain. */
                    public edgeAvailabilityDomain?: (string|null);

                    /** InterconnectAttachment encryption. */
                    public encryption?: (string|null);

                    /** InterconnectAttachment googleReferenceId. */
                    public googleReferenceId?: (string|null);

                    /** InterconnectAttachment id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectAttachment interconnect. */
                    public interconnect?: (string|null);

                    /** InterconnectAttachment ipsecInternalAddresses. */
                    public ipsecInternalAddresses: string[];

                    /** InterconnectAttachment kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachment l2Forwarding. */
                    public l2Forwarding?: (google.cloud.compute.v1.IInterconnectAttachmentL2Forwarding|null);

                    /** InterconnectAttachment labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** InterconnectAttachment labels. */
                    public labels: { [k: string]: string };

                    /** InterconnectAttachment mtu. */
                    public mtu?: (number|null);

                    /** InterconnectAttachment name. */
                    public name?: (string|null);

                    /** InterconnectAttachment operationalStatus. */
                    public operationalStatus?: (string|null);

                    /** InterconnectAttachment pairingKey. */
                    public pairingKey?: (string|null);

                    /** InterconnectAttachment params. */
                    public params?: (google.cloud.compute.v1.IInterconnectAttachmentParams|null);

                    /** InterconnectAttachment partnerAsn. */
                    public partnerAsn?: (number|Long|string|null);

                    /** InterconnectAttachment partnerMetadata. */
                    public partnerMetadata?: (google.cloud.compute.v1.IInterconnectAttachmentPartnerMetadata|null);

                    /** InterconnectAttachment privateInterconnectInfo. */
                    public privateInterconnectInfo?: (google.cloud.compute.v1.IInterconnectAttachmentPrivateInfo|null);

                    /** InterconnectAttachment region. */
                    public region?: (string|null);

                    /** InterconnectAttachment remoteService. */
                    public remoteService?: (string|null);

                    /** InterconnectAttachment router. */
                    public router?: (string|null);

                    /** InterconnectAttachment satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** InterconnectAttachment selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectAttachment stackType. */
                    public stackType?: (string|null);

                    /** InterconnectAttachment state. */
                    public state?: (string|null);

                    /** InterconnectAttachment subnetLength. */
                    public subnetLength?: (number|null);

                    /** InterconnectAttachment type. */
                    public type?: (string|null);

                    /** InterconnectAttachment vlanTag8021q. */
                    public vlanTag8021q?: (number|null);

                    /**
                     * Creates a new InterconnectAttachment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachment instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachment): google.cloud.compute.v1.InterconnectAttachment;

                    /**
                     * Encodes the specified InterconnectAttachment message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachment.verify|verify} messages.
                     * @param message InterconnectAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachment message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachment.verify|verify} messages.
                     * @param message InterconnectAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachment;

                    /**
                     * Decodes an InterconnectAttachment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachment;

                    /**
                     * Verifies an InterconnectAttachment message.
                     * @param message Plain 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 InterconnectAttachment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachment;

                    /**
                     * Creates a plain object from an InterconnectAttachment message. Also converts values to other types if specified.
                     * @param message InterconnectAttachment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachment {

                    /** Bandwidth enum. */
                    enum Bandwidth {
                        UNDEFINED_BANDWIDTH = 0,
                        BPS_100G = 49547952,
                        BPS_100M = 49547958,
                        BPS_10G = 278693006,
                        BPS_1G = 355358448,
                        BPS_200M = 49577749,
                        BPS_20G = 278693967,
                        BPS_2G = 355358479,
                        BPS_300M = 49607540,
                        BPS_400G = 49637325,
                        BPS_400M = 49637331,
                        BPS_500M = 49667122,
                        BPS_50G = 278696850,
                        BPS_50M = 278696856,
                        BPS_5G = 355358572
                    }

                    /** EdgeAvailabilityDomain enum. */
                    enum EdgeAvailabilityDomain {
                        UNDEFINED_EDGE_AVAILABILITY_DOMAIN = 0,
                        AVAILABILITY_DOMAIN_1 = 349552090,
                        AVAILABILITY_DOMAIN_2 = 349552091,
                        AVAILABILITY_DOMAIN_ANY = 375256373
                    }

                    /** Encryption enum. */
                    enum Encryption {
                        UNDEFINED_ENCRYPTION = 0,
                        IPSEC = 69882282,
                        NONE = 2402104
                    }

                    /** OperationalStatus enum. */
                    enum OperationalStatus {
                        UNDEFINED_OPERATIONAL_STATUS = 0,
                        OS_ACTIVE = 55721409,
                        OS_UNPROVISIONED = 239771840
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DEFUNCT = 115891759,
                        PARTNER_REQUEST_RECEIVED = 513587304,
                        PENDING_CUSTOMER = 167494054,
                        PENDING_PARTNER = 387890656,
                        STATE_UNSPECIFIED = 470755401,
                        UNPROVISIONED = 517333979
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        DEDICATED = 258411983,
                        L2_DEDICATED = 336595510,
                        PARTNER = 461924520,
                        PARTNER_PROVIDER = 483261352
                    }
                }

                /** Properties of an InterconnectAttachmentAggregatedList. */
                interface IInterconnectAttachmentAggregatedList {

                    /** InterconnectAttachmentAggregatedList id */
                    id?: (string|null);

                    /** InterconnectAttachmentAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IInterconnectAttachmentsScopedList }|null);

                    /** InterconnectAttachmentAggregatedList kind */
                    kind?: (string|null);

                    /** InterconnectAttachmentAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectAttachmentAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectAttachmentAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InterconnectAttachmentAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InterconnectAttachmentAggregatedList. */
                class InterconnectAttachmentAggregatedList implements IInterconnectAttachmentAggregatedList {

                    /**
                     * Constructs a new InterconnectAttachmentAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentAggregatedList);

                    /** InterconnectAttachmentAggregatedList id. */
                    public id?: (string|null);

                    /** InterconnectAttachmentAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IInterconnectAttachmentsScopedList };

                    /** InterconnectAttachmentAggregatedList kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachmentAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectAttachmentAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectAttachmentAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InterconnectAttachmentAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InterconnectAttachmentAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentAggregatedList): google.cloud.compute.v1.InterconnectAttachmentAggregatedList;

                    /**
                     * Encodes the specified InterconnectAttachmentAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentAggregatedList.verify|verify} messages.
                     * @param message InterconnectAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentAggregatedList.verify|verify} messages.
                     * @param message InterconnectAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentAggregatedList;

                    /**
                     * Decodes an InterconnectAttachmentAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentAggregatedList;

                    /**
                     * Verifies an InterconnectAttachmentAggregatedList message.
                     * @param message Plain 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 InterconnectAttachmentAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentAggregatedList;

                    /**
                     * Creates a plain object from an InterconnectAttachmentAggregatedList message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentConfigurationConstraints. */
                interface IInterconnectAttachmentConfigurationConstraints {

                    /** InterconnectAttachmentConfigurationConstraints bgpMd5 */
                    bgpMd5?: (string|null);

                    /** InterconnectAttachmentConfigurationConstraints bgpPeerAsnRanges */
                    bgpPeerAsnRanges?: (google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange[]|null);
                }

                /** Represents an InterconnectAttachmentConfigurationConstraints. */
                class InterconnectAttachmentConfigurationConstraints implements IInterconnectAttachmentConfigurationConstraints {

                    /**
                     * Constructs a new InterconnectAttachmentConfigurationConstraints.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraints);

                    /** InterconnectAttachmentConfigurationConstraints bgpMd5. */
                    public bgpMd5?: (string|null);

                    /** InterconnectAttachmentConfigurationConstraints bgpPeerAsnRanges. */
                    public bgpPeerAsnRanges: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange[];

                    /**
                     * Creates a new InterconnectAttachmentConfigurationConstraints instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentConfigurationConstraints instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraints): google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraints;

                    /**
                     * Encodes the specified InterconnectAttachmentConfigurationConstraints message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraints.verify|verify} messages.
                     * @param message InterconnectAttachmentConfigurationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentConfigurationConstraints message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraints.verify|verify} messages.
                     * @param message InterconnectAttachmentConfigurationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentConfigurationConstraints message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentConfigurationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraints;

                    /**
                     * Decodes an InterconnectAttachmentConfigurationConstraints message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentConfigurationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraints;

                    /**
                     * Verifies an InterconnectAttachmentConfigurationConstraints message.
                     * @param message Plain 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 InterconnectAttachmentConfigurationConstraints message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentConfigurationConstraints
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraints;

                    /**
                     * Creates a plain object from an InterconnectAttachmentConfigurationConstraints message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentConfigurationConstraints
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentConfigurationConstraints to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentConfigurationConstraints
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentConfigurationConstraints {

                    /** BgpMd5 enum. */
                    enum BgpMd5 {
                        UNDEFINED_BGP_MD5 = 0,
                        MD5_OPTIONAL = 532156673,
                        MD5_REQUIRED = 218034496,
                        MD5_UNSUPPORTED = 86962388
                    }
                }

                /** Properties of an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange. */
                interface IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange {

                    /** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange max */
                    max?: (number|null);

                    /** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange min */
                    min?: (number|null);
                }

                /** Represents an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange. */
                class InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange implements IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange {

                    /**
                     * Constructs a new InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange);

                    /** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange max. */
                    public max?: (number|null);

                    /** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange min. */
                    public min?: (number|null);

                    /**
                     * Creates a new InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange): google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange;

                    /**
                     * Encodes the specified InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange.verify|verify} messages.
                     * @param message InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange.verify|verify} messages.
                     * @param message InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange;

                    /**
                     * Decodes an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange;

                    /**
                     * Verifies an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message.
                     * @param message Plain 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 InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange;

                    /**
                     * Creates a plain object from an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroup. */
                interface IInterconnectAttachmentGroup {

                    /** InterconnectAttachmentGroup attachments */
                    attachments?: ({ [k: string]: google.cloud.compute.v1.IInterconnectAttachmentGroupAttachment }|null);

                    /** InterconnectAttachmentGroup configured */
                    configured?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured|null);

                    /** InterconnectAttachmentGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectAttachmentGroup description */
                    description?: (string|null);

                    /** InterconnectAttachmentGroup etag */
                    etag?: (string|null);

                    /** InterconnectAttachmentGroup id */
                    id?: (number|Long|string|null);

                    /** InterconnectAttachmentGroup intent */
                    intent?: (google.cloud.compute.v1.IInterconnectAttachmentGroupIntent|null);

                    /** InterconnectAttachmentGroup interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** InterconnectAttachmentGroup kind */
                    kind?: (string|null);

                    /** InterconnectAttachmentGroup logicalStructure */
                    logicalStructure?: (google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructure|null);

                    /** InterconnectAttachmentGroup name */
                    name?: (string|null);

                    /** InterconnectAttachmentGroup selfLink */
                    selfLink?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroup. */
                class InterconnectAttachmentGroup implements IInterconnectAttachmentGroup {

                    /**
                     * Constructs a new InterconnectAttachmentGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroup);

                    /** InterconnectAttachmentGroup attachments. */
                    public attachments: { [k: string]: google.cloud.compute.v1.IInterconnectAttachmentGroupAttachment };

                    /** InterconnectAttachmentGroup configured. */
                    public configured?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured|null);

                    /** InterconnectAttachmentGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectAttachmentGroup description. */
                    public description?: (string|null);

                    /** InterconnectAttachmentGroup etag. */
                    public etag?: (string|null);

                    /** InterconnectAttachmentGroup id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectAttachmentGroup intent. */
                    public intent?: (google.cloud.compute.v1.IInterconnectAttachmentGroupIntent|null);

                    /** InterconnectAttachmentGroup interconnectGroup. */
                    public interconnectGroup?: (string|null);

                    /** InterconnectAttachmentGroup kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachmentGroup logicalStructure. */
                    public logicalStructure?: (google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructure|null);

                    /** InterconnectAttachmentGroup name. */
                    public name?: (string|null);

                    /** InterconnectAttachmentGroup selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroup): google.cloud.compute.v1.InterconnectAttachmentGroup;

                    /**
                     * Encodes the specified InterconnectAttachmentGroup message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroup.verify|verify} messages.
                     * @param message InterconnectAttachmentGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroup.verify|verify} messages.
                     * @param message InterconnectAttachmentGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroup;

                    /**
                     * Decodes an InterconnectAttachmentGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroup;

                    /**
                     * Verifies an InterconnectAttachmentGroup message.
                     * @param message Plain 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 InterconnectAttachmentGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroup;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroup message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupAttachment. */
                interface IInterconnectAttachmentGroupAttachment {

                    /** InterconnectAttachmentGroupAttachment attachment */
                    attachment?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupAttachment. */
                class InterconnectAttachmentGroupAttachment implements IInterconnectAttachmentGroupAttachment {

                    /**
                     * Constructs a new InterconnectAttachmentGroupAttachment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupAttachment);

                    /** InterconnectAttachmentGroupAttachment attachment. */
                    public attachment?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupAttachment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupAttachment instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupAttachment): google.cloud.compute.v1.InterconnectAttachmentGroupAttachment;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupAttachment message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupAttachment.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupAttachment message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupAttachment.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupAttachment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupAttachment;

                    /**
                     * Decodes an InterconnectAttachmentGroupAttachment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupAttachment;

                    /**
                     * Verifies an InterconnectAttachmentGroupAttachment message.
                     * @param message Plain 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 InterconnectAttachmentGroupAttachment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupAttachment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupAttachment;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupAttachment message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupAttachment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupAttachment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupAttachment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupConfigured. */
                interface IInterconnectAttachmentGroupConfigured {

                    /** InterconnectAttachmentGroupConfigured availabilitySla */
                    availabilitySla?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLA|null);
                }

                /** Represents an InterconnectAttachmentGroupConfigured. */
                class InterconnectAttachmentGroupConfigured implements IInterconnectAttachmentGroupConfigured {

                    /**
                     * Constructs a new InterconnectAttachmentGroupConfigured.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured);

                    /** InterconnectAttachmentGroupConfigured availabilitySla. */
                    public availabilitySla?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLA|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupConfigured instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupConfigured instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured): google.cloud.compute.v1.InterconnectAttachmentGroupConfigured;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfigured message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupConfigured.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfigured message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfigured message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupConfigured.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfigured message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfigured message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupConfigured
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupConfigured;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfigured message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupConfigured
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupConfigured;

                    /**
                     * Verifies an InterconnectAttachmentGroupConfigured message.
                     * @param message Plain 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 InterconnectAttachmentGroupConfigured message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupConfigured
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupConfigured;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupConfigured message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupConfigured
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupConfigured, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupConfigured to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupConfigured
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupConfiguredAvailabilitySLA. */
                interface IInterconnectAttachmentGroupConfiguredAvailabilitySLA {

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLA effectiveSla */
                    effectiveSla?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLA intendedSlaBlockers */
                    intendedSlaBlockers?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers[]|null);
                }

                /** Represents an InterconnectAttachmentGroupConfiguredAvailabilitySLA. */
                class InterconnectAttachmentGroupConfiguredAvailabilitySLA implements IInterconnectAttachmentGroupConfiguredAvailabilitySLA {

                    /**
                     * Constructs a new InterconnectAttachmentGroupConfiguredAvailabilitySLA.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLA);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLA effectiveSla. */
                    public effectiveSla?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLA intendedSlaBlockers. */
                    public intendedSlaBlockers: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers[];

                    /**
                     * Creates a new InterconnectAttachmentGroupConfiguredAvailabilitySLA instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLA instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLA): google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLA;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfiguredAvailabilitySLA message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLA.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLA message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLA, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfiguredAvailabilitySLA message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLA.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLA message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLA, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfiguredAvailabilitySLA message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLA;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfiguredAvailabilitySLA message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLA;

                    /**
                     * Verifies an InterconnectAttachmentGroupConfiguredAvailabilitySLA message.
                     * @param message Plain 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 InterconnectAttachmentGroupConfiguredAvailabilitySLA message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLA;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupConfiguredAvailabilitySLA message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLA, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupConfiguredAvailabilitySLA to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupConfiguredAvailabilitySLA {

                    /** EffectiveSla enum. */
                    enum EffectiveSla {
                        UNDEFINED_EFFECTIVE_SLA = 0,
                        EFFECTIVE_SLA_UNSPECIFIED = 491000744,
                        NO_SLA = 161460618,
                        PRODUCTION_CRITICAL = 470416485,
                        PRODUCTION_NON_CRITICAL = 117399223
                    }
                }

                /** Properties of an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers. */
                interface IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers {

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers attachments */
                    attachments?: (string[]|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers blockerType */
                    blockerType?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers documentationLink */
                    documentationLink?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers explanation */
                    explanation?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers metros */
                    metros?: (string[]|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers regions */
                    regions?: (string[]|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers zones */
                    zones?: (string[]|null);
                }

                /** Represents an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers. */
                class InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers implements IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers {

                    /**
                     * Constructs a new InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers attachments. */
                    public attachments: string[];

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers blockerType. */
                    public blockerType?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers documentationLink. */
                    public documentationLink?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers explanation. */
                    public explanation?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers metros. */
                    public metros: string[];

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers regions. */
                    public regions: string[];

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers zones. */
                    public zones: string[];

                    /**
                     * Creates a new InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers): google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers;

                    /**
                     * Verifies an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message.
                     * @param message Plain 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 InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers {

                    /** BlockerType enum. */
                    enum BlockerType {
                        UNDEFINED_BLOCKER_TYPE = 0,
                        BLOCKER_TYPE_UNSPECIFIED = 429793623,
                        INCOMPATIBLE_METROS = 290410432,
                        INCOMPATIBLE_REGIONS = 6195033,
                        MISSING_GLOBAL_ROUTING = 165913635,
                        NO_ATTACHMENTS = 456535570,
                        NO_ATTACHMENTS_IN_METRO_AND_ZONE = 51684135,
                        OTHER = 75532016
                    }
                }

                /** Properties of an InterconnectAttachmentGroupIntent. */
                interface IInterconnectAttachmentGroupIntent {

                    /** InterconnectAttachmentGroupIntent availabilitySla */
                    availabilitySla?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupIntent. */
                class InterconnectAttachmentGroupIntent implements IInterconnectAttachmentGroupIntent {

                    /**
                     * Constructs a new InterconnectAttachmentGroupIntent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupIntent);

                    /** InterconnectAttachmentGroupIntent availabilitySla. */
                    public availabilitySla?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupIntent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupIntent instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupIntent): google.cloud.compute.v1.InterconnectAttachmentGroupIntent;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupIntent message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupIntent.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupIntent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupIntent message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupIntent.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupIntent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupIntent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupIntent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupIntent;

                    /**
                     * Decodes an InterconnectAttachmentGroupIntent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupIntent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupIntent;

                    /**
                     * Verifies an InterconnectAttachmentGroupIntent message.
                     * @param message Plain 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 InterconnectAttachmentGroupIntent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupIntent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupIntent;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupIntent message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupIntent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupIntent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupIntent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupIntent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupIntent {

                    /** AvailabilitySla enum. */
                    enum AvailabilitySla {
                        UNDEFINED_AVAILABILITY_SLA = 0,
                        AVAILABILITY_SLA_UNSPECIFIED = 11186044,
                        NO_SLA = 161460618,
                        PRODUCTION_CRITICAL = 470416485,
                        PRODUCTION_NON_CRITICAL = 117399223
                    }
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructure. */
                interface IInterconnectAttachmentGroupLogicalStructure {

                    /** InterconnectAttachmentGroupLogicalStructure regions */
                    regions?: (google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegion[]|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructure. */
                class InterconnectAttachmentGroupLogicalStructure implements IInterconnectAttachmentGroupLogicalStructure {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructure.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructure);

                    /** InterconnectAttachmentGroupLogicalStructure regions. */
                    public regions: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegion[];

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructure instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructure instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructure): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructure;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructure message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructure.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructure message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructure.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructure message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructure;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructure message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructure;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructure message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructure message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructure
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructure;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructure message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructure
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructure, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructure to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructure
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructureRegion. */
                interface IInterconnectAttachmentGroupLogicalStructureRegion {

                    /** InterconnectAttachmentGroupLogicalStructureRegion metros */
                    metros?: (google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetro[]|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegion region */
                    region?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructureRegion. */
                class InterconnectAttachmentGroupLogicalStructureRegion implements IInterconnectAttachmentGroupLogicalStructureRegion {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructureRegion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegion);

                    /** InterconnectAttachmentGroupLogicalStructureRegion metros. */
                    public metros: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetro[];

                    /** InterconnectAttachmentGroupLogicalStructureRegion region. */
                    public region?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructureRegion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructureRegion instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegion): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegion message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegion message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructureRegion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructureRegion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructureRegion message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructureRegion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructureRegion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructureRegion message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructureRegion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructureRegion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructureRegionMetro. */
                interface IInterconnectAttachmentGroupLogicalStructureRegionMetro {

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetro facilities */
                    facilities?: (google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility[]|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetro metro */
                    metro?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructureRegionMetro. */
                class InterconnectAttachmentGroupLogicalStructureRegionMetro implements IInterconnectAttachmentGroupLogicalStructureRegionMetro {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructureRegionMetro.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetro);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetro facilities. */
                    public facilities: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility[];

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetro metro. */
                    public metro?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructureRegionMetro instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetro instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetro): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetro message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetro message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetro, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetro message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetro message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetro, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetro message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetro
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetro message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetro
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructureRegionMetro message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructureRegionMetro message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetro
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructureRegionMetro message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetro
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructureRegionMetro to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructureRegionMetro
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility. */
                interface IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility {

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacility facility */
                    facility?: (string|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacility zones */
                    zones?: (google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone[]|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility. */
                class InterconnectAttachmentGroupLogicalStructureRegionMetroFacility implements IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructureRegionMetroFacility.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacility facility. */
                    public facility?: (string|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacility zones. */
                    public zones: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone[];

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructureRegionMetroFacility instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacility instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructureRegionMetroFacility to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone. */
                interface IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone {

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone attachments */
                    attachments?: (string[]|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone zone */
                    zone?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone. */
                class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone implements IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone attachments. */
                    public attachments: string[];

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupsGetOperationalStatusResponse. */
                interface IInterconnectAttachmentGroupsGetOperationalStatusResponse {

                    /** InterconnectAttachmentGroupsGetOperationalStatusResponse etag */
                    etag?: (string|null);

                    /** InterconnectAttachmentGroupsGetOperationalStatusResponse result */
                    result?: (google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatus|null);
                }

                /** Represents an InterconnectAttachmentGroupsGetOperationalStatusResponse. */
                class InterconnectAttachmentGroupsGetOperationalStatusResponse implements IInterconnectAttachmentGroupsGetOperationalStatusResponse {

                    /**
                     * Constructs a new InterconnectAttachmentGroupsGetOperationalStatusResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupsGetOperationalStatusResponse);

                    /** InterconnectAttachmentGroupsGetOperationalStatusResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectAttachmentGroupsGetOperationalStatusResponse result. */
                    public result?: (google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatus|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupsGetOperationalStatusResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupsGetOperationalStatusResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupsGetOperationalStatusResponse): google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsGetOperationalStatusResponse message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsGetOperationalStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupsGetOperationalStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsGetOperationalStatusResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsGetOperationalStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupsGetOperationalStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupsGetOperationalStatusResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupsGetOperationalStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse;

                    /**
                     * Decodes an InterconnectAttachmentGroupsGetOperationalStatusResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupsGetOperationalStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse;

                    /**
                     * Verifies an InterconnectAttachmentGroupsGetOperationalStatusResponse message.
                     * @param message Plain 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 InterconnectAttachmentGroupsGetOperationalStatusResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupsGetOperationalStatusResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupsGetOperationalStatusResponse message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupsGetOperationalStatusResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupsGetOperationalStatusResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupsGetOperationalStatusResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupsListResponse. */
                interface IInterconnectAttachmentGroupsListResponse {

                    /** InterconnectAttachmentGroupsListResponse etag */
                    etag?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse id */
                    id?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse items */
                    items?: (google.cloud.compute.v1.IInterconnectAttachmentGroup[]|null);

                    /** InterconnectAttachmentGroupsListResponse kind */
                    kind?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse selfLink */
                    selfLink?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** InterconnectAttachmentGroupsListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InterconnectAttachmentGroupsListResponse. */
                class InterconnectAttachmentGroupsListResponse implements IInterconnectAttachmentGroupsListResponse {

                    /**
                     * Constructs a new InterconnectAttachmentGroupsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupsListResponse);

                    /** InterconnectAttachmentGroupsListResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse id. */
                    public id?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse items. */
                    public items: google.cloud.compute.v1.IInterconnectAttachmentGroup[];

                    /** InterconnectAttachmentGroupsListResponse kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse unreachables. */
                    public unreachables: string[];

                    /** InterconnectAttachmentGroupsListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupsListResponse): google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsListResponse message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse;

                    /**
                     * Decodes an InterconnectAttachmentGroupsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse;

                    /**
                     * Verifies an InterconnectAttachmentGroupsListResponse message.
                     * @param message Plain 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 InterconnectAttachmentGroupsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupsListResponse message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupsOperationalStatus. */
                interface IInterconnectAttachmentGroupsOperationalStatus {

                    /** InterconnectAttachmentGroupsOperationalStatus attachmentStatuses */
                    attachmentStatuses?: (google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus[]|null);

                    /** InterconnectAttachmentGroupsOperationalStatus configured */
                    configured?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured|null);

                    /** InterconnectAttachmentGroupsOperationalStatus groupStatus */
                    groupStatus?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatus intent */
                    intent?: (google.cloud.compute.v1.IInterconnectAttachmentGroupIntent|null);

                    /** InterconnectAttachmentGroupsOperationalStatus operational */
                    operational?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured|null);
                }

                /** Represents an InterconnectAttachmentGroupsOperationalStatus. */
                class InterconnectAttachmentGroupsOperationalStatus implements IInterconnectAttachmentGroupsOperationalStatus {

                    /**
                     * Constructs a new InterconnectAttachmentGroupsOperationalStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatus);

                    /** InterconnectAttachmentGroupsOperationalStatus attachmentStatuses. */
                    public attachmentStatuses: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus[];

                    /** InterconnectAttachmentGroupsOperationalStatus configured. */
                    public configured?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured|null);

                    /** InterconnectAttachmentGroupsOperationalStatus groupStatus. */
                    public groupStatus?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatus intent. */
                    public intent?: (google.cloud.compute.v1.IInterconnectAttachmentGroupIntent|null);

                    /** InterconnectAttachmentGroupsOperationalStatus operational. */
                    public operational?: (google.cloud.compute.v1.IInterconnectAttachmentGroupConfigured|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupsOperationalStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupsOperationalStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatus): google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatus;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsOperationalStatus message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatus.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsOperationalStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsOperationalStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatus.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsOperationalStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupsOperationalStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupsOperationalStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatus;

                    /**
                     * Decodes an InterconnectAttachmentGroupsOperationalStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupsOperationalStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatus;

                    /**
                     * Verifies an InterconnectAttachmentGroupsOperationalStatus message.
                     * @param message Plain 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 InterconnectAttachmentGroupsOperationalStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupsOperationalStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatus;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupsOperationalStatus message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupsOperationalStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupsOperationalStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupsOperationalStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupsOperationalStatus {

                    /** GroupStatus enum. */
                    enum GroupStatus {
                        UNDEFINED_GROUP_STATUS = 0,
                        DEGRADED = 396890926,
                        FULLY_DOWN = 255514647,
                        FULLY_UP = 504176464,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus. */
                interface IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus {

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus attachment */
                    attachment?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus isActive */
                    isActive?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus status */
                    status?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus. */
                class InterconnectAttachmentGroupsOperationalStatusAttachmentStatus implements IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus {

                    /**
                     * Constructs a new InterconnectAttachmentGroupsOperationalStatusAttachmentStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus attachment. */
                    public attachment?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus isActive. */
                    public isActive?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus status. */
                    public status?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupsOperationalStatusAttachmentStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupsOperationalStatusAttachmentStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus): google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus;

                    /**
                     * Decodes an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus;

                    /**
                     * Verifies an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message.
                     * @param message Plain 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 InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupsOperationalStatusAttachmentStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupsOperationalStatusAttachmentStatus {

                    /** IsActive enum. */
                    enum IsActive {
                        UNDEFINED_IS_ACTIVE = 0,
                        ACTIVE = 314733318,
                        INACTIVE = 270421099,
                        UNSPECIFIED = 526786327
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ATTACHMENT_STATUS_UNKNOWN = 472477561,
                        CONNECTION_DISABLED = 432687805,
                        CONNECTION_DOWN = 267552099,
                        CONNECTION_UP = 455585692,
                        DEFUNCT = 115891759,
                        IPSEC_CONFIGURATION_NEEDED_STATUS = 455203582,
                        IPSEC_READY_TO_RESUME_FLOW_STATUS = 384830596,
                        IPV4_DOWN_IPV6_UP = 277490992,
                        IPV4_UP_IPV6_DOWN = 316051248,
                        PARTNER_REQUEST_RECEIVED = 513587304,
                        PENDING_CUSTOMER = 167494054,
                        PENDING_PARTNER = 387890656,
                        PROVISIONED = 355751956,
                        ROUTER_CONFIGURATION_BROKEN = 150505108,
                        UNPROVISIONED = 517333979
                    }
                }

                /** Properties of an InterconnectAttachmentL2Forwarding. */
                interface IInterconnectAttachmentL2Forwarding {

                    /** InterconnectAttachmentL2Forwarding applianceMappings */
                    applianceMappings?: ({ [k: string]: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMapping }|null);

                    /** InterconnectAttachmentL2Forwarding defaultApplianceIpAddress */
                    defaultApplianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2Forwarding geneveHeader */
                    geneveHeader?: (google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingGeneveHeader|null);

                    /** InterconnectAttachmentL2Forwarding network */
                    network?: (string|null);

                    /** InterconnectAttachmentL2Forwarding tunnelEndpointIpAddress */
                    tunnelEndpointIpAddress?: (string|null);
                }

                /** Represents an InterconnectAttachmentL2Forwarding. */
                class InterconnectAttachmentL2Forwarding implements IInterconnectAttachmentL2Forwarding {

                    /**
                     * Constructs a new InterconnectAttachmentL2Forwarding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentL2Forwarding);

                    /** InterconnectAttachmentL2Forwarding applianceMappings. */
                    public applianceMappings: { [k: string]: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMapping };

                    /** InterconnectAttachmentL2Forwarding defaultApplianceIpAddress. */
                    public defaultApplianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2Forwarding geneveHeader. */
                    public geneveHeader?: (google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingGeneveHeader|null);

                    /** InterconnectAttachmentL2Forwarding network. */
                    public network?: (string|null);

                    /** InterconnectAttachmentL2Forwarding tunnelEndpointIpAddress. */
                    public tunnelEndpointIpAddress?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentL2Forwarding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentL2Forwarding instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentL2Forwarding): google.cloud.compute.v1.InterconnectAttachmentL2Forwarding;

                    /**
                     * Encodes the specified InterconnectAttachmentL2Forwarding message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentL2Forwarding.verify|verify} messages.
                     * @param message InterconnectAttachmentL2Forwarding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentL2Forwarding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentL2Forwarding message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentL2Forwarding.verify|verify} messages.
                     * @param message InterconnectAttachmentL2Forwarding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentL2Forwarding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentL2Forwarding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentL2Forwarding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentL2Forwarding;

                    /**
                     * Decodes an InterconnectAttachmentL2Forwarding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentL2Forwarding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentL2Forwarding;

                    /**
                     * Verifies an InterconnectAttachmentL2Forwarding message.
                     * @param message Plain 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 InterconnectAttachmentL2Forwarding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentL2Forwarding
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentL2Forwarding;

                    /**
                     * Creates a plain object from an InterconnectAttachmentL2Forwarding message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentL2Forwarding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentL2Forwarding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentL2Forwarding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentL2Forwarding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentL2ForwardingApplianceMapping. */
                interface IInterconnectAttachmentL2ForwardingApplianceMapping {

                    /** InterconnectAttachmentL2ForwardingApplianceMapping applianceIpAddress */
                    applianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMapping innerVlanToApplianceMappings */
                    innerVlanToApplianceMappings?: (google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping[]|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMapping name */
                    name?: (string|null);
                }

                /** Represents an InterconnectAttachmentL2ForwardingApplianceMapping. */
                class InterconnectAttachmentL2ForwardingApplianceMapping implements IInterconnectAttachmentL2ForwardingApplianceMapping {

                    /**
                     * Constructs a new InterconnectAttachmentL2ForwardingApplianceMapping.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMapping);

                    /** InterconnectAttachmentL2ForwardingApplianceMapping applianceIpAddress. */
                    public applianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMapping innerVlanToApplianceMappings. */
                    public innerVlanToApplianceMappings: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping[];

                    /** InterconnectAttachmentL2ForwardingApplianceMapping name. */
                    public name?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentL2ForwardingApplianceMapping instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentL2ForwardingApplianceMapping instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMapping): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMapping;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingApplianceMapping message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMapping.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingApplianceMapping message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMapping.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingApplianceMapping message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentL2ForwardingApplianceMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMapping;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingApplianceMapping message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentL2ForwardingApplianceMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMapping;

                    /**
                     * Verifies an InterconnectAttachmentL2ForwardingApplianceMapping message.
                     * @param message Plain 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 InterconnectAttachmentL2ForwardingApplianceMapping message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentL2ForwardingApplianceMapping
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMapping;

                    /**
                     * Creates a plain object from an InterconnectAttachmentL2ForwardingApplianceMapping message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMapping
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMapping, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentL2ForwardingApplianceMapping to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentL2ForwardingApplianceMapping
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping. */
                interface IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping {

                    /** InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping innerApplianceIpAddress */
                    innerApplianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping innerVlanTags */
                    innerVlanTags?: (string[]|null);
                }

                /** Represents an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping. */
                class InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping implements IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping {

                    /**
                     * Constructs a new InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping);

                    /** InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping innerApplianceIpAddress. */
                    public innerApplianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping innerVlanTags. */
                    public innerVlanTags: string[];

                    /**
                     * Creates a new InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping;

                    /**
                     * Verifies an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message.
                     * @param message Plain 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 InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping;

                    /**
                     * Creates a plain object from an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentL2ForwardingGeneveHeader. */
                interface IInterconnectAttachmentL2ForwardingGeneveHeader {

                    /** InterconnectAttachmentL2ForwardingGeneveHeader vni */
                    vni?: (number|null);
                }

                /** Represents an InterconnectAttachmentL2ForwardingGeneveHeader. */
                class InterconnectAttachmentL2ForwardingGeneveHeader implements IInterconnectAttachmentL2ForwardingGeneveHeader {

                    /**
                     * Constructs a new InterconnectAttachmentL2ForwardingGeneveHeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingGeneveHeader);

                    /** InterconnectAttachmentL2ForwardingGeneveHeader vni. */
                    public vni?: (number|null);

                    /**
                     * Creates a new InterconnectAttachmentL2ForwardingGeneveHeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentL2ForwardingGeneveHeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingGeneveHeader): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingGeneveHeader;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingGeneveHeader message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentL2ForwardingGeneveHeader.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingGeneveHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingGeneveHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingGeneveHeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentL2ForwardingGeneveHeader.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingGeneveHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentL2ForwardingGeneveHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingGeneveHeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentL2ForwardingGeneveHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingGeneveHeader;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingGeneveHeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentL2ForwardingGeneveHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingGeneveHeader;

                    /**
                     * Verifies an InterconnectAttachmentL2ForwardingGeneveHeader message.
                     * @param message Plain 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 InterconnectAttachmentL2ForwardingGeneveHeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentL2ForwardingGeneveHeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentL2ForwardingGeneveHeader;

                    /**
                     * Creates a plain object from an InterconnectAttachmentL2ForwardingGeneveHeader message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentL2ForwardingGeneveHeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentL2ForwardingGeneveHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentL2ForwardingGeneveHeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentL2ForwardingGeneveHeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentList. */
                interface IInterconnectAttachmentList {

                    /** InterconnectAttachmentList id */
                    id?: (string|null);

                    /** InterconnectAttachmentList items */
                    items?: (google.cloud.compute.v1.IInterconnectAttachment[]|null);

                    /** InterconnectAttachmentList kind */
                    kind?: (string|null);

                    /** InterconnectAttachmentList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectAttachmentList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectAttachmentList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InterconnectAttachmentList. */
                class InterconnectAttachmentList implements IInterconnectAttachmentList {

                    /**
                     * Constructs a new InterconnectAttachmentList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentList);

                    /** InterconnectAttachmentList id. */
                    public id?: (string|null);

                    /** InterconnectAttachmentList items. */
                    public items: google.cloud.compute.v1.IInterconnectAttachment[];

                    /** InterconnectAttachmentList kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachmentList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectAttachmentList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectAttachmentList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InterconnectAttachmentList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentList): google.cloud.compute.v1.InterconnectAttachmentList;

                    /**
                     * Encodes the specified InterconnectAttachmentList message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentList.verify|verify} messages.
                     * @param message InterconnectAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentList.verify|verify} messages.
                     * @param message InterconnectAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentList;

                    /**
                     * Decodes an InterconnectAttachmentList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentList;

                    /**
                     * Verifies an InterconnectAttachmentList message.
                     * @param message Plain 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 InterconnectAttachmentList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentList;

                    /**
                     * Creates a plain object from an InterconnectAttachmentList message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentParams. */
                interface IInterconnectAttachmentParams {

                    /** InterconnectAttachmentParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InterconnectAttachmentParams. */
                class InterconnectAttachmentParams implements IInterconnectAttachmentParams {

                    /**
                     * Constructs a new InterconnectAttachmentParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentParams);

                    /** InterconnectAttachmentParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InterconnectAttachmentParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentParams): google.cloud.compute.v1.InterconnectAttachmentParams;

                    /**
                     * Encodes the specified InterconnectAttachmentParams message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentParams.verify|verify} messages.
                     * @param message InterconnectAttachmentParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentParams.verify|verify} messages.
                     * @param message InterconnectAttachmentParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentParams;

                    /**
                     * Decodes an InterconnectAttachmentParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentParams;

                    /**
                     * Verifies an InterconnectAttachmentParams message.
                     * @param message Plain 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 InterconnectAttachmentParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentParams;

                    /**
                     * Creates a plain object from an InterconnectAttachmentParams message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentPartnerMetadata. */
                interface IInterconnectAttachmentPartnerMetadata {

                    /** InterconnectAttachmentPartnerMetadata interconnectName */
                    interconnectName?: (string|null);

                    /** InterconnectAttachmentPartnerMetadata partnerName */
                    partnerName?: (string|null);

                    /** InterconnectAttachmentPartnerMetadata portalUrl */
                    portalUrl?: (string|null);
                }

                /** Represents an InterconnectAttachmentPartnerMetadata. */
                class InterconnectAttachmentPartnerMetadata implements IInterconnectAttachmentPartnerMetadata {

                    /**
                     * Constructs a new InterconnectAttachmentPartnerMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentPartnerMetadata);

                    /** InterconnectAttachmentPartnerMetadata interconnectName. */
                    public interconnectName?: (string|null);

                    /** InterconnectAttachmentPartnerMetadata partnerName. */
                    public partnerName?: (string|null);

                    /** InterconnectAttachmentPartnerMetadata portalUrl. */
                    public portalUrl?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentPartnerMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentPartnerMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentPartnerMetadata): google.cloud.compute.v1.InterconnectAttachmentPartnerMetadata;

                    /**
                     * Encodes the specified InterconnectAttachmentPartnerMetadata message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentPartnerMetadata.verify|verify} messages.
                     * @param message InterconnectAttachmentPartnerMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentPartnerMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentPartnerMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentPartnerMetadata.verify|verify} messages.
                     * @param message InterconnectAttachmentPartnerMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentPartnerMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentPartnerMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentPartnerMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentPartnerMetadata;

                    /**
                     * Decodes an InterconnectAttachmentPartnerMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentPartnerMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentPartnerMetadata;

                    /**
                     * Verifies an InterconnectAttachmentPartnerMetadata message.
                     * @param message Plain 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 InterconnectAttachmentPartnerMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentPartnerMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentPartnerMetadata;

                    /**
                     * Creates a plain object from an InterconnectAttachmentPartnerMetadata message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentPartnerMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentPartnerMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentPartnerMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentPartnerMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentPrivateInfo. */
                interface IInterconnectAttachmentPrivateInfo {

                    /** InterconnectAttachmentPrivateInfo tag8021q */
                    tag8021q?: (number|null);
                }

                /** Represents an InterconnectAttachmentPrivateInfo. */
                class InterconnectAttachmentPrivateInfo implements IInterconnectAttachmentPrivateInfo {

                    /**
                     * Constructs a new InterconnectAttachmentPrivateInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentPrivateInfo);

                    /** InterconnectAttachmentPrivateInfo tag8021q. */
                    public tag8021q?: (number|null);

                    /**
                     * Creates a new InterconnectAttachmentPrivateInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentPrivateInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentPrivateInfo): google.cloud.compute.v1.InterconnectAttachmentPrivateInfo;

                    /**
                     * Encodes the specified InterconnectAttachmentPrivateInfo message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentPrivateInfo.verify|verify} messages.
                     * @param message InterconnectAttachmentPrivateInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentPrivateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentPrivateInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentPrivateInfo.verify|verify} messages.
                     * @param message InterconnectAttachmentPrivateInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentPrivateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentPrivateInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentPrivateInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentPrivateInfo;

                    /**
                     * Decodes an InterconnectAttachmentPrivateInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentPrivateInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentPrivateInfo;

                    /**
                     * Verifies an InterconnectAttachmentPrivateInfo message.
                     * @param message Plain 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 InterconnectAttachmentPrivateInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentPrivateInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentPrivateInfo;

                    /**
                     * Creates a plain object from an InterconnectAttachmentPrivateInfo message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentPrivateInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentPrivateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentPrivateInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentPrivateInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentsScopedList. */
                interface IInterconnectAttachmentsScopedList {

                    /** InterconnectAttachmentsScopedList interconnectAttachments */
                    interconnectAttachments?: (google.cloud.compute.v1.IInterconnectAttachment[]|null);

                    /** InterconnectAttachmentsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InterconnectAttachmentsScopedList. */
                class InterconnectAttachmentsScopedList implements IInterconnectAttachmentsScopedList {

                    /**
                     * Constructs a new InterconnectAttachmentsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectAttachmentsScopedList);

                    /** InterconnectAttachmentsScopedList interconnectAttachments. */
                    public interconnectAttachments: google.cloud.compute.v1.IInterconnectAttachment[];

                    /** InterconnectAttachmentsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InterconnectAttachmentsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectAttachmentsScopedList): google.cloud.compute.v1.InterconnectAttachmentsScopedList;

                    /**
                     * Encodes the specified InterconnectAttachmentsScopedList message. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentsScopedList.verify|verify} messages.
                     * @param message InterconnectAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectAttachmentsScopedList.verify|verify} messages.
                     * @param message InterconnectAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectAttachmentsScopedList;

                    /**
                     * Decodes an InterconnectAttachmentsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectAttachmentsScopedList;

                    /**
                     * Verifies an InterconnectAttachmentsScopedList message.
                     * @param message Plain 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 InterconnectAttachmentsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectAttachmentsScopedList;

                    /**
                     * Creates a plain object from an InterconnectAttachmentsScopedList message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectAttachmentsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectCircuitInfo. */
                interface IInterconnectCircuitInfo {

                    /** InterconnectCircuitInfo customerDemarcId */
                    customerDemarcId?: (string|null);

                    /** InterconnectCircuitInfo googleCircuitId */
                    googleCircuitId?: (string|null);

                    /** InterconnectCircuitInfo googleDemarcId */
                    googleDemarcId?: (string|null);
                }

                /** Represents an InterconnectCircuitInfo. */
                class InterconnectCircuitInfo implements IInterconnectCircuitInfo {

                    /**
                     * Constructs a new InterconnectCircuitInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectCircuitInfo);

                    /** InterconnectCircuitInfo customerDemarcId. */
                    public customerDemarcId?: (string|null);

                    /** InterconnectCircuitInfo googleCircuitId. */
                    public googleCircuitId?: (string|null);

                    /** InterconnectCircuitInfo googleDemarcId. */
                    public googleDemarcId?: (string|null);

                    /**
                     * Creates a new InterconnectCircuitInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectCircuitInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectCircuitInfo): google.cloud.compute.v1.InterconnectCircuitInfo;

                    /**
                     * Encodes the specified InterconnectCircuitInfo message. Does not implicitly {@link google.cloud.compute.v1.InterconnectCircuitInfo.verify|verify} messages.
                     * @param message InterconnectCircuitInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectCircuitInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectCircuitInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectCircuitInfo.verify|verify} messages.
                     * @param message InterconnectCircuitInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectCircuitInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectCircuitInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectCircuitInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectCircuitInfo;

                    /**
                     * Decodes an InterconnectCircuitInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectCircuitInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectCircuitInfo;

                    /**
                     * Verifies an InterconnectCircuitInfo message.
                     * @param message Plain 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 InterconnectCircuitInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectCircuitInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectCircuitInfo;

                    /**
                     * Creates a plain object from an InterconnectCircuitInfo message. Also converts values to other types if specified.
                     * @param message InterconnectCircuitInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectCircuitInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectCircuitInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectCircuitInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectDiagnostics. */
                interface IInterconnectDiagnostics {

                    /** InterconnectDiagnostics arpCaches */
                    arpCaches?: (google.cloud.compute.v1.IInterconnectDiagnosticsARPEntry[]|null);

                    /** InterconnectDiagnostics bundleAggregationType */
                    bundleAggregationType?: (string|null);

                    /** InterconnectDiagnostics bundleOperationalStatus */
                    bundleOperationalStatus?: (string|null);

                    /** InterconnectDiagnostics links */
                    links?: (google.cloud.compute.v1.IInterconnectDiagnosticsLinkStatus[]|null);

                    /** InterconnectDiagnostics macAddress */
                    macAddress?: (string|null);
                }

                /** Represents an InterconnectDiagnostics. */
                class InterconnectDiagnostics implements IInterconnectDiagnostics {

                    /**
                     * Constructs a new InterconnectDiagnostics.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectDiagnostics);

                    /** InterconnectDiagnostics arpCaches. */
                    public arpCaches: google.cloud.compute.v1.IInterconnectDiagnosticsARPEntry[];

                    /** InterconnectDiagnostics bundleAggregationType. */
                    public bundleAggregationType?: (string|null);

                    /** InterconnectDiagnostics bundleOperationalStatus. */
                    public bundleOperationalStatus?: (string|null);

                    /** InterconnectDiagnostics links. */
                    public links: google.cloud.compute.v1.IInterconnectDiagnosticsLinkStatus[];

                    /** InterconnectDiagnostics macAddress. */
                    public macAddress?: (string|null);

                    /**
                     * Creates a new InterconnectDiagnostics instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnostics instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectDiagnostics): google.cloud.compute.v1.InterconnectDiagnostics;

                    /**
                     * Encodes the specified InterconnectDiagnostics message. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnostics.verify|verify} messages.
                     * @param message InterconnectDiagnostics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectDiagnostics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnostics message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnostics.verify|verify} messages.
                     * @param message InterconnectDiagnostics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectDiagnostics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnostics message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnostics
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectDiagnostics;

                    /**
                     * Decodes an InterconnectDiagnostics message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnostics
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectDiagnostics;

                    /**
                     * Verifies an InterconnectDiagnostics message.
                     * @param message Plain 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 InterconnectDiagnostics message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnostics
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectDiagnostics;

                    /**
                     * Creates a plain object from an InterconnectDiagnostics message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnostics
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectDiagnostics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnostics to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnostics
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectDiagnostics {

                    /** BundleAggregationType enum. */
                    enum BundleAggregationType {
                        UNDEFINED_BUNDLE_AGGREGATION_TYPE = 0,
                        BUNDLE_AGGREGATION_TYPE_LACP = 27758925,
                        BUNDLE_AGGREGATION_TYPE_STATIC = 50678873
                    }

                    /** BundleOperationalStatus enum. */
                    enum BundleOperationalStatus {
                        UNDEFINED_BUNDLE_OPERATIONAL_STATUS = 0,
                        BUNDLE_OPERATIONAL_STATUS_DOWN = 453842693,
                        BUNDLE_OPERATIONAL_STATUS_UP = 161366462
                    }
                }

                /** Properties of an InterconnectDiagnosticsARPEntry. */
                interface IInterconnectDiagnosticsARPEntry {

                    /** InterconnectDiagnosticsARPEntry ipAddress */
                    ipAddress?: (string|null);

                    /** InterconnectDiagnosticsARPEntry macAddress */
                    macAddress?: (string|null);
                }

                /** Represents an InterconnectDiagnosticsARPEntry. */
                class InterconnectDiagnosticsARPEntry implements IInterconnectDiagnosticsARPEntry {

                    /**
                     * Constructs a new InterconnectDiagnosticsARPEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsARPEntry);

                    /** InterconnectDiagnosticsARPEntry ipAddress. */
                    public ipAddress?: (string|null);

                    /** InterconnectDiagnosticsARPEntry macAddress. */
                    public macAddress?: (string|null);

                    /**
                     * Creates a new InterconnectDiagnosticsARPEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsARPEntry instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsARPEntry): google.cloud.compute.v1.InterconnectDiagnosticsARPEntry;

                    /**
                     * Encodes the specified InterconnectDiagnosticsARPEntry message. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsARPEntry.verify|verify} messages.
                     * @param message InterconnectDiagnosticsARPEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectDiagnosticsARPEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsARPEntry message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsARPEntry.verify|verify} messages.
                     * @param message InterconnectDiagnosticsARPEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectDiagnosticsARPEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsARPEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsARPEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectDiagnosticsARPEntry;

                    /**
                     * Decodes an InterconnectDiagnosticsARPEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsARPEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectDiagnosticsARPEntry;

                    /**
                     * Verifies an InterconnectDiagnosticsARPEntry message.
                     * @param message Plain 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 InterconnectDiagnosticsARPEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsARPEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectDiagnosticsARPEntry;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsARPEntry message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsARPEntry
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectDiagnosticsARPEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsARPEntry to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsARPEntry
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectDiagnosticsLinkLACPStatus. */
                interface IInterconnectDiagnosticsLinkLACPStatus {

                    /** InterconnectDiagnosticsLinkLACPStatus googleSystemId */
                    googleSystemId?: (string|null);

                    /** InterconnectDiagnosticsLinkLACPStatus neighborSystemId */
                    neighborSystemId?: (string|null);

                    /** InterconnectDiagnosticsLinkLACPStatus state */
                    state?: (string|null);
                }

                /** Represents an InterconnectDiagnosticsLinkLACPStatus. */
                class InterconnectDiagnosticsLinkLACPStatus implements IInterconnectDiagnosticsLinkLACPStatus {

                    /**
                     * Constructs a new InterconnectDiagnosticsLinkLACPStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsLinkLACPStatus);

                    /** InterconnectDiagnosticsLinkLACPStatus googleSystemId. */
                    public googleSystemId?: (string|null);

                    /** InterconnectDiagnosticsLinkLACPStatus neighborSystemId. */
                    public neighborSystemId?: (string|null);

                    /** InterconnectDiagnosticsLinkLACPStatus state. */
                    public state?: (string|null);

                    /**
                     * Creates a new InterconnectDiagnosticsLinkLACPStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsLinkLACPStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsLinkLACPStatus): google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatus;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkLACPStatus message. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkLACPStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectDiagnosticsLinkLACPStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkLACPStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkLACPStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectDiagnosticsLinkLACPStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkLACPStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsLinkLACPStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatus;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkLACPStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsLinkLACPStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatus;

                    /**
                     * Verifies an InterconnectDiagnosticsLinkLACPStatus message.
                     * @param message Plain 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 InterconnectDiagnosticsLinkLACPStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsLinkLACPStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatus;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsLinkLACPStatus message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsLinkLACPStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsLinkLACPStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsLinkLACPStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectDiagnosticsLinkLACPStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DETACHED = 216562546
                    }
                }

                /** Properties of an InterconnectDiagnosticsLinkOpticalPower. */
                interface IInterconnectDiagnosticsLinkOpticalPower {

                    /** InterconnectDiagnosticsLinkOpticalPower state */
                    state?: (string|null);

                    /** InterconnectDiagnosticsLinkOpticalPower value */
                    value?: (number|null);
                }

                /** Represents an InterconnectDiagnosticsLinkOpticalPower. */
                class InterconnectDiagnosticsLinkOpticalPower implements IInterconnectDiagnosticsLinkOpticalPower {

                    /**
                     * Constructs a new InterconnectDiagnosticsLinkOpticalPower.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsLinkOpticalPower);

                    /** InterconnectDiagnosticsLinkOpticalPower state. */
                    public state?: (string|null);

                    /** InterconnectDiagnosticsLinkOpticalPower value. */
                    public value?: (number|null);

                    /**
                     * Creates a new InterconnectDiagnosticsLinkOpticalPower instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsLinkOpticalPower instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsLinkOpticalPower): google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPower;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkOpticalPower message. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPower.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkOpticalPower message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectDiagnosticsLinkOpticalPower, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkOpticalPower message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPower.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkOpticalPower message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectDiagnosticsLinkOpticalPower, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkOpticalPower message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsLinkOpticalPower
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPower;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkOpticalPower message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsLinkOpticalPower
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPower;

                    /**
                     * Verifies an InterconnectDiagnosticsLinkOpticalPower message.
                     * @param message Plain 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 InterconnectDiagnosticsLinkOpticalPower message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsLinkOpticalPower
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPower;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsLinkOpticalPower message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsLinkOpticalPower
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPower, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsLinkOpticalPower to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsLinkOpticalPower
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectDiagnosticsLinkOpticalPower {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        HIGH_ALARM = 305363284,
                        HIGH_WARNING = 220984799,
                        LOW_ALARM = 316659046,
                        LOW_WARNING = 338793841,
                        OK = 2524
                    }
                }

                /** Properties of an InterconnectDiagnosticsLinkStatus. */
                interface IInterconnectDiagnosticsLinkStatus {

                    /** InterconnectDiagnosticsLinkStatus arpCaches */
                    arpCaches?: (google.cloud.compute.v1.IInterconnectDiagnosticsARPEntry[]|null);

                    /** InterconnectDiagnosticsLinkStatus circuitId */
                    circuitId?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus googleDemarc */
                    googleDemarc?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus lacpStatus */
                    lacpStatus?: (google.cloud.compute.v1.IInterconnectDiagnosticsLinkLACPStatus|null);

                    /** InterconnectDiagnosticsLinkStatus macsec */
                    macsec?: (google.cloud.compute.v1.IInterconnectDiagnosticsMacsecStatus|null);

                    /** InterconnectDiagnosticsLinkStatus operationalStatus */
                    operationalStatus?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus receivingOpticalPower */
                    receivingOpticalPower?: (google.cloud.compute.v1.IInterconnectDiagnosticsLinkOpticalPower|null);

                    /** InterconnectDiagnosticsLinkStatus transmittingOpticalPower */
                    transmittingOpticalPower?: (google.cloud.compute.v1.IInterconnectDiagnosticsLinkOpticalPower|null);
                }

                /** Represents an InterconnectDiagnosticsLinkStatus. */
                class InterconnectDiagnosticsLinkStatus implements IInterconnectDiagnosticsLinkStatus {

                    /**
                     * Constructs a new InterconnectDiagnosticsLinkStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsLinkStatus);

                    /** InterconnectDiagnosticsLinkStatus arpCaches. */
                    public arpCaches: google.cloud.compute.v1.IInterconnectDiagnosticsARPEntry[];

                    /** InterconnectDiagnosticsLinkStatus circuitId. */
                    public circuitId?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus googleDemarc. */
                    public googleDemarc?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus lacpStatus. */
                    public lacpStatus?: (google.cloud.compute.v1.IInterconnectDiagnosticsLinkLACPStatus|null);

                    /** InterconnectDiagnosticsLinkStatus macsec. */
                    public macsec?: (google.cloud.compute.v1.IInterconnectDiagnosticsMacsecStatus|null);

                    /** InterconnectDiagnosticsLinkStatus operationalStatus. */
                    public operationalStatus?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus receivingOpticalPower. */
                    public receivingOpticalPower?: (google.cloud.compute.v1.IInterconnectDiagnosticsLinkOpticalPower|null);

                    /** InterconnectDiagnosticsLinkStatus transmittingOpticalPower. */
                    public transmittingOpticalPower?: (google.cloud.compute.v1.IInterconnectDiagnosticsLinkOpticalPower|null);

                    /**
                     * Creates a new InterconnectDiagnosticsLinkStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsLinkStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsLinkStatus): google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkStatus message. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectDiagnosticsLinkStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectDiagnosticsLinkStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsLinkStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsLinkStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus;

                    /**
                     * Verifies an InterconnectDiagnosticsLinkStatus message.
                     * @param message Plain 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 InterconnectDiagnosticsLinkStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsLinkStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsLinkStatus message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsLinkStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsLinkStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsLinkStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectDiagnosticsLinkStatus {

                    /** OperationalStatus enum. */
                    enum OperationalStatus {
                        UNDEFINED_OPERATIONAL_STATUS = 0,
                        LINK_OPERATIONAL_STATUS_DOWN = 281653885,
                        LINK_OPERATIONAL_STATUS_UP = 305879862
                    }
                }

                /** Properties of an InterconnectDiagnosticsMacsecStatus. */
                interface IInterconnectDiagnosticsMacsecStatus {

                    /** InterconnectDiagnosticsMacsecStatus ckn */
                    ckn?: (string|null);

                    /** InterconnectDiagnosticsMacsecStatus operational */
                    operational?: (boolean|null);
                }

                /** Represents an InterconnectDiagnosticsMacsecStatus. */
                class InterconnectDiagnosticsMacsecStatus implements IInterconnectDiagnosticsMacsecStatus {

                    /**
                     * Constructs a new InterconnectDiagnosticsMacsecStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsMacsecStatus);

                    /** InterconnectDiagnosticsMacsecStatus ckn. */
                    public ckn?: (string|null);

                    /** InterconnectDiagnosticsMacsecStatus operational. */
                    public operational?: (boolean|null);

                    /**
                     * Creates a new InterconnectDiagnosticsMacsecStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsMacsecStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectDiagnosticsMacsecStatus): google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatus;

                    /**
                     * Encodes the specified InterconnectDiagnosticsMacsecStatus message. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsMacsecStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectDiagnosticsMacsecStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsMacsecStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsMacsecStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectDiagnosticsMacsecStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsMacsecStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsMacsecStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatus;

                    /**
                     * Decodes an InterconnectDiagnosticsMacsecStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsMacsecStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatus;

                    /**
                     * Verifies an InterconnectDiagnosticsMacsecStatus message.
                     * @param message Plain 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 InterconnectDiagnosticsMacsecStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsMacsecStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatus;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsMacsecStatus message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsMacsecStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsMacsecStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsMacsecStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroup. */
                interface IInterconnectGroup {

                    /** InterconnectGroup configured */
                    configured?: (google.cloud.compute.v1.IInterconnectGroupConfigured|null);

                    /** InterconnectGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectGroup description */
                    description?: (string|null);

                    /** InterconnectGroup etag */
                    etag?: (string|null);

                    /** InterconnectGroup id */
                    id?: (number|Long|string|null);

                    /** InterconnectGroup intent */
                    intent?: (google.cloud.compute.v1.IInterconnectGroupIntent|null);

                    /** InterconnectGroup interconnects */
                    interconnects?: ({ [k: string]: google.cloud.compute.v1.IInterconnectGroupInterconnect }|null);

                    /** InterconnectGroup kind */
                    kind?: (string|null);

                    /** InterconnectGroup name */
                    name?: (string|null);

                    /** InterconnectGroup physicalStructure */
                    physicalStructure?: (google.cloud.compute.v1.IInterconnectGroupPhysicalStructure|null);

                    /** InterconnectGroup selfLink */
                    selfLink?: (string|null);
                }

                /** Represents an InterconnectGroup. */
                class InterconnectGroup implements IInterconnectGroup {

                    /**
                     * Constructs a new InterconnectGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroup);

                    /** InterconnectGroup configured. */
                    public configured?: (google.cloud.compute.v1.IInterconnectGroupConfigured|null);

                    /** InterconnectGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectGroup description. */
                    public description?: (string|null);

                    /** InterconnectGroup etag. */
                    public etag?: (string|null);

                    /** InterconnectGroup id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectGroup intent. */
                    public intent?: (google.cloud.compute.v1.IInterconnectGroupIntent|null);

                    /** InterconnectGroup interconnects. */
                    public interconnects: { [k: string]: google.cloud.compute.v1.IInterconnectGroupInterconnect };

                    /** InterconnectGroup kind. */
                    public kind?: (string|null);

                    /** InterconnectGroup name. */
                    public name?: (string|null);

                    /** InterconnectGroup physicalStructure. */
                    public physicalStructure?: (google.cloud.compute.v1.IInterconnectGroupPhysicalStructure|null);

                    /** InterconnectGroup selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new InterconnectGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroup): google.cloud.compute.v1.InterconnectGroup;

                    /**
                     * Encodes the specified InterconnectGroup message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroup.verify|verify} messages.
                     * @param message InterconnectGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroup.verify|verify} messages.
                     * @param message InterconnectGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroup;

                    /**
                     * Decodes an InterconnectGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroup;

                    /**
                     * Verifies an InterconnectGroup message.
                     * @param message Plain 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 InterconnectGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroup;

                    /**
                     * Creates a plain object from an InterconnectGroup message. Also converts values to other types if specified.
                     * @param message InterconnectGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupConfigured. */
                interface IInterconnectGroupConfigured {

                    /** InterconnectGroupConfigured topologyCapability */
                    topologyCapability?: (google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapability|null);
                }

                /** Represents an InterconnectGroupConfigured. */
                class InterconnectGroupConfigured implements IInterconnectGroupConfigured {

                    /**
                     * Constructs a new InterconnectGroupConfigured.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupConfigured);

                    /** InterconnectGroupConfigured topologyCapability. */
                    public topologyCapability?: (google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapability|null);

                    /**
                     * Creates a new InterconnectGroupConfigured instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupConfigured instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupConfigured): google.cloud.compute.v1.InterconnectGroupConfigured;

                    /**
                     * Encodes the specified InterconnectGroupConfigured message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupConfigured.verify|verify} messages.
                     * @param message InterconnectGroupConfigured message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupConfigured, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupConfigured message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupConfigured.verify|verify} messages.
                     * @param message InterconnectGroupConfigured message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupConfigured, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupConfigured message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupConfigured
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupConfigured;

                    /**
                     * Decodes an InterconnectGroupConfigured message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupConfigured
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupConfigured;

                    /**
                     * Verifies an InterconnectGroupConfigured message.
                     * @param message Plain 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 InterconnectGroupConfigured message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupConfigured
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupConfigured;

                    /**
                     * Creates a plain object from an InterconnectGroupConfigured message. Also converts values to other types if specified.
                     * @param message InterconnectGroupConfigured
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupConfigured, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupConfigured to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupConfigured
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupConfiguredTopologyCapability. */
                interface IInterconnectGroupConfiguredTopologyCapability {

                    /** InterconnectGroupConfiguredTopologyCapability intendedCapabilityBlockers */
                    intendedCapabilityBlockers?: (google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers[]|null);

                    /** InterconnectGroupConfiguredTopologyCapability supportedSla */
                    supportedSla?: (string|null);
                }

                /** Represents an InterconnectGroupConfiguredTopologyCapability. */
                class InterconnectGroupConfiguredTopologyCapability implements IInterconnectGroupConfiguredTopologyCapability {

                    /**
                     * Constructs a new InterconnectGroupConfiguredTopologyCapability.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapability);

                    /** InterconnectGroupConfiguredTopologyCapability intendedCapabilityBlockers. */
                    public intendedCapabilityBlockers: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers[];

                    /** InterconnectGroupConfiguredTopologyCapability supportedSla. */
                    public supportedSla?: (string|null);

                    /**
                     * Creates a new InterconnectGroupConfiguredTopologyCapability instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupConfiguredTopologyCapability instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapability): google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapability;

                    /**
                     * Encodes the specified InterconnectGroupConfiguredTopologyCapability message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapability.verify|verify} messages.
                     * @param message InterconnectGroupConfiguredTopologyCapability message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapability, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupConfiguredTopologyCapability message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapability.verify|verify} messages.
                     * @param message InterconnectGroupConfiguredTopologyCapability message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapability, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupConfiguredTopologyCapability message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupConfiguredTopologyCapability
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapability;

                    /**
                     * Decodes an InterconnectGroupConfiguredTopologyCapability message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupConfiguredTopologyCapability
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapability;

                    /**
                     * Verifies an InterconnectGroupConfiguredTopologyCapability message.
                     * @param message Plain 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 InterconnectGroupConfiguredTopologyCapability message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupConfiguredTopologyCapability
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapability;

                    /**
                     * Creates a plain object from an InterconnectGroupConfiguredTopologyCapability message. Also converts values to other types if specified.
                     * @param message InterconnectGroupConfiguredTopologyCapability
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapability, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupConfiguredTopologyCapability to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupConfiguredTopologyCapability
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupConfiguredTopologyCapability {

                    /** SupportedSla enum. */
                    enum SupportedSla {
                        UNDEFINED_SUPPORTED_SLA = 0,
                        NO_SLA = 161460618,
                        PRODUCTION_CRITICAL = 470416485,
                        PRODUCTION_NON_CRITICAL = 117399223,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers. */
                interface IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers {

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers blockerType */
                    blockerType?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers documentationLink */
                    documentationLink?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers explanation */
                    explanation?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers facilities */
                    facilities?: (string[]|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers interconnects */
                    interconnects?: (string[]|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers metros */
                    metros?: (string[]|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers zones */
                    zones?: (string[]|null);
                }

                /** Represents an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers. */
                class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers implements IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers {

                    /**
                     * Constructs a new InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers blockerType. */
                    public blockerType?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers documentationLink. */
                    public documentationLink?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers explanation. */
                    public explanation?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers facilities. */
                    public facilities: string[];

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers interconnects. */
                    public interconnects: string[];

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers metros. */
                    public metros: string[];

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers zones. */
                    public zones: string[];

                    /**
                     * Creates a new InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers): google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers;

                    /**
                     * Encodes the specified InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers.verify|verify} messages.
                     * @param message InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers.verify|verify} messages.
                     * @param message InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers;

                    /**
                     * Decodes an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers;

                    /**
                     * Verifies an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message.
                     * @param message Plain 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 InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers;

                    /**
                     * Creates a plain object from an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message. Also converts values to other types if specified.
                     * @param message InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers {

                    /** BlockerType enum. */
                    enum BlockerType {
                        UNDEFINED_BLOCKER_TYPE = 0,
                        INCOMPATIBLE_METROS = 290410432,
                        NOT_AVAILABLE = 140722205,
                        NO_INTERCONNECTS = 523549575,
                        NO_INTERCONNECTS_IN_METRO_AND_ZONE = 440966492,
                        OTHER = 75532016,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectGroupIntent. */
                interface IInterconnectGroupIntent {

                    /** InterconnectGroupIntent topologyCapability */
                    topologyCapability?: (string|null);
                }

                /** Represents an InterconnectGroupIntent. */
                class InterconnectGroupIntent implements IInterconnectGroupIntent {

                    /**
                     * Constructs a new InterconnectGroupIntent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupIntent);

                    /** InterconnectGroupIntent topologyCapability. */
                    public topologyCapability?: (string|null);

                    /**
                     * Creates a new InterconnectGroupIntent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupIntent instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupIntent): google.cloud.compute.v1.InterconnectGroupIntent;

                    /**
                     * Encodes the specified InterconnectGroupIntent message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupIntent.verify|verify} messages.
                     * @param message InterconnectGroupIntent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupIntent message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupIntent.verify|verify} messages.
                     * @param message InterconnectGroupIntent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupIntent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupIntent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupIntent;

                    /**
                     * Decodes an InterconnectGroupIntent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupIntent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupIntent;

                    /**
                     * Verifies an InterconnectGroupIntent message.
                     * @param message Plain 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 InterconnectGroupIntent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupIntent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupIntent;

                    /**
                     * Creates a plain object from an InterconnectGroupIntent message. Also converts values to other types if specified.
                     * @param message InterconnectGroupIntent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupIntent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupIntent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupIntent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupIntent {

                    /** TopologyCapability enum. */
                    enum TopologyCapability {
                        UNDEFINED_TOPOLOGY_CAPABILITY = 0,
                        NO_SLA = 161460618,
                        PRODUCTION_CRITICAL = 470416485,
                        PRODUCTION_NON_CRITICAL = 117399223,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectGroupInterconnect. */
                interface IInterconnectGroupInterconnect {

                    /** InterconnectGroupInterconnect interconnect */
                    interconnect?: (string|null);
                }

                /** Represents an InterconnectGroupInterconnect. */
                class InterconnectGroupInterconnect implements IInterconnectGroupInterconnect {

                    /**
                     * Constructs a new InterconnectGroupInterconnect.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupInterconnect);

                    /** InterconnectGroupInterconnect interconnect. */
                    public interconnect?: (string|null);

                    /**
                     * Creates a new InterconnectGroupInterconnect instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupInterconnect instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupInterconnect): google.cloud.compute.v1.InterconnectGroupInterconnect;

                    /**
                     * Encodes the specified InterconnectGroupInterconnect message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupInterconnect.verify|verify} messages.
                     * @param message InterconnectGroupInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupInterconnect message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupInterconnect.verify|verify} messages.
                     * @param message InterconnectGroupInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupInterconnect message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupInterconnect;

                    /**
                     * Decodes an InterconnectGroupInterconnect message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupInterconnect;

                    /**
                     * Verifies an InterconnectGroupInterconnect message.
                     * @param message Plain 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 InterconnectGroupInterconnect message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupInterconnect
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupInterconnect;

                    /**
                     * Creates a plain object from an InterconnectGroupInterconnect message. Also converts values to other types if specified.
                     * @param message InterconnectGroupInterconnect
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupInterconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupInterconnect to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupInterconnect
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupPhysicalStructure. */
                interface IInterconnectGroupPhysicalStructure {

                    /** InterconnectGroupPhysicalStructure metros */
                    metros?: (google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetros[]|null);
                }

                /** Represents an InterconnectGroupPhysicalStructure. */
                class InterconnectGroupPhysicalStructure implements IInterconnectGroupPhysicalStructure {

                    /**
                     * Constructs a new InterconnectGroupPhysicalStructure.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupPhysicalStructure);

                    /** InterconnectGroupPhysicalStructure metros. */
                    public metros: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetros[];

                    /**
                     * Creates a new InterconnectGroupPhysicalStructure instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupPhysicalStructure instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupPhysicalStructure): google.cloud.compute.v1.InterconnectGroupPhysicalStructure;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructure message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupPhysicalStructure.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupPhysicalStructure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructure message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupPhysicalStructure.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupPhysicalStructure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructure message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupPhysicalStructure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupPhysicalStructure;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructure message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupPhysicalStructure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupPhysicalStructure;

                    /**
                     * Verifies an InterconnectGroupPhysicalStructure message.
                     * @param message Plain 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 InterconnectGroupPhysicalStructure message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupPhysicalStructure
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupPhysicalStructure;

                    /**
                     * Creates a plain object from an InterconnectGroupPhysicalStructure message. Also converts values to other types if specified.
                     * @param message InterconnectGroupPhysicalStructure
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupPhysicalStructure, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupPhysicalStructure to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupPhysicalStructure
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupPhysicalStructureMetros. */
                interface IInterconnectGroupPhysicalStructureMetros {

                    /** InterconnectGroupPhysicalStructureMetros facilities */
                    facilities?: (google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilities[]|null);

                    /** InterconnectGroupPhysicalStructureMetros metro */
                    metro?: (string|null);
                }

                /** Represents an InterconnectGroupPhysicalStructureMetros. */
                class InterconnectGroupPhysicalStructureMetros implements IInterconnectGroupPhysicalStructureMetros {

                    /**
                     * Constructs a new InterconnectGroupPhysicalStructureMetros.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetros);

                    /** InterconnectGroupPhysicalStructureMetros facilities. */
                    public facilities: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilities[];

                    /** InterconnectGroupPhysicalStructureMetros metro. */
                    public metro?: (string|null);

                    /**
                     * Creates a new InterconnectGroupPhysicalStructureMetros instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupPhysicalStructureMetros instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetros): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetros message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetros message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetros, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetros message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetros message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetros, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetros message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupPhysicalStructureMetros
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetros message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupPhysicalStructureMetros
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros;

                    /**
                     * Verifies an InterconnectGroupPhysicalStructureMetros message.
                     * @param message Plain 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 InterconnectGroupPhysicalStructureMetros message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupPhysicalStructureMetros
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros;

                    /**
                     * Creates a plain object from an InterconnectGroupPhysicalStructureMetros message. Also converts values to other types if specified.
                     * @param message InterconnectGroupPhysicalStructureMetros
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupPhysicalStructureMetros to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupPhysicalStructureMetros
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupPhysicalStructureMetrosFacilities. */
                interface IInterconnectGroupPhysicalStructureMetrosFacilities {

                    /** InterconnectGroupPhysicalStructureMetrosFacilities facility */
                    facility?: (string|null);

                    /** InterconnectGroupPhysicalStructureMetrosFacilities zones */
                    zones?: (google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones[]|null);
                }

                /** Represents an InterconnectGroupPhysicalStructureMetrosFacilities. */
                class InterconnectGroupPhysicalStructureMetrosFacilities implements IInterconnectGroupPhysicalStructureMetrosFacilities {

                    /**
                     * Constructs a new InterconnectGroupPhysicalStructureMetrosFacilities.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilities);

                    /** InterconnectGroupPhysicalStructureMetrosFacilities facility. */
                    public facility?: (string|null);

                    /** InterconnectGroupPhysicalStructureMetrosFacilities zones. */
                    public zones: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones[];

                    /**
                     * Creates a new InterconnectGroupPhysicalStructureMetrosFacilities instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilities instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilities): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetrosFacilities message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilities message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilities, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetrosFacilities message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilities message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilities, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetrosFacilities message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilities
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetrosFacilities message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilities
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities;

                    /**
                     * Verifies an InterconnectGroupPhysicalStructureMetrosFacilities message.
                     * @param message Plain 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 InterconnectGroupPhysicalStructureMetrosFacilities message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilities
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities;

                    /**
                     * Creates a plain object from an InterconnectGroupPhysicalStructureMetrosFacilities message. Also converts values to other types if specified.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilities
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupPhysicalStructureMetrosFacilities to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupPhysicalStructureMetrosFacilities
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupPhysicalStructureMetrosFacilitiesZones. */
                interface IInterconnectGroupPhysicalStructureMetrosFacilitiesZones {

                    /** InterconnectGroupPhysicalStructureMetrosFacilitiesZones interconnects */
                    interconnects?: (string[]|null);

                    /** InterconnectGroupPhysicalStructureMetrosFacilitiesZones zone */
                    zone?: (string|null);
                }

                /** Represents an InterconnectGroupPhysicalStructureMetrosFacilitiesZones. */
                class InterconnectGroupPhysicalStructureMetrosFacilitiesZones implements IInterconnectGroupPhysicalStructureMetrosFacilitiesZones {

                    /**
                     * Constructs a new InterconnectGroupPhysicalStructureMetrosFacilitiesZones.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones);

                    /** InterconnectGroupPhysicalStructureMetrosFacilitiesZones interconnects. */
                    public interconnects: string[];

                    /** InterconnectGroupPhysicalStructureMetrosFacilitiesZones zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InterconnectGroupPhysicalStructureMetrosFacilitiesZones instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilitiesZones instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZones;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetrosFacilitiesZones message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZones.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilitiesZones message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetrosFacilitiesZones message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZones.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilitiesZones message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetrosFacilitiesZones message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZones;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetrosFacilitiesZones message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZones;

                    /**
                     * Verifies an InterconnectGroupPhysicalStructureMetrosFacilitiesZones message.
                     * @param message Plain 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 InterconnectGroupPhysicalStructureMetrosFacilitiesZones message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZones;

                    /**
                     * Creates a plain object from an InterconnectGroupPhysicalStructureMetrosFacilitiesZones message. Also converts values to other types if specified.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZones, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupPhysicalStructureMetrosFacilitiesZones to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupsCreateMembers. */
                interface IInterconnectGroupsCreateMembers {

                    /** InterconnectGroupsCreateMembers intentMismatchBehavior */
                    intentMismatchBehavior?: (string|null);

                    /** InterconnectGroupsCreateMembers interconnects */
                    interconnects?: (google.cloud.compute.v1.IInterconnectGroupsCreateMembersInterconnectInput[]|null);

                    /** InterconnectGroupsCreateMembers templateInterconnect */
                    templateInterconnect?: (google.cloud.compute.v1.IInterconnectGroupsCreateMembersInterconnectInput|null);
                }

                /** Represents an InterconnectGroupsCreateMembers. */
                class InterconnectGroupsCreateMembers implements IInterconnectGroupsCreateMembers {

                    /**
                     * Constructs a new InterconnectGroupsCreateMembers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupsCreateMembers);

                    /** InterconnectGroupsCreateMembers intentMismatchBehavior. */
                    public intentMismatchBehavior?: (string|null);

                    /** InterconnectGroupsCreateMembers interconnects. */
                    public interconnects: google.cloud.compute.v1.IInterconnectGroupsCreateMembersInterconnectInput[];

                    /** InterconnectGroupsCreateMembers templateInterconnect. */
                    public templateInterconnect?: (google.cloud.compute.v1.IInterconnectGroupsCreateMembersInterconnectInput|null);

                    /**
                     * Creates a new InterconnectGroupsCreateMembers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsCreateMembers instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupsCreateMembers): google.cloud.compute.v1.InterconnectGroupsCreateMembers;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembers message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsCreateMembers.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupsCreateMembers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembers message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsCreateMembers.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupsCreateMembers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsCreateMembers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsCreateMembers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupsCreateMembers;

                    /**
                     * Decodes an InterconnectGroupsCreateMembers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsCreateMembers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupsCreateMembers;

                    /**
                     * Verifies an InterconnectGroupsCreateMembers message.
                     * @param message Plain 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 InterconnectGroupsCreateMembers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsCreateMembers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupsCreateMembers;

                    /**
                     * Creates a plain object from an InterconnectGroupsCreateMembers message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsCreateMembers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupsCreateMembers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsCreateMembers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsCreateMembers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupsCreateMembers {

                    /** IntentMismatchBehavior enum. */
                    enum IntentMismatchBehavior {
                        UNDEFINED_INTENT_MISMATCH_BEHAVIOR = 0,
                        CREATE = 385389820,
                        REJECT = 266102687,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectGroupsCreateMembersInterconnectInput. */
                interface IInterconnectGroupsCreateMembersInterconnectInput {

                    /** InterconnectGroupsCreateMembersInterconnectInput adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput customerName */
                    customerName?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput description */
                    description?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput facility */
                    facility?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput interconnectType */
                    interconnectType?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput linkType */
                    linkType?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput name */
                    name?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput nocContactEmail */
                    nocContactEmail?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput remoteLocation */
                    remoteLocation?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput requestedFeatures */
                    requestedFeatures?: (string[]|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput requestedLinkCount */
                    requestedLinkCount?: (number|null);
                }

                /** Represents an InterconnectGroupsCreateMembersInterconnectInput. */
                class InterconnectGroupsCreateMembersInterconnectInput implements IInterconnectGroupsCreateMembersInterconnectInput {

                    /**
                     * Constructs a new InterconnectGroupsCreateMembersInterconnectInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupsCreateMembersInterconnectInput);

                    /** InterconnectGroupsCreateMembersInterconnectInput adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput customerName. */
                    public customerName?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput description. */
                    public description?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput facility. */
                    public facility?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput interconnectType. */
                    public interconnectType?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput linkType. */
                    public linkType?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput name. */
                    public name?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput nocContactEmail. */
                    public nocContactEmail?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput remoteLocation. */
                    public remoteLocation?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput requestedFeatures. */
                    public requestedFeatures: string[];

                    /** InterconnectGroupsCreateMembersInterconnectInput requestedLinkCount. */
                    public requestedLinkCount?: (number|null);

                    /**
                     * Creates a new InterconnectGroupsCreateMembersInterconnectInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsCreateMembersInterconnectInput instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupsCreateMembersInterconnectInput): google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembersInterconnectInput message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembersInterconnectInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupsCreateMembersInterconnectInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembersInterconnectInput message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembersInterconnectInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupsCreateMembersInterconnectInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsCreateMembersInterconnectInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsCreateMembersInterconnectInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput;

                    /**
                     * Decodes an InterconnectGroupsCreateMembersInterconnectInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsCreateMembersInterconnectInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput;

                    /**
                     * Verifies an InterconnectGroupsCreateMembersInterconnectInput message.
                     * @param message Plain 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 InterconnectGroupsCreateMembersInterconnectInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsCreateMembersInterconnectInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput;

                    /**
                     * Creates a plain object from an InterconnectGroupsCreateMembersInterconnectInput message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsCreateMembersInterconnectInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsCreateMembersInterconnectInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsCreateMembersInterconnectInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupsCreateMembersInterconnectInput {

                    /** InterconnectType enum. */
                    enum InterconnectType {
                        UNDEFINED_INTERCONNECT_TYPE = 0,
                        DEDICATED = 258411983,
                        IT_PRIVATE = 335677007,
                        PARTNER = 461924520
                    }

                    /** LinkType enum. */
                    enum LinkType {
                        UNDEFINED_LINK_TYPE = 0,
                        LINK_TYPE_ETHERNET_100G_LR = 337672551,
                        LINK_TYPE_ETHERNET_10G_LR = 236739749,
                        LINK_TYPE_ETHERNET_400G_LR4 = 127023690
                    }

                    /** RequestedFeatures enum. */
                    enum RequestedFeatures {
                        UNDEFINED_REQUESTED_FEATURES = 0,
                        IF_CROSS_SITE_NETWORK = 469111095,
                        IF_L2_FORWARDING = 125563860,
                        IF_MACSEC = 396279300
                    }
                }

                /** Properties of an InterconnectGroupsCreateMembersRequest. */
                interface IInterconnectGroupsCreateMembersRequest {

                    /** InterconnectGroupsCreateMembersRequest request */
                    request?: (google.cloud.compute.v1.IInterconnectGroupsCreateMembers|null);
                }

                /** Represents an InterconnectGroupsCreateMembersRequest. */
                class InterconnectGroupsCreateMembersRequest implements IInterconnectGroupsCreateMembersRequest {

                    /**
                     * Constructs a new InterconnectGroupsCreateMembersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupsCreateMembersRequest);

                    /** InterconnectGroupsCreateMembersRequest request. */
                    public request?: (google.cloud.compute.v1.IInterconnectGroupsCreateMembers|null);

                    /**
                     * Creates a new InterconnectGroupsCreateMembersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsCreateMembersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupsCreateMembersRequest): google.cloud.compute.v1.InterconnectGroupsCreateMembersRequest;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembersRequest message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsCreateMembersRequest.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupsCreateMembersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsCreateMembersRequest.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupsCreateMembersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsCreateMembersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsCreateMembersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupsCreateMembersRequest;

                    /**
                     * Decodes an InterconnectGroupsCreateMembersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsCreateMembersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupsCreateMembersRequest;

                    /**
                     * Verifies an InterconnectGroupsCreateMembersRequest message.
                     * @param message Plain 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 InterconnectGroupsCreateMembersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsCreateMembersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupsCreateMembersRequest;

                    /**
                     * Creates a plain object from an InterconnectGroupsCreateMembersRequest message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsCreateMembersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupsCreateMembersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsCreateMembersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsCreateMembersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupsGetOperationalStatusResponse. */
                interface IInterconnectGroupsGetOperationalStatusResponse {

                    /** InterconnectGroupsGetOperationalStatusResponse etag */
                    etag?: (string|null);

                    /** InterconnectGroupsGetOperationalStatusResponse result */
                    result?: (google.cloud.compute.v1.IInterconnectGroupsOperationalStatus|null);
                }

                /** Represents an InterconnectGroupsGetOperationalStatusResponse. */
                class InterconnectGroupsGetOperationalStatusResponse implements IInterconnectGroupsGetOperationalStatusResponse {

                    /**
                     * Constructs a new InterconnectGroupsGetOperationalStatusResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupsGetOperationalStatusResponse);

                    /** InterconnectGroupsGetOperationalStatusResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectGroupsGetOperationalStatusResponse result. */
                    public result?: (google.cloud.compute.v1.IInterconnectGroupsOperationalStatus|null);

                    /**
                     * Creates a new InterconnectGroupsGetOperationalStatusResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsGetOperationalStatusResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupsGetOperationalStatusResponse): google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse;

                    /**
                     * Encodes the specified InterconnectGroupsGetOperationalStatusResponse message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse.verify|verify} messages.
                     * @param message InterconnectGroupsGetOperationalStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupsGetOperationalStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsGetOperationalStatusResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse.verify|verify} messages.
                     * @param message InterconnectGroupsGetOperationalStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupsGetOperationalStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsGetOperationalStatusResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsGetOperationalStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse;

                    /**
                     * Decodes an InterconnectGroupsGetOperationalStatusResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsGetOperationalStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse;

                    /**
                     * Verifies an InterconnectGroupsGetOperationalStatusResponse message.
                     * @param message Plain 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 InterconnectGroupsGetOperationalStatusResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsGetOperationalStatusResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse;

                    /**
                     * Creates a plain object from an InterconnectGroupsGetOperationalStatusResponse message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsGetOperationalStatusResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsGetOperationalStatusResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsGetOperationalStatusResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupsListResponse. */
                interface IInterconnectGroupsListResponse {

                    /** InterconnectGroupsListResponse etag */
                    etag?: (string|null);

                    /** InterconnectGroupsListResponse id */
                    id?: (string|null);

                    /** InterconnectGroupsListResponse items */
                    items?: (google.cloud.compute.v1.IInterconnectGroup[]|null);

                    /** InterconnectGroupsListResponse kind */
                    kind?: (string|null);

                    /** InterconnectGroupsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectGroupsListResponse selfLink */
                    selfLink?: (string|null);

                    /** InterconnectGroupsListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** InterconnectGroupsListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InterconnectGroupsListResponse. */
                class InterconnectGroupsListResponse implements IInterconnectGroupsListResponse {

                    /**
                     * Constructs a new InterconnectGroupsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupsListResponse);

                    /** InterconnectGroupsListResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectGroupsListResponse id. */
                    public id?: (string|null);

                    /** InterconnectGroupsListResponse items. */
                    public items: google.cloud.compute.v1.IInterconnectGroup[];

                    /** InterconnectGroupsListResponse kind. */
                    public kind?: (string|null);

                    /** InterconnectGroupsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectGroupsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectGroupsListResponse unreachables. */
                    public unreachables: string[];

                    /** InterconnectGroupsListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InterconnectGroupsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupsListResponse): google.cloud.compute.v1.InterconnectGroupsListResponse;

                    /**
                     * Encodes the specified InterconnectGroupsListResponse message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsListResponse.verify|verify} messages.
                     * @param message InterconnectGroupsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsListResponse.verify|verify} messages.
                     * @param message InterconnectGroupsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupsListResponse;

                    /**
                     * Decodes an InterconnectGroupsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupsListResponse;

                    /**
                     * Verifies an InterconnectGroupsListResponse message.
                     * @param message Plain 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 InterconnectGroupsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupsListResponse;

                    /**
                     * Creates a plain object from an InterconnectGroupsListResponse message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupsOperationalStatus. */
                interface IInterconnectGroupsOperationalStatus {

                    /** InterconnectGroupsOperationalStatus configured */
                    configured?: (google.cloud.compute.v1.IInterconnectGroupConfigured|null);

                    /** InterconnectGroupsOperationalStatus groupStatus */
                    groupStatus?: (string|null);

                    /** InterconnectGroupsOperationalStatus intent */
                    intent?: (google.cloud.compute.v1.IInterconnectGroupIntent|null);

                    /** InterconnectGroupsOperationalStatus interconnectStatuses */
                    interconnectStatuses?: (google.cloud.compute.v1.IInterconnectGroupsOperationalStatusInterconnectStatus[]|null);

                    /** InterconnectGroupsOperationalStatus operational */
                    operational?: (google.cloud.compute.v1.IInterconnectGroupConfigured|null);
                }

                /** Represents an InterconnectGroupsOperationalStatus. */
                class InterconnectGroupsOperationalStatus implements IInterconnectGroupsOperationalStatus {

                    /**
                     * Constructs a new InterconnectGroupsOperationalStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupsOperationalStatus);

                    /** InterconnectGroupsOperationalStatus configured. */
                    public configured?: (google.cloud.compute.v1.IInterconnectGroupConfigured|null);

                    /** InterconnectGroupsOperationalStatus groupStatus. */
                    public groupStatus?: (string|null);

                    /** InterconnectGroupsOperationalStatus intent. */
                    public intent?: (google.cloud.compute.v1.IInterconnectGroupIntent|null);

                    /** InterconnectGroupsOperationalStatus interconnectStatuses. */
                    public interconnectStatuses: google.cloud.compute.v1.IInterconnectGroupsOperationalStatusInterconnectStatus[];

                    /** InterconnectGroupsOperationalStatus operational. */
                    public operational?: (google.cloud.compute.v1.IInterconnectGroupConfigured|null);

                    /**
                     * Creates a new InterconnectGroupsOperationalStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsOperationalStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupsOperationalStatus): google.cloud.compute.v1.InterconnectGroupsOperationalStatus;

                    /**
                     * Encodes the specified InterconnectGroupsOperationalStatus message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsOperationalStatus.verify|verify} messages.
                     * @param message InterconnectGroupsOperationalStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupsOperationalStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsOperationalStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsOperationalStatus.verify|verify} messages.
                     * @param message InterconnectGroupsOperationalStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupsOperationalStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsOperationalStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsOperationalStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupsOperationalStatus;

                    /**
                     * Decodes an InterconnectGroupsOperationalStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsOperationalStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupsOperationalStatus;

                    /**
                     * Verifies an InterconnectGroupsOperationalStatus message.
                     * @param message Plain 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 InterconnectGroupsOperationalStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsOperationalStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupsOperationalStatus;

                    /**
                     * Creates a plain object from an InterconnectGroupsOperationalStatus message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsOperationalStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupsOperationalStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsOperationalStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsOperationalStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupsOperationalStatus {

                    /** GroupStatus enum. */
                    enum GroupStatus {
                        UNDEFINED_GROUP_STATUS = 0,
                        DEGRADED = 396890926,
                        FULLY_DOWN = 255514647,
                        FULLY_UP = 504176464,
                        GROUPS_STATUS_UNSPECIFIED = 261932693
                    }
                }

                /** Properties of an InterconnectGroupsOperationalStatusInterconnectStatus. */
                interface IInterconnectGroupsOperationalStatusInterconnectStatus {

                    /** InterconnectGroupsOperationalStatusInterconnectStatus adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus diagnostics */
                    diagnostics?: (google.cloud.compute.v1.IInterconnectDiagnostics|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus interconnect */
                    interconnect?: (string|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus isActive */
                    isActive?: (string|null);
                }

                /** Represents an InterconnectGroupsOperationalStatusInterconnectStatus. */
                class InterconnectGroupsOperationalStatusInterconnectStatus implements IInterconnectGroupsOperationalStatusInterconnectStatus {

                    /**
                     * Constructs a new InterconnectGroupsOperationalStatusInterconnectStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectGroupsOperationalStatusInterconnectStatus);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus diagnostics. */
                    public diagnostics?: (google.cloud.compute.v1.IInterconnectDiagnostics|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus interconnect. */
                    public interconnect?: (string|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus isActive. */
                    public isActive?: (string|null);

                    /**
                     * Creates a new InterconnectGroupsOperationalStatusInterconnectStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsOperationalStatusInterconnectStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectGroupsOperationalStatusInterconnectStatus): google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus;

                    /**
                     * Encodes the specified InterconnectGroupsOperationalStatusInterconnectStatus message. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus.verify|verify} messages.
                     * @param message InterconnectGroupsOperationalStatusInterconnectStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectGroupsOperationalStatusInterconnectStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsOperationalStatusInterconnectStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus.verify|verify} messages.
                     * @param message InterconnectGroupsOperationalStatusInterconnectStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectGroupsOperationalStatusInterconnectStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsOperationalStatusInterconnectStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsOperationalStatusInterconnectStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus;

                    /**
                     * Decodes an InterconnectGroupsOperationalStatusInterconnectStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsOperationalStatusInterconnectStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus;

                    /**
                     * Verifies an InterconnectGroupsOperationalStatusInterconnectStatus message.
                     * @param message Plain 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 InterconnectGroupsOperationalStatusInterconnectStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsOperationalStatusInterconnectStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus;

                    /**
                     * Creates a plain object from an InterconnectGroupsOperationalStatusInterconnectStatus message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsOperationalStatusInterconnectStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsOperationalStatusInterconnectStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsOperationalStatusInterconnectStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupsOperationalStatusInterconnectStatus {

                    /** IsActive enum. */
                    enum IsActive {
                        UNDEFINED_IS_ACTIVE = 0,
                        ACTIVE = 314733318,
                        INACTIVE = 270421099,
                        IS_ACTIVE_UNSPECIFIED = 274948243
                    }
                }

                /** Properties of an InterconnectList. */
                interface IInterconnectList {

                    /** InterconnectList id */
                    id?: (string|null);

                    /** InterconnectList items */
                    items?: (google.cloud.compute.v1.IInterconnect[]|null);

                    /** InterconnectList kind */
                    kind?: (string|null);

                    /** InterconnectList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InterconnectList. */
                class InterconnectList implements IInterconnectList {

                    /**
                     * Constructs a new InterconnectList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectList);

                    /** InterconnectList id. */
                    public id?: (string|null);

                    /** InterconnectList items. */
                    public items: google.cloud.compute.v1.IInterconnect[];

                    /** InterconnectList kind. */
                    public kind?: (string|null);

                    /** InterconnectList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InterconnectList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectList): google.cloud.compute.v1.InterconnectList;

                    /**
                     * Encodes the specified InterconnectList message. Does not implicitly {@link google.cloud.compute.v1.InterconnectList.verify|verify} messages.
                     * @param message InterconnectList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectList.verify|verify} messages.
                     * @param message InterconnectList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectList;

                    /**
                     * Decodes an InterconnectList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectList;

                    /**
                     * Verifies an InterconnectList message.
                     * @param message Plain 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 InterconnectList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectList;

                    /**
                     * Creates a plain object from an InterconnectList message. Also converts values to other types if specified.
                     * @param message InterconnectList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectLocation. */
                interface IInterconnectLocation {

                    /** InterconnectLocation address */
                    address?: (string|null);

                    /** InterconnectLocation availabilityZone */
                    availabilityZone?: (string|null);

                    /** InterconnectLocation availableFeatures */
                    availableFeatures?: (string[]|null);

                    /** InterconnectLocation availableLinkTypes */
                    availableLinkTypes?: (string[]|null);

                    /** InterconnectLocation city */
                    city?: (string|null);

                    /** InterconnectLocation continent */
                    continent?: (string|null);

                    /** InterconnectLocation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectLocation crossSiteInterconnectInfos */
                    crossSiteInterconnectInfos?: (google.cloud.compute.v1.IInterconnectLocationCrossSiteInterconnectInfo[]|null);

                    /** InterconnectLocation description */
                    description?: (string|null);

                    /** InterconnectLocation facilityProvider */
                    facilityProvider?: (string|null);

                    /** InterconnectLocation facilityProviderFacilityId */
                    facilityProviderFacilityId?: (string|null);

                    /** InterconnectLocation id */
                    id?: (number|Long|string|null);

                    /** InterconnectLocation kind */
                    kind?: (string|null);

                    /** InterconnectLocation name */
                    name?: (string|null);

                    /** InterconnectLocation peeringdbFacilityId */
                    peeringdbFacilityId?: (string|null);

                    /** InterconnectLocation regionInfos */
                    regionInfos?: (google.cloud.compute.v1.IInterconnectLocationRegionInfo[]|null);

                    /** InterconnectLocation selfLink */
                    selfLink?: (string|null);

                    /** InterconnectLocation singleRegionProductionCriticalPeerLocations */
                    singleRegionProductionCriticalPeerLocations?: (string[]|null);

                    /** InterconnectLocation status */
                    status?: (string|null);

                    /** InterconnectLocation supportsPzs */
                    supportsPzs?: (boolean|null);
                }

                /** Represents an InterconnectLocation. */
                class InterconnectLocation implements IInterconnectLocation {

                    /**
                     * Constructs a new InterconnectLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectLocation);

                    /** InterconnectLocation address. */
                    public address?: (string|null);

                    /** InterconnectLocation availabilityZone. */
                    public availabilityZone?: (string|null);

                    /** InterconnectLocation availableFeatures. */
                    public availableFeatures: string[];

                    /** InterconnectLocation availableLinkTypes. */
                    public availableLinkTypes: string[];

                    /** InterconnectLocation city. */
                    public city?: (string|null);

                    /** InterconnectLocation continent. */
                    public continent?: (string|null);

                    /** InterconnectLocation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectLocation crossSiteInterconnectInfos. */
                    public crossSiteInterconnectInfos: google.cloud.compute.v1.IInterconnectLocationCrossSiteInterconnectInfo[];

                    /** InterconnectLocation description. */
                    public description?: (string|null);

                    /** InterconnectLocation facilityProvider. */
                    public facilityProvider?: (string|null);

                    /** InterconnectLocation facilityProviderFacilityId. */
                    public facilityProviderFacilityId?: (string|null);

                    /** InterconnectLocation id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectLocation kind. */
                    public kind?: (string|null);

                    /** InterconnectLocation name. */
                    public name?: (string|null);

                    /** InterconnectLocation peeringdbFacilityId. */
                    public peeringdbFacilityId?: (string|null);

                    /** InterconnectLocation regionInfos. */
                    public regionInfos: google.cloud.compute.v1.IInterconnectLocationRegionInfo[];

                    /** InterconnectLocation selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectLocation singleRegionProductionCriticalPeerLocations. */
                    public singleRegionProductionCriticalPeerLocations: string[];

                    /** InterconnectLocation status. */
                    public status?: (string|null);

                    /** InterconnectLocation supportsPzs. */
                    public supportsPzs?: (boolean|null);

                    /**
                     * Creates a new InterconnectLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectLocation): google.cloud.compute.v1.InterconnectLocation;

                    /**
                     * Encodes the specified InterconnectLocation message. Does not implicitly {@link google.cloud.compute.v1.InterconnectLocation.verify|verify} messages.
                     * @param message InterconnectLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectLocation.verify|verify} messages.
                     * @param message InterconnectLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectLocation;

                    /**
                     * Decodes an InterconnectLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectLocation;

                    /**
                     * Verifies an InterconnectLocation message.
                     * @param message Plain 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 InterconnectLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectLocation;

                    /**
                     * Creates a plain object from an InterconnectLocation message. Also converts values to other types if specified.
                     * @param message InterconnectLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectLocation {

                    /** AvailableFeatures enum. */
                    enum AvailableFeatures {
                        UNDEFINED_AVAILABLE_FEATURES = 0,
                        IF_CROSS_SITE_NETWORK = 469111095,
                        IF_L2_FORWARDING = 125563860,
                        IF_MACSEC = 396279300
                    }

                    /** AvailableLinkTypes enum. */
                    enum AvailableLinkTypes {
                        UNDEFINED_AVAILABLE_LINK_TYPES = 0,
                        LINK_TYPE_ETHERNET_100G_LR = 337672551,
                        LINK_TYPE_ETHERNET_10G_LR = 236739749,
                        LINK_TYPE_ETHERNET_400G_LR4 = 127023690
                    }

                    /** Continent enum. */
                    enum Continent {
                        UNDEFINED_CONTINENT = 0,
                        AFRICA = 317443706,
                        ASIA_PAC = 119782269,
                        C_AFRICA = 71993846,
                        C_ASIA_PAC = 465668089,
                        C_EUROPE = 200369438,
                        C_NORTH_AMERICA = 275697048,
                        C_SOUTH_AMERICA = 397149792,
                        EUROPE = 445819298,
                        NORTH_AMERICA = 448015508,
                        SOUTH_AMERICA = 32597340
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        AVAILABLE = 442079913,
                        CLOSED = 380163436
                    }
                }

                /** Properties of an InterconnectLocationCrossSiteInterconnectInfo. */
                interface IInterconnectLocationCrossSiteInterconnectInfo {

                    /** InterconnectLocationCrossSiteInterconnectInfo city */
                    city?: (string|null);
                }

                /** Represents an InterconnectLocationCrossSiteInterconnectInfo. */
                class InterconnectLocationCrossSiteInterconnectInfo implements IInterconnectLocationCrossSiteInterconnectInfo {

                    /**
                     * Constructs a new InterconnectLocationCrossSiteInterconnectInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectLocationCrossSiteInterconnectInfo);

                    /** InterconnectLocationCrossSiteInterconnectInfo city. */
                    public city?: (string|null);

                    /**
                     * Creates a new InterconnectLocationCrossSiteInterconnectInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectLocationCrossSiteInterconnectInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectLocationCrossSiteInterconnectInfo): google.cloud.compute.v1.InterconnectLocationCrossSiteInterconnectInfo;

                    /**
                     * Encodes the specified InterconnectLocationCrossSiteInterconnectInfo message. Does not implicitly {@link google.cloud.compute.v1.InterconnectLocationCrossSiteInterconnectInfo.verify|verify} messages.
                     * @param message InterconnectLocationCrossSiteInterconnectInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectLocationCrossSiteInterconnectInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectLocationCrossSiteInterconnectInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectLocationCrossSiteInterconnectInfo.verify|verify} messages.
                     * @param message InterconnectLocationCrossSiteInterconnectInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectLocationCrossSiteInterconnectInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectLocationCrossSiteInterconnectInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectLocationCrossSiteInterconnectInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectLocationCrossSiteInterconnectInfo;

                    /**
                     * Decodes an InterconnectLocationCrossSiteInterconnectInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectLocationCrossSiteInterconnectInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectLocationCrossSiteInterconnectInfo;

                    /**
                     * Verifies an InterconnectLocationCrossSiteInterconnectInfo message.
                     * @param message Plain 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 InterconnectLocationCrossSiteInterconnectInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectLocationCrossSiteInterconnectInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectLocationCrossSiteInterconnectInfo;

                    /**
                     * Creates a plain object from an InterconnectLocationCrossSiteInterconnectInfo message. Also converts values to other types if specified.
                     * @param message InterconnectLocationCrossSiteInterconnectInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectLocationCrossSiteInterconnectInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectLocationCrossSiteInterconnectInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectLocationCrossSiteInterconnectInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectLocationList. */
                interface IInterconnectLocationList {

                    /** InterconnectLocationList id */
                    id?: (string|null);

                    /** InterconnectLocationList items */
                    items?: (google.cloud.compute.v1.IInterconnectLocation[]|null);

                    /** InterconnectLocationList kind */
                    kind?: (string|null);

                    /** InterconnectLocationList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectLocationList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectLocationList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InterconnectLocationList. */
                class InterconnectLocationList implements IInterconnectLocationList {

                    /**
                     * Constructs a new InterconnectLocationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectLocationList);

                    /** InterconnectLocationList id. */
                    public id?: (string|null);

                    /** InterconnectLocationList items. */
                    public items: google.cloud.compute.v1.IInterconnectLocation[];

                    /** InterconnectLocationList kind. */
                    public kind?: (string|null);

                    /** InterconnectLocationList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectLocationList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectLocationList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InterconnectLocationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectLocationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectLocationList): google.cloud.compute.v1.InterconnectLocationList;

                    /**
                     * Encodes the specified InterconnectLocationList message. Does not implicitly {@link google.cloud.compute.v1.InterconnectLocationList.verify|verify} messages.
                     * @param message InterconnectLocationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectLocationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectLocationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectLocationList.verify|verify} messages.
                     * @param message InterconnectLocationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectLocationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectLocationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectLocationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectLocationList;

                    /**
                     * Decodes an InterconnectLocationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectLocationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectLocationList;

                    /**
                     * Verifies an InterconnectLocationList message.
                     * @param message Plain 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 InterconnectLocationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectLocationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectLocationList;

                    /**
                     * Creates a plain object from an InterconnectLocationList message. Also converts values to other types if specified.
                     * @param message InterconnectLocationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectLocationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectLocationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectLocationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectLocationRegionInfo. */
                interface IInterconnectLocationRegionInfo {

                    /** InterconnectLocationRegionInfo expectedRttMs */
                    expectedRttMs?: (number|Long|string|null);

                    /** InterconnectLocationRegionInfo l2ForwardingEnabled */
                    l2ForwardingEnabled?: (boolean|null);

                    /** InterconnectLocationRegionInfo locationPresence */
                    locationPresence?: (string|null);

                    /** InterconnectLocationRegionInfo region */
                    region?: (string|null);
                }

                /** Represents an InterconnectLocationRegionInfo. */
                class InterconnectLocationRegionInfo implements IInterconnectLocationRegionInfo {

                    /**
                     * Constructs a new InterconnectLocationRegionInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectLocationRegionInfo);

                    /** InterconnectLocationRegionInfo expectedRttMs. */
                    public expectedRttMs?: (number|Long|string|null);

                    /** InterconnectLocationRegionInfo l2ForwardingEnabled. */
                    public l2ForwardingEnabled?: (boolean|null);

                    /** InterconnectLocationRegionInfo locationPresence. */
                    public locationPresence?: (string|null);

                    /** InterconnectLocationRegionInfo region. */
                    public region?: (string|null);

                    /**
                     * Creates a new InterconnectLocationRegionInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectLocationRegionInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectLocationRegionInfo): google.cloud.compute.v1.InterconnectLocationRegionInfo;

                    /**
                     * Encodes the specified InterconnectLocationRegionInfo message. Does not implicitly {@link google.cloud.compute.v1.InterconnectLocationRegionInfo.verify|verify} messages.
                     * @param message InterconnectLocationRegionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectLocationRegionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectLocationRegionInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectLocationRegionInfo.verify|verify} messages.
                     * @param message InterconnectLocationRegionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectLocationRegionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectLocationRegionInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectLocationRegionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectLocationRegionInfo;

                    /**
                     * Decodes an InterconnectLocationRegionInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectLocationRegionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectLocationRegionInfo;

                    /**
                     * Verifies an InterconnectLocationRegionInfo message.
                     * @param message Plain 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 InterconnectLocationRegionInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectLocationRegionInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectLocationRegionInfo;

                    /**
                     * Creates a plain object from an InterconnectLocationRegionInfo message. Also converts values to other types if specified.
                     * @param message InterconnectLocationRegionInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectLocationRegionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectLocationRegionInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectLocationRegionInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectLocationRegionInfo {

                    /** LocationPresence enum. */
                    enum LocationPresence {
                        UNDEFINED_LOCATION_PRESENCE = 0,
                        GLOBAL = 494663587,
                        LOCAL_REGION = 403535464,
                        LP_GLOBAL = 429584062,
                        LP_LOCAL_REGION = 488598851
                    }
                }

                /** Properties of an InterconnectMacsec. */
                interface IInterconnectMacsec {

                    /** InterconnectMacsec failOpen */
                    failOpen?: (boolean|null);

                    /** InterconnectMacsec preSharedKeys */
                    preSharedKeys?: (google.cloud.compute.v1.IInterconnectMacsecPreSharedKey[]|null);
                }

                /** Represents an InterconnectMacsec. */
                class InterconnectMacsec implements IInterconnectMacsec {

                    /**
                     * Constructs a new InterconnectMacsec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectMacsec);

                    /** InterconnectMacsec failOpen. */
                    public failOpen?: (boolean|null);

                    /** InterconnectMacsec preSharedKeys. */
                    public preSharedKeys: google.cloud.compute.v1.IInterconnectMacsecPreSharedKey[];

                    /**
                     * Creates a new InterconnectMacsec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectMacsec instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectMacsec): google.cloud.compute.v1.InterconnectMacsec;

                    /**
                     * Encodes the specified InterconnectMacsec message. Does not implicitly {@link google.cloud.compute.v1.InterconnectMacsec.verify|verify} messages.
                     * @param message InterconnectMacsec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectMacsec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectMacsec message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectMacsec.verify|verify} messages.
                     * @param message InterconnectMacsec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectMacsec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectMacsec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectMacsec
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectMacsec;

                    /**
                     * Decodes an InterconnectMacsec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectMacsec
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectMacsec;

                    /**
                     * Verifies an InterconnectMacsec message.
                     * @param message Plain 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 InterconnectMacsec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectMacsec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectMacsec;

                    /**
                     * Creates a plain object from an InterconnectMacsec message. Also converts values to other types if specified.
                     * @param message InterconnectMacsec
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectMacsec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectMacsec to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectMacsec
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectMacsecConfig. */
                interface IInterconnectMacsecConfig {

                    /** InterconnectMacsecConfig preSharedKeys */
                    preSharedKeys?: (google.cloud.compute.v1.IInterconnectMacsecConfigPreSharedKey[]|null);
                }

                /** Represents an InterconnectMacsecConfig. */
                class InterconnectMacsecConfig implements IInterconnectMacsecConfig {

                    /**
                     * Constructs a new InterconnectMacsecConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectMacsecConfig);

                    /** InterconnectMacsecConfig preSharedKeys. */
                    public preSharedKeys: google.cloud.compute.v1.IInterconnectMacsecConfigPreSharedKey[];

                    /**
                     * Creates a new InterconnectMacsecConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectMacsecConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectMacsecConfig): google.cloud.compute.v1.InterconnectMacsecConfig;

                    /**
                     * Encodes the specified InterconnectMacsecConfig message. Does not implicitly {@link google.cloud.compute.v1.InterconnectMacsecConfig.verify|verify} messages.
                     * @param message InterconnectMacsecConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectMacsecConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectMacsecConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectMacsecConfig.verify|verify} messages.
                     * @param message InterconnectMacsecConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectMacsecConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectMacsecConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectMacsecConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectMacsecConfig;

                    /**
                     * Decodes an InterconnectMacsecConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectMacsecConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectMacsecConfig;

                    /**
                     * Verifies an InterconnectMacsecConfig message.
                     * @param message Plain 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 InterconnectMacsecConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectMacsecConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectMacsecConfig;

                    /**
                     * Creates a plain object from an InterconnectMacsecConfig message. Also converts values to other types if specified.
                     * @param message InterconnectMacsecConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectMacsecConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectMacsecConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectMacsecConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectMacsecConfigPreSharedKey. */
                interface IInterconnectMacsecConfigPreSharedKey {

                    /** InterconnectMacsecConfigPreSharedKey cak */
                    cak?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey ckn */
                    ckn?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey name */
                    name?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey startTime */
                    startTime?: (string|null);
                }

                /** Represents an InterconnectMacsecConfigPreSharedKey. */
                class InterconnectMacsecConfigPreSharedKey implements IInterconnectMacsecConfigPreSharedKey {

                    /**
                     * Constructs a new InterconnectMacsecConfigPreSharedKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectMacsecConfigPreSharedKey);

                    /** InterconnectMacsecConfigPreSharedKey cak. */
                    public cak?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey ckn. */
                    public ckn?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey name. */
                    public name?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new InterconnectMacsecConfigPreSharedKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectMacsecConfigPreSharedKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectMacsecConfigPreSharedKey): google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey;

                    /**
                     * Encodes the specified InterconnectMacsecConfigPreSharedKey message. Does not implicitly {@link google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey.verify|verify} messages.
                     * @param message InterconnectMacsecConfigPreSharedKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectMacsecConfigPreSharedKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectMacsecConfigPreSharedKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey.verify|verify} messages.
                     * @param message InterconnectMacsecConfigPreSharedKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectMacsecConfigPreSharedKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectMacsecConfigPreSharedKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectMacsecConfigPreSharedKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey;

                    /**
                     * Decodes an InterconnectMacsecConfigPreSharedKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectMacsecConfigPreSharedKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey;

                    /**
                     * Verifies an InterconnectMacsecConfigPreSharedKey message.
                     * @param message Plain 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 InterconnectMacsecConfigPreSharedKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectMacsecConfigPreSharedKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey;

                    /**
                     * Creates a plain object from an InterconnectMacsecConfigPreSharedKey message. Also converts values to other types if specified.
                     * @param message InterconnectMacsecConfigPreSharedKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectMacsecConfigPreSharedKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectMacsecConfigPreSharedKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectMacsecPreSharedKey. */
                interface IInterconnectMacsecPreSharedKey {

                    /** InterconnectMacsecPreSharedKey name */
                    name?: (string|null);

                    /** InterconnectMacsecPreSharedKey startTime */
                    startTime?: (string|null);
                }

                /** Represents an InterconnectMacsecPreSharedKey. */
                class InterconnectMacsecPreSharedKey implements IInterconnectMacsecPreSharedKey {

                    /**
                     * Constructs a new InterconnectMacsecPreSharedKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectMacsecPreSharedKey);

                    /** InterconnectMacsecPreSharedKey name. */
                    public name?: (string|null);

                    /** InterconnectMacsecPreSharedKey startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new InterconnectMacsecPreSharedKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectMacsecPreSharedKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectMacsecPreSharedKey): google.cloud.compute.v1.InterconnectMacsecPreSharedKey;

                    /**
                     * Encodes the specified InterconnectMacsecPreSharedKey message. Does not implicitly {@link google.cloud.compute.v1.InterconnectMacsecPreSharedKey.verify|verify} messages.
                     * @param message InterconnectMacsecPreSharedKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectMacsecPreSharedKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectMacsecPreSharedKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectMacsecPreSharedKey.verify|verify} messages.
                     * @param message InterconnectMacsecPreSharedKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectMacsecPreSharedKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectMacsecPreSharedKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectMacsecPreSharedKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectMacsecPreSharedKey;

                    /**
                     * Decodes an InterconnectMacsecPreSharedKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectMacsecPreSharedKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectMacsecPreSharedKey;

                    /**
                     * Verifies an InterconnectMacsecPreSharedKey message.
                     * @param message Plain 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 InterconnectMacsecPreSharedKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectMacsecPreSharedKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectMacsecPreSharedKey;

                    /**
                     * Creates a plain object from an InterconnectMacsecPreSharedKey message. Also converts values to other types if specified.
                     * @param message InterconnectMacsecPreSharedKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectMacsecPreSharedKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectMacsecPreSharedKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectMacsecPreSharedKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectOutageNotification. */
                interface IInterconnectOutageNotification {

                    /** InterconnectOutageNotification affectedCircuits */
                    affectedCircuits?: (string[]|null);

                    /** InterconnectOutageNotification description */
                    description?: (string|null);

                    /** InterconnectOutageNotification endTime */
                    endTime?: (number|Long|string|null);

                    /** InterconnectOutageNotification issueType */
                    issueType?: (string|null);

                    /** InterconnectOutageNotification name */
                    name?: (string|null);

                    /** InterconnectOutageNotification source */
                    source?: (string|null);

                    /** InterconnectOutageNotification startTime */
                    startTime?: (number|Long|string|null);

                    /** InterconnectOutageNotification state */
                    state?: (string|null);
                }

                /** Represents an InterconnectOutageNotification. */
                class InterconnectOutageNotification implements IInterconnectOutageNotification {

                    /**
                     * Constructs a new InterconnectOutageNotification.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectOutageNotification);

                    /** InterconnectOutageNotification affectedCircuits. */
                    public affectedCircuits: string[];

                    /** InterconnectOutageNotification description. */
                    public description?: (string|null);

                    /** InterconnectOutageNotification endTime. */
                    public endTime?: (number|Long|string|null);

                    /** InterconnectOutageNotification issueType. */
                    public issueType?: (string|null);

                    /** InterconnectOutageNotification name. */
                    public name?: (string|null);

                    /** InterconnectOutageNotification source. */
                    public source?: (string|null);

                    /** InterconnectOutageNotification startTime. */
                    public startTime?: (number|Long|string|null);

                    /** InterconnectOutageNotification state. */
                    public state?: (string|null);

                    /**
                     * Creates a new InterconnectOutageNotification instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectOutageNotification instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectOutageNotification): google.cloud.compute.v1.InterconnectOutageNotification;

                    /**
                     * Encodes the specified InterconnectOutageNotification message. Does not implicitly {@link google.cloud.compute.v1.InterconnectOutageNotification.verify|verify} messages.
                     * @param message InterconnectOutageNotification message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectOutageNotification, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectOutageNotification message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectOutageNotification.verify|verify} messages.
                     * @param message InterconnectOutageNotification message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectOutageNotification, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectOutageNotification message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectOutageNotification
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectOutageNotification;

                    /**
                     * Decodes an InterconnectOutageNotification message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectOutageNotification
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectOutageNotification;

                    /**
                     * Verifies an InterconnectOutageNotification message.
                     * @param message Plain 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 InterconnectOutageNotification message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectOutageNotification
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectOutageNotification;

                    /**
                     * Creates a plain object from an InterconnectOutageNotification message. Also converts values to other types if specified.
                     * @param message InterconnectOutageNotification
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectOutageNotification, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectOutageNotification to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectOutageNotification
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectOutageNotification {

                    /** IssueType enum. */
                    enum IssueType {
                        UNDEFINED_ISSUE_TYPE = 0,
                        IT_OUTAGE = 175779973,
                        IT_PARTIAL_OUTAGE = 92103971,
                        OUTAGE = 195285745,
                        PARTIAL_OUTAGE = 147053455
                    }

                    /** Source enum. */
                    enum Source {
                        UNDEFINED_SOURCE = 0,
                        GOOGLE = 497439289,
                        NSRC_GOOGLE = 510574562
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        CANCELLED = 41957681,
                        COMPLETED = 309921323,
                        NS_ACTIVE = 252563136,
                        NS_CANCELED = 506579411
                    }
                }

                /** Properties of an InterconnectParams. */
                interface IInterconnectParams {

                    /** InterconnectParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InterconnectParams. */
                class InterconnectParams implements IInterconnectParams {

                    /**
                     * Constructs a new InterconnectParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectParams);

                    /** InterconnectParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InterconnectParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectParams): google.cloud.compute.v1.InterconnectParams;

                    /**
                     * Encodes the specified InterconnectParams message. Does not implicitly {@link google.cloud.compute.v1.InterconnectParams.verify|verify} messages.
                     * @param message InterconnectParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectParams.verify|verify} messages.
                     * @param message InterconnectParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectParams;

                    /**
                     * Decodes an InterconnectParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectParams;

                    /**
                     * Verifies an InterconnectParams message.
                     * @param message Plain 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 InterconnectParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectParams;

                    /**
                     * Creates a plain object from an InterconnectParams message. Also converts values to other types if specified.
                     * @param message InterconnectParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectRemoteLocation. */
                interface IInterconnectRemoteLocation {

                    /** InterconnectRemoteLocation address */
                    address?: (string|null);

                    /** InterconnectRemoteLocation attachmentConfigurationConstraints */
                    attachmentConfigurationConstraints?: (google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraints|null);

                    /** InterconnectRemoteLocation city */
                    city?: (string|null);

                    /** InterconnectRemoteLocation constraints */
                    constraints?: (google.cloud.compute.v1.IInterconnectRemoteLocationConstraints|null);

                    /** InterconnectRemoteLocation continent */
                    continent?: (string|null);

                    /** InterconnectRemoteLocation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectRemoteLocation description */
                    description?: (string|null);

                    /** InterconnectRemoteLocation facilityProvider */
                    facilityProvider?: (string|null);

                    /** InterconnectRemoteLocation facilityProviderFacilityId */
                    facilityProviderFacilityId?: (string|null);

                    /** InterconnectRemoteLocation id */
                    id?: (number|Long|string|null);

                    /** InterconnectRemoteLocation kind */
                    kind?: (string|null);

                    /** InterconnectRemoteLocation lacp */
                    lacp?: (string|null);

                    /** InterconnectRemoteLocation maxLagSize100Gbps */
                    maxLagSize100Gbps?: (number|null);

                    /** InterconnectRemoteLocation maxLagSize10Gbps */
                    maxLagSize10Gbps?: (number|null);

                    /** InterconnectRemoteLocation maxLagSize400Gbps */
                    maxLagSize400Gbps?: (number|null);

                    /** InterconnectRemoteLocation name */
                    name?: (string|null);

                    /** InterconnectRemoteLocation peeringdbFacilityId */
                    peeringdbFacilityId?: (string|null);

                    /** InterconnectRemoteLocation permittedConnections */
                    permittedConnections?: (google.cloud.compute.v1.IInterconnectRemoteLocationPermittedConnections[]|null);

                    /** InterconnectRemoteLocation remoteService */
                    remoteService?: (string|null);

                    /** InterconnectRemoteLocation selfLink */
                    selfLink?: (string|null);

                    /** InterconnectRemoteLocation status */
                    status?: (string|null);
                }

                /** Represents an InterconnectRemoteLocation. */
                class InterconnectRemoteLocation implements IInterconnectRemoteLocation {

                    /**
                     * Constructs a new InterconnectRemoteLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectRemoteLocation);

                    /** InterconnectRemoteLocation address. */
                    public address?: (string|null);

                    /** InterconnectRemoteLocation attachmentConfigurationConstraints. */
                    public attachmentConfigurationConstraints?: (google.cloud.compute.v1.IInterconnectAttachmentConfigurationConstraints|null);

                    /** InterconnectRemoteLocation city. */
                    public city?: (string|null);

                    /** InterconnectRemoteLocation constraints. */
                    public constraints?: (google.cloud.compute.v1.IInterconnectRemoteLocationConstraints|null);

                    /** InterconnectRemoteLocation continent. */
                    public continent?: (string|null);

                    /** InterconnectRemoteLocation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectRemoteLocation description. */
                    public description?: (string|null);

                    /** InterconnectRemoteLocation facilityProvider. */
                    public facilityProvider?: (string|null);

                    /** InterconnectRemoteLocation facilityProviderFacilityId. */
                    public facilityProviderFacilityId?: (string|null);

                    /** InterconnectRemoteLocation id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectRemoteLocation kind. */
                    public kind?: (string|null);

                    /** InterconnectRemoteLocation lacp. */
                    public lacp?: (string|null);

                    /** InterconnectRemoteLocation maxLagSize100Gbps. */
                    public maxLagSize100Gbps?: (number|null);

                    /** InterconnectRemoteLocation maxLagSize10Gbps. */
                    public maxLagSize10Gbps?: (number|null);

                    /** InterconnectRemoteLocation maxLagSize400Gbps. */
                    public maxLagSize400Gbps?: (number|null);

                    /** InterconnectRemoteLocation name. */
                    public name?: (string|null);

                    /** InterconnectRemoteLocation peeringdbFacilityId. */
                    public peeringdbFacilityId?: (string|null);

                    /** InterconnectRemoteLocation permittedConnections. */
                    public permittedConnections: google.cloud.compute.v1.IInterconnectRemoteLocationPermittedConnections[];

                    /** InterconnectRemoteLocation remoteService. */
                    public remoteService?: (string|null);

                    /** InterconnectRemoteLocation selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectRemoteLocation status. */
                    public status?: (string|null);

                    /**
                     * Creates a new InterconnectRemoteLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectRemoteLocation): google.cloud.compute.v1.InterconnectRemoteLocation;

                    /**
                     * Encodes the specified InterconnectRemoteLocation message. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocation.verify|verify} messages.
                     * @param message InterconnectRemoteLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectRemoteLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocation.verify|verify} messages.
                     * @param message InterconnectRemoteLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectRemoteLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectRemoteLocation;

                    /**
                     * Decodes an InterconnectRemoteLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectRemoteLocation;

                    /**
                     * Verifies an InterconnectRemoteLocation message.
                     * @param message Plain 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 InterconnectRemoteLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectRemoteLocation;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocation message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectRemoteLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectRemoteLocation {

                    /** Continent enum. */
                    enum Continent {
                        UNDEFINED_CONTINENT = 0,
                        AFRICA = 317443706,
                        ASIA_PAC = 119782269,
                        EUROPE = 445819298,
                        NORTH_AMERICA = 448015508,
                        SOUTH_AMERICA = 32597340
                    }

                    /** Lacp enum. */
                    enum Lacp {
                        UNDEFINED_LACP = 0,
                        LACP_SUPPORTED = 339576113,
                        LACP_UNSUPPORTED = 203930104
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        AVAILABLE = 442079913,
                        CLOSED = 380163436
                    }
                }

                /** Properties of an InterconnectRemoteLocationConstraints. */
                interface IInterconnectRemoteLocationConstraints {

                    /** InterconnectRemoteLocationConstraints portPairRemoteLocation */
                    portPairRemoteLocation?: (string|null);

                    /** InterconnectRemoteLocationConstraints portPairVlan */
                    portPairVlan?: (string|null);

                    /** InterconnectRemoteLocationConstraints subnetLengthRange */
                    subnetLengthRange?: (google.cloud.compute.v1.IInterconnectRemoteLocationConstraintsSubnetLengthRange|null);
                }

                /** Represents an InterconnectRemoteLocationConstraints. */
                class InterconnectRemoteLocationConstraints implements IInterconnectRemoteLocationConstraints {

                    /**
                     * Constructs a new InterconnectRemoteLocationConstraints.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectRemoteLocationConstraints);

                    /** InterconnectRemoteLocationConstraints portPairRemoteLocation. */
                    public portPairRemoteLocation?: (string|null);

                    /** InterconnectRemoteLocationConstraints portPairVlan. */
                    public portPairVlan?: (string|null);

                    /** InterconnectRemoteLocationConstraints subnetLengthRange. */
                    public subnetLengthRange?: (google.cloud.compute.v1.IInterconnectRemoteLocationConstraintsSubnetLengthRange|null);

                    /**
                     * Creates a new InterconnectRemoteLocationConstraints instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocationConstraints instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectRemoteLocationConstraints): google.cloud.compute.v1.InterconnectRemoteLocationConstraints;

                    /**
                     * Encodes the specified InterconnectRemoteLocationConstraints message. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocationConstraints.verify|verify} messages.
                     * @param message InterconnectRemoteLocationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectRemoteLocationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocationConstraints message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocationConstraints.verify|verify} messages.
                     * @param message InterconnectRemoteLocationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectRemoteLocationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocationConstraints message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectRemoteLocationConstraints;

                    /**
                     * Decodes an InterconnectRemoteLocationConstraints message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectRemoteLocationConstraints;

                    /**
                     * Verifies an InterconnectRemoteLocationConstraints message.
                     * @param message Plain 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 InterconnectRemoteLocationConstraints message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocationConstraints
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectRemoteLocationConstraints;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocationConstraints message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocationConstraints
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectRemoteLocationConstraints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocationConstraints to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocationConstraints
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectRemoteLocationConstraints {

                    /** PortPairRemoteLocation enum. */
                    enum PortPairRemoteLocation {
                        UNDEFINED_PORT_PAIR_REMOTE_LOCATION = 0,
                        PORT_PAIR_MATCHING_REMOTE_LOCATION = 207291859,
                        PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION = 60609829
                    }

                    /** PortPairVlan enum. */
                    enum PortPairVlan {
                        UNDEFINED_PORT_PAIR_VLAN = 0,
                        PORT_PAIR_MATCHING_VLAN = 250295358,
                        PORT_PAIR_UNCONSTRAINED_VLAN = 175227948
                    }
                }

                /** Properties of an InterconnectRemoteLocationConstraintsSubnetLengthRange. */
                interface IInterconnectRemoteLocationConstraintsSubnetLengthRange {

                    /** InterconnectRemoteLocationConstraintsSubnetLengthRange max */
                    max?: (number|null);

                    /** InterconnectRemoteLocationConstraintsSubnetLengthRange min */
                    min?: (number|null);
                }

                /** Represents an InterconnectRemoteLocationConstraintsSubnetLengthRange. */
                class InterconnectRemoteLocationConstraintsSubnetLengthRange implements IInterconnectRemoteLocationConstraintsSubnetLengthRange {

                    /**
                     * Constructs a new InterconnectRemoteLocationConstraintsSubnetLengthRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectRemoteLocationConstraintsSubnetLengthRange);

                    /** InterconnectRemoteLocationConstraintsSubnetLengthRange max. */
                    public max?: (number|null);

                    /** InterconnectRemoteLocationConstraintsSubnetLengthRange min. */
                    public min?: (number|null);

                    /**
                     * Creates a new InterconnectRemoteLocationConstraintsSubnetLengthRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocationConstraintsSubnetLengthRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectRemoteLocationConstraintsSubnetLengthRange): google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRange;

                    /**
                     * Encodes the specified InterconnectRemoteLocationConstraintsSubnetLengthRange message. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRange.verify|verify} messages.
                     * @param message InterconnectRemoteLocationConstraintsSubnetLengthRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectRemoteLocationConstraintsSubnetLengthRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocationConstraintsSubnetLengthRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRange.verify|verify} messages.
                     * @param message InterconnectRemoteLocationConstraintsSubnetLengthRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectRemoteLocationConstraintsSubnetLengthRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocationConstraintsSubnetLengthRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocationConstraintsSubnetLengthRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRange;

                    /**
                     * Decodes an InterconnectRemoteLocationConstraintsSubnetLengthRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocationConstraintsSubnetLengthRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRange;

                    /**
                     * Verifies an InterconnectRemoteLocationConstraintsSubnetLengthRange message.
                     * @param message Plain 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 InterconnectRemoteLocationConstraintsSubnetLengthRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocationConstraintsSubnetLengthRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRange;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocationConstraintsSubnetLengthRange message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocationConstraintsSubnetLengthRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocationConstraintsSubnetLengthRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocationConstraintsSubnetLengthRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectRemoteLocationList. */
                interface IInterconnectRemoteLocationList {

                    /** InterconnectRemoteLocationList id */
                    id?: (string|null);

                    /** InterconnectRemoteLocationList items */
                    items?: (google.cloud.compute.v1.IInterconnectRemoteLocation[]|null);

                    /** InterconnectRemoteLocationList kind */
                    kind?: (string|null);

                    /** InterconnectRemoteLocationList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectRemoteLocationList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectRemoteLocationList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an InterconnectRemoteLocationList. */
                class InterconnectRemoteLocationList implements IInterconnectRemoteLocationList {

                    /**
                     * Constructs a new InterconnectRemoteLocationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectRemoteLocationList);

                    /** InterconnectRemoteLocationList id. */
                    public id?: (string|null);

                    /** InterconnectRemoteLocationList items. */
                    public items: google.cloud.compute.v1.IInterconnectRemoteLocation[];

                    /** InterconnectRemoteLocationList kind. */
                    public kind?: (string|null);

                    /** InterconnectRemoteLocationList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectRemoteLocationList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectRemoteLocationList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new InterconnectRemoteLocationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectRemoteLocationList): google.cloud.compute.v1.InterconnectRemoteLocationList;

                    /**
                     * Encodes the specified InterconnectRemoteLocationList message. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocationList.verify|verify} messages.
                     * @param message InterconnectRemoteLocationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectRemoteLocationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocationList.verify|verify} messages.
                     * @param message InterconnectRemoteLocationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectRemoteLocationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectRemoteLocationList;

                    /**
                     * Decodes an InterconnectRemoteLocationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectRemoteLocationList;

                    /**
                     * Verifies an InterconnectRemoteLocationList message.
                     * @param message Plain 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 InterconnectRemoteLocationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectRemoteLocationList;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocationList message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectRemoteLocationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectRemoteLocationPermittedConnections. */
                interface IInterconnectRemoteLocationPermittedConnections {

                    /** InterconnectRemoteLocationPermittedConnections interconnectLocation */
                    interconnectLocation?: (string|null);
                }

                /** Represents an InterconnectRemoteLocationPermittedConnections. */
                class InterconnectRemoteLocationPermittedConnections implements IInterconnectRemoteLocationPermittedConnections {

                    /**
                     * Constructs a new InterconnectRemoteLocationPermittedConnections.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectRemoteLocationPermittedConnections);

                    /** InterconnectRemoteLocationPermittedConnections interconnectLocation. */
                    public interconnectLocation?: (string|null);

                    /**
                     * Creates a new InterconnectRemoteLocationPermittedConnections instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocationPermittedConnections instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectRemoteLocationPermittedConnections): google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections;

                    /**
                     * Encodes the specified InterconnectRemoteLocationPermittedConnections message. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections.verify|verify} messages.
                     * @param message InterconnectRemoteLocationPermittedConnections message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectRemoteLocationPermittedConnections, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocationPermittedConnections message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections.verify|verify} messages.
                     * @param message InterconnectRemoteLocationPermittedConnections message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectRemoteLocationPermittedConnections, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocationPermittedConnections message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocationPermittedConnections
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections;

                    /**
                     * Decodes an InterconnectRemoteLocationPermittedConnections message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocationPermittedConnections
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections;

                    /**
                     * Verifies an InterconnectRemoteLocationPermittedConnections message.
                     * @param message Plain 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 InterconnectRemoteLocationPermittedConnections message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocationPermittedConnections
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocationPermittedConnections message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocationPermittedConnections
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocationPermittedConnections to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocationPermittedConnections
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectsGetDiagnosticsResponse. */
                interface IInterconnectsGetDiagnosticsResponse {

                    /** InterconnectsGetDiagnosticsResponse result */
                    result?: (google.cloud.compute.v1.IInterconnectDiagnostics|null);
                }

                /** Represents an InterconnectsGetDiagnosticsResponse. */
                class InterconnectsGetDiagnosticsResponse implements IInterconnectsGetDiagnosticsResponse {

                    /**
                     * Constructs a new InterconnectsGetDiagnosticsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectsGetDiagnosticsResponse);

                    /** InterconnectsGetDiagnosticsResponse result. */
                    public result?: (google.cloud.compute.v1.IInterconnectDiagnostics|null);

                    /**
                     * Creates a new InterconnectsGetDiagnosticsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectsGetDiagnosticsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectsGetDiagnosticsResponse): google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse;

                    /**
                     * Encodes the specified InterconnectsGetDiagnosticsResponse message. Does not implicitly {@link google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse.verify|verify} messages.
                     * @param message InterconnectsGetDiagnosticsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectsGetDiagnosticsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectsGetDiagnosticsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse.verify|verify} messages.
                     * @param message InterconnectsGetDiagnosticsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectsGetDiagnosticsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectsGetDiagnosticsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectsGetDiagnosticsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse;

                    /**
                     * Decodes an InterconnectsGetDiagnosticsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectsGetDiagnosticsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse;

                    /**
                     * Verifies an InterconnectsGetDiagnosticsResponse message.
                     * @param message Plain 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 InterconnectsGetDiagnosticsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectsGetDiagnosticsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse;

                    /**
                     * Creates a plain object from an InterconnectsGetDiagnosticsResponse message. Also converts values to other types if specified.
                     * @param message InterconnectsGetDiagnosticsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectsGetDiagnosticsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectsGetDiagnosticsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectsGetMacsecConfigResponse. */
                interface IInterconnectsGetMacsecConfigResponse {

                    /** InterconnectsGetMacsecConfigResponse etag */
                    etag?: (string|null);

                    /** InterconnectsGetMacsecConfigResponse result */
                    result?: (google.cloud.compute.v1.IInterconnectMacsecConfig|null);
                }

                /** Represents an InterconnectsGetMacsecConfigResponse. */
                class InterconnectsGetMacsecConfigResponse implements IInterconnectsGetMacsecConfigResponse {

                    /**
                     * Constructs a new InterconnectsGetMacsecConfigResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInterconnectsGetMacsecConfigResponse);

                    /** InterconnectsGetMacsecConfigResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectsGetMacsecConfigResponse result. */
                    public result?: (google.cloud.compute.v1.IInterconnectMacsecConfig|null);

                    /**
                     * Creates a new InterconnectsGetMacsecConfigResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectsGetMacsecConfigResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInterconnectsGetMacsecConfigResponse): google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse;

                    /**
                     * Encodes the specified InterconnectsGetMacsecConfigResponse message. Does not implicitly {@link google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse.verify|verify} messages.
                     * @param message InterconnectsGetMacsecConfigResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInterconnectsGetMacsecConfigResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectsGetMacsecConfigResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse.verify|verify} messages.
                     * @param message InterconnectsGetMacsecConfigResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInterconnectsGetMacsecConfigResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectsGetMacsecConfigResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectsGetMacsecConfigResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse;

                    /**
                     * Decodes an InterconnectsGetMacsecConfigResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectsGetMacsecConfigResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse;

                    /**
                     * Verifies an InterconnectsGetMacsecConfigResponse message.
                     * @param message Plain 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 InterconnectsGetMacsecConfigResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectsGetMacsecConfigResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse;

                    /**
                     * Creates a plain object from an InterconnectsGetMacsecConfigResponse message. Also converts values to other types if specified.
                     * @param message InterconnectsGetMacsecConfigResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectsGetMacsecConfigResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectsGetMacsecConfigResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InvalidateCacheUrlMapRequest. */
                interface IInvalidateCacheUrlMapRequest {

                    /** InvalidateCacheUrlMapRequest cacheInvalidationRuleResource */
                    cacheInvalidationRuleResource?: (google.cloud.compute.v1.ICacheInvalidationRule|null);

                    /** InvalidateCacheUrlMapRequest project */
                    project?: (string|null);

                    /** InvalidateCacheUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** InvalidateCacheUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents an InvalidateCacheUrlMapRequest. */
                class InvalidateCacheUrlMapRequest implements IInvalidateCacheUrlMapRequest {

                    /**
                     * Constructs a new InvalidateCacheUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IInvalidateCacheUrlMapRequest);

                    /** InvalidateCacheUrlMapRequest cacheInvalidationRuleResource. */
                    public cacheInvalidationRuleResource?: (google.cloud.compute.v1.ICacheInvalidationRule|null);

                    /** InvalidateCacheUrlMapRequest project. */
                    public project: string;

                    /** InvalidateCacheUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** InvalidateCacheUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new InvalidateCacheUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InvalidateCacheUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IInvalidateCacheUrlMapRequest): google.cloud.compute.v1.InvalidateCacheUrlMapRequest;

                    /**
                     * Encodes the specified InvalidateCacheUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.InvalidateCacheUrlMapRequest.verify|verify} messages.
                     * @param message InvalidateCacheUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IInvalidateCacheUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InvalidateCacheUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.InvalidateCacheUrlMapRequest.verify|verify} messages.
                     * @param message InvalidateCacheUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IInvalidateCacheUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InvalidateCacheUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InvalidateCacheUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.InvalidateCacheUrlMapRequest;

                    /**
                     * Decodes an InvalidateCacheUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InvalidateCacheUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.InvalidateCacheUrlMapRequest;

                    /**
                     * Verifies an InvalidateCacheUrlMapRequest message.
                     * @param message Plain 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 InvalidateCacheUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InvalidateCacheUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.InvalidateCacheUrlMapRequest;

                    /**
                     * Creates a plain object from an InvalidateCacheUrlMapRequest message. Also converts values to other types if specified.
                     * @param message InvalidateCacheUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.InvalidateCacheUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InvalidateCacheUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InvalidateCacheUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Items. */
                interface IItems {

                    /** Items key */
                    key?: (string|null);

                    /** Items value */
                    value?: (string|null);
                }

                /** Represents an Items. */
                class Items implements IItems {

                    /**
                     * Constructs a new Items.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IItems);

                    /** Items key. */
                    public key?: (string|null);

                    /** Items value. */
                    public value?: (string|null);

                    /**
                     * Creates a new Items instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Items instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IItems): google.cloud.compute.v1.Items;

                    /**
                     * Encodes the specified Items message. Does not implicitly {@link google.cloud.compute.v1.Items.verify|verify} messages.
                     * @param message Items message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IItems, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Items message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Items.verify|verify} messages.
                     * @param message Items message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IItems, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Items message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Items
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Items;

                    /**
                     * Decodes an Items message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Items
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Items;

                    /**
                     * Verifies an Items message.
                     * @param message Plain 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 Items message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Items
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Items;

                    /**
                     * Creates a plain object from an Items message. Also converts values to other types if specified.
                     * @param message Items
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Items, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Items to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Items
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a License. */
                interface ILicense {

                    /** License allowedReplacementLicenses */
                    allowedReplacementLicenses?: (string[]|null);

                    /** License appendableToDisk */
                    appendableToDisk?: (boolean|null);

                    /** License chargesUseFee */
                    chargesUseFee?: (boolean|null);

                    /** License creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** License description */
                    description?: (string|null);

                    /** License id */
                    id?: (number|Long|string|null);

                    /** License incompatibleLicenses */
                    incompatibleLicenses?: (string[]|null);

                    /** License kind */
                    kind?: (string|null);

                    /** License licenseCode */
                    licenseCode?: (number|Long|string|null);

                    /** License minimumRetention */
                    minimumRetention?: (google.cloud.compute.v1.IDuration|null);

                    /** License multiTenantOnly */
                    multiTenantOnly?: (boolean|null);

                    /** License name */
                    name?: (string|null);

                    /** License osLicense */
                    osLicense?: (boolean|null);

                    /** License params */
                    params?: (google.cloud.compute.v1.ILicenseParams|null);

                    /** License removableFromDisk */
                    removableFromDisk?: (boolean|null);

                    /** License requiredCoattachedLicenses */
                    requiredCoattachedLicenses?: (string[]|null);

                    /** License resourceRequirements */
                    resourceRequirements?: (google.cloud.compute.v1.ILicenseResourceRequirements|null);

                    /** License selfLink */
                    selfLink?: (string|null);

                    /** License selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** License soleTenantOnly */
                    soleTenantOnly?: (boolean|null);

                    /** License transferable */
                    transferable?: (boolean|null);

                    /** License updateTimestamp */
                    updateTimestamp?: (string|null);
                }

                /** Represents a License. */
                class License implements ILicense {

                    /**
                     * Constructs a new License.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILicense);

                    /** License allowedReplacementLicenses. */
                    public allowedReplacementLicenses: string[];

                    /** License appendableToDisk. */
                    public appendableToDisk?: (boolean|null);

                    /** License chargesUseFee. */
                    public chargesUseFee?: (boolean|null);

                    /** License creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** License description. */
                    public description?: (string|null);

                    /** License id. */
                    public id?: (number|Long|string|null);

                    /** License incompatibleLicenses. */
                    public incompatibleLicenses: string[];

                    /** License kind. */
                    public kind?: (string|null);

                    /** License licenseCode. */
                    public licenseCode?: (number|Long|string|null);

                    /** License minimumRetention. */
                    public minimumRetention?: (google.cloud.compute.v1.IDuration|null);

                    /** License multiTenantOnly. */
                    public multiTenantOnly?: (boolean|null);

                    /** License name. */
                    public name?: (string|null);

                    /** License osLicense. */
                    public osLicense?: (boolean|null);

                    /** License params. */
                    public params?: (google.cloud.compute.v1.ILicenseParams|null);

                    /** License removableFromDisk. */
                    public removableFromDisk?: (boolean|null);

                    /** License requiredCoattachedLicenses. */
                    public requiredCoattachedLicenses: string[];

                    /** License resourceRequirements. */
                    public resourceRequirements?: (google.cloud.compute.v1.ILicenseResourceRequirements|null);

                    /** License selfLink. */
                    public selfLink?: (string|null);

                    /** License selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** License soleTenantOnly. */
                    public soleTenantOnly?: (boolean|null);

                    /** License transferable. */
                    public transferable?: (boolean|null);

                    /** License updateTimestamp. */
                    public updateTimestamp?: (string|null);

                    /**
                     * Creates a new License instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns License instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILicense): google.cloud.compute.v1.License;

                    /**
                     * Encodes the specified License message. Does not implicitly {@link google.cloud.compute.v1.License.verify|verify} messages.
                     * @param message License message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILicense, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified License message, length delimited. Does not implicitly {@link google.cloud.compute.v1.License.verify|verify} messages.
                     * @param message License message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILicense, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a License message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns License
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.License;

                    /**
                     * Decodes a License message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns License
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.License;

                    /**
                     * Verifies a License message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a License message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns License
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.License;

                    /**
                     * Creates a plain object from a License message. Also converts values to other types if specified.
                     * @param message License
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.License, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this License to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for License
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicenseCode. */
                interface ILicenseCode {

                    /** LicenseCode creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** LicenseCode description */
                    description?: (string|null);

                    /** LicenseCode id */
                    id?: (number|Long|string|null);

                    /** LicenseCode kind */
                    kind?: (string|null);

                    /** LicenseCode licenseAlias */
                    licenseAlias?: (google.cloud.compute.v1.ILicenseCodeLicenseAlias[]|null);

                    /** LicenseCode name */
                    name?: (string|null);

                    /** LicenseCode selfLink */
                    selfLink?: (string|null);

                    /** LicenseCode state */
                    state?: (string|null);

                    /** LicenseCode transferable */
                    transferable?: (boolean|null);
                }

                /** Represents a LicenseCode. */
                class LicenseCode implements ILicenseCode {

                    /**
                     * Constructs a new LicenseCode.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILicenseCode);

                    /** LicenseCode creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** LicenseCode description. */
                    public description?: (string|null);

                    /** LicenseCode id. */
                    public id?: (number|Long|string|null);

                    /** LicenseCode kind. */
                    public kind?: (string|null);

                    /** LicenseCode licenseAlias. */
                    public licenseAlias: google.cloud.compute.v1.ILicenseCodeLicenseAlias[];

                    /** LicenseCode name. */
                    public name?: (string|null);

                    /** LicenseCode selfLink. */
                    public selfLink?: (string|null);

                    /** LicenseCode state. */
                    public state?: (string|null);

                    /** LicenseCode transferable. */
                    public transferable?: (boolean|null);

                    /**
                     * Creates a new LicenseCode instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseCode instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILicenseCode): google.cloud.compute.v1.LicenseCode;

                    /**
                     * Encodes the specified LicenseCode message. Does not implicitly {@link google.cloud.compute.v1.LicenseCode.verify|verify} messages.
                     * @param message LicenseCode message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILicenseCode, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseCode message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LicenseCode.verify|verify} messages.
                     * @param message LicenseCode message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILicenseCode, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseCode message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseCode
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LicenseCode;

                    /**
                     * Decodes a LicenseCode message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseCode
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LicenseCode;

                    /**
                     * Verifies a LicenseCode message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseCode message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseCode
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LicenseCode;

                    /**
                     * Creates a plain object from a LicenseCode message. Also converts values to other types if specified.
                     * @param message LicenseCode
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LicenseCode, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseCode to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseCode
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace LicenseCode {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        DISABLED = 516696700,
                        ENABLED = 182130465,
                        RESTRICTED = 261551195,
                        STATE_UNSPECIFIED = 470755401,
                        TERMINATED = 250018339
                    }
                }

                /** Properties of a LicenseCodeLicenseAlias. */
                interface ILicenseCodeLicenseAlias {

                    /** LicenseCodeLicenseAlias description */
                    description?: (string|null);

                    /** LicenseCodeLicenseAlias selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a LicenseCodeLicenseAlias. */
                class LicenseCodeLicenseAlias implements ILicenseCodeLicenseAlias {

                    /**
                     * Constructs a new LicenseCodeLicenseAlias.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILicenseCodeLicenseAlias);

                    /** LicenseCodeLicenseAlias description. */
                    public description?: (string|null);

                    /** LicenseCodeLicenseAlias selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new LicenseCodeLicenseAlias instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseCodeLicenseAlias instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILicenseCodeLicenseAlias): google.cloud.compute.v1.LicenseCodeLicenseAlias;

                    /**
                     * Encodes the specified LicenseCodeLicenseAlias message. Does not implicitly {@link google.cloud.compute.v1.LicenseCodeLicenseAlias.verify|verify} messages.
                     * @param message LicenseCodeLicenseAlias message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILicenseCodeLicenseAlias, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseCodeLicenseAlias message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LicenseCodeLicenseAlias.verify|verify} messages.
                     * @param message LicenseCodeLicenseAlias message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILicenseCodeLicenseAlias, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseCodeLicenseAlias message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseCodeLicenseAlias
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LicenseCodeLicenseAlias;

                    /**
                     * Decodes a LicenseCodeLicenseAlias message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseCodeLicenseAlias
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LicenseCodeLicenseAlias;

                    /**
                     * Verifies a LicenseCodeLicenseAlias message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseCodeLicenseAlias message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseCodeLicenseAlias
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LicenseCodeLicenseAlias;

                    /**
                     * Creates a plain object from a LicenseCodeLicenseAlias message. Also converts values to other types if specified.
                     * @param message LicenseCodeLicenseAlias
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LicenseCodeLicenseAlias, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseCodeLicenseAlias to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseCodeLicenseAlias
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicenseParams. */
                interface ILicenseParams {

                    /** LicenseParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a LicenseParams. */
                class LicenseParams implements ILicenseParams {

                    /**
                     * Constructs a new LicenseParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILicenseParams);

                    /** LicenseParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new LicenseParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILicenseParams): google.cloud.compute.v1.LicenseParams;

                    /**
                     * Encodes the specified LicenseParams message. Does not implicitly {@link google.cloud.compute.v1.LicenseParams.verify|verify} messages.
                     * @param message LicenseParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILicenseParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LicenseParams.verify|verify} messages.
                     * @param message LicenseParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILicenseParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LicenseParams;

                    /**
                     * Decodes a LicenseParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LicenseParams;

                    /**
                     * Verifies a LicenseParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LicenseParams;

                    /**
                     * Creates a plain object from a LicenseParams message. Also converts values to other types if specified.
                     * @param message LicenseParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LicenseParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicenseResourceCommitment. */
                interface ILicenseResourceCommitment {

                    /** LicenseResourceCommitment amount */
                    amount?: (number|Long|string|null);

                    /** LicenseResourceCommitment coresPerLicense */
                    coresPerLicense?: (string|null);

                    /** LicenseResourceCommitment license */
                    license?: (string|null);
                }

                /** Represents a LicenseResourceCommitment. */
                class LicenseResourceCommitment implements ILicenseResourceCommitment {

                    /**
                     * Constructs a new LicenseResourceCommitment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILicenseResourceCommitment);

                    /** LicenseResourceCommitment amount. */
                    public amount?: (number|Long|string|null);

                    /** LicenseResourceCommitment coresPerLicense. */
                    public coresPerLicense?: (string|null);

                    /** LicenseResourceCommitment license. */
                    public license?: (string|null);

                    /**
                     * Creates a new LicenseResourceCommitment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseResourceCommitment instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILicenseResourceCommitment): google.cloud.compute.v1.LicenseResourceCommitment;

                    /**
                     * Encodes the specified LicenseResourceCommitment message. Does not implicitly {@link google.cloud.compute.v1.LicenseResourceCommitment.verify|verify} messages.
                     * @param message LicenseResourceCommitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILicenseResourceCommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseResourceCommitment message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LicenseResourceCommitment.verify|verify} messages.
                     * @param message LicenseResourceCommitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILicenseResourceCommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseResourceCommitment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseResourceCommitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LicenseResourceCommitment;

                    /**
                     * Decodes a LicenseResourceCommitment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseResourceCommitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LicenseResourceCommitment;

                    /**
                     * Verifies a LicenseResourceCommitment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseResourceCommitment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseResourceCommitment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LicenseResourceCommitment;

                    /**
                     * Creates a plain object from a LicenseResourceCommitment message. Also converts values to other types if specified.
                     * @param message LicenseResourceCommitment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LicenseResourceCommitment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseResourceCommitment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseResourceCommitment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicenseResourceRequirements. */
                interface ILicenseResourceRequirements {

                    /** LicenseResourceRequirements minGuestCpuCount */
                    minGuestCpuCount?: (number|null);

                    /** LicenseResourceRequirements minMemoryMb */
                    minMemoryMb?: (number|null);
                }

                /** Represents a LicenseResourceRequirements. */
                class LicenseResourceRequirements implements ILicenseResourceRequirements {

                    /**
                     * Constructs a new LicenseResourceRequirements.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILicenseResourceRequirements);

                    /** LicenseResourceRequirements minGuestCpuCount. */
                    public minGuestCpuCount?: (number|null);

                    /** LicenseResourceRequirements minMemoryMb. */
                    public minMemoryMb?: (number|null);

                    /**
                     * Creates a new LicenseResourceRequirements instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseResourceRequirements instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILicenseResourceRequirements): google.cloud.compute.v1.LicenseResourceRequirements;

                    /**
                     * Encodes the specified LicenseResourceRequirements message. Does not implicitly {@link google.cloud.compute.v1.LicenseResourceRequirements.verify|verify} messages.
                     * @param message LicenseResourceRequirements message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILicenseResourceRequirements, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseResourceRequirements message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LicenseResourceRequirements.verify|verify} messages.
                     * @param message LicenseResourceRequirements message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILicenseResourceRequirements, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseResourceRequirements message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseResourceRequirements
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LicenseResourceRequirements;

                    /**
                     * Decodes a LicenseResourceRequirements message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseResourceRequirements
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LicenseResourceRequirements;

                    /**
                     * Verifies a LicenseResourceRequirements message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseResourceRequirements message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseResourceRequirements
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LicenseResourceRequirements;

                    /**
                     * Creates a plain object from a LicenseResourceRequirements message. Also converts values to other types if specified.
                     * @param message LicenseResourceRequirements
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LicenseResourceRequirements, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseResourceRequirements to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseResourceRequirements
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicensesListResponse. */
                interface ILicensesListResponse {

                    /** LicensesListResponse id */
                    id?: (string|null);

                    /** LicensesListResponse items */
                    items?: (google.cloud.compute.v1.ILicense[]|null);

                    /** LicensesListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** LicensesListResponse selfLink */
                    selfLink?: (string|null);

                    /** LicensesListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a LicensesListResponse. */
                class LicensesListResponse implements ILicensesListResponse {

                    /**
                     * Constructs a new LicensesListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILicensesListResponse);

                    /** LicensesListResponse id. */
                    public id?: (string|null);

                    /** LicensesListResponse items. */
                    public items: google.cloud.compute.v1.ILicense[];

                    /** LicensesListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** LicensesListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** LicensesListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new LicensesListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicensesListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILicensesListResponse): google.cloud.compute.v1.LicensesListResponse;

                    /**
                     * Encodes the specified LicensesListResponse message. Does not implicitly {@link google.cloud.compute.v1.LicensesListResponse.verify|verify} messages.
                     * @param message LicensesListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILicensesListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicensesListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LicensesListResponse.verify|verify} messages.
                     * @param message LicensesListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILicensesListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicensesListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicensesListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LicensesListResponse;

                    /**
                     * Decodes a LicensesListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicensesListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LicensesListResponse;

                    /**
                     * Verifies a LicensesListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicensesListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicensesListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LicensesListResponse;

                    /**
                     * Creates a plain object from a LicensesListResponse message. Also converts values to other types if specified.
                     * @param message LicensesListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LicensesListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicensesListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicensesListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAcceleratorTypesRequest. */
                interface IListAcceleratorTypesRequest {

                    /** ListAcceleratorTypesRequest filter */
                    filter?: (string|null);

                    /** ListAcceleratorTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAcceleratorTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAcceleratorTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAcceleratorTypesRequest project */
                    project?: (string|null);

                    /** ListAcceleratorTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListAcceleratorTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListAcceleratorTypesRequest. */
                class ListAcceleratorTypesRequest implements IListAcceleratorTypesRequest {

                    /**
                     * Constructs a new ListAcceleratorTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListAcceleratorTypesRequest);

                    /** ListAcceleratorTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListAcceleratorTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAcceleratorTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAcceleratorTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAcceleratorTypesRequest project. */
                    public project: string;

                    /** ListAcceleratorTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListAcceleratorTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListAcceleratorTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAcceleratorTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListAcceleratorTypesRequest): google.cloud.compute.v1.ListAcceleratorTypesRequest;

                    /**
                     * Encodes the specified ListAcceleratorTypesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListAcceleratorTypesRequest.verify|verify} messages.
                     * @param message ListAcceleratorTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListAcceleratorTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAcceleratorTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListAcceleratorTypesRequest.verify|verify} messages.
                     * @param message ListAcceleratorTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListAcceleratorTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAcceleratorTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAcceleratorTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListAcceleratorTypesRequest;

                    /**
                     * Decodes a ListAcceleratorTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAcceleratorTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListAcceleratorTypesRequest;

                    /**
                     * Verifies a ListAcceleratorTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAcceleratorTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAcceleratorTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListAcceleratorTypesRequest;

                    /**
                     * Creates a plain object from a ListAcceleratorTypesRequest message. Also converts values to other types if specified.
                     * @param message ListAcceleratorTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListAcceleratorTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAcceleratorTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAcceleratorTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAddressesRequest. */
                interface IListAddressesRequest {

                    /** ListAddressesRequest filter */
                    filter?: (string|null);

                    /** ListAddressesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAddressesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAddressesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAddressesRequest project */
                    project?: (string|null);

                    /** ListAddressesRequest region */
                    region?: (string|null);

                    /** ListAddressesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListAddressesRequest. */
                class ListAddressesRequest implements IListAddressesRequest {

                    /**
                     * Constructs a new ListAddressesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListAddressesRequest);

                    /** ListAddressesRequest filter. */
                    public filter?: (string|null);

                    /** ListAddressesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAddressesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAddressesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAddressesRequest project. */
                    public project: string;

                    /** ListAddressesRequest region. */
                    public region: string;

                    /** ListAddressesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListAddressesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAddressesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListAddressesRequest): google.cloud.compute.v1.ListAddressesRequest;

                    /**
                     * Encodes the specified ListAddressesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListAddressesRequest.verify|verify} messages.
                     * @param message ListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAddressesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListAddressesRequest.verify|verify} messages.
                     * @param message ListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAddressesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListAddressesRequest;

                    /**
                     * Decodes a ListAddressesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListAddressesRequest;

                    /**
                     * Verifies a ListAddressesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAddressesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAddressesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListAddressesRequest;

                    /**
                     * Creates a plain object from a ListAddressesRequest message. Also converts values to other types if specified.
                     * @param message ListAddressesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListAddressesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAddressesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAddressesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAssociationsFirewallPolicyRequest. */
                interface IListAssociationsFirewallPolicyRequest {

                    /** ListAssociationsFirewallPolicyRequest includeInheritedPolicies */
                    includeInheritedPolicies?: (boolean|null);

                    /** ListAssociationsFirewallPolicyRequest targetResource */
                    targetResource?: (string|null);
                }

                /** Represents a ListAssociationsFirewallPolicyRequest. */
                class ListAssociationsFirewallPolicyRequest implements IListAssociationsFirewallPolicyRequest {

                    /**
                     * Constructs a new ListAssociationsFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListAssociationsFirewallPolicyRequest);

                    /** ListAssociationsFirewallPolicyRequest includeInheritedPolicies. */
                    public includeInheritedPolicies?: (boolean|null);

                    /** ListAssociationsFirewallPolicyRequest targetResource. */
                    public targetResource?: (string|null);

                    /**
                     * Creates a new ListAssociationsFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAssociationsFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListAssociationsFirewallPolicyRequest): google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest;

                    /**
                     * Encodes the specified ListAssociationsFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest.verify|verify} messages.
                     * @param message ListAssociationsFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListAssociationsFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAssociationsFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest.verify|verify} messages.
                     * @param message ListAssociationsFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListAssociationsFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAssociationsFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAssociationsFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest;

                    /**
                     * Decodes a ListAssociationsFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAssociationsFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest;

                    /**
                     * Verifies a ListAssociationsFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAssociationsFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAssociationsFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a ListAssociationsFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message ListAssociationsFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAssociationsFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAssociationsFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAssociationsOrganizationSecurityPolicyRequest. */
                interface IListAssociationsOrganizationSecurityPolicyRequest {

                    /** ListAssociationsOrganizationSecurityPolicyRequest targetResource */
                    targetResource?: (string|null);
                }

                /** Represents a ListAssociationsOrganizationSecurityPolicyRequest. */
                class ListAssociationsOrganizationSecurityPolicyRequest implements IListAssociationsOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new ListAssociationsOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListAssociationsOrganizationSecurityPolicyRequest);

                    /** ListAssociationsOrganizationSecurityPolicyRequest targetResource. */
                    public targetResource?: (string|null);

                    /**
                     * Creates a new ListAssociationsOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAssociationsOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListAssociationsOrganizationSecurityPolicyRequest): google.cloud.compute.v1.ListAssociationsOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified ListAssociationsOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.ListAssociationsOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message ListAssociationsOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListAssociationsOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAssociationsOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListAssociationsOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message ListAssociationsOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListAssociationsOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAssociationsOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAssociationsOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListAssociationsOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a ListAssociationsOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAssociationsOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListAssociationsOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a ListAssociationsOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAssociationsOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAssociationsOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListAssociationsOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a ListAssociationsOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message ListAssociationsOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListAssociationsOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAssociationsOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAssociationsOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAutoscalersRequest. */
                interface IListAutoscalersRequest {

                    /** ListAutoscalersRequest filter */
                    filter?: (string|null);

                    /** ListAutoscalersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAutoscalersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAutoscalersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAutoscalersRequest project */
                    project?: (string|null);

                    /** ListAutoscalersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListAutoscalersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListAutoscalersRequest. */
                class ListAutoscalersRequest implements IListAutoscalersRequest {

                    /**
                     * Constructs a new ListAutoscalersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListAutoscalersRequest);

                    /** ListAutoscalersRequest filter. */
                    public filter?: (string|null);

                    /** ListAutoscalersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAutoscalersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAutoscalersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAutoscalersRequest project. */
                    public project: string;

                    /** ListAutoscalersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListAutoscalersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListAutoscalersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAutoscalersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListAutoscalersRequest): google.cloud.compute.v1.ListAutoscalersRequest;

                    /**
                     * Encodes the specified ListAutoscalersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListAutoscalersRequest.verify|verify} messages.
                     * @param message ListAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAutoscalersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListAutoscalersRequest.verify|verify} messages.
                     * @param message ListAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAutoscalersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListAutoscalersRequest;

                    /**
                     * Decodes a ListAutoscalersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListAutoscalersRequest;

                    /**
                     * Verifies a ListAutoscalersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAutoscalersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAutoscalersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListAutoscalersRequest;

                    /**
                     * Creates a plain object from a ListAutoscalersRequest message. Also converts values to other types if specified.
                     * @param message ListAutoscalersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListAutoscalersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAutoscalersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAutoscalersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAvailableFeaturesRegionSslPoliciesRequest. */
                interface IListAvailableFeaturesRegionSslPoliciesRequest {

                    /** ListAvailableFeaturesRegionSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest project */
                    project?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest region */
                    region?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListAvailableFeaturesRegionSslPoliciesRequest. */
                class ListAvailableFeaturesRegionSslPoliciesRequest implements IListAvailableFeaturesRegionSslPoliciesRequest {

                    /**
                     * Constructs a new ListAvailableFeaturesRegionSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListAvailableFeaturesRegionSslPoliciesRequest);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest project. */
                    public project: string;

                    /** ListAvailableFeaturesRegionSslPoliciesRequest region. */
                    public region: string;

                    /** ListAvailableFeaturesRegionSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListAvailableFeaturesRegionSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAvailableFeaturesRegionSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListAvailableFeaturesRegionSslPoliciesRequest): google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest;

                    /**
                     * Encodes the specified ListAvailableFeaturesRegionSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest.verify|verify} messages.
                     * @param message ListAvailableFeaturesRegionSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListAvailableFeaturesRegionSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAvailableFeaturesRegionSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest.verify|verify} messages.
                     * @param message ListAvailableFeaturesRegionSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListAvailableFeaturesRegionSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAvailableFeaturesRegionSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAvailableFeaturesRegionSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest;

                    /**
                     * Decodes a ListAvailableFeaturesRegionSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAvailableFeaturesRegionSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest;

                    /**
                     * Verifies a ListAvailableFeaturesRegionSslPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAvailableFeaturesRegionSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAvailableFeaturesRegionSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest;

                    /**
                     * Creates a plain object from a ListAvailableFeaturesRegionSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListAvailableFeaturesRegionSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAvailableFeaturesRegionSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAvailableFeaturesRegionSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAvailableFeaturesSslPoliciesRequest. */
                interface IListAvailableFeaturesSslPoliciesRequest {

                    /** ListAvailableFeaturesSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAvailableFeaturesSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest project */
                    project?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListAvailableFeaturesSslPoliciesRequest. */
                class ListAvailableFeaturesSslPoliciesRequest implements IListAvailableFeaturesSslPoliciesRequest {

                    /**
                     * Constructs a new ListAvailableFeaturesSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListAvailableFeaturesSslPoliciesRequest);

                    /** ListAvailableFeaturesSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAvailableFeaturesSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest project. */
                    public project: string;

                    /** ListAvailableFeaturesSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListAvailableFeaturesSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAvailableFeaturesSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListAvailableFeaturesSslPoliciesRequest): google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest;

                    /**
                     * Encodes the specified ListAvailableFeaturesSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest.verify|verify} messages.
                     * @param message ListAvailableFeaturesSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListAvailableFeaturesSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAvailableFeaturesSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest.verify|verify} messages.
                     * @param message ListAvailableFeaturesSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListAvailableFeaturesSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAvailableFeaturesSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAvailableFeaturesSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest;

                    /**
                     * Decodes a ListAvailableFeaturesSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAvailableFeaturesSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest;

                    /**
                     * Verifies a ListAvailableFeaturesSslPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAvailableFeaturesSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAvailableFeaturesSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest;

                    /**
                     * Creates a plain object from a ListAvailableFeaturesSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListAvailableFeaturesSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAvailableFeaturesSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAvailableFeaturesSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListBackendBucketsRequest. */
                interface IListBackendBucketsRequest {

                    /** ListBackendBucketsRequest filter */
                    filter?: (string|null);

                    /** ListBackendBucketsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListBackendBucketsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListBackendBucketsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListBackendBucketsRequest project */
                    project?: (string|null);

                    /** ListBackendBucketsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListBackendBucketsRequest. */
                class ListBackendBucketsRequest implements IListBackendBucketsRequest {

                    /**
                     * Constructs a new ListBackendBucketsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListBackendBucketsRequest);

                    /** ListBackendBucketsRequest filter. */
                    public filter?: (string|null);

                    /** ListBackendBucketsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListBackendBucketsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListBackendBucketsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListBackendBucketsRequest project. */
                    public project: string;

                    /** ListBackendBucketsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListBackendBucketsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListBackendBucketsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListBackendBucketsRequest): google.cloud.compute.v1.ListBackendBucketsRequest;

                    /**
                     * Encodes the specified ListBackendBucketsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListBackendBucketsRequest.verify|verify} messages.
                     * @param message ListBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListBackendBucketsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListBackendBucketsRequest.verify|verify} messages.
                     * @param message ListBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListBackendBucketsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListBackendBucketsRequest;

                    /**
                     * Decodes a ListBackendBucketsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListBackendBucketsRequest;

                    /**
                     * Verifies a ListBackendBucketsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListBackendBucketsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListBackendBucketsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListBackendBucketsRequest;

                    /**
                     * Creates a plain object from a ListBackendBucketsRequest message. Also converts values to other types if specified.
                     * @param message ListBackendBucketsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListBackendBucketsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListBackendBucketsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListBackendBucketsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListBackendServicesRequest. */
                interface IListBackendServicesRequest {

                    /** ListBackendServicesRequest filter */
                    filter?: (string|null);

                    /** ListBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListBackendServicesRequest project */
                    project?: (string|null);

                    /** ListBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListBackendServicesRequest. */
                class ListBackendServicesRequest implements IListBackendServicesRequest {

                    /**
                     * Constructs a new ListBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListBackendServicesRequest);

                    /** ListBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListBackendServicesRequest project. */
                    public project: string;

                    /** ListBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListBackendServicesRequest): google.cloud.compute.v1.ListBackendServicesRequest;

                    /**
                     * Encodes the specified ListBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListBackendServicesRequest.verify|verify} messages.
                     * @param message ListBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListBackendServicesRequest.verify|verify} messages.
                     * @param message ListBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListBackendServicesRequest;

                    /**
                     * Decodes a ListBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListBackendServicesRequest;

                    /**
                     * Verifies a ListBackendServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListBackendServicesRequest;

                    /**
                     * Creates a plain object from a ListBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message ListBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListBackendServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListBgpRoutesRoutersRequest. */
                interface IListBgpRoutesRoutersRequest {

                    /** ListBgpRoutesRoutersRequest addressFamily */
                    addressFamily?: (string|null);

                    /** ListBgpRoutesRoutersRequest destinationPrefix */
                    destinationPrefix?: (string|null);

                    /** ListBgpRoutesRoutersRequest filter */
                    filter?: (string|null);

                    /** ListBgpRoutesRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListBgpRoutesRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListBgpRoutesRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListBgpRoutesRoutersRequest peer */
                    peer?: (string|null);

                    /** ListBgpRoutesRoutersRequest policyApplied */
                    policyApplied?: (boolean|null);

                    /** ListBgpRoutesRoutersRequest project */
                    project?: (string|null);

                    /** ListBgpRoutesRoutersRequest region */
                    region?: (string|null);

                    /** ListBgpRoutesRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListBgpRoutesRoutersRequest routeType */
                    routeType?: (string|null);

                    /** ListBgpRoutesRoutersRequest router */
                    router?: (string|null);
                }

                /** Represents a ListBgpRoutesRoutersRequest. */
                class ListBgpRoutesRoutersRequest implements IListBgpRoutesRoutersRequest {

                    /**
                     * Constructs a new ListBgpRoutesRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListBgpRoutesRoutersRequest);

                    /** ListBgpRoutesRoutersRequest addressFamily. */
                    public addressFamily?: (string|null);

                    /** ListBgpRoutesRoutersRequest destinationPrefix. */
                    public destinationPrefix?: (string|null);

                    /** ListBgpRoutesRoutersRequest filter. */
                    public filter?: (string|null);

                    /** ListBgpRoutesRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListBgpRoutesRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListBgpRoutesRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListBgpRoutesRoutersRequest peer. */
                    public peer?: (string|null);

                    /** ListBgpRoutesRoutersRequest policyApplied. */
                    public policyApplied?: (boolean|null);

                    /** ListBgpRoutesRoutersRequest project. */
                    public project: string;

                    /** ListBgpRoutesRoutersRequest region. */
                    public region: string;

                    /** ListBgpRoutesRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListBgpRoutesRoutersRequest routeType. */
                    public routeType?: (string|null);

                    /** ListBgpRoutesRoutersRequest router. */
                    public router: string;

                    /**
                     * Creates a new ListBgpRoutesRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListBgpRoutesRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListBgpRoutesRoutersRequest): google.cloud.compute.v1.ListBgpRoutesRoutersRequest;

                    /**
                     * Encodes the specified ListBgpRoutesRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListBgpRoutesRoutersRequest.verify|verify} messages.
                     * @param message ListBgpRoutesRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListBgpRoutesRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListBgpRoutesRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListBgpRoutesRoutersRequest.verify|verify} messages.
                     * @param message ListBgpRoutesRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListBgpRoutesRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListBgpRoutesRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListBgpRoutesRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListBgpRoutesRoutersRequest;

                    /**
                     * Decodes a ListBgpRoutesRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListBgpRoutesRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListBgpRoutesRoutersRequest;

                    /**
                     * Verifies a ListBgpRoutesRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListBgpRoutesRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListBgpRoutesRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListBgpRoutesRoutersRequest;

                    /**
                     * Creates a plain object from a ListBgpRoutesRoutersRequest message. Also converts values to other types if specified.
                     * @param message ListBgpRoutesRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListBgpRoutesRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListBgpRoutesRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListBgpRoutesRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListBgpRoutesRoutersRequest {

                    /** AddressFamily enum. */
                    enum AddressFamily {
                        UNDEFINED_ADDRESS_FAMILY = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        UNSPECIFIED_IP_VERSION = 72938440
                    }

                    /** RouteType enum. */
                    enum RouteType {
                        UNDEFINED_ROUTE_TYPE = 0,
                        ADVERTISED = 20302109,
                        LEARNED = 231892419,
                        UNSPECIFIED_ROUTE_TYPE = 248064440
                    }
                }

                /** Properties of a ListCrossSiteNetworksRequest. */
                interface IListCrossSiteNetworksRequest {

                    /** ListCrossSiteNetworksRequest filter */
                    filter?: (string|null);

                    /** ListCrossSiteNetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListCrossSiteNetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListCrossSiteNetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListCrossSiteNetworksRequest project */
                    project?: (string|null);

                    /** ListCrossSiteNetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListCrossSiteNetworksRequest. */
                class ListCrossSiteNetworksRequest implements IListCrossSiteNetworksRequest {

                    /**
                     * Constructs a new ListCrossSiteNetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListCrossSiteNetworksRequest);

                    /** ListCrossSiteNetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListCrossSiteNetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListCrossSiteNetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListCrossSiteNetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListCrossSiteNetworksRequest project. */
                    public project: string;

                    /** ListCrossSiteNetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListCrossSiteNetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCrossSiteNetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListCrossSiteNetworksRequest): google.cloud.compute.v1.ListCrossSiteNetworksRequest;

                    /**
                     * Encodes the specified ListCrossSiteNetworksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListCrossSiteNetworksRequest.verify|verify} messages.
                     * @param message ListCrossSiteNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListCrossSiteNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCrossSiteNetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListCrossSiteNetworksRequest.verify|verify} messages.
                     * @param message ListCrossSiteNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListCrossSiteNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCrossSiteNetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCrossSiteNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListCrossSiteNetworksRequest;

                    /**
                     * Decodes a ListCrossSiteNetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCrossSiteNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListCrossSiteNetworksRequest;

                    /**
                     * Verifies a ListCrossSiteNetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCrossSiteNetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCrossSiteNetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListCrossSiteNetworksRequest;

                    /**
                     * Creates a plain object from a ListCrossSiteNetworksRequest message. Also converts values to other types if specified.
                     * @param message ListCrossSiteNetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListCrossSiteNetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCrossSiteNetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCrossSiteNetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDiskTypesRequest. */
                interface IListDiskTypesRequest {

                    /** ListDiskTypesRequest filter */
                    filter?: (string|null);

                    /** ListDiskTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListDiskTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListDiskTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDiskTypesRequest project */
                    project?: (string|null);

                    /** ListDiskTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListDiskTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListDiskTypesRequest. */
                class ListDiskTypesRequest implements IListDiskTypesRequest {

                    /**
                     * Constructs a new ListDiskTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListDiskTypesRequest);

                    /** ListDiskTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListDiskTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListDiskTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListDiskTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListDiskTypesRequest project. */
                    public project: string;

                    /** ListDiskTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListDiskTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListDiskTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDiskTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListDiskTypesRequest): google.cloud.compute.v1.ListDiskTypesRequest;

                    /**
                     * Encodes the specified ListDiskTypesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListDiskTypesRequest.verify|verify} messages.
                     * @param message ListDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDiskTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListDiskTypesRequest.verify|verify} messages.
                     * @param message ListDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDiskTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListDiskTypesRequest;

                    /**
                     * Decodes a ListDiskTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListDiskTypesRequest;

                    /**
                     * Verifies a ListDiskTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDiskTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDiskTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListDiskTypesRequest;

                    /**
                     * Creates a plain object from a ListDiskTypesRequest message. Also converts values to other types if specified.
                     * @param message ListDiskTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListDiskTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDiskTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDiskTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDisksRequest. */
                interface IListDisksRequest {

                    /** ListDisksRequest filter */
                    filter?: (string|null);

                    /** ListDisksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListDisksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListDisksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDisksRequest project */
                    project?: (string|null);

                    /** ListDisksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListDisksRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListDisksRequest. */
                class ListDisksRequest implements IListDisksRequest {

                    /**
                     * Constructs a new ListDisksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListDisksRequest);

                    /** ListDisksRequest filter. */
                    public filter?: (string|null);

                    /** ListDisksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListDisksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListDisksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListDisksRequest project. */
                    public project: string;

                    /** ListDisksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListDisksRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListDisksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDisksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListDisksRequest): google.cloud.compute.v1.ListDisksRequest;

                    /**
                     * Encodes the specified ListDisksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListDisksRequest.verify|verify} messages.
                     * @param message ListDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDisksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListDisksRequest.verify|verify} messages.
                     * @param message ListDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDisksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListDisksRequest;

                    /**
                     * Decodes a ListDisksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListDisksRequest;

                    /**
                     * Verifies a ListDisksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDisksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDisksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListDisksRequest;

                    /**
                     * Creates a plain object from a ListDisksRequest message. Also converts values to other types if specified.
                     * @param message ListDisksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListDisksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDisksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDisksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDisksStoragePoolsRequest. */
                interface IListDisksStoragePoolsRequest {

                    /** ListDisksStoragePoolsRequest filter */
                    filter?: (string|null);

                    /** ListDisksStoragePoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListDisksStoragePoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListDisksStoragePoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDisksStoragePoolsRequest project */
                    project?: (string|null);

                    /** ListDisksStoragePoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListDisksStoragePoolsRequest storagePool */
                    storagePool?: (string|null);

                    /** ListDisksStoragePoolsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListDisksStoragePoolsRequest. */
                class ListDisksStoragePoolsRequest implements IListDisksStoragePoolsRequest {

                    /**
                     * Constructs a new ListDisksStoragePoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListDisksStoragePoolsRequest);

                    /** ListDisksStoragePoolsRequest filter. */
                    public filter?: (string|null);

                    /** ListDisksStoragePoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListDisksStoragePoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListDisksStoragePoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListDisksStoragePoolsRequest project. */
                    public project: string;

                    /** ListDisksStoragePoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListDisksStoragePoolsRequest storagePool. */
                    public storagePool: string;

                    /** ListDisksStoragePoolsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListDisksStoragePoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDisksStoragePoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListDisksStoragePoolsRequest): google.cloud.compute.v1.ListDisksStoragePoolsRequest;

                    /**
                     * Encodes the specified ListDisksStoragePoolsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListDisksStoragePoolsRequest.verify|verify} messages.
                     * @param message ListDisksStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListDisksStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDisksStoragePoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListDisksStoragePoolsRequest.verify|verify} messages.
                     * @param message ListDisksStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListDisksStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDisksStoragePoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDisksStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListDisksStoragePoolsRequest;

                    /**
                     * Decodes a ListDisksStoragePoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDisksStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListDisksStoragePoolsRequest;

                    /**
                     * Verifies a ListDisksStoragePoolsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDisksStoragePoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDisksStoragePoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListDisksStoragePoolsRequest;

                    /**
                     * Creates a plain object from a ListDisksStoragePoolsRequest message. Also converts values to other types if specified.
                     * @param message ListDisksStoragePoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListDisksStoragePoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDisksStoragePoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDisksStoragePoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListErrorsInstanceGroupManagersRequest. */
                interface IListErrorsInstanceGroupManagersRequest {

                    /** ListErrorsInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListErrorsInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListErrorsInstanceGroupManagersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListErrorsInstanceGroupManagersRequest. */
                class ListErrorsInstanceGroupManagersRequest implements IListErrorsInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListErrorsInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListErrorsInstanceGroupManagersRequest);

                    /** ListErrorsInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListErrorsInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListErrorsInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListErrorsInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListErrorsInstanceGroupManagersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListErrorsInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListErrorsInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListErrorsInstanceGroupManagersRequest): google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListErrorsInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListErrorsInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListErrorsInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListErrorsInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListErrorsInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListErrorsInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListErrorsInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListErrorsInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListErrorsInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListErrorsInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListErrorsInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListErrorsInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListErrorsInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListErrorsInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListErrorsInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListErrorsInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListErrorsInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListErrorsRegionInstanceGroupManagersRequest. */
                interface IListErrorsRegionInstanceGroupManagersRequest {

                    /** ListErrorsRegionInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest region */
                    region?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListErrorsRegionInstanceGroupManagersRequest. */
                class ListErrorsRegionInstanceGroupManagersRequest implements IListErrorsRegionInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListErrorsRegionInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListErrorsRegionInstanceGroupManagersRequest);

                    /** ListErrorsRegionInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListErrorsRegionInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListErrorsRegionInstanceGroupManagersRequest region. */
                    public region: string;

                    /** ListErrorsRegionInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListErrorsRegionInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListErrorsRegionInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListErrorsRegionInstanceGroupManagersRequest): google.cloud.compute.v1.ListErrorsRegionInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListErrorsRegionInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListErrorsRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListErrorsRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListErrorsRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListErrorsRegionInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListErrorsRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListErrorsRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListErrorsRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListErrorsRegionInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListErrorsRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListErrorsRegionInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListErrorsRegionInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListErrorsRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListErrorsRegionInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListErrorsRegionInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListErrorsRegionInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListErrorsRegionInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListErrorsRegionInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListErrorsRegionInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListErrorsRegionInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListErrorsRegionInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListErrorsRegionInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListErrorsRegionInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListExternalVpnGatewaysRequest. */
                interface IListExternalVpnGatewaysRequest {

                    /** ListExternalVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** ListExternalVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** ListExternalVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** ListExternalVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** ListExternalVpnGatewaysRequest project */
                    project?: (string|null);

                    /** ListExternalVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListExternalVpnGatewaysRequest. */
                class ListExternalVpnGatewaysRequest implements IListExternalVpnGatewaysRequest {

                    /**
                     * Constructs a new ListExternalVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListExternalVpnGatewaysRequest);

                    /** ListExternalVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** ListExternalVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListExternalVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListExternalVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListExternalVpnGatewaysRequest project. */
                    public project: string;

                    /** ListExternalVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListExternalVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListExternalVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListExternalVpnGatewaysRequest): google.cloud.compute.v1.ListExternalVpnGatewaysRequest;

                    /**
                     * Encodes the specified ListExternalVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1.ListExternalVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListExternalVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListExternalVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListExternalVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListExternalVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListExternalVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListExternalVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListExternalVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListExternalVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListExternalVpnGatewaysRequest;

                    /**
                     * Decodes a ListExternalVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListExternalVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListExternalVpnGatewaysRequest;

                    /**
                     * Verifies a ListExternalVpnGatewaysRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListExternalVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListExternalVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListExternalVpnGatewaysRequest;

                    /**
                     * Creates a plain object from a ListExternalVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message ListExternalVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListExternalVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListExternalVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListExternalVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListFirewallPoliciesRequest. */
                interface IListFirewallPoliciesRequest {

                    /** ListFirewallPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListFirewallPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListFirewallPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListFirewallPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListFirewallPoliciesRequest parentId */
                    parentId?: (string|null);

                    /** ListFirewallPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListFirewallPoliciesRequest. */
                class ListFirewallPoliciesRequest implements IListFirewallPoliciesRequest {

                    /**
                     * Constructs a new ListFirewallPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListFirewallPoliciesRequest);

                    /** ListFirewallPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListFirewallPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListFirewallPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListFirewallPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListFirewallPoliciesRequest parentId. */
                    public parentId?: (string|null);

                    /** ListFirewallPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListFirewallPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListFirewallPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListFirewallPoliciesRequest): google.cloud.compute.v1.ListFirewallPoliciesRequest;

                    /**
                     * Encodes the specified ListFirewallPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListFirewallPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListFirewallPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListFirewallPoliciesRequest;

                    /**
                     * Decodes a ListFirewallPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListFirewallPoliciesRequest;

                    /**
                     * Verifies a ListFirewallPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListFirewallPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListFirewallPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListFirewallPoliciesRequest;

                    /**
                     * Creates a plain object from a ListFirewallPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListFirewallPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListFirewallPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListFirewallPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListFirewallPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListFirewallsRequest. */
                interface IListFirewallsRequest {

                    /** ListFirewallsRequest filter */
                    filter?: (string|null);

                    /** ListFirewallsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListFirewallsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListFirewallsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListFirewallsRequest project */
                    project?: (string|null);

                    /** ListFirewallsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListFirewallsRequest. */
                class ListFirewallsRequest implements IListFirewallsRequest {

                    /**
                     * Constructs a new ListFirewallsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListFirewallsRequest);

                    /** ListFirewallsRequest filter. */
                    public filter?: (string|null);

                    /** ListFirewallsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListFirewallsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListFirewallsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListFirewallsRequest project. */
                    public project: string;

                    /** ListFirewallsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListFirewallsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListFirewallsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListFirewallsRequest): google.cloud.compute.v1.ListFirewallsRequest;

                    /**
                     * Encodes the specified ListFirewallsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListFirewallsRequest.verify|verify} messages.
                     * @param message ListFirewallsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListFirewallsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListFirewallsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListFirewallsRequest.verify|verify} messages.
                     * @param message ListFirewallsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListFirewallsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListFirewallsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListFirewallsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListFirewallsRequest;

                    /**
                     * Decodes a ListFirewallsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListFirewallsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListFirewallsRequest;

                    /**
                     * Verifies a ListFirewallsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListFirewallsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListFirewallsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListFirewallsRequest;

                    /**
                     * Creates a plain object from a ListFirewallsRequest message. Also converts values to other types if specified.
                     * @param message ListFirewallsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListFirewallsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListFirewallsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListFirewallsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListForwardingRulesRequest. */
                interface IListForwardingRulesRequest {

                    /** ListForwardingRulesRequest filter */
                    filter?: (string|null);

                    /** ListForwardingRulesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListForwardingRulesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListForwardingRulesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListForwardingRulesRequest project */
                    project?: (string|null);

                    /** ListForwardingRulesRequest region */
                    region?: (string|null);

                    /** ListForwardingRulesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListForwardingRulesRequest. */
                class ListForwardingRulesRequest implements IListForwardingRulesRequest {

                    /**
                     * Constructs a new ListForwardingRulesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListForwardingRulesRequest);

                    /** ListForwardingRulesRequest filter. */
                    public filter?: (string|null);

                    /** ListForwardingRulesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListForwardingRulesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListForwardingRulesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListForwardingRulesRequest project. */
                    public project: string;

                    /** ListForwardingRulesRequest region. */
                    public region: string;

                    /** ListForwardingRulesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListForwardingRulesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListForwardingRulesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListForwardingRulesRequest): google.cloud.compute.v1.ListForwardingRulesRequest;

                    /**
                     * Encodes the specified ListForwardingRulesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListForwardingRulesRequest.verify|verify} messages.
                     * @param message ListForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListForwardingRulesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListForwardingRulesRequest.verify|verify} messages.
                     * @param message ListForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListForwardingRulesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListForwardingRulesRequest;

                    /**
                     * Decodes a ListForwardingRulesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListForwardingRulesRequest;

                    /**
                     * Verifies a ListForwardingRulesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListForwardingRulesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListForwardingRulesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListForwardingRulesRequest;

                    /**
                     * Creates a plain object from a ListForwardingRulesRequest message. Also converts values to other types if specified.
                     * @param message ListForwardingRulesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListForwardingRulesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListForwardingRulesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListForwardingRulesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListFutureReservationsRequest. */
                interface IListFutureReservationsRequest {

                    /** ListFutureReservationsRequest filter */
                    filter?: (string|null);

                    /** ListFutureReservationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListFutureReservationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListFutureReservationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListFutureReservationsRequest project */
                    project?: (string|null);

                    /** ListFutureReservationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListFutureReservationsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListFutureReservationsRequest. */
                class ListFutureReservationsRequest implements IListFutureReservationsRequest {

                    /**
                     * Constructs a new ListFutureReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListFutureReservationsRequest);

                    /** ListFutureReservationsRequest filter. */
                    public filter?: (string|null);

                    /** ListFutureReservationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListFutureReservationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListFutureReservationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListFutureReservationsRequest project. */
                    public project: string;

                    /** ListFutureReservationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListFutureReservationsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListFutureReservationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListFutureReservationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListFutureReservationsRequest): google.cloud.compute.v1.ListFutureReservationsRequest;

                    /**
                     * Encodes the specified ListFutureReservationsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListFutureReservationsRequest.verify|verify} messages.
                     * @param message ListFutureReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListFutureReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListFutureReservationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListFutureReservationsRequest.verify|verify} messages.
                     * @param message ListFutureReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListFutureReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListFutureReservationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListFutureReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListFutureReservationsRequest;

                    /**
                     * Decodes a ListFutureReservationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListFutureReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListFutureReservationsRequest;

                    /**
                     * Verifies a ListFutureReservationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListFutureReservationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListFutureReservationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListFutureReservationsRequest;

                    /**
                     * Creates a plain object from a ListFutureReservationsRequest message. Also converts values to other types if specified.
                     * @param message ListFutureReservationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListFutureReservationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListFutureReservationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListFutureReservationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalAddressesRequest. */
                interface IListGlobalAddressesRequest {

                    /** ListGlobalAddressesRequest filter */
                    filter?: (string|null);

                    /** ListGlobalAddressesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalAddressesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalAddressesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalAddressesRequest project */
                    project?: (string|null);

                    /** ListGlobalAddressesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalAddressesRequest. */
                class ListGlobalAddressesRequest implements IListGlobalAddressesRequest {

                    /**
                     * Constructs a new ListGlobalAddressesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListGlobalAddressesRequest);

                    /** ListGlobalAddressesRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalAddressesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalAddressesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalAddressesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalAddressesRequest project. */
                    public project: string;

                    /** ListGlobalAddressesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalAddressesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalAddressesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListGlobalAddressesRequest): google.cloud.compute.v1.ListGlobalAddressesRequest;

                    /**
                     * Encodes the specified ListGlobalAddressesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListGlobalAddressesRequest.verify|verify} messages.
                     * @param message ListGlobalAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListGlobalAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalAddressesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListGlobalAddressesRequest.verify|verify} messages.
                     * @param message ListGlobalAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListGlobalAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalAddressesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListGlobalAddressesRequest;

                    /**
                     * Decodes a ListGlobalAddressesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListGlobalAddressesRequest;

                    /**
                     * Verifies a ListGlobalAddressesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalAddressesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalAddressesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListGlobalAddressesRequest;

                    /**
                     * Creates a plain object from a ListGlobalAddressesRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalAddressesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListGlobalAddressesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalAddressesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalAddressesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalForwardingRulesRequest. */
                interface IListGlobalForwardingRulesRequest {

                    /** ListGlobalForwardingRulesRequest filter */
                    filter?: (string|null);

                    /** ListGlobalForwardingRulesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalForwardingRulesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalForwardingRulesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalForwardingRulesRequest project */
                    project?: (string|null);

                    /** ListGlobalForwardingRulesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalForwardingRulesRequest. */
                class ListGlobalForwardingRulesRequest implements IListGlobalForwardingRulesRequest {

                    /**
                     * Constructs a new ListGlobalForwardingRulesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListGlobalForwardingRulesRequest);

                    /** ListGlobalForwardingRulesRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalForwardingRulesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalForwardingRulesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalForwardingRulesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalForwardingRulesRequest project. */
                    public project: string;

                    /** ListGlobalForwardingRulesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalForwardingRulesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalForwardingRulesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListGlobalForwardingRulesRequest): google.cloud.compute.v1.ListGlobalForwardingRulesRequest;

                    /**
                     * Encodes the specified ListGlobalForwardingRulesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListGlobalForwardingRulesRequest.verify|verify} messages.
                     * @param message ListGlobalForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListGlobalForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalForwardingRulesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListGlobalForwardingRulesRequest.verify|verify} messages.
                     * @param message ListGlobalForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListGlobalForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalForwardingRulesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListGlobalForwardingRulesRequest;

                    /**
                     * Decodes a ListGlobalForwardingRulesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListGlobalForwardingRulesRequest;

                    /**
                     * Verifies a ListGlobalForwardingRulesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalForwardingRulesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalForwardingRulesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListGlobalForwardingRulesRequest;

                    /**
                     * Creates a plain object from a ListGlobalForwardingRulesRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalForwardingRulesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListGlobalForwardingRulesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalForwardingRulesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalForwardingRulesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalNetworkEndpointGroupsRequest. */
                interface IListGlobalNetworkEndpointGroupsRequest {

                    /** ListGlobalNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalNetworkEndpointGroupsRequest. */
                class ListGlobalNetworkEndpointGroupsRequest implements IListGlobalNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListGlobalNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListGlobalNetworkEndpointGroupsRequest);

                    /** ListGlobalNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListGlobalNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListGlobalNetworkEndpointGroupsRequest): google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListGlobalNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListGlobalNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListGlobalNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListGlobalNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListGlobalNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListGlobalNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListGlobalNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListGlobalNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalOperationsRequest. */
                interface IListGlobalOperationsRequest {

                    /** ListGlobalOperationsRequest filter */
                    filter?: (string|null);

                    /** ListGlobalOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalOperationsRequest project */
                    project?: (string|null);

                    /** ListGlobalOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalOperationsRequest. */
                class ListGlobalOperationsRequest implements IListGlobalOperationsRequest {

                    /**
                     * Constructs a new ListGlobalOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListGlobalOperationsRequest);

                    /** ListGlobalOperationsRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalOperationsRequest project. */
                    public project: string;

                    /** ListGlobalOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListGlobalOperationsRequest): google.cloud.compute.v1.ListGlobalOperationsRequest;

                    /**
                     * Encodes the specified ListGlobalOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListGlobalOperationsRequest.verify|verify} messages.
                     * @param message ListGlobalOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListGlobalOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListGlobalOperationsRequest.verify|verify} messages.
                     * @param message ListGlobalOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListGlobalOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListGlobalOperationsRequest;

                    /**
                     * Decodes a ListGlobalOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListGlobalOperationsRequest;

                    /**
                     * Verifies a ListGlobalOperationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListGlobalOperationsRequest;

                    /**
                     * Creates a plain object from a ListGlobalOperationsRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListGlobalOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalOrganizationOperationsRequest. */
                interface IListGlobalOrganizationOperationsRequest {

                    /** ListGlobalOrganizationOperationsRequest filter */
                    filter?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalOrganizationOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest parentId */
                    parentId?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalOrganizationOperationsRequest. */
                class ListGlobalOrganizationOperationsRequest implements IListGlobalOrganizationOperationsRequest {

                    /**
                     * Constructs a new ListGlobalOrganizationOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListGlobalOrganizationOperationsRequest);

                    /** ListGlobalOrganizationOperationsRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalOrganizationOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest parentId. */
                    public parentId?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalOrganizationOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalOrganizationOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListGlobalOrganizationOperationsRequest): google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest;

                    /**
                     * Encodes the specified ListGlobalOrganizationOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest.verify|verify} messages.
                     * @param message ListGlobalOrganizationOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListGlobalOrganizationOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalOrganizationOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest.verify|verify} messages.
                     * @param message ListGlobalOrganizationOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListGlobalOrganizationOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalOrganizationOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalOrganizationOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest;

                    /**
                     * Decodes a ListGlobalOrganizationOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalOrganizationOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest;

                    /**
                     * Verifies a ListGlobalOrganizationOperationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalOrganizationOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalOrganizationOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest;

                    /**
                     * Creates a plain object from a ListGlobalOrganizationOperationsRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalOrganizationOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalOrganizationOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalOrganizationOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalPublicDelegatedPrefixesRequest. */
                interface IListGlobalPublicDelegatedPrefixesRequest {

                    /** ListGlobalPublicDelegatedPrefixesRequest filter */
                    filter?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest project */
                    project?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalPublicDelegatedPrefixesRequest. */
                class ListGlobalPublicDelegatedPrefixesRequest implements IListGlobalPublicDelegatedPrefixesRequest {

                    /**
                     * Constructs a new ListGlobalPublicDelegatedPrefixesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListGlobalPublicDelegatedPrefixesRequest);

                    /** ListGlobalPublicDelegatedPrefixesRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest project. */
                    public project: string;

                    /** ListGlobalPublicDelegatedPrefixesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalPublicDelegatedPrefixesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalPublicDelegatedPrefixesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListGlobalPublicDelegatedPrefixesRequest): google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest;

                    /**
                     * Encodes the specified ListGlobalPublicDelegatedPrefixesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message ListGlobalPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListGlobalPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalPublicDelegatedPrefixesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message ListGlobalPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListGlobalPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalPublicDelegatedPrefixesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest;

                    /**
                     * Decodes a ListGlobalPublicDelegatedPrefixesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest;

                    /**
                     * Verifies a ListGlobalPublicDelegatedPrefixesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalPublicDelegatedPrefixesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalPublicDelegatedPrefixesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest;

                    /**
                     * Creates a plain object from a ListGlobalPublicDelegatedPrefixesRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalPublicDelegatedPrefixesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalPublicDelegatedPrefixesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalPublicDelegatedPrefixesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListHealthChecksRequest. */
                interface IListHealthChecksRequest {

                    /** ListHealthChecksRequest filter */
                    filter?: (string|null);

                    /** ListHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListHealthChecksRequest project */
                    project?: (string|null);

                    /** ListHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListHealthChecksRequest. */
                class ListHealthChecksRequest implements IListHealthChecksRequest {

                    /**
                     * Constructs a new ListHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListHealthChecksRequest);

                    /** ListHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** ListHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListHealthChecksRequest project. */
                    public project: string;

                    /** ListHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListHealthChecksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListHealthChecksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListHealthChecksRequest): google.cloud.compute.v1.ListHealthChecksRequest;

                    /**
                     * Encodes the specified ListHealthChecksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListHealthChecksRequest.verify|verify} messages.
                     * @param message ListHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListHealthChecksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListHealthChecksRequest.verify|verify} messages.
                     * @param message ListHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListHealthChecksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListHealthChecksRequest;

                    /**
                     * Decodes a ListHealthChecksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListHealthChecksRequest;

                    /**
                     * Verifies a ListHealthChecksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListHealthChecksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListHealthChecksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListHealthChecksRequest;

                    /**
                     * Creates a plain object from a ListHealthChecksRequest message. Also converts values to other types if specified.
                     * @param message ListHealthChecksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListHealthChecksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListHealthChecksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListHealthChecksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListImagesRequest. */
                interface IListImagesRequest {

                    /** ListImagesRequest filter */
                    filter?: (string|null);

                    /** ListImagesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListImagesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListImagesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListImagesRequest project */
                    project?: (string|null);

                    /** ListImagesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListImagesRequest. */
                class ListImagesRequest implements IListImagesRequest {

                    /**
                     * Constructs a new ListImagesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListImagesRequest);

                    /** ListImagesRequest filter. */
                    public filter?: (string|null);

                    /** ListImagesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListImagesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListImagesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListImagesRequest project. */
                    public project: string;

                    /** ListImagesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListImagesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListImagesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListImagesRequest): google.cloud.compute.v1.ListImagesRequest;

                    /**
                     * Encodes the specified ListImagesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListImagesRequest.verify|verify} messages.
                     * @param message ListImagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListImagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListImagesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListImagesRequest.verify|verify} messages.
                     * @param message ListImagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListImagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListImagesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListImagesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListImagesRequest;

                    /**
                     * Decodes a ListImagesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListImagesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListImagesRequest;

                    /**
                     * Verifies a ListImagesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListImagesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListImagesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListImagesRequest;

                    /**
                     * Creates a plain object from a ListImagesRequest message. Also converts values to other types if specified.
                     * @param message ListImagesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListImagesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListImagesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListImagesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstanceGroupManagerResizeRequestsRequest. */
                interface IListInstanceGroupManagerResizeRequestsRequest {

                    /** ListInstanceGroupManagerResizeRequestsRequest filter */
                    filter?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest project */
                    project?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstanceGroupManagerResizeRequestsRequest. */
                class ListInstanceGroupManagerResizeRequestsRequest implements IListInstanceGroupManagerResizeRequestsRequest {

                    /**
                     * Constructs a new ListInstanceGroupManagerResizeRequestsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInstanceGroupManagerResizeRequestsRequest);

                    /** ListInstanceGroupManagerResizeRequestsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListInstanceGroupManagerResizeRequestsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest project. */
                    public project: string;

                    /** ListInstanceGroupManagerResizeRequestsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstanceGroupManagerResizeRequestsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstanceGroupManagerResizeRequestsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInstanceGroupManagerResizeRequestsRequest): google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Encodes the specified ListInstanceGroupManagerResizeRequestsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest.verify|verify} messages.
                     * @param message ListInstanceGroupManagerResizeRequestsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInstanceGroupManagerResizeRequestsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstanceGroupManagerResizeRequestsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest.verify|verify} messages.
                     * @param message ListInstanceGroupManagerResizeRequestsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInstanceGroupManagerResizeRequestsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstanceGroupManagerResizeRequestsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstanceGroupManagerResizeRequestsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Decodes a ListInstanceGroupManagerResizeRequestsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstanceGroupManagerResizeRequestsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Verifies a ListInstanceGroupManagerResizeRequestsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstanceGroupManagerResizeRequestsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstanceGroupManagerResizeRequestsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Creates a plain object from a ListInstanceGroupManagerResizeRequestsRequest message. Also converts values to other types if specified.
                     * @param message ListInstanceGroupManagerResizeRequestsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstanceGroupManagerResizeRequestsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstanceGroupManagerResizeRequestsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstanceGroupManagersRequest. */
                interface IListInstanceGroupManagersRequest {

                    /** ListInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupManagersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstanceGroupManagersRequest. */
                class ListInstanceGroupManagersRequest implements IListInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInstanceGroupManagersRequest);

                    /** ListInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupManagersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInstanceGroupManagersRequest): google.cloud.compute.v1.ListInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstanceGroupsRequest. */
                interface IListInstanceGroupsRequest {

                    /** ListInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstanceGroupsRequest project */
                    project?: (string|null);

                    /** ListInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstanceGroupsRequest. */
                class ListInstanceGroupsRequest implements IListInstanceGroupsRequest {

                    /**
                     * Constructs a new ListInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInstanceGroupsRequest);

                    /** ListInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstanceGroupsRequest project. */
                    public project: string;

                    /** ListInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInstanceGroupsRequest): google.cloud.compute.v1.ListInstanceGroupsRequest;

                    /**
                     * Encodes the specified ListInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInstanceGroupsRequest;

                    /**
                     * Decodes a ListInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInstanceGroupsRequest;

                    /**
                     * Verifies a ListInstanceGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInstanceGroupsRequest;

                    /**
                     * Creates a plain object from a ListInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstanceTemplatesRequest. */
                interface IListInstanceTemplatesRequest {

                    /** ListInstanceTemplatesRequest filter */
                    filter?: (string|null);

                    /** ListInstanceTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstanceTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstanceTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstanceTemplatesRequest project */
                    project?: (string|null);

                    /** ListInstanceTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInstanceTemplatesRequest. */
                class ListInstanceTemplatesRequest implements IListInstanceTemplatesRequest {

                    /**
                     * Constructs a new ListInstanceTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInstanceTemplatesRequest);

                    /** ListInstanceTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** ListInstanceTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstanceTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstanceTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstanceTemplatesRequest project. */
                    public project: string;

                    /** ListInstanceTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInstanceTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstanceTemplatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInstanceTemplatesRequest): google.cloud.compute.v1.ListInstanceTemplatesRequest;

                    /**
                     * Encodes the specified ListInstanceTemplatesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInstanceTemplatesRequest.verify|verify} messages.
                     * @param message ListInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstanceTemplatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInstanceTemplatesRequest.verify|verify} messages.
                     * @param message ListInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstanceTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInstanceTemplatesRequest;

                    /**
                     * Decodes a ListInstanceTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInstanceTemplatesRequest;

                    /**
                     * Verifies a ListInstanceTemplatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstanceTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstanceTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInstanceTemplatesRequest;

                    /**
                     * Creates a plain object from a ListInstanceTemplatesRequest message. Also converts values to other types if specified.
                     * @param message ListInstanceTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInstanceTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstanceTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstanceTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstancesInstanceGroupsRequest. */
                interface IListInstancesInstanceGroupsRequest {

                    /** ListInstancesInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInstancesInstanceGroupsRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** ListInstancesInstanceGroupsRequest instanceGroupsListInstancesRequestResource */
                    instanceGroupsListInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupsListInstancesRequest|null);

                    /** ListInstancesInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstancesInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstancesInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstancesInstanceGroupsRequest project */
                    project?: (string|null);

                    /** ListInstancesInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstancesInstanceGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstancesInstanceGroupsRequest. */
                class ListInstancesInstanceGroupsRequest implements IListInstancesInstanceGroupsRequest {

                    /**
                     * Constructs a new ListInstancesInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInstancesInstanceGroupsRequest);

                    /** ListInstancesInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstancesInstanceGroupsRequest instanceGroup. */
                    public instanceGroup: string;

                    /** ListInstancesInstanceGroupsRequest instanceGroupsListInstancesRequestResource. */
                    public instanceGroupsListInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupsListInstancesRequest|null);

                    /** ListInstancesInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstancesInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstancesInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstancesInstanceGroupsRequest project. */
                    public project: string;

                    /** ListInstancesInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstancesInstanceGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstancesInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstancesInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInstancesInstanceGroupsRequest): google.cloud.compute.v1.ListInstancesInstanceGroupsRequest;

                    /**
                     * Encodes the specified ListInstancesInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInstancesInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstancesInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInstancesInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstancesInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInstancesInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstancesInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInstancesInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstancesInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstancesInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInstancesInstanceGroupsRequest;

                    /**
                     * Decodes a ListInstancesInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstancesInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInstancesInstanceGroupsRequest;

                    /**
                     * Verifies a ListInstancesInstanceGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstancesInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstancesInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInstancesInstanceGroupsRequest;

                    /**
                     * Creates a plain object from a ListInstancesInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInstancesInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInstancesInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstancesInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstancesInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstancesRegionInstanceGroupsRequest. */
                interface IListInstancesRegionInstanceGroupsRequest {

                    /** ListInstancesRegionInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstancesRegionInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest project */
                    project?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest region */
                    region?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest regionInstanceGroupsListInstancesRequestResource */
                    regionInstanceGroupsListInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupsListInstancesRequest|null);

                    /** ListInstancesRegionInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInstancesRegionInstanceGroupsRequest. */
                class ListInstancesRegionInstanceGroupsRequest implements IListInstancesRegionInstanceGroupsRequest {

                    /**
                     * Constructs a new ListInstancesRegionInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInstancesRegionInstanceGroupsRequest);

                    /** ListInstancesRegionInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest instanceGroup. */
                    public instanceGroup: string;

                    /** ListInstancesRegionInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstancesRegionInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest project. */
                    public project: string;

                    /** ListInstancesRegionInstanceGroupsRequest region. */
                    public region: string;

                    /** ListInstancesRegionInstanceGroupsRequest regionInstanceGroupsListInstancesRequestResource. */
                    public regionInstanceGroupsListInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupsListInstancesRequest|null);

                    /** ListInstancesRegionInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInstancesRegionInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstancesRegionInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInstancesRegionInstanceGroupsRequest): google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest;

                    /**
                     * Encodes the specified ListInstancesRegionInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstancesRegionInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInstancesRegionInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstancesRegionInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstancesRegionInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInstancesRegionInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstancesRegionInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstancesRegionInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest;

                    /**
                     * Decodes a ListInstancesRegionInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstancesRegionInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest;

                    /**
                     * Verifies a ListInstancesRegionInstanceGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstancesRegionInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstancesRegionInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest;

                    /**
                     * Creates a plain object from a ListInstancesRegionInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInstancesRegionInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstancesRegionInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstancesRegionInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstancesRequest. */
                interface IListInstancesRequest {

                    /** ListInstancesRequest filter */
                    filter?: (string|null);

                    /** ListInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstancesRequest project */
                    project?: (string|null);

                    /** ListInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstancesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstancesRequest. */
                class ListInstancesRequest implements IListInstancesRequest {

                    /**
                     * Constructs a new ListInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInstancesRequest);

                    /** ListInstancesRequest filter. */
                    public filter?: (string|null);

                    /** ListInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstancesRequest project. */
                    public project: string;

                    /** ListInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstancesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInstancesRequest): google.cloud.compute.v1.ListInstancesRequest;

                    /**
                     * Encodes the specified ListInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInstancesRequest.verify|verify} messages.
                     * @param message ListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInstancesRequest.verify|verify} messages.
                     * @param message ListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInstancesRequest;

                    /**
                     * Decodes a ListInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInstancesRequest;

                    /**
                     * Verifies a ListInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInstancesRequest;

                    /**
                     * Creates a plain object from a ListInstancesRequest message. Also converts values to other types if specified.
                     * @param message ListInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstantSnapshotsRequest. */
                interface IListInstantSnapshotsRequest {

                    /** ListInstantSnapshotsRequest filter */
                    filter?: (string|null);

                    /** ListInstantSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstantSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstantSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstantSnapshotsRequest project */
                    project?: (string|null);

                    /** ListInstantSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstantSnapshotsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstantSnapshotsRequest. */
                class ListInstantSnapshotsRequest implements IListInstantSnapshotsRequest {

                    /**
                     * Constructs a new ListInstantSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInstantSnapshotsRequest);

                    /** ListInstantSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstantSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstantSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstantSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstantSnapshotsRequest project. */
                    public project: string;

                    /** ListInstantSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstantSnapshotsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstantSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstantSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInstantSnapshotsRequest): google.cloud.compute.v1.ListInstantSnapshotsRequest;

                    /**
                     * Encodes the specified ListInstantSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInstantSnapshotsRequest.verify|verify} messages.
                     * @param message ListInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstantSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInstantSnapshotsRequest.verify|verify} messages.
                     * @param message ListInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstantSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInstantSnapshotsRequest;

                    /**
                     * Decodes a ListInstantSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInstantSnapshotsRequest;

                    /**
                     * Verifies a ListInstantSnapshotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstantSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstantSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInstantSnapshotsRequest;

                    /**
                     * Creates a plain object from a ListInstantSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message ListInstantSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInstantSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstantSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstantSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectAttachmentGroupsRequest. */
                interface IListInterconnectAttachmentGroupsRequest {

                    /** ListInterconnectAttachmentGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectAttachmentGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest project */
                    project?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectAttachmentGroupsRequest. */
                class ListInterconnectAttachmentGroupsRequest implements IListInterconnectAttachmentGroupsRequest {

                    /**
                     * Constructs a new ListInterconnectAttachmentGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInterconnectAttachmentGroupsRequest);

                    /** ListInterconnectAttachmentGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectAttachmentGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest project. */
                    public project: string;

                    /** ListInterconnectAttachmentGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectAttachmentGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectAttachmentGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInterconnectAttachmentGroupsRequest): google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest;

                    /**
                     * Encodes the specified ListInterconnectAttachmentGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest.verify|verify} messages.
                     * @param message ListInterconnectAttachmentGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInterconnectAttachmentGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectAttachmentGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest.verify|verify} messages.
                     * @param message ListInterconnectAttachmentGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInterconnectAttachmentGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectAttachmentGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectAttachmentGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest;

                    /**
                     * Decodes a ListInterconnectAttachmentGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectAttachmentGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest;

                    /**
                     * Verifies a ListInterconnectAttachmentGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectAttachmentGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectAttachmentGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectAttachmentGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectAttachmentGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectAttachmentGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectAttachmentGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectAttachmentsRequest. */
                interface IListInterconnectAttachmentsRequest {

                    /** ListInterconnectAttachmentsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectAttachmentsRequest project */
                    project?: (string|null);

                    /** ListInterconnectAttachmentsRequest region */
                    region?: (string|null);

                    /** ListInterconnectAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectAttachmentsRequest. */
                class ListInterconnectAttachmentsRequest implements IListInterconnectAttachmentsRequest {

                    /**
                     * Constructs a new ListInterconnectAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInterconnectAttachmentsRequest);

                    /** ListInterconnectAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectAttachmentsRequest project. */
                    public project: string;

                    /** ListInterconnectAttachmentsRequest region. */
                    public region: string;

                    /** ListInterconnectAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInterconnectAttachmentsRequest): google.cloud.compute.v1.ListInterconnectAttachmentsRequest;

                    /**
                     * Encodes the specified ListInterconnectAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectAttachmentsRequest.verify|verify} messages.
                     * @param message ListInterconnectAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInterconnectAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectAttachmentsRequest.verify|verify} messages.
                     * @param message ListInterconnectAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInterconnectAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInterconnectAttachmentsRequest;

                    /**
                     * Decodes a ListInterconnectAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInterconnectAttachmentsRequest;

                    /**
                     * Verifies a ListInterconnectAttachmentsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInterconnectAttachmentsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInterconnectAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectGroupsRequest. */
                interface IListInterconnectGroupsRequest {

                    /** ListInterconnectGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectGroupsRequest project */
                    project?: (string|null);

                    /** ListInterconnectGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectGroupsRequest. */
                class ListInterconnectGroupsRequest implements IListInterconnectGroupsRequest {

                    /**
                     * Constructs a new ListInterconnectGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInterconnectGroupsRequest);

                    /** ListInterconnectGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectGroupsRequest project. */
                    public project: string;

                    /** ListInterconnectGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInterconnectGroupsRequest): google.cloud.compute.v1.ListInterconnectGroupsRequest;

                    /**
                     * Encodes the specified ListInterconnectGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectGroupsRequest.verify|verify} messages.
                     * @param message ListInterconnectGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInterconnectGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectGroupsRequest.verify|verify} messages.
                     * @param message ListInterconnectGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInterconnectGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInterconnectGroupsRequest;

                    /**
                     * Decodes a ListInterconnectGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInterconnectGroupsRequest;

                    /**
                     * Verifies a ListInterconnectGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInterconnectGroupsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInterconnectGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectLocationsRequest. */
                interface IListInterconnectLocationsRequest {

                    /** ListInterconnectLocationsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectLocationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectLocationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectLocationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectLocationsRequest project */
                    project?: (string|null);

                    /** ListInterconnectLocationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectLocationsRequest. */
                class ListInterconnectLocationsRequest implements IListInterconnectLocationsRequest {

                    /**
                     * Constructs a new ListInterconnectLocationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInterconnectLocationsRequest);

                    /** ListInterconnectLocationsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectLocationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectLocationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectLocationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectLocationsRequest project. */
                    public project: string;

                    /** ListInterconnectLocationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectLocationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectLocationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInterconnectLocationsRequest): google.cloud.compute.v1.ListInterconnectLocationsRequest;

                    /**
                     * Encodes the specified ListInterconnectLocationsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectLocationsRequest.verify|verify} messages.
                     * @param message ListInterconnectLocationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInterconnectLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectLocationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectLocationsRequest.verify|verify} messages.
                     * @param message ListInterconnectLocationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInterconnectLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectLocationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectLocationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInterconnectLocationsRequest;

                    /**
                     * Decodes a ListInterconnectLocationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectLocationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInterconnectLocationsRequest;

                    /**
                     * Verifies a ListInterconnectLocationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectLocationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectLocationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInterconnectLocationsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectLocationsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectLocationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInterconnectLocationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectLocationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectLocationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectRemoteLocationsRequest. */
                interface IListInterconnectRemoteLocationsRequest {

                    /** ListInterconnectRemoteLocationsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectRemoteLocationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest project */
                    project?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectRemoteLocationsRequest. */
                class ListInterconnectRemoteLocationsRequest implements IListInterconnectRemoteLocationsRequest {

                    /**
                     * Constructs a new ListInterconnectRemoteLocationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInterconnectRemoteLocationsRequest);

                    /** ListInterconnectRemoteLocationsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectRemoteLocationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest project. */
                    public project: string;

                    /** ListInterconnectRemoteLocationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectRemoteLocationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectRemoteLocationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInterconnectRemoteLocationsRequest): google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest;

                    /**
                     * Encodes the specified ListInterconnectRemoteLocationsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest.verify|verify} messages.
                     * @param message ListInterconnectRemoteLocationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInterconnectRemoteLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectRemoteLocationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest.verify|verify} messages.
                     * @param message ListInterconnectRemoteLocationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInterconnectRemoteLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectRemoteLocationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectRemoteLocationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest;

                    /**
                     * Decodes a ListInterconnectRemoteLocationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectRemoteLocationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest;

                    /**
                     * Verifies a ListInterconnectRemoteLocationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectRemoteLocationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectRemoteLocationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectRemoteLocationsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectRemoteLocationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectRemoteLocationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectRemoteLocationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectsRequest. */
                interface IListInterconnectsRequest {

                    /** ListInterconnectsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectsRequest project */
                    project?: (string|null);

                    /** ListInterconnectsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectsRequest. */
                class ListInterconnectsRequest implements IListInterconnectsRequest {

                    /**
                     * Constructs a new ListInterconnectsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListInterconnectsRequest);

                    /** ListInterconnectsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectsRequest project. */
                    public project: string;

                    /** ListInterconnectsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListInterconnectsRequest): google.cloud.compute.v1.ListInterconnectsRequest;

                    /**
                     * Encodes the specified ListInterconnectsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectsRequest.verify|verify} messages.
                     * @param message ListInterconnectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListInterconnectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListInterconnectsRequest.verify|verify} messages.
                     * @param message ListInterconnectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListInterconnectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListInterconnectsRequest;

                    /**
                     * Decodes a ListInterconnectsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListInterconnectsRequest;

                    /**
                     * Verifies a ListInterconnectsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListInterconnectsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListInterconnectsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListLicensesRequest. */
                interface IListLicensesRequest {

                    /** ListLicensesRequest filter */
                    filter?: (string|null);

                    /** ListLicensesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListLicensesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListLicensesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListLicensesRequest project */
                    project?: (string|null);

                    /** ListLicensesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListLicensesRequest. */
                class ListLicensesRequest implements IListLicensesRequest {

                    /**
                     * Constructs a new ListLicensesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListLicensesRequest);

                    /** ListLicensesRequest filter. */
                    public filter?: (string|null);

                    /** ListLicensesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListLicensesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListLicensesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListLicensesRequest project. */
                    public project: string;

                    /** ListLicensesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListLicensesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListLicensesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListLicensesRequest): google.cloud.compute.v1.ListLicensesRequest;

                    /**
                     * Encodes the specified ListLicensesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListLicensesRequest.verify|verify} messages.
                     * @param message ListLicensesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListLicensesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListLicensesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListLicensesRequest.verify|verify} messages.
                     * @param message ListLicensesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListLicensesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListLicensesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListLicensesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListLicensesRequest;

                    /**
                     * Decodes a ListLicensesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListLicensesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListLicensesRequest;

                    /**
                     * Verifies a ListLicensesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListLicensesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListLicensesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListLicensesRequest;

                    /**
                     * Creates a plain object from a ListLicensesRequest message. Also converts values to other types if specified.
                     * @param message ListLicensesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListLicensesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListLicensesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListLicensesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListMachineImagesRequest. */
                interface IListMachineImagesRequest {

                    /** ListMachineImagesRequest filter */
                    filter?: (string|null);

                    /** ListMachineImagesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListMachineImagesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListMachineImagesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListMachineImagesRequest project */
                    project?: (string|null);

                    /** ListMachineImagesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListMachineImagesRequest. */
                class ListMachineImagesRequest implements IListMachineImagesRequest {

                    /**
                     * Constructs a new ListMachineImagesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListMachineImagesRequest);

                    /** ListMachineImagesRequest filter. */
                    public filter?: (string|null);

                    /** ListMachineImagesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListMachineImagesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListMachineImagesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListMachineImagesRequest project. */
                    public project: string;

                    /** ListMachineImagesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListMachineImagesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListMachineImagesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListMachineImagesRequest): google.cloud.compute.v1.ListMachineImagesRequest;

                    /**
                     * Encodes the specified ListMachineImagesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListMachineImagesRequest.verify|verify} messages.
                     * @param message ListMachineImagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListMachineImagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListMachineImagesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListMachineImagesRequest.verify|verify} messages.
                     * @param message ListMachineImagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListMachineImagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListMachineImagesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListMachineImagesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListMachineImagesRequest;

                    /**
                     * Decodes a ListMachineImagesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListMachineImagesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListMachineImagesRequest;

                    /**
                     * Verifies a ListMachineImagesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListMachineImagesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListMachineImagesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListMachineImagesRequest;

                    /**
                     * Creates a plain object from a ListMachineImagesRequest message. Also converts values to other types if specified.
                     * @param message ListMachineImagesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListMachineImagesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListMachineImagesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListMachineImagesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListMachineTypesRequest. */
                interface IListMachineTypesRequest {

                    /** ListMachineTypesRequest filter */
                    filter?: (string|null);

                    /** ListMachineTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListMachineTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListMachineTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListMachineTypesRequest project */
                    project?: (string|null);

                    /** ListMachineTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListMachineTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListMachineTypesRequest. */
                class ListMachineTypesRequest implements IListMachineTypesRequest {

                    /**
                     * Constructs a new ListMachineTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListMachineTypesRequest);

                    /** ListMachineTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListMachineTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListMachineTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListMachineTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListMachineTypesRequest project. */
                    public project: string;

                    /** ListMachineTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListMachineTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListMachineTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListMachineTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListMachineTypesRequest): google.cloud.compute.v1.ListMachineTypesRequest;

                    /**
                     * Encodes the specified ListMachineTypesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListMachineTypesRequest.verify|verify} messages.
                     * @param message ListMachineTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListMachineTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListMachineTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListMachineTypesRequest.verify|verify} messages.
                     * @param message ListMachineTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListMachineTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListMachineTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListMachineTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListMachineTypesRequest;

                    /**
                     * Decodes a ListMachineTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListMachineTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListMachineTypesRequest;

                    /**
                     * Verifies a ListMachineTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListMachineTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListMachineTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListMachineTypesRequest;

                    /**
                     * Creates a plain object from a ListMachineTypesRequest message. Also converts values to other types if specified.
                     * @param message ListMachineTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListMachineTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListMachineTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListMachineTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListManagedInstancesInstanceGroupManagersRequest. */
                interface IListManagedInstancesInstanceGroupManagersRequest {

                    /** ListManagedInstancesInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListManagedInstancesInstanceGroupManagersRequest. */
                class ListManagedInstancesInstanceGroupManagersRequest implements IListManagedInstancesInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListManagedInstancesInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListManagedInstancesInstanceGroupManagersRequest);

                    /** ListManagedInstancesInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListManagedInstancesInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListManagedInstancesInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListManagedInstancesInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListManagedInstancesInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListManagedInstancesInstanceGroupManagersRequest): google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListManagedInstancesInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListManagedInstancesInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListManagedInstancesInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListManagedInstancesInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListManagedInstancesInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListManagedInstancesInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListManagedInstancesInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListManagedInstancesInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListManagedInstancesInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListManagedInstancesInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListManagedInstancesInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListManagedInstancesInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListManagedInstancesInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListManagedInstancesInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListManagedInstancesInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListManagedInstancesInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListManagedInstancesInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListManagedInstancesRegionInstanceGroupManagersRequest. */
                interface IListManagedInstancesRegionInstanceGroupManagersRequest {

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest region */
                    region?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListManagedInstancesRegionInstanceGroupManagersRequest. */
                class ListManagedInstancesRegionInstanceGroupManagersRequest implements IListManagedInstancesRegionInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListManagedInstancesRegionInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListManagedInstancesRegionInstanceGroupManagersRequest);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest region. */
                    public region: string;

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListManagedInstancesRegionInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListManagedInstancesRegionInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListManagedInstancesRegionInstanceGroupManagersRequest): google.cloud.compute.v1.ListManagedInstancesRegionInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListManagedInstancesRegionInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListManagedInstancesRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListManagedInstancesRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListManagedInstancesRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListManagedInstancesRegionInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListManagedInstancesRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListManagedInstancesRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListManagedInstancesRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListManagedInstancesRegionInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListManagedInstancesRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListManagedInstancesRegionInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListManagedInstancesRegionInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListManagedInstancesRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListManagedInstancesRegionInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListManagedInstancesRegionInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListManagedInstancesRegionInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListManagedInstancesRegionInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListManagedInstancesRegionInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListManagedInstancesRegionInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListManagedInstancesRegionInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListManagedInstancesRegionInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListManagedInstancesRegionInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListManagedInstancesRegionInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkAttachmentsRequest. */
                interface IListNetworkAttachmentsRequest {

                    /** ListNetworkAttachmentsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkAttachmentsRequest project */
                    project?: (string|null);

                    /** ListNetworkAttachmentsRequest region */
                    region?: (string|null);

                    /** ListNetworkAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkAttachmentsRequest. */
                class ListNetworkAttachmentsRequest implements IListNetworkAttachmentsRequest {

                    /**
                     * Constructs a new ListNetworkAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNetworkAttachmentsRequest);

                    /** ListNetworkAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkAttachmentsRequest project. */
                    public project: string;

                    /** ListNetworkAttachmentsRequest region. */
                    public region: string;

                    /** ListNetworkAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNetworkAttachmentsRequest): google.cloud.compute.v1.ListNetworkAttachmentsRequest;

                    /**
                     * Encodes the specified ListNetworkAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNetworkAttachmentsRequest.verify|verify} messages.
                     * @param message ListNetworkAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNetworkAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNetworkAttachmentsRequest.verify|verify} messages.
                     * @param message ListNetworkAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNetworkAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNetworkAttachmentsRequest;

                    /**
                     * Decodes a ListNetworkAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNetworkAttachmentsRequest;

                    /**
                     * Verifies a ListNetworkAttachmentsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNetworkAttachmentsRequest;

                    /**
                     * Creates a plain object from a ListNetworkAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNetworkAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkEndpointGroupsRequest. */
                interface IListNetworkEndpointGroupsRequest {

                    /** ListNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNetworkEndpointGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNetworkEndpointGroupsRequest. */
                class ListNetworkEndpointGroupsRequest implements IListNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNetworkEndpointGroupsRequest);

                    /** ListNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNetworkEndpointGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNetworkEndpointGroupsRequest): google.cloud.compute.v1.ListNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest. */
                interface IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest {

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest. */
                class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest implements IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest): google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkEndpointsNetworkEndpointGroupsRequest. */
                interface IListNetworkEndpointsNetworkEndpointGroupsRequest {

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest networkEndpointGroupsListEndpointsRequestResource */
                    networkEndpointGroupsListEndpointsRequestResource?: (google.cloud.compute.v1.INetworkEndpointGroupsListEndpointsRequest|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNetworkEndpointsNetworkEndpointGroupsRequest. */
                class ListNetworkEndpointsNetworkEndpointGroupsRequest implements IListNetworkEndpointsNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListNetworkEndpointsNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNetworkEndpointsNetworkEndpointGroupsRequest);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest networkEndpointGroupsListEndpointsRequestResource. */
                    public networkEndpointGroupsListEndpointsRequestResource?: (google.cloud.compute.v1.INetworkEndpointGroupsListEndpointsRequest|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNetworkEndpointsNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkEndpointsNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNetworkEndpointsNetworkEndpointGroupsRequest): google.cloud.compute.v1.ListNetworkEndpointsNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListNetworkEndpointsNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNetworkEndpointsNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNetworkEndpointsNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkEndpointsNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNetworkEndpointsNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNetworkEndpointsNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkEndpointsNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkEndpointsNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNetworkEndpointsNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListNetworkEndpointsNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkEndpointsNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNetworkEndpointsNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListNetworkEndpointsNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkEndpointsNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkEndpointsNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNetworkEndpointsNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListNetworkEndpointsNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkEndpointsNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNetworkEndpointsNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkEndpointsNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkEndpointsNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest. */
                interface IListNetworkEndpointsRegionNetworkEndpointGroupsRequest {

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest region */
                    region?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest. */
                class ListNetworkEndpointsRegionNetworkEndpointGroupsRequest implements IListNetworkEndpointsRegionNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListNetworkEndpointsRegionNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest region. */
                    public region: string;

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkEndpointsRegionNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkEndpointsRegionNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest): google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkEndpointsRegionNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkFirewallPoliciesRequest. */
                interface IListNetworkFirewallPoliciesRequest {

                    /** ListNetworkFirewallPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkFirewallPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest project */
                    project?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkFirewallPoliciesRequest. */
                class ListNetworkFirewallPoliciesRequest implements IListNetworkFirewallPoliciesRequest {

                    /**
                     * Constructs a new ListNetworkFirewallPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNetworkFirewallPoliciesRequest);

                    /** ListNetworkFirewallPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkFirewallPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest project. */
                    public project: string;

                    /** ListNetworkFirewallPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkFirewallPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkFirewallPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNetworkFirewallPoliciesRequest): google.cloud.compute.v1.ListNetworkFirewallPoliciesRequest;

                    /**
                     * Encodes the specified ListNetworkFirewallPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkFirewallPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkFirewallPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNetworkFirewallPoliciesRequest;

                    /**
                     * Decodes a ListNetworkFirewallPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNetworkFirewallPoliciesRequest;

                    /**
                     * Verifies a ListNetworkFirewallPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkFirewallPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkFirewallPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNetworkFirewallPoliciesRequest;

                    /**
                     * Creates a plain object from a ListNetworkFirewallPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkFirewallPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNetworkFirewallPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkFirewallPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkFirewallPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkProfilesRequest. */
                interface IListNetworkProfilesRequest {

                    /** ListNetworkProfilesRequest filter */
                    filter?: (string|null);

                    /** ListNetworkProfilesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkProfilesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkProfilesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkProfilesRequest project */
                    project?: (string|null);

                    /** ListNetworkProfilesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkProfilesRequest. */
                class ListNetworkProfilesRequest implements IListNetworkProfilesRequest {

                    /**
                     * Constructs a new ListNetworkProfilesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNetworkProfilesRequest);

                    /** ListNetworkProfilesRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkProfilesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkProfilesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkProfilesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkProfilesRequest project. */
                    public project: string;

                    /** ListNetworkProfilesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkProfilesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkProfilesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNetworkProfilesRequest): google.cloud.compute.v1.ListNetworkProfilesRequest;

                    /**
                     * Encodes the specified ListNetworkProfilesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNetworkProfilesRequest.verify|verify} messages.
                     * @param message ListNetworkProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNetworkProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkProfilesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNetworkProfilesRequest.verify|verify} messages.
                     * @param message ListNetworkProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNetworkProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkProfilesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNetworkProfilesRequest;

                    /**
                     * Decodes a ListNetworkProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkProfilesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNetworkProfilesRequest;

                    /**
                     * Verifies a ListNetworkProfilesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNetworkProfilesRequest;

                    /**
                     * Creates a plain object from a ListNetworkProfilesRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkProfilesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNetworkProfilesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkProfilesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkProfilesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworksRequest. */
                interface IListNetworksRequest {

                    /** ListNetworksRequest filter */
                    filter?: (string|null);

                    /** ListNetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworksRequest project */
                    project?: (string|null);

                    /** ListNetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworksRequest. */
                class ListNetworksRequest implements IListNetworksRequest {

                    /**
                     * Constructs a new ListNetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNetworksRequest);

                    /** ListNetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworksRequest project. */
                    public project: string;

                    /** ListNetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNetworksRequest): google.cloud.compute.v1.ListNetworksRequest;

                    /**
                     * Encodes the specified ListNetworksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNetworksRequest.verify|verify} messages.
                     * @param message ListNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNetworksRequest.verify|verify} messages.
                     * @param message ListNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNetworksRequest;

                    /**
                     * Decodes a ListNetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNetworksRequest;

                    /**
                     * Verifies a ListNetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNetworksRequest;

                    /**
                     * Creates a plain object from a ListNetworksRequest message. Also converts values to other types if specified.
                     * @param message ListNetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNodeGroupsRequest. */
                interface IListNodeGroupsRequest {

                    /** ListNodeGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNodeGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNodeGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNodeGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNodeGroupsRequest project */
                    project?: (string|null);

                    /** ListNodeGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNodeGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNodeGroupsRequest. */
                class ListNodeGroupsRequest implements IListNodeGroupsRequest {

                    /**
                     * Constructs a new ListNodeGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNodeGroupsRequest);

                    /** ListNodeGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNodeGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNodeGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNodeGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNodeGroupsRequest project. */
                    public project: string;

                    /** ListNodeGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNodeGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNodeGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNodeGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNodeGroupsRequest): google.cloud.compute.v1.ListNodeGroupsRequest;

                    /**
                     * Encodes the specified ListNodeGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNodeGroupsRequest.verify|verify} messages.
                     * @param message ListNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNodeGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNodeGroupsRequest.verify|verify} messages.
                     * @param message ListNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNodeGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNodeGroupsRequest;

                    /**
                     * Decodes a ListNodeGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNodeGroupsRequest;

                    /**
                     * Verifies a ListNodeGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNodeGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNodeGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNodeGroupsRequest;

                    /**
                     * Creates a plain object from a ListNodeGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNodeGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNodeGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNodeGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNodeGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNodeTemplatesRequest. */
                interface IListNodeTemplatesRequest {

                    /** ListNodeTemplatesRequest filter */
                    filter?: (string|null);

                    /** ListNodeTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNodeTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNodeTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNodeTemplatesRequest project */
                    project?: (string|null);

                    /** ListNodeTemplatesRequest region */
                    region?: (string|null);

                    /** ListNodeTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNodeTemplatesRequest. */
                class ListNodeTemplatesRequest implements IListNodeTemplatesRequest {

                    /**
                     * Constructs a new ListNodeTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNodeTemplatesRequest);

                    /** ListNodeTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** ListNodeTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNodeTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNodeTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNodeTemplatesRequest project. */
                    public project: string;

                    /** ListNodeTemplatesRequest region. */
                    public region: string;

                    /** ListNodeTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNodeTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNodeTemplatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNodeTemplatesRequest): google.cloud.compute.v1.ListNodeTemplatesRequest;

                    /**
                     * Encodes the specified ListNodeTemplatesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNodeTemplatesRequest.verify|verify} messages.
                     * @param message ListNodeTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNodeTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNodeTemplatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNodeTemplatesRequest.verify|verify} messages.
                     * @param message ListNodeTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNodeTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNodeTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNodeTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNodeTemplatesRequest;

                    /**
                     * Decodes a ListNodeTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNodeTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNodeTemplatesRequest;

                    /**
                     * Verifies a ListNodeTemplatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNodeTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNodeTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNodeTemplatesRequest;

                    /**
                     * Creates a plain object from a ListNodeTemplatesRequest message. Also converts values to other types if specified.
                     * @param message ListNodeTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNodeTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNodeTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNodeTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNodeTypesRequest. */
                interface IListNodeTypesRequest {

                    /** ListNodeTypesRequest filter */
                    filter?: (string|null);

                    /** ListNodeTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNodeTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNodeTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNodeTypesRequest project */
                    project?: (string|null);

                    /** ListNodeTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNodeTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNodeTypesRequest. */
                class ListNodeTypesRequest implements IListNodeTypesRequest {

                    /**
                     * Constructs a new ListNodeTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNodeTypesRequest);

                    /** ListNodeTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListNodeTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNodeTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNodeTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNodeTypesRequest project. */
                    public project: string;

                    /** ListNodeTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNodeTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNodeTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNodeTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNodeTypesRequest): google.cloud.compute.v1.ListNodeTypesRequest;

                    /**
                     * Encodes the specified ListNodeTypesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNodeTypesRequest.verify|verify} messages.
                     * @param message ListNodeTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNodeTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNodeTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNodeTypesRequest.verify|verify} messages.
                     * @param message ListNodeTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNodeTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNodeTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNodeTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNodeTypesRequest;

                    /**
                     * Decodes a ListNodeTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNodeTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNodeTypesRequest;

                    /**
                     * Verifies a ListNodeTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNodeTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNodeTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNodeTypesRequest;

                    /**
                     * Creates a plain object from a ListNodeTypesRequest message. Also converts values to other types if specified.
                     * @param message ListNodeTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNodeTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNodeTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNodeTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNodesNodeGroupsRequest. */
                interface IListNodesNodeGroupsRequest {

                    /** ListNodesNodeGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNodesNodeGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNodesNodeGroupsRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** ListNodesNodeGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNodesNodeGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNodesNodeGroupsRequest project */
                    project?: (string|null);

                    /** ListNodesNodeGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNodesNodeGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNodesNodeGroupsRequest. */
                class ListNodesNodeGroupsRequest implements IListNodesNodeGroupsRequest {

                    /**
                     * Constructs a new ListNodesNodeGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListNodesNodeGroupsRequest);

                    /** ListNodesNodeGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNodesNodeGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNodesNodeGroupsRequest nodeGroup. */
                    public nodeGroup: string;

                    /** ListNodesNodeGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNodesNodeGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNodesNodeGroupsRequest project. */
                    public project: string;

                    /** ListNodesNodeGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNodesNodeGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNodesNodeGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNodesNodeGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListNodesNodeGroupsRequest): google.cloud.compute.v1.ListNodesNodeGroupsRequest;

                    /**
                     * Encodes the specified ListNodesNodeGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListNodesNodeGroupsRequest.verify|verify} messages.
                     * @param message ListNodesNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListNodesNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNodesNodeGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListNodesNodeGroupsRequest.verify|verify} messages.
                     * @param message ListNodesNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListNodesNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNodesNodeGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNodesNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListNodesNodeGroupsRequest;

                    /**
                     * Decodes a ListNodesNodeGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNodesNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListNodesNodeGroupsRequest;

                    /**
                     * Verifies a ListNodesNodeGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNodesNodeGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNodesNodeGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListNodesNodeGroupsRequest;

                    /**
                     * Creates a plain object from a ListNodesNodeGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNodesNodeGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListNodesNodeGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNodesNodeGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNodesNodeGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListOrganizationSecurityPoliciesRequest. */
                interface IListOrganizationSecurityPoliciesRequest {

                    /** ListOrganizationSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListOrganizationSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest parentId */
                    parentId?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListOrganizationSecurityPoliciesRequest. */
                class ListOrganizationSecurityPoliciesRequest implements IListOrganizationSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListOrganizationSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListOrganizationSecurityPoliciesRequest);

                    /** ListOrganizationSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListOrganizationSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest parentId. */
                    public parentId?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListOrganizationSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListOrganizationSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListOrganizationSecurityPoliciesRequest): google.cloud.compute.v1.ListOrganizationSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListOrganizationSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListOrganizationSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListOrganizationSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListOrganizationSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListOrganizationSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListOrganizationSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListOrganizationSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListOrganizationSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListOrganizationSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListOrganizationSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListOrganizationSecurityPoliciesRequest;

                    /**
                     * Decodes a ListOrganizationSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListOrganizationSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListOrganizationSecurityPoliciesRequest;

                    /**
                     * Verifies a ListOrganizationSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListOrganizationSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListOrganizationSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListOrganizationSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListOrganizationSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListOrganizationSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListOrganizationSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListOrganizationSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListOrganizationSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPacketMirroringsRequest. */
                interface IListPacketMirroringsRequest {

                    /** ListPacketMirroringsRequest filter */
                    filter?: (string|null);

                    /** ListPacketMirroringsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPacketMirroringsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPacketMirroringsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPacketMirroringsRequest project */
                    project?: (string|null);

                    /** ListPacketMirroringsRequest region */
                    region?: (string|null);

                    /** ListPacketMirroringsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPacketMirroringsRequest. */
                class ListPacketMirroringsRequest implements IListPacketMirroringsRequest {

                    /**
                     * Constructs a new ListPacketMirroringsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPacketMirroringsRequest);

                    /** ListPacketMirroringsRequest filter. */
                    public filter?: (string|null);

                    /** ListPacketMirroringsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPacketMirroringsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPacketMirroringsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPacketMirroringsRequest project. */
                    public project: string;

                    /** ListPacketMirroringsRequest region. */
                    public region: string;

                    /** ListPacketMirroringsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPacketMirroringsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPacketMirroringsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPacketMirroringsRequest): google.cloud.compute.v1.ListPacketMirroringsRequest;

                    /**
                     * Encodes the specified ListPacketMirroringsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPacketMirroringsRequest.verify|verify} messages.
                     * @param message ListPacketMirroringsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPacketMirroringsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPacketMirroringsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPacketMirroringsRequest.verify|verify} messages.
                     * @param message ListPacketMirroringsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPacketMirroringsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPacketMirroringsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPacketMirroringsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPacketMirroringsRequest;

                    /**
                     * Decodes a ListPacketMirroringsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPacketMirroringsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPacketMirroringsRequest;

                    /**
                     * Verifies a ListPacketMirroringsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPacketMirroringsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPacketMirroringsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPacketMirroringsRequest;

                    /**
                     * Creates a plain object from a ListPacketMirroringsRequest message. Also converts values to other types if specified.
                     * @param message ListPacketMirroringsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPacketMirroringsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPacketMirroringsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPacketMirroringsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPeeringRoutesNetworksRequest. */
                interface IListPeeringRoutesNetworksRequest {

                    /** ListPeeringRoutesNetworksRequest direction */
                    direction?: (string|null);

                    /** ListPeeringRoutesNetworksRequest filter */
                    filter?: (string|null);

                    /** ListPeeringRoutesNetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPeeringRoutesNetworksRequest network */
                    network?: (string|null);

                    /** ListPeeringRoutesNetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPeeringRoutesNetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPeeringRoutesNetworksRequest peeringName */
                    peeringName?: (string|null);

                    /** ListPeeringRoutesNetworksRequest project */
                    project?: (string|null);

                    /** ListPeeringRoutesNetworksRequest region */
                    region?: (string|null);

                    /** ListPeeringRoutesNetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPeeringRoutesNetworksRequest. */
                class ListPeeringRoutesNetworksRequest implements IListPeeringRoutesNetworksRequest {

                    /**
                     * Constructs a new ListPeeringRoutesNetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPeeringRoutesNetworksRequest);

                    /** ListPeeringRoutesNetworksRequest direction. */
                    public direction?: (string|null);

                    /** ListPeeringRoutesNetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListPeeringRoutesNetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPeeringRoutesNetworksRequest network. */
                    public network: string;

                    /** ListPeeringRoutesNetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPeeringRoutesNetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPeeringRoutesNetworksRequest peeringName. */
                    public peeringName?: (string|null);

                    /** ListPeeringRoutesNetworksRequest project. */
                    public project: string;

                    /** ListPeeringRoutesNetworksRequest region. */
                    public region?: (string|null);

                    /** ListPeeringRoutesNetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPeeringRoutesNetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPeeringRoutesNetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPeeringRoutesNetworksRequest): google.cloud.compute.v1.ListPeeringRoutesNetworksRequest;

                    /**
                     * Encodes the specified ListPeeringRoutesNetworksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPeeringRoutesNetworksRequest.verify|verify} messages.
                     * @param message ListPeeringRoutesNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPeeringRoutesNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPeeringRoutesNetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPeeringRoutesNetworksRequest.verify|verify} messages.
                     * @param message ListPeeringRoutesNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPeeringRoutesNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPeeringRoutesNetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPeeringRoutesNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPeeringRoutesNetworksRequest;

                    /**
                     * Decodes a ListPeeringRoutesNetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPeeringRoutesNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPeeringRoutesNetworksRequest;

                    /**
                     * Verifies a ListPeeringRoutesNetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPeeringRoutesNetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPeeringRoutesNetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPeeringRoutesNetworksRequest;

                    /**
                     * Creates a plain object from a ListPeeringRoutesNetworksRequest message. Also converts values to other types if specified.
                     * @param message ListPeeringRoutesNetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPeeringRoutesNetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPeeringRoutesNetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPeeringRoutesNetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListPeeringRoutesNetworksRequest {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        INCOMING = 338552870,
                        OUTGOING = 307438444
                    }
                }

                /** Properties of a ListPerInstanceConfigsInstanceGroupManagersRequest. */
                interface IListPerInstanceConfigsInstanceGroupManagersRequest {

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListPerInstanceConfigsInstanceGroupManagersRequest. */
                class ListPerInstanceConfigsInstanceGroupManagersRequest implements IListPerInstanceConfigsInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListPerInstanceConfigsInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPerInstanceConfigsInstanceGroupManagersRequest);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListPerInstanceConfigsInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPerInstanceConfigsInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPerInstanceConfigsInstanceGroupManagersRequest): google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListPerInstanceConfigsInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListPerInstanceConfigsInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPerInstanceConfigsInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPerInstanceConfigsInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListPerInstanceConfigsInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPerInstanceConfigsInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPerInstanceConfigsInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPerInstanceConfigsInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListPerInstanceConfigsInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPerInstanceConfigsInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListPerInstanceConfigsInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPerInstanceConfigsInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPerInstanceConfigsInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListPerInstanceConfigsInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListPerInstanceConfigsInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPerInstanceConfigsInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPerInstanceConfigsInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPerInstanceConfigsRegionInstanceGroupManagersRequest. */
                interface IListPerInstanceConfigsRegionInstanceGroupManagersRequest {

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest region */
                    region?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPerInstanceConfigsRegionInstanceGroupManagersRequest. */
                class ListPerInstanceConfigsRegionInstanceGroupManagersRequest implements IListPerInstanceConfigsRegionInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListPerInstanceConfigsRegionInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPerInstanceConfigsRegionInstanceGroupManagersRequest);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest region. */
                    public region: string;

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPerInstanceConfigsRegionInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPerInstanceConfigsRegionInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPerInstanceConfigsRegionInstanceGroupManagersRequest): google.cloud.compute.v1.ListPerInstanceConfigsRegionInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListPerInstanceConfigsRegionInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPerInstanceConfigsRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListPerInstanceConfigsRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPerInstanceConfigsRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPerInstanceConfigsRegionInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPerInstanceConfigsRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListPerInstanceConfigsRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPerInstanceConfigsRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPerInstanceConfigsRegionInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPerInstanceConfigsRegionInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPerInstanceConfigsRegionInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPerInstanceConfigsRegionInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPerInstanceConfigsRegionInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest. */
                interface IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest {

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest parentId */
                    parentId?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest. */
                class ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest implements IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest parentId. */
                    public parentId?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest): google.cloud.compute.v1.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest;

                    /**
                     * Decodes a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest;

                    /**
                     * Verifies a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPreconfiguredExpressionSetsSecurityPoliciesRequest. */
                interface IListPreconfiguredExpressionSetsSecurityPoliciesRequest {

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest project */
                    project?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPreconfiguredExpressionSetsSecurityPoliciesRequest. */
                class ListPreconfiguredExpressionSetsSecurityPoliciesRequest implements IListPreconfiguredExpressionSetsSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListPreconfiguredExpressionSetsSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPreconfiguredExpressionSetsSecurityPoliciesRequest);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest project. */
                    public project: string;

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPreconfiguredExpressionSetsSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPreconfiguredExpressionSetsSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPreconfiguredExpressionSetsSecurityPoliciesRequest): google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListPreconfiguredExpressionSetsSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListPreconfiguredExpressionSetsSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPreconfiguredExpressionSetsSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPreconfiguredExpressionSetsSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListPreconfiguredExpressionSetsSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPreconfiguredExpressionSetsSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest;

                    /**
                     * Decodes a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest;

                    /**
                     * Verifies a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPreconfiguredExpressionSetsSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPreviewFeaturesRequest. */
                interface IListPreviewFeaturesRequest {

                    /** ListPreviewFeaturesRequest filter */
                    filter?: (string|null);

                    /** ListPreviewFeaturesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPreviewFeaturesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPreviewFeaturesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPreviewFeaturesRequest project */
                    project?: (string|null);

                    /** ListPreviewFeaturesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPreviewFeaturesRequest. */
                class ListPreviewFeaturesRequest implements IListPreviewFeaturesRequest {

                    /**
                     * Constructs a new ListPreviewFeaturesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPreviewFeaturesRequest);

                    /** ListPreviewFeaturesRequest filter. */
                    public filter?: (string|null);

                    /** ListPreviewFeaturesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPreviewFeaturesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPreviewFeaturesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPreviewFeaturesRequest project. */
                    public project: string;

                    /** ListPreviewFeaturesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPreviewFeaturesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPreviewFeaturesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPreviewFeaturesRequest): google.cloud.compute.v1.ListPreviewFeaturesRequest;

                    /**
                     * Encodes the specified ListPreviewFeaturesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPreviewFeaturesRequest.verify|verify} messages.
                     * @param message ListPreviewFeaturesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPreviewFeaturesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPreviewFeaturesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPreviewFeaturesRequest.verify|verify} messages.
                     * @param message ListPreviewFeaturesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPreviewFeaturesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPreviewFeaturesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPreviewFeaturesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPreviewFeaturesRequest;

                    /**
                     * Decodes a ListPreviewFeaturesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPreviewFeaturesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPreviewFeaturesRequest;

                    /**
                     * Verifies a ListPreviewFeaturesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPreviewFeaturesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPreviewFeaturesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPreviewFeaturesRequest;

                    /**
                     * Creates a plain object from a ListPreviewFeaturesRequest message. Also converts values to other types if specified.
                     * @param message ListPreviewFeaturesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPreviewFeaturesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPreviewFeaturesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPreviewFeaturesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPublicAdvertisedPrefixesRequest. */
                interface IListPublicAdvertisedPrefixesRequest {

                    /** ListPublicAdvertisedPrefixesRequest filter */
                    filter?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPublicAdvertisedPrefixesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest project */
                    project?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPublicAdvertisedPrefixesRequest. */
                class ListPublicAdvertisedPrefixesRequest implements IListPublicAdvertisedPrefixesRequest {

                    /**
                     * Constructs a new ListPublicAdvertisedPrefixesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPublicAdvertisedPrefixesRequest);

                    /** ListPublicAdvertisedPrefixesRequest filter. */
                    public filter?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPublicAdvertisedPrefixesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest project. */
                    public project: string;

                    /** ListPublicAdvertisedPrefixesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPublicAdvertisedPrefixesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPublicAdvertisedPrefixesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPublicAdvertisedPrefixesRequest): google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest;

                    /**
                     * Encodes the specified ListPublicAdvertisedPrefixesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest.verify|verify} messages.
                     * @param message ListPublicAdvertisedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPublicAdvertisedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPublicAdvertisedPrefixesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest.verify|verify} messages.
                     * @param message ListPublicAdvertisedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPublicAdvertisedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPublicAdvertisedPrefixesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPublicAdvertisedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest;

                    /**
                     * Decodes a ListPublicAdvertisedPrefixesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPublicAdvertisedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest;

                    /**
                     * Verifies a ListPublicAdvertisedPrefixesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPublicAdvertisedPrefixesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPublicAdvertisedPrefixesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest;

                    /**
                     * Creates a plain object from a ListPublicAdvertisedPrefixesRequest message. Also converts values to other types if specified.
                     * @param message ListPublicAdvertisedPrefixesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPublicAdvertisedPrefixesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPublicAdvertisedPrefixesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPublicDelegatedPrefixesRequest. */
                interface IListPublicDelegatedPrefixesRequest {

                    /** ListPublicDelegatedPrefixesRequest filter */
                    filter?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPublicDelegatedPrefixesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest project */
                    project?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest region */
                    region?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPublicDelegatedPrefixesRequest. */
                class ListPublicDelegatedPrefixesRequest implements IListPublicDelegatedPrefixesRequest {

                    /**
                     * Constructs a new ListPublicDelegatedPrefixesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListPublicDelegatedPrefixesRequest);

                    /** ListPublicDelegatedPrefixesRequest filter. */
                    public filter?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPublicDelegatedPrefixesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest project. */
                    public project: string;

                    /** ListPublicDelegatedPrefixesRequest region. */
                    public region: string;

                    /** ListPublicDelegatedPrefixesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPublicDelegatedPrefixesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPublicDelegatedPrefixesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListPublicDelegatedPrefixesRequest): google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest;

                    /**
                     * Encodes the specified ListPublicDelegatedPrefixesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message ListPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPublicDelegatedPrefixesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message ListPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPublicDelegatedPrefixesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest;

                    /**
                     * Decodes a ListPublicDelegatedPrefixesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest;

                    /**
                     * Verifies a ListPublicDelegatedPrefixesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPublicDelegatedPrefixesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPublicDelegatedPrefixesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest;

                    /**
                     * Creates a plain object from a ListPublicDelegatedPrefixesRequest message. Also converts values to other types if specified.
                     * @param message ListPublicDelegatedPrefixesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPublicDelegatedPrefixesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPublicDelegatedPrefixesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReferrersInstancesRequest. */
                interface IListReferrersInstancesRequest {

                    /** ListReferrersInstancesRequest filter */
                    filter?: (string|null);

                    /** ListReferrersInstancesRequest instance */
                    instance?: (string|null);

                    /** ListReferrersInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReferrersInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReferrersInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReferrersInstancesRequest project */
                    project?: (string|null);

                    /** ListReferrersInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReferrersInstancesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReferrersInstancesRequest. */
                class ListReferrersInstancesRequest implements IListReferrersInstancesRequest {

                    /**
                     * Constructs a new ListReferrersInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListReferrersInstancesRequest);

                    /** ListReferrersInstancesRequest filter. */
                    public filter?: (string|null);

                    /** ListReferrersInstancesRequest instance. */
                    public instance: string;

                    /** ListReferrersInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReferrersInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReferrersInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReferrersInstancesRequest project. */
                    public project: string;

                    /** ListReferrersInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReferrersInstancesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReferrersInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReferrersInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListReferrersInstancesRequest): google.cloud.compute.v1.ListReferrersInstancesRequest;

                    /**
                     * Encodes the specified ListReferrersInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListReferrersInstancesRequest.verify|verify} messages.
                     * @param message ListReferrersInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListReferrersInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReferrersInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListReferrersInstancesRequest.verify|verify} messages.
                     * @param message ListReferrersInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListReferrersInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReferrersInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReferrersInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListReferrersInstancesRequest;

                    /**
                     * Decodes a ListReferrersInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReferrersInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListReferrersInstancesRequest;

                    /**
                     * Verifies a ListReferrersInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReferrersInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReferrersInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListReferrersInstancesRequest;

                    /**
                     * Creates a plain object from a ListReferrersInstancesRequest message. Also converts values to other types if specified.
                     * @param message ListReferrersInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListReferrersInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReferrersInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReferrersInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionAutoscalersRequest. */
                interface IListRegionAutoscalersRequest {

                    /** ListRegionAutoscalersRequest filter */
                    filter?: (string|null);

                    /** ListRegionAutoscalersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionAutoscalersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionAutoscalersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionAutoscalersRequest project */
                    project?: (string|null);

                    /** ListRegionAutoscalersRequest region */
                    region?: (string|null);

                    /** ListRegionAutoscalersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionAutoscalersRequest. */
                class ListRegionAutoscalersRequest implements IListRegionAutoscalersRequest {

                    /**
                     * Constructs a new ListRegionAutoscalersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionAutoscalersRequest);

                    /** ListRegionAutoscalersRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionAutoscalersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionAutoscalersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionAutoscalersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionAutoscalersRequest project. */
                    public project: string;

                    /** ListRegionAutoscalersRequest region. */
                    public region: string;

                    /** ListRegionAutoscalersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionAutoscalersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionAutoscalersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionAutoscalersRequest): google.cloud.compute.v1.ListRegionAutoscalersRequest;

                    /**
                     * Encodes the specified ListRegionAutoscalersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionAutoscalersRequest.verify|verify} messages.
                     * @param message ListRegionAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionAutoscalersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionAutoscalersRequest.verify|verify} messages.
                     * @param message ListRegionAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionAutoscalersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionAutoscalersRequest;

                    /**
                     * Decodes a ListRegionAutoscalersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionAutoscalersRequest;

                    /**
                     * Verifies a ListRegionAutoscalersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionAutoscalersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionAutoscalersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionAutoscalersRequest;

                    /**
                     * Creates a plain object from a ListRegionAutoscalersRequest message. Also converts values to other types if specified.
                     * @param message ListRegionAutoscalersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionAutoscalersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionAutoscalersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionAutoscalersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionBackendServicesRequest. */
                interface IListRegionBackendServicesRequest {

                    /** ListRegionBackendServicesRequest filter */
                    filter?: (string|null);

                    /** ListRegionBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionBackendServicesRequest project */
                    project?: (string|null);

                    /** ListRegionBackendServicesRequest region */
                    region?: (string|null);

                    /** ListRegionBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionBackendServicesRequest. */
                class ListRegionBackendServicesRequest implements IListRegionBackendServicesRequest {

                    /**
                     * Constructs a new ListRegionBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionBackendServicesRequest);

                    /** ListRegionBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionBackendServicesRequest project. */
                    public project: string;

                    /** ListRegionBackendServicesRequest region. */
                    public region: string;

                    /** ListRegionBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionBackendServicesRequest): google.cloud.compute.v1.ListRegionBackendServicesRequest;

                    /**
                     * Encodes the specified ListRegionBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionBackendServicesRequest.verify|verify} messages.
                     * @param message ListRegionBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionBackendServicesRequest.verify|verify} messages.
                     * @param message ListRegionBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionBackendServicesRequest;

                    /**
                     * Decodes a ListRegionBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionBackendServicesRequest;

                    /**
                     * Verifies a ListRegionBackendServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionBackendServicesRequest;

                    /**
                     * Creates a plain object from a ListRegionBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionBackendServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionCommitmentsRequest. */
                interface IListRegionCommitmentsRequest {

                    /** ListRegionCommitmentsRequest filter */
                    filter?: (string|null);

                    /** ListRegionCommitmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionCommitmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionCommitmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionCommitmentsRequest project */
                    project?: (string|null);

                    /** ListRegionCommitmentsRequest region */
                    region?: (string|null);

                    /** ListRegionCommitmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionCommitmentsRequest. */
                class ListRegionCommitmentsRequest implements IListRegionCommitmentsRequest {

                    /**
                     * Constructs a new ListRegionCommitmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionCommitmentsRequest);

                    /** ListRegionCommitmentsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionCommitmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionCommitmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionCommitmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionCommitmentsRequest project. */
                    public project: string;

                    /** ListRegionCommitmentsRequest region. */
                    public region: string;

                    /** ListRegionCommitmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionCommitmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionCommitmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionCommitmentsRequest): google.cloud.compute.v1.ListRegionCommitmentsRequest;

                    /**
                     * Encodes the specified ListRegionCommitmentsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionCommitmentsRequest.verify|verify} messages.
                     * @param message ListRegionCommitmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionCommitmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionCommitmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionCommitmentsRequest.verify|verify} messages.
                     * @param message ListRegionCommitmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionCommitmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionCommitmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionCommitmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionCommitmentsRequest;

                    /**
                     * Decodes a ListRegionCommitmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionCommitmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionCommitmentsRequest;

                    /**
                     * Verifies a ListRegionCommitmentsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionCommitmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionCommitmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionCommitmentsRequest;

                    /**
                     * Creates a plain object from a ListRegionCommitmentsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionCommitmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionCommitmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionCommitmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionCommitmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionCompositeHealthChecksRequest. */
                interface IListRegionCompositeHealthChecksRequest {

                    /** ListRegionCompositeHealthChecksRequest filter */
                    filter?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionCompositeHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest project */
                    project?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest region */
                    region?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionCompositeHealthChecksRequest. */
                class ListRegionCompositeHealthChecksRequest implements IListRegionCompositeHealthChecksRequest {

                    /**
                     * Constructs a new ListRegionCompositeHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionCompositeHealthChecksRequest);

                    /** ListRegionCompositeHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionCompositeHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest project. */
                    public project: string;

                    /** ListRegionCompositeHealthChecksRequest region. */
                    public region: string;

                    /** ListRegionCompositeHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionCompositeHealthChecksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionCompositeHealthChecksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionCompositeHealthChecksRequest): google.cloud.compute.v1.ListRegionCompositeHealthChecksRequest;

                    /**
                     * Encodes the specified ListRegionCompositeHealthChecksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionCompositeHealthChecksRequest.verify|verify} messages.
                     * @param message ListRegionCompositeHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionCompositeHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionCompositeHealthChecksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionCompositeHealthChecksRequest.verify|verify} messages.
                     * @param message ListRegionCompositeHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionCompositeHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionCompositeHealthChecksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionCompositeHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionCompositeHealthChecksRequest;

                    /**
                     * Decodes a ListRegionCompositeHealthChecksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionCompositeHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionCompositeHealthChecksRequest;

                    /**
                     * Verifies a ListRegionCompositeHealthChecksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionCompositeHealthChecksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionCompositeHealthChecksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionCompositeHealthChecksRequest;

                    /**
                     * Creates a plain object from a ListRegionCompositeHealthChecksRequest message. Also converts values to other types if specified.
                     * @param message ListRegionCompositeHealthChecksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionCompositeHealthChecksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionCompositeHealthChecksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionCompositeHealthChecksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionDiskTypesRequest. */
                interface IListRegionDiskTypesRequest {

                    /** ListRegionDiskTypesRequest filter */
                    filter?: (string|null);

                    /** ListRegionDiskTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionDiskTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionDiskTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionDiskTypesRequest project */
                    project?: (string|null);

                    /** ListRegionDiskTypesRequest region */
                    region?: (string|null);

                    /** ListRegionDiskTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionDiskTypesRequest. */
                class ListRegionDiskTypesRequest implements IListRegionDiskTypesRequest {

                    /**
                     * Constructs a new ListRegionDiskTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionDiskTypesRequest);

                    /** ListRegionDiskTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionDiskTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionDiskTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionDiskTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionDiskTypesRequest project. */
                    public project: string;

                    /** ListRegionDiskTypesRequest region. */
                    public region: string;

                    /** ListRegionDiskTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionDiskTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionDiskTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionDiskTypesRequest): google.cloud.compute.v1.ListRegionDiskTypesRequest;

                    /**
                     * Encodes the specified ListRegionDiskTypesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionDiskTypesRequest.verify|verify} messages.
                     * @param message ListRegionDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionDiskTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionDiskTypesRequest.verify|verify} messages.
                     * @param message ListRegionDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionDiskTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionDiskTypesRequest;

                    /**
                     * Decodes a ListRegionDiskTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionDiskTypesRequest;

                    /**
                     * Verifies a ListRegionDiskTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionDiskTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionDiskTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionDiskTypesRequest;

                    /**
                     * Creates a plain object from a ListRegionDiskTypesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionDiskTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionDiskTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionDiskTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionDiskTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionDisksRequest. */
                interface IListRegionDisksRequest {

                    /** ListRegionDisksRequest filter */
                    filter?: (string|null);

                    /** ListRegionDisksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionDisksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionDisksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionDisksRequest project */
                    project?: (string|null);

                    /** ListRegionDisksRequest region */
                    region?: (string|null);

                    /** ListRegionDisksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionDisksRequest. */
                class ListRegionDisksRequest implements IListRegionDisksRequest {

                    /**
                     * Constructs a new ListRegionDisksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionDisksRequest);

                    /** ListRegionDisksRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionDisksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionDisksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionDisksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionDisksRequest project. */
                    public project: string;

                    /** ListRegionDisksRequest region. */
                    public region: string;

                    /** ListRegionDisksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionDisksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionDisksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionDisksRequest): google.cloud.compute.v1.ListRegionDisksRequest;

                    /**
                     * Encodes the specified ListRegionDisksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionDisksRequest.verify|verify} messages.
                     * @param message ListRegionDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionDisksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionDisksRequest.verify|verify} messages.
                     * @param message ListRegionDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionDisksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionDisksRequest;

                    /**
                     * Decodes a ListRegionDisksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionDisksRequest;

                    /**
                     * Verifies a ListRegionDisksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionDisksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionDisksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionDisksRequest;

                    /**
                     * Creates a plain object from a ListRegionDisksRequest message. Also converts values to other types if specified.
                     * @param message ListRegionDisksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionDisksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionDisksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionDisksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionHealthAggregationPoliciesRequest. */
                interface IListRegionHealthAggregationPoliciesRequest {

                    /** ListRegionHealthAggregationPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionHealthAggregationPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionHealthAggregationPoliciesRequest. */
                class ListRegionHealthAggregationPoliciesRequest implements IListRegionHealthAggregationPoliciesRequest {

                    /**
                     * Constructs a new ListRegionHealthAggregationPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionHealthAggregationPoliciesRequest);

                    /** ListRegionHealthAggregationPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionHealthAggregationPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest project. */
                    public project: string;

                    /** ListRegionHealthAggregationPoliciesRequest region. */
                    public region: string;

                    /** ListRegionHealthAggregationPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionHealthAggregationPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionHealthAggregationPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionHealthAggregationPoliciesRequest): google.cloud.compute.v1.ListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionHealthAggregationPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionHealthAggregationPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionHealthAggregationPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionHealthAggregationPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionHealthAggregationPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionHealthAggregationPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionHealthAggregationPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionHealthAggregationPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionHealthAggregationPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionHealthAggregationPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Decodes a ListRegionHealthAggregationPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionHealthAggregationPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Verifies a ListRegionHealthAggregationPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionHealthAggregationPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionHealthAggregationPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionHealthAggregationPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionHealthAggregationPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionHealthAggregationPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionHealthAggregationPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionHealthAggregationPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionHealthCheckServicesRequest. */
                interface IListRegionHealthCheckServicesRequest {

                    /** ListRegionHealthCheckServicesRequest filter */
                    filter?: (string|null);

                    /** ListRegionHealthCheckServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionHealthCheckServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionHealthCheckServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionHealthCheckServicesRequest project */
                    project?: (string|null);

                    /** ListRegionHealthCheckServicesRequest region */
                    region?: (string|null);

                    /** ListRegionHealthCheckServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionHealthCheckServicesRequest. */
                class ListRegionHealthCheckServicesRequest implements IListRegionHealthCheckServicesRequest {

                    /**
                     * Constructs a new ListRegionHealthCheckServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionHealthCheckServicesRequest);

                    /** ListRegionHealthCheckServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionHealthCheckServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionHealthCheckServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionHealthCheckServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionHealthCheckServicesRequest project. */
                    public project: string;

                    /** ListRegionHealthCheckServicesRequest region. */
                    public region: string;

                    /** ListRegionHealthCheckServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionHealthCheckServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionHealthCheckServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionHealthCheckServicesRequest): google.cloud.compute.v1.ListRegionHealthCheckServicesRequest;

                    /**
                     * Encodes the specified ListRegionHealthCheckServicesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionHealthCheckServicesRequest.verify|verify} messages.
                     * @param message ListRegionHealthCheckServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionHealthCheckServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionHealthCheckServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionHealthCheckServicesRequest.verify|verify} messages.
                     * @param message ListRegionHealthCheckServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionHealthCheckServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionHealthCheckServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionHealthCheckServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionHealthCheckServicesRequest;

                    /**
                     * Decodes a ListRegionHealthCheckServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionHealthCheckServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionHealthCheckServicesRequest;

                    /**
                     * Verifies a ListRegionHealthCheckServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionHealthCheckServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionHealthCheckServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionHealthCheckServicesRequest;

                    /**
                     * Creates a plain object from a ListRegionHealthCheckServicesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionHealthCheckServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionHealthCheckServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionHealthCheckServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionHealthCheckServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionHealthChecksRequest. */
                interface IListRegionHealthChecksRequest {

                    /** ListRegionHealthChecksRequest filter */
                    filter?: (string|null);

                    /** ListRegionHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionHealthChecksRequest project */
                    project?: (string|null);

                    /** ListRegionHealthChecksRequest region */
                    region?: (string|null);

                    /** ListRegionHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionHealthChecksRequest. */
                class ListRegionHealthChecksRequest implements IListRegionHealthChecksRequest {

                    /**
                     * Constructs a new ListRegionHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionHealthChecksRequest);

                    /** ListRegionHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionHealthChecksRequest project. */
                    public project: string;

                    /** ListRegionHealthChecksRequest region. */
                    public region: string;

                    /** ListRegionHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionHealthChecksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionHealthChecksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionHealthChecksRequest): google.cloud.compute.v1.ListRegionHealthChecksRequest;

                    /**
                     * Encodes the specified ListRegionHealthChecksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionHealthChecksRequest.verify|verify} messages.
                     * @param message ListRegionHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionHealthChecksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionHealthChecksRequest.verify|verify} messages.
                     * @param message ListRegionHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionHealthChecksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionHealthChecksRequest;

                    /**
                     * Decodes a ListRegionHealthChecksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionHealthChecksRequest;

                    /**
                     * Verifies a ListRegionHealthChecksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionHealthChecksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionHealthChecksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionHealthChecksRequest;

                    /**
                     * Creates a plain object from a ListRegionHealthChecksRequest message. Also converts values to other types if specified.
                     * @param message ListRegionHealthChecksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionHealthChecksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionHealthChecksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionHealthChecksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionHealthSourcesRequest. */
                interface IListRegionHealthSourcesRequest {

                    /** ListRegionHealthSourcesRequest filter */
                    filter?: (string|null);

                    /** ListRegionHealthSourcesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionHealthSourcesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionHealthSourcesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionHealthSourcesRequest project */
                    project?: (string|null);

                    /** ListRegionHealthSourcesRequest region */
                    region?: (string|null);

                    /** ListRegionHealthSourcesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionHealthSourcesRequest. */
                class ListRegionHealthSourcesRequest implements IListRegionHealthSourcesRequest {

                    /**
                     * Constructs a new ListRegionHealthSourcesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionHealthSourcesRequest);

                    /** ListRegionHealthSourcesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionHealthSourcesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionHealthSourcesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionHealthSourcesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionHealthSourcesRequest project. */
                    public project: string;

                    /** ListRegionHealthSourcesRequest region. */
                    public region: string;

                    /** ListRegionHealthSourcesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionHealthSourcesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionHealthSourcesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionHealthSourcesRequest): google.cloud.compute.v1.ListRegionHealthSourcesRequest;

                    /**
                     * Encodes the specified ListRegionHealthSourcesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionHealthSourcesRequest.verify|verify} messages.
                     * @param message ListRegionHealthSourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionHealthSourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionHealthSourcesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionHealthSourcesRequest.verify|verify} messages.
                     * @param message ListRegionHealthSourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionHealthSourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionHealthSourcesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionHealthSourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionHealthSourcesRequest;

                    /**
                     * Decodes a ListRegionHealthSourcesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionHealthSourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionHealthSourcesRequest;

                    /**
                     * Verifies a ListRegionHealthSourcesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionHealthSourcesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionHealthSourcesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionHealthSourcesRequest;

                    /**
                     * Creates a plain object from a ListRegionHealthSourcesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionHealthSourcesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionHealthSourcesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionHealthSourcesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionHealthSourcesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstanceGroupManagersRequest. */
                interface IListRegionInstanceGroupManagersRequest {

                    /** ListRegionInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest region */
                    region?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstanceGroupManagersRequest. */
                class ListRegionInstanceGroupManagersRequest implements IListRegionInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListRegionInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionInstanceGroupManagersRequest);

                    /** ListRegionInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListRegionInstanceGroupManagersRequest region. */
                    public region: string;

                    /** ListRegionInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionInstanceGroupManagersRequest): google.cloud.compute.v1.ListRegionInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListRegionInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListRegionInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListRegionInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListRegionInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstanceGroupsRequest. */
                interface IListRegionInstanceGroupsRequest {

                    /** ListRegionInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstanceGroupsRequest project */
                    project?: (string|null);

                    /** ListRegionInstanceGroupsRequest region */
                    region?: (string|null);

                    /** ListRegionInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstanceGroupsRequest. */
                class ListRegionInstanceGroupsRequest implements IListRegionInstanceGroupsRequest {

                    /**
                     * Constructs a new ListRegionInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionInstanceGroupsRequest);

                    /** ListRegionInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstanceGroupsRequest project. */
                    public project: string;

                    /** ListRegionInstanceGroupsRequest region. */
                    public region: string;

                    /** ListRegionInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionInstanceGroupsRequest): google.cloud.compute.v1.ListRegionInstanceGroupsRequest;

                    /**
                     * Encodes the specified ListRegionInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionInstanceGroupsRequest;

                    /**
                     * Decodes a ListRegionInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionInstanceGroupsRequest;

                    /**
                     * Verifies a ListRegionInstanceGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionInstanceGroupsRequest;

                    /**
                     * Creates a plain object from a ListRegionInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstanceTemplatesRequest. */
                interface IListRegionInstanceTemplatesRequest {

                    /** ListRegionInstanceTemplatesRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstanceTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstanceTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstanceTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstanceTemplatesRequest project */
                    project?: (string|null);

                    /** ListRegionInstanceTemplatesRequest region */
                    region?: (string|null);

                    /** ListRegionInstanceTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstanceTemplatesRequest. */
                class ListRegionInstanceTemplatesRequest implements IListRegionInstanceTemplatesRequest {

                    /**
                     * Constructs a new ListRegionInstanceTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionInstanceTemplatesRequest);

                    /** ListRegionInstanceTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstanceTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstanceTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstanceTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstanceTemplatesRequest project. */
                    public project: string;

                    /** ListRegionInstanceTemplatesRequest region. */
                    public region: string;

                    /** ListRegionInstanceTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstanceTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstanceTemplatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionInstanceTemplatesRequest): google.cloud.compute.v1.ListRegionInstanceTemplatesRequest;

                    /**
                     * Encodes the specified ListRegionInstanceTemplatesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionInstanceTemplatesRequest.verify|verify} messages.
                     * @param message ListRegionInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstanceTemplatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionInstanceTemplatesRequest.verify|verify} messages.
                     * @param message ListRegionInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstanceTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionInstanceTemplatesRequest;

                    /**
                     * Decodes a ListRegionInstanceTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionInstanceTemplatesRequest;

                    /**
                     * Verifies a ListRegionInstanceTemplatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstanceTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstanceTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionInstanceTemplatesRequest;

                    /**
                     * Creates a plain object from a ListRegionInstanceTemplatesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstanceTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionInstanceTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstanceTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstanceTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstantSnapshotsRequest. */
                interface IListRegionInstantSnapshotsRequest {

                    /** ListRegionInstantSnapshotsRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstantSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstantSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstantSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstantSnapshotsRequest project */
                    project?: (string|null);

                    /** ListRegionInstantSnapshotsRequest region */
                    region?: (string|null);

                    /** ListRegionInstantSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstantSnapshotsRequest. */
                class ListRegionInstantSnapshotsRequest implements IListRegionInstantSnapshotsRequest {

                    /**
                     * Constructs a new ListRegionInstantSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionInstantSnapshotsRequest);

                    /** ListRegionInstantSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstantSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstantSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstantSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstantSnapshotsRequest project. */
                    public project: string;

                    /** ListRegionInstantSnapshotsRequest region. */
                    public region: string;

                    /** ListRegionInstantSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstantSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstantSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionInstantSnapshotsRequest): google.cloud.compute.v1.ListRegionInstantSnapshotsRequest;

                    /**
                     * Encodes the specified ListRegionInstantSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionInstantSnapshotsRequest.verify|verify} messages.
                     * @param message ListRegionInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstantSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionInstantSnapshotsRequest.verify|verify} messages.
                     * @param message ListRegionInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstantSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionInstantSnapshotsRequest;

                    /**
                     * Decodes a ListRegionInstantSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionInstantSnapshotsRequest;

                    /**
                     * Verifies a ListRegionInstantSnapshotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstantSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstantSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionInstantSnapshotsRequest;

                    /**
                     * Creates a plain object from a ListRegionInstantSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstantSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionInstantSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstantSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstantSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionNetworkEndpointGroupsRequest. */
                interface IListRegionNetworkEndpointGroupsRequest {

                    /** ListRegionNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest region */
                    region?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionNetworkEndpointGroupsRequest. */
                class ListRegionNetworkEndpointGroupsRequest implements IListRegionNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListRegionNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionNetworkEndpointGroupsRequest);

                    /** ListRegionNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListRegionNetworkEndpointGroupsRequest region. */
                    public region: string;

                    /** ListRegionNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionNetworkEndpointGroupsRequest): google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListRegionNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListRegionNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListRegionNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListRegionNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListRegionNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListRegionNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionNetworkFirewallPoliciesRequest. */
                interface IListRegionNetworkFirewallPoliciesRequest {

                    /** ListRegionNetworkFirewallPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionNetworkFirewallPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionNetworkFirewallPoliciesRequest. */
                class ListRegionNetworkFirewallPoliciesRequest implements IListRegionNetworkFirewallPoliciesRequest {

                    /**
                     * Constructs a new ListRegionNetworkFirewallPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionNetworkFirewallPoliciesRequest);

                    /** ListRegionNetworkFirewallPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionNetworkFirewallPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest project. */
                    public project: string;

                    /** ListRegionNetworkFirewallPoliciesRequest region. */
                    public region: string;

                    /** ListRegionNetworkFirewallPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionNetworkFirewallPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionNetworkFirewallPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionNetworkFirewallPoliciesRequest): google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionNetworkFirewallPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionNetworkFirewallPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionNetworkFirewallPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest;

                    /**
                     * Decodes a ListRegionNetworkFirewallPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest;

                    /**
                     * Verifies a ListRegionNetworkFirewallPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionNetworkFirewallPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionNetworkFirewallPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionNetworkFirewallPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionNetworkFirewallPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionNetworkFirewallPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionNetworkFirewallPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionNotificationEndpointsRequest. */
                interface IListRegionNotificationEndpointsRequest {

                    /** ListRegionNotificationEndpointsRequest filter */
                    filter?: (string|null);

                    /** ListRegionNotificationEndpointsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionNotificationEndpointsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionNotificationEndpointsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionNotificationEndpointsRequest project */
                    project?: (string|null);

                    /** ListRegionNotificationEndpointsRequest region */
                    region?: (string|null);

                    /** ListRegionNotificationEndpointsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionNotificationEndpointsRequest. */
                class ListRegionNotificationEndpointsRequest implements IListRegionNotificationEndpointsRequest {

                    /**
                     * Constructs a new ListRegionNotificationEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionNotificationEndpointsRequest);

                    /** ListRegionNotificationEndpointsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionNotificationEndpointsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionNotificationEndpointsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionNotificationEndpointsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionNotificationEndpointsRequest project. */
                    public project: string;

                    /** ListRegionNotificationEndpointsRequest region. */
                    public region: string;

                    /** ListRegionNotificationEndpointsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionNotificationEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionNotificationEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionNotificationEndpointsRequest): google.cloud.compute.v1.ListRegionNotificationEndpointsRequest;

                    /**
                     * Encodes the specified ListRegionNotificationEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionNotificationEndpointsRequest.verify|verify} messages.
                     * @param message ListRegionNotificationEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionNotificationEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionNotificationEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionNotificationEndpointsRequest.verify|verify} messages.
                     * @param message ListRegionNotificationEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionNotificationEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionNotificationEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionNotificationEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionNotificationEndpointsRequest;

                    /**
                     * Decodes a ListRegionNotificationEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionNotificationEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionNotificationEndpointsRequest;

                    /**
                     * Verifies a ListRegionNotificationEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionNotificationEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionNotificationEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionNotificationEndpointsRequest;

                    /**
                     * Creates a plain object from a ListRegionNotificationEndpointsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionNotificationEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionNotificationEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionNotificationEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionNotificationEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionOperationsRequest. */
                interface IListRegionOperationsRequest {

                    /** ListRegionOperationsRequest filter */
                    filter?: (string|null);

                    /** ListRegionOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionOperationsRequest project */
                    project?: (string|null);

                    /** ListRegionOperationsRequest region */
                    region?: (string|null);

                    /** ListRegionOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionOperationsRequest. */
                class ListRegionOperationsRequest implements IListRegionOperationsRequest {

                    /**
                     * Constructs a new ListRegionOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionOperationsRequest);

                    /** ListRegionOperationsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionOperationsRequest project. */
                    public project: string;

                    /** ListRegionOperationsRequest region. */
                    public region: string;

                    /** ListRegionOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionOperationsRequest): google.cloud.compute.v1.ListRegionOperationsRequest;

                    /**
                     * Encodes the specified ListRegionOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionOperationsRequest.verify|verify} messages.
                     * @param message ListRegionOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionOperationsRequest.verify|verify} messages.
                     * @param message ListRegionOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionOperationsRequest;

                    /**
                     * Decodes a ListRegionOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionOperationsRequest;

                    /**
                     * Verifies a ListRegionOperationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionOperationsRequest;

                    /**
                     * Creates a plain object from a ListRegionOperationsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionSecurityPoliciesRequest. */
                interface IListRegionSecurityPoliciesRequest {

                    /** ListRegionSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionSecurityPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionSecurityPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionSecurityPoliciesRequest. */
                class ListRegionSecurityPoliciesRequest implements IListRegionSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListRegionSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionSecurityPoliciesRequest);

                    /** ListRegionSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionSecurityPoliciesRequest project. */
                    public project: string;

                    /** ListRegionSecurityPoliciesRequest region. */
                    public region: string;

                    /** ListRegionSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionSecurityPoliciesRequest): google.cloud.compute.v1.ListRegionSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionSecurityPoliciesRequest;

                    /**
                     * Decodes a ListRegionSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionSecurityPoliciesRequest;

                    /**
                     * Verifies a ListRegionSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionSslCertificatesRequest. */
                interface IListRegionSslCertificatesRequest {

                    /** ListRegionSslCertificatesRequest filter */
                    filter?: (string|null);

                    /** ListRegionSslCertificatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionSslCertificatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionSslCertificatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionSslCertificatesRequest project */
                    project?: (string|null);

                    /** ListRegionSslCertificatesRequest region */
                    region?: (string|null);

                    /** ListRegionSslCertificatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionSslCertificatesRequest. */
                class ListRegionSslCertificatesRequest implements IListRegionSslCertificatesRequest {

                    /**
                     * Constructs a new ListRegionSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionSslCertificatesRequest);

                    /** ListRegionSslCertificatesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionSslCertificatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionSslCertificatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionSslCertificatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionSslCertificatesRequest project. */
                    public project: string;

                    /** ListRegionSslCertificatesRequest region. */
                    public region: string;

                    /** ListRegionSslCertificatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionSslCertificatesRequest): google.cloud.compute.v1.ListRegionSslCertificatesRequest;

                    /**
                     * Encodes the specified ListRegionSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionSslCertificatesRequest.verify|verify} messages.
                     * @param message ListRegionSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionSslCertificatesRequest.verify|verify} messages.
                     * @param message ListRegionSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionSslCertificatesRequest;

                    /**
                     * Decodes a ListRegionSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionSslCertificatesRequest;

                    /**
                     * Verifies a ListRegionSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionSslCertificatesRequest;

                    /**
                     * Creates a plain object from a ListRegionSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionSslPoliciesRequest. */
                interface IListRegionSslPoliciesRequest {

                    /** ListRegionSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionSslPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionSslPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionSslPoliciesRequest. */
                class ListRegionSslPoliciesRequest implements IListRegionSslPoliciesRequest {

                    /**
                     * Constructs a new ListRegionSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionSslPoliciesRequest);

                    /** ListRegionSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionSslPoliciesRequest project. */
                    public project: string;

                    /** ListRegionSslPoliciesRequest region. */
                    public region: string;

                    /** ListRegionSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionSslPoliciesRequest): google.cloud.compute.v1.ListRegionSslPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionSslPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionSslPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionSslPoliciesRequest;

                    /**
                     * Decodes a ListRegionSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionSslPoliciesRequest;

                    /**
                     * Verifies a ListRegionSslPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionSslPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionTargetHttpProxiesRequest. */
                interface IListRegionTargetHttpProxiesRequest {

                    /** ListRegionTargetHttpProxiesRequest filter */
                    filter?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionTargetHttpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest project */
                    project?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest region */
                    region?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionTargetHttpProxiesRequest. */
                class ListRegionTargetHttpProxiesRequest implements IListRegionTargetHttpProxiesRequest {

                    /**
                     * Constructs a new ListRegionTargetHttpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionTargetHttpProxiesRequest);

                    /** ListRegionTargetHttpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionTargetHttpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest project. */
                    public project: string;

                    /** ListRegionTargetHttpProxiesRequest region. */
                    public region: string;

                    /** ListRegionTargetHttpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionTargetHttpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionTargetHttpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionTargetHttpProxiesRequest): google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest;

                    /**
                     * Encodes the specified ListRegionTargetHttpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionTargetHttpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionTargetHttpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest;

                    /**
                     * Decodes a ListRegionTargetHttpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest;

                    /**
                     * Verifies a ListRegionTargetHttpProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionTargetHttpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionTargetHttpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest;

                    /**
                     * Creates a plain object from a ListRegionTargetHttpProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionTargetHttpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionTargetHttpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionTargetHttpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionTargetHttpsProxiesRequest. */
                interface IListRegionTargetHttpsProxiesRequest {

                    /** ListRegionTargetHttpsProxiesRequest filter */
                    filter?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionTargetHttpsProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest project */
                    project?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest region */
                    region?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionTargetHttpsProxiesRequest. */
                class ListRegionTargetHttpsProxiesRequest implements IListRegionTargetHttpsProxiesRequest {

                    /**
                     * Constructs a new ListRegionTargetHttpsProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionTargetHttpsProxiesRequest);

                    /** ListRegionTargetHttpsProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionTargetHttpsProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest project. */
                    public project: string;

                    /** ListRegionTargetHttpsProxiesRequest region. */
                    public region: string;

                    /** ListRegionTargetHttpsProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionTargetHttpsProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionTargetHttpsProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionTargetHttpsProxiesRequest): google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest;

                    /**
                     * Encodes the specified ListRegionTargetHttpsProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionTargetHttpsProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionTargetHttpsProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest;

                    /**
                     * Decodes a ListRegionTargetHttpsProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest;

                    /**
                     * Verifies a ListRegionTargetHttpsProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionTargetHttpsProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionTargetHttpsProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest;

                    /**
                     * Creates a plain object from a ListRegionTargetHttpsProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionTargetHttpsProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionTargetHttpsProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionTargetHttpsProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionTargetTcpProxiesRequest. */
                interface IListRegionTargetTcpProxiesRequest {

                    /** ListRegionTargetTcpProxiesRequest filter */
                    filter?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionTargetTcpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest project */
                    project?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest region */
                    region?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionTargetTcpProxiesRequest. */
                class ListRegionTargetTcpProxiesRequest implements IListRegionTargetTcpProxiesRequest {

                    /**
                     * Constructs a new ListRegionTargetTcpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionTargetTcpProxiesRequest);

                    /** ListRegionTargetTcpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionTargetTcpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest project. */
                    public project: string;

                    /** ListRegionTargetTcpProxiesRequest region. */
                    public region: string;

                    /** ListRegionTargetTcpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionTargetTcpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionTargetTcpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionTargetTcpProxiesRequest): google.cloud.compute.v1.ListRegionTargetTcpProxiesRequest;

                    /**
                     * Encodes the specified ListRegionTargetTcpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionTargetTcpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionTargetTcpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionTargetTcpProxiesRequest;

                    /**
                     * Decodes a ListRegionTargetTcpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionTargetTcpProxiesRequest;

                    /**
                     * Verifies a ListRegionTargetTcpProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionTargetTcpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionTargetTcpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionTargetTcpProxiesRequest;

                    /**
                     * Creates a plain object from a ListRegionTargetTcpProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionTargetTcpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionTargetTcpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionTargetTcpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionTargetTcpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionUrlMapsRequest. */
                interface IListRegionUrlMapsRequest {

                    /** ListRegionUrlMapsRequest filter */
                    filter?: (string|null);

                    /** ListRegionUrlMapsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionUrlMapsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionUrlMapsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionUrlMapsRequest project */
                    project?: (string|null);

                    /** ListRegionUrlMapsRequest region */
                    region?: (string|null);

                    /** ListRegionUrlMapsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionUrlMapsRequest. */
                class ListRegionUrlMapsRequest implements IListRegionUrlMapsRequest {

                    /**
                     * Constructs a new ListRegionUrlMapsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionUrlMapsRequest);

                    /** ListRegionUrlMapsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionUrlMapsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionUrlMapsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionUrlMapsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionUrlMapsRequest project. */
                    public project: string;

                    /** ListRegionUrlMapsRequest region. */
                    public region: string;

                    /** ListRegionUrlMapsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionUrlMapsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionUrlMapsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionUrlMapsRequest): google.cloud.compute.v1.ListRegionUrlMapsRequest;

                    /**
                     * Encodes the specified ListRegionUrlMapsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionUrlMapsRequest.verify|verify} messages.
                     * @param message ListRegionUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionUrlMapsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionUrlMapsRequest.verify|verify} messages.
                     * @param message ListRegionUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionUrlMapsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionUrlMapsRequest;

                    /**
                     * Decodes a ListRegionUrlMapsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionUrlMapsRequest;

                    /**
                     * Verifies a ListRegionUrlMapsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionUrlMapsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionUrlMapsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionUrlMapsRequest;

                    /**
                     * Creates a plain object from a ListRegionUrlMapsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionUrlMapsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionUrlMapsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionUrlMapsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionUrlMapsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionZonesRequest. */
                interface IListRegionZonesRequest {

                    /** ListRegionZonesRequest filter */
                    filter?: (string|null);

                    /** ListRegionZonesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionZonesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionZonesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionZonesRequest project */
                    project?: (string|null);

                    /** ListRegionZonesRequest region */
                    region?: (string|null);

                    /** ListRegionZonesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionZonesRequest. */
                class ListRegionZonesRequest implements IListRegionZonesRequest {

                    /**
                     * Constructs a new ListRegionZonesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionZonesRequest);

                    /** ListRegionZonesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionZonesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionZonesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionZonesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionZonesRequest project. */
                    public project: string;

                    /** ListRegionZonesRequest region. */
                    public region: string;

                    /** ListRegionZonesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionZonesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionZonesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionZonesRequest): google.cloud.compute.v1.ListRegionZonesRequest;

                    /**
                     * Encodes the specified ListRegionZonesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionZonesRequest.verify|verify} messages.
                     * @param message ListRegionZonesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionZonesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionZonesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionZonesRequest.verify|verify} messages.
                     * @param message ListRegionZonesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionZonesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionZonesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionZonesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionZonesRequest;

                    /**
                     * Decodes a ListRegionZonesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionZonesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionZonesRequest;

                    /**
                     * Verifies a ListRegionZonesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionZonesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionZonesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionZonesRequest;

                    /**
                     * Creates a plain object from a ListRegionZonesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionZonesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionZonesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionZonesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionZonesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionsRequest. */
                interface IListRegionsRequest {

                    /** ListRegionsRequest filter */
                    filter?: (string|null);

                    /** ListRegionsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionsRequest project */
                    project?: (string|null);

                    /** ListRegionsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionsRequest. */
                class ListRegionsRequest implements IListRegionsRequest {

                    /**
                     * Constructs a new ListRegionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRegionsRequest);

                    /** ListRegionsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionsRequest project. */
                    public project: string;

                    /** ListRegionsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRegionsRequest): google.cloud.compute.v1.ListRegionsRequest;

                    /**
                     * Encodes the specified ListRegionsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRegionsRequest.verify|verify} messages.
                     * @param message ListRegionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRegionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRegionsRequest.verify|verify} messages.
                     * @param message ListRegionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRegionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRegionsRequest;

                    /**
                     * Decodes a ListRegionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRegionsRequest;

                    /**
                     * Verifies a ListRegionsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRegionsRequest;

                    /**
                     * Creates a plain object from a ListRegionsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRegionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReservationBlocksRequest. */
                interface IListReservationBlocksRequest {

                    /** ListReservationBlocksRequest filter */
                    filter?: (string|null);

                    /** ListReservationBlocksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReservationBlocksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReservationBlocksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReservationBlocksRequest project */
                    project?: (string|null);

                    /** ListReservationBlocksRequest reservation */
                    reservation?: (string|null);

                    /** ListReservationBlocksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReservationBlocksRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReservationBlocksRequest. */
                class ListReservationBlocksRequest implements IListReservationBlocksRequest {

                    /**
                     * Constructs a new ListReservationBlocksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListReservationBlocksRequest);

                    /** ListReservationBlocksRequest filter. */
                    public filter?: (string|null);

                    /** ListReservationBlocksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReservationBlocksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReservationBlocksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReservationBlocksRequest project. */
                    public project: string;

                    /** ListReservationBlocksRequest reservation. */
                    public reservation: string;

                    /** ListReservationBlocksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReservationBlocksRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReservationBlocksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReservationBlocksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListReservationBlocksRequest): google.cloud.compute.v1.ListReservationBlocksRequest;

                    /**
                     * Encodes the specified ListReservationBlocksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListReservationBlocksRequest.verify|verify} messages.
                     * @param message ListReservationBlocksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListReservationBlocksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReservationBlocksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListReservationBlocksRequest.verify|verify} messages.
                     * @param message ListReservationBlocksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListReservationBlocksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReservationBlocksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReservationBlocksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListReservationBlocksRequest;

                    /**
                     * Decodes a ListReservationBlocksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReservationBlocksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListReservationBlocksRequest;

                    /**
                     * Verifies a ListReservationBlocksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReservationBlocksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReservationBlocksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListReservationBlocksRequest;

                    /**
                     * Creates a plain object from a ListReservationBlocksRequest message. Also converts values to other types if specified.
                     * @param message ListReservationBlocksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListReservationBlocksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReservationBlocksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReservationBlocksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReservationSlotsRequest. */
                interface IListReservationSlotsRequest {

                    /** ListReservationSlotsRequest filter */
                    filter?: (string|null);

                    /** ListReservationSlotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReservationSlotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReservationSlotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReservationSlotsRequest parentName */
                    parentName?: (string|null);

                    /** ListReservationSlotsRequest project */
                    project?: (string|null);

                    /** ListReservationSlotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReservationSlotsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReservationSlotsRequest. */
                class ListReservationSlotsRequest implements IListReservationSlotsRequest {

                    /**
                     * Constructs a new ListReservationSlotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListReservationSlotsRequest);

                    /** ListReservationSlotsRequest filter. */
                    public filter?: (string|null);

                    /** ListReservationSlotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReservationSlotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReservationSlotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReservationSlotsRequest parentName. */
                    public parentName: string;

                    /** ListReservationSlotsRequest project. */
                    public project: string;

                    /** ListReservationSlotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReservationSlotsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReservationSlotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReservationSlotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListReservationSlotsRequest): google.cloud.compute.v1.ListReservationSlotsRequest;

                    /**
                     * Encodes the specified ListReservationSlotsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListReservationSlotsRequest.verify|verify} messages.
                     * @param message ListReservationSlotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListReservationSlotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReservationSlotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListReservationSlotsRequest.verify|verify} messages.
                     * @param message ListReservationSlotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListReservationSlotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReservationSlotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReservationSlotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListReservationSlotsRequest;

                    /**
                     * Decodes a ListReservationSlotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReservationSlotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListReservationSlotsRequest;

                    /**
                     * Verifies a ListReservationSlotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReservationSlotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReservationSlotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListReservationSlotsRequest;

                    /**
                     * Creates a plain object from a ListReservationSlotsRequest message. Also converts values to other types if specified.
                     * @param message ListReservationSlotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListReservationSlotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReservationSlotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReservationSlotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReservationSubBlocksRequest. */
                interface IListReservationSubBlocksRequest {

                    /** ListReservationSubBlocksRequest filter */
                    filter?: (string|null);

                    /** ListReservationSubBlocksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReservationSubBlocksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReservationSubBlocksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReservationSubBlocksRequest parentName */
                    parentName?: (string|null);

                    /** ListReservationSubBlocksRequest project */
                    project?: (string|null);

                    /** ListReservationSubBlocksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReservationSubBlocksRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReservationSubBlocksRequest. */
                class ListReservationSubBlocksRequest implements IListReservationSubBlocksRequest {

                    /**
                     * Constructs a new ListReservationSubBlocksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListReservationSubBlocksRequest);

                    /** ListReservationSubBlocksRequest filter. */
                    public filter?: (string|null);

                    /** ListReservationSubBlocksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReservationSubBlocksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReservationSubBlocksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReservationSubBlocksRequest parentName. */
                    public parentName: string;

                    /** ListReservationSubBlocksRequest project. */
                    public project: string;

                    /** ListReservationSubBlocksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReservationSubBlocksRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReservationSubBlocksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReservationSubBlocksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListReservationSubBlocksRequest): google.cloud.compute.v1.ListReservationSubBlocksRequest;

                    /**
                     * Encodes the specified ListReservationSubBlocksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListReservationSubBlocksRequest.verify|verify} messages.
                     * @param message ListReservationSubBlocksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListReservationSubBlocksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReservationSubBlocksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListReservationSubBlocksRequest.verify|verify} messages.
                     * @param message ListReservationSubBlocksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListReservationSubBlocksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReservationSubBlocksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReservationSubBlocksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListReservationSubBlocksRequest;

                    /**
                     * Decodes a ListReservationSubBlocksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReservationSubBlocksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListReservationSubBlocksRequest;

                    /**
                     * Verifies a ListReservationSubBlocksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReservationSubBlocksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReservationSubBlocksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListReservationSubBlocksRequest;

                    /**
                     * Creates a plain object from a ListReservationSubBlocksRequest message. Also converts values to other types if specified.
                     * @param message ListReservationSubBlocksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListReservationSubBlocksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReservationSubBlocksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReservationSubBlocksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReservationsRequest. */
                interface IListReservationsRequest {

                    /** ListReservationsRequest filter */
                    filter?: (string|null);

                    /** ListReservationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReservationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReservationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReservationsRequest project */
                    project?: (string|null);

                    /** ListReservationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReservationsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReservationsRequest. */
                class ListReservationsRequest implements IListReservationsRequest {

                    /**
                     * Constructs a new ListReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListReservationsRequest);

                    /** ListReservationsRequest filter. */
                    public filter?: (string|null);

                    /** ListReservationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReservationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReservationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReservationsRequest project. */
                    public project: string;

                    /** ListReservationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReservationsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReservationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReservationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListReservationsRequest): google.cloud.compute.v1.ListReservationsRequest;

                    /**
                     * Encodes the specified ListReservationsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListReservationsRequest.verify|verify} messages.
                     * @param message ListReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReservationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListReservationsRequest.verify|verify} messages.
                     * @param message ListReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReservationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListReservationsRequest;

                    /**
                     * Decodes a ListReservationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListReservationsRequest;

                    /**
                     * Verifies a ListReservationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReservationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReservationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListReservationsRequest;

                    /**
                     * Creates a plain object from a ListReservationsRequest message. Also converts values to other types if specified.
                     * @param message ListReservationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListReservationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReservationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReservationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListResourcePoliciesRequest. */
                interface IListResourcePoliciesRequest {

                    /** ListResourcePoliciesRequest filter */
                    filter?: (string|null);

                    /** ListResourcePoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListResourcePoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListResourcePoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListResourcePoliciesRequest project */
                    project?: (string|null);

                    /** ListResourcePoliciesRequest region */
                    region?: (string|null);

                    /** ListResourcePoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListResourcePoliciesRequest. */
                class ListResourcePoliciesRequest implements IListResourcePoliciesRequest {

                    /**
                     * Constructs a new ListResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListResourcePoliciesRequest);

                    /** ListResourcePoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListResourcePoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListResourcePoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListResourcePoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListResourcePoliciesRequest project. */
                    public project: string;

                    /** ListResourcePoliciesRequest region. */
                    public region: string;

                    /** ListResourcePoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListResourcePoliciesRequest): google.cloud.compute.v1.ListResourcePoliciesRequest;

                    /**
                     * Encodes the specified ListResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListResourcePoliciesRequest.verify|verify} messages.
                     * @param message ListResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListResourcePoliciesRequest.verify|verify} messages.
                     * @param message ListResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListResourcePoliciesRequest;

                    /**
                     * Decodes a ListResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListResourcePoliciesRequest;

                    /**
                     * Verifies a ListResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a ListResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutePoliciesRoutersRequest. */
                interface IListRoutePoliciesRoutersRequest {

                    /** ListRoutePoliciesRoutersRequest filter */
                    filter?: (string|null);

                    /** ListRoutePoliciesRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRoutePoliciesRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRoutePoliciesRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRoutePoliciesRoutersRequest project */
                    project?: (string|null);

                    /** ListRoutePoliciesRoutersRequest region */
                    region?: (string|null);

                    /** ListRoutePoliciesRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListRoutePoliciesRoutersRequest router */
                    router?: (string|null);
                }

                /** Represents a ListRoutePoliciesRoutersRequest. */
                class ListRoutePoliciesRoutersRequest implements IListRoutePoliciesRoutersRequest {

                    /**
                     * Constructs a new ListRoutePoliciesRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRoutePoliciesRoutersRequest);

                    /** ListRoutePoliciesRoutersRequest filter. */
                    public filter?: (string|null);

                    /** ListRoutePoliciesRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRoutePoliciesRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRoutePoliciesRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRoutePoliciesRoutersRequest project. */
                    public project: string;

                    /** ListRoutePoliciesRoutersRequest region. */
                    public region: string;

                    /** ListRoutePoliciesRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListRoutePoliciesRoutersRequest router. */
                    public router: string;

                    /**
                     * Creates a new ListRoutePoliciesRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutePoliciesRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRoutePoliciesRoutersRequest): google.cloud.compute.v1.ListRoutePoliciesRoutersRequest;

                    /**
                     * Encodes the specified ListRoutePoliciesRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRoutePoliciesRoutersRequest.verify|verify} messages.
                     * @param message ListRoutePoliciesRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRoutePoliciesRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutePoliciesRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRoutePoliciesRoutersRequest.verify|verify} messages.
                     * @param message ListRoutePoliciesRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRoutePoliciesRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutePoliciesRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutePoliciesRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRoutePoliciesRoutersRequest;

                    /**
                     * Decodes a ListRoutePoliciesRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutePoliciesRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRoutePoliciesRoutersRequest;

                    /**
                     * Verifies a ListRoutePoliciesRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutePoliciesRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutePoliciesRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRoutePoliciesRoutersRequest;

                    /**
                     * Creates a plain object from a ListRoutePoliciesRoutersRequest message. Also converts values to other types if specified.
                     * @param message ListRoutePoliciesRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRoutePoliciesRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutePoliciesRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutePoliciesRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutersRequest. */
                interface IListRoutersRequest {

                    /** ListRoutersRequest filter */
                    filter?: (string|null);

                    /** ListRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRoutersRequest project */
                    project?: (string|null);

                    /** ListRoutersRequest region */
                    region?: (string|null);

                    /** ListRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRoutersRequest. */
                class ListRoutersRequest implements IListRoutersRequest {

                    /**
                     * Constructs a new ListRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRoutersRequest);

                    /** ListRoutersRequest filter. */
                    public filter?: (string|null);

                    /** ListRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRoutersRequest project. */
                    public project: string;

                    /** ListRoutersRequest region. */
                    public region: string;

                    /** ListRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRoutersRequest): google.cloud.compute.v1.ListRoutersRequest;

                    /**
                     * Encodes the specified ListRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRoutersRequest.verify|verify} messages.
                     * @param message ListRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRoutersRequest.verify|verify} messages.
                     * @param message ListRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRoutersRequest;

                    /**
                     * Decodes a ListRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRoutersRequest;

                    /**
                     * Verifies a ListRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRoutersRequest;

                    /**
                     * Creates a plain object from a ListRoutersRequest message. Also converts values to other types if specified.
                     * @param message ListRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutesRequest. */
                interface IListRoutesRequest {

                    /** ListRoutesRequest filter */
                    filter?: (string|null);

                    /** ListRoutesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRoutesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRoutesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRoutesRequest project */
                    project?: (string|null);

                    /** ListRoutesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRoutesRequest. */
                class ListRoutesRequest implements IListRoutesRequest {

                    /**
                     * Constructs a new ListRoutesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListRoutesRequest);

                    /** ListRoutesRequest filter. */
                    public filter?: (string|null);

                    /** ListRoutesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRoutesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRoutesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRoutesRequest project. */
                    public project: string;

                    /** ListRoutesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRoutesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListRoutesRequest): google.cloud.compute.v1.ListRoutesRequest;

                    /**
                     * Encodes the specified ListRoutesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListRoutesRequest.verify|verify} messages.
                     * @param message ListRoutesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListRoutesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListRoutesRequest.verify|verify} messages.
                     * @param message ListRoutesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListRoutesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListRoutesRequest;

                    /**
                     * Decodes a ListRoutesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListRoutesRequest;

                    /**
                     * Verifies a ListRoutesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListRoutesRequest;

                    /**
                     * Creates a plain object from a ListRoutesRequest message. Also converts values to other types if specified.
                     * @param message ListRoutesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListRoutesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSecurityPoliciesRequest. */
                interface IListSecurityPoliciesRequest {

                    /** ListSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSecurityPoliciesRequest project */
                    project?: (string|null);

                    /** ListSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSecurityPoliciesRequest. */
                class ListSecurityPoliciesRequest implements IListSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListSecurityPoliciesRequest);

                    /** ListSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSecurityPoliciesRequest project. */
                    public project: string;

                    /** ListSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListSecurityPoliciesRequest): google.cloud.compute.v1.ListSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListSecurityPoliciesRequest;

                    /**
                     * Decodes a ListSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListSecurityPoliciesRequest;

                    /**
                     * Verifies a ListSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListServiceAttachmentsRequest. */
                interface IListServiceAttachmentsRequest {

                    /** ListServiceAttachmentsRequest filter */
                    filter?: (string|null);

                    /** ListServiceAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListServiceAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListServiceAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListServiceAttachmentsRequest project */
                    project?: (string|null);

                    /** ListServiceAttachmentsRequest region */
                    region?: (string|null);

                    /** ListServiceAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListServiceAttachmentsRequest. */
                class ListServiceAttachmentsRequest implements IListServiceAttachmentsRequest {

                    /**
                     * Constructs a new ListServiceAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListServiceAttachmentsRequest);

                    /** ListServiceAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** ListServiceAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListServiceAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListServiceAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListServiceAttachmentsRequest project. */
                    public project: string;

                    /** ListServiceAttachmentsRequest region. */
                    public region: string;

                    /** ListServiceAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListServiceAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListServiceAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListServiceAttachmentsRequest): google.cloud.compute.v1.ListServiceAttachmentsRequest;

                    /**
                     * Encodes the specified ListServiceAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListServiceAttachmentsRequest.verify|verify} messages.
                     * @param message ListServiceAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListServiceAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListServiceAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListServiceAttachmentsRequest.verify|verify} messages.
                     * @param message ListServiceAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListServiceAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListServiceAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListServiceAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListServiceAttachmentsRequest;

                    /**
                     * Decodes a ListServiceAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListServiceAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListServiceAttachmentsRequest;

                    /**
                     * Verifies a ListServiceAttachmentsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListServiceAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListServiceAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListServiceAttachmentsRequest;

                    /**
                     * Creates a plain object from a ListServiceAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message ListServiceAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListServiceAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListServiceAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListServiceAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSnapshotsRequest. */
                interface IListSnapshotsRequest {

                    /** ListSnapshotsRequest filter */
                    filter?: (string|null);

                    /** ListSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSnapshotsRequest project */
                    project?: (string|null);

                    /** ListSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSnapshotsRequest. */
                class ListSnapshotsRequest implements IListSnapshotsRequest {

                    /**
                     * Constructs a new ListSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListSnapshotsRequest);

                    /** ListSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** ListSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSnapshotsRequest project. */
                    public project: string;

                    /** ListSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListSnapshotsRequest): google.cloud.compute.v1.ListSnapshotsRequest;

                    /**
                     * Encodes the specified ListSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListSnapshotsRequest.verify|verify} messages.
                     * @param message ListSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListSnapshotsRequest.verify|verify} messages.
                     * @param message ListSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListSnapshotsRequest;

                    /**
                     * Decodes a ListSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListSnapshotsRequest;

                    /**
                     * Verifies a ListSnapshotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListSnapshotsRequest;

                    /**
                     * Creates a plain object from a ListSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message ListSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSslCertificatesRequest. */
                interface IListSslCertificatesRequest {

                    /** ListSslCertificatesRequest filter */
                    filter?: (string|null);

                    /** ListSslCertificatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSslCertificatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSslCertificatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSslCertificatesRequest project */
                    project?: (string|null);

                    /** ListSslCertificatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSslCertificatesRequest. */
                class ListSslCertificatesRequest implements IListSslCertificatesRequest {

                    /**
                     * Constructs a new ListSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListSslCertificatesRequest);

                    /** ListSslCertificatesRequest filter. */
                    public filter?: (string|null);

                    /** ListSslCertificatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSslCertificatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSslCertificatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSslCertificatesRequest project. */
                    public project: string;

                    /** ListSslCertificatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListSslCertificatesRequest): google.cloud.compute.v1.ListSslCertificatesRequest;

                    /**
                     * Encodes the specified ListSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListSslCertificatesRequest.verify|verify} messages.
                     * @param message ListSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListSslCertificatesRequest.verify|verify} messages.
                     * @param message ListSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListSslCertificatesRequest;

                    /**
                     * Decodes a ListSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListSslCertificatesRequest;

                    /**
                     * Verifies a ListSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListSslCertificatesRequest;

                    /**
                     * Creates a plain object from a ListSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message ListSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSslPoliciesRequest. */
                interface IListSslPoliciesRequest {

                    /** ListSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSslPoliciesRequest project */
                    project?: (string|null);

                    /** ListSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSslPoliciesRequest. */
                class ListSslPoliciesRequest implements IListSslPoliciesRequest {

                    /**
                     * Constructs a new ListSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListSslPoliciesRequest);

                    /** ListSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSslPoliciesRequest project. */
                    public project: string;

                    /** ListSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListSslPoliciesRequest): google.cloud.compute.v1.ListSslPoliciesRequest;

                    /**
                     * Encodes the specified ListSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListSslPoliciesRequest.verify|verify} messages.
                     * @param message ListSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListSslPoliciesRequest.verify|verify} messages.
                     * @param message ListSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListSslPoliciesRequest;

                    /**
                     * Decodes a ListSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListSslPoliciesRequest;

                    /**
                     * Verifies a ListSslPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListSslPoliciesRequest;

                    /**
                     * Creates a plain object from a ListSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStoragePoolTypesRequest. */
                interface IListStoragePoolTypesRequest {

                    /** ListStoragePoolTypesRequest filter */
                    filter?: (string|null);

                    /** ListStoragePoolTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListStoragePoolTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListStoragePoolTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListStoragePoolTypesRequest project */
                    project?: (string|null);

                    /** ListStoragePoolTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListStoragePoolTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListStoragePoolTypesRequest. */
                class ListStoragePoolTypesRequest implements IListStoragePoolTypesRequest {

                    /**
                     * Constructs a new ListStoragePoolTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListStoragePoolTypesRequest);

                    /** ListStoragePoolTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListStoragePoolTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListStoragePoolTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListStoragePoolTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListStoragePoolTypesRequest project. */
                    public project: string;

                    /** ListStoragePoolTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListStoragePoolTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListStoragePoolTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStoragePoolTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListStoragePoolTypesRequest): google.cloud.compute.v1.ListStoragePoolTypesRequest;

                    /**
                     * Encodes the specified ListStoragePoolTypesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListStoragePoolTypesRequest.verify|verify} messages.
                     * @param message ListStoragePoolTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListStoragePoolTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStoragePoolTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListStoragePoolTypesRequest.verify|verify} messages.
                     * @param message ListStoragePoolTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListStoragePoolTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStoragePoolTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStoragePoolTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListStoragePoolTypesRequest;

                    /**
                     * Decodes a ListStoragePoolTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStoragePoolTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListStoragePoolTypesRequest;

                    /**
                     * Verifies a ListStoragePoolTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStoragePoolTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStoragePoolTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListStoragePoolTypesRequest;

                    /**
                     * Creates a plain object from a ListStoragePoolTypesRequest message. Also converts values to other types if specified.
                     * @param message ListStoragePoolTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListStoragePoolTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStoragePoolTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStoragePoolTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStoragePoolsRequest. */
                interface IListStoragePoolsRequest {

                    /** ListStoragePoolsRequest filter */
                    filter?: (string|null);

                    /** ListStoragePoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListStoragePoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListStoragePoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListStoragePoolsRequest project */
                    project?: (string|null);

                    /** ListStoragePoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListStoragePoolsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListStoragePoolsRequest. */
                class ListStoragePoolsRequest implements IListStoragePoolsRequest {

                    /**
                     * Constructs a new ListStoragePoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListStoragePoolsRequest);

                    /** ListStoragePoolsRequest filter. */
                    public filter?: (string|null);

                    /** ListStoragePoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListStoragePoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListStoragePoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListStoragePoolsRequest project. */
                    public project: string;

                    /** ListStoragePoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListStoragePoolsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListStoragePoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStoragePoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListStoragePoolsRequest): google.cloud.compute.v1.ListStoragePoolsRequest;

                    /**
                     * Encodes the specified ListStoragePoolsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListStoragePoolsRequest.verify|verify} messages.
                     * @param message ListStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStoragePoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListStoragePoolsRequest.verify|verify} messages.
                     * @param message ListStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStoragePoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListStoragePoolsRequest;

                    /**
                     * Decodes a ListStoragePoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListStoragePoolsRequest;

                    /**
                     * Verifies a ListStoragePoolsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStoragePoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStoragePoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListStoragePoolsRequest;

                    /**
                     * Creates a plain object from a ListStoragePoolsRequest message. Also converts values to other types if specified.
                     * @param message ListStoragePoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListStoragePoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStoragePoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStoragePoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSubnetworksRequest. */
                interface IListSubnetworksRequest {

                    /** ListSubnetworksRequest filter */
                    filter?: (string|null);

                    /** ListSubnetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSubnetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSubnetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSubnetworksRequest project */
                    project?: (string|null);

                    /** ListSubnetworksRequest region */
                    region?: (string|null);

                    /** ListSubnetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListSubnetworksRequest views */
                    views?: (string|null);
                }

                /** Represents a ListSubnetworksRequest. */
                class ListSubnetworksRequest implements IListSubnetworksRequest {

                    /**
                     * Constructs a new ListSubnetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListSubnetworksRequest);

                    /** ListSubnetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListSubnetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSubnetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSubnetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSubnetworksRequest project. */
                    public project: string;

                    /** ListSubnetworksRequest region. */
                    public region: string;

                    /** ListSubnetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListSubnetworksRequest views. */
                    public views?: (string|null);

                    /**
                     * Creates a new ListSubnetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSubnetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListSubnetworksRequest): google.cloud.compute.v1.ListSubnetworksRequest;

                    /**
                     * Encodes the specified ListSubnetworksRequest message. Does not implicitly {@link google.cloud.compute.v1.ListSubnetworksRequest.verify|verify} messages.
                     * @param message ListSubnetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSubnetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListSubnetworksRequest.verify|verify} messages.
                     * @param message ListSubnetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSubnetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSubnetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListSubnetworksRequest;

                    /**
                     * Decodes a ListSubnetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSubnetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListSubnetworksRequest;

                    /**
                     * Verifies a ListSubnetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSubnetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSubnetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListSubnetworksRequest;

                    /**
                     * Creates a plain object from a ListSubnetworksRequest message. Also converts values to other types if specified.
                     * @param message ListSubnetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListSubnetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSubnetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSubnetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListSubnetworksRequest {

                    /** Views enum. */
                    enum Views {
                        UNDEFINED_VIEWS = 0,
                        DEFAULT = 115302945,
                        WITH_UTILIZATION = 504090633
                    }
                }

                /** Properties of a ListTargetGrpcProxiesRequest. */
                interface IListTargetGrpcProxiesRequest {

                    /** ListTargetGrpcProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetGrpcProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetGrpcProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetGrpcProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetGrpcProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetGrpcProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetGrpcProxiesRequest. */
                class ListTargetGrpcProxiesRequest implements IListTargetGrpcProxiesRequest {

                    /**
                     * Constructs a new ListTargetGrpcProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListTargetGrpcProxiesRequest);

                    /** ListTargetGrpcProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetGrpcProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetGrpcProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetGrpcProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetGrpcProxiesRequest project. */
                    public project: string;

                    /** ListTargetGrpcProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetGrpcProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetGrpcProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListTargetGrpcProxiesRequest): google.cloud.compute.v1.ListTargetGrpcProxiesRequest;

                    /**
                     * Encodes the specified ListTargetGrpcProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListTargetGrpcProxiesRequest.verify|verify} messages.
                     * @param message ListTargetGrpcProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListTargetGrpcProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetGrpcProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListTargetGrpcProxiesRequest.verify|verify} messages.
                     * @param message ListTargetGrpcProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListTargetGrpcProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetGrpcProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetGrpcProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListTargetGrpcProxiesRequest;

                    /**
                     * Decodes a ListTargetGrpcProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetGrpcProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListTargetGrpcProxiesRequest;

                    /**
                     * Verifies a ListTargetGrpcProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetGrpcProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetGrpcProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListTargetGrpcProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetGrpcProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetGrpcProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListTargetGrpcProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetGrpcProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetGrpcProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetHttpProxiesRequest. */
                interface IListTargetHttpProxiesRequest {

                    /** ListTargetHttpProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetHttpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetHttpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetHttpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetHttpProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetHttpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetHttpProxiesRequest. */
                class ListTargetHttpProxiesRequest implements IListTargetHttpProxiesRequest {

                    /**
                     * Constructs a new ListTargetHttpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListTargetHttpProxiesRequest);

                    /** ListTargetHttpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetHttpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetHttpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetHttpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetHttpProxiesRequest project. */
                    public project: string;

                    /** ListTargetHttpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetHttpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetHttpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListTargetHttpProxiesRequest): google.cloud.compute.v1.ListTargetHttpProxiesRequest;

                    /**
                     * Encodes the specified ListTargetHttpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message ListTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetHttpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message ListTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetHttpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListTargetHttpProxiesRequest;

                    /**
                     * Decodes a ListTargetHttpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListTargetHttpProxiesRequest;

                    /**
                     * Verifies a ListTargetHttpProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetHttpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetHttpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListTargetHttpProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetHttpProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetHttpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListTargetHttpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetHttpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetHttpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetHttpsProxiesRequest. */
                interface IListTargetHttpsProxiesRequest {

                    /** ListTargetHttpsProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetHttpsProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetHttpsProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetHttpsProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetHttpsProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetHttpsProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetHttpsProxiesRequest. */
                class ListTargetHttpsProxiesRequest implements IListTargetHttpsProxiesRequest {

                    /**
                     * Constructs a new ListTargetHttpsProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListTargetHttpsProxiesRequest);

                    /** ListTargetHttpsProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetHttpsProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetHttpsProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetHttpsProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetHttpsProxiesRequest project. */
                    public project: string;

                    /** ListTargetHttpsProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetHttpsProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetHttpsProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListTargetHttpsProxiesRequest): google.cloud.compute.v1.ListTargetHttpsProxiesRequest;

                    /**
                     * Encodes the specified ListTargetHttpsProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message ListTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetHttpsProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message ListTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetHttpsProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListTargetHttpsProxiesRequest;

                    /**
                     * Decodes a ListTargetHttpsProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListTargetHttpsProxiesRequest;

                    /**
                     * Verifies a ListTargetHttpsProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetHttpsProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetHttpsProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListTargetHttpsProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetHttpsProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetHttpsProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListTargetHttpsProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetHttpsProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetHttpsProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetInstancesRequest. */
                interface IListTargetInstancesRequest {

                    /** ListTargetInstancesRequest filter */
                    filter?: (string|null);

                    /** ListTargetInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetInstancesRequest project */
                    project?: (string|null);

                    /** ListTargetInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListTargetInstancesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListTargetInstancesRequest. */
                class ListTargetInstancesRequest implements IListTargetInstancesRequest {

                    /**
                     * Constructs a new ListTargetInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListTargetInstancesRequest);

                    /** ListTargetInstancesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetInstancesRequest project. */
                    public project: string;

                    /** ListTargetInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListTargetInstancesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListTargetInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListTargetInstancesRequest): google.cloud.compute.v1.ListTargetInstancesRequest;

                    /**
                     * Encodes the specified ListTargetInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListTargetInstancesRequest.verify|verify} messages.
                     * @param message ListTargetInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListTargetInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListTargetInstancesRequest.verify|verify} messages.
                     * @param message ListTargetInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListTargetInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListTargetInstancesRequest;

                    /**
                     * Decodes a ListTargetInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListTargetInstancesRequest;

                    /**
                     * Verifies a ListTargetInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListTargetInstancesRequest;

                    /**
                     * Creates a plain object from a ListTargetInstancesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListTargetInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetPoolsRequest. */
                interface IListTargetPoolsRequest {

                    /** ListTargetPoolsRequest filter */
                    filter?: (string|null);

                    /** ListTargetPoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetPoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetPoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetPoolsRequest project */
                    project?: (string|null);

                    /** ListTargetPoolsRequest region */
                    region?: (string|null);

                    /** ListTargetPoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetPoolsRequest. */
                class ListTargetPoolsRequest implements IListTargetPoolsRequest {

                    /**
                     * Constructs a new ListTargetPoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListTargetPoolsRequest);

                    /** ListTargetPoolsRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetPoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetPoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetPoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetPoolsRequest project. */
                    public project: string;

                    /** ListTargetPoolsRequest region. */
                    public region: string;

                    /** ListTargetPoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetPoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetPoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListTargetPoolsRequest): google.cloud.compute.v1.ListTargetPoolsRequest;

                    /**
                     * Encodes the specified ListTargetPoolsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListTargetPoolsRequest.verify|verify} messages.
                     * @param message ListTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetPoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListTargetPoolsRequest.verify|verify} messages.
                     * @param message ListTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetPoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListTargetPoolsRequest;

                    /**
                     * Decodes a ListTargetPoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListTargetPoolsRequest;

                    /**
                     * Verifies a ListTargetPoolsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetPoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetPoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListTargetPoolsRequest;

                    /**
                     * Creates a plain object from a ListTargetPoolsRequest message. Also converts values to other types if specified.
                     * @param message ListTargetPoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListTargetPoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetPoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetPoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetSslProxiesRequest. */
                interface IListTargetSslProxiesRequest {

                    /** ListTargetSslProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetSslProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetSslProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetSslProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetSslProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetSslProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetSslProxiesRequest. */
                class ListTargetSslProxiesRequest implements IListTargetSslProxiesRequest {

                    /**
                     * Constructs a new ListTargetSslProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListTargetSslProxiesRequest);

                    /** ListTargetSslProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetSslProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetSslProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetSslProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetSslProxiesRequest project. */
                    public project: string;

                    /** ListTargetSslProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetSslProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetSslProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListTargetSslProxiesRequest): google.cloud.compute.v1.ListTargetSslProxiesRequest;

                    /**
                     * Encodes the specified ListTargetSslProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListTargetSslProxiesRequest.verify|verify} messages.
                     * @param message ListTargetSslProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListTargetSslProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetSslProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListTargetSslProxiesRequest.verify|verify} messages.
                     * @param message ListTargetSslProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListTargetSslProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetSslProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetSslProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListTargetSslProxiesRequest;

                    /**
                     * Decodes a ListTargetSslProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetSslProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListTargetSslProxiesRequest;

                    /**
                     * Verifies a ListTargetSslProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetSslProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetSslProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListTargetSslProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetSslProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetSslProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListTargetSslProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetSslProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetSslProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetTcpProxiesRequest. */
                interface IListTargetTcpProxiesRequest {

                    /** ListTargetTcpProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetTcpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetTcpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetTcpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetTcpProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetTcpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetTcpProxiesRequest. */
                class ListTargetTcpProxiesRequest implements IListTargetTcpProxiesRequest {

                    /**
                     * Constructs a new ListTargetTcpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListTargetTcpProxiesRequest);

                    /** ListTargetTcpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetTcpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetTcpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetTcpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetTcpProxiesRequest project. */
                    public project: string;

                    /** ListTargetTcpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetTcpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetTcpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListTargetTcpProxiesRequest): google.cloud.compute.v1.ListTargetTcpProxiesRequest;

                    /**
                     * Encodes the specified ListTargetTcpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message ListTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetTcpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message ListTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetTcpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListTargetTcpProxiesRequest;

                    /**
                     * Decodes a ListTargetTcpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListTargetTcpProxiesRequest;

                    /**
                     * Verifies a ListTargetTcpProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetTcpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetTcpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListTargetTcpProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetTcpProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetTcpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListTargetTcpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetTcpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetTcpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetVpnGatewaysRequest. */
                interface IListTargetVpnGatewaysRequest {

                    /** ListTargetVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** ListTargetVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetVpnGatewaysRequest project */
                    project?: (string|null);

                    /** ListTargetVpnGatewaysRequest region */
                    region?: (string|null);

                    /** ListTargetVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetVpnGatewaysRequest. */
                class ListTargetVpnGatewaysRequest implements IListTargetVpnGatewaysRequest {

                    /**
                     * Constructs a new ListTargetVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListTargetVpnGatewaysRequest);

                    /** ListTargetVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetVpnGatewaysRequest project. */
                    public project: string;

                    /** ListTargetVpnGatewaysRequest region. */
                    public region: string;

                    /** ListTargetVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListTargetVpnGatewaysRequest): google.cloud.compute.v1.ListTargetVpnGatewaysRequest;

                    /**
                     * Encodes the specified ListTargetVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1.ListTargetVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListTargetVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListTargetVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListTargetVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListTargetVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListTargetVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListTargetVpnGatewaysRequest;

                    /**
                     * Decodes a ListTargetVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListTargetVpnGatewaysRequest;

                    /**
                     * Verifies a ListTargetVpnGatewaysRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListTargetVpnGatewaysRequest;

                    /**
                     * Creates a plain object from a ListTargetVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message ListTargetVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListTargetVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListUrlMapsRequest. */
                interface IListUrlMapsRequest {

                    /** ListUrlMapsRequest filter */
                    filter?: (string|null);

                    /** ListUrlMapsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUrlMapsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUrlMapsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUrlMapsRequest project */
                    project?: (string|null);

                    /** ListUrlMapsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListUrlMapsRequest. */
                class ListUrlMapsRequest implements IListUrlMapsRequest {

                    /**
                     * Constructs a new ListUrlMapsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListUrlMapsRequest);

                    /** ListUrlMapsRequest filter. */
                    public filter?: (string|null);

                    /** ListUrlMapsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUrlMapsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUrlMapsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUrlMapsRequest project. */
                    public project: string;

                    /** ListUrlMapsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListUrlMapsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUrlMapsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListUrlMapsRequest): google.cloud.compute.v1.ListUrlMapsRequest;

                    /**
                     * Encodes the specified ListUrlMapsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListUrlMapsRequest.verify|verify} messages.
                     * @param message ListUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUrlMapsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListUrlMapsRequest.verify|verify} messages.
                     * @param message ListUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListUrlMapsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListUrlMapsRequest;

                    /**
                     * Decodes a ListUrlMapsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListUrlMapsRequest;

                    /**
                     * Verifies a ListUrlMapsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListUrlMapsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListUrlMapsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListUrlMapsRequest;

                    /**
                     * Creates a plain object from a ListUrlMapsRequest message. Also converts values to other types if specified.
                     * @param message ListUrlMapsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListUrlMapsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListUrlMapsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListUrlMapsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListUsableBackendServicesRequest. */
                interface IListUsableBackendServicesRequest {

                    /** ListUsableBackendServicesRequest filter */
                    filter?: (string|null);

                    /** ListUsableBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUsableBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUsableBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUsableBackendServicesRequest project */
                    project?: (string|null);

                    /** ListUsableBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListUsableBackendServicesRequest. */
                class ListUsableBackendServicesRequest implements IListUsableBackendServicesRequest {

                    /**
                     * Constructs a new ListUsableBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListUsableBackendServicesRequest);

                    /** ListUsableBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListUsableBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUsableBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUsableBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUsableBackendServicesRequest project. */
                    public project: string;

                    /** ListUsableBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListUsableBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUsableBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListUsableBackendServicesRequest): google.cloud.compute.v1.ListUsableBackendServicesRequest;

                    /**
                     * Encodes the specified ListUsableBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListUsableBackendServicesRequest.verify|verify} messages.
                     * @param message ListUsableBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListUsableBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUsableBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListUsableBackendServicesRequest.verify|verify} messages.
                     * @param message ListUsableBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListUsableBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListUsableBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListUsableBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListUsableBackendServicesRequest;

                    /**
                     * Decodes a ListUsableBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListUsableBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListUsableBackendServicesRequest;

                    /**
                     * Verifies a ListUsableBackendServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListUsableBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListUsableBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListUsableBackendServicesRequest;

                    /**
                     * Creates a plain object from a ListUsableBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message ListUsableBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListUsableBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListUsableBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListUsableBackendServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListUsableRegionBackendServicesRequest. */
                interface IListUsableRegionBackendServicesRequest {

                    /** ListUsableRegionBackendServicesRequest filter */
                    filter?: (string|null);

                    /** ListUsableRegionBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUsableRegionBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUsableRegionBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUsableRegionBackendServicesRequest project */
                    project?: (string|null);

                    /** ListUsableRegionBackendServicesRequest region */
                    region?: (string|null);

                    /** ListUsableRegionBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListUsableRegionBackendServicesRequest. */
                class ListUsableRegionBackendServicesRequest implements IListUsableRegionBackendServicesRequest {

                    /**
                     * Constructs a new ListUsableRegionBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListUsableRegionBackendServicesRequest);

                    /** ListUsableRegionBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListUsableRegionBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUsableRegionBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUsableRegionBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUsableRegionBackendServicesRequest project. */
                    public project: string;

                    /** ListUsableRegionBackendServicesRequest region. */
                    public region: string;

                    /** ListUsableRegionBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListUsableRegionBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUsableRegionBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListUsableRegionBackendServicesRequest): google.cloud.compute.v1.ListUsableRegionBackendServicesRequest;

                    /**
                     * Encodes the specified ListUsableRegionBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListUsableRegionBackendServicesRequest.verify|verify} messages.
                     * @param message ListUsableRegionBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListUsableRegionBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUsableRegionBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListUsableRegionBackendServicesRequest.verify|verify} messages.
                     * @param message ListUsableRegionBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListUsableRegionBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListUsableRegionBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListUsableRegionBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListUsableRegionBackendServicesRequest;

                    /**
                     * Decodes a ListUsableRegionBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListUsableRegionBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListUsableRegionBackendServicesRequest;

                    /**
                     * Verifies a ListUsableRegionBackendServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListUsableRegionBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListUsableRegionBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListUsableRegionBackendServicesRequest;

                    /**
                     * Creates a plain object from a ListUsableRegionBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message ListUsableRegionBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListUsableRegionBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListUsableRegionBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListUsableRegionBackendServicesRequest
                     * @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 filter */
                    filter?: (string|null);

                    /** ListUsableSubnetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUsableSubnetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUsableSubnetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUsableSubnetworksRequest project */
                    project?: (string|null);

                    /** ListUsableSubnetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListUsableSubnetworksRequest serviceProject */
                    serviceProject?: (string|null);
                }

                /** Represents a ListUsableSubnetworksRequest. */
                class ListUsableSubnetworksRequest implements IListUsableSubnetworksRequest {

                    /**
                     * Constructs a new ListUsableSubnetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListUsableSubnetworksRequest);

                    /** ListUsableSubnetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListUsableSubnetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUsableSubnetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUsableSubnetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUsableSubnetworksRequest project. */
                    public project: string;

                    /** ListUsableSubnetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListUsableSubnetworksRequest serviceProject. */
                    public serviceProject?: (string|null);

                    /**
                     * Creates a new ListUsableSubnetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUsableSubnetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListUsableSubnetworksRequest): google.cloud.compute.v1.ListUsableSubnetworksRequest;

                    /**
                     * Encodes the specified ListUsableSubnetworksRequest message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IListUsableSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUsableSubnetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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 ListVpnGatewaysRequest. */
                interface IListVpnGatewaysRequest {

                    /** ListVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** ListVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** ListVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** ListVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** ListVpnGatewaysRequest project */
                    project?: (string|null);

                    /** ListVpnGatewaysRequest region */
                    region?: (string|null);

                    /** ListVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListVpnGatewaysRequest. */
                class ListVpnGatewaysRequest implements IListVpnGatewaysRequest {

                    /**
                     * Constructs a new ListVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListVpnGatewaysRequest);

                    /** ListVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** ListVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListVpnGatewaysRequest project. */
                    public project: string;

                    /** ListVpnGatewaysRequest region. */
                    public region: string;

                    /** ListVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListVpnGatewaysRequest): google.cloud.compute.v1.ListVpnGatewaysRequest;

                    /**
                     * Encodes the specified ListVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1.ListVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListVpnGatewaysRequest;

                    /**
                     * Decodes a ListVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListVpnGatewaysRequest;

                    /**
                     * Verifies a ListVpnGatewaysRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListVpnGatewaysRequest;

                    /**
                     * Creates a plain object from a ListVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message ListVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListVpnTunnelsRequest. */
                interface IListVpnTunnelsRequest {

                    /** ListVpnTunnelsRequest filter */
                    filter?: (string|null);

                    /** ListVpnTunnelsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListVpnTunnelsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListVpnTunnelsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListVpnTunnelsRequest project */
                    project?: (string|null);

                    /** ListVpnTunnelsRequest region */
                    region?: (string|null);

                    /** ListVpnTunnelsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListVpnTunnelsRequest. */
                class ListVpnTunnelsRequest implements IListVpnTunnelsRequest {

                    /**
                     * Constructs a new ListVpnTunnelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListVpnTunnelsRequest);

                    /** ListVpnTunnelsRequest filter. */
                    public filter?: (string|null);

                    /** ListVpnTunnelsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListVpnTunnelsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListVpnTunnelsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListVpnTunnelsRequest project. */
                    public project: string;

                    /** ListVpnTunnelsRequest region. */
                    public region: string;

                    /** ListVpnTunnelsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListVpnTunnelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListVpnTunnelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListVpnTunnelsRequest): google.cloud.compute.v1.ListVpnTunnelsRequest;

                    /**
                     * Encodes the specified ListVpnTunnelsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListVpnTunnelsRequest.verify|verify} messages.
                     * @param message ListVpnTunnelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListVpnTunnelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListVpnTunnelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListVpnTunnelsRequest.verify|verify} messages.
                     * @param message ListVpnTunnelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListVpnTunnelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListVpnTunnelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListVpnTunnelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListVpnTunnelsRequest;

                    /**
                     * Decodes a ListVpnTunnelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListVpnTunnelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListVpnTunnelsRequest;

                    /**
                     * Verifies a ListVpnTunnelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListVpnTunnelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListVpnTunnelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListVpnTunnelsRequest;

                    /**
                     * Creates a plain object from a ListVpnTunnelsRequest message. Also converts values to other types if specified.
                     * @param message ListVpnTunnelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListVpnTunnelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListVpnTunnelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListVpnTunnelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListWireGroupsRequest. */
                interface IListWireGroupsRequest {

                    /** ListWireGroupsRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** ListWireGroupsRequest filter */
                    filter?: (string|null);

                    /** ListWireGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListWireGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListWireGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListWireGroupsRequest project */
                    project?: (string|null);

                    /** ListWireGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListWireGroupsRequest. */
                class ListWireGroupsRequest implements IListWireGroupsRequest {

                    /**
                     * Constructs a new ListWireGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListWireGroupsRequest);

                    /** ListWireGroupsRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** ListWireGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListWireGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListWireGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListWireGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListWireGroupsRequest project. */
                    public project: string;

                    /** ListWireGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListWireGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListWireGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListWireGroupsRequest): google.cloud.compute.v1.ListWireGroupsRequest;

                    /**
                     * Encodes the specified ListWireGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListWireGroupsRequest.verify|verify} messages.
                     * @param message ListWireGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListWireGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListWireGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListWireGroupsRequest.verify|verify} messages.
                     * @param message ListWireGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListWireGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListWireGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListWireGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListWireGroupsRequest;

                    /**
                     * Decodes a ListWireGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListWireGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListWireGroupsRequest;

                    /**
                     * Verifies a ListWireGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListWireGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListWireGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListWireGroupsRequest;

                    /**
                     * Creates a plain object from a ListWireGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListWireGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListWireGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListWireGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListWireGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListXpnHostsProjectsRequest. */
                interface IListXpnHostsProjectsRequest {

                    /** ListXpnHostsProjectsRequest filter */
                    filter?: (string|null);

                    /** ListXpnHostsProjectsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListXpnHostsProjectsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListXpnHostsProjectsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListXpnHostsProjectsRequest project */
                    project?: (string|null);

                    /** ListXpnHostsProjectsRequest projectsListXpnHostsRequestResource */
                    projectsListXpnHostsRequestResource?: (google.cloud.compute.v1.IProjectsListXpnHostsRequest|null);

                    /** ListXpnHostsProjectsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListXpnHostsProjectsRequest. */
                class ListXpnHostsProjectsRequest implements IListXpnHostsProjectsRequest {

                    /**
                     * Constructs a new ListXpnHostsProjectsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListXpnHostsProjectsRequest);

                    /** ListXpnHostsProjectsRequest filter. */
                    public filter?: (string|null);

                    /** ListXpnHostsProjectsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListXpnHostsProjectsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListXpnHostsProjectsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListXpnHostsProjectsRequest project. */
                    public project: string;

                    /** ListXpnHostsProjectsRequest projectsListXpnHostsRequestResource. */
                    public projectsListXpnHostsRequestResource?: (google.cloud.compute.v1.IProjectsListXpnHostsRequest|null);

                    /** ListXpnHostsProjectsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListXpnHostsProjectsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListXpnHostsProjectsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListXpnHostsProjectsRequest): google.cloud.compute.v1.ListXpnHostsProjectsRequest;

                    /**
                     * Encodes the specified ListXpnHostsProjectsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListXpnHostsProjectsRequest.verify|verify} messages.
                     * @param message ListXpnHostsProjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListXpnHostsProjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListXpnHostsProjectsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListXpnHostsProjectsRequest.verify|verify} messages.
                     * @param message ListXpnHostsProjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListXpnHostsProjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListXpnHostsProjectsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListXpnHostsProjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListXpnHostsProjectsRequest;

                    /**
                     * Decodes a ListXpnHostsProjectsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListXpnHostsProjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListXpnHostsProjectsRequest;

                    /**
                     * Verifies a ListXpnHostsProjectsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListXpnHostsProjectsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListXpnHostsProjectsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListXpnHostsProjectsRequest;

                    /**
                     * Creates a plain object from a ListXpnHostsProjectsRequest message. Also converts values to other types if specified.
                     * @param message ListXpnHostsProjectsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListXpnHostsProjectsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListXpnHostsProjectsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListXpnHostsProjectsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListZoneOperationsRequest. */
                interface IListZoneOperationsRequest {

                    /** ListZoneOperationsRequest filter */
                    filter?: (string|null);

                    /** ListZoneOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListZoneOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListZoneOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListZoneOperationsRequest project */
                    project?: (string|null);

                    /** ListZoneOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListZoneOperationsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListZoneOperationsRequest. */
                class ListZoneOperationsRequest implements IListZoneOperationsRequest {

                    /**
                     * Constructs a new ListZoneOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListZoneOperationsRequest);

                    /** ListZoneOperationsRequest filter. */
                    public filter?: (string|null);

                    /** ListZoneOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListZoneOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListZoneOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListZoneOperationsRequest project. */
                    public project: string;

                    /** ListZoneOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListZoneOperationsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListZoneOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListZoneOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListZoneOperationsRequest): google.cloud.compute.v1.ListZoneOperationsRequest;

                    /**
                     * Encodes the specified ListZoneOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1.ListZoneOperationsRequest.verify|verify} messages.
                     * @param message ListZoneOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListZoneOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListZoneOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListZoneOperationsRequest.verify|verify} messages.
                     * @param message ListZoneOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListZoneOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListZoneOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListZoneOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListZoneOperationsRequest;

                    /**
                     * Decodes a ListZoneOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListZoneOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListZoneOperationsRequest;

                    /**
                     * Verifies a ListZoneOperationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListZoneOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListZoneOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListZoneOperationsRequest;

                    /**
                     * Creates a plain object from a ListZoneOperationsRequest message. Also converts values to other types if specified.
                     * @param message ListZoneOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListZoneOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListZoneOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListZoneOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListZonesRequest. */
                interface IListZonesRequest {

                    /** ListZonesRequest filter */
                    filter?: (string|null);

                    /** ListZonesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListZonesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListZonesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListZonesRequest project */
                    project?: (string|null);

                    /** ListZonesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListZonesRequest. */
                class ListZonesRequest implements IListZonesRequest {

                    /**
                     * Constructs a new ListZonesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IListZonesRequest);

                    /** ListZonesRequest filter. */
                    public filter?: (string|null);

                    /** ListZonesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListZonesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListZonesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListZonesRequest project. */
                    public project: string;

                    /** ListZonesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListZonesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListZonesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IListZonesRequest): google.cloud.compute.v1.ListZonesRequest;

                    /**
                     * Encodes the specified ListZonesRequest message. Does not implicitly {@link google.cloud.compute.v1.ListZonesRequest.verify|verify} messages.
                     * @param message ListZonesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IListZonesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListZonesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ListZonesRequest.verify|verify} messages.
                     * @param message ListZonesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IListZonesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListZonesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListZonesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ListZonesRequest;

                    /**
                     * Decodes a ListZonesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListZonesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ListZonesRequest;

                    /**
                     * Verifies a ListZonesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListZonesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListZonesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ListZonesRequest;

                    /**
                     * Creates a plain object from a ListZonesRequest message. Also converts values to other types if specified.
                     * @param message ListZonesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ListZonesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListZonesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListZonesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LocalDisk. */
                interface ILocalDisk {

                    /** LocalDisk diskCount */
                    diskCount?: (number|null);

                    /** LocalDisk diskSizeGb */
                    diskSizeGb?: (number|null);

                    /** LocalDisk diskType */
                    diskType?: (string|null);
                }

                /** Represents a LocalDisk. */
                class LocalDisk implements ILocalDisk {

                    /**
                     * Constructs a new LocalDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILocalDisk);

                    /** LocalDisk diskCount. */
                    public diskCount?: (number|null);

                    /** LocalDisk diskSizeGb. */
                    public diskSizeGb?: (number|null);

                    /** LocalDisk diskType. */
                    public diskType?: (string|null);

                    /**
                     * Creates a new LocalDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocalDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILocalDisk): google.cloud.compute.v1.LocalDisk;

                    /**
                     * Encodes the specified LocalDisk message. Does not implicitly {@link google.cloud.compute.v1.LocalDisk.verify|verify} messages.
                     * @param message LocalDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILocalDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocalDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LocalDisk.verify|verify} messages.
                     * @param message LocalDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILocalDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocalDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocalDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LocalDisk;

                    /**
                     * Decodes a LocalDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocalDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LocalDisk;

                    /**
                     * Verifies a LocalDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocalDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocalDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LocalDisk;

                    /**
                     * Creates a plain object from a LocalDisk message. Also converts values to other types if specified.
                     * @param message LocalDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LocalDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocalDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocalDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LocalizedMessage. */
                interface ILocalizedMessage {

                    /** LocalizedMessage locale */
                    locale?: (string|null);

                    /** LocalizedMessage message */
                    message?: (string|null);
                }

                /** Represents a LocalizedMessage. */
                class LocalizedMessage implements ILocalizedMessage {

                    /**
                     * Constructs a new LocalizedMessage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILocalizedMessage);

                    /** LocalizedMessage locale. */
                    public locale?: (string|null);

                    /** LocalizedMessage message. */
                    public message?: (string|null);

                    /**
                     * Creates a new LocalizedMessage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocalizedMessage instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILocalizedMessage): google.cloud.compute.v1.LocalizedMessage;

                    /**
                     * Encodes the specified LocalizedMessage message. Does not implicitly {@link google.cloud.compute.v1.LocalizedMessage.verify|verify} messages.
                     * @param message LocalizedMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILocalizedMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocalizedMessage message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LocalizedMessage.verify|verify} messages.
                     * @param message LocalizedMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILocalizedMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocalizedMessage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocalizedMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LocalizedMessage;

                    /**
                     * Decodes a LocalizedMessage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocalizedMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LocalizedMessage;

                    /**
                     * Verifies a LocalizedMessage message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocalizedMessage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocalizedMessage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LocalizedMessage;

                    /**
                     * Creates a plain object from a LocalizedMessage message. Also converts values to other types if specified.
                     * @param message LocalizedMessage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LocalizedMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocalizedMessage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocalizedMessage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LocationPolicy. */
                interface ILocationPolicy {

                    /** LocationPolicy locations */
                    locations?: ({ [k: string]: google.cloud.compute.v1.ILocationPolicyLocation }|null);

                    /** LocationPolicy targetShape */
                    targetShape?: (string|null);

                    /** LocationPolicy zones */
                    zones?: (google.cloud.compute.v1.ILocationPolicyZoneConfiguration[]|null);
                }

                /** Represents a LocationPolicy. */
                class LocationPolicy implements ILocationPolicy {

                    /**
                     * Constructs a new LocationPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILocationPolicy);

                    /** LocationPolicy locations. */
                    public locations: { [k: string]: google.cloud.compute.v1.ILocationPolicyLocation };

                    /** LocationPolicy targetShape. */
                    public targetShape?: (string|null);

                    /** LocationPolicy zones. */
                    public zones: google.cloud.compute.v1.ILocationPolicyZoneConfiguration[];

                    /**
                     * Creates a new LocationPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocationPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILocationPolicy): google.cloud.compute.v1.LocationPolicy;

                    /**
                     * Encodes the specified LocationPolicy message. Does not implicitly {@link google.cloud.compute.v1.LocationPolicy.verify|verify} messages.
                     * @param message LocationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocationPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LocationPolicy.verify|verify} messages.
                     * @param message LocationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocationPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LocationPolicy;

                    /**
                     * Decodes a LocationPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LocationPolicy;

                    /**
                     * Verifies a LocationPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocationPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LocationPolicy;

                    /**
                     * Creates a plain object from a LocationPolicy message. Also converts values to other types if specified.
                     * @param message LocationPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LocationPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocationPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocationPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace LocationPolicy {

                    /** TargetShape enum. */
                    enum TargetShape {
                        UNDEFINED_TARGET_SHAPE = 0,
                        ANY = 64972,
                        ANY_SINGLE_ZONE = 61100880,
                        BALANCED = 468409608
                    }
                }

                /** Properties of a LocationPolicyLocation. */
                interface ILocationPolicyLocation {

                    /** LocationPolicyLocation constraints */
                    constraints?: (google.cloud.compute.v1.ILocationPolicyLocationConstraints|null);

                    /** LocationPolicyLocation preference */
                    preference?: (string|null);
                }

                /** Represents a LocationPolicyLocation. */
                class LocationPolicyLocation implements ILocationPolicyLocation {

                    /**
                     * Constructs a new LocationPolicyLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILocationPolicyLocation);

                    /** LocationPolicyLocation constraints. */
                    public constraints?: (google.cloud.compute.v1.ILocationPolicyLocationConstraints|null);

                    /** LocationPolicyLocation preference. */
                    public preference?: (string|null);

                    /**
                     * Creates a new LocationPolicyLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocationPolicyLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILocationPolicyLocation): google.cloud.compute.v1.LocationPolicyLocation;

                    /**
                     * Encodes the specified LocationPolicyLocation message. Does not implicitly {@link google.cloud.compute.v1.LocationPolicyLocation.verify|verify} messages.
                     * @param message LocationPolicyLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILocationPolicyLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocationPolicyLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LocationPolicyLocation.verify|verify} messages.
                     * @param message LocationPolicyLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILocationPolicyLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocationPolicyLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationPolicyLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LocationPolicyLocation;

                    /**
                     * Decodes a LocationPolicyLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationPolicyLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LocationPolicyLocation;

                    /**
                     * Verifies a LocationPolicyLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocationPolicyLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationPolicyLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LocationPolicyLocation;

                    /**
                     * Creates a plain object from a LocationPolicyLocation message. Also converts values to other types if specified.
                     * @param message LocationPolicyLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LocationPolicyLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocationPolicyLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocationPolicyLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace LocationPolicyLocation {

                    /** Preference enum. */
                    enum Preference {
                        UNDEFINED_PREFERENCE = 0,
                        ALLOW = 62368553,
                        DENY = 2094604,
                        PREFERENCE_UNSPECIFIED = 496219571
                    }
                }

                /** Properties of a LocationPolicyLocationConstraints. */
                interface ILocationPolicyLocationConstraints {

                    /** LocationPolicyLocationConstraints maxCount */
                    maxCount?: (number|null);
                }

                /** Represents a LocationPolicyLocationConstraints. */
                class LocationPolicyLocationConstraints implements ILocationPolicyLocationConstraints {

                    /**
                     * Constructs a new LocationPolicyLocationConstraints.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILocationPolicyLocationConstraints);

                    /** LocationPolicyLocationConstraints maxCount. */
                    public maxCount?: (number|null);

                    /**
                     * Creates a new LocationPolicyLocationConstraints instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocationPolicyLocationConstraints instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILocationPolicyLocationConstraints): google.cloud.compute.v1.LocationPolicyLocationConstraints;

                    /**
                     * Encodes the specified LocationPolicyLocationConstraints message. Does not implicitly {@link google.cloud.compute.v1.LocationPolicyLocationConstraints.verify|verify} messages.
                     * @param message LocationPolicyLocationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILocationPolicyLocationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocationPolicyLocationConstraints message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LocationPolicyLocationConstraints.verify|verify} messages.
                     * @param message LocationPolicyLocationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILocationPolicyLocationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocationPolicyLocationConstraints message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationPolicyLocationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LocationPolicyLocationConstraints;

                    /**
                     * Decodes a LocationPolicyLocationConstraints message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationPolicyLocationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LocationPolicyLocationConstraints;

                    /**
                     * Verifies a LocationPolicyLocationConstraints message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocationPolicyLocationConstraints message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationPolicyLocationConstraints
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LocationPolicyLocationConstraints;

                    /**
                     * Creates a plain object from a LocationPolicyLocationConstraints message. Also converts values to other types if specified.
                     * @param message LocationPolicyLocationConstraints
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LocationPolicyLocationConstraints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocationPolicyLocationConstraints to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocationPolicyLocationConstraints
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LocationPolicyZoneConfiguration. */
                interface ILocationPolicyZoneConfiguration {

                    /** LocationPolicyZoneConfiguration zone */
                    zone?: (string|null);
                }

                /** Represents a LocationPolicyZoneConfiguration. */
                class LocationPolicyZoneConfiguration implements ILocationPolicyZoneConfiguration {

                    /**
                     * Constructs a new LocationPolicyZoneConfiguration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ILocationPolicyZoneConfiguration);

                    /** LocationPolicyZoneConfiguration zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new LocationPolicyZoneConfiguration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocationPolicyZoneConfiguration instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ILocationPolicyZoneConfiguration): google.cloud.compute.v1.LocationPolicyZoneConfiguration;

                    /**
                     * Encodes the specified LocationPolicyZoneConfiguration message. Does not implicitly {@link google.cloud.compute.v1.LocationPolicyZoneConfiguration.verify|verify} messages.
                     * @param message LocationPolicyZoneConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ILocationPolicyZoneConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocationPolicyZoneConfiguration message, length delimited. Does not implicitly {@link google.cloud.compute.v1.LocationPolicyZoneConfiguration.verify|verify} messages.
                     * @param message LocationPolicyZoneConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ILocationPolicyZoneConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocationPolicyZoneConfiguration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationPolicyZoneConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.LocationPolicyZoneConfiguration;

                    /**
                     * Decodes a LocationPolicyZoneConfiguration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationPolicyZoneConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.LocationPolicyZoneConfiguration;

                    /**
                     * Verifies a LocationPolicyZoneConfiguration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocationPolicyZoneConfiguration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationPolicyZoneConfiguration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.LocationPolicyZoneConfiguration;

                    /**
                     * Creates a plain object from a LocationPolicyZoneConfiguration message. Also converts values to other types if specified.
                     * @param message LocationPolicyZoneConfiguration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.LocationPolicyZoneConfiguration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocationPolicyZoneConfiguration to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocationPolicyZoneConfiguration
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineImage. */
                interface IMachineImage {

                    /** MachineImage creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** MachineImage description */
                    description?: (string|null);

                    /** MachineImage guestFlush */
                    guestFlush?: (boolean|null);

                    /** MachineImage id */
                    id?: (number|Long|string|null);

                    /** MachineImage instanceProperties */
                    instanceProperties?: (google.cloud.compute.v1.IInstanceProperties|null);

                    /** MachineImage kind */
                    kind?: (string|null);

                    /** MachineImage labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** MachineImage labels */
                    labels?: ({ [k: string]: string }|null);

                    /** MachineImage machineImageEncryptionKey */
                    machineImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** MachineImage name */
                    name?: (string|null);

                    /** MachineImage params */
                    params?: (google.cloud.compute.v1.IMachineImageParams|null);

                    /** MachineImage satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** MachineImage satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** MachineImage savedDisks */
                    savedDisks?: (google.cloud.compute.v1.ISavedDisk[]|null);

                    /** MachineImage selfLink */
                    selfLink?: (string|null);

                    /** MachineImage sourceDiskEncryptionKeys */
                    sourceDiskEncryptionKeys?: (google.cloud.compute.v1.ISourceDiskEncryptionKey[]|null);

                    /** MachineImage sourceInstance */
                    sourceInstance?: (string|null);

                    /** MachineImage sourceInstanceProperties */
                    sourceInstanceProperties?: (google.cloud.compute.v1.ISourceInstanceProperties|null);

                    /** MachineImage status */
                    status?: (string|null);

                    /** MachineImage storageLocations */
                    storageLocations?: (string[]|null);

                    /** MachineImage totalStorageBytes */
                    totalStorageBytes?: (number|Long|string|null);
                }

                /** Represents a MachineImage. */
                class MachineImage implements IMachineImage {

                    /**
                     * Constructs a new MachineImage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMachineImage);

                    /** MachineImage creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** MachineImage description. */
                    public description?: (string|null);

                    /** MachineImage guestFlush. */
                    public guestFlush?: (boolean|null);

                    /** MachineImage id. */
                    public id?: (number|Long|string|null);

                    /** MachineImage instanceProperties. */
                    public instanceProperties?: (google.cloud.compute.v1.IInstanceProperties|null);

                    /** MachineImage kind. */
                    public kind?: (string|null);

                    /** MachineImage labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** MachineImage labels. */
                    public labels: { [k: string]: string };

                    /** MachineImage machineImageEncryptionKey. */
                    public machineImageEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** MachineImage name. */
                    public name?: (string|null);

                    /** MachineImage params. */
                    public params?: (google.cloud.compute.v1.IMachineImageParams|null);

                    /** MachineImage satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** MachineImage satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** MachineImage savedDisks. */
                    public savedDisks: google.cloud.compute.v1.ISavedDisk[];

                    /** MachineImage selfLink. */
                    public selfLink?: (string|null);

                    /** MachineImage sourceDiskEncryptionKeys. */
                    public sourceDiskEncryptionKeys: google.cloud.compute.v1.ISourceDiskEncryptionKey[];

                    /** MachineImage sourceInstance. */
                    public sourceInstance?: (string|null);

                    /** MachineImage sourceInstanceProperties. */
                    public sourceInstanceProperties?: (google.cloud.compute.v1.ISourceInstanceProperties|null);

                    /** MachineImage status. */
                    public status?: (string|null);

                    /** MachineImage storageLocations. */
                    public storageLocations: string[];

                    /** MachineImage totalStorageBytes. */
                    public totalStorageBytes?: (number|Long|string|null);

                    /**
                     * Creates a new MachineImage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineImage instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMachineImage): google.cloud.compute.v1.MachineImage;

                    /**
                     * Encodes the specified MachineImage message. Does not implicitly {@link google.cloud.compute.v1.MachineImage.verify|verify} messages.
                     * @param message MachineImage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMachineImage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineImage message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MachineImage.verify|verify} messages.
                     * @param message MachineImage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMachineImage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineImage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineImage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MachineImage;

                    /**
                     * Decodes a MachineImage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineImage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MachineImage;

                    /**
                     * Verifies a MachineImage message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineImage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineImage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MachineImage;

                    /**
                     * Creates a plain object from a MachineImage message. Also converts values to other types if specified.
                     * @param message MachineImage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MachineImage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineImage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineImage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MachineImage {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963,
                        UPLOADING = 267603489
                    }
                }

                /** Properties of a MachineImageList. */
                interface IMachineImageList {

                    /** MachineImageList id */
                    id?: (string|null);

                    /** MachineImageList items */
                    items?: (google.cloud.compute.v1.IMachineImage[]|null);

                    /** MachineImageList kind */
                    kind?: (string|null);

                    /** MachineImageList nextPageToken */
                    nextPageToken?: (string|null);

                    /** MachineImageList selfLink */
                    selfLink?: (string|null);

                    /** MachineImageList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a MachineImageList. */
                class MachineImageList implements IMachineImageList {

                    /**
                     * Constructs a new MachineImageList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMachineImageList);

                    /** MachineImageList id. */
                    public id?: (string|null);

                    /** MachineImageList items. */
                    public items: google.cloud.compute.v1.IMachineImage[];

                    /** MachineImageList kind. */
                    public kind?: (string|null);

                    /** MachineImageList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** MachineImageList selfLink. */
                    public selfLink?: (string|null);

                    /** MachineImageList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new MachineImageList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineImageList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMachineImageList): google.cloud.compute.v1.MachineImageList;

                    /**
                     * Encodes the specified MachineImageList message. Does not implicitly {@link google.cloud.compute.v1.MachineImageList.verify|verify} messages.
                     * @param message MachineImageList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMachineImageList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineImageList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MachineImageList.verify|verify} messages.
                     * @param message MachineImageList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMachineImageList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineImageList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineImageList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MachineImageList;

                    /**
                     * Decodes a MachineImageList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineImageList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MachineImageList;

                    /**
                     * Verifies a MachineImageList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineImageList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineImageList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MachineImageList;

                    /**
                     * Creates a plain object from a MachineImageList message. Also converts values to other types if specified.
                     * @param message MachineImageList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MachineImageList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineImageList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineImageList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineImageParams. */
                interface IMachineImageParams {

                    /** MachineImageParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a MachineImageParams. */
                class MachineImageParams implements IMachineImageParams {

                    /**
                     * Constructs a new MachineImageParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMachineImageParams);

                    /** MachineImageParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new MachineImageParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineImageParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMachineImageParams): google.cloud.compute.v1.MachineImageParams;

                    /**
                     * Encodes the specified MachineImageParams message. Does not implicitly {@link google.cloud.compute.v1.MachineImageParams.verify|verify} messages.
                     * @param message MachineImageParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMachineImageParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineImageParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MachineImageParams.verify|verify} messages.
                     * @param message MachineImageParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMachineImageParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineImageParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineImageParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MachineImageParams;

                    /**
                     * Decodes a MachineImageParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineImageParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MachineImageParams;

                    /**
                     * Verifies a MachineImageParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineImageParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineImageParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MachineImageParams;

                    /**
                     * Creates a plain object from a MachineImageParams message. Also converts values to other types if specified.
                     * @param message MachineImageParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MachineImageParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineImageParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineImageParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineType. */
                interface IMachineType {

                    /** MachineType accelerators */
                    accelerators?: (google.cloud.compute.v1.IAccelerators[]|null);

                    /** MachineType architecture */
                    architecture?: (string|null);

                    /** MachineType bundledLocalSsds */
                    bundledLocalSsds?: (google.cloud.compute.v1.IBundledLocalSsds|null);

                    /** MachineType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** MachineType deprecated */
                    deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** MachineType description */
                    description?: (string|null);

                    /** MachineType guestCpus */
                    guestCpus?: (number|null);

                    /** MachineType id */
                    id?: (number|Long|string|null);

                    /** MachineType imageSpaceGb */
                    imageSpaceGb?: (number|null);

                    /** MachineType isSharedCpu */
                    isSharedCpu?: (boolean|null);

                    /** MachineType kind */
                    kind?: (string|null);

                    /** MachineType maximumPersistentDisks */
                    maximumPersistentDisks?: (number|null);

                    /** MachineType maximumPersistentDisksSizeGb */
                    maximumPersistentDisksSizeGb?: (number|Long|string|null);

                    /** MachineType memoryMb */
                    memoryMb?: (number|null);

                    /** MachineType name */
                    name?: (string|null);

                    /** MachineType selfLink */
                    selfLink?: (string|null);

                    /** MachineType zone */
                    zone?: (string|null);
                }

                /** Represents a MachineType. */
                class MachineType implements IMachineType {

                    /**
                     * Constructs a new MachineType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMachineType);

                    /** MachineType accelerators. */
                    public accelerators: google.cloud.compute.v1.IAccelerators[];

                    /** MachineType architecture. */
                    public architecture?: (string|null);

                    /** MachineType bundledLocalSsds. */
                    public bundledLocalSsds?: (google.cloud.compute.v1.IBundledLocalSsds|null);

                    /** MachineType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** MachineType deprecated. */
                    public deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** MachineType description. */
                    public description?: (string|null);

                    /** MachineType guestCpus. */
                    public guestCpus?: (number|null);

                    /** MachineType id. */
                    public id?: (number|Long|string|null);

                    /** MachineType imageSpaceGb. */
                    public imageSpaceGb?: (number|null);

                    /** MachineType isSharedCpu. */
                    public isSharedCpu?: (boolean|null);

                    /** MachineType kind. */
                    public kind?: (string|null);

                    /** MachineType maximumPersistentDisks. */
                    public maximumPersistentDisks?: (number|null);

                    /** MachineType maximumPersistentDisksSizeGb. */
                    public maximumPersistentDisksSizeGb?: (number|Long|string|null);

                    /** MachineType memoryMb. */
                    public memoryMb?: (number|null);

                    /** MachineType name. */
                    public name?: (string|null);

                    /** MachineType selfLink. */
                    public selfLink?: (string|null);

                    /** MachineType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new MachineType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineType instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMachineType): google.cloud.compute.v1.MachineType;

                    /**
                     * Encodes the specified MachineType message. Does not implicitly {@link google.cloud.compute.v1.MachineType.verify|verify} messages.
                     * @param message MachineType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMachineType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineType message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MachineType.verify|verify} messages.
                     * @param message MachineType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMachineType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MachineType;

                    /**
                     * Decodes a MachineType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MachineType;

                    /**
                     * Verifies a MachineType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MachineType;

                    /**
                     * Creates a plain object from a MachineType message. Also converts values to other types if specified.
                     * @param message MachineType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MachineType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MachineType {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }
                }

                /** Properties of a MachineTypeAggregatedList. */
                interface IMachineTypeAggregatedList {

                    /** MachineTypeAggregatedList id */
                    id?: (string|null);

                    /** MachineTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IMachineTypesScopedList }|null);

                    /** MachineTypeAggregatedList kind */
                    kind?: (string|null);

                    /** MachineTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** MachineTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** MachineTypeAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** MachineTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a MachineTypeAggregatedList. */
                class MachineTypeAggregatedList implements IMachineTypeAggregatedList {

                    /**
                     * Constructs a new MachineTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMachineTypeAggregatedList);

                    /** MachineTypeAggregatedList id. */
                    public id?: (string|null);

                    /** MachineTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IMachineTypesScopedList };

                    /** MachineTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** MachineTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** MachineTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** MachineTypeAggregatedList unreachables. */
                    public unreachables: string[];

                    /** MachineTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new MachineTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMachineTypeAggregatedList): google.cloud.compute.v1.MachineTypeAggregatedList;

                    /**
                     * Encodes the specified MachineTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.MachineTypeAggregatedList.verify|verify} messages.
                     * @param message MachineTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMachineTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MachineTypeAggregatedList.verify|verify} messages.
                     * @param message MachineTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMachineTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MachineTypeAggregatedList;

                    /**
                     * Decodes a MachineTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MachineTypeAggregatedList;

                    /**
                     * Verifies a MachineTypeAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MachineTypeAggregatedList;

                    /**
                     * Creates a plain object from a MachineTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message MachineTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MachineTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineTypeList. */
                interface IMachineTypeList {

                    /** MachineTypeList id */
                    id?: (string|null);

                    /** MachineTypeList items */
                    items?: (google.cloud.compute.v1.IMachineType[]|null);

                    /** MachineTypeList kind */
                    kind?: (string|null);

                    /** MachineTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** MachineTypeList selfLink */
                    selfLink?: (string|null);

                    /** MachineTypeList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a MachineTypeList. */
                class MachineTypeList implements IMachineTypeList {

                    /**
                     * Constructs a new MachineTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMachineTypeList);

                    /** MachineTypeList id. */
                    public id?: (string|null);

                    /** MachineTypeList items. */
                    public items: google.cloud.compute.v1.IMachineType[];

                    /** MachineTypeList kind. */
                    public kind?: (string|null);

                    /** MachineTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** MachineTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** MachineTypeList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new MachineTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMachineTypeList): google.cloud.compute.v1.MachineTypeList;

                    /**
                     * Encodes the specified MachineTypeList message. Does not implicitly {@link google.cloud.compute.v1.MachineTypeList.verify|verify} messages.
                     * @param message MachineTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMachineTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MachineTypeList.verify|verify} messages.
                     * @param message MachineTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMachineTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MachineTypeList;

                    /**
                     * Decodes a MachineTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MachineTypeList;

                    /**
                     * Verifies a MachineTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MachineTypeList;

                    /**
                     * Creates a plain object from a MachineTypeList message. Also converts values to other types if specified.
                     * @param message MachineTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MachineTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineTypesScopedList. */
                interface IMachineTypesScopedList {

                    /** MachineTypesScopedList machineTypes */
                    machineTypes?: (google.cloud.compute.v1.IMachineType[]|null);

                    /** MachineTypesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a MachineTypesScopedList. */
                class MachineTypesScopedList implements IMachineTypesScopedList {

                    /**
                     * Constructs a new MachineTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMachineTypesScopedList);

                    /** MachineTypesScopedList machineTypes. */
                    public machineTypes: google.cloud.compute.v1.IMachineType[];

                    /** MachineTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new MachineTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMachineTypesScopedList): google.cloud.compute.v1.MachineTypesScopedList;

                    /**
                     * Encodes the specified MachineTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1.MachineTypesScopedList.verify|verify} messages.
                     * @param message MachineTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMachineTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MachineTypesScopedList.verify|verify} messages.
                     * @param message MachineTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMachineTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MachineTypesScopedList;

                    /**
                     * Decodes a MachineTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MachineTypesScopedList;

                    /**
                     * Verifies a MachineTypesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MachineTypesScopedList;

                    /**
                     * Creates a plain object from a MachineTypesScopedList message. Also converts values to other types if specified.
                     * @param message MachineTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MachineTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstance. */
                interface IManagedInstance {

                    /** ManagedInstance currentAction */
                    currentAction?: (string|null);

                    /** ManagedInstance id */
                    id?: (number|Long|string|null);

                    /** ManagedInstance instance */
                    instance?: (string|null);

                    /** ManagedInstance instanceHealth */
                    instanceHealth?: (google.cloud.compute.v1.IManagedInstanceInstanceHealth[]|null);

                    /** ManagedInstance instanceStatus */
                    instanceStatus?: (string|null);

                    /** ManagedInstance lastAttempt */
                    lastAttempt?: (google.cloud.compute.v1.IManagedInstanceLastAttempt|null);

                    /** ManagedInstance name */
                    name?: (string|null);

                    /** ManagedInstance preservedStateFromConfig */
                    preservedStateFromConfig?: (google.cloud.compute.v1.IPreservedState|null);

                    /** ManagedInstance preservedStateFromPolicy */
                    preservedStateFromPolicy?: (google.cloud.compute.v1.IPreservedState|null);

                    /** ManagedInstance propertiesFromFlexibilityPolicy */
                    propertiesFromFlexibilityPolicy?: (google.cloud.compute.v1.IManagedInstancePropertiesFromFlexibilityPolicy|null);

                    /** ManagedInstance version */
                    version?: (google.cloud.compute.v1.IManagedInstanceVersion|null);
                }

                /** Represents a ManagedInstance. */
                class ManagedInstance implements IManagedInstance {

                    /**
                     * Constructs a new ManagedInstance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IManagedInstance);

                    /** ManagedInstance currentAction. */
                    public currentAction?: (string|null);

                    /** ManagedInstance id. */
                    public id?: (number|Long|string|null);

                    /** ManagedInstance instance. */
                    public instance?: (string|null);

                    /** ManagedInstance instanceHealth. */
                    public instanceHealth: google.cloud.compute.v1.IManagedInstanceInstanceHealth[];

                    /** ManagedInstance instanceStatus. */
                    public instanceStatus?: (string|null);

                    /** ManagedInstance lastAttempt. */
                    public lastAttempt?: (google.cloud.compute.v1.IManagedInstanceLastAttempt|null);

                    /** ManagedInstance name. */
                    public name?: (string|null);

                    /** ManagedInstance preservedStateFromConfig. */
                    public preservedStateFromConfig?: (google.cloud.compute.v1.IPreservedState|null);

                    /** ManagedInstance preservedStateFromPolicy. */
                    public preservedStateFromPolicy?: (google.cloud.compute.v1.IPreservedState|null);

                    /** ManagedInstance propertiesFromFlexibilityPolicy. */
                    public propertiesFromFlexibilityPolicy?: (google.cloud.compute.v1.IManagedInstancePropertiesFromFlexibilityPolicy|null);

                    /** ManagedInstance version. */
                    public version?: (google.cloud.compute.v1.IManagedInstanceVersion|null);

                    /**
                     * Creates a new ManagedInstance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstance instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IManagedInstance): google.cloud.compute.v1.ManagedInstance;

                    /**
                     * Encodes the specified ManagedInstance message. Does not implicitly {@link google.cloud.compute.v1.ManagedInstance.verify|verify} messages.
                     * @param message ManagedInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IManagedInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstance message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ManagedInstance.verify|verify} messages.
                     * @param message ManagedInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IManagedInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ManagedInstance;

                    /**
                     * Decodes a ManagedInstance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ManagedInstance;

                    /**
                     * Verifies a ManagedInstance message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ManagedInstance;

                    /**
                     * Creates a plain object from a ManagedInstance message. Also converts values to other types if specified.
                     * @param message ManagedInstance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ManagedInstance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ManagedInstance {

                    /** CurrentAction enum. */
                    enum CurrentAction {
                        UNDEFINED_CURRENT_ACTION = 0,
                        ABANDONING = 388244813,
                        CREATING = 455564985,
                        CREATING_WITHOUT_RETRIES = 428843785,
                        DELETING = 528602024,
                        NONE = 2402104,
                        RECREATING = 287278572,
                        REFRESHING = 163266343,
                        RESTARTING = 320534387,
                        RESUMING = 446856618,
                        STARTING = 488820800,
                        VERIFYING = 16982185
                    }

                    /** InstanceStatus enum. */
                    enum InstanceStatus {
                        UNDEFINED_INSTANCE_STATUS = 0,
                        DEPROVISIONING = 428935662,
                        PENDING = 35394935,
                        PROVISIONING = 290896621,
                        REPAIRING = 413483285,
                        RUNNING = 121282975,
                        STAGING = 431072283,
                        STOPPED = 444276141,
                        STOPPING = 350791796,
                        SUSPENDED = 51223995,
                        SUSPENDING = 514206246,
                        TERMINATED = 250018339
                    }
                }

                /** Properties of a ManagedInstanceInstanceHealth. */
                interface IManagedInstanceInstanceHealth {

                    /** ManagedInstanceInstanceHealth detailedHealthState */
                    detailedHealthState?: (string|null);

                    /** ManagedInstanceInstanceHealth healthCheck */
                    healthCheck?: (string|null);
                }

                /** Represents a ManagedInstanceInstanceHealth. */
                class ManagedInstanceInstanceHealth implements IManagedInstanceInstanceHealth {

                    /**
                     * Constructs a new ManagedInstanceInstanceHealth.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IManagedInstanceInstanceHealth);

                    /** ManagedInstanceInstanceHealth detailedHealthState. */
                    public detailedHealthState?: (string|null);

                    /** ManagedInstanceInstanceHealth healthCheck. */
                    public healthCheck?: (string|null);

                    /**
                     * Creates a new ManagedInstanceInstanceHealth instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceInstanceHealth instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IManagedInstanceInstanceHealth): google.cloud.compute.v1.ManagedInstanceInstanceHealth;

                    /**
                     * Encodes the specified ManagedInstanceInstanceHealth message. Does not implicitly {@link google.cloud.compute.v1.ManagedInstanceInstanceHealth.verify|verify} messages.
                     * @param message ManagedInstanceInstanceHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IManagedInstanceInstanceHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceInstanceHealth message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ManagedInstanceInstanceHealth.verify|verify} messages.
                     * @param message ManagedInstanceInstanceHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IManagedInstanceInstanceHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceInstanceHealth message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceInstanceHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ManagedInstanceInstanceHealth;

                    /**
                     * Decodes a ManagedInstanceInstanceHealth message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceInstanceHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ManagedInstanceInstanceHealth;

                    /**
                     * Verifies a ManagedInstanceInstanceHealth message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceInstanceHealth message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceInstanceHealth
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ManagedInstanceInstanceHealth;

                    /**
                     * Creates a plain object from a ManagedInstanceInstanceHealth message. Also converts values to other types if specified.
                     * @param message ManagedInstanceInstanceHealth
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ManagedInstanceInstanceHealth, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceInstanceHealth to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceInstanceHealth
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ManagedInstanceInstanceHealth {

                    /** DetailedHealthState enum. */
                    enum DetailedHealthState {
                        UNDEFINED_DETAILED_HEALTH_STATE = 0,
                        DRAINING = 480455402,
                        HEALTHY = 439801213,
                        TIMEOUT = 477813057,
                        UNHEALTHY = 462118084,
                        UNKNOWN = 433141802
                    }
                }

                /** Properties of a ManagedInstanceLastAttempt. */
                interface IManagedInstanceLastAttempt {

                    /** ManagedInstanceLastAttempt errors */
                    errors?: (google.cloud.compute.v1.IManagedInstanceLastAttemptErrors|null);
                }

                /** Represents a ManagedInstanceLastAttempt. */
                class ManagedInstanceLastAttempt implements IManagedInstanceLastAttempt {

                    /**
                     * Constructs a new ManagedInstanceLastAttempt.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IManagedInstanceLastAttempt);

                    /** ManagedInstanceLastAttempt errors. */
                    public errors?: (google.cloud.compute.v1.IManagedInstanceLastAttemptErrors|null);

                    /**
                     * Creates a new ManagedInstanceLastAttempt instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceLastAttempt instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IManagedInstanceLastAttempt): google.cloud.compute.v1.ManagedInstanceLastAttempt;

                    /**
                     * Encodes the specified ManagedInstanceLastAttempt message. Does not implicitly {@link google.cloud.compute.v1.ManagedInstanceLastAttempt.verify|verify} messages.
                     * @param message ManagedInstanceLastAttempt message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IManagedInstanceLastAttempt, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceLastAttempt message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ManagedInstanceLastAttempt.verify|verify} messages.
                     * @param message ManagedInstanceLastAttempt message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IManagedInstanceLastAttempt, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceLastAttempt message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceLastAttempt
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ManagedInstanceLastAttempt;

                    /**
                     * Decodes a ManagedInstanceLastAttempt message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceLastAttempt
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ManagedInstanceLastAttempt;

                    /**
                     * Verifies a ManagedInstanceLastAttempt message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceLastAttempt message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceLastAttempt
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ManagedInstanceLastAttempt;

                    /**
                     * Creates a plain object from a ManagedInstanceLastAttempt message. Also converts values to other types if specified.
                     * @param message ManagedInstanceLastAttempt
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ManagedInstanceLastAttempt, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceLastAttempt to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceLastAttempt
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstanceLastAttemptErrors. */
                interface IManagedInstanceLastAttemptErrors {

                    /** ManagedInstanceLastAttemptErrors errors */
                    errors?: (google.cloud.compute.v1.IErrors[]|null);
                }

                /** Represents a ManagedInstanceLastAttemptErrors. */
                class ManagedInstanceLastAttemptErrors implements IManagedInstanceLastAttemptErrors {

                    /**
                     * Constructs a new ManagedInstanceLastAttemptErrors.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IManagedInstanceLastAttemptErrors);

                    /** ManagedInstanceLastAttemptErrors errors. */
                    public errors: google.cloud.compute.v1.IErrors[];

                    /**
                     * Creates a new ManagedInstanceLastAttemptErrors instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceLastAttemptErrors instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IManagedInstanceLastAttemptErrors): google.cloud.compute.v1.ManagedInstanceLastAttemptErrors;

                    /**
                     * Encodes the specified ManagedInstanceLastAttemptErrors message. Does not implicitly {@link google.cloud.compute.v1.ManagedInstanceLastAttemptErrors.verify|verify} messages.
                     * @param message ManagedInstanceLastAttemptErrors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IManagedInstanceLastAttemptErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceLastAttemptErrors message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ManagedInstanceLastAttemptErrors.verify|verify} messages.
                     * @param message ManagedInstanceLastAttemptErrors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IManagedInstanceLastAttemptErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceLastAttemptErrors message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceLastAttemptErrors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ManagedInstanceLastAttemptErrors;

                    /**
                     * Decodes a ManagedInstanceLastAttemptErrors message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceLastAttemptErrors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ManagedInstanceLastAttemptErrors;

                    /**
                     * Verifies a ManagedInstanceLastAttemptErrors message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceLastAttemptErrors message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceLastAttemptErrors
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ManagedInstanceLastAttemptErrors;

                    /**
                     * Creates a plain object from a ManagedInstanceLastAttemptErrors message. Also converts values to other types if specified.
                     * @param message ManagedInstanceLastAttemptErrors
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ManagedInstanceLastAttemptErrors, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceLastAttemptErrors to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceLastAttemptErrors
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstancePropertiesFromFlexibilityPolicy. */
                interface IManagedInstancePropertiesFromFlexibilityPolicy {

                    /** ManagedInstancePropertiesFromFlexibilityPolicy machineType */
                    machineType?: (string|null);
                }

                /** Represents a ManagedInstancePropertiesFromFlexibilityPolicy. */
                class ManagedInstancePropertiesFromFlexibilityPolicy implements IManagedInstancePropertiesFromFlexibilityPolicy {

                    /**
                     * Constructs a new ManagedInstancePropertiesFromFlexibilityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IManagedInstancePropertiesFromFlexibilityPolicy);

                    /** ManagedInstancePropertiesFromFlexibilityPolicy machineType. */
                    public machineType?: (string|null);

                    /**
                     * Creates a new ManagedInstancePropertiesFromFlexibilityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstancePropertiesFromFlexibilityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IManagedInstancePropertiesFromFlexibilityPolicy): google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicy;

                    /**
                     * Encodes the specified ManagedInstancePropertiesFromFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicy.verify|verify} messages.
                     * @param message ManagedInstancePropertiesFromFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IManagedInstancePropertiesFromFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstancePropertiesFromFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicy.verify|verify} messages.
                     * @param message ManagedInstancePropertiesFromFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IManagedInstancePropertiesFromFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstancePropertiesFromFlexibilityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstancePropertiesFromFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicy;

                    /**
                     * Decodes a ManagedInstancePropertiesFromFlexibilityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstancePropertiesFromFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicy;

                    /**
                     * Verifies a ManagedInstancePropertiesFromFlexibilityPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstancePropertiesFromFlexibilityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstancePropertiesFromFlexibilityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicy;

                    /**
                     * Creates a plain object from a ManagedInstancePropertiesFromFlexibilityPolicy message. Also converts values to other types if specified.
                     * @param message ManagedInstancePropertiesFromFlexibilityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstancePropertiesFromFlexibilityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstancePropertiesFromFlexibilityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstanceVersion. */
                interface IManagedInstanceVersion {

                    /** ManagedInstanceVersion instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** ManagedInstanceVersion name */
                    name?: (string|null);
                }

                /** Represents a ManagedInstanceVersion. */
                class ManagedInstanceVersion implements IManagedInstanceVersion {

                    /**
                     * Constructs a new ManagedInstanceVersion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IManagedInstanceVersion);

                    /** ManagedInstanceVersion instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /** ManagedInstanceVersion name. */
                    public name?: (string|null);

                    /**
                     * Creates a new ManagedInstanceVersion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceVersion instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IManagedInstanceVersion): google.cloud.compute.v1.ManagedInstanceVersion;

                    /**
                     * Encodes the specified ManagedInstanceVersion message. Does not implicitly {@link google.cloud.compute.v1.ManagedInstanceVersion.verify|verify} messages.
                     * @param message ManagedInstanceVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IManagedInstanceVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceVersion message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ManagedInstanceVersion.verify|verify} messages.
                     * @param message ManagedInstanceVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IManagedInstanceVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceVersion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ManagedInstanceVersion;

                    /**
                     * Decodes a ManagedInstanceVersion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ManagedInstanceVersion;

                    /**
                     * Verifies a ManagedInstanceVersion message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceVersion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceVersion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ManagedInstanceVersion;

                    /**
                     * Creates a plain object from a ManagedInstanceVersion message. Also converts values to other types if specified.
                     * @param message ManagedInstanceVersion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ManagedInstanceVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceVersion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceVersion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Metadata. */
                interface IMetadata {

                    /** Metadata fingerprint */
                    fingerprint?: (string|null);

                    /** Metadata items */
                    items?: (google.cloud.compute.v1.IItems[]|null);

                    /** Metadata kind */
                    kind?: (string|null);
                }

                /** Represents a Metadata. */
                class Metadata implements IMetadata {

                    /**
                     * Constructs a new Metadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMetadata);

                    /** Metadata fingerprint. */
                    public fingerprint?: (string|null);

                    /** Metadata items. */
                    public items: google.cloud.compute.v1.IItems[];

                    /** Metadata kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new Metadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Metadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMetadata): google.cloud.compute.v1.Metadata;

                    /**
                     * Encodes the specified Metadata message. Does not implicitly {@link google.cloud.compute.v1.Metadata.verify|verify} messages.
                     * @param message Metadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Metadata.verify|verify} messages.
                     * @param message Metadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Metadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Metadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Metadata;

                    /**
                     * Decodes a Metadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Metadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Metadata;

                    /**
                     * Verifies a Metadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Metadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Metadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Metadata;

                    /**
                     * Creates a plain object from a Metadata message. Also converts values to other types if specified.
                     * @param message Metadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Metadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Metadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Metadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MetadataFilter. */
                interface IMetadataFilter {

                    /** MetadataFilter filterLabels */
                    filterLabels?: (google.cloud.compute.v1.IMetadataFilterLabelMatch[]|null);

                    /** MetadataFilter filterMatchCriteria */
                    filterMatchCriteria?: (string|null);
                }

                /** Represents a MetadataFilter. */
                class MetadataFilter implements IMetadataFilter {

                    /**
                     * Constructs a new MetadataFilter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMetadataFilter);

                    /** MetadataFilter filterLabels. */
                    public filterLabels: google.cloud.compute.v1.IMetadataFilterLabelMatch[];

                    /** MetadataFilter filterMatchCriteria. */
                    public filterMatchCriteria?: (string|null);

                    /**
                     * Creates a new MetadataFilter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MetadataFilter instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMetadataFilter): google.cloud.compute.v1.MetadataFilter;

                    /**
                     * Encodes the specified MetadataFilter message. Does not implicitly {@link google.cloud.compute.v1.MetadataFilter.verify|verify} messages.
                     * @param message MetadataFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMetadataFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MetadataFilter message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MetadataFilter.verify|verify} messages.
                     * @param message MetadataFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMetadataFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MetadataFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MetadataFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MetadataFilter;

                    /**
                     * Decodes a MetadataFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MetadataFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MetadataFilter;

                    /**
                     * Verifies a MetadataFilter message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MetadataFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MetadataFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MetadataFilter;

                    /**
                     * Creates a plain object from a MetadataFilter message. Also converts values to other types if specified.
                     * @param message MetadataFilter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MetadataFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MetadataFilter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MetadataFilter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MetadataFilter {

                    /** FilterMatchCriteria enum. */
                    enum FilterMatchCriteria {
                        UNDEFINED_FILTER_MATCH_CRITERIA = 0,
                        MATCH_ALL = 180663271,
                        MATCH_ANY = 180663346,
                        NOT_SET = 163646646
                    }
                }

                /** Properties of a MetadataFilterLabelMatch. */
                interface IMetadataFilterLabelMatch {

                    /** MetadataFilterLabelMatch name */
                    name?: (string|null);

                    /** MetadataFilterLabelMatch value */
                    value?: (string|null);
                }

                /** Represents a MetadataFilterLabelMatch. */
                class MetadataFilterLabelMatch implements IMetadataFilterLabelMatch {

                    /**
                     * Constructs a new MetadataFilterLabelMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMetadataFilterLabelMatch);

                    /** MetadataFilterLabelMatch name. */
                    public name?: (string|null);

                    /** MetadataFilterLabelMatch value. */
                    public value?: (string|null);

                    /**
                     * Creates a new MetadataFilterLabelMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MetadataFilterLabelMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMetadataFilterLabelMatch): google.cloud.compute.v1.MetadataFilterLabelMatch;

                    /**
                     * Encodes the specified MetadataFilterLabelMatch message. Does not implicitly {@link google.cloud.compute.v1.MetadataFilterLabelMatch.verify|verify} messages.
                     * @param message MetadataFilterLabelMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMetadataFilterLabelMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MetadataFilterLabelMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MetadataFilterLabelMatch.verify|verify} messages.
                     * @param message MetadataFilterLabelMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMetadataFilterLabelMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MetadataFilterLabelMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MetadataFilterLabelMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MetadataFilterLabelMatch;

                    /**
                     * Decodes a MetadataFilterLabelMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MetadataFilterLabelMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MetadataFilterLabelMatch;

                    /**
                     * Verifies a MetadataFilterLabelMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MetadataFilterLabelMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MetadataFilterLabelMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MetadataFilterLabelMatch;

                    /**
                     * Creates a plain object from a MetadataFilterLabelMatch message. Also converts values to other types if specified.
                     * @param message MetadataFilterLabelMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MetadataFilterLabelMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MetadataFilterLabelMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MetadataFilterLabelMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveAddressRequest. */
                interface IMoveAddressRequest {

                    /** MoveAddressRequest address */
                    address?: (string|null);

                    /** MoveAddressRequest project */
                    project?: (string|null);

                    /** MoveAddressRequest region */
                    region?: (string|null);

                    /** MoveAddressRequest regionAddressesMoveRequestResource */
                    regionAddressesMoveRequestResource?: (google.cloud.compute.v1.IRegionAddressesMoveRequest|null);

                    /** MoveAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveAddressRequest. */
                class MoveAddressRequest implements IMoveAddressRequest {

                    /**
                     * Constructs a new MoveAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMoveAddressRequest);

                    /** MoveAddressRequest address. */
                    public address: string;

                    /** MoveAddressRequest project. */
                    public project: string;

                    /** MoveAddressRequest region. */
                    public region: string;

                    /** MoveAddressRequest regionAddressesMoveRequestResource. */
                    public regionAddressesMoveRequestResource?: (google.cloud.compute.v1.IRegionAddressesMoveRequest|null);

                    /** MoveAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMoveAddressRequest): google.cloud.compute.v1.MoveAddressRequest;

                    /**
                     * Encodes the specified MoveAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.MoveAddressRequest.verify|verify} messages.
                     * @param message MoveAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMoveAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MoveAddressRequest.verify|verify} messages.
                     * @param message MoveAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMoveAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MoveAddressRequest;

                    /**
                     * Decodes a MoveAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MoveAddressRequest;

                    /**
                     * Verifies a MoveAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MoveAddressRequest;

                    /**
                     * Creates a plain object from a MoveAddressRequest message. Also converts values to other types if specified.
                     * @param message MoveAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MoveAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveDiskProjectRequest. */
                interface IMoveDiskProjectRequest {

                    /** MoveDiskProjectRequest diskMoveRequestResource */
                    diskMoveRequestResource?: (google.cloud.compute.v1.IDiskMoveRequest|null);

                    /** MoveDiskProjectRequest project */
                    project?: (string|null);

                    /** MoveDiskProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveDiskProjectRequest. */
                class MoveDiskProjectRequest implements IMoveDiskProjectRequest {

                    /**
                     * Constructs a new MoveDiskProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMoveDiskProjectRequest);

                    /** MoveDiskProjectRequest diskMoveRequestResource. */
                    public diskMoveRequestResource?: (google.cloud.compute.v1.IDiskMoveRequest|null);

                    /** MoveDiskProjectRequest project. */
                    public project: string;

                    /** MoveDiskProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveDiskProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveDiskProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMoveDiskProjectRequest): google.cloud.compute.v1.MoveDiskProjectRequest;

                    /**
                     * Encodes the specified MoveDiskProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.MoveDiskProjectRequest.verify|verify} messages.
                     * @param message MoveDiskProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMoveDiskProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveDiskProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MoveDiskProjectRequest.verify|verify} messages.
                     * @param message MoveDiskProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMoveDiskProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveDiskProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveDiskProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MoveDiskProjectRequest;

                    /**
                     * Decodes a MoveDiskProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveDiskProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MoveDiskProjectRequest;

                    /**
                     * Verifies a MoveDiskProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveDiskProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveDiskProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MoveDiskProjectRequest;

                    /**
                     * Creates a plain object from a MoveDiskProjectRequest message. Also converts values to other types if specified.
                     * @param message MoveDiskProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MoveDiskProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveDiskProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveDiskProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveFirewallPolicyRequest. */
                interface IMoveFirewallPolicyRequest {

                    /** MoveFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** MoveFirewallPolicyRequest parentId */
                    parentId?: (string|null);

                    /** MoveFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveFirewallPolicyRequest. */
                class MoveFirewallPolicyRequest implements IMoveFirewallPolicyRequest {

                    /**
                     * Constructs a new MoveFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMoveFirewallPolicyRequest);

                    /** MoveFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** MoveFirewallPolicyRequest parentId. */
                    public parentId: string;

                    /** MoveFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMoveFirewallPolicyRequest): google.cloud.compute.v1.MoveFirewallPolicyRequest;

                    /**
                     * Encodes the specified MoveFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.MoveFirewallPolicyRequest.verify|verify} messages.
                     * @param message MoveFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMoveFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MoveFirewallPolicyRequest.verify|verify} messages.
                     * @param message MoveFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMoveFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MoveFirewallPolicyRequest;

                    /**
                     * Decodes a MoveFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MoveFirewallPolicyRequest;

                    /**
                     * Verifies a MoveFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MoveFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a MoveFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message MoveFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MoveFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveGlobalAddressRequest. */
                interface IMoveGlobalAddressRequest {

                    /** MoveGlobalAddressRequest address */
                    address?: (string|null);

                    /** MoveGlobalAddressRequest globalAddressesMoveRequestResource */
                    globalAddressesMoveRequestResource?: (google.cloud.compute.v1.IGlobalAddressesMoveRequest|null);

                    /** MoveGlobalAddressRequest project */
                    project?: (string|null);

                    /** MoveGlobalAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveGlobalAddressRequest. */
                class MoveGlobalAddressRequest implements IMoveGlobalAddressRequest {

                    /**
                     * Constructs a new MoveGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMoveGlobalAddressRequest);

                    /** MoveGlobalAddressRequest address. */
                    public address: string;

                    /** MoveGlobalAddressRequest globalAddressesMoveRequestResource. */
                    public globalAddressesMoveRequestResource?: (google.cloud.compute.v1.IGlobalAddressesMoveRequest|null);

                    /** MoveGlobalAddressRequest project. */
                    public project: string;

                    /** MoveGlobalAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMoveGlobalAddressRequest): google.cloud.compute.v1.MoveGlobalAddressRequest;

                    /**
                     * Encodes the specified MoveGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.MoveGlobalAddressRequest.verify|verify} messages.
                     * @param message MoveGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMoveGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MoveGlobalAddressRequest.verify|verify} messages.
                     * @param message MoveGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMoveGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MoveGlobalAddressRequest;

                    /**
                     * Decodes a MoveGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MoveGlobalAddressRequest;

                    /**
                     * Verifies a MoveGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MoveGlobalAddressRequest;

                    /**
                     * Creates a plain object from a MoveGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message MoveGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MoveGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveInstanceProjectRequest. */
                interface IMoveInstanceProjectRequest {

                    /** MoveInstanceProjectRequest instanceMoveRequestResource */
                    instanceMoveRequestResource?: (google.cloud.compute.v1.IInstanceMoveRequest|null);

                    /** MoveInstanceProjectRequest project */
                    project?: (string|null);

                    /** MoveInstanceProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveInstanceProjectRequest. */
                class MoveInstanceProjectRequest implements IMoveInstanceProjectRequest {

                    /**
                     * Constructs a new MoveInstanceProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMoveInstanceProjectRequest);

                    /** MoveInstanceProjectRequest instanceMoveRequestResource. */
                    public instanceMoveRequestResource?: (google.cloud.compute.v1.IInstanceMoveRequest|null);

                    /** MoveInstanceProjectRequest project. */
                    public project: string;

                    /** MoveInstanceProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveInstanceProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveInstanceProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMoveInstanceProjectRequest): google.cloud.compute.v1.MoveInstanceProjectRequest;

                    /**
                     * Encodes the specified MoveInstanceProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.MoveInstanceProjectRequest.verify|verify} messages.
                     * @param message MoveInstanceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMoveInstanceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveInstanceProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MoveInstanceProjectRequest.verify|verify} messages.
                     * @param message MoveInstanceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMoveInstanceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveInstanceProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveInstanceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MoveInstanceProjectRequest;

                    /**
                     * Decodes a MoveInstanceProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveInstanceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MoveInstanceProjectRequest;

                    /**
                     * Verifies a MoveInstanceProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveInstanceProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveInstanceProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MoveInstanceProjectRequest;

                    /**
                     * Creates a plain object from a MoveInstanceProjectRequest message. Also converts values to other types if specified.
                     * @param message MoveInstanceProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MoveInstanceProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveInstanceProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveInstanceProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveOrganizationSecurityPolicyRequest. */
                interface IMoveOrganizationSecurityPolicyRequest {

                    /** MoveOrganizationSecurityPolicyRequest parentId */
                    parentId?: (string|null);

                    /** MoveOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** MoveOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a MoveOrganizationSecurityPolicyRequest. */
                class MoveOrganizationSecurityPolicyRequest implements IMoveOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new MoveOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IMoveOrganizationSecurityPolicyRequest);

                    /** MoveOrganizationSecurityPolicyRequest parentId. */
                    public parentId?: (string|null);

                    /** MoveOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** MoveOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new MoveOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IMoveOrganizationSecurityPolicyRequest): google.cloud.compute.v1.MoveOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified MoveOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.MoveOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message MoveOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IMoveOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.MoveOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message MoveOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IMoveOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.MoveOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a MoveOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.MoveOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a MoveOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.MoveOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a MoveOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message MoveOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.MoveOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NamedPort. */
                interface INamedPort {

                    /** NamedPort name */
                    name?: (string|null);

                    /** NamedPort port */
                    port?: (number|null);
                }

                /** Represents a NamedPort. */
                class NamedPort implements INamedPort {

                    /**
                     * Constructs a new NamedPort.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INamedPort);

                    /** NamedPort name. */
                    public name?: (string|null);

                    /** NamedPort port. */
                    public port?: (number|null);

                    /**
                     * Creates a new NamedPort instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NamedPort instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INamedPort): google.cloud.compute.v1.NamedPort;

                    /**
                     * Encodes the specified NamedPort message. Does not implicitly {@link google.cloud.compute.v1.NamedPort.verify|verify} messages.
                     * @param message NamedPort message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INamedPort, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NamedPort message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NamedPort.verify|verify} messages.
                     * @param message NamedPort message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INamedPort, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NamedPort message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NamedPort
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NamedPort;

                    /**
                     * Decodes a NamedPort message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NamedPort
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NamedPort;

                    /**
                     * Verifies a NamedPort message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NamedPort message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NamedPort
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NamedPort;

                    /**
                     * Creates a plain object from a NamedPort message. Also converts values to other types if specified.
                     * @param message NamedPort
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NamedPort, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NamedPort to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NamedPort
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NatIpInfo. */
                interface INatIpInfo {

                    /** NatIpInfo natIpInfoMappings */
                    natIpInfoMappings?: (google.cloud.compute.v1.INatIpInfoNatIpInfoMapping[]|null);

                    /** NatIpInfo natName */
                    natName?: (string|null);
                }

                /** Represents a NatIpInfo. */
                class NatIpInfo implements INatIpInfo {

                    /**
                     * Constructs a new NatIpInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INatIpInfo);

                    /** NatIpInfo natIpInfoMappings. */
                    public natIpInfoMappings: google.cloud.compute.v1.INatIpInfoNatIpInfoMapping[];

                    /** NatIpInfo natName. */
                    public natName?: (string|null);

                    /**
                     * Creates a new NatIpInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NatIpInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INatIpInfo): google.cloud.compute.v1.NatIpInfo;

                    /**
                     * Encodes the specified NatIpInfo message. Does not implicitly {@link google.cloud.compute.v1.NatIpInfo.verify|verify} messages.
                     * @param message NatIpInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INatIpInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NatIpInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NatIpInfo.verify|verify} messages.
                     * @param message NatIpInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INatIpInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NatIpInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NatIpInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NatIpInfo;

                    /**
                     * Decodes a NatIpInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NatIpInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NatIpInfo;

                    /**
                     * Verifies a NatIpInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NatIpInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NatIpInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NatIpInfo;

                    /**
                     * Creates a plain object from a NatIpInfo message. Also converts values to other types if specified.
                     * @param message NatIpInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NatIpInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NatIpInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NatIpInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NatIpInfoNatIpInfoMapping. */
                interface INatIpInfoNatIpInfoMapping {

                    /** NatIpInfoNatIpInfoMapping mode */
                    mode?: (string|null);

                    /** NatIpInfoNatIpInfoMapping natIp */
                    natIp?: (string|null);

                    /** NatIpInfoNatIpInfoMapping usage */
                    usage?: (string|null);
                }

                /** Represents a NatIpInfoNatIpInfoMapping. */
                class NatIpInfoNatIpInfoMapping implements INatIpInfoNatIpInfoMapping {

                    /**
                     * Constructs a new NatIpInfoNatIpInfoMapping.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INatIpInfoNatIpInfoMapping);

                    /** NatIpInfoNatIpInfoMapping mode. */
                    public mode?: (string|null);

                    /** NatIpInfoNatIpInfoMapping natIp. */
                    public natIp?: (string|null);

                    /** NatIpInfoNatIpInfoMapping usage. */
                    public usage?: (string|null);

                    /**
                     * Creates a new NatIpInfoNatIpInfoMapping instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NatIpInfoNatIpInfoMapping instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INatIpInfoNatIpInfoMapping): google.cloud.compute.v1.NatIpInfoNatIpInfoMapping;

                    /**
                     * Encodes the specified NatIpInfoNatIpInfoMapping message. Does not implicitly {@link google.cloud.compute.v1.NatIpInfoNatIpInfoMapping.verify|verify} messages.
                     * @param message NatIpInfoNatIpInfoMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INatIpInfoNatIpInfoMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NatIpInfoNatIpInfoMapping message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NatIpInfoNatIpInfoMapping.verify|verify} messages.
                     * @param message NatIpInfoNatIpInfoMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INatIpInfoNatIpInfoMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NatIpInfoNatIpInfoMapping message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NatIpInfoNatIpInfoMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NatIpInfoNatIpInfoMapping;

                    /**
                     * Decodes a NatIpInfoNatIpInfoMapping message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NatIpInfoNatIpInfoMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NatIpInfoNatIpInfoMapping;

                    /**
                     * Verifies a NatIpInfoNatIpInfoMapping message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NatIpInfoNatIpInfoMapping message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NatIpInfoNatIpInfoMapping
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NatIpInfoNatIpInfoMapping;

                    /**
                     * Creates a plain object from a NatIpInfoNatIpInfoMapping message. Also converts values to other types if specified.
                     * @param message NatIpInfoNatIpInfoMapping
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NatIpInfoNatIpInfoMapping, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NatIpInfoNatIpInfoMapping to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NatIpInfoNatIpInfoMapping
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NatIpInfoNatIpInfoMapping {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        AUTO = 2020783,
                        MANUAL = 119397318
                    }

                    /** Usage enum. */
                    enum Usage {
                        UNDEFINED_USAGE = 0,
                        IN_USE = 17393485,
                        UNUSED = 360643030
                    }
                }

                /** Properties of a NatIpInfoResponse. */
                interface INatIpInfoResponse {

                    /** NatIpInfoResponse result */
                    result?: (google.cloud.compute.v1.INatIpInfo[]|null);
                }

                /** Represents a NatIpInfoResponse. */
                class NatIpInfoResponse implements INatIpInfoResponse {

                    /**
                     * Constructs a new NatIpInfoResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INatIpInfoResponse);

                    /** NatIpInfoResponse result. */
                    public result: google.cloud.compute.v1.INatIpInfo[];

                    /**
                     * Creates a new NatIpInfoResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NatIpInfoResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INatIpInfoResponse): google.cloud.compute.v1.NatIpInfoResponse;

                    /**
                     * Encodes the specified NatIpInfoResponse message. Does not implicitly {@link google.cloud.compute.v1.NatIpInfoResponse.verify|verify} messages.
                     * @param message NatIpInfoResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INatIpInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NatIpInfoResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NatIpInfoResponse.verify|verify} messages.
                     * @param message NatIpInfoResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INatIpInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NatIpInfoResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NatIpInfoResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NatIpInfoResponse;

                    /**
                     * Decodes a NatIpInfoResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NatIpInfoResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NatIpInfoResponse;

                    /**
                     * Verifies a NatIpInfoResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NatIpInfoResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NatIpInfoResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NatIpInfoResponse;

                    /**
                     * Creates a plain object from a NatIpInfoResponse message. Also converts values to other types if specified.
                     * @param message NatIpInfoResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NatIpInfoResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NatIpInfoResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NatIpInfoResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Network. */
                interface INetwork {

                    /** Network IPv4Range */
                    IPv4Range?: (string|null);

                    /** Network autoCreateSubnetworks */
                    autoCreateSubnetworks?: (boolean|null);

                    /** Network creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Network description */
                    description?: (string|null);

                    /** Network enableUlaInternalIpv6 */
                    enableUlaInternalIpv6?: (boolean|null);

                    /** Network firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** Network gatewayIPv4 */
                    gatewayIPv4?: (string|null);

                    /** Network id */
                    id?: (number|Long|string|null);

                    /** Network internalIpv6Range */
                    internalIpv6Range?: (string|null);

                    /** Network kind */
                    kind?: (string|null);

                    /** Network mtu */
                    mtu?: (number|null);

                    /** Network name */
                    name?: (string|null);

                    /** Network networkFirewallPolicyEnforcementOrder */
                    networkFirewallPolicyEnforcementOrder?: (string|null);

                    /** Network networkProfile */
                    networkProfile?: (string|null);

                    /** Network params */
                    params?: (google.cloud.compute.v1.INetworkParams|null);

                    /** Network peerings */
                    peerings?: (google.cloud.compute.v1.INetworkPeering[]|null);

                    /** Network routingConfig */
                    routingConfig?: (google.cloud.compute.v1.INetworkRoutingConfig|null);

                    /** Network selfLink */
                    selfLink?: (string|null);

                    /** Network selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** Network subnetworks */
                    subnetworks?: (string[]|null);
                }

                /** Represents a Network. */
                class Network implements INetwork {

                    /**
                     * Constructs a new Network.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetwork);

                    /** Network IPv4Range. */
                    public IPv4Range?: (string|null);

                    /** Network autoCreateSubnetworks. */
                    public autoCreateSubnetworks?: (boolean|null);

                    /** Network creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Network description. */
                    public description?: (string|null);

                    /** Network enableUlaInternalIpv6. */
                    public enableUlaInternalIpv6?: (boolean|null);

                    /** Network firewallPolicy. */
                    public firewallPolicy?: (string|null);

                    /** Network gatewayIPv4. */
                    public gatewayIPv4?: (string|null);

                    /** Network id. */
                    public id?: (number|Long|string|null);

                    /** Network internalIpv6Range. */
                    public internalIpv6Range?: (string|null);

                    /** Network kind. */
                    public kind?: (string|null);

                    /** Network mtu. */
                    public mtu?: (number|null);

                    /** Network name. */
                    public name?: (string|null);

                    /** Network networkFirewallPolicyEnforcementOrder. */
                    public networkFirewallPolicyEnforcementOrder?: (string|null);

                    /** Network networkProfile. */
                    public networkProfile?: (string|null);

                    /** Network params. */
                    public params?: (google.cloud.compute.v1.INetworkParams|null);

                    /** Network peerings. */
                    public peerings: google.cloud.compute.v1.INetworkPeering[];

                    /** Network routingConfig. */
                    public routingConfig?: (google.cloud.compute.v1.INetworkRoutingConfig|null);

                    /** Network selfLink. */
                    public selfLink?: (string|null);

                    /** Network selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** Network subnetworks. */
                    public subnetworks: string[];

                    /**
                     * Creates a new Network instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Network instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetwork): google.cloud.compute.v1.Network;

                    /**
                     * Encodes the specified Network message. Does not implicitly {@link google.cloud.compute.v1.Network.verify|verify} messages.
                     * @param message Network message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Network message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Network.verify|verify} messages.
                     * @param message Network message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Network message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Network
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Network;

                    /**
                     * Decodes a Network message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Network
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Network;

                    /**
                     * Verifies a Network message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Network message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Network
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Network;

                    /**
                     * Creates a plain object from a Network message. Also converts values to other types if specified.
                     * @param message Network
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Network, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Network to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Network
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Network {

                    /** NetworkFirewallPolicyEnforcementOrder enum. */
                    enum NetworkFirewallPolicyEnforcementOrder {
                        UNDEFINED_NETWORK_FIREWALL_POLICY_ENFORCEMENT_ORDER = 0,
                        AFTER_CLASSIC_FIREWALL = 154582608,
                        BEFORE_CLASSIC_FIREWALL = 338458349
                    }
                }

                /** Properties of a NetworkAttachment. */
                interface INetworkAttachment {

                    /** NetworkAttachment connectionEndpoints */
                    connectionEndpoints?: (google.cloud.compute.v1.INetworkAttachmentConnectedEndpoint[]|null);

                    /** NetworkAttachment connectionPreference */
                    connectionPreference?: (string|null);

                    /** NetworkAttachment creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkAttachment description */
                    description?: (string|null);

                    /** NetworkAttachment fingerprint */
                    fingerprint?: (string|null);

                    /** NetworkAttachment id */
                    id?: (number|Long|string|null);

                    /** NetworkAttachment kind */
                    kind?: (string|null);

                    /** NetworkAttachment name */
                    name?: (string|null);

                    /** NetworkAttachment network */
                    network?: (string|null);

                    /** NetworkAttachment producerAcceptLists */
                    producerAcceptLists?: (string[]|null);

                    /** NetworkAttachment producerRejectLists */
                    producerRejectLists?: (string[]|null);

                    /** NetworkAttachment region */
                    region?: (string|null);

                    /** NetworkAttachment selfLink */
                    selfLink?: (string|null);

                    /** NetworkAttachment selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** NetworkAttachment subnetworks */
                    subnetworks?: (string[]|null);
                }

                /** Represents a NetworkAttachment. */
                class NetworkAttachment implements INetworkAttachment {

                    /**
                     * Constructs a new NetworkAttachment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkAttachment);

                    /** NetworkAttachment connectionEndpoints. */
                    public connectionEndpoints: google.cloud.compute.v1.INetworkAttachmentConnectedEndpoint[];

                    /** NetworkAttachment connectionPreference. */
                    public connectionPreference?: (string|null);

                    /** NetworkAttachment creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkAttachment description. */
                    public description?: (string|null);

                    /** NetworkAttachment fingerprint. */
                    public fingerprint?: (string|null);

                    /** NetworkAttachment id. */
                    public id?: (number|Long|string|null);

                    /** NetworkAttachment kind. */
                    public kind?: (string|null);

                    /** NetworkAttachment name. */
                    public name?: (string|null);

                    /** NetworkAttachment network. */
                    public network?: (string|null);

                    /** NetworkAttachment producerAcceptLists. */
                    public producerAcceptLists: string[];

                    /** NetworkAttachment producerRejectLists. */
                    public producerRejectLists: string[];

                    /** NetworkAttachment region. */
                    public region?: (string|null);

                    /** NetworkAttachment selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkAttachment selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** NetworkAttachment subnetworks. */
                    public subnetworks: string[];

                    /**
                     * Creates a new NetworkAttachment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachment instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkAttachment): google.cloud.compute.v1.NetworkAttachment;

                    /**
                     * Encodes the specified NetworkAttachment message. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachment.verify|verify} messages.
                     * @param message NetworkAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachment message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachment.verify|verify} messages.
                     * @param message NetworkAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkAttachment;

                    /**
                     * Decodes a NetworkAttachment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkAttachment;

                    /**
                     * Verifies a NetworkAttachment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkAttachment;

                    /**
                     * Creates a plain object from a NetworkAttachment message. Also converts values to other types if specified.
                     * @param message NetworkAttachment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkAttachment {

                    /** ConnectionPreference enum. */
                    enum ConnectionPreference {
                        UNDEFINED_CONNECTION_PREFERENCE = 0,
                        ACCEPT_AUTOMATIC = 75250580,
                        ACCEPT_MANUAL = 373061341,
                        INVALID = 530283991
                    }
                }

                /** Properties of a NetworkAttachmentAggregatedList. */
                interface INetworkAttachmentAggregatedList {

                    /** NetworkAttachmentAggregatedList id */
                    id?: (string|null);

                    /** NetworkAttachmentAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.INetworkAttachmentsScopedList }|null);

                    /** NetworkAttachmentAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkAttachmentAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkAttachmentAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkAttachmentAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkAttachmentAggregatedList. */
                class NetworkAttachmentAggregatedList implements INetworkAttachmentAggregatedList {

                    /**
                     * Constructs a new NetworkAttachmentAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkAttachmentAggregatedList);

                    /** NetworkAttachmentAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkAttachmentAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.INetworkAttachmentsScopedList };

                    /** NetworkAttachmentAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkAttachmentAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkAttachmentAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkAttachmentAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkAttachmentAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachmentAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkAttachmentAggregatedList): google.cloud.compute.v1.NetworkAttachmentAggregatedList;

                    /**
                     * Encodes the specified NetworkAttachmentAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachmentAggregatedList.verify|verify} messages.
                     * @param message NetworkAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachmentAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachmentAggregatedList.verify|verify} messages.
                     * @param message NetworkAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachmentAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkAttachmentAggregatedList;

                    /**
                     * Decodes a NetworkAttachmentAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkAttachmentAggregatedList;

                    /**
                     * Verifies a NetworkAttachmentAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachmentAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachmentAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkAttachmentAggregatedList;

                    /**
                     * Creates a plain object from a NetworkAttachmentAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkAttachmentAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkAttachmentAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachmentAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachmentAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkAttachmentConnectedEndpoint. */
                interface INetworkAttachmentConnectedEndpoint {

                    /** NetworkAttachmentConnectedEndpoint ipAddress */
                    ipAddress?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint ipv6Address */
                    ipv6Address?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint projectIdOrNum */
                    projectIdOrNum?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint secondaryIpCidrRanges */
                    secondaryIpCidrRanges?: (string[]|null);

                    /** NetworkAttachmentConnectedEndpoint status */
                    status?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint subnetwork */
                    subnetwork?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint subnetworkCidrRange */
                    subnetworkCidrRange?: (string|null);
                }

                /** Represents a NetworkAttachmentConnectedEndpoint. */
                class NetworkAttachmentConnectedEndpoint implements INetworkAttachmentConnectedEndpoint {

                    /**
                     * Constructs a new NetworkAttachmentConnectedEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkAttachmentConnectedEndpoint);

                    /** NetworkAttachmentConnectedEndpoint ipAddress. */
                    public ipAddress?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint ipv6Address. */
                    public ipv6Address?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint projectIdOrNum. */
                    public projectIdOrNum?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint secondaryIpCidrRanges. */
                    public secondaryIpCidrRanges: string[];

                    /** NetworkAttachmentConnectedEndpoint status. */
                    public status?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint subnetwork. */
                    public subnetwork?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint subnetworkCidrRange. */
                    public subnetworkCidrRange?: (string|null);

                    /**
                     * Creates a new NetworkAttachmentConnectedEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachmentConnectedEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkAttachmentConnectedEndpoint): google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint;

                    /**
                     * Encodes the specified NetworkAttachmentConnectedEndpoint message. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint.verify|verify} messages.
                     * @param message NetworkAttachmentConnectedEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkAttachmentConnectedEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachmentConnectedEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint.verify|verify} messages.
                     * @param message NetworkAttachmentConnectedEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkAttachmentConnectedEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachmentConnectedEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachmentConnectedEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint;

                    /**
                     * Decodes a NetworkAttachmentConnectedEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachmentConnectedEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint;

                    /**
                     * Verifies a NetworkAttachmentConnectedEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachmentConnectedEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachmentConnectedEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint;

                    /**
                     * Creates a plain object from a NetworkAttachmentConnectedEndpoint message. Also converts values to other types if specified.
                     * @param message NetworkAttachmentConnectedEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachmentConnectedEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachmentConnectedEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkAttachmentConnectedEndpoint {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACCEPTED = 246714279,
                        CLOSED = 380163436,
                        NEEDS_ATTENTION = 344491452,
                        PENDING = 35394935,
                        REJECTED = 174130302,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a NetworkAttachmentList. */
                interface INetworkAttachmentList {

                    /** NetworkAttachmentList id */
                    id?: (string|null);

                    /** NetworkAttachmentList items */
                    items?: (google.cloud.compute.v1.INetworkAttachment[]|null);

                    /** NetworkAttachmentList kind */
                    kind?: (string|null);

                    /** NetworkAttachmentList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkAttachmentList selfLink */
                    selfLink?: (string|null);

                    /** NetworkAttachmentList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkAttachmentList. */
                class NetworkAttachmentList implements INetworkAttachmentList {

                    /**
                     * Constructs a new NetworkAttachmentList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkAttachmentList);

                    /** NetworkAttachmentList id. */
                    public id?: (string|null);

                    /** NetworkAttachmentList items. */
                    public items: google.cloud.compute.v1.INetworkAttachment[];

                    /** NetworkAttachmentList kind. */
                    public kind?: (string|null);

                    /** NetworkAttachmentList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkAttachmentList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkAttachmentList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkAttachmentList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachmentList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkAttachmentList): google.cloud.compute.v1.NetworkAttachmentList;

                    /**
                     * Encodes the specified NetworkAttachmentList message. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachmentList.verify|verify} messages.
                     * @param message NetworkAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachmentList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachmentList.verify|verify} messages.
                     * @param message NetworkAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachmentList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkAttachmentList;

                    /**
                     * Decodes a NetworkAttachmentList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkAttachmentList;

                    /**
                     * Verifies a NetworkAttachmentList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachmentList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachmentList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkAttachmentList;

                    /**
                     * Creates a plain object from a NetworkAttachmentList message. Also converts values to other types if specified.
                     * @param message NetworkAttachmentList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkAttachmentList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachmentList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachmentList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkAttachmentsScopedList. */
                interface INetworkAttachmentsScopedList {

                    /** NetworkAttachmentsScopedList networkAttachments */
                    networkAttachments?: (google.cloud.compute.v1.INetworkAttachment[]|null);

                    /** NetworkAttachmentsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkAttachmentsScopedList. */
                class NetworkAttachmentsScopedList implements INetworkAttachmentsScopedList {

                    /**
                     * Constructs a new NetworkAttachmentsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkAttachmentsScopedList);

                    /** NetworkAttachmentsScopedList networkAttachments. */
                    public networkAttachments: google.cloud.compute.v1.INetworkAttachment[];

                    /** NetworkAttachmentsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkAttachmentsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachmentsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkAttachmentsScopedList): google.cloud.compute.v1.NetworkAttachmentsScopedList;

                    /**
                     * Encodes the specified NetworkAttachmentsScopedList message. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachmentsScopedList.verify|verify} messages.
                     * @param message NetworkAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachmentsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkAttachmentsScopedList.verify|verify} messages.
                     * @param message NetworkAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachmentsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkAttachmentsScopedList;

                    /**
                     * Decodes a NetworkAttachmentsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkAttachmentsScopedList;

                    /**
                     * Verifies a NetworkAttachmentsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachmentsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachmentsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkAttachmentsScopedList;

                    /**
                     * Creates a plain object from a NetworkAttachmentsScopedList message. Also converts values to other types if specified.
                     * @param message NetworkAttachmentsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkAttachmentsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachmentsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachmentsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEdgeSecurityService. */
                interface INetworkEdgeSecurityService {

                    /** NetworkEdgeSecurityService creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkEdgeSecurityService description */
                    description?: (string|null);

                    /** NetworkEdgeSecurityService fingerprint */
                    fingerprint?: (string|null);

                    /** NetworkEdgeSecurityService id */
                    id?: (number|Long|string|null);

                    /** NetworkEdgeSecurityService kind */
                    kind?: (string|null);

                    /** NetworkEdgeSecurityService name */
                    name?: (string|null);

                    /** NetworkEdgeSecurityService region */
                    region?: (string|null);

                    /** NetworkEdgeSecurityService securityPolicy */
                    securityPolicy?: (string|null);

                    /** NetworkEdgeSecurityService selfLink */
                    selfLink?: (string|null);

                    /** NetworkEdgeSecurityService selfLinkWithId */
                    selfLinkWithId?: (string|null);
                }

                /** Represents a NetworkEdgeSecurityService. */
                class NetworkEdgeSecurityService implements INetworkEdgeSecurityService {

                    /**
                     * Constructs a new NetworkEdgeSecurityService.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEdgeSecurityService);

                    /** NetworkEdgeSecurityService creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkEdgeSecurityService description. */
                    public description?: (string|null);

                    /** NetworkEdgeSecurityService fingerprint. */
                    public fingerprint?: (string|null);

                    /** NetworkEdgeSecurityService id. */
                    public id?: (number|Long|string|null);

                    /** NetworkEdgeSecurityService kind. */
                    public kind?: (string|null);

                    /** NetworkEdgeSecurityService name. */
                    public name?: (string|null);

                    /** NetworkEdgeSecurityService region. */
                    public region?: (string|null);

                    /** NetworkEdgeSecurityService securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** NetworkEdgeSecurityService selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEdgeSecurityService selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /**
                     * Creates a new NetworkEdgeSecurityService instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEdgeSecurityService instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEdgeSecurityService): google.cloud.compute.v1.NetworkEdgeSecurityService;

                    /**
                     * Encodes the specified NetworkEdgeSecurityService message. Does not implicitly {@link google.cloud.compute.v1.NetworkEdgeSecurityService.verify|verify} messages.
                     * @param message NetworkEdgeSecurityService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEdgeSecurityService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEdgeSecurityService message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEdgeSecurityService.verify|verify} messages.
                     * @param message NetworkEdgeSecurityService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEdgeSecurityService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEdgeSecurityService message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEdgeSecurityService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEdgeSecurityService;

                    /**
                     * Decodes a NetworkEdgeSecurityService message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEdgeSecurityService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEdgeSecurityService;

                    /**
                     * Verifies a NetworkEdgeSecurityService message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEdgeSecurityService message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEdgeSecurityService
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEdgeSecurityService;

                    /**
                     * Creates a plain object from a NetworkEdgeSecurityService message. Also converts values to other types if specified.
                     * @param message NetworkEdgeSecurityService
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEdgeSecurityService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEdgeSecurityService to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEdgeSecurityService
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEdgeSecurityServiceAggregatedList. */
                interface INetworkEdgeSecurityServiceAggregatedList {

                    /** NetworkEdgeSecurityServiceAggregatedList etag */
                    etag?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList id */
                    id?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.INetworkEdgeSecurityServicesScopedList }|null);

                    /** NetworkEdgeSecurityServiceAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkEdgeSecurityServiceAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkEdgeSecurityServiceAggregatedList. */
                class NetworkEdgeSecurityServiceAggregatedList implements INetworkEdgeSecurityServiceAggregatedList {

                    /**
                     * Constructs a new NetworkEdgeSecurityServiceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEdgeSecurityServiceAggregatedList);

                    /** NetworkEdgeSecurityServiceAggregatedList etag. */
                    public etag?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.INetworkEdgeSecurityServicesScopedList };

                    /** NetworkEdgeSecurityServiceAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NetworkEdgeSecurityServiceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkEdgeSecurityServiceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEdgeSecurityServiceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEdgeSecurityServiceAggregatedList): google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList;

                    /**
                     * Encodes the specified NetworkEdgeSecurityServiceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList.verify|verify} messages.
                     * @param message NetworkEdgeSecurityServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEdgeSecurityServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEdgeSecurityServiceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList.verify|verify} messages.
                     * @param message NetworkEdgeSecurityServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEdgeSecurityServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEdgeSecurityServiceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEdgeSecurityServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList;

                    /**
                     * Decodes a NetworkEdgeSecurityServiceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEdgeSecurityServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList;

                    /**
                     * Verifies a NetworkEdgeSecurityServiceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEdgeSecurityServiceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEdgeSecurityServiceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList;

                    /**
                     * Creates a plain object from a NetworkEdgeSecurityServiceAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkEdgeSecurityServiceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEdgeSecurityServiceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEdgeSecurityServiceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEdgeSecurityServicesScopedList. */
                interface INetworkEdgeSecurityServicesScopedList {

                    /** NetworkEdgeSecurityServicesScopedList networkEdgeSecurityServices */
                    networkEdgeSecurityServices?: (google.cloud.compute.v1.INetworkEdgeSecurityService[]|null);

                    /** NetworkEdgeSecurityServicesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkEdgeSecurityServicesScopedList. */
                class NetworkEdgeSecurityServicesScopedList implements INetworkEdgeSecurityServicesScopedList {

                    /**
                     * Constructs a new NetworkEdgeSecurityServicesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEdgeSecurityServicesScopedList);

                    /** NetworkEdgeSecurityServicesScopedList networkEdgeSecurityServices. */
                    public networkEdgeSecurityServices: google.cloud.compute.v1.INetworkEdgeSecurityService[];

                    /** NetworkEdgeSecurityServicesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkEdgeSecurityServicesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEdgeSecurityServicesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEdgeSecurityServicesScopedList): google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList;

                    /**
                     * Encodes the specified NetworkEdgeSecurityServicesScopedList message. Does not implicitly {@link google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList.verify|verify} messages.
                     * @param message NetworkEdgeSecurityServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEdgeSecurityServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEdgeSecurityServicesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList.verify|verify} messages.
                     * @param message NetworkEdgeSecurityServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEdgeSecurityServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEdgeSecurityServicesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEdgeSecurityServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList;

                    /**
                     * Decodes a NetworkEdgeSecurityServicesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEdgeSecurityServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList;

                    /**
                     * Verifies a NetworkEdgeSecurityServicesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEdgeSecurityServicesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEdgeSecurityServicesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList;

                    /**
                     * Creates a plain object from a NetworkEdgeSecurityServicesScopedList message. Also converts values to other types if specified.
                     * @param message NetworkEdgeSecurityServicesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEdgeSecurityServicesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEdgeSecurityServicesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpoint. */
                interface INetworkEndpoint {

                    /** NetworkEndpoint annotations */
                    annotations?: ({ [k: string]: string }|null);

                    /** NetworkEndpoint clientDestinationPort */
                    clientDestinationPort?: (number|null);

                    /** NetworkEndpoint fqdn */
                    fqdn?: (string|null);

                    /** NetworkEndpoint instance */
                    instance?: (string|null);

                    /** NetworkEndpoint ipAddress */
                    ipAddress?: (string|null);

                    /** NetworkEndpoint ipv6Address */
                    ipv6Address?: (string|null);

                    /** NetworkEndpoint port */
                    port?: (number|null);
                }

                /** Represents a NetworkEndpoint. */
                class NetworkEndpoint implements INetworkEndpoint {

                    /**
                     * Constructs a new NetworkEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpoint);

                    /** NetworkEndpoint annotations. */
                    public annotations: { [k: string]: string };

                    /** NetworkEndpoint clientDestinationPort. */
                    public clientDestinationPort?: (number|null);

                    /** NetworkEndpoint fqdn. */
                    public fqdn?: (string|null);

                    /** NetworkEndpoint instance. */
                    public instance?: (string|null);

                    /** NetworkEndpoint ipAddress. */
                    public ipAddress?: (string|null);

                    /** NetworkEndpoint ipv6Address. */
                    public ipv6Address?: (string|null);

                    /** NetworkEndpoint port. */
                    public port?: (number|null);

                    /**
                     * Creates a new NetworkEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpoint): google.cloud.compute.v1.NetworkEndpoint;

                    /**
                     * Encodes the specified NetworkEndpoint message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpoint.verify|verify} messages.
                     * @param message NetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpoint.verify|verify} messages.
                     * @param message NetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpoint;

                    /**
                     * Decodes a NetworkEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpoint;

                    /**
                     * Verifies a NetworkEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpoint;

                    /**
                     * Creates a plain object from a NetworkEndpoint message. Also converts values to other types if specified.
                     * @param message NetworkEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroup. */
                interface INetworkEndpointGroup {

                    /** NetworkEndpointGroup annotations */
                    annotations?: ({ [k: string]: string }|null);

                    /** NetworkEndpointGroup appEngine */
                    appEngine?: (google.cloud.compute.v1.INetworkEndpointGroupAppEngine|null);

                    /** NetworkEndpointGroup cloudFunction */
                    cloudFunction?: (google.cloud.compute.v1.INetworkEndpointGroupCloudFunction|null);

                    /** NetworkEndpointGroup cloudRun */
                    cloudRun?: (google.cloud.compute.v1.INetworkEndpointGroupCloudRun|null);

                    /** NetworkEndpointGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkEndpointGroup defaultPort */
                    defaultPort?: (number|null);

                    /** NetworkEndpointGroup description */
                    description?: (string|null);

                    /** NetworkEndpointGroup id */
                    id?: (number|Long|string|null);

                    /** NetworkEndpointGroup kind */
                    kind?: (string|null);

                    /** NetworkEndpointGroup name */
                    name?: (string|null);

                    /** NetworkEndpointGroup network */
                    network?: (string|null);

                    /** NetworkEndpointGroup networkEndpointType */
                    networkEndpointType?: (string|null);

                    /** NetworkEndpointGroup pscData */
                    pscData?: (google.cloud.compute.v1.INetworkEndpointGroupPscData|null);

                    /** NetworkEndpointGroup pscTargetService */
                    pscTargetService?: (string|null);

                    /** NetworkEndpointGroup region */
                    region?: (string|null);

                    /** NetworkEndpointGroup selfLink */
                    selfLink?: (string|null);

                    /** NetworkEndpointGroup size */
                    size?: (number|null);

                    /** NetworkEndpointGroup subnetwork */
                    subnetwork?: (string|null);

                    /** NetworkEndpointGroup zone */
                    zone?: (string|null);
                }

                /** Represents a NetworkEndpointGroup. */
                class NetworkEndpointGroup implements INetworkEndpointGroup {

                    /**
                     * Constructs a new NetworkEndpointGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroup);

                    /** NetworkEndpointGroup annotations. */
                    public annotations: { [k: string]: string };

                    /** NetworkEndpointGroup appEngine. */
                    public appEngine?: (google.cloud.compute.v1.INetworkEndpointGroupAppEngine|null);

                    /** NetworkEndpointGroup cloudFunction. */
                    public cloudFunction?: (google.cloud.compute.v1.INetworkEndpointGroupCloudFunction|null);

                    /** NetworkEndpointGroup cloudRun. */
                    public cloudRun?: (google.cloud.compute.v1.INetworkEndpointGroupCloudRun|null);

                    /** NetworkEndpointGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkEndpointGroup defaultPort. */
                    public defaultPort?: (number|null);

                    /** NetworkEndpointGroup description. */
                    public description?: (string|null);

                    /** NetworkEndpointGroup id. */
                    public id?: (number|Long|string|null);

                    /** NetworkEndpointGroup kind. */
                    public kind?: (string|null);

                    /** NetworkEndpointGroup name. */
                    public name?: (string|null);

                    /** NetworkEndpointGroup network. */
                    public network?: (string|null);

                    /** NetworkEndpointGroup networkEndpointType. */
                    public networkEndpointType?: (string|null);

                    /** NetworkEndpointGroup pscData. */
                    public pscData?: (google.cloud.compute.v1.INetworkEndpointGroupPscData|null);

                    /** NetworkEndpointGroup pscTargetService. */
                    public pscTargetService?: (string|null);

                    /** NetworkEndpointGroup region. */
                    public region?: (string|null);

                    /** NetworkEndpointGroup selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEndpointGroup size. */
                    public size?: (number|null);

                    /** NetworkEndpointGroup subnetwork. */
                    public subnetwork?: (string|null);

                    /** NetworkEndpointGroup zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroup): google.cloud.compute.v1.NetworkEndpointGroup;

                    /**
                     * Encodes the specified NetworkEndpointGroup message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroup.verify|verify} messages.
                     * @param message NetworkEndpointGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroup.verify|verify} messages.
                     * @param message NetworkEndpointGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroup;

                    /**
                     * Decodes a NetworkEndpointGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroup;

                    /**
                     * Verifies a NetworkEndpointGroup message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroup;

                    /**
                     * Creates a plain object from a NetworkEndpointGroup message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkEndpointGroup {

                    /** NetworkEndpointType enum. */
                    enum NetworkEndpointType {
                        UNDEFINED_NETWORK_ENDPOINT_TYPE = 0,
                        GCE_VM_IP = 401880793,
                        GCE_VM_IP_PORT = 501838375,
                        GCE_VM_IP_PORTMAP = 22819253,
                        INTERNET_FQDN_PORT = 404154477,
                        INTERNET_IP_PORT = 477719963,
                        NON_GCP_PRIVATE_IP_PORT = 336447968,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        SERVERLESS = 270492508
                    }
                }

                /** Properties of a NetworkEndpointGroupAggregatedList. */
                interface INetworkEndpointGroupAggregatedList {

                    /** NetworkEndpointGroupAggregatedList id */
                    id?: (string|null);

                    /** NetworkEndpointGroupAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.INetworkEndpointGroupsScopedList }|null);

                    /** NetworkEndpointGroupAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkEndpointGroupAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkEndpointGroupAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkEndpointGroupAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkEndpointGroupAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkEndpointGroupAggregatedList. */
                class NetworkEndpointGroupAggregatedList implements INetworkEndpointGroupAggregatedList {

                    /**
                     * Constructs a new NetworkEndpointGroupAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupAggregatedList);

                    /** NetworkEndpointGroupAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkEndpointGroupAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.INetworkEndpointGroupsScopedList };

                    /** NetworkEndpointGroupAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkEndpointGroupAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkEndpointGroupAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEndpointGroupAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NetworkEndpointGroupAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkEndpointGroupAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupAggregatedList): google.cloud.compute.v1.NetworkEndpointGroupAggregatedList;

                    /**
                     * Encodes the specified NetworkEndpointGroupAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupAggregatedList.verify|verify} messages.
                     * @param message NetworkEndpointGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupAggregatedList.verify|verify} messages.
                     * @param message NetworkEndpointGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupAggregatedList;

                    /**
                     * Decodes a NetworkEndpointGroupAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupAggregatedList;

                    /**
                     * Verifies a NetworkEndpointGroupAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupAggregatedList;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupAppEngine. */
                interface INetworkEndpointGroupAppEngine {

                    /** NetworkEndpointGroupAppEngine service */
                    service?: (string|null);

                    /** NetworkEndpointGroupAppEngine urlMask */
                    urlMask?: (string|null);

                    /** NetworkEndpointGroupAppEngine version */
                    version?: (string|null);
                }

                /** Represents a NetworkEndpointGroupAppEngine. */
                class NetworkEndpointGroupAppEngine implements INetworkEndpointGroupAppEngine {

                    /**
                     * Constructs a new NetworkEndpointGroupAppEngine.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupAppEngine);

                    /** NetworkEndpointGroupAppEngine service. */
                    public service?: (string|null);

                    /** NetworkEndpointGroupAppEngine urlMask. */
                    public urlMask?: (string|null);

                    /** NetworkEndpointGroupAppEngine version. */
                    public version?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupAppEngine instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupAppEngine instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupAppEngine): google.cloud.compute.v1.NetworkEndpointGroupAppEngine;

                    /**
                     * Encodes the specified NetworkEndpointGroupAppEngine message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupAppEngine.verify|verify} messages.
                     * @param message NetworkEndpointGroupAppEngine message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupAppEngine, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupAppEngine message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupAppEngine.verify|verify} messages.
                     * @param message NetworkEndpointGroupAppEngine message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupAppEngine, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupAppEngine message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupAppEngine
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupAppEngine;

                    /**
                     * Decodes a NetworkEndpointGroupAppEngine message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupAppEngine
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupAppEngine;

                    /**
                     * Verifies a NetworkEndpointGroupAppEngine message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupAppEngine message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupAppEngine
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupAppEngine;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupAppEngine message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupAppEngine
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupAppEngine, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupAppEngine to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupAppEngine
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupCloudFunction. */
                interface INetworkEndpointGroupCloudFunction {

                    /** NetworkEndpointGroupCloudFunction function */
                    "function"?: (string|null);

                    /** NetworkEndpointGroupCloudFunction urlMask */
                    urlMask?: (string|null);
                }

                /** Represents a NetworkEndpointGroupCloudFunction. */
                class NetworkEndpointGroupCloudFunction implements INetworkEndpointGroupCloudFunction {

                    /**
                     * Constructs a new NetworkEndpointGroupCloudFunction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupCloudFunction);

                    /** NetworkEndpointGroupCloudFunction function. */
                    public function?: (string|null);

                    /** NetworkEndpointGroupCloudFunction urlMask. */
                    public urlMask?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupCloudFunction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupCloudFunction instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupCloudFunction): google.cloud.compute.v1.NetworkEndpointGroupCloudFunction;

                    /**
                     * Encodes the specified NetworkEndpointGroupCloudFunction message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupCloudFunction.verify|verify} messages.
                     * @param message NetworkEndpointGroupCloudFunction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupCloudFunction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupCloudFunction message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupCloudFunction.verify|verify} messages.
                     * @param message NetworkEndpointGroupCloudFunction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupCloudFunction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupCloudFunction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupCloudFunction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupCloudFunction;

                    /**
                     * Decodes a NetworkEndpointGroupCloudFunction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupCloudFunction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupCloudFunction;

                    /**
                     * Verifies a NetworkEndpointGroupCloudFunction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupCloudFunction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupCloudFunction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupCloudFunction;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupCloudFunction message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupCloudFunction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupCloudFunction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupCloudFunction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupCloudFunction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupCloudRun. */
                interface INetworkEndpointGroupCloudRun {

                    /** NetworkEndpointGroupCloudRun service */
                    service?: (string|null);

                    /** NetworkEndpointGroupCloudRun tag */
                    tag?: (string|null);

                    /** NetworkEndpointGroupCloudRun urlMask */
                    urlMask?: (string|null);
                }

                /** Represents a NetworkEndpointGroupCloudRun. */
                class NetworkEndpointGroupCloudRun implements INetworkEndpointGroupCloudRun {

                    /**
                     * Constructs a new NetworkEndpointGroupCloudRun.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupCloudRun);

                    /** NetworkEndpointGroupCloudRun service. */
                    public service?: (string|null);

                    /** NetworkEndpointGroupCloudRun tag. */
                    public tag?: (string|null);

                    /** NetworkEndpointGroupCloudRun urlMask. */
                    public urlMask?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupCloudRun instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupCloudRun instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupCloudRun): google.cloud.compute.v1.NetworkEndpointGroupCloudRun;

                    /**
                     * Encodes the specified NetworkEndpointGroupCloudRun message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupCloudRun.verify|verify} messages.
                     * @param message NetworkEndpointGroupCloudRun message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupCloudRun, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupCloudRun message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupCloudRun.verify|verify} messages.
                     * @param message NetworkEndpointGroupCloudRun message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupCloudRun, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupCloudRun message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupCloudRun
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupCloudRun;

                    /**
                     * Decodes a NetworkEndpointGroupCloudRun message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupCloudRun
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupCloudRun;

                    /**
                     * Verifies a NetworkEndpointGroupCloudRun message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupCloudRun message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupCloudRun
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupCloudRun;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupCloudRun message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupCloudRun
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupCloudRun, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupCloudRun to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupCloudRun
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupList. */
                interface INetworkEndpointGroupList {

                    /** NetworkEndpointGroupList id */
                    id?: (string|null);

                    /** NetworkEndpointGroupList items */
                    items?: (google.cloud.compute.v1.INetworkEndpointGroup[]|null);

                    /** NetworkEndpointGroupList kind */
                    kind?: (string|null);

                    /** NetworkEndpointGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkEndpointGroupList selfLink */
                    selfLink?: (string|null);

                    /** NetworkEndpointGroupList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkEndpointGroupList. */
                class NetworkEndpointGroupList implements INetworkEndpointGroupList {

                    /**
                     * Constructs a new NetworkEndpointGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupList);

                    /** NetworkEndpointGroupList id. */
                    public id?: (string|null);

                    /** NetworkEndpointGroupList items. */
                    public items: google.cloud.compute.v1.INetworkEndpointGroup[];

                    /** NetworkEndpointGroupList kind. */
                    public kind?: (string|null);

                    /** NetworkEndpointGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkEndpointGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEndpointGroupList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkEndpointGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupList): google.cloud.compute.v1.NetworkEndpointGroupList;

                    /**
                     * Encodes the specified NetworkEndpointGroupList message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupList.verify|verify} messages.
                     * @param message NetworkEndpointGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupList.verify|verify} messages.
                     * @param message NetworkEndpointGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupList;

                    /**
                     * Decodes a NetworkEndpointGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupList;

                    /**
                     * Verifies a NetworkEndpointGroupList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupList;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupList message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupPscData. */
                interface INetworkEndpointGroupPscData {

                    /** NetworkEndpointGroupPscData consumerPscAddress */
                    consumerPscAddress?: (string|null);

                    /** NetworkEndpointGroupPscData producerPort */
                    producerPort?: (number|null);

                    /** NetworkEndpointGroupPscData pscConnectionId */
                    pscConnectionId?: (number|Long|string|null);

                    /** NetworkEndpointGroupPscData pscConnectionStatus */
                    pscConnectionStatus?: (string|null);
                }

                /** Represents a NetworkEndpointGroupPscData. */
                class NetworkEndpointGroupPscData implements INetworkEndpointGroupPscData {

                    /**
                     * Constructs a new NetworkEndpointGroupPscData.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupPscData);

                    /** NetworkEndpointGroupPscData consumerPscAddress. */
                    public consumerPscAddress?: (string|null);

                    /** NetworkEndpointGroupPscData producerPort. */
                    public producerPort?: (number|null);

                    /** NetworkEndpointGroupPscData pscConnectionId. */
                    public pscConnectionId?: (number|Long|string|null);

                    /** NetworkEndpointGroupPscData pscConnectionStatus. */
                    public pscConnectionStatus?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupPscData instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupPscData instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupPscData): google.cloud.compute.v1.NetworkEndpointGroupPscData;

                    /**
                     * Encodes the specified NetworkEndpointGroupPscData message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupPscData.verify|verify} messages.
                     * @param message NetworkEndpointGroupPscData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupPscData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupPscData message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupPscData.verify|verify} messages.
                     * @param message NetworkEndpointGroupPscData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupPscData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupPscData message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupPscData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupPscData;

                    /**
                     * Decodes a NetworkEndpointGroupPscData message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupPscData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupPscData;

                    /**
                     * Verifies a NetworkEndpointGroupPscData message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupPscData message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupPscData
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupPscData;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupPscData message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupPscData
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupPscData, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupPscData to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupPscData
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkEndpointGroupPscData {

                    /** PscConnectionStatus enum. */
                    enum PscConnectionStatus {
                        UNDEFINED_PSC_CONNECTION_STATUS = 0,
                        ACCEPTED = 246714279,
                        CLOSED = 380163436,
                        NEEDS_ATTENTION = 344491452,
                        PENDING = 35394935,
                        REJECTED = 174130302,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a NetworkEndpointGroupsAttachEndpointsRequest. */
                interface INetworkEndpointGroupsAttachEndpointsRequest {

                    /** NetworkEndpointGroupsAttachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1.INetworkEndpoint[]|null);
                }

                /** Represents a NetworkEndpointGroupsAttachEndpointsRequest. */
                class NetworkEndpointGroupsAttachEndpointsRequest implements INetworkEndpointGroupsAttachEndpointsRequest {

                    /**
                     * Constructs a new NetworkEndpointGroupsAttachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupsAttachEndpointsRequest);

                    /** NetworkEndpointGroupsAttachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1.INetworkEndpoint[];

                    /**
                     * Creates a new NetworkEndpointGroupsAttachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsAttachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupsAttachEndpointsRequest): google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Encodes the specified NetworkEndpointGroupsAttachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsAttachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Decodes a NetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Verifies a NetworkEndpointGroupsAttachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsAttachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsAttachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsAttachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsAttachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsAttachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsAttachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupsDetachEndpointsRequest. */
                interface INetworkEndpointGroupsDetachEndpointsRequest {

                    /** NetworkEndpointGroupsDetachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1.INetworkEndpoint[]|null);
                }

                /** Represents a NetworkEndpointGroupsDetachEndpointsRequest. */
                class NetworkEndpointGroupsDetachEndpointsRequest implements INetworkEndpointGroupsDetachEndpointsRequest {

                    /**
                     * Constructs a new NetworkEndpointGroupsDetachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupsDetachEndpointsRequest);

                    /** NetworkEndpointGroupsDetachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1.INetworkEndpoint[];

                    /**
                     * Creates a new NetworkEndpointGroupsDetachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsDetachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupsDetachEndpointsRequest): google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Encodes the specified NetworkEndpointGroupsDetachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsDetachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Decodes a NetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Verifies a NetworkEndpointGroupsDetachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsDetachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsDetachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsDetachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsDetachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsDetachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsDetachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupsListEndpointsRequest. */
                interface INetworkEndpointGroupsListEndpointsRequest {

                    /** NetworkEndpointGroupsListEndpointsRequest healthStatus */
                    healthStatus?: (string|null);
                }

                /** Represents a NetworkEndpointGroupsListEndpointsRequest. */
                class NetworkEndpointGroupsListEndpointsRequest implements INetworkEndpointGroupsListEndpointsRequest {

                    /**
                     * Constructs a new NetworkEndpointGroupsListEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupsListEndpointsRequest);

                    /** NetworkEndpointGroupsListEndpointsRequest healthStatus. */
                    public healthStatus?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupsListEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsListEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupsListEndpointsRequest): google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequest;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupsListEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupsListEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsListEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsListEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequest;

                    /**
                     * Decodes a NetworkEndpointGroupsListEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsListEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequest;

                    /**
                     * Verifies a NetworkEndpointGroupsListEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsListEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsListEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequest;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsListEndpointsRequest message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsListEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsListEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsListEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkEndpointGroupsListEndpointsRequest {

                    /** HealthStatus enum. */
                    enum HealthStatus {
                        UNDEFINED_HEALTH_STATUS = 0,
                        SHOW = 2544381,
                        SKIP = 2547071
                    }
                }

                /** Properties of a NetworkEndpointGroupsListNetworkEndpoints. */
                interface INetworkEndpointGroupsListNetworkEndpoints {

                    /** NetworkEndpointGroupsListNetworkEndpoints id */
                    id?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints items */
                    items?: (google.cloud.compute.v1.INetworkEndpointWithHealthStatus[]|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints kind */
                    kind?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkEndpointGroupsListNetworkEndpoints. */
                class NetworkEndpointGroupsListNetworkEndpoints implements INetworkEndpointGroupsListNetworkEndpoints {

                    /**
                     * Constructs a new NetworkEndpointGroupsListNetworkEndpoints.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupsListNetworkEndpoints);

                    /** NetworkEndpointGroupsListNetworkEndpoints id. */
                    public id?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints items. */
                    public items: google.cloud.compute.v1.INetworkEndpointWithHealthStatus[];

                    /** NetworkEndpointGroupsListNetworkEndpoints kind. */
                    public kind?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkEndpointGroupsListNetworkEndpoints instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsListNetworkEndpoints instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupsListNetworkEndpoints): google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListNetworkEndpoints message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListNetworkEndpoints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupsListNetworkEndpoints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListNetworkEndpoints message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListNetworkEndpoints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupsListNetworkEndpoints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsListNetworkEndpoints message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsListNetworkEndpoints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints;

                    /**
                     * Decodes a NetworkEndpointGroupsListNetworkEndpoints message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsListNetworkEndpoints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints;

                    /**
                     * Verifies a NetworkEndpointGroupsListNetworkEndpoints message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsListNetworkEndpoints message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsListNetworkEndpoints
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsListNetworkEndpoints message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsListNetworkEndpoints
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsListNetworkEndpoints to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsListNetworkEndpoints
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupsScopedList. */
                interface INetworkEndpointGroupsScopedList {

                    /** NetworkEndpointGroupsScopedList networkEndpointGroups */
                    networkEndpointGroups?: (google.cloud.compute.v1.INetworkEndpointGroup[]|null);

                    /** NetworkEndpointGroupsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkEndpointGroupsScopedList. */
                class NetworkEndpointGroupsScopedList implements INetworkEndpointGroupsScopedList {

                    /**
                     * Constructs a new NetworkEndpointGroupsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointGroupsScopedList);

                    /** NetworkEndpointGroupsScopedList networkEndpointGroups. */
                    public networkEndpointGroups: google.cloud.compute.v1.INetworkEndpointGroup[];

                    /** NetworkEndpointGroupsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkEndpointGroupsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointGroupsScopedList): google.cloud.compute.v1.NetworkEndpointGroupsScopedList;

                    /**
                     * Encodes the specified NetworkEndpointGroupsScopedList message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsScopedList.verify|verify} messages.
                     * @param message NetworkEndpointGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointGroupsScopedList.verify|verify} messages.
                     * @param message NetworkEndpointGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointGroupsScopedList;

                    /**
                     * Decodes a NetworkEndpointGroupsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointGroupsScopedList;

                    /**
                     * Verifies a NetworkEndpointGroupsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointGroupsScopedList;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsScopedList message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointGroupsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointWithHealthStatus. */
                interface INetworkEndpointWithHealthStatus {

                    /** NetworkEndpointWithHealthStatus healths */
                    healths?: (google.cloud.compute.v1.IHealthStatusForNetworkEndpoint[]|null);

                    /** NetworkEndpointWithHealthStatus networkEndpoint */
                    networkEndpoint?: (google.cloud.compute.v1.INetworkEndpoint|null);
                }

                /** Represents a NetworkEndpointWithHealthStatus. */
                class NetworkEndpointWithHealthStatus implements INetworkEndpointWithHealthStatus {

                    /**
                     * Constructs a new NetworkEndpointWithHealthStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkEndpointWithHealthStatus);

                    /** NetworkEndpointWithHealthStatus healths. */
                    public healths: google.cloud.compute.v1.IHealthStatusForNetworkEndpoint[];

                    /** NetworkEndpointWithHealthStatus networkEndpoint. */
                    public networkEndpoint?: (google.cloud.compute.v1.INetworkEndpoint|null);

                    /**
                     * Creates a new NetworkEndpointWithHealthStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointWithHealthStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkEndpointWithHealthStatus): google.cloud.compute.v1.NetworkEndpointWithHealthStatus;

                    /**
                     * Encodes the specified NetworkEndpointWithHealthStatus message. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointWithHealthStatus.verify|verify} messages.
                     * @param message NetworkEndpointWithHealthStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkEndpointWithHealthStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointWithHealthStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkEndpointWithHealthStatus.verify|verify} messages.
                     * @param message NetworkEndpointWithHealthStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkEndpointWithHealthStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointWithHealthStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointWithHealthStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkEndpointWithHealthStatus;

                    /**
                     * Decodes a NetworkEndpointWithHealthStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointWithHealthStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkEndpointWithHealthStatus;

                    /**
                     * Verifies a NetworkEndpointWithHealthStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointWithHealthStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointWithHealthStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkEndpointWithHealthStatus;

                    /**
                     * Creates a plain object from a NetworkEndpointWithHealthStatus message. Also converts values to other types if specified.
                     * @param message NetworkEndpointWithHealthStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkEndpointWithHealthStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointWithHealthStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointWithHealthStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkFirewallPolicyAggregatedList. */
                interface INetworkFirewallPolicyAggregatedList {

                    /** NetworkFirewallPolicyAggregatedList id */
                    id?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IFirewallPoliciesScopedList }|null);

                    /** NetworkFirewallPolicyAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkFirewallPolicyAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkFirewallPolicyAggregatedList. */
                class NetworkFirewallPolicyAggregatedList implements INetworkFirewallPolicyAggregatedList {

                    /**
                     * Constructs a new NetworkFirewallPolicyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkFirewallPolicyAggregatedList);

                    /** NetworkFirewallPolicyAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IFirewallPoliciesScopedList };

                    /** NetworkFirewallPolicyAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NetworkFirewallPolicyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkFirewallPolicyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkFirewallPolicyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkFirewallPolicyAggregatedList): google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList;

                    /**
                     * Encodes the specified NetworkFirewallPolicyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList.verify|verify} messages.
                     * @param message NetworkFirewallPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkFirewallPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkFirewallPolicyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList.verify|verify} messages.
                     * @param message NetworkFirewallPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkFirewallPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkFirewallPolicyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkFirewallPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList;

                    /**
                     * Decodes a NetworkFirewallPolicyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkFirewallPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList;

                    /**
                     * Verifies a NetworkFirewallPolicyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkFirewallPolicyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkFirewallPolicyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList;

                    /**
                     * Creates a plain object from a NetworkFirewallPolicyAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkFirewallPolicyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkFirewallPolicyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkFirewallPolicyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkInterface. */
                interface INetworkInterface {

                    /** NetworkInterface accessConfigs */
                    accessConfigs?: (google.cloud.compute.v1.IAccessConfig[]|null);

                    /** NetworkInterface aliasIpRanges */
                    aliasIpRanges?: (google.cloud.compute.v1.IAliasIpRange[]|null);

                    /** NetworkInterface enableVpcScopedDns */
                    enableVpcScopedDns?: (boolean|null);

                    /** NetworkInterface fingerprint */
                    fingerprint?: (string|null);

                    /** NetworkInterface igmpQuery */
                    igmpQuery?: (string|null);

                    /** NetworkInterface internalIpv6PrefixLength */
                    internalIpv6PrefixLength?: (number|null);

                    /** NetworkInterface ipv6AccessConfigs */
                    ipv6AccessConfigs?: (google.cloud.compute.v1.IAccessConfig[]|null);

                    /** NetworkInterface ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** NetworkInterface ipv6Address */
                    ipv6Address?: (string|null);

                    /** NetworkInterface kind */
                    kind?: (string|null);

                    /** NetworkInterface name */
                    name?: (string|null);

                    /** NetworkInterface network */
                    network?: (string|null);

                    /** NetworkInterface networkAttachment */
                    networkAttachment?: (string|null);

                    /** NetworkInterface networkIP */
                    networkIP?: (string|null);

                    /** NetworkInterface nicType */
                    nicType?: (string|null);

                    /** NetworkInterface parentNicName */
                    parentNicName?: (string|null);

                    /** NetworkInterface queueCount */
                    queueCount?: (number|null);

                    /** NetworkInterface stackType */
                    stackType?: (string|null);

                    /** NetworkInterface subnetwork */
                    subnetwork?: (string|null);

                    /** NetworkInterface vlan */
                    vlan?: (number|null);
                }

                /** Represents a NetworkInterface. */
                class NetworkInterface implements INetworkInterface {

                    /**
                     * Constructs a new NetworkInterface.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkInterface);

                    /** NetworkInterface accessConfigs. */
                    public accessConfigs: google.cloud.compute.v1.IAccessConfig[];

                    /** NetworkInterface aliasIpRanges. */
                    public aliasIpRanges: google.cloud.compute.v1.IAliasIpRange[];

                    /** NetworkInterface enableVpcScopedDns. */
                    public enableVpcScopedDns?: (boolean|null);

                    /** NetworkInterface fingerprint. */
                    public fingerprint?: (string|null);

                    /** NetworkInterface igmpQuery. */
                    public igmpQuery?: (string|null);

                    /** NetworkInterface internalIpv6PrefixLength. */
                    public internalIpv6PrefixLength?: (number|null);

                    /** NetworkInterface ipv6AccessConfigs. */
                    public ipv6AccessConfigs: google.cloud.compute.v1.IAccessConfig[];

                    /** NetworkInterface ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** NetworkInterface ipv6Address. */
                    public ipv6Address?: (string|null);

                    /** NetworkInterface kind. */
                    public kind?: (string|null);

                    /** NetworkInterface name. */
                    public name?: (string|null);

                    /** NetworkInterface network. */
                    public network?: (string|null);

                    /** NetworkInterface networkAttachment. */
                    public networkAttachment?: (string|null);

                    /** NetworkInterface networkIP. */
                    public networkIP?: (string|null);

                    /** NetworkInterface nicType. */
                    public nicType?: (string|null);

                    /** NetworkInterface parentNicName. */
                    public parentNicName?: (string|null);

                    /** NetworkInterface queueCount. */
                    public queueCount?: (number|null);

                    /** NetworkInterface stackType. */
                    public stackType?: (string|null);

                    /** NetworkInterface subnetwork. */
                    public subnetwork?: (string|null);

                    /** NetworkInterface vlan. */
                    public vlan?: (number|null);

                    /**
                     * Creates a new NetworkInterface instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkInterface instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkInterface): google.cloud.compute.v1.NetworkInterface;

                    /**
                     * Encodes the specified NetworkInterface message. Does not implicitly {@link google.cloud.compute.v1.NetworkInterface.verify|verify} messages.
                     * @param message NetworkInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkInterface message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkInterface.verify|verify} messages.
                     * @param message NetworkInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkInterface message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkInterface;

                    /**
                     * Decodes a NetworkInterface message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkInterface;

                    /**
                     * Verifies a NetworkInterface message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkInterface message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkInterface
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkInterface;

                    /**
                     * Creates a plain object from a NetworkInterface message. Also converts values to other types if specified.
                     * @param message NetworkInterface
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkInterface, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkInterface to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkInterface
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkInterface {

                    /** IgmpQuery enum. */
                    enum IgmpQuery {
                        UNDEFINED_IGMP_QUERY = 0,
                        IGMP_QUERY_DISABLED = 28285169,
                        IGMP_QUERY_V2 = 333493457
                    }

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677,
                        UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613
                    }

                    /** NicType enum. */
                    enum NicType {
                        UNDEFINED_NIC_TYPE = 0,
                        GVNIC = 68209305,
                        IDPF = 2242641,
                        IRDMA = 69927695,
                        MRDMA = 73621779,
                        UNSPECIFIED_NIC_TYPE = 67411801,
                        VIRTIO_NET = 452123481
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100,
                        UNSPECIFIED_STACK_TYPE = 298084569
                    }
                }

                /** Properties of a NetworkList. */
                interface INetworkList {

                    /** NetworkList id */
                    id?: (string|null);

                    /** NetworkList items */
                    items?: (google.cloud.compute.v1.INetwork[]|null);

                    /** NetworkList kind */
                    kind?: (string|null);

                    /** NetworkList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkList selfLink */
                    selfLink?: (string|null);

                    /** NetworkList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkList. */
                class NetworkList implements INetworkList {

                    /**
                     * Constructs a new NetworkList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkList);

                    /** NetworkList id. */
                    public id?: (string|null);

                    /** NetworkList items. */
                    public items: google.cloud.compute.v1.INetwork[];

                    /** NetworkList kind. */
                    public kind?: (string|null);

                    /** NetworkList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkList): google.cloud.compute.v1.NetworkList;

                    /**
                     * Encodes the specified NetworkList message. Does not implicitly {@link google.cloud.compute.v1.NetworkList.verify|verify} messages.
                     * @param message NetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkList.verify|verify} messages.
                     * @param message NetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkList;

                    /**
                     * Decodes a NetworkList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkList;

                    /**
                     * Verifies a NetworkList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkList;

                    /**
                     * Creates a plain object from a NetworkList message. Also converts values to other types if specified.
                     * @param message NetworkList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkParams. */
                interface INetworkParams {

                    /** NetworkParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a NetworkParams. */
                class NetworkParams implements INetworkParams {

                    /**
                     * Constructs a new NetworkParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkParams);

                    /** NetworkParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new NetworkParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkParams): google.cloud.compute.v1.NetworkParams;

                    /**
                     * Encodes the specified NetworkParams message. Does not implicitly {@link google.cloud.compute.v1.NetworkParams.verify|verify} messages.
                     * @param message NetworkParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkParams.verify|verify} messages.
                     * @param message NetworkParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkParams;

                    /**
                     * Decodes a NetworkParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkParams;

                    /**
                     * Verifies a NetworkParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkParams;

                    /**
                     * Creates a plain object from a NetworkParams message. Also converts values to other types if specified.
                     * @param message NetworkParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkPeering. */
                interface INetworkPeering {

                    /** NetworkPeering autoCreateRoutes */
                    autoCreateRoutes?: (boolean|null);

                    /** NetworkPeering connectionStatus */
                    connectionStatus?: (google.cloud.compute.v1.INetworkPeeringConnectionStatus|null);

                    /** NetworkPeering exchangeSubnetRoutes */
                    exchangeSubnetRoutes?: (boolean|null);

                    /** NetworkPeering exportCustomRoutes */
                    exportCustomRoutes?: (boolean|null);

                    /** NetworkPeering exportSubnetRoutesWithPublicIp */
                    exportSubnetRoutesWithPublicIp?: (boolean|null);

                    /** NetworkPeering importCustomRoutes */
                    importCustomRoutes?: (boolean|null);

                    /** NetworkPeering importSubnetRoutesWithPublicIp */
                    importSubnetRoutesWithPublicIp?: (boolean|null);

                    /** NetworkPeering name */
                    name?: (string|null);

                    /** NetworkPeering network */
                    network?: (string|null);

                    /** NetworkPeering peerMtu */
                    peerMtu?: (number|null);

                    /** NetworkPeering stackType */
                    stackType?: (string|null);

                    /** NetworkPeering state */
                    state?: (string|null);

                    /** NetworkPeering stateDetails */
                    stateDetails?: (string|null);

                    /** NetworkPeering updateStrategy */
                    updateStrategy?: (string|null);
                }

                /** Represents a NetworkPeering. */
                class NetworkPeering implements INetworkPeering {

                    /**
                     * Constructs a new NetworkPeering.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkPeering);

                    /** NetworkPeering autoCreateRoutes. */
                    public autoCreateRoutes?: (boolean|null);

                    /** NetworkPeering connectionStatus. */
                    public connectionStatus?: (google.cloud.compute.v1.INetworkPeeringConnectionStatus|null);

                    /** NetworkPeering exchangeSubnetRoutes. */
                    public exchangeSubnetRoutes?: (boolean|null);

                    /** NetworkPeering exportCustomRoutes. */
                    public exportCustomRoutes?: (boolean|null);

                    /** NetworkPeering exportSubnetRoutesWithPublicIp. */
                    public exportSubnetRoutesWithPublicIp?: (boolean|null);

                    /** NetworkPeering importCustomRoutes. */
                    public importCustomRoutes?: (boolean|null);

                    /** NetworkPeering importSubnetRoutesWithPublicIp. */
                    public importSubnetRoutesWithPublicIp?: (boolean|null);

                    /** NetworkPeering name. */
                    public name?: (string|null);

                    /** NetworkPeering network. */
                    public network?: (string|null);

                    /** NetworkPeering peerMtu. */
                    public peerMtu?: (number|null);

                    /** NetworkPeering stackType. */
                    public stackType?: (string|null);

                    /** NetworkPeering state. */
                    public state?: (string|null);

                    /** NetworkPeering stateDetails. */
                    public stateDetails?: (string|null);

                    /** NetworkPeering updateStrategy. */
                    public updateStrategy?: (string|null);

                    /**
                     * Creates a new NetworkPeering instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPeering instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkPeering): google.cloud.compute.v1.NetworkPeering;

                    /**
                     * Encodes the specified NetworkPeering message. Does not implicitly {@link google.cloud.compute.v1.NetworkPeering.verify|verify} messages.
                     * @param message NetworkPeering message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkPeering, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPeering message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkPeering.verify|verify} messages.
                     * @param message NetworkPeering message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkPeering, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPeering message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPeering
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkPeering;

                    /**
                     * Decodes a NetworkPeering message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPeering
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkPeering;

                    /**
                     * Verifies a NetworkPeering message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPeering message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPeering
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkPeering;

                    /**
                     * Creates a plain object from a NetworkPeering message. Also converts values to other types if specified.
                     * @param message NetworkPeering
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkPeering, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPeering to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPeering
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPeering {

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        INACTIVE = 270421099
                    }

                    /** UpdateStrategy enum. */
                    enum UpdateStrategy {
                        UNDEFINED_UPDATE_STRATEGY = 0,
                        CONSENSUS = 203373655,
                        INDEPENDENT = 127011674,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a NetworkPeeringConnectionStatus. */
                interface INetworkPeeringConnectionStatus {

                    /** NetworkPeeringConnectionStatus consensusState */
                    consensusState?: (google.cloud.compute.v1.INetworkPeeringConnectionStatusConsensusState|null);

                    /** NetworkPeeringConnectionStatus trafficConfiguration */
                    trafficConfiguration?: (google.cloud.compute.v1.INetworkPeeringConnectionStatusTrafficConfiguration|null);

                    /** NetworkPeeringConnectionStatus updateStrategy */
                    updateStrategy?: (string|null);
                }

                /** Represents a NetworkPeeringConnectionStatus. */
                class NetworkPeeringConnectionStatus implements INetworkPeeringConnectionStatus {

                    /**
                     * Constructs a new NetworkPeeringConnectionStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkPeeringConnectionStatus);

                    /** NetworkPeeringConnectionStatus consensusState. */
                    public consensusState?: (google.cloud.compute.v1.INetworkPeeringConnectionStatusConsensusState|null);

                    /** NetworkPeeringConnectionStatus trafficConfiguration. */
                    public trafficConfiguration?: (google.cloud.compute.v1.INetworkPeeringConnectionStatusTrafficConfiguration|null);

                    /** NetworkPeeringConnectionStatus updateStrategy. */
                    public updateStrategy?: (string|null);

                    /**
                     * Creates a new NetworkPeeringConnectionStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPeeringConnectionStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkPeeringConnectionStatus): google.cloud.compute.v1.NetworkPeeringConnectionStatus;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatus message. Does not implicitly {@link google.cloud.compute.v1.NetworkPeeringConnectionStatus.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkPeeringConnectionStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkPeeringConnectionStatus.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkPeeringConnectionStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPeeringConnectionStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPeeringConnectionStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkPeeringConnectionStatus;

                    /**
                     * Decodes a NetworkPeeringConnectionStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPeeringConnectionStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkPeeringConnectionStatus;

                    /**
                     * Verifies a NetworkPeeringConnectionStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPeeringConnectionStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPeeringConnectionStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkPeeringConnectionStatus;

                    /**
                     * Creates a plain object from a NetworkPeeringConnectionStatus message. Also converts values to other types if specified.
                     * @param message NetworkPeeringConnectionStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkPeeringConnectionStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPeeringConnectionStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPeeringConnectionStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPeeringConnectionStatus {

                    /** UpdateStrategy enum. */
                    enum UpdateStrategy {
                        UNDEFINED_UPDATE_STRATEGY = 0,
                        CONSENSUS = 203373655,
                        INDEPENDENT = 127011674,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a NetworkPeeringConnectionStatusConsensusState. */
                interface INetworkPeeringConnectionStatusConsensusState {

                    /** NetworkPeeringConnectionStatusConsensusState deleteStatus */
                    deleteStatus?: (string|null);

                    /** NetworkPeeringConnectionStatusConsensusState updateStatus */
                    updateStatus?: (string|null);
                }

                /** Represents a NetworkPeeringConnectionStatusConsensusState. */
                class NetworkPeeringConnectionStatusConsensusState implements INetworkPeeringConnectionStatusConsensusState {

                    /**
                     * Constructs a new NetworkPeeringConnectionStatusConsensusState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkPeeringConnectionStatusConsensusState);

                    /** NetworkPeeringConnectionStatusConsensusState deleteStatus. */
                    public deleteStatus?: (string|null);

                    /** NetworkPeeringConnectionStatusConsensusState updateStatus. */
                    public updateStatus?: (string|null);

                    /**
                     * Creates a new NetworkPeeringConnectionStatusConsensusState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPeeringConnectionStatusConsensusState instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkPeeringConnectionStatusConsensusState): google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusState;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatusConsensusState message. Does not implicitly {@link google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusState.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatusConsensusState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkPeeringConnectionStatusConsensusState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatusConsensusState message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusState.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatusConsensusState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkPeeringConnectionStatusConsensusState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPeeringConnectionStatusConsensusState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPeeringConnectionStatusConsensusState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusState;

                    /**
                     * Decodes a NetworkPeeringConnectionStatusConsensusState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPeeringConnectionStatusConsensusState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusState;

                    /**
                     * Verifies a NetworkPeeringConnectionStatusConsensusState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPeeringConnectionStatusConsensusState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPeeringConnectionStatusConsensusState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusState;

                    /**
                     * Creates a plain object from a NetworkPeeringConnectionStatusConsensusState message. Also converts values to other types if specified.
                     * @param message NetworkPeeringConnectionStatusConsensusState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPeeringConnectionStatusConsensusState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPeeringConnectionStatusConsensusState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPeeringConnectionStatusConsensusState {

                    /** DeleteStatus enum. */
                    enum DeleteStatus {
                        UNDEFINED_DELETE_STATUS = 0,
                        DELETE_ACKNOWLEDGED = 325293916,
                        DELETE_STATUS_UNSPECIFIED = 395396446,
                        LOCAL_DELETE_REQUESTED = 227335214,
                        PEER_DELETE_REQUESTED = 197847799
                    }

                    /** UpdateStatus enum. */
                    enum UpdateStatus {
                        UNDEFINED_UPDATE_STATUS = 0,
                        IN_SYNC = 2273653,
                        PENDING_LOCAL_ACKNOWLEDMENT = 229926592,
                        PENDING_PEER_ACKNOWLEDGEMENT = 420185797,
                        UPDATE_STATUS_UNSPECIFIED = 120836480
                    }
                }

                /** Properties of a NetworkPeeringConnectionStatusTrafficConfiguration. */
                interface INetworkPeeringConnectionStatusTrafficConfiguration {

                    /** NetworkPeeringConnectionStatusTrafficConfiguration exportCustomRoutesToPeer */
                    exportCustomRoutesToPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration exportSubnetRoutesWithPublicIpToPeer */
                    exportSubnetRoutesWithPublicIpToPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration importCustomRoutesFromPeer */
                    importCustomRoutesFromPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration importSubnetRoutesWithPublicIpFromPeer */
                    importSubnetRoutesWithPublicIpFromPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration stackType */
                    stackType?: (string|null);
                }

                /** Represents a NetworkPeeringConnectionStatusTrafficConfiguration. */
                class NetworkPeeringConnectionStatusTrafficConfiguration implements INetworkPeeringConnectionStatusTrafficConfiguration {

                    /**
                     * Constructs a new NetworkPeeringConnectionStatusTrafficConfiguration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkPeeringConnectionStatusTrafficConfiguration);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration exportCustomRoutesToPeer. */
                    public exportCustomRoutesToPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration exportSubnetRoutesWithPublicIpToPeer. */
                    public exportSubnetRoutesWithPublicIpToPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration importCustomRoutesFromPeer. */
                    public importCustomRoutesFromPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration importSubnetRoutesWithPublicIpFromPeer. */
                    public importSubnetRoutesWithPublicIpFromPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration stackType. */
                    public stackType?: (string|null);

                    /**
                     * Creates a new NetworkPeeringConnectionStatusTrafficConfiguration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPeeringConnectionStatusTrafficConfiguration instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkPeeringConnectionStatusTrafficConfiguration): google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfiguration;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatusTrafficConfiguration message. Does not implicitly {@link google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfiguration.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatusTrafficConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkPeeringConnectionStatusTrafficConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatusTrafficConfiguration message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfiguration.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatusTrafficConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkPeeringConnectionStatusTrafficConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPeeringConnectionStatusTrafficConfiguration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPeeringConnectionStatusTrafficConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfiguration;

                    /**
                     * Decodes a NetworkPeeringConnectionStatusTrafficConfiguration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPeeringConnectionStatusTrafficConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfiguration;

                    /**
                     * Verifies a NetworkPeeringConnectionStatusTrafficConfiguration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPeeringConnectionStatusTrafficConfiguration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPeeringConnectionStatusTrafficConfiguration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfiguration;

                    /**
                     * Creates a plain object from a NetworkPeeringConnectionStatusTrafficConfiguration message. Also converts values to other types if specified.
                     * @param message NetworkPeeringConnectionStatusTrafficConfiguration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfiguration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPeeringConnectionStatusTrafficConfiguration to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPeeringConnectionStatusTrafficConfiguration
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPeeringConnectionStatusTrafficConfiguration {

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798
                    }
                }

                /** Properties of a NetworkPerformanceConfig. */
                interface INetworkPerformanceConfig {

                    /** NetworkPerformanceConfig totalEgressBandwidthTier */
                    totalEgressBandwidthTier?: (string|null);
                }

                /** Represents a NetworkPerformanceConfig. */
                class NetworkPerformanceConfig implements INetworkPerformanceConfig {

                    /**
                     * Constructs a new NetworkPerformanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkPerformanceConfig);

                    /** NetworkPerformanceConfig totalEgressBandwidthTier. */
                    public totalEgressBandwidthTier?: (string|null);

                    /**
                     * Creates a new NetworkPerformanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPerformanceConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkPerformanceConfig): google.cloud.compute.v1.NetworkPerformanceConfig;

                    /**
                     * Encodes the specified NetworkPerformanceConfig message. Does not implicitly {@link google.cloud.compute.v1.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.cloud.compute.v1.INetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPerformanceConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.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.cloud.compute.v1.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.cloud.compute.v1.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.cloud.compute.v1.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.cloud.compute.v1.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.cloud.compute.v1.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 {

                    /** TotalEgressBandwidthTier enum. */
                    enum TotalEgressBandwidthTier {
                        UNDEFINED_TOTAL_EGRESS_BANDWIDTH_TIER = 0,
                        DEFAULT = 115302945,
                        TIER_1 = 326919444
                    }
                }

                /** Properties of a NetworkProfile. */
                interface INetworkProfile {

                    /** NetworkProfile creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkProfile description */
                    description?: (string|null);

                    /** NetworkProfile features */
                    features?: (google.cloud.compute.v1.INetworkProfileNetworkFeatures|null);

                    /** NetworkProfile id */
                    id?: (number|Long|string|null);

                    /** NetworkProfile kind */
                    kind?: (string|null);

                    /** NetworkProfile location */
                    location?: (google.cloud.compute.v1.INetworkProfileLocation|null);

                    /** NetworkProfile name */
                    name?: (string|null);

                    /** NetworkProfile profileType */
                    profileType?: (google.cloud.compute.v1.INetworkProfileProfileType|null);

                    /** NetworkProfile selfLink */
                    selfLink?: (string|null);

                    /** NetworkProfile selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** NetworkProfile zone */
                    zone?: (string|null);
                }

                /** Represents a NetworkProfile. */
                class NetworkProfile implements INetworkProfile {

                    /**
                     * Constructs a new NetworkProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkProfile);

                    /** NetworkProfile creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkProfile description. */
                    public description?: (string|null);

                    /** NetworkProfile features. */
                    public features?: (google.cloud.compute.v1.INetworkProfileNetworkFeatures|null);

                    /** NetworkProfile id. */
                    public id?: (number|Long|string|null);

                    /** NetworkProfile kind. */
                    public kind?: (string|null);

                    /** NetworkProfile location. */
                    public location?: (google.cloud.compute.v1.INetworkProfileLocation|null);

                    /** NetworkProfile name. */
                    public name?: (string|null);

                    /** NetworkProfile profileType. */
                    public profileType?: (google.cloud.compute.v1.INetworkProfileProfileType|null);

                    /** NetworkProfile selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkProfile selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** NetworkProfile zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NetworkProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfile instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkProfile): google.cloud.compute.v1.NetworkProfile;

                    /**
                     * Encodes the specified NetworkProfile message. Does not implicitly {@link google.cloud.compute.v1.NetworkProfile.verify|verify} messages.
                     * @param message NetworkProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfile message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkProfile.verify|verify} messages.
                     * @param message NetworkProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkProfile;

                    /**
                     * Decodes a NetworkProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkProfile;

                    /**
                     * Verifies a NetworkProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkProfile;

                    /**
                     * Creates a plain object from a NetworkProfile message. Also converts values to other types if specified.
                     * @param message NetworkProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkProfileLocation. */
                interface INetworkProfileLocation {

                    /** NetworkProfileLocation name */
                    name?: (string|null);

                    /** NetworkProfileLocation scope */
                    scope?: (string|null);
                }

                /** Represents a NetworkProfileLocation. */
                class NetworkProfileLocation implements INetworkProfileLocation {

                    /**
                     * Constructs a new NetworkProfileLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkProfileLocation);

                    /** NetworkProfileLocation name. */
                    public name?: (string|null);

                    /** NetworkProfileLocation scope. */
                    public scope?: (string|null);

                    /**
                     * Creates a new NetworkProfileLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfileLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkProfileLocation): google.cloud.compute.v1.NetworkProfileLocation;

                    /**
                     * Encodes the specified NetworkProfileLocation message. Does not implicitly {@link google.cloud.compute.v1.NetworkProfileLocation.verify|verify} messages.
                     * @param message NetworkProfileLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkProfileLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfileLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkProfileLocation.verify|verify} messages.
                     * @param message NetworkProfileLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkProfileLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfileLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfileLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkProfileLocation;

                    /**
                     * Decodes a NetworkProfileLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfileLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkProfileLocation;

                    /**
                     * Verifies a NetworkProfileLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfileLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfileLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkProfileLocation;

                    /**
                     * Creates a plain object from a NetworkProfileLocation message. Also converts values to other types if specified.
                     * @param message NetworkProfileLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkProfileLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfileLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfileLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkProfileLocation {

                    /** Scope enum. */
                    enum Scope {
                        UNDEFINED_SCOPE = 0,
                        REGION = 266017524,
                        ZONE = 2759596
                    }
                }

                /** Properties of a NetworkProfileNetworkFeatures. */
                interface INetworkProfileNetworkFeatures {

                    /** NetworkProfileNetworkFeatures addressPurposes */
                    addressPurposes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures allowAddressCreation */
                    allowAddressCreation?: (string|null);

                    /** NetworkProfileNetworkFeatures allowAliasIpRanges */
                    allowAliasIpRanges?: (string|null);

                    /** NetworkProfileNetworkFeatures allowAutoModeSubnet */
                    allowAutoModeSubnet?: (string|null);

                    /** NetworkProfileNetworkFeatures allowClassDFirewalls */
                    allowClassDFirewalls?: (string|null);

                    /** NetworkProfileNetworkFeatures allowCloudNat */
                    allowCloudNat?: (string|null);

                    /** NetworkProfileNetworkFeatures allowCloudRouter */
                    allowCloudRouter?: (string|null);

                    /** NetworkProfileNetworkFeatures allowDefaultNicAttachment */
                    allowDefaultNicAttachment?: (string|null);

                    /** NetworkProfileNetworkFeatures allowExternalIpAccess */
                    allowExternalIpAccess?: (string|null);

                    /** NetworkProfileNetworkFeatures allowFirewallPolicy */
                    allowFirewallPolicy?: (string|null);

                    /** NetworkProfileNetworkFeatures allowInterconnect */
                    allowInterconnect?: (string|null);

                    /** NetworkProfileNetworkFeatures allowIpForwarding */
                    allowIpForwarding?: (string|null);

                    /** NetworkProfileNetworkFeatures allowLoadBalancing */
                    allowLoadBalancing?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMultiNicInSameNetwork */
                    allowMultiNicInSameNetwork?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMultiNicInSameSubnetwork */
                    allowMultiNicInSameSubnetwork?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMulticast */
                    allowMulticast?: (string|null);

                    /** NetworkProfileNetworkFeatures allowNcc */
                    allowNcc?: (string|null);

                    /** NetworkProfileNetworkFeatures allowNetworkMigration */
                    allowNetworkMigration?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPacketMirroring */
                    allowPacketMirroring?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPrivateGoogleAccess */
                    allowPrivateGoogleAccess?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPsc */
                    allowPsc?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSameNetworkUnicast */
                    allowSameNetworkUnicast?: (string|null);

                    /** NetworkProfileNetworkFeatures allowStaticRoutes */
                    allowStaticRoutes?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSubInterfaces */
                    allowSubInterfaces?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSubnetworkCreation */
                    allowSubnetworkCreation?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpcFirewallRules */
                    allowVpcFirewallRules?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpcPeering */
                    allowVpcPeering?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpn */
                    allowVpn?: (string|null);

                    /** NetworkProfileNetworkFeatures firewallPolicyTypes */
                    firewallPolicyTypes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures interfaceTypes */
                    interfaceTypes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures multicast */
                    multicast?: (string|null);

                    /** NetworkProfileNetworkFeatures predefinedNetworkInternalIpv6Range */
                    predefinedNetworkInternalIpv6Range?: (string|null);

                    /** NetworkProfileNetworkFeatures predefinedSubnetworkRanges */
                    predefinedSubnetworkRanges?: (google.cloud.compute.v1.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange[]|null);

                    /** NetworkProfileNetworkFeatures subnetPurposes */
                    subnetPurposes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures subnetStackTypes */
                    subnetStackTypes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures subnetworkPurposes */
                    subnetworkPurposes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures subnetworkStackTypes */
                    subnetworkStackTypes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures unicast */
                    unicast?: (string|null);
                }

                /** Represents a NetworkProfileNetworkFeatures. */
                class NetworkProfileNetworkFeatures implements INetworkProfileNetworkFeatures {

                    /**
                     * Constructs a new NetworkProfileNetworkFeatures.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkProfileNetworkFeatures);

                    /** NetworkProfileNetworkFeatures addressPurposes. */
                    public addressPurposes: string[];

                    /** NetworkProfileNetworkFeatures allowAddressCreation. */
                    public allowAddressCreation?: (string|null);

                    /** NetworkProfileNetworkFeatures allowAliasIpRanges. */
                    public allowAliasIpRanges?: (string|null);

                    /** NetworkProfileNetworkFeatures allowAutoModeSubnet. */
                    public allowAutoModeSubnet?: (string|null);

                    /** NetworkProfileNetworkFeatures allowClassDFirewalls. */
                    public allowClassDFirewalls?: (string|null);

                    /** NetworkProfileNetworkFeatures allowCloudNat. */
                    public allowCloudNat?: (string|null);

                    /** NetworkProfileNetworkFeatures allowCloudRouter. */
                    public allowCloudRouter?: (string|null);

                    /** NetworkProfileNetworkFeatures allowDefaultNicAttachment. */
                    public allowDefaultNicAttachment?: (string|null);

                    /** NetworkProfileNetworkFeatures allowExternalIpAccess. */
                    public allowExternalIpAccess?: (string|null);

                    /** NetworkProfileNetworkFeatures allowFirewallPolicy. */
                    public allowFirewallPolicy?: (string|null);

                    /** NetworkProfileNetworkFeatures allowInterconnect. */
                    public allowInterconnect?: (string|null);

                    /** NetworkProfileNetworkFeatures allowIpForwarding. */
                    public allowIpForwarding?: (string|null);

                    /** NetworkProfileNetworkFeatures allowLoadBalancing. */
                    public allowLoadBalancing?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMultiNicInSameNetwork. */
                    public allowMultiNicInSameNetwork?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMultiNicInSameSubnetwork. */
                    public allowMultiNicInSameSubnetwork?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMulticast. */
                    public allowMulticast?: (string|null);

                    /** NetworkProfileNetworkFeatures allowNcc. */
                    public allowNcc?: (string|null);

                    /** NetworkProfileNetworkFeatures allowNetworkMigration. */
                    public allowNetworkMigration?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPacketMirroring. */
                    public allowPacketMirroring?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPrivateGoogleAccess. */
                    public allowPrivateGoogleAccess?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPsc. */
                    public allowPsc?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSameNetworkUnicast. */
                    public allowSameNetworkUnicast?: (string|null);

                    /** NetworkProfileNetworkFeatures allowStaticRoutes. */
                    public allowStaticRoutes?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSubInterfaces. */
                    public allowSubInterfaces?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSubnetworkCreation. */
                    public allowSubnetworkCreation?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpcFirewallRules. */
                    public allowVpcFirewallRules?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpcPeering. */
                    public allowVpcPeering?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpn. */
                    public allowVpn?: (string|null);

                    /** NetworkProfileNetworkFeatures firewallPolicyTypes. */
                    public firewallPolicyTypes: string[];

                    /** NetworkProfileNetworkFeatures interfaceTypes. */
                    public interfaceTypes: string[];

                    /** NetworkProfileNetworkFeatures multicast. */
                    public multicast?: (string|null);

                    /** NetworkProfileNetworkFeatures predefinedNetworkInternalIpv6Range. */
                    public predefinedNetworkInternalIpv6Range?: (string|null);

                    /** NetworkProfileNetworkFeatures predefinedSubnetworkRanges. */
                    public predefinedSubnetworkRanges: google.cloud.compute.v1.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange[];

                    /** NetworkProfileNetworkFeatures subnetPurposes. */
                    public subnetPurposes: string[];

                    /** NetworkProfileNetworkFeatures subnetStackTypes. */
                    public subnetStackTypes: string[];

                    /** NetworkProfileNetworkFeatures subnetworkPurposes. */
                    public subnetworkPurposes: string[];

                    /** NetworkProfileNetworkFeatures subnetworkStackTypes. */
                    public subnetworkStackTypes: string[];

                    /** NetworkProfileNetworkFeatures unicast. */
                    public unicast?: (string|null);

                    /**
                     * Creates a new NetworkProfileNetworkFeatures instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfileNetworkFeatures instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkProfileNetworkFeatures): google.cloud.compute.v1.NetworkProfileNetworkFeatures;

                    /**
                     * Encodes the specified NetworkProfileNetworkFeatures message. Does not implicitly {@link google.cloud.compute.v1.NetworkProfileNetworkFeatures.verify|verify} messages.
                     * @param message NetworkProfileNetworkFeatures message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkProfileNetworkFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfileNetworkFeatures message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkProfileNetworkFeatures.verify|verify} messages.
                     * @param message NetworkProfileNetworkFeatures message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkProfileNetworkFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfileNetworkFeatures message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfileNetworkFeatures
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkProfileNetworkFeatures;

                    /**
                     * Decodes a NetworkProfileNetworkFeatures message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfileNetworkFeatures
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkProfileNetworkFeatures;

                    /**
                     * Verifies a NetworkProfileNetworkFeatures message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfileNetworkFeatures message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfileNetworkFeatures
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkProfileNetworkFeatures;

                    /**
                     * Creates a plain object from a NetworkProfileNetworkFeatures message. Also converts values to other types if specified.
                     * @param message NetworkProfileNetworkFeatures
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkProfileNetworkFeatures, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfileNetworkFeatures to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfileNetworkFeatures
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkProfileNetworkFeatures {

                    /** AddressPurposes enum. */
                    enum AddressPurposes {
                        UNDEFINED_ADDRESS_PURPOSES = 0,
                        DNS_RESOLVER = 476114556,
                        GCE_ENDPOINT = 230515243,
                        IPSEC_INTERCONNECT = 340437251,
                        NAT_AUTO = 163666477,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        SERVERLESS = 270492508,
                        SHARED_LOADBALANCER_VIP = 294447572,
                        VPC_PEERING = 400800170
                    }

                    /** AllowAddressCreation enum. */
                    enum AllowAddressCreation {
                        UNDEFINED_ALLOW_ADDRESS_CREATION = 0,
                        ADDRESS_CREATION_ALLOWED = 181903667,
                        ADDRESS_CREATION_BLOCKED = 534937975
                    }

                    /** AllowAliasIpRanges enum. */
                    enum AllowAliasIpRanges {
                        UNDEFINED_ALLOW_ALIAS_IP_RANGES = 0,
                        ALIAS_IP_RANGES_ALLOWED = 464867048,
                        ALIAS_IP_RANGES_BLOCKED = 281030444
                    }

                    /** AllowAutoModeSubnet enum. */
                    enum AllowAutoModeSubnet {
                        UNDEFINED_ALLOW_AUTO_MODE_SUBNET = 0,
                        AUTO_MODE_SUBNET_ALLOWED = 391042610,
                        AUTO_MODE_SUBNET_BLOCKED = 207206006
                    }

                    /** AllowClassDFirewalls enum. */
                    enum AllowClassDFirewalls {
                        UNDEFINED_ALLOW_CLASS_D_FIREWALLS = 0,
                        CLASS_D_FIREWALLS_ALLOWED = 348219386,
                        CLASS_D_FIREWALLS_BLOCKED = 164382782
                    }

                    /** AllowCloudNat enum. */
                    enum AllowCloudNat {
                        UNDEFINED_ALLOW_CLOUD_NAT = 0,
                        CLOUD_NAT_ALLOWED = 245931296,
                        CLOUD_NAT_BLOCKED = 62094692
                    }

                    /** AllowCloudRouter enum. */
                    enum AllowCloudRouter {
                        UNDEFINED_ALLOW_CLOUD_ROUTER = 0,
                        CLOUD_ROUTER_ALLOWED = 365388284,
                        CLOUD_ROUTER_BLOCKED = 181551680
                    }

                    /** AllowDefaultNicAttachment enum. */
                    enum AllowDefaultNicAttachment {
                        UNDEFINED_ALLOW_DEFAULT_NIC_ATTACHMENT = 0,
                        DEFAULT_NIC_ATTACHMENT_ALLOWED = 11570689,
                        DEFAULT_NIC_ATTACHMENT_BLOCKED = 364604997
                    }

                    /** AllowExternalIpAccess enum. */
                    enum AllowExternalIpAccess {
                        UNDEFINED_ALLOW_EXTERNAL_IP_ACCESS = 0,
                        EXTERNAL_IP_ACCESS_ALLOWED = 109530193,
                        EXTERNAL_IP_ACCESS_BLOCKED = 462564501
                    }

                    /** AllowFirewallPolicy enum. */
                    enum AllowFirewallPolicy {
                        UNDEFINED_ALLOW_FIREWALL_POLICY = 0,
                        FIREWALL_POLICY_ALLOWED = 388488346,
                        FIREWALL_POLICY_BLOCKED = 204651742
                    }

                    /** AllowInterconnect enum. */
                    enum AllowInterconnect {
                        UNDEFINED_ALLOW_INTERCONNECT = 0,
                        INTERCONNECT_ALLOWED = 162845399,
                        INTERCONNECT_BLOCKED = 515879707
                    }

                    /** AllowIpForwarding enum. */
                    enum AllowIpForwarding {
                        UNDEFINED_ALLOW_IP_FORWARDING = 0,
                        IP_FORWARDING_ALLOWED = 152595550,
                        IP_FORWARDING_BLOCKED = 505629858
                    }

                    /** AllowLoadBalancing enum. */
                    enum AllowLoadBalancing {
                        UNDEFINED_ALLOW_LOAD_BALANCING = 0,
                        LOAD_BALANCING_ALLOWED = 28407977,
                        LOAD_BALANCING_BLOCKED = 381442285
                    }

                    /** AllowMultiNicInSameNetwork enum. */
                    enum AllowMultiNicInSameNetwork {
                        UNDEFINED_ALLOW_MULTI_NIC_IN_SAME_NETWORK = 0,
                        MULTI_NIC_IN_SAME_NETWORK_ALLOWED = 457555419,
                        MULTI_NIC_IN_SAME_NETWORK_BLOCKED = 273718815
                    }

                    /** AllowMultiNicInSameSubnetwork enum. */
                    enum AllowMultiNicInSameSubnetwork {
                        UNDEFINED_ALLOW_MULTI_NIC_IN_SAME_SUBNETWORK = 0,
                        MULTI_NIC_IN_SAME_SUBNETWORK_ALLOWED = 288044595,
                        MULTI_NIC_IN_SAME_SUBNETWORK_BLOCKED = 104207991
                    }

                    /** AllowMulticast enum. */
                    enum AllowMulticast {
                        UNDEFINED_ALLOW_MULTICAST = 0,
                        MULTICAST_ALLOWED = 44693537,
                        MULTICAST_BLOCKED = 397727845
                    }

                    /** AllowNcc enum. */
                    enum AllowNcc {
                        UNDEFINED_ALLOW_NCC = 0,
                        NCC_ALLOWED = 467227511,
                        NCC_BLOCKED = 283390907
                    }

                    /** AllowNetworkMigration enum. */
                    enum AllowNetworkMigration {
                        UNDEFINED_ALLOW_NETWORK_MIGRATION = 0,
                        NETWORK_MIGRATION_ALLOWED = 14389766,
                        NETWORK_MIGRATION_BLOCKED = 367424074
                    }

                    /** AllowPacketMirroring enum. */
                    enum AllowPacketMirroring {
                        UNDEFINED_ALLOW_PACKET_MIRRORING = 0,
                        PACKET_MIRRORING_ALLOWED = 92416245,
                        PACKET_MIRRORING_BLOCKED = 445450553
                    }

                    /** AllowPrivateGoogleAccess enum. */
                    enum AllowPrivateGoogleAccess {
                        UNDEFINED_ALLOW_PRIVATE_GOOGLE_ACCESS = 0,
                        PRIVATE_GOOGLE_ACCESS_ALLOWED = 220787351,
                        PRIVATE_GOOGLE_ACCESS_BLOCKED = 36950747
                    }

                    /** AllowPsc enum. */
                    enum AllowPsc {
                        UNDEFINED_ALLOW_PSC = 0,
                        PSC_ALLOWED = 171559657,
                        PSC_BLOCKED = 524593965
                    }

                    /** AllowSameNetworkUnicast enum. */
                    enum AllowSameNetworkUnicast {
                        UNDEFINED_ALLOW_SAME_NETWORK_UNICAST = 0,
                        SAME_NETWORK_UNICAST_ALLOWED = 159732814,
                        SAME_NETWORK_UNICAST_BLOCKED = 512767122
                    }

                    /** AllowStaticRoutes enum. */
                    enum AllowStaticRoutes {
                        UNDEFINED_ALLOW_STATIC_ROUTES = 0,
                        STATIC_ROUTES_ALLOWED = 409048964,
                        STATIC_ROUTES_BLOCKED = 225212360
                    }

                    /** AllowSubInterfaces enum. */
                    enum AllowSubInterfaces {
                        UNDEFINED_ALLOW_SUB_INTERFACES = 0,
                        SUBINTERFACES_ALLOWED = 158685891,
                        SUBINTERFACES_BLOCKED = 511720199
                    }

                    /** AllowSubnetworkCreation enum. */
                    enum AllowSubnetworkCreation {
                        UNDEFINED_ALLOW_SUBNETWORK_CREATION = 0,
                        SUBNETWORK_CREATION_ALLOWED = 158580825,
                        SUBNETWORK_CREATION_BLOCKED = 511615133
                    }

                    /** AllowVpcFirewallRules enum. */
                    enum AllowVpcFirewallRules {
                        UNDEFINED_ALLOW_VPC_FIREWALL_RULES = 0,
                        VPC_FIREWALL_RULES_ALLOWED = 489586007,
                        VPC_FIREWALL_RULES_BLOCKED = 305749403
                    }

                    /** AllowVpcPeering enum. */
                    enum AllowVpcPeering {
                        UNDEFINED_ALLOW_VPC_PEERING = 0,
                        VPC_PEERING_ALLOWED = 261465075,
                        VPC_PEERING_BLOCKED = 77628471
                    }

                    /** AllowVpn enum. */
                    enum AllowVpn {
                        UNDEFINED_ALLOW_VPN = 0,
                        VPN_ALLOWED = 162163997,
                        VPN_BLOCKED = 515198305
                    }

                    /** FirewallPolicyTypes enum. */
                    enum FirewallPolicyTypes {
                        UNDEFINED_FIREWALL_POLICY_TYPES = 0,
                        RDMA_ROCE_POLICY = 148757145,
                        VPC_POLICY = 74319208
                    }

                    /** InterfaceTypes enum. */
                    enum InterfaceTypes {
                        UNDEFINED_INTERFACE_TYPES = 0,
                        GVNIC = 68209305,
                        IDPF = 2242641,
                        IRDMA = 69927695,
                        MRDMA = 73621779,
                        UNSPECIFIED_NIC_TYPE = 67411801,
                        VIRTIO_NET = 452123481
                    }

                    /** Multicast enum. */
                    enum Multicast {
                        UNDEFINED_MULTICAST = 0,
                        MULTICAST_SDN = 532209462,
                        MULTICAST_ULL = 532211630
                    }

                    /** SubnetPurposes enum. */
                    enum SubnetPurposes {
                        UNDEFINED_SUBNET_PURPOSES = 0,
                        SUBNET_PURPOSE_CUSTOM_HARDWARE = 283160275,
                        SUBNET_PURPOSE_PRIVATE = 404371008
                    }

                    /** SubnetStackTypes enum. */
                    enum SubnetStackTypes {
                        UNDEFINED_SUBNET_STACK_TYPES = 0,
                        SUBNET_STACK_TYPE_IPV4_IPV6 = 41454485,
                        SUBNET_STACK_TYPE_IPV4_ONLY = 41631034,
                        SUBNET_STACK_TYPE_IPV6_ONLY = 98889336
                    }

                    /** SubnetworkPurposes enum. */
                    enum SubnetworkPurposes {
                        UNDEFINED_SUBNETWORK_PURPOSES = 0,
                        GLOBAL_MANAGED_PROXY = 236463602,
                        INTERNAL_HTTPS_LOAD_BALANCER = 248748889,
                        PEER_MIGRATION = 491902225,
                        PRIVATE = 403485027,
                        PRIVATE_NAT = 367764517,
                        PRIVATE_RFC_1918 = 254902107,
                        REGIONAL_MANAGED_PROXY = 153049966
                    }

                    /** SubnetworkStackTypes enum. */
                    enum SubnetworkStackTypes {
                        UNDEFINED_SUBNETWORK_STACK_TYPES = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100
                    }

                    /** Unicast enum. */
                    enum Unicast {
                        UNDEFINED_UNICAST = 0,
                        UNICAST_SDN = 379954157,
                        UNICAST_ULL = 379956325
                    }
                }

                /** Properties of a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange. */
                interface INetworkProfileNetworkFeaturesPredefinedSubnetworkRange {

                    /** NetworkProfileNetworkFeaturesPredefinedSubnetworkRange ipv6Range */
                    ipv6Range?: (string|null);

                    /** NetworkProfileNetworkFeaturesPredefinedSubnetworkRange namePrefix */
                    namePrefix?: (string|null);
                }

                /** Represents a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange. */
                class NetworkProfileNetworkFeaturesPredefinedSubnetworkRange implements INetworkProfileNetworkFeaturesPredefinedSubnetworkRange {

                    /**
                     * Constructs a new NetworkProfileNetworkFeaturesPredefinedSubnetworkRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange);

                    /** NetworkProfileNetworkFeaturesPredefinedSubnetworkRange ipv6Range. */
                    public ipv6Range?: (string|null);

                    /** NetworkProfileNetworkFeaturesPredefinedSubnetworkRange namePrefix. */
                    public namePrefix?: (string|null);

                    /**
                     * Creates a new NetworkProfileNetworkFeaturesPredefinedSubnetworkRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfileNetworkFeaturesPredefinedSubnetworkRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange): google.cloud.compute.v1.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange;

                    /**
                     * Encodes the specified NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message. Does not implicitly {@link google.cloud.compute.v1.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange.verify|verify} messages.
                     * @param message NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange.verify|verify} messages.
                     * @param message NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange;

                    /**
                     * Decodes a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange;

                    /**
                     * Verifies a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange;

                    /**
                     * Creates a plain object from a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message. Also converts values to other types if specified.
                     * @param message NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfileNetworkFeaturesPredefinedSubnetworkRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkProfileProfileType. */
                interface INetworkProfileProfileType {

                    /** NetworkProfileProfileType networkType */
                    networkType?: (string|null);

                    /** NetworkProfileProfileType rdmaSubtype */
                    rdmaSubtype?: (string|null);

                    /** NetworkProfileProfileType ullSubtype */
                    ullSubtype?: (string|null);

                    /** NetworkProfileProfileType vpcSubtype */
                    vpcSubtype?: (string|null);
                }

                /** Represents a NetworkProfileProfileType. */
                class NetworkProfileProfileType implements INetworkProfileProfileType {

                    /**
                     * Constructs a new NetworkProfileProfileType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkProfileProfileType);

                    /** NetworkProfileProfileType networkType. */
                    public networkType?: (string|null);

                    /** NetworkProfileProfileType rdmaSubtype. */
                    public rdmaSubtype?: (string|null);

                    /** NetworkProfileProfileType ullSubtype. */
                    public ullSubtype?: (string|null);

                    /** NetworkProfileProfileType vpcSubtype. */
                    public vpcSubtype?: (string|null);

                    /**
                     * Creates a new NetworkProfileProfileType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfileProfileType instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkProfileProfileType): google.cloud.compute.v1.NetworkProfileProfileType;

                    /**
                     * Encodes the specified NetworkProfileProfileType message. Does not implicitly {@link google.cloud.compute.v1.NetworkProfileProfileType.verify|verify} messages.
                     * @param message NetworkProfileProfileType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkProfileProfileType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfileProfileType message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkProfileProfileType.verify|verify} messages.
                     * @param message NetworkProfileProfileType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkProfileProfileType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfileProfileType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfileProfileType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkProfileProfileType;

                    /**
                     * Decodes a NetworkProfileProfileType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfileProfileType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkProfileProfileType;

                    /**
                     * Verifies a NetworkProfileProfileType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfileProfileType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfileProfileType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkProfileProfileType;

                    /**
                     * Creates a plain object from a NetworkProfileProfileType message. Also converts values to other types if specified.
                     * @param message NetworkProfileProfileType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkProfileProfileType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfileProfileType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfileProfileType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkProfileProfileType {

                    /** NetworkType enum. */
                    enum NetworkType {
                        UNDEFINED_NETWORK_TYPE = 0,
                        RDMA = 2510662,
                        ULL = 84117,
                        VPC = 85193
                    }

                    /** RdmaSubtype enum. */
                    enum RdmaSubtype {
                        UNDEFINED_RDMA_SUBTYPE = 0,
                        FALCON = 455787729,
                        ROCE = 2520927,
                        ROCE_METAL = 421218823
                    }

                    /** UllSubtype enum. */
                    enum UllSubtype {
                        UNDEFINED_ULL_SUBTYPE = 0,
                        OPERATOR = 282073252,
                        PARTICIPANT = 236028691
                    }

                    /** VpcSubtype enum. */
                    enum VpcSubtype {
                        UNDEFINED_VPC_SUBTYPE = 0,
                        REGIONAL = 92288543
                    }
                }

                /** Properties of a NetworkProfilesListResponse. */
                interface INetworkProfilesListResponse {

                    /** NetworkProfilesListResponse etag */
                    etag?: (string|null);

                    /** NetworkProfilesListResponse id */
                    id?: (string|null);

                    /** NetworkProfilesListResponse items */
                    items?: (google.cloud.compute.v1.INetworkProfile[]|null);

                    /** NetworkProfilesListResponse kind */
                    kind?: (string|null);

                    /** NetworkProfilesListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkProfilesListResponse selfLink */
                    selfLink?: (string|null);

                    /** NetworkProfilesListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkProfilesListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NetworkProfilesListResponse. */
                class NetworkProfilesListResponse implements INetworkProfilesListResponse {

                    /**
                     * Constructs a new NetworkProfilesListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkProfilesListResponse);

                    /** NetworkProfilesListResponse etag. */
                    public etag?: (string|null);

                    /** NetworkProfilesListResponse id. */
                    public id?: (string|null);

                    /** NetworkProfilesListResponse items. */
                    public items: google.cloud.compute.v1.INetworkProfile[];

                    /** NetworkProfilesListResponse kind. */
                    public kind?: (string|null);

                    /** NetworkProfilesListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkProfilesListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkProfilesListResponse unreachables. */
                    public unreachables: string[];

                    /** NetworkProfilesListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NetworkProfilesListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfilesListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkProfilesListResponse): google.cloud.compute.v1.NetworkProfilesListResponse;

                    /**
                     * Encodes the specified NetworkProfilesListResponse message. Does not implicitly {@link google.cloud.compute.v1.NetworkProfilesListResponse.verify|verify} messages.
                     * @param message NetworkProfilesListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkProfilesListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfilesListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkProfilesListResponse.verify|verify} messages.
                     * @param message NetworkProfilesListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkProfilesListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfilesListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfilesListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkProfilesListResponse;

                    /**
                     * Decodes a NetworkProfilesListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfilesListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkProfilesListResponse;

                    /**
                     * Verifies a NetworkProfilesListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfilesListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfilesListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkProfilesListResponse;

                    /**
                     * Creates a plain object from a NetworkProfilesListResponse message. Also converts values to other types if specified.
                     * @param message NetworkProfilesListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkProfilesListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfilesListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfilesListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkRoutingConfig. */
                interface INetworkRoutingConfig {

                    /** NetworkRoutingConfig bgpAlwaysCompareMed */
                    bgpAlwaysCompareMed?: (boolean|null);

                    /** NetworkRoutingConfig bgpBestPathSelectionMode */
                    bgpBestPathSelectionMode?: (string|null);

                    /** NetworkRoutingConfig bgpInterRegionCost */
                    bgpInterRegionCost?: (string|null);

                    /** NetworkRoutingConfig effectiveBgpAlwaysCompareMed */
                    effectiveBgpAlwaysCompareMed?: (boolean|null);

                    /** NetworkRoutingConfig effectiveBgpInterRegionCost */
                    effectiveBgpInterRegionCost?: (string|null);

                    /** NetworkRoutingConfig routingMode */
                    routingMode?: (string|null);
                }

                /** Represents a NetworkRoutingConfig. */
                class NetworkRoutingConfig implements INetworkRoutingConfig {

                    /**
                     * Constructs a new NetworkRoutingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworkRoutingConfig);

                    /** NetworkRoutingConfig bgpAlwaysCompareMed. */
                    public bgpAlwaysCompareMed?: (boolean|null);

                    /** NetworkRoutingConfig bgpBestPathSelectionMode. */
                    public bgpBestPathSelectionMode?: (string|null);

                    /** NetworkRoutingConfig bgpInterRegionCost. */
                    public bgpInterRegionCost?: (string|null);

                    /** NetworkRoutingConfig effectiveBgpAlwaysCompareMed. */
                    public effectiveBgpAlwaysCompareMed?: (boolean|null);

                    /** NetworkRoutingConfig effectiveBgpInterRegionCost. */
                    public effectiveBgpInterRegionCost?: (string|null);

                    /** NetworkRoutingConfig routingMode. */
                    public routingMode?: (string|null);

                    /**
                     * Creates a new NetworkRoutingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkRoutingConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworkRoutingConfig): google.cloud.compute.v1.NetworkRoutingConfig;

                    /**
                     * Encodes the specified NetworkRoutingConfig message. Does not implicitly {@link google.cloud.compute.v1.NetworkRoutingConfig.verify|verify} messages.
                     * @param message NetworkRoutingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworkRoutingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkRoutingConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworkRoutingConfig.verify|verify} messages.
                     * @param message NetworkRoutingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworkRoutingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkRoutingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkRoutingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworkRoutingConfig;

                    /**
                     * Decodes a NetworkRoutingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkRoutingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworkRoutingConfig;

                    /**
                     * Verifies a NetworkRoutingConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkRoutingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkRoutingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworkRoutingConfig;

                    /**
                     * Creates a plain object from a NetworkRoutingConfig message. Also converts values to other types if specified.
                     * @param message NetworkRoutingConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworkRoutingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkRoutingConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkRoutingConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkRoutingConfig {

                    /** BgpBestPathSelectionMode enum. */
                    enum BgpBestPathSelectionMode {
                        UNDEFINED_BGP_BEST_PATH_SELECTION_MODE = 0,
                        LEGACY = 94234569,
                        STANDARD = 484642493
                    }

                    /** BgpInterRegionCost enum. */
                    enum BgpInterRegionCost {
                        UNDEFINED_BGP_INTER_REGION_COST = 0,
                        ADD_COST_TO_MED = 490583004,
                        DEFAULT = 115302945
                    }

                    /** EffectiveBgpInterRegionCost enum. */
                    enum EffectiveBgpInterRegionCost {
                        UNDEFINED_EFFECTIVE_BGP_INTER_REGION_COST = 0
                    }

                    /** RoutingMode enum. */
                    enum RoutingMode {
                        UNDEFINED_ROUTING_MODE = 0,
                        GLOBAL = 494663587,
                        REGIONAL = 92288543
                    }
                }

                /** Properties of a NetworksAddPeeringRequest. */
                interface INetworksAddPeeringRequest {

                    /** NetworksAddPeeringRequest autoCreateRoutes */
                    autoCreateRoutes?: (boolean|null);

                    /** NetworksAddPeeringRequest name */
                    name?: (string|null);

                    /** NetworksAddPeeringRequest networkPeering */
                    networkPeering?: (google.cloud.compute.v1.INetworkPeering|null);

                    /** NetworksAddPeeringRequest peerNetwork */
                    peerNetwork?: (string|null);
                }

                /** Represents a NetworksAddPeeringRequest. */
                class NetworksAddPeeringRequest implements INetworksAddPeeringRequest {

                    /**
                     * Constructs a new NetworksAddPeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworksAddPeeringRequest);

                    /** NetworksAddPeeringRequest autoCreateRoutes. */
                    public autoCreateRoutes?: (boolean|null);

                    /** NetworksAddPeeringRequest name. */
                    public name?: (string|null);

                    /** NetworksAddPeeringRequest networkPeering. */
                    public networkPeering?: (google.cloud.compute.v1.INetworkPeering|null);

                    /** NetworksAddPeeringRequest peerNetwork. */
                    public peerNetwork?: (string|null);

                    /**
                     * Creates a new NetworksAddPeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksAddPeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworksAddPeeringRequest): google.cloud.compute.v1.NetworksAddPeeringRequest;

                    /**
                     * Encodes the specified NetworksAddPeeringRequest message. Does not implicitly {@link google.cloud.compute.v1.NetworksAddPeeringRequest.verify|verify} messages.
                     * @param message NetworksAddPeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworksAddPeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksAddPeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworksAddPeeringRequest.verify|verify} messages.
                     * @param message NetworksAddPeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworksAddPeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksAddPeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksAddPeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworksAddPeeringRequest;

                    /**
                     * Decodes a NetworksAddPeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksAddPeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworksAddPeeringRequest;

                    /**
                     * Verifies a NetworksAddPeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksAddPeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksAddPeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworksAddPeeringRequest;

                    /**
                     * Creates a plain object from a NetworksAddPeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksAddPeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworksAddPeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksAddPeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksAddPeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksGetEffectiveFirewallsResponse. */
                interface INetworksGetEffectiveFirewallsResponse {

                    /** NetworksGetEffectiveFirewallsResponse firewallPolicys */
                    firewallPolicys?: (google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy[]|null);

                    /** NetworksGetEffectiveFirewallsResponse firewalls */
                    firewalls?: (google.cloud.compute.v1.IFirewall[]|null);
                }

                /** Represents a NetworksGetEffectiveFirewallsResponse. */
                class NetworksGetEffectiveFirewallsResponse implements INetworksGetEffectiveFirewallsResponse {

                    /**
                     * Constructs a new NetworksGetEffectiveFirewallsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponse);

                    /** NetworksGetEffectiveFirewallsResponse firewallPolicys. */
                    public firewallPolicys: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy[];

                    /** NetworksGetEffectiveFirewallsResponse firewalls. */
                    public firewalls: google.cloud.compute.v1.IFirewall[];

                    /**
                     * Creates a new NetworksGetEffectiveFirewallsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksGetEffectiveFirewallsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponse): google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponse message. Does not implicitly {@link google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse;

                    /**
                     * Verifies a NetworksGetEffectiveFirewallsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksGetEffectiveFirewallsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksGetEffectiveFirewallsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse;

                    /**
                     * Creates a plain object from a NetworksGetEffectiveFirewallsResponse message. Also converts values to other types if specified.
                     * @param message NetworksGetEffectiveFirewallsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksGetEffectiveFirewallsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksGetEffectiveFirewallsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                interface INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName */
                    displayName?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy name */
                    name?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules */
                    packetMirroringRules?: (google.cloud.compute.v1.IFirewallPolicyRule[]|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority */
                    priority?: (number|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules */
                    rules?: (google.cloud.compute.v1.IFirewallPolicyRule[]|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy shortName */
                    shortName?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy type */
                    type?: (string|null);
                }

                /** Represents a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy implements INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /**
                     * Constructs a new NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName. */
                    public displayName?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy name. */
                    public name?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules. */
                    public packetMirroringRules: google.cloud.compute.v1.IFirewallPolicyRule[];

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority. */
                    public priority?: (number|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules. */
                    public rules: google.cloud.compute.v1.IFirewallPolicyRule[];

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy shortName. */
                    public shortName?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy): google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Verifies a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Creates a plain object from a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Also converts values to other types if specified.
                     * @param message NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HIERARCHY = 69902869,
                        NETWORK = 413984270,
                        SYSTEM = 313484847,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a NetworksRemovePeeringRequest. */
                interface INetworksRemovePeeringRequest {

                    /** NetworksRemovePeeringRequest name */
                    name?: (string|null);
                }

                /** Represents a NetworksRemovePeeringRequest. */
                class NetworksRemovePeeringRequest implements INetworksRemovePeeringRequest {

                    /**
                     * Constructs a new NetworksRemovePeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworksRemovePeeringRequest);

                    /** NetworksRemovePeeringRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new NetworksRemovePeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksRemovePeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworksRemovePeeringRequest): google.cloud.compute.v1.NetworksRemovePeeringRequest;

                    /**
                     * Encodes the specified NetworksRemovePeeringRequest message. Does not implicitly {@link google.cloud.compute.v1.NetworksRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworksRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksRemovePeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworksRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworksRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksRemovePeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworksRemovePeeringRequest;

                    /**
                     * Decodes a NetworksRemovePeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworksRemovePeeringRequest;

                    /**
                     * Verifies a NetworksRemovePeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksRemovePeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksRemovePeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworksRemovePeeringRequest;

                    /**
                     * Creates a plain object from a NetworksRemovePeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksRemovePeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworksRemovePeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksRemovePeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksRemovePeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksRequestRemovePeeringRequest. */
                interface INetworksRequestRemovePeeringRequest {

                    /** NetworksRequestRemovePeeringRequest name */
                    name?: (string|null);
                }

                /** Represents a NetworksRequestRemovePeeringRequest. */
                class NetworksRequestRemovePeeringRequest implements INetworksRequestRemovePeeringRequest {

                    /**
                     * Constructs a new NetworksRequestRemovePeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworksRequestRemovePeeringRequest);

                    /** NetworksRequestRemovePeeringRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new NetworksRequestRemovePeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksRequestRemovePeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworksRequestRemovePeeringRequest): google.cloud.compute.v1.NetworksRequestRemovePeeringRequest;

                    /**
                     * Encodes the specified NetworksRequestRemovePeeringRequest message. Does not implicitly {@link google.cloud.compute.v1.NetworksRequestRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksRequestRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworksRequestRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksRequestRemovePeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworksRequestRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksRequestRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworksRequestRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksRequestRemovePeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksRequestRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworksRequestRemovePeeringRequest;

                    /**
                     * Decodes a NetworksRequestRemovePeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksRequestRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworksRequestRemovePeeringRequest;

                    /**
                     * Verifies a NetworksRequestRemovePeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksRequestRemovePeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksRequestRemovePeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworksRequestRemovePeeringRequest;

                    /**
                     * Creates a plain object from a NetworksRequestRemovePeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksRequestRemovePeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworksRequestRemovePeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksRequestRemovePeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksRequestRemovePeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksUpdatePeeringRequest. */
                interface INetworksUpdatePeeringRequest {

                    /** NetworksUpdatePeeringRequest networkPeering */
                    networkPeering?: (google.cloud.compute.v1.INetworkPeering|null);
                }

                /** Represents a NetworksUpdatePeeringRequest. */
                class NetworksUpdatePeeringRequest implements INetworksUpdatePeeringRequest {

                    /**
                     * Constructs a new NetworksUpdatePeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INetworksUpdatePeeringRequest);

                    /** NetworksUpdatePeeringRequest networkPeering. */
                    public networkPeering?: (google.cloud.compute.v1.INetworkPeering|null);

                    /**
                     * Creates a new NetworksUpdatePeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksUpdatePeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INetworksUpdatePeeringRequest): google.cloud.compute.v1.NetworksUpdatePeeringRequest;

                    /**
                     * Encodes the specified NetworksUpdatePeeringRequest message. Does not implicitly {@link google.cloud.compute.v1.NetworksUpdatePeeringRequest.verify|verify} messages.
                     * @param message NetworksUpdatePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INetworksUpdatePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksUpdatePeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NetworksUpdatePeeringRequest.verify|verify} messages.
                     * @param message NetworksUpdatePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INetworksUpdatePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksUpdatePeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksUpdatePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NetworksUpdatePeeringRequest;

                    /**
                     * Decodes a NetworksUpdatePeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksUpdatePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NetworksUpdatePeeringRequest;

                    /**
                     * Verifies a NetworksUpdatePeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksUpdatePeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksUpdatePeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NetworksUpdatePeeringRequest;

                    /**
                     * Creates a plain object from a NetworksUpdatePeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksUpdatePeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NetworksUpdatePeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksUpdatePeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksUpdatePeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroup. */
                interface INodeGroup {

                    /** NodeGroup autoscalingPolicy */
                    autoscalingPolicy?: (google.cloud.compute.v1.INodeGroupAutoscalingPolicy|null);

                    /** NodeGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NodeGroup description */
                    description?: (string|null);

                    /** NodeGroup fingerprint */
                    fingerprint?: (string|null);

                    /** NodeGroup id */
                    id?: (number|Long|string|null);

                    /** NodeGroup kind */
                    kind?: (string|null);

                    /** NodeGroup locationHint */
                    locationHint?: (string|null);

                    /** NodeGroup maintenanceInterval */
                    maintenanceInterval?: (string|null);

                    /** NodeGroup maintenancePolicy */
                    maintenancePolicy?: (string|null);

                    /** NodeGroup maintenanceWindow */
                    maintenanceWindow?: (google.cloud.compute.v1.INodeGroupMaintenanceWindow|null);

                    /** NodeGroup name */
                    name?: (string|null);

                    /** NodeGroup nodeTemplate */
                    nodeTemplate?: (string|null);

                    /** NodeGroup selfLink */
                    selfLink?: (string|null);

                    /** NodeGroup shareSettings */
                    shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** NodeGroup size */
                    size?: (number|null);

                    /** NodeGroup status */
                    status?: (string|null);

                    /** NodeGroup zone */
                    zone?: (string|null);
                }

                /** Represents a NodeGroup. */
                class NodeGroup implements INodeGroup {

                    /**
                     * Constructs a new NodeGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroup);

                    /** NodeGroup autoscalingPolicy. */
                    public autoscalingPolicy?: (google.cloud.compute.v1.INodeGroupAutoscalingPolicy|null);

                    /** NodeGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NodeGroup description. */
                    public description?: (string|null);

                    /** NodeGroup fingerprint. */
                    public fingerprint?: (string|null);

                    /** NodeGroup id. */
                    public id?: (number|Long|string|null);

                    /** NodeGroup kind. */
                    public kind?: (string|null);

                    /** NodeGroup locationHint. */
                    public locationHint?: (string|null);

                    /** NodeGroup maintenanceInterval. */
                    public maintenanceInterval?: (string|null);

                    /** NodeGroup maintenancePolicy. */
                    public maintenancePolicy?: (string|null);

                    /** NodeGroup maintenanceWindow. */
                    public maintenanceWindow?: (google.cloud.compute.v1.INodeGroupMaintenanceWindow|null);

                    /** NodeGroup name. */
                    public name?: (string|null);

                    /** NodeGroup nodeTemplate. */
                    public nodeTemplate?: (string|null);

                    /** NodeGroup selfLink. */
                    public selfLink?: (string|null);

                    /** NodeGroup shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** NodeGroup size. */
                    public size?: (number|null);

                    /** NodeGroup status. */
                    public status?: (string|null);

                    /** NodeGroup zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NodeGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroup): google.cloud.compute.v1.NodeGroup;

                    /**
                     * Encodes the specified NodeGroup message. Does not implicitly {@link google.cloud.compute.v1.NodeGroup.verify|verify} messages.
                     * @param message NodeGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroup.verify|verify} messages.
                     * @param message NodeGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroup;

                    /**
                     * Decodes a NodeGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroup;

                    /**
                     * Verifies a NodeGroup message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroup;

                    /**
                     * Creates a plain object from a NodeGroup message. Also converts values to other types if specified.
                     * @param message NodeGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeGroup {

                    /** MaintenanceInterval enum. */
                    enum MaintenanceInterval {
                        UNDEFINED_MAINTENANCE_INTERVAL = 0,
                        AS_NEEDED = 500724834,
                        RECURRENT = 194244550
                    }

                    /** MaintenancePolicy enum. */
                    enum MaintenancePolicy {
                        UNDEFINED_MAINTENANCE_POLICY = 0,
                        DEFAULT = 115302945,
                        MAINTENANCE_POLICY_UNSPECIFIED = 72964182,
                        MIGRATE_WITHIN_NODE_GROUP = 153483394,
                        RESTART_IN_PLACE = 228647325
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a NodeGroupAggregatedList. */
                interface INodeGroupAggregatedList {

                    /** NodeGroupAggregatedList id */
                    id?: (string|null);

                    /** NodeGroupAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.INodeGroupsScopedList }|null);

                    /** NodeGroupAggregatedList kind */
                    kind?: (string|null);

                    /** NodeGroupAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeGroupAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NodeGroupAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NodeGroupAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeGroupAggregatedList. */
                class NodeGroupAggregatedList implements INodeGroupAggregatedList {

                    /**
                     * Constructs a new NodeGroupAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupAggregatedList);

                    /** NodeGroupAggregatedList id. */
                    public id?: (string|null);

                    /** NodeGroupAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.INodeGroupsScopedList };

                    /** NodeGroupAggregatedList kind. */
                    public kind?: (string|null);

                    /** NodeGroupAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeGroupAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeGroupAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NodeGroupAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeGroupAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupAggregatedList): google.cloud.compute.v1.NodeGroupAggregatedList;

                    /**
                     * Encodes the specified NodeGroupAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupAggregatedList.verify|verify} messages.
                     * @param message NodeGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupAggregatedList.verify|verify} messages.
                     * @param message NodeGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupAggregatedList;

                    /**
                     * Decodes a NodeGroupAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupAggregatedList;

                    /**
                     * Verifies a NodeGroupAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupAggregatedList;

                    /**
                     * Creates a plain object from a NodeGroupAggregatedList message. Also converts values to other types if specified.
                     * @param message NodeGroupAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupAutoscalingPolicy. */
                interface INodeGroupAutoscalingPolicy {

                    /** NodeGroupAutoscalingPolicy maxNodes */
                    maxNodes?: (number|null);

                    /** NodeGroupAutoscalingPolicy minNodes */
                    minNodes?: (number|null);

                    /** NodeGroupAutoscalingPolicy mode */
                    mode?: (string|null);
                }

                /** Represents a NodeGroupAutoscalingPolicy. */
                class NodeGroupAutoscalingPolicy implements INodeGroupAutoscalingPolicy {

                    /**
                     * Constructs a new NodeGroupAutoscalingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupAutoscalingPolicy);

                    /** NodeGroupAutoscalingPolicy maxNodes. */
                    public maxNodes?: (number|null);

                    /** NodeGroupAutoscalingPolicy minNodes. */
                    public minNodes?: (number|null);

                    /** NodeGroupAutoscalingPolicy mode. */
                    public mode?: (string|null);

                    /**
                     * Creates a new NodeGroupAutoscalingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupAutoscalingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupAutoscalingPolicy): google.cloud.compute.v1.NodeGroupAutoscalingPolicy;

                    /**
                     * Encodes the specified NodeGroupAutoscalingPolicy message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupAutoscalingPolicy.verify|verify} messages.
                     * @param message NodeGroupAutoscalingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupAutoscalingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupAutoscalingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupAutoscalingPolicy.verify|verify} messages.
                     * @param message NodeGroupAutoscalingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupAutoscalingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupAutoscalingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupAutoscalingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupAutoscalingPolicy;

                    /**
                     * Decodes a NodeGroupAutoscalingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupAutoscalingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupAutoscalingPolicy;

                    /**
                     * Verifies a NodeGroupAutoscalingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupAutoscalingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupAutoscalingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupAutoscalingPolicy;

                    /**
                     * Creates a plain object from a NodeGroupAutoscalingPolicy message. Also converts values to other types if specified.
                     * @param message NodeGroupAutoscalingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupAutoscalingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupAutoscalingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupAutoscalingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeGroupAutoscalingPolicy {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        MODE_UNSPECIFIED = 371348091,
                        OFF = 78159,
                        ON = 2527,
                        ONLY_SCALE_OUT = 152713670
                    }
                }

                /** Properties of a NodeGroupList. */
                interface INodeGroupList {

                    /** NodeGroupList id */
                    id?: (string|null);

                    /** NodeGroupList items */
                    items?: (google.cloud.compute.v1.INodeGroup[]|null);

                    /** NodeGroupList kind */
                    kind?: (string|null);

                    /** NodeGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeGroupList selfLink */
                    selfLink?: (string|null);

                    /** NodeGroupList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeGroupList. */
                class NodeGroupList implements INodeGroupList {

                    /**
                     * Constructs a new NodeGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupList);

                    /** NodeGroupList id. */
                    public id?: (string|null);

                    /** NodeGroupList items. */
                    public items: google.cloud.compute.v1.INodeGroup[];

                    /** NodeGroupList kind. */
                    public kind?: (string|null);

                    /** NodeGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeGroupList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupList): google.cloud.compute.v1.NodeGroupList;

                    /**
                     * Encodes the specified NodeGroupList message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupList.verify|verify} messages.
                     * @param message NodeGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupList.verify|verify} messages.
                     * @param message NodeGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupList;

                    /**
                     * Decodes a NodeGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupList;

                    /**
                     * Verifies a NodeGroupList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupList;

                    /**
                     * Creates a plain object from a NodeGroupList message. Also converts values to other types if specified.
                     * @param message NodeGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupMaintenanceWindow. */
                interface INodeGroupMaintenanceWindow {

                    /** NodeGroupMaintenanceWindow maintenanceDuration */
                    maintenanceDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** NodeGroupMaintenanceWindow startTime */
                    startTime?: (string|null);
                }

                /** Represents a NodeGroupMaintenanceWindow. */
                class NodeGroupMaintenanceWindow implements INodeGroupMaintenanceWindow {

                    /**
                     * Constructs a new NodeGroupMaintenanceWindow.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupMaintenanceWindow);

                    /** NodeGroupMaintenanceWindow maintenanceDuration. */
                    public maintenanceDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** NodeGroupMaintenanceWindow startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new NodeGroupMaintenanceWindow instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupMaintenanceWindow instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupMaintenanceWindow): google.cloud.compute.v1.NodeGroupMaintenanceWindow;

                    /**
                     * Encodes the specified NodeGroupMaintenanceWindow message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupMaintenanceWindow.verify|verify} messages.
                     * @param message NodeGroupMaintenanceWindow message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupMaintenanceWindow message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupMaintenanceWindow.verify|verify} messages.
                     * @param message NodeGroupMaintenanceWindow message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupMaintenanceWindow message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupMaintenanceWindow
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupMaintenanceWindow;

                    /**
                     * Decodes a NodeGroupMaintenanceWindow message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupMaintenanceWindow
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupMaintenanceWindow;

                    /**
                     * Verifies a NodeGroupMaintenanceWindow message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupMaintenanceWindow message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupMaintenanceWindow
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupMaintenanceWindow;

                    /**
                     * Creates a plain object from a NodeGroupMaintenanceWindow message. Also converts values to other types if specified.
                     * @param message NodeGroupMaintenanceWindow
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupMaintenanceWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupMaintenanceWindow to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupMaintenanceWindow
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupNode. */
                interface INodeGroupNode {

                    /** NodeGroupNode accelerators */
                    accelerators?: (google.cloud.compute.v1.IAcceleratorConfig[]|null);

                    /** NodeGroupNode consumedResources */
                    consumedResources?: (google.cloud.compute.v1.IInstanceConsumptionInfo|null);

                    /** NodeGroupNode cpuOvercommitType */
                    cpuOvercommitType?: (string|null);

                    /** NodeGroupNode disks */
                    disks?: (google.cloud.compute.v1.ILocalDisk[]|null);

                    /** NodeGroupNode instanceConsumptionData */
                    instanceConsumptionData?: (google.cloud.compute.v1.IInstanceConsumptionData[]|null);

                    /** NodeGroupNode instances */
                    instances?: (string[]|null);

                    /** NodeGroupNode name */
                    name?: (string|null);

                    /** NodeGroupNode nodeType */
                    nodeType?: (string|null);

                    /** NodeGroupNode satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** NodeGroupNode serverBinding */
                    serverBinding?: (google.cloud.compute.v1.IServerBinding|null);

                    /** NodeGroupNode serverId */
                    serverId?: (string|null);

                    /** NodeGroupNode status */
                    status?: (string|null);

                    /** NodeGroupNode totalResources */
                    totalResources?: (google.cloud.compute.v1.IInstanceConsumptionInfo|null);

                    /** NodeGroupNode upcomingMaintenance */
                    upcomingMaintenance?: (google.cloud.compute.v1.IUpcomingMaintenance|null);
                }

                /** Represents a NodeGroupNode. */
                class NodeGroupNode implements INodeGroupNode {

                    /**
                     * Constructs a new NodeGroupNode.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupNode);

                    /** NodeGroupNode accelerators. */
                    public accelerators: google.cloud.compute.v1.IAcceleratorConfig[];

                    /** NodeGroupNode consumedResources. */
                    public consumedResources?: (google.cloud.compute.v1.IInstanceConsumptionInfo|null);

                    /** NodeGroupNode cpuOvercommitType. */
                    public cpuOvercommitType?: (string|null);

                    /** NodeGroupNode disks. */
                    public disks: google.cloud.compute.v1.ILocalDisk[];

                    /** NodeGroupNode instanceConsumptionData. */
                    public instanceConsumptionData: google.cloud.compute.v1.IInstanceConsumptionData[];

                    /** NodeGroupNode instances. */
                    public instances: string[];

                    /** NodeGroupNode name. */
                    public name?: (string|null);

                    /** NodeGroupNode nodeType. */
                    public nodeType?: (string|null);

                    /** NodeGroupNode satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** NodeGroupNode serverBinding. */
                    public serverBinding?: (google.cloud.compute.v1.IServerBinding|null);

                    /** NodeGroupNode serverId. */
                    public serverId?: (string|null);

                    /** NodeGroupNode status. */
                    public status?: (string|null);

                    /** NodeGroupNode totalResources. */
                    public totalResources?: (google.cloud.compute.v1.IInstanceConsumptionInfo|null);

                    /** NodeGroupNode upcomingMaintenance. */
                    public upcomingMaintenance?: (google.cloud.compute.v1.IUpcomingMaintenance|null);

                    /**
                     * Creates a new NodeGroupNode instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupNode instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupNode): google.cloud.compute.v1.NodeGroupNode;

                    /**
                     * Encodes the specified NodeGroupNode message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupNode.verify|verify} messages.
                     * @param message NodeGroupNode message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupNode, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupNode message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupNode.verify|verify} messages.
                     * @param message NodeGroupNode message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupNode, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupNode message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupNode
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupNode;

                    /**
                     * Decodes a NodeGroupNode message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupNode
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupNode;

                    /**
                     * Verifies a NodeGroupNode message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupNode message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupNode
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupNode;

                    /**
                     * Creates a plain object from a NodeGroupNode message. Also converts values to other types if specified.
                     * @param message NodeGroupNode
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupNode, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupNode to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupNode
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeGroupNode {

                    /** CpuOvercommitType enum. */
                    enum CpuOvercommitType {
                        UNDEFINED_CPU_OVERCOMMIT_TYPE = 0,
                        CPU_OVERCOMMIT_TYPE_UNSPECIFIED = 520665615,
                        ENABLED = 182130465,
                        NONE = 2402104
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963,
                        REPAIRING = 413483285
                    }
                }

                /** Properties of a NodeGroupsAddNodesRequest. */
                interface INodeGroupsAddNodesRequest {

                    /** NodeGroupsAddNodesRequest additionalNodeCount */
                    additionalNodeCount?: (number|null);
                }

                /** Represents a NodeGroupsAddNodesRequest. */
                class NodeGroupsAddNodesRequest implements INodeGroupsAddNodesRequest {

                    /**
                     * Constructs a new NodeGroupsAddNodesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupsAddNodesRequest);

                    /** NodeGroupsAddNodesRequest additionalNodeCount. */
                    public additionalNodeCount?: (number|null);

                    /**
                     * Creates a new NodeGroupsAddNodesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsAddNodesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupsAddNodesRequest): google.cloud.compute.v1.NodeGroupsAddNodesRequest;

                    /**
                     * Encodes the specified NodeGroupsAddNodesRequest message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsAddNodesRequest.verify|verify} messages.
                     * @param message NodeGroupsAddNodesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupsAddNodesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsAddNodesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsAddNodesRequest.verify|verify} messages.
                     * @param message NodeGroupsAddNodesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupsAddNodesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsAddNodesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsAddNodesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupsAddNodesRequest;

                    /**
                     * Decodes a NodeGroupsAddNodesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsAddNodesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupsAddNodesRequest;

                    /**
                     * Verifies a NodeGroupsAddNodesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsAddNodesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsAddNodesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupsAddNodesRequest;

                    /**
                     * Creates a plain object from a NodeGroupsAddNodesRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsAddNodesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupsAddNodesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsAddNodesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsAddNodesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsDeleteNodesRequest. */
                interface INodeGroupsDeleteNodesRequest {

                    /** NodeGroupsDeleteNodesRequest nodes */
                    nodes?: (string[]|null);
                }

                /** Represents a NodeGroupsDeleteNodesRequest. */
                class NodeGroupsDeleteNodesRequest implements INodeGroupsDeleteNodesRequest {

                    /**
                     * Constructs a new NodeGroupsDeleteNodesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupsDeleteNodesRequest);

                    /** NodeGroupsDeleteNodesRequest nodes. */
                    public nodes: string[];

                    /**
                     * Creates a new NodeGroupsDeleteNodesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsDeleteNodesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupsDeleteNodesRequest): google.cloud.compute.v1.NodeGroupsDeleteNodesRequest;

                    /**
                     * Encodes the specified NodeGroupsDeleteNodesRequest message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsDeleteNodesRequest.verify|verify} messages.
                     * @param message NodeGroupsDeleteNodesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupsDeleteNodesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsDeleteNodesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsDeleteNodesRequest.verify|verify} messages.
                     * @param message NodeGroupsDeleteNodesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupsDeleteNodesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsDeleteNodesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsDeleteNodesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupsDeleteNodesRequest;

                    /**
                     * Decodes a NodeGroupsDeleteNodesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsDeleteNodesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupsDeleteNodesRequest;

                    /**
                     * Verifies a NodeGroupsDeleteNodesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsDeleteNodesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsDeleteNodesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupsDeleteNodesRequest;

                    /**
                     * Creates a plain object from a NodeGroupsDeleteNodesRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsDeleteNodesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupsDeleteNodesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsDeleteNodesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsDeleteNodesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsListNodes. */
                interface INodeGroupsListNodes {

                    /** NodeGroupsListNodes id */
                    id?: (string|null);

                    /** NodeGroupsListNodes items */
                    items?: (google.cloud.compute.v1.INodeGroupNode[]|null);

                    /** NodeGroupsListNodes kind */
                    kind?: (string|null);

                    /** NodeGroupsListNodes nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeGroupsListNodes selfLink */
                    selfLink?: (string|null);

                    /** NodeGroupsListNodes warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeGroupsListNodes. */
                class NodeGroupsListNodes implements INodeGroupsListNodes {

                    /**
                     * Constructs a new NodeGroupsListNodes.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupsListNodes);

                    /** NodeGroupsListNodes id. */
                    public id?: (string|null);

                    /** NodeGroupsListNodes items. */
                    public items: google.cloud.compute.v1.INodeGroupNode[];

                    /** NodeGroupsListNodes kind. */
                    public kind?: (string|null);

                    /** NodeGroupsListNodes nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeGroupsListNodes selfLink. */
                    public selfLink?: (string|null);

                    /** NodeGroupsListNodes warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeGroupsListNodes instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsListNodes instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupsListNodes): google.cloud.compute.v1.NodeGroupsListNodes;

                    /**
                     * Encodes the specified NodeGroupsListNodes message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsListNodes.verify|verify} messages.
                     * @param message NodeGroupsListNodes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupsListNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsListNodes message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsListNodes.verify|verify} messages.
                     * @param message NodeGroupsListNodes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupsListNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsListNodes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsListNodes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupsListNodes;

                    /**
                     * Decodes a NodeGroupsListNodes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsListNodes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupsListNodes;

                    /**
                     * Verifies a NodeGroupsListNodes message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsListNodes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsListNodes
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupsListNodes;

                    /**
                     * Creates a plain object from a NodeGroupsListNodes message. Also converts values to other types if specified.
                     * @param message NodeGroupsListNodes
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupsListNodes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsListNodes to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsListNodes
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsPerformMaintenanceRequest. */
                interface INodeGroupsPerformMaintenanceRequest {

                    /** NodeGroupsPerformMaintenanceRequest nodes */
                    nodes?: (string[]|null);

                    /** NodeGroupsPerformMaintenanceRequest startTime */
                    startTime?: (string|null);
                }

                /** Represents a NodeGroupsPerformMaintenanceRequest. */
                class NodeGroupsPerformMaintenanceRequest implements INodeGroupsPerformMaintenanceRequest {

                    /**
                     * Constructs a new NodeGroupsPerformMaintenanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupsPerformMaintenanceRequest);

                    /** NodeGroupsPerformMaintenanceRequest nodes. */
                    public nodes: string[];

                    /** NodeGroupsPerformMaintenanceRequest startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new NodeGroupsPerformMaintenanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsPerformMaintenanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupsPerformMaintenanceRequest): google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequest;

                    /**
                     * Encodes the specified NodeGroupsPerformMaintenanceRequest message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequest.verify|verify} messages.
                     * @param message NodeGroupsPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupsPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsPerformMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequest.verify|verify} messages.
                     * @param message NodeGroupsPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupsPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsPerformMaintenanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequest;

                    /**
                     * Decodes a NodeGroupsPerformMaintenanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequest;

                    /**
                     * Verifies a NodeGroupsPerformMaintenanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsPerformMaintenanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsPerformMaintenanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequest;

                    /**
                     * Creates a plain object from a NodeGroupsPerformMaintenanceRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsPerformMaintenanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsPerformMaintenanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsPerformMaintenanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsScopedList. */
                interface INodeGroupsScopedList {

                    /** NodeGroupsScopedList nodeGroups */
                    nodeGroups?: (google.cloud.compute.v1.INodeGroup[]|null);

                    /** NodeGroupsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeGroupsScopedList. */
                class NodeGroupsScopedList implements INodeGroupsScopedList {

                    /**
                     * Constructs a new NodeGroupsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupsScopedList);

                    /** NodeGroupsScopedList nodeGroups. */
                    public nodeGroups: google.cloud.compute.v1.INodeGroup[];

                    /** NodeGroupsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeGroupsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupsScopedList): google.cloud.compute.v1.NodeGroupsScopedList;

                    /**
                     * Encodes the specified NodeGroupsScopedList message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsScopedList.verify|verify} messages.
                     * @param message NodeGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsScopedList.verify|verify} messages.
                     * @param message NodeGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupsScopedList;

                    /**
                     * Decodes a NodeGroupsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupsScopedList;

                    /**
                     * Verifies a NodeGroupsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupsScopedList;

                    /**
                     * Creates a plain object from a NodeGroupsScopedList message. Also converts values to other types if specified.
                     * @param message NodeGroupsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsSetNodeTemplateRequest. */
                interface INodeGroupsSetNodeTemplateRequest {

                    /** NodeGroupsSetNodeTemplateRequest nodeTemplate */
                    nodeTemplate?: (string|null);
                }

                /** Represents a NodeGroupsSetNodeTemplateRequest. */
                class NodeGroupsSetNodeTemplateRequest implements INodeGroupsSetNodeTemplateRequest {

                    /**
                     * Constructs a new NodeGroupsSetNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupsSetNodeTemplateRequest);

                    /** NodeGroupsSetNodeTemplateRequest nodeTemplate. */
                    public nodeTemplate?: (string|null);

                    /**
                     * Creates a new NodeGroupsSetNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsSetNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupsSetNodeTemplateRequest): google.cloud.compute.v1.NodeGroupsSetNodeTemplateRequest;

                    /**
                     * Encodes the specified NodeGroupsSetNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsSetNodeTemplateRequest.verify|verify} messages.
                     * @param message NodeGroupsSetNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupsSetNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsSetNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsSetNodeTemplateRequest.verify|verify} messages.
                     * @param message NodeGroupsSetNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupsSetNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsSetNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsSetNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupsSetNodeTemplateRequest;

                    /**
                     * Decodes a NodeGroupsSetNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsSetNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupsSetNodeTemplateRequest;

                    /**
                     * Verifies a NodeGroupsSetNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsSetNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsSetNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupsSetNodeTemplateRequest;

                    /**
                     * Creates a plain object from a NodeGroupsSetNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsSetNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupsSetNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsSetNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsSetNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsSimulateMaintenanceEventRequest. */
                interface INodeGroupsSimulateMaintenanceEventRequest {

                    /** NodeGroupsSimulateMaintenanceEventRequest nodes */
                    nodes?: (string[]|null);
                }

                /** Represents a NodeGroupsSimulateMaintenanceEventRequest. */
                class NodeGroupsSimulateMaintenanceEventRequest implements INodeGroupsSimulateMaintenanceEventRequest {

                    /**
                     * Constructs a new NodeGroupsSimulateMaintenanceEventRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeGroupsSimulateMaintenanceEventRequest);

                    /** NodeGroupsSimulateMaintenanceEventRequest nodes. */
                    public nodes: string[];

                    /**
                     * Creates a new NodeGroupsSimulateMaintenanceEventRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsSimulateMaintenanceEventRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeGroupsSimulateMaintenanceEventRequest): google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequest;

                    /**
                     * Encodes the specified NodeGroupsSimulateMaintenanceEventRequest message. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequest.verify|verify} messages.
                     * @param message NodeGroupsSimulateMaintenanceEventRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeGroupsSimulateMaintenanceEventRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsSimulateMaintenanceEventRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequest.verify|verify} messages.
                     * @param message NodeGroupsSimulateMaintenanceEventRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeGroupsSimulateMaintenanceEventRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsSimulateMaintenanceEventRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsSimulateMaintenanceEventRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequest;

                    /**
                     * Decodes a NodeGroupsSimulateMaintenanceEventRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsSimulateMaintenanceEventRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequest;

                    /**
                     * Verifies a NodeGroupsSimulateMaintenanceEventRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsSimulateMaintenanceEventRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsSimulateMaintenanceEventRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequest;

                    /**
                     * Creates a plain object from a NodeGroupsSimulateMaintenanceEventRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsSimulateMaintenanceEventRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsSimulateMaintenanceEventRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsSimulateMaintenanceEventRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTemplate. */
                interface INodeTemplate {

                    /** NodeTemplate accelerators */
                    accelerators?: (google.cloud.compute.v1.IAcceleratorConfig[]|null);

                    /** NodeTemplate cpuOvercommitType */
                    cpuOvercommitType?: (string|null);

                    /** NodeTemplate creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NodeTemplate description */
                    description?: (string|null);

                    /** NodeTemplate disks */
                    disks?: (google.cloud.compute.v1.ILocalDisk[]|null);

                    /** NodeTemplate id */
                    id?: (number|Long|string|null);

                    /** NodeTemplate kind */
                    kind?: (string|null);

                    /** NodeTemplate name */
                    name?: (string|null);

                    /** NodeTemplate nodeAffinityLabels */
                    nodeAffinityLabels?: ({ [k: string]: string }|null);

                    /** NodeTemplate nodeType */
                    nodeType?: (string|null);

                    /** NodeTemplate nodeTypeFlexibility */
                    nodeTypeFlexibility?: (google.cloud.compute.v1.INodeTemplateNodeTypeFlexibility|null);

                    /** NodeTemplate region */
                    region?: (string|null);

                    /** NodeTemplate selfLink */
                    selfLink?: (string|null);

                    /** NodeTemplate serverBinding */
                    serverBinding?: (google.cloud.compute.v1.IServerBinding|null);

                    /** NodeTemplate status */
                    status?: (string|null);

                    /** NodeTemplate statusMessage */
                    statusMessage?: (string|null);
                }

                /** Represents a NodeTemplate. */
                class NodeTemplate implements INodeTemplate {

                    /**
                     * Constructs a new NodeTemplate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeTemplate);

                    /** NodeTemplate accelerators. */
                    public accelerators: google.cloud.compute.v1.IAcceleratorConfig[];

                    /** NodeTemplate cpuOvercommitType. */
                    public cpuOvercommitType?: (string|null);

                    /** NodeTemplate creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NodeTemplate description. */
                    public description?: (string|null);

                    /** NodeTemplate disks. */
                    public disks: google.cloud.compute.v1.ILocalDisk[];

                    /** NodeTemplate id. */
                    public id?: (number|Long|string|null);

                    /** NodeTemplate kind. */
                    public kind?: (string|null);

                    /** NodeTemplate name. */
                    public name?: (string|null);

                    /** NodeTemplate nodeAffinityLabels. */
                    public nodeAffinityLabels: { [k: string]: string };

                    /** NodeTemplate nodeType. */
                    public nodeType?: (string|null);

                    /** NodeTemplate nodeTypeFlexibility. */
                    public nodeTypeFlexibility?: (google.cloud.compute.v1.INodeTemplateNodeTypeFlexibility|null);

                    /** NodeTemplate region. */
                    public region?: (string|null);

                    /** NodeTemplate selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTemplate serverBinding. */
                    public serverBinding?: (google.cloud.compute.v1.IServerBinding|null);

                    /** NodeTemplate status. */
                    public status?: (string|null);

                    /** NodeTemplate statusMessage. */
                    public statusMessage?: (string|null);

                    /**
                     * Creates a new NodeTemplate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplate instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeTemplate): google.cloud.compute.v1.NodeTemplate;

                    /**
                     * Encodes the specified NodeTemplate message. Does not implicitly {@link google.cloud.compute.v1.NodeTemplate.verify|verify} messages.
                     * @param message NodeTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplate message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeTemplate.verify|verify} messages.
                     * @param message NodeTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeTemplate;

                    /**
                     * Decodes a NodeTemplate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeTemplate;

                    /**
                     * Verifies a NodeTemplate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeTemplate;

                    /**
                     * Creates a plain object from a NodeTemplate message. Also converts values to other types if specified.
                     * @param message NodeTemplate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeTemplate {

                    /** CpuOvercommitType enum. */
                    enum CpuOvercommitType {
                        UNDEFINED_CPU_OVERCOMMIT_TYPE = 0,
                        CPU_OVERCOMMIT_TYPE_UNSPECIFIED = 520665615,
                        ENABLED = 182130465,
                        NONE = 2402104
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a NodeTemplateAggregatedList. */
                interface INodeTemplateAggregatedList {

                    /** NodeTemplateAggregatedList id */
                    id?: (string|null);

                    /** NodeTemplateAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.INodeTemplatesScopedList }|null);

                    /** NodeTemplateAggregatedList kind */
                    kind?: (string|null);

                    /** NodeTemplateAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeTemplateAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NodeTemplateAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NodeTemplateAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeTemplateAggregatedList. */
                class NodeTemplateAggregatedList implements INodeTemplateAggregatedList {

                    /**
                     * Constructs a new NodeTemplateAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeTemplateAggregatedList);

                    /** NodeTemplateAggregatedList id. */
                    public id?: (string|null);

                    /** NodeTemplateAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.INodeTemplatesScopedList };

                    /** NodeTemplateAggregatedList kind. */
                    public kind?: (string|null);

                    /** NodeTemplateAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeTemplateAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTemplateAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NodeTemplateAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeTemplateAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplateAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeTemplateAggregatedList): google.cloud.compute.v1.NodeTemplateAggregatedList;

                    /**
                     * Encodes the specified NodeTemplateAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.NodeTemplateAggregatedList.verify|verify} messages.
                     * @param message NodeTemplateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeTemplateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplateAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeTemplateAggregatedList.verify|verify} messages.
                     * @param message NodeTemplateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeTemplateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplateAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeTemplateAggregatedList;

                    /**
                     * Decodes a NodeTemplateAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeTemplateAggregatedList;

                    /**
                     * Verifies a NodeTemplateAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplateAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplateAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeTemplateAggregatedList;

                    /**
                     * Creates a plain object from a NodeTemplateAggregatedList message. Also converts values to other types if specified.
                     * @param message NodeTemplateAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeTemplateAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplateAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplateAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTemplateList. */
                interface INodeTemplateList {

                    /** NodeTemplateList id */
                    id?: (string|null);

                    /** NodeTemplateList items */
                    items?: (google.cloud.compute.v1.INodeTemplate[]|null);

                    /** NodeTemplateList kind */
                    kind?: (string|null);

                    /** NodeTemplateList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeTemplateList selfLink */
                    selfLink?: (string|null);

                    /** NodeTemplateList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeTemplateList. */
                class NodeTemplateList implements INodeTemplateList {

                    /**
                     * Constructs a new NodeTemplateList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeTemplateList);

                    /** NodeTemplateList id. */
                    public id?: (string|null);

                    /** NodeTemplateList items. */
                    public items: google.cloud.compute.v1.INodeTemplate[];

                    /** NodeTemplateList kind. */
                    public kind?: (string|null);

                    /** NodeTemplateList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeTemplateList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTemplateList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeTemplateList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplateList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeTemplateList): google.cloud.compute.v1.NodeTemplateList;

                    /**
                     * Encodes the specified NodeTemplateList message. Does not implicitly {@link google.cloud.compute.v1.NodeTemplateList.verify|verify} messages.
                     * @param message NodeTemplateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplateList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeTemplateList.verify|verify} messages.
                     * @param message NodeTemplateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplateList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeTemplateList;

                    /**
                     * Decodes a NodeTemplateList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeTemplateList;

                    /**
                     * Verifies a NodeTemplateList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplateList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplateList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeTemplateList;

                    /**
                     * Creates a plain object from a NodeTemplateList message. Also converts values to other types if specified.
                     * @param message NodeTemplateList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeTemplateList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplateList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplateList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTemplateNodeTypeFlexibility. */
                interface INodeTemplateNodeTypeFlexibility {

                    /** NodeTemplateNodeTypeFlexibility cpus */
                    cpus?: (string|null);

                    /** NodeTemplateNodeTypeFlexibility localSsd */
                    localSsd?: (string|null);

                    /** NodeTemplateNodeTypeFlexibility memory */
                    memory?: (string|null);
                }

                /** Represents a NodeTemplateNodeTypeFlexibility. */
                class NodeTemplateNodeTypeFlexibility implements INodeTemplateNodeTypeFlexibility {

                    /**
                     * Constructs a new NodeTemplateNodeTypeFlexibility.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeTemplateNodeTypeFlexibility);

                    /** NodeTemplateNodeTypeFlexibility cpus. */
                    public cpus?: (string|null);

                    /** NodeTemplateNodeTypeFlexibility localSsd. */
                    public localSsd?: (string|null);

                    /** NodeTemplateNodeTypeFlexibility memory. */
                    public memory?: (string|null);

                    /**
                     * Creates a new NodeTemplateNodeTypeFlexibility instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplateNodeTypeFlexibility instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeTemplateNodeTypeFlexibility): google.cloud.compute.v1.NodeTemplateNodeTypeFlexibility;

                    /**
                     * Encodes the specified NodeTemplateNodeTypeFlexibility message. Does not implicitly {@link google.cloud.compute.v1.NodeTemplateNodeTypeFlexibility.verify|verify} messages.
                     * @param message NodeTemplateNodeTypeFlexibility message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeTemplateNodeTypeFlexibility, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplateNodeTypeFlexibility message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeTemplateNodeTypeFlexibility.verify|verify} messages.
                     * @param message NodeTemplateNodeTypeFlexibility message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeTemplateNodeTypeFlexibility, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplateNodeTypeFlexibility message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplateNodeTypeFlexibility
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeTemplateNodeTypeFlexibility;

                    /**
                     * Decodes a NodeTemplateNodeTypeFlexibility message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplateNodeTypeFlexibility
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeTemplateNodeTypeFlexibility;

                    /**
                     * Verifies a NodeTemplateNodeTypeFlexibility message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplateNodeTypeFlexibility message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplateNodeTypeFlexibility
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeTemplateNodeTypeFlexibility;

                    /**
                     * Creates a plain object from a NodeTemplateNodeTypeFlexibility message. Also converts values to other types if specified.
                     * @param message NodeTemplateNodeTypeFlexibility
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeTemplateNodeTypeFlexibility, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplateNodeTypeFlexibility to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplateNodeTypeFlexibility
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTemplatesScopedList. */
                interface INodeTemplatesScopedList {

                    /** NodeTemplatesScopedList nodeTemplates */
                    nodeTemplates?: (google.cloud.compute.v1.INodeTemplate[]|null);

                    /** NodeTemplatesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeTemplatesScopedList. */
                class NodeTemplatesScopedList implements INodeTemplatesScopedList {

                    /**
                     * Constructs a new NodeTemplatesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeTemplatesScopedList);

                    /** NodeTemplatesScopedList nodeTemplates. */
                    public nodeTemplates: google.cloud.compute.v1.INodeTemplate[];

                    /** NodeTemplatesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeTemplatesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplatesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeTemplatesScopedList): google.cloud.compute.v1.NodeTemplatesScopedList;

                    /**
                     * Encodes the specified NodeTemplatesScopedList message. Does not implicitly {@link google.cloud.compute.v1.NodeTemplatesScopedList.verify|verify} messages.
                     * @param message NodeTemplatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeTemplatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplatesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeTemplatesScopedList.verify|verify} messages.
                     * @param message NodeTemplatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeTemplatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplatesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeTemplatesScopedList;

                    /**
                     * Decodes a NodeTemplatesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeTemplatesScopedList;

                    /**
                     * Verifies a NodeTemplatesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplatesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplatesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeTemplatesScopedList;

                    /**
                     * Creates a plain object from a NodeTemplatesScopedList message. Also converts values to other types if specified.
                     * @param message NodeTemplatesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeTemplatesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplatesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplatesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeType. */
                interface INodeType {

                    /** NodeType cpuPlatform */
                    cpuPlatform?: (string|null);

                    /** NodeType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NodeType deprecated */
                    deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** NodeType description */
                    description?: (string|null);

                    /** NodeType guestCpus */
                    guestCpus?: (number|null);

                    /** NodeType id */
                    id?: (number|Long|string|null);

                    /** NodeType kind */
                    kind?: (string|null);

                    /** NodeType localSsdGb */
                    localSsdGb?: (number|null);

                    /** NodeType maxVms */
                    maxVms?: (number|null);

                    /** NodeType memoryMb */
                    memoryMb?: (number|null);

                    /** NodeType name */
                    name?: (string|null);

                    /** NodeType selfLink */
                    selfLink?: (string|null);

                    /** NodeType zone */
                    zone?: (string|null);
                }

                /** Represents a NodeType. */
                class NodeType implements INodeType {

                    /**
                     * Constructs a new NodeType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeType);

                    /** NodeType cpuPlatform. */
                    public cpuPlatform?: (string|null);

                    /** NodeType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NodeType deprecated. */
                    public deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** NodeType description. */
                    public description?: (string|null);

                    /** NodeType guestCpus. */
                    public guestCpus?: (number|null);

                    /** NodeType id. */
                    public id?: (number|Long|string|null);

                    /** NodeType kind. */
                    public kind?: (string|null);

                    /** NodeType localSsdGb. */
                    public localSsdGb?: (number|null);

                    /** NodeType maxVms. */
                    public maxVms?: (number|null);

                    /** NodeType memoryMb. */
                    public memoryMb?: (number|null);

                    /** NodeType name. */
                    public name?: (string|null);

                    /** NodeType selfLink. */
                    public selfLink?: (string|null);

                    /** NodeType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NodeType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeType instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeType): google.cloud.compute.v1.NodeType;

                    /**
                     * Encodes the specified NodeType message. Does not implicitly {@link google.cloud.compute.v1.NodeType.verify|verify} messages.
                     * @param message NodeType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeType message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeType.verify|verify} messages.
                     * @param message NodeType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeType;

                    /**
                     * Decodes a NodeType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeType;

                    /**
                     * Verifies a NodeType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeType;

                    /**
                     * Creates a plain object from a NodeType message. Also converts values to other types if specified.
                     * @param message NodeType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTypeAggregatedList. */
                interface INodeTypeAggregatedList {

                    /** NodeTypeAggregatedList id */
                    id?: (string|null);

                    /** NodeTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.INodeTypesScopedList }|null);

                    /** NodeTypeAggregatedList kind */
                    kind?: (string|null);

                    /** NodeTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NodeTypeAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NodeTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeTypeAggregatedList. */
                class NodeTypeAggregatedList implements INodeTypeAggregatedList {

                    /**
                     * Constructs a new NodeTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeTypeAggregatedList);

                    /** NodeTypeAggregatedList id. */
                    public id?: (string|null);

                    /** NodeTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.INodeTypesScopedList };

                    /** NodeTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** NodeTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTypeAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NodeTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeTypeAggregatedList): google.cloud.compute.v1.NodeTypeAggregatedList;

                    /**
                     * Encodes the specified NodeTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.NodeTypeAggregatedList.verify|verify} messages.
                     * @param message NodeTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeTypeAggregatedList.verify|verify} messages.
                     * @param message NodeTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeTypeAggregatedList;

                    /**
                     * Decodes a NodeTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeTypeAggregatedList;

                    /**
                     * Verifies a NodeTypeAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeTypeAggregatedList;

                    /**
                     * Creates a plain object from a NodeTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message NodeTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTypeList. */
                interface INodeTypeList {

                    /** NodeTypeList id */
                    id?: (string|null);

                    /** NodeTypeList items */
                    items?: (google.cloud.compute.v1.INodeType[]|null);

                    /** NodeTypeList kind */
                    kind?: (string|null);

                    /** NodeTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeTypeList selfLink */
                    selfLink?: (string|null);

                    /** NodeTypeList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeTypeList. */
                class NodeTypeList implements INodeTypeList {

                    /**
                     * Constructs a new NodeTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeTypeList);

                    /** NodeTypeList id. */
                    public id?: (string|null);

                    /** NodeTypeList items. */
                    public items: google.cloud.compute.v1.INodeType[];

                    /** NodeTypeList kind. */
                    public kind?: (string|null);

                    /** NodeTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTypeList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeTypeList): google.cloud.compute.v1.NodeTypeList;

                    /**
                     * Encodes the specified NodeTypeList message. Does not implicitly {@link google.cloud.compute.v1.NodeTypeList.verify|verify} messages.
                     * @param message NodeTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeTypeList.verify|verify} messages.
                     * @param message NodeTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeTypeList;

                    /**
                     * Decodes a NodeTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeTypeList;

                    /**
                     * Verifies a NodeTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeTypeList;

                    /**
                     * Creates a plain object from a NodeTypeList message. Also converts values to other types if specified.
                     * @param message NodeTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTypesScopedList. */
                interface INodeTypesScopedList {

                    /** NodeTypesScopedList nodeTypes */
                    nodeTypes?: (google.cloud.compute.v1.INodeType[]|null);

                    /** NodeTypesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NodeTypesScopedList. */
                class NodeTypesScopedList implements INodeTypesScopedList {

                    /**
                     * Constructs a new NodeTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INodeTypesScopedList);

                    /** NodeTypesScopedList nodeTypes. */
                    public nodeTypes: google.cloud.compute.v1.INodeType[];

                    /** NodeTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NodeTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INodeTypesScopedList): google.cloud.compute.v1.NodeTypesScopedList;

                    /**
                     * Encodes the specified NodeTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1.NodeTypesScopedList.verify|verify} messages.
                     * @param message NodeTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INodeTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NodeTypesScopedList.verify|verify} messages.
                     * @param message NodeTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INodeTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NodeTypesScopedList;

                    /**
                     * Decodes a NodeTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NodeTypesScopedList;

                    /**
                     * Verifies a NodeTypesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NodeTypesScopedList;

                    /**
                     * Creates a plain object from a NodeTypesScopedList message. Also converts values to other types if specified.
                     * @param message NodeTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NodeTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpoint. */
                interface INotificationEndpoint {

                    /** NotificationEndpoint creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NotificationEndpoint description */
                    description?: (string|null);

                    /** NotificationEndpoint grpcSettings */
                    grpcSettings?: (google.cloud.compute.v1.INotificationEndpointGrpcSettings|null);

                    /** NotificationEndpoint id */
                    id?: (number|Long|string|null);

                    /** NotificationEndpoint kind */
                    kind?: (string|null);

                    /** NotificationEndpoint name */
                    name?: (string|null);

                    /** NotificationEndpoint region */
                    region?: (string|null);

                    /** NotificationEndpoint selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a NotificationEndpoint. */
                class NotificationEndpoint implements INotificationEndpoint {

                    /**
                     * Constructs a new NotificationEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INotificationEndpoint);

                    /** NotificationEndpoint creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NotificationEndpoint description. */
                    public description?: (string|null);

                    /** NotificationEndpoint grpcSettings. */
                    public grpcSettings?: (google.cloud.compute.v1.INotificationEndpointGrpcSettings|null);

                    /** NotificationEndpoint id. */
                    public id?: (number|Long|string|null);

                    /** NotificationEndpoint kind. */
                    public kind?: (string|null);

                    /** NotificationEndpoint name. */
                    public name?: (string|null);

                    /** NotificationEndpoint region. */
                    public region?: (string|null);

                    /** NotificationEndpoint selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new NotificationEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INotificationEndpoint): google.cloud.compute.v1.NotificationEndpoint;

                    /**
                     * Encodes the specified NotificationEndpoint message. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpoint.verify|verify} messages.
                     * @param message NotificationEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INotificationEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpoint.verify|verify} messages.
                     * @param message NotificationEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INotificationEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NotificationEndpoint;

                    /**
                     * Decodes a NotificationEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NotificationEndpoint;

                    /**
                     * Verifies a NotificationEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NotificationEndpoint;

                    /**
                     * Creates a plain object from a NotificationEndpoint message. Also converts values to other types if specified.
                     * @param message NotificationEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NotificationEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpointAggregatedList. */
                interface INotificationEndpointAggregatedList {

                    /** NotificationEndpointAggregatedList id */
                    id?: (string|null);

                    /** NotificationEndpointAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.INotificationEndpointsScopedList }|null);

                    /** NotificationEndpointAggregatedList kind */
                    kind?: (string|null);

                    /** NotificationEndpointAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NotificationEndpointAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NotificationEndpointAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NotificationEndpointAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NotificationEndpointAggregatedList. */
                class NotificationEndpointAggregatedList implements INotificationEndpointAggregatedList {

                    /**
                     * Constructs a new NotificationEndpointAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INotificationEndpointAggregatedList);

                    /** NotificationEndpointAggregatedList id. */
                    public id?: (string|null);

                    /** NotificationEndpointAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.INotificationEndpointsScopedList };

                    /** NotificationEndpointAggregatedList kind. */
                    public kind?: (string|null);

                    /** NotificationEndpointAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NotificationEndpointAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NotificationEndpointAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NotificationEndpointAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NotificationEndpointAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpointAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INotificationEndpointAggregatedList): google.cloud.compute.v1.NotificationEndpointAggregatedList;

                    /**
                     * Encodes the specified NotificationEndpointAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpointAggregatedList.verify|verify} messages.
                     * @param message NotificationEndpointAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INotificationEndpointAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpointAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpointAggregatedList.verify|verify} messages.
                     * @param message NotificationEndpointAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INotificationEndpointAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpointAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpointAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NotificationEndpointAggregatedList;

                    /**
                     * Decodes a NotificationEndpointAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpointAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NotificationEndpointAggregatedList;

                    /**
                     * Verifies a NotificationEndpointAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpointAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpointAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NotificationEndpointAggregatedList;

                    /**
                     * Creates a plain object from a NotificationEndpointAggregatedList message. Also converts values to other types if specified.
                     * @param message NotificationEndpointAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NotificationEndpointAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpointAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpointAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpointGrpcSettings. */
                interface INotificationEndpointGrpcSettings {

                    /** NotificationEndpointGrpcSettings authority */
                    authority?: (string|null);

                    /** NotificationEndpointGrpcSettings endpoint */
                    endpoint?: (string|null);

                    /** NotificationEndpointGrpcSettings payloadName */
                    payloadName?: (string|null);

                    /** NotificationEndpointGrpcSettings resendInterval */
                    resendInterval?: (google.cloud.compute.v1.IDuration|null);

                    /** NotificationEndpointGrpcSettings retryDurationSec */
                    retryDurationSec?: (number|null);
                }

                /** Represents a NotificationEndpointGrpcSettings. */
                class NotificationEndpointGrpcSettings implements INotificationEndpointGrpcSettings {

                    /**
                     * Constructs a new NotificationEndpointGrpcSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INotificationEndpointGrpcSettings);

                    /** NotificationEndpointGrpcSettings authority. */
                    public authority?: (string|null);

                    /** NotificationEndpointGrpcSettings endpoint. */
                    public endpoint?: (string|null);

                    /** NotificationEndpointGrpcSettings payloadName. */
                    public payloadName?: (string|null);

                    /** NotificationEndpointGrpcSettings resendInterval. */
                    public resendInterval?: (google.cloud.compute.v1.IDuration|null);

                    /** NotificationEndpointGrpcSettings retryDurationSec. */
                    public retryDurationSec?: (number|null);

                    /**
                     * Creates a new NotificationEndpointGrpcSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpointGrpcSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INotificationEndpointGrpcSettings): google.cloud.compute.v1.NotificationEndpointGrpcSettings;

                    /**
                     * Encodes the specified NotificationEndpointGrpcSettings message. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpointGrpcSettings.verify|verify} messages.
                     * @param message NotificationEndpointGrpcSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INotificationEndpointGrpcSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpointGrpcSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpointGrpcSettings.verify|verify} messages.
                     * @param message NotificationEndpointGrpcSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INotificationEndpointGrpcSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpointGrpcSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpointGrpcSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NotificationEndpointGrpcSettings;

                    /**
                     * Decodes a NotificationEndpointGrpcSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpointGrpcSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NotificationEndpointGrpcSettings;

                    /**
                     * Verifies a NotificationEndpointGrpcSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpointGrpcSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpointGrpcSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NotificationEndpointGrpcSettings;

                    /**
                     * Creates a plain object from a NotificationEndpointGrpcSettings message. Also converts values to other types if specified.
                     * @param message NotificationEndpointGrpcSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NotificationEndpointGrpcSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpointGrpcSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpointGrpcSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpointList. */
                interface INotificationEndpointList {

                    /** NotificationEndpointList id */
                    id?: (string|null);

                    /** NotificationEndpointList items */
                    items?: (google.cloud.compute.v1.INotificationEndpoint[]|null);

                    /** NotificationEndpointList kind */
                    kind?: (string|null);

                    /** NotificationEndpointList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NotificationEndpointList selfLink */
                    selfLink?: (string|null);

                    /** NotificationEndpointList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NotificationEndpointList. */
                class NotificationEndpointList implements INotificationEndpointList {

                    /**
                     * Constructs a new NotificationEndpointList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INotificationEndpointList);

                    /** NotificationEndpointList id. */
                    public id?: (string|null);

                    /** NotificationEndpointList items. */
                    public items: google.cloud.compute.v1.INotificationEndpoint[];

                    /** NotificationEndpointList kind. */
                    public kind?: (string|null);

                    /** NotificationEndpointList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NotificationEndpointList selfLink. */
                    public selfLink?: (string|null);

                    /** NotificationEndpointList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NotificationEndpointList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpointList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INotificationEndpointList): google.cloud.compute.v1.NotificationEndpointList;

                    /**
                     * Encodes the specified NotificationEndpointList message. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpointList.verify|verify} messages.
                     * @param message NotificationEndpointList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INotificationEndpointList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpointList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpointList.verify|verify} messages.
                     * @param message NotificationEndpointList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INotificationEndpointList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpointList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpointList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NotificationEndpointList;

                    /**
                     * Decodes a NotificationEndpointList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpointList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NotificationEndpointList;

                    /**
                     * Verifies a NotificationEndpointList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpointList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpointList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NotificationEndpointList;

                    /**
                     * Creates a plain object from a NotificationEndpointList message. Also converts values to other types if specified.
                     * @param message NotificationEndpointList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NotificationEndpointList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpointList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpointList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpointsScopedList. */
                interface INotificationEndpointsScopedList {

                    /** NotificationEndpointsScopedList resources */
                    resources?: (google.cloud.compute.v1.INotificationEndpoint[]|null);

                    /** NotificationEndpointsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a NotificationEndpointsScopedList. */
                class NotificationEndpointsScopedList implements INotificationEndpointsScopedList {

                    /**
                     * Constructs a new NotificationEndpointsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.INotificationEndpointsScopedList);

                    /** NotificationEndpointsScopedList resources. */
                    public resources: google.cloud.compute.v1.INotificationEndpoint[];

                    /** NotificationEndpointsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new NotificationEndpointsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpointsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.INotificationEndpointsScopedList): google.cloud.compute.v1.NotificationEndpointsScopedList;

                    /**
                     * Encodes the specified NotificationEndpointsScopedList message. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpointsScopedList.verify|verify} messages.
                     * @param message NotificationEndpointsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.INotificationEndpointsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpointsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.NotificationEndpointsScopedList.verify|verify} messages.
                     * @param message NotificationEndpointsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.INotificationEndpointsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpointsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpointsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.NotificationEndpointsScopedList;

                    /**
                     * Decodes a NotificationEndpointsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpointsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.NotificationEndpointsScopedList;

                    /**
                     * Verifies a NotificationEndpointsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpointsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpointsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.NotificationEndpointsScopedList;

                    /**
                     * Creates a plain object from a NotificationEndpointsScopedList message. Also converts values to other types if specified.
                     * @param message NotificationEndpointsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.NotificationEndpointsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpointsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpointsScopedList
                     * @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 clientOperationId */
                    clientOperationId?: (string|null);

                    /** Operation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Operation description */
                    description?: (string|null);

                    /** Operation endTime */
                    endTime?: (string|null);

                    /** Operation error */
                    error?: (google.cloud.compute.v1.IError|null);

                    /** Operation getVersionOperationMetadata */
                    getVersionOperationMetadata?: (google.cloud.compute.v1.IGetVersionOperationMetadata|null);

                    /** Operation httpErrorMessage */
                    httpErrorMessage?: (string|null);

                    /** Operation httpErrorStatusCode */
                    httpErrorStatusCode?: (number|null);

                    /** Operation id */
                    id?: (number|Long|string|null);

                    /** Operation insertTime */
                    insertTime?: (string|null);

                    /** Operation instancesBulkInsertOperationMetadata */
                    instancesBulkInsertOperationMetadata?: (google.cloud.compute.v1.IInstancesBulkInsertOperationMetadata|null);

                    /** Operation kind */
                    kind?: (string|null);

                    /** Operation name */
                    name?: (string|null);

                    /** Operation operationGroupId */
                    operationGroupId?: (string|null);

                    /** Operation operationType */
                    operationType?: (string|null);

                    /** Operation progress */
                    progress?: (number|null);

                    /** Operation region */
                    region?: (string|null);

                    /** Operation selfLink */
                    selfLink?: (string|null);

                    /** Operation setCommonInstanceMetadataOperationMetadata */
                    setCommonInstanceMetadataOperationMetadata?: (google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadata|null);

                    /** Operation startTime */
                    startTime?: (string|null);

                    /** Operation status */
                    status?: (google.cloud.compute.v1.Operation.Status|keyof typeof google.cloud.compute.v1.Operation.Status|null);

                    /** Operation statusMessage */
                    statusMessage?: (string|null);

                    /** Operation targetId */
                    targetId?: (number|Long|string|null);

                    /** Operation targetLink */
                    targetLink?: (string|null);

                    /** Operation user */
                    user?: (string|null);

                    /** Operation warnings */
                    warnings?: (google.cloud.compute.v1.IWarnings[]|null);

                    /** Operation zone */
                    zone?: (string|null);
                }

                /** Represents an Operation. */
                class Operation implements IOperation {

                    /**
                     * Constructs a new Operation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IOperation);

                    /** Operation clientOperationId. */
                    public clientOperationId?: (string|null);

                    /** Operation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Operation description. */
                    public description?: (string|null);

                    /** Operation endTime. */
                    public endTime?: (string|null);

                    /** Operation error. */
                    public error?: (google.cloud.compute.v1.IError|null);

                    /** Operation getVersionOperationMetadata. */
                    public getVersionOperationMetadata?: (google.cloud.compute.v1.IGetVersionOperationMetadata|null);

                    /** Operation httpErrorMessage. */
                    public httpErrorMessage?: (string|null);

                    /** Operation httpErrorStatusCode. */
                    public httpErrorStatusCode?: (number|null);

                    /** Operation id. */
                    public id?: (number|Long|string|null);

                    /** Operation insertTime. */
                    public insertTime?: (string|null);

                    /** Operation instancesBulkInsertOperationMetadata. */
                    public instancesBulkInsertOperationMetadata?: (google.cloud.compute.v1.IInstancesBulkInsertOperationMetadata|null);

                    /** Operation kind. */
                    public kind?: (string|null);

                    /** Operation name. */
                    public name?: (string|null);

                    /** Operation operationGroupId. */
                    public operationGroupId?: (string|null);

                    /** Operation operationType. */
                    public operationType?: (string|null);

                    /** Operation progress. */
                    public progress?: (number|null);

                    /** Operation region. */
                    public region?: (string|null);

                    /** Operation selfLink. */
                    public selfLink?: (string|null);

                    /** Operation setCommonInstanceMetadataOperationMetadata. */
                    public setCommonInstanceMetadataOperationMetadata?: (google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadata|null);

                    /** Operation startTime. */
                    public startTime?: (string|null);

                    /** Operation status. */
                    public status?: (google.cloud.compute.v1.Operation.Status|keyof typeof google.cloud.compute.v1.Operation.Status|null);

                    /** Operation statusMessage. */
                    public statusMessage?: (string|null);

                    /** Operation targetId. */
                    public targetId?: (number|Long|string|null);

                    /** Operation targetLink. */
                    public targetLink?: (string|null);

                    /** Operation user. */
                    public user?: (string|null);

                    /** Operation warnings. */
                    public warnings: google.cloud.compute.v1.IWarnings[];

                    /** Operation zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Operation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Operation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IOperation): google.cloud.compute.v1.Operation;

                    /**
                     * Encodes the specified Operation message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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 {
                        UNDEFINED_STATUS = 0,
                        DONE = 2104194,
                        PENDING = 35394935,
                        RUNNING = 121282975
                    }
                }

                /** Properties of an OperationAggregatedList. */
                interface IOperationAggregatedList {

                    /** OperationAggregatedList id */
                    id?: (string|null);

                    /** OperationAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IOperationsScopedList }|null);

                    /** OperationAggregatedList kind */
                    kind?: (string|null);

                    /** OperationAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** OperationAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** OperationAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** OperationAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an OperationAggregatedList. */
                class OperationAggregatedList implements IOperationAggregatedList {

                    /**
                     * Constructs a new OperationAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IOperationAggregatedList);

                    /** OperationAggregatedList id. */
                    public id?: (string|null);

                    /** OperationAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IOperationsScopedList };

                    /** OperationAggregatedList kind. */
                    public kind?: (string|null);

                    /** OperationAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** OperationAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** OperationAggregatedList unreachables. */
                    public unreachables: string[];

                    /** OperationAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new OperationAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IOperationAggregatedList): google.cloud.compute.v1.OperationAggregatedList;

                    /**
                     * Encodes the specified OperationAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.OperationAggregatedList.verify|verify} messages.
                     * @param message OperationAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IOperationAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.OperationAggregatedList.verify|verify} messages.
                     * @param message OperationAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IOperationAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.OperationAggregatedList;

                    /**
                     * Decodes an OperationAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.OperationAggregatedList;

                    /**
                     * Verifies an OperationAggregatedList message.
                     * @param message Plain 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 OperationAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.OperationAggregatedList;

                    /**
                     * Creates a plain object from an OperationAggregatedList message. Also converts values to other types if specified.
                     * @param message OperationAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.OperationAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OperationList. */
                interface IOperationList {

                    /** OperationList id */
                    id?: (string|null);

                    /** OperationList items */
                    items?: (google.cloud.compute.v1.IOperation[]|null);

                    /** OperationList kind */
                    kind?: (string|null);

                    /** OperationList nextPageToken */
                    nextPageToken?: (string|null);

                    /** OperationList selfLink */
                    selfLink?: (string|null);

                    /** OperationList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an OperationList. */
                class OperationList implements IOperationList {

                    /**
                     * Constructs a new OperationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IOperationList);

                    /** OperationList id. */
                    public id?: (string|null);

                    /** OperationList items. */
                    public items: google.cloud.compute.v1.IOperation[];

                    /** OperationList kind. */
                    public kind?: (string|null);

                    /** OperationList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** OperationList selfLink. */
                    public selfLink?: (string|null);

                    /** OperationList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new OperationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IOperationList): google.cloud.compute.v1.OperationList;

                    /**
                     * Encodes the specified OperationList message. Does not implicitly {@link google.cloud.compute.v1.OperationList.verify|verify} messages.
                     * @param message OperationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IOperationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.OperationList.verify|verify} messages.
                     * @param message OperationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IOperationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.OperationList;

                    /**
                     * Decodes an OperationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.OperationList;

                    /**
                     * Verifies an OperationList message.
                     * @param message Plain 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 OperationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.OperationList;

                    /**
                     * Creates a plain object from an OperationList message. Also converts values to other types if specified.
                     * @param message OperationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.OperationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OperationsScopedList. */
                interface IOperationsScopedList {

                    /** OperationsScopedList operations */
                    operations?: (google.cloud.compute.v1.IOperation[]|null);

                    /** OperationsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an OperationsScopedList. */
                class OperationsScopedList implements IOperationsScopedList {

                    /**
                     * Constructs a new OperationsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IOperationsScopedList);

                    /** OperationsScopedList operations. */
                    public operations: google.cloud.compute.v1.IOperation[];

                    /** OperationsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new OperationsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IOperationsScopedList): google.cloud.compute.v1.OperationsScopedList;

                    /**
                     * Encodes the specified OperationsScopedList message. Does not implicitly {@link google.cloud.compute.v1.OperationsScopedList.verify|verify} messages.
                     * @param message OperationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IOperationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.OperationsScopedList.verify|verify} messages.
                     * @param message OperationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IOperationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.OperationsScopedList;

                    /**
                     * Decodes an OperationsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.OperationsScopedList;

                    /**
                     * Verifies an OperationsScopedList message.
                     * @param message Plain 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 OperationsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.OperationsScopedList;

                    /**
                     * Creates a plain object from an OperationsScopedList message. Also converts values to other types if specified.
                     * @param message OperationsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.OperationsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OrganizationSecurityPoliciesListAssociationsResponse. */
                interface IOrganizationSecurityPoliciesListAssociationsResponse {

                    /** OrganizationSecurityPoliciesListAssociationsResponse associations */
                    associations?: (google.cloud.compute.v1.ISecurityPolicyAssociation[]|null);

                    /** OrganizationSecurityPoliciesListAssociationsResponse kind */
                    kind?: (string|null);
                }

                /** Represents an OrganizationSecurityPoliciesListAssociationsResponse. */
                class OrganizationSecurityPoliciesListAssociationsResponse implements IOrganizationSecurityPoliciesListAssociationsResponse {

                    /**
                     * Constructs a new OrganizationSecurityPoliciesListAssociationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IOrganizationSecurityPoliciesListAssociationsResponse);

                    /** OrganizationSecurityPoliciesListAssociationsResponse associations. */
                    public associations: google.cloud.compute.v1.ISecurityPolicyAssociation[];

                    /** OrganizationSecurityPoliciesListAssociationsResponse kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new OrganizationSecurityPoliciesListAssociationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OrganizationSecurityPoliciesListAssociationsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IOrganizationSecurityPoliciesListAssociationsResponse): google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse;

                    /**
                     * Encodes the specified OrganizationSecurityPoliciesListAssociationsResponse message. Does not implicitly {@link google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse.verify|verify} messages.
                     * @param message OrganizationSecurityPoliciesListAssociationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IOrganizationSecurityPoliciesListAssociationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OrganizationSecurityPoliciesListAssociationsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse.verify|verify} messages.
                     * @param message OrganizationSecurityPoliciesListAssociationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IOrganizationSecurityPoliciesListAssociationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OrganizationSecurityPoliciesListAssociationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OrganizationSecurityPoliciesListAssociationsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse;

                    /**
                     * Decodes an OrganizationSecurityPoliciesListAssociationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OrganizationSecurityPoliciesListAssociationsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse;

                    /**
                     * Verifies an OrganizationSecurityPoliciesListAssociationsResponse message.
                     * @param message Plain 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 OrganizationSecurityPoliciesListAssociationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OrganizationSecurityPoliciesListAssociationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse;

                    /**
                     * Creates a plain object from an OrganizationSecurityPoliciesListAssociationsResponse message. Also converts values to other types if specified.
                     * @param message OrganizationSecurityPoliciesListAssociationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OrganizationSecurityPoliciesListAssociationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OrganizationSecurityPoliciesListAssociationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OutlierDetection. */
                interface IOutlierDetection {

                    /** OutlierDetection baseEjectionTime */
                    baseEjectionTime?: (google.cloud.compute.v1.IDuration|null);

                    /** OutlierDetection consecutiveErrors */
                    consecutiveErrors?: (number|null);

                    /** OutlierDetection consecutiveGatewayFailure */
                    consecutiveGatewayFailure?: (number|null);

                    /** OutlierDetection enforcingConsecutiveErrors */
                    enforcingConsecutiveErrors?: (number|null);

                    /** OutlierDetection enforcingConsecutiveGatewayFailure */
                    enforcingConsecutiveGatewayFailure?: (number|null);

                    /** OutlierDetection enforcingSuccessRate */
                    enforcingSuccessRate?: (number|null);

                    /** OutlierDetection interval */
                    interval?: (google.cloud.compute.v1.IDuration|null);

                    /** OutlierDetection maxEjectionPercent */
                    maxEjectionPercent?: (number|null);

                    /** OutlierDetection successRateMinimumHosts */
                    successRateMinimumHosts?: (number|null);

                    /** OutlierDetection successRateRequestVolume */
                    successRateRequestVolume?: (number|null);

                    /** OutlierDetection successRateStdevFactor */
                    successRateStdevFactor?: (number|null);
                }

                /** Represents an OutlierDetection. */
                class OutlierDetection implements IOutlierDetection {

                    /**
                     * Constructs a new OutlierDetection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IOutlierDetection);

                    /** OutlierDetection baseEjectionTime. */
                    public baseEjectionTime?: (google.cloud.compute.v1.IDuration|null);

                    /** OutlierDetection consecutiveErrors. */
                    public consecutiveErrors?: (number|null);

                    /** OutlierDetection consecutiveGatewayFailure. */
                    public consecutiveGatewayFailure?: (number|null);

                    /** OutlierDetection enforcingConsecutiveErrors. */
                    public enforcingConsecutiveErrors?: (number|null);

                    /** OutlierDetection enforcingConsecutiveGatewayFailure. */
                    public enforcingConsecutiveGatewayFailure?: (number|null);

                    /** OutlierDetection enforcingSuccessRate. */
                    public enforcingSuccessRate?: (number|null);

                    /** OutlierDetection interval. */
                    public interval?: (google.cloud.compute.v1.IDuration|null);

                    /** OutlierDetection maxEjectionPercent. */
                    public maxEjectionPercent?: (number|null);

                    /** OutlierDetection successRateMinimumHosts. */
                    public successRateMinimumHosts?: (number|null);

                    /** OutlierDetection successRateRequestVolume. */
                    public successRateRequestVolume?: (number|null);

                    /** OutlierDetection successRateStdevFactor. */
                    public successRateStdevFactor?: (number|null);

                    /**
                     * Creates a new OutlierDetection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OutlierDetection instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IOutlierDetection): google.cloud.compute.v1.OutlierDetection;

                    /**
                     * Encodes the specified OutlierDetection message. Does not implicitly {@link google.cloud.compute.v1.OutlierDetection.verify|verify} messages.
                     * @param message OutlierDetection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IOutlierDetection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OutlierDetection message, length delimited. Does not implicitly {@link google.cloud.compute.v1.OutlierDetection.verify|verify} messages.
                     * @param message OutlierDetection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IOutlierDetection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OutlierDetection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OutlierDetection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.OutlierDetection;

                    /**
                     * Decodes an OutlierDetection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OutlierDetection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.OutlierDetection;

                    /**
                     * Verifies an OutlierDetection message.
                     * @param message Plain 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 OutlierDetection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OutlierDetection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.OutlierDetection;

                    /**
                     * Creates a plain object from an OutlierDetection message. Also converts values to other types if specified.
                     * @param message OutlierDetection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.OutlierDetection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OutlierDetection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OutlierDetection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketIntervals. */
                interface IPacketIntervals {

                    /** PacketIntervals avgMs */
                    avgMs?: (number|Long|string|null);

                    /** PacketIntervals duration */
                    duration?: (string|null);

                    /** PacketIntervals maxMs */
                    maxMs?: (number|Long|string|null);

                    /** PacketIntervals minMs */
                    minMs?: (number|Long|string|null);

                    /** PacketIntervals numIntervals */
                    numIntervals?: (number|Long|string|null);

                    /** PacketIntervals type */
                    type?: (string|null);
                }

                /** Represents a PacketIntervals. */
                class PacketIntervals implements IPacketIntervals {

                    /**
                     * Constructs a new PacketIntervals.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketIntervals);

                    /** PacketIntervals avgMs. */
                    public avgMs?: (number|Long|string|null);

                    /** PacketIntervals duration. */
                    public duration?: (string|null);

                    /** PacketIntervals maxMs. */
                    public maxMs?: (number|Long|string|null);

                    /** PacketIntervals minMs. */
                    public minMs?: (number|Long|string|null);

                    /** PacketIntervals numIntervals. */
                    public numIntervals?: (number|Long|string|null);

                    /** PacketIntervals type. */
                    public type?: (string|null);

                    /**
                     * Creates a new PacketIntervals instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketIntervals instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketIntervals): google.cloud.compute.v1.PacketIntervals;

                    /**
                     * Encodes the specified PacketIntervals message. Does not implicitly {@link google.cloud.compute.v1.PacketIntervals.verify|verify} messages.
                     * @param message PacketIntervals message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketIntervals, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketIntervals message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketIntervals.verify|verify} messages.
                     * @param message PacketIntervals message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketIntervals, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketIntervals message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketIntervals
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketIntervals;

                    /**
                     * Decodes a PacketIntervals message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketIntervals
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketIntervals;

                    /**
                     * Verifies a PacketIntervals message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketIntervals message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketIntervals
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketIntervals;

                    /**
                     * Creates a plain object from a PacketIntervals message. Also converts values to other types if specified.
                     * @param message PacketIntervals
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketIntervals, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketIntervals to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketIntervals
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PacketIntervals {

                    /** Duration enum. */
                    enum Duration {
                        UNDEFINED_DURATION = 0,
                        DURATION_UNSPECIFIED = 529071340,
                        HOUR = 2223588,
                        MAX = 76100,
                        MINUTE = 126786068
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        LOOPBACK = 356174219,
                        RECEIVE = 189660867,
                        TRANSMIT = 452903600,
                        TYPE_UNSPECIFIED = 437714322
                    }
                }

                /** Properties of a PacketMirroring. */
                interface IPacketMirroring {

                    /** PacketMirroring collectorIlb */
                    collectorIlb?: (google.cloud.compute.v1.IPacketMirroringForwardingRuleInfo|null);

                    /** PacketMirroring creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** PacketMirroring description */
                    description?: (string|null);

                    /** PacketMirroring enable */
                    enable?: (string|null);

                    /** PacketMirroring filter */
                    filter?: (google.cloud.compute.v1.IPacketMirroringFilter|null);

                    /** PacketMirroring id */
                    id?: (number|Long|string|null);

                    /** PacketMirroring kind */
                    kind?: (string|null);

                    /** PacketMirroring mirroredResources */
                    mirroredResources?: (google.cloud.compute.v1.IPacketMirroringMirroredResourceInfo|null);

                    /** PacketMirroring name */
                    name?: (string|null);

                    /** PacketMirroring network */
                    network?: (google.cloud.compute.v1.IPacketMirroringNetworkInfo|null);

                    /** PacketMirroring priority */
                    priority?: (number|null);

                    /** PacketMirroring region */
                    region?: (string|null);

                    /** PacketMirroring selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a PacketMirroring. */
                class PacketMirroring implements IPacketMirroring {

                    /**
                     * Constructs a new PacketMirroring.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroring);

                    /** PacketMirroring collectorIlb. */
                    public collectorIlb?: (google.cloud.compute.v1.IPacketMirroringForwardingRuleInfo|null);

                    /** PacketMirroring creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** PacketMirroring description. */
                    public description?: (string|null);

                    /** PacketMirroring enable. */
                    public enable?: (string|null);

                    /** PacketMirroring filter. */
                    public filter?: (google.cloud.compute.v1.IPacketMirroringFilter|null);

                    /** PacketMirroring id. */
                    public id?: (number|Long|string|null);

                    /** PacketMirroring kind. */
                    public kind?: (string|null);

                    /** PacketMirroring mirroredResources. */
                    public mirroredResources?: (google.cloud.compute.v1.IPacketMirroringMirroredResourceInfo|null);

                    /** PacketMirroring name. */
                    public name?: (string|null);

                    /** PacketMirroring network. */
                    public network?: (google.cloud.compute.v1.IPacketMirroringNetworkInfo|null);

                    /** PacketMirroring priority. */
                    public priority?: (number|null);

                    /** PacketMirroring region. */
                    public region?: (string|null);

                    /** PacketMirroring selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new PacketMirroring instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroring instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroring): google.cloud.compute.v1.PacketMirroring;

                    /**
                     * Encodes the specified PacketMirroring message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroring.verify|verify} messages.
                     * @param message PacketMirroring message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroring, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroring message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroring.verify|verify} messages.
                     * @param message PacketMirroring message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroring, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroring message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroring
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroring;

                    /**
                     * Decodes a PacketMirroring message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroring
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroring;

                    /**
                     * Verifies a PacketMirroring message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroring message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroring
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroring;

                    /**
                     * Creates a plain object from a PacketMirroring message. Also converts values to other types if specified.
                     * @param message PacketMirroring
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroring, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroring to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroring
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PacketMirroring {

                    /** Enable enum. */
                    enum Enable {
                        UNDEFINED_ENABLE = 0,
                        FALSE = 66658563,
                        TRUE = 2583950
                    }
                }

                /** Properties of a PacketMirroringAggregatedList. */
                interface IPacketMirroringAggregatedList {

                    /** PacketMirroringAggregatedList id */
                    id?: (string|null);

                    /** PacketMirroringAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IPacketMirroringsScopedList }|null);

                    /** PacketMirroringAggregatedList kind */
                    kind?: (string|null);

                    /** PacketMirroringAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PacketMirroringAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** PacketMirroringAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** PacketMirroringAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a PacketMirroringAggregatedList. */
                class PacketMirroringAggregatedList implements IPacketMirroringAggregatedList {

                    /**
                     * Constructs a new PacketMirroringAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringAggregatedList);

                    /** PacketMirroringAggregatedList id. */
                    public id?: (string|null);

                    /** PacketMirroringAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IPacketMirroringsScopedList };

                    /** PacketMirroringAggregatedList kind. */
                    public kind?: (string|null);

                    /** PacketMirroringAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PacketMirroringAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** PacketMirroringAggregatedList unreachables. */
                    public unreachables: string[];

                    /** PacketMirroringAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new PacketMirroringAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringAggregatedList): google.cloud.compute.v1.PacketMirroringAggregatedList;

                    /**
                     * Encodes the specified PacketMirroringAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringAggregatedList.verify|verify} messages.
                     * @param message PacketMirroringAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringAggregatedList.verify|verify} messages.
                     * @param message PacketMirroringAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringAggregatedList;

                    /**
                     * Decodes a PacketMirroringAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringAggregatedList;

                    /**
                     * Verifies a PacketMirroringAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringAggregatedList;

                    /**
                     * Creates a plain object from a PacketMirroringAggregatedList message. Also converts values to other types if specified.
                     * @param message PacketMirroringAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringFilter. */
                interface IPacketMirroringFilter {

                    /** PacketMirroringFilter IPProtocols */
                    IPProtocols?: (string[]|null);

                    /** PacketMirroringFilter cidrRanges */
                    cidrRanges?: (string[]|null);

                    /** PacketMirroringFilter direction */
                    direction?: (string|null);
                }

                /** Represents a PacketMirroringFilter. */
                class PacketMirroringFilter implements IPacketMirroringFilter {

                    /**
                     * Constructs a new PacketMirroringFilter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringFilter);

                    /** PacketMirroringFilter IPProtocols. */
                    public IPProtocols: string[];

                    /** PacketMirroringFilter cidrRanges. */
                    public cidrRanges: string[];

                    /** PacketMirroringFilter direction. */
                    public direction?: (string|null);

                    /**
                     * Creates a new PacketMirroringFilter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringFilter instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringFilter): google.cloud.compute.v1.PacketMirroringFilter;

                    /**
                     * Encodes the specified PacketMirroringFilter message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringFilter.verify|verify} messages.
                     * @param message PacketMirroringFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringFilter message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringFilter.verify|verify} messages.
                     * @param message PacketMirroringFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringFilter;

                    /**
                     * Decodes a PacketMirroringFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringFilter;

                    /**
                     * Verifies a PacketMirroringFilter message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringFilter;

                    /**
                     * Creates a plain object from a PacketMirroringFilter message. Also converts values to other types if specified.
                     * @param message PacketMirroringFilter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringFilter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringFilter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PacketMirroringFilter {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        BOTH = 2044801,
                        EGRESS = 432880501,
                        INGRESS = 516931221
                    }
                }

                /** Properties of a PacketMirroringForwardingRuleInfo. */
                interface IPacketMirroringForwardingRuleInfo {

                    /** PacketMirroringForwardingRuleInfo canonicalUrl */
                    canonicalUrl?: (string|null);

                    /** PacketMirroringForwardingRuleInfo url */
                    url?: (string|null);
                }

                /** Represents a PacketMirroringForwardingRuleInfo. */
                class PacketMirroringForwardingRuleInfo implements IPacketMirroringForwardingRuleInfo {

                    /**
                     * Constructs a new PacketMirroringForwardingRuleInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringForwardingRuleInfo);

                    /** PacketMirroringForwardingRuleInfo canonicalUrl. */
                    public canonicalUrl?: (string|null);

                    /** PacketMirroringForwardingRuleInfo url. */
                    public url?: (string|null);

                    /**
                     * Creates a new PacketMirroringForwardingRuleInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringForwardingRuleInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringForwardingRuleInfo): google.cloud.compute.v1.PacketMirroringForwardingRuleInfo;

                    /**
                     * Encodes the specified PacketMirroringForwardingRuleInfo message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringForwardingRuleInfo.verify|verify} messages.
                     * @param message PacketMirroringForwardingRuleInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringForwardingRuleInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringForwardingRuleInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringForwardingRuleInfo.verify|verify} messages.
                     * @param message PacketMirroringForwardingRuleInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringForwardingRuleInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringForwardingRuleInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringForwardingRuleInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringForwardingRuleInfo;

                    /**
                     * Decodes a PacketMirroringForwardingRuleInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringForwardingRuleInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringForwardingRuleInfo;

                    /**
                     * Verifies a PacketMirroringForwardingRuleInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringForwardingRuleInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringForwardingRuleInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringForwardingRuleInfo;

                    /**
                     * Creates a plain object from a PacketMirroringForwardingRuleInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringForwardingRuleInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringForwardingRuleInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringForwardingRuleInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringForwardingRuleInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringList. */
                interface IPacketMirroringList {

                    /** PacketMirroringList id */
                    id?: (string|null);

                    /** PacketMirroringList items */
                    items?: (google.cloud.compute.v1.IPacketMirroring[]|null);

                    /** PacketMirroringList kind */
                    kind?: (string|null);

                    /** PacketMirroringList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PacketMirroringList selfLink */
                    selfLink?: (string|null);

                    /** PacketMirroringList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a PacketMirroringList. */
                class PacketMirroringList implements IPacketMirroringList {

                    /**
                     * Constructs a new PacketMirroringList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringList);

                    /** PacketMirroringList id. */
                    public id?: (string|null);

                    /** PacketMirroringList items. */
                    public items: google.cloud.compute.v1.IPacketMirroring[];

                    /** PacketMirroringList kind. */
                    public kind?: (string|null);

                    /** PacketMirroringList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PacketMirroringList selfLink. */
                    public selfLink?: (string|null);

                    /** PacketMirroringList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new PacketMirroringList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringList): google.cloud.compute.v1.PacketMirroringList;

                    /**
                     * Encodes the specified PacketMirroringList message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringList.verify|verify} messages.
                     * @param message PacketMirroringList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringList.verify|verify} messages.
                     * @param message PacketMirroringList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringList;

                    /**
                     * Decodes a PacketMirroringList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringList;

                    /**
                     * Verifies a PacketMirroringList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringList;

                    /**
                     * Creates a plain object from a PacketMirroringList message. Also converts values to other types if specified.
                     * @param message PacketMirroringList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringMirroredResourceInfo. */
                interface IPacketMirroringMirroredResourceInfo {

                    /** PacketMirroringMirroredResourceInfo instances */
                    instances?: (google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoInstanceInfo[]|null);

                    /** PacketMirroringMirroredResourceInfo subnetworks */
                    subnetworks?: (google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoSubnetInfo[]|null);

                    /** PacketMirroringMirroredResourceInfo tags */
                    tags?: (string[]|null);
                }

                /** Represents a PacketMirroringMirroredResourceInfo. */
                class PacketMirroringMirroredResourceInfo implements IPacketMirroringMirroredResourceInfo {

                    /**
                     * Constructs a new PacketMirroringMirroredResourceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfo);

                    /** PacketMirroringMirroredResourceInfo instances. */
                    public instances: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoInstanceInfo[];

                    /** PacketMirroringMirroredResourceInfo subnetworks. */
                    public subnetworks: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoSubnetInfo[];

                    /** PacketMirroringMirroredResourceInfo tags. */
                    public tags: string[];

                    /**
                     * Creates a new PacketMirroringMirroredResourceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringMirroredResourceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfo): google.cloud.compute.v1.PacketMirroringMirroredResourceInfo;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfo message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringMirroredResourceInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringMirroredResourceInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringMirroredResourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringMirroredResourceInfo;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringMirroredResourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringMirroredResourceInfo;

                    /**
                     * Verifies a PacketMirroringMirroredResourceInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringMirroredResourceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringMirroredResourceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringMirroredResourceInfo;

                    /**
                     * Creates a plain object from a PacketMirroringMirroredResourceInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringMirroredResourceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringMirroredResourceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringMirroredResourceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringMirroredResourceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringMirroredResourceInfoInstanceInfo. */
                interface IPacketMirroringMirroredResourceInfoInstanceInfo {

                    /** PacketMirroringMirroredResourceInfoInstanceInfo canonicalUrl */
                    canonicalUrl?: (string|null);

                    /** PacketMirroringMirroredResourceInfoInstanceInfo url */
                    url?: (string|null);
                }

                /** Represents a PacketMirroringMirroredResourceInfoInstanceInfo. */
                class PacketMirroringMirroredResourceInfoInstanceInfo implements IPacketMirroringMirroredResourceInfoInstanceInfo {

                    /**
                     * Constructs a new PacketMirroringMirroredResourceInfoInstanceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoInstanceInfo);

                    /** PacketMirroringMirroredResourceInfoInstanceInfo canonicalUrl. */
                    public canonicalUrl?: (string|null);

                    /** PacketMirroringMirroredResourceInfoInstanceInfo url. */
                    public url?: (string|null);

                    /**
                     * Creates a new PacketMirroringMirroredResourceInfoInstanceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringMirroredResourceInfoInstanceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoInstanceInfo): google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfoInstanceInfo message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfoInstanceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoInstanceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfoInstanceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfoInstanceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoInstanceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfoInstanceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringMirroredResourceInfoInstanceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfoInstanceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringMirroredResourceInfoInstanceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo;

                    /**
                     * Verifies a PacketMirroringMirroredResourceInfoInstanceInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringMirroredResourceInfoInstanceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringMirroredResourceInfoInstanceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo;

                    /**
                     * Creates a plain object from a PacketMirroringMirroredResourceInfoInstanceInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringMirroredResourceInfoInstanceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringMirroredResourceInfoInstanceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringMirroredResourceInfoInstanceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringMirroredResourceInfoSubnetInfo. */
                interface IPacketMirroringMirroredResourceInfoSubnetInfo {

                    /** PacketMirroringMirroredResourceInfoSubnetInfo canonicalUrl */
                    canonicalUrl?: (string|null);

                    /** PacketMirroringMirroredResourceInfoSubnetInfo url */
                    url?: (string|null);
                }

                /** Represents a PacketMirroringMirroredResourceInfoSubnetInfo. */
                class PacketMirroringMirroredResourceInfoSubnetInfo implements IPacketMirroringMirroredResourceInfoSubnetInfo {

                    /**
                     * Constructs a new PacketMirroringMirroredResourceInfoSubnetInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoSubnetInfo);

                    /** PacketMirroringMirroredResourceInfoSubnetInfo canonicalUrl. */
                    public canonicalUrl?: (string|null);

                    /** PacketMirroringMirroredResourceInfoSubnetInfo url. */
                    public url?: (string|null);

                    /**
                     * Creates a new PacketMirroringMirroredResourceInfoSubnetInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringMirroredResourceInfoSubnetInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoSubnetInfo): google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfoSubnetInfo message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfoSubnetInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoSubnetInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfoSubnetInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfoSubnetInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringMirroredResourceInfoSubnetInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfoSubnetInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringMirroredResourceInfoSubnetInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfoSubnetInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringMirroredResourceInfoSubnetInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo;

                    /**
                     * Verifies a PacketMirroringMirroredResourceInfoSubnetInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringMirroredResourceInfoSubnetInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringMirroredResourceInfoSubnetInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo;

                    /**
                     * Creates a plain object from a PacketMirroringMirroredResourceInfoSubnetInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringMirroredResourceInfoSubnetInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringMirroredResourceInfoSubnetInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringMirroredResourceInfoSubnetInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringNetworkInfo. */
                interface IPacketMirroringNetworkInfo {

                    /** PacketMirroringNetworkInfo canonicalUrl */
                    canonicalUrl?: (string|null);

                    /** PacketMirroringNetworkInfo url */
                    url?: (string|null);
                }

                /** Represents a PacketMirroringNetworkInfo. */
                class PacketMirroringNetworkInfo implements IPacketMirroringNetworkInfo {

                    /**
                     * Constructs a new PacketMirroringNetworkInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringNetworkInfo);

                    /** PacketMirroringNetworkInfo canonicalUrl. */
                    public canonicalUrl?: (string|null);

                    /** PacketMirroringNetworkInfo url. */
                    public url?: (string|null);

                    /**
                     * Creates a new PacketMirroringNetworkInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringNetworkInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringNetworkInfo): google.cloud.compute.v1.PacketMirroringNetworkInfo;

                    /**
                     * Encodes the specified PacketMirroringNetworkInfo message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringNetworkInfo.verify|verify} messages.
                     * @param message PacketMirroringNetworkInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringNetworkInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringNetworkInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringNetworkInfo.verify|verify} messages.
                     * @param message PacketMirroringNetworkInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringNetworkInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringNetworkInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringNetworkInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringNetworkInfo;

                    /**
                     * Decodes a PacketMirroringNetworkInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringNetworkInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringNetworkInfo;

                    /**
                     * Verifies a PacketMirroringNetworkInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringNetworkInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringNetworkInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringNetworkInfo;

                    /**
                     * Creates a plain object from a PacketMirroringNetworkInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringNetworkInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringNetworkInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringNetworkInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringNetworkInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringsScopedList. */
                interface IPacketMirroringsScopedList {

                    /** PacketMirroringsScopedList packetMirrorings */
                    packetMirrorings?: (google.cloud.compute.v1.IPacketMirroring[]|null);

                    /** PacketMirroringsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a PacketMirroringsScopedList. */
                class PacketMirroringsScopedList implements IPacketMirroringsScopedList {

                    /**
                     * Constructs a new PacketMirroringsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPacketMirroringsScopedList);

                    /** PacketMirroringsScopedList packetMirrorings. */
                    public packetMirrorings: google.cloud.compute.v1.IPacketMirroring[];

                    /** PacketMirroringsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new PacketMirroringsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPacketMirroringsScopedList): google.cloud.compute.v1.PacketMirroringsScopedList;

                    /**
                     * Encodes the specified PacketMirroringsScopedList message. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringsScopedList.verify|verify} messages.
                     * @param message PacketMirroringsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPacketMirroringsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PacketMirroringsScopedList.verify|verify} messages.
                     * @param message PacketMirroringsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPacketMirroringsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PacketMirroringsScopedList;

                    /**
                     * Decodes a PacketMirroringsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PacketMirroringsScopedList;

                    /**
                     * Verifies a PacketMirroringsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PacketMirroringsScopedList;

                    /**
                     * Creates a plain object from a PacketMirroringsScopedList message. Also converts values to other types if specified.
                     * @param message PacketMirroringsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PacketMirroringsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchAutoscalerRequest. */
                interface IPatchAutoscalerRequest {

                    /** PatchAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** PatchAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** PatchAutoscalerRequest project */
                    project?: (string|null);

                    /** PatchAutoscalerRequest requestId */
                    requestId?: (string|null);

                    /** PatchAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchAutoscalerRequest. */
                class PatchAutoscalerRequest implements IPatchAutoscalerRequest {

                    /**
                     * Constructs a new PatchAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchAutoscalerRequest);

                    /** PatchAutoscalerRequest autoscaler. */
                    public autoscaler?: (string|null);

                    /** PatchAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** PatchAutoscalerRequest project. */
                    public project: string;

                    /** PatchAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchAutoscalerRequest): google.cloud.compute.v1.PatchAutoscalerRequest;

                    /**
                     * Encodes the specified PatchAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchAutoscalerRequest.verify|verify} messages.
                     * @param message PatchAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchAutoscalerRequest.verify|verify} messages.
                     * @param message PatchAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchAutoscalerRequest;

                    /**
                     * Decodes a PatchAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchAutoscalerRequest;

                    /**
                     * Verifies a PatchAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchAutoscalerRequest;

                    /**
                     * Creates a plain object from a PatchAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message PatchAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchBackendBucketRequest. */
                interface IPatchBackendBucketRequest {

                    /** PatchBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** PatchBackendBucketRequest backendBucketResource */
                    backendBucketResource?: (google.cloud.compute.v1.IBackendBucket|null);

                    /** PatchBackendBucketRequest project */
                    project?: (string|null);

                    /** PatchBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchBackendBucketRequest. */
                class PatchBackendBucketRequest implements IPatchBackendBucketRequest {

                    /**
                     * Constructs a new PatchBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchBackendBucketRequest);

                    /** PatchBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** PatchBackendBucketRequest backendBucketResource. */
                    public backendBucketResource?: (google.cloud.compute.v1.IBackendBucket|null);

                    /** PatchBackendBucketRequest project. */
                    public project: string;

                    /** PatchBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchBackendBucketRequest): google.cloud.compute.v1.PatchBackendBucketRequest;

                    /**
                     * Encodes the specified PatchBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchBackendBucketRequest.verify|verify} messages.
                     * @param message PatchBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchBackendBucketRequest.verify|verify} messages.
                     * @param message PatchBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchBackendBucketRequest;

                    /**
                     * Decodes a PatchBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchBackendBucketRequest;

                    /**
                     * Verifies a PatchBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchBackendBucketRequest;

                    /**
                     * Creates a plain object from a PatchBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message PatchBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchBackendServiceRequest. */
                interface IPatchBackendServiceRequest {

                    /** PatchBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** PatchBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** PatchBackendServiceRequest project */
                    project?: (string|null);

                    /** PatchBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchBackendServiceRequest. */
                class PatchBackendServiceRequest implements IPatchBackendServiceRequest {

                    /**
                     * Constructs a new PatchBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchBackendServiceRequest);

                    /** PatchBackendServiceRequest backendService. */
                    public backendService: string;

                    /** PatchBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** PatchBackendServiceRequest project. */
                    public project: string;

                    /** PatchBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchBackendServiceRequest): google.cloud.compute.v1.PatchBackendServiceRequest;

                    /**
                     * Encodes the specified PatchBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchBackendServiceRequest.verify|verify} messages.
                     * @param message PatchBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchBackendServiceRequest.verify|verify} messages.
                     * @param message PatchBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchBackendServiceRequest;

                    /**
                     * Decodes a PatchBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchBackendServiceRequest;

                    /**
                     * Verifies a PatchBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchBackendServiceRequest;

                    /**
                     * Creates a plain object from a PatchBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message PatchBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchCrossSiteNetworkRequest. */
                interface IPatchCrossSiteNetworkRequest {

                    /** PatchCrossSiteNetworkRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** PatchCrossSiteNetworkRequest crossSiteNetworkResource */
                    crossSiteNetworkResource?: (google.cloud.compute.v1.ICrossSiteNetwork|null);

                    /** PatchCrossSiteNetworkRequest project */
                    project?: (string|null);

                    /** PatchCrossSiteNetworkRequest requestId */
                    requestId?: (string|null);

                    /** PatchCrossSiteNetworkRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchCrossSiteNetworkRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents a PatchCrossSiteNetworkRequest. */
                class PatchCrossSiteNetworkRequest implements IPatchCrossSiteNetworkRequest {

                    /**
                     * Constructs a new PatchCrossSiteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchCrossSiteNetworkRequest);

                    /** PatchCrossSiteNetworkRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** PatchCrossSiteNetworkRequest crossSiteNetworkResource. */
                    public crossSiteNetworkResource?: (google.cloud.compute.v1.ICrossSiteNetwork|null);

                    /** PatchCrossSiteNetworkRequest project. */
                    public project: string;

                    /** PatchCrossSiteNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchCrossSiteNetworkRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchCrossSiteNetworkRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new PatchCrossSiteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchCrossSiteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchCrossSiteNetworkRequest): google.cloud.compute.v1.PatchCrossSiteNetworkRequest;

                    /**
                     * Encodes the specified PatchCrossSiteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message PatchCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchCrossSiteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message PatchCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchCrossSiteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchCrossSiteNetworkRequest;

                    /**
                     * Decodes a PatchCrossSiteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchCrossSiteNetworkRequest;

                    /**
                     * Verifies a PatchCrossSiteNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchCrossSiteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchCrossSiteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchCrossSiteNetworkRequest;

                    /**
                     * Creates a plain object from a PatchCrossSiteNetworkRequest message. Also converts values to other types if specified.
                     * @param message PatchCrossSiteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchCrossSiteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchCrossSiteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchCrossSiteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchFirewallPolicyRequest. */
                interface IPatchFirewallPolicyRequest {

                    /** PatchFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** PatchFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchFirewallPolicyRequest. */
                class PatchFirewallPolicyRequest implements IPatchFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchFirewallPolicyRequest);

                    /** PatchFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** PatchFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchFirewallPolicyRequest): google.cloud.compute.v1.PatchFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchFirewallPolicyRequest;

                    /**
                     * Decodes a PatchFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchFirewallPolicyRequest;

                    /**
                     * Verifies a PatchFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchFirewallRequest. */
                interface IPatchFirewallRequest {

                    /** PatchFirewallRequest firewall */
                    firewall?: (string|null);

                    /** PatchFirewallRequest firewallResource */
                    firewallResource?: (google.cloud.compute.v1.IFirewall|null);

                    /** PatchFirewallRequest project */
                    project?: (string|null);

                    /** PatchFirewallRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchFirewallRequest. */
                class PatchFirewallRequest implements IPatchFirewallRequest {

                    /**
                     * Constructs a new PatchFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchFirewallRequest);

                    /** PatchFirewallRequest firewall. */
                    public firewall: string;

                    /** PatchFirewallRequest firewallResource. */
                    public firewallResource?: (google.cloud.compute.v1.IFirewall|null);

                    /** PatchFirewallRequest project. */
                    public project: string;

                    /** PatchFirewallRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchFirewallRequest): google.cloud.compute.v1.PatchFirewallRequest;

                    /**
                     * Encodes the specified PatchFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchFirewallRequest.verify|verify} messages.
                     * @param message PatchFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchFirewallRequest.verify|verify} messages.
                     * @param message PatchFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchFirewallRequest;

                    /**
                     * Decodes a PatchFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchFirewallRequest;

                    /**
                     * Verifies a PatchFirewallRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchFirewallRequest;

                    /**
                     * Creates a plain object from a PatchFirewallRequest message. Also converts values to other types if specified.
                     * @param message PatchFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchForwardingRuleRequest. */
                interface IPatchForwardingRuleRequest {

                    /** PatchForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** PatchForwardingRuleRequest forwardingRuleResource */
                    forwardingRuleResource?: (google.cloud.compute.v1.IForwardingRule|null);

                    /** PatchForwardingRuleRequest project */
                    project?: (string|null);

                    /** PatchForwardingRuleRequest region */
                    region?: (string|null);

                    /** PatchForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchForwardingRuleRequest. */
                class PatchForwardingRuleRequest implements IPatchForwardingRuleRequest {

                    /**
                     * Constructs a new PatchForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchForwardingRuleRequest);

                    /** PatchForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** PatchForwardingRuleRequest forwardingRuleResource. */
                    public forwardingRuleResource?: (google.cloud.compute.v1.IForwardingRule|null);

                    /** PatchForwardingRuleRequest project. */
                    public project: string;

                    /** PatchForwardingRuleRequest region. */
                    public region: string;

                    /** PatchForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchForwardingRuleRequest): google.cloud.compute.v1.PatchForwardingRuleRequest;

                    /**
                     * Encodes the specified PatchForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchForwardingRuleRequest.verify|verify} messages.
                     * @param message PatchForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchForwardingRuleRequest.verify|verify} messages.
                     * @param message PatchForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchForwardingRuleRequest;

                    /**
                     * Decodes a PatchForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchForwardingRuleRequest;

                    /**
                     * Verifies a PatchForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchForwardingRuleRequest;

                    /**
                     * Creates a plain object from a PatchForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message PatchForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchGlobalForwardingRuleRequest. */
                interface IPatchGlobalForwardingRuleRequest {

                    /** PatchGlobalForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** PatchGlobalForwardingRuleRequest forwardingRuleResource */
                    forwardingRuleResource?: (google.cloud.compute.v1.IForwardingRule|null);

                    /** PatchGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** PatchGlobalForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchGlobalForwardingRuleRequest. */
                class PatchGlobalForwardingRuleRequest implements IPatchGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new PatchGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchGlobalForwardingRuleRequest);

                    /** PatchGlobalForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** PatchGlobalForwardingRuleRequest forwardingRuleResource. */
                    public forwardingRuleResource?: (google.cloud.compute.v1.IForwardingRule|null);

                    /** PatchGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** PatchGlobalForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchGlobalForwardingRuleRequest): google.cloud.compute.v1.PatchGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified PatchGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message PatchGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message PatchGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchGlobalForwardingRuleRequest;

                    /**
                     * Decodes a PatchGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchGlobalForwardingRuleRequest;

                    /**
                     * Verifies a PatchGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a PatchGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message PatchGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchGlobalPublicDelegatedPrefixeRequest. */
                interface IPatchGlobalPublicDelegatedPrefixeRequest {

                    /** PatchGlobalPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** PatchGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** PatchGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefixResource */
                    publicDelegatedPrefixResource?: (google.cloud.compute.v1.IPublicDelegatedPrefix|null);

                    /** PatchGlobalPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchGlobalPublicDelegatedPrefixeRequest. */
                class PatchGlobalPublicDelegatedPrefixeRequest implements IPatchGlobalPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new PatchGlobalPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchGlobalPublicDelegatedPrefixeRequest);

                    /** PatchGlobalPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** PatchGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** PatchGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefixResource. */
                    public publicDelegatedPrefixResource?: (google.cloud.compute.v1.IPublicDelegatedPrefix|null);

                    /** PatchGlobalPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchGlobalPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchGlobalPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchGlobalPublicDelegatedPrefixeRequest): google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified PatchGlobalPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message PatchGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchGlobalPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message PatchGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a PatchGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a PatchGlobalPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchGlobalPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchGlobalPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a PatchGlobalPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message PatchGlobalPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchGlobalPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchGlobalPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchHealthCheckRequest. */
                interface IPatchHealthCheckRequest {

                    /** PatchHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** PatchHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** PatchHealthCheckRequest project */
                    project?: (string|null);

                    /** PatchHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchHealthCheckRequest. */
                class PatchHealthCheckRequest implements IPatchHealthCheckRequest {

                    /**
                     * Constructs a new PatchHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchHealthCheckRequest);

                    /** PatchHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** PatchHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** PatchHealthCheckRequest project. */
                    public project: string;

                    /** PatchHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchHealthCheckRequest): google.cloud.compute.v1.PatchHealthCheckRequest;

                    /**
                     * Encodes the specified PatchHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchHealthCheckRequest.verify|verify} messages.
                     * @param message PatchHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchHealthCheckRequest.verify|verify} messages.
                     * @param message PatchHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchHealthCheckRequest;

                    /**
                     * Decodes a PatchHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchHealthCheckRequest;

                    /**
                     * Verifies a PatchHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchHealthCheckRequest;

                    /**
                     * Creates a plain object from a PatchHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message PatchHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchImageRequest. */
                interface IPatchImageRequest {

                    /** PatchImageRequest image */
                    image?: (string|null);

                    /** PatchImageRequest imageResource */
                    imageResource?: (google.cloud.compute.v1.IImage|null);

                    /** PatchImageRequest project */
                    project?: (string|null);

                    /** PatchImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchImageRequest. */
                class PatchImageRequest implements IPatchImageRequest {

                    /**
                     * Constructs a new PatchImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchImageRequest);

                    /** PatchImageRequest image. */
                    public image: string;

                    /** PatchImageRequest imageResource. */
                    public imageResource?: (google.cloud.compute.v1.IImage|null);

                    /** PatchImageRequest project. */
                    public project: string;

                    /** PatchImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchImageRequest): google.cloud.compute.v1.PatchImageRequest;

                    /**
                     * Encodes the specified PatchImageRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchImageRequest.verify|verify} messages.
                     * @param message PatchImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchImageRequest.verify|verify} messages.
                     * @param message PatchImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchImageRequest;

                    /**
                     * Decodes a PatchImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchImageRequest;

                    /**
                     * Verifies a PatchImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchImageRequest;

                    /**
                     * Creates a plain object from a PatchImageRequest message. Also converts values to other types if specified.
                     * @param message PatchImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInstanceGroupManagerRequest. */
                interface IPatchInstanceGroupManagerRequest {

                    /** PatchInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** PatchInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1.IInstanceGroupManager|null);

                    /** PatchInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** PatchInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** PatchInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchInstanceGroupManagerRequest. */
                class PatchInstanceGroupManagerRequest implements IPatchInstanceGroupManagerRequest {

                    /**
                     * Constructs a new PatchInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchInstanceGroupManagerRequest);

                    /** PatchInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** PatchInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1.IInstanceGroupManager|null);

                    /** PatchInstanceGroupManagerRequest project. */
                    public project: string;

                    /** PatchInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchInstanceGroupManagerRequest): google.cloud.compute.v1.PatchInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified PatchInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchInstanceGroupManagerRequest;

                    /**
                     * Decodes a PatchInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchInstanceGroupManagerRequest;

                    /**
                     * Verifies a PatchInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a PatchInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message PatchInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInstanceSettingRequest. */
                interface IPatchInstanceSettingRequest {

                    /** PatchInstanceSettingRequest instanceSettingsResource */
                    instanceSettingsResource?: (google.cloud.compute.v1.IInstanceSettings|null);

                    /** PatchInstanceSettingRequest project */
                    project?: (string|null);

                    /** PatchInstanceSettingRequest requestId */
                    requestId?: (string|null);

                    /** PatchInstanceSettingRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchInstanceSettingRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchInstanceSettingRequest. */
                class PatchInstanceSettingRequest implements IPatchInstanceSettingRequest {

                    /**
                     * Constructs a new PatchInstanceSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchInstanceSettingRequest);

                    /** PatchInstanceSettingRequest instanceSettingsResource. */
                    public instanceSettingsResource?: (google.cloud.compute.v1.IInstanceSettings|null);

                    /** PatchInstanceSettingRequest project. */
                    public project: string;

                    /** PatchInstanceSettingRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchInstanceSettingRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchInstanceSettingRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchInstanceSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInstanceSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchInstanceSettingRequest): google.cloud.compute.v1.PatchInstanceSettingRequest;

                    /**
                     * Encodes the specified PatchInstanceSettingRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchInstanceSettingRequest.verify|verify} messages.
                     * @param message PatchInstanceSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchInstanceSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInstanceSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchInstanceSettingRequest.verify|verify} messages.
                     * @param message PatchInstanceSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchInstanceSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInstanceSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInstanceSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchInstanceSettingRequest;

                    /**
                     * Decodes a PatchInstanceSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInstanceSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchInstanceSettingRequest;

                    /**
                     * Verifies a PatchInstanceSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInstanceSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInstanceSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchInstanceSettingRequest;

                    /**
                     * Creates a plain object from a PatchInstanceSettingRequest message. Also converts values to other types if specified.
                     * @param message PatchInstanceSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchInstanceSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInstanceSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInstanceSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInterconnectAttachmentGroupRequest. */
                interface IPatchInterconnectAttachmentGroupRequest {

                    /** PatchInterconnectAttachmentGroupRequest interconnectAttachmentGroup */
                    interconnectAttachmentGroup?: (string|null);

                    /** PatchInterconnectAttachmentGroupRequest interconnectAttachmentGroupResource */
                    interconnectAttachmentGroupResource?: (google.cloud.compute.v1.IInterconnectAttachmentGroup|null);

                    /** PatchInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** PatchInterconnectAttachmentGroupRequest requestId */
                    requestId?: (string|null);

                    /** PatchInterconnectAttachmentGroupRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchInterconnectAttachmentGroupRequest. */
                class PatchInterconnectAttachmentGroupRequest implements IPatchInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new PatchInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchInterconnectAttachmentGroupRequest);

                    /** PatchInterconnectAttachmentGroupRequest interconnectAttachmentGroup. */
                    public interconnectAttachmentGroup: string;

                    /** PatchInterconnectAttachmentGroupRequest interconnectAttachmentGroupResource. */
                    public interconnectAttachmentGroupResource?: (google.cloud.compute.v1.IInterconnectAttachmentGroup|null);

                    /** PatchInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** PatchInterconnectAttachmentGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchInterconnectAttachmentGroupRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchInterconnectAttachmentGroupRequest): google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified PatchInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message PatchInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message PatchInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a PatchInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a PatchInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a PatchInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message PatchInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInterconnectAttachmentRequest. */
                interface IPatchInterconnectAttachmentRequest {

                    /** PatchInterconnectAttachmentRequest interconnectAttachment */
                    interconnectAttachment?: (string|null);

                    /** PatchInterconnectAttachmentRequest interconnectAttachmentResource */
                    interconnectAttachmentResource?: (google.cloud.compute.v1.IInterconnectAttachment|null);

                    /** PatchInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** PatchInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** PatchInterconnectAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchInterconnectAttachmentRequest. */
                class PatchInterconnectAttachmentRequest implements IPatchInterconnectAttachmentRequest {

                    /**
                     * Constructs a new PatchInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchInterconnectAttachmentRequest);

                    /** PatchInterconnectAttachmentRequest interconnectAttachment. */
                    public interconnectAttachment: string;

                    /** PatchInterconnectAttachmentRequest interconnectAttachmentResource. */
                    public interconnectAttachmentResource?: (google.cloud.compute.v1.IInterconnectAttachment|null);

                    /** PatchInterconnectAttachmentRequest project. */
                    public project: string;

                    /** PatchInterconnectAttachmentRequest region. */
                    public region: string;

                    /** PatchInterconnectAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchInterconnectAttachmentRequest): google.cloud.compute.v1.PatchInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified PatchInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message PatchInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message PatchInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchInterconnectAttachmentRequest;

                    /**
                     * Decodes a PatchInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchInterconnectAttachmentRequest;

                    /**
                     * Verifies a PatchInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a PatchInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message PatchInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInterconnectGroupRequest. */
                interface IPatchInterconnectGroupRequest {

                    /** PatchInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** PatchInterconnectGroupRequest interconnectGroupResource */
                    interconnectGroupResource?: (google.cloud.compute.v1.IInterconnectGroup|null);

                    /** PatchInterconnectGroupRequest project */
                    project?: (string|null);

                    /** PatchInterconnectGroupRequest requestId */
                    requestId?: (string|null);

                    /** PatchInterconnectGroupRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchInterconnectGroupRequest. */
                class PatchInterconnectGroupRequest implements IPatchInterconnectGroupRequest {

                    /**
                     * Constructs a new PatchInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchInterconnectGroupRequest);

                    /** PatchInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** PatchInterconnectGroupRequest interconnectGroupResource. */
                    public interconnectGroupResource?: (google.cloud.compute.v1.IInterconnectGroup|null);

                    /** PatchInterconnectGroupRequest project. */
                    public project: string;

                    /** PatchInterconnectGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchInterconnectGroupRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchInterconnectGroupRequest): google.cloud.compute.v1.PatchInterconnectGroupRequest;

                    /**
                     * Encodes the specified PatchInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchInterconnectGroupRequest.verify|verify} messages.
                     * @param message PatchInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchInterconnectGroupRequest.verify|verify} messages.
                     * @param message PatchInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchInterconnectGroupRequest;

                    /**
                     * Decodes a PatchInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchInterconnectGroupRequest;

                    /**
                     * Verifies a PatchInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a PatchInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message PatchInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInterconnectRequest. */
                interface IPatchInterconnectRequest {

                    /** PatchInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** PatchInterconnectRequest interconnectResource */
                    interconnectResource?: (google.cloud.compute.v1.IInterconnect|null);

                    /** PatchInterconnectRequest project */
                    project?: (string|null);

                    /** PatchInterconnectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchInterconnectRequest. */
                class PatchInterconnectRequest implements IPatchInterconnectRequest {

                    /**
                     * Constructs a new PatchInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchInterconnectRequest);

                    /** PatchInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** PatchInterconnectRequest interconnectResource. */
                    public interconnectResource?: (google.cloud.compute.v1.IInterconnect|null);

                    /** PatchInterconnectRequest project. */
                    public project: string;

                    /** PatchInterconnectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchInterconnectRequest): google.cloud.compute.v1.PatchInterconnectRequest;

                    /**
                     * Encodes the specified PatchInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchInterconnectRequest.verify|verify} messages.
                     * @param message PatchInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchInterconnectRequest.verify|verify} messages.
                     * @param message PatchInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchInterconnectRequest;

                    /**
                     * Decodes a PatchInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchInterconnectRequest;

                    /**
                     * Verifies a PatchInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchInterconnectRequest;

                    /**
                     * Creates a plain object from a PatchInterconnectRequest message. Also converts values to other types if specified.
                     * @param message PatchInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNetworkAttachmentRequest. */
                interface IPatchNetworkAttachmentRequest {

                    /** PatchNetworkAttachmentRequest networkAttachment */
                    networkAttachment?: (string|null);

                    /** PatchNetworkAttachmentRequest networkAttachmentResource */
                    networkAttachmentResource?: (google.cloud.compute.v1.INetworkAttachment|null);

                    /** PatchNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** PatchNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** PatchNetworkAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchNetworkAttachmentRequest. */
                class PatchNetworkAttachmentRequest implements IPatchNetworkAttachmentRequest {

                    /**
                     * Constructs a new PatchNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchNetworkAttachmentRequest);

                    /** PatchNetworkAttachmentRequest networkAttachment. */
                    public networkAttachment: string;

                    /** PatchNetworkAttachmentRequest networkAttachmentResource. */
                    public networkAttachmentResource?: (google.cloud.compute.v1.INetworkAttachment|null);

                    /** PatchNetworkAttachmentRequest project. */
                    public project: string;

                    /** PatchNetworkAttachmentRequest region. */
                    public region: string;

                    /** PatchNetworkAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchNetworkAttachmentRequest): google.cloud.compute.v1.PatchNetworkAttachmentRequest;

                    /**
                     * Encodes the specified PatchNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchNetworkAttachmentRequest.verify|verify} messages.
                     * @param message PatchNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchNetworkAttachmentRequest.verify|verify} messages.
                     * @param message PatchNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchNetworkAttachmentRequest;

                    /**
                     * Decodes a PatchNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchNetworkAttachmentRequest;

                    /**
                     * Verifies a PatchNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a PatchNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message PatchNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNetworkEdgeSecurityServiceRequest. */
                interface IPatchNetworkEdgeSecurityServiceRequest {

                    /** PatchNetworkEdgeSecurityServiceRequest networkEdgeSecurityService */
                    networkEdgeSecurityService?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest networkEdgeSecurityServiceResource */
                    networkEdgeSecurityServiceResource?: (google.cloud.compute.v1.INetworkEdgeSecurityService|null);

                    /** PatchNetworkEdgeSecurityServiceRequest paths */
                    paths?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest project */
                    project?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest region */
                    region?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest requestId */
                    requestId?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchNetworkEdgeSecurityServiceRequest. */
                class PatchNetworkEdgeSecurityServiceRequest implements IPatchNetworkEdgeSecurityServiceRequest {

                    /**
                     * Constructs a new PatchNetworkEdgeSecurityServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchNetworkEdgeSecurityServiceRequest);

                    /** PatchNetworkEdgeSecurityServiceRequest networkEdgeSecurityService. */
                    public networkEdgeSecurityService: string;

                    /** PatchNetworkEdgeSecurityServiceRequest networkEdgeSecurityServiceResource. */
                    public networkEdgeSecurityServiceResource?: (google.cloud.compute.v1.INetworkEdgeSecurityService|null);

                    /** PatchNetworkEdgeSecurityServiceRequest paths. */
                    public paths?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest project. */
                    public project: string;

                    /** PatchNetworkEdgeSecurityServiceRequest region. */
                    public region: string;

                    /** PatchNetworkEdgeSecurityServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchNetworkEdgeSecurityServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNetworkEdgeSecurityServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchNetworkEdgeSecurityServiceRequest): google.cloud.compute.v1.PatchNetworkEdgeSecurityServiceRequest;

                    /**
                     * Encodes the specified PatchNetworkEdgeSecurityServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message PatchNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNetworkEdgeSecurityServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message PatchNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNetworkEdgeSecurityServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchNetworkEdgeSecurityServiceRequest;

                    /**
                     * Decodes a PatchNetworkEdgeSecurityServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchNetworkEdgeSecurityServiceRequest;

                    /**
                     * Verifies a PatchNetworkEdgeSecurityServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNetworkEdgeSecurityServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNetworkEdgeSecurityServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchNetworkEdgeSecurityServiceRequest;

                    /**
                     * Creates a plain object from a PatchNetworkEdgeSecurityServiceRequest message. Also converts values to other types if specified.
                     * @param message PatchNetworkEdgeSecurityServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchNetworkEdgeSecurityServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNetworkEdgeSecurityServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNetworkEdgeSecurityServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNetworkFirewallPolicyRequest. */
                interface IPatchNetworkFirewallPolicyRequest {

                    /** PatchNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchNetworkFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** PatchNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchNetworkFirewallPolicyRequest. */
                class PatchNetworkFirewallPolicyRequest implements IPatchNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchNetworkFirewallPolicyRequest);

                    /** PatchNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchNetworkFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** PatchNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchNetworkFirewallPolicyRequest): google.cloud.compute.v1.PatchNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNetworkRequest. */
                interface IPatchNetworkRequest {

                    /** PatchNetworkRequest network */
                    network?: (string|null);

                    /** PatchNetworkRequest networkResource */
                    networkResource?: (google.cloud.compute.v1.INetwork|null);

                    /** PatchNetworkRequest project */
                    project?: (string|null);

                    /** PatchNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchNetworkRequest. */
                class PatchNetworkRequest implements IPatchNetworkRequest {

                    /**
                     * Constructs a new PatchNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchNetworkRequest);

                    /** PatchNetworkRequest network. */
                    public network: string;

                    /** PatchNetworkRequest networkResource. */
                    public networkResource?: (google.cloud.compute.v1.INetwork|null);

                    /** PatchNetworkRequest project. */
                    public project: string;

                    /** PatchNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchNetworkRequest): google.cloud.compute.v1.PatchNetworkRequest;

                    /**
                     * Encodes the specified PatchNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchNetworkRequest.verify|verify} messages.
                     * @param message PatchNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchNetworkRequest.verify|verify} messages.
                     * @param message PatchNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchNetworkRequest;

                    /**
                     * Decodes a PatchNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchNetworkRequest;

                    /**
                     * Verifies a PatchNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchNetworkRequest;

                    /**
                     * Creates a plain object from a PatchNetworkRequest message. Also converts values to other types if specified.
                     * @param message PatchNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNodeGroupRequest. */
                interface IPatchNodeGroupRequest {

                    /** PatchNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** PatchNodeGroupRequest nodeGroupResource */
                    nodeGroupResource?: (google.cloud.compute.v1.INodeGroup|null);

                    /** PatchNodeGroupRequest project */
                    project?: (string|null);

                    /** PatchNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** PatchNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchNodeGroupRequest. */
                class PatchNodeGroupRequest implements IPatchNodeGroupRequest {

                    /**
                     * Constructs a new PatchNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchNodeGroupRequest);

                    /** PatchNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** PatchNodeGroupRequest nodeGroupResource. */
                    public nodeGroupResource?: (google.cloud.compute.v1.INodeGroup|null);

                    /** PatchNodeGroupRequest project. */
                    public project: string;

                    /** PatchNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchNodeGroupRequest): google.cloud.compute.v1.PatchNodeGroupRequest;

                    /**
                     * Encodes the specified PatchNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchNodeGroupRequest.verify|verify} messages.
                     * @param message PatchNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchNodeGroupRequest.verify|verify} messages.
                     * @param message PatchNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchNodeGroupRequest;

                    /**
                     * Decodes a PatchNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchNodeGroupRequest;

                    /**
                     * Verifies a PatchNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchNodeGroupRequest;

                    /**
                     * Creates a plain object from a PatchNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message PatchNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchOrganizationSecurityPolicyRequest. */
                interface IPatchOrganizationSecurityPolicyRequest {

                    /** PatchOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchOrganizationSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);
                }

                /** Represents a PatchOrganizationSecurityPolicyRequest. */
                class PatchOrganizationSecurityPolicyRequest implements IPatchOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchOrganizationSecurityPolicyRequest);

                    /** PatchOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchOrganizationSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /**
                     * Creates a new PatchOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchOrganizationSecurityPolicyRequest): google.cloud.compute.v1.PatchOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a PatchOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a PatchOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPacketMirroringRequest. */
                interface IPatchPacketMirroringRequest {

                    /** PatchPacketMirroringRequest packetMirroring */
                    packetMirroring?: (string|null);

                    /** PatchPacketMirroringRequest packetMirroringResource */
                    packetMirroringResource?: (google.cloud.compute.v1.IPacketMirroring|null);

                    /** PatchPacketMirroringRequest project */
                    project?: (string|null);

                    /** PatchPacketMirroringRequest region */
                    region?: (string|null);

                    /** PatchPacketMirroringRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPacketMirroringRequest. */
                class PatchPacketMirroringRequest implements IPatchPacketMirroringRequest {

                    /**
                     * Constructs a new PatchPacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchPacketMirroringRequest);

                    /** PatchPacketMirroringRequest packetMirroring. */
                    public packetMirroring: string;

                    /** PatchPacketMirroringRequest packetMirroringResource. */
                    public packetMirroringResource?: (google.cloud.compute.v1.IPacketMirroring|null);

                    /** PatchPacketMirroringRequest project. */
                    public project: string;

                    /** PatchPacketMirroringRequest region. */
                    public region: string;

                    /** PatchPacketMirroringRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchPacketMirroringRequest): google.cloud.compute.v1.PatchPacketMirroringRequest;

                    /**
                     * Encodes the specified PatchPacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchPacketMirroringRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchPacketMirroringRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchPacketMirroringRequest;

                    /**
                     * Decodes a PatchPacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchPacketMirroringRequest;

                    /**
                     * Verifies a PatchPacketMirroringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchPacketMirroringRequest;

                    /**
                     * Creates a plain object from a PatchPacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message PatchPacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchPacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPacketMirroringRuleNetworkFirewallPolicyRequest. */
                interface IPatchPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPacketMirroringRuleNetworkFirewallPolicyRequest. */
                class PatchPacketMirroringRuleNetworkFirewallPolicyRequest implements IPatchPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchPacketMirroringRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPacketMirroringRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPacketMirroringRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchPacketMirroringRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPacketMirroringRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPacketMirroringRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPerInstanceConfigsInstanceGroupManagerRequest. */
                interface IPatchPerInstanceConfigsInstanceGroupManagerRequest {

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersPatchPerInstanceConfigsReqResource */
                    instanceGroupManagersPatchPerInstanceConfigsReqResource?: (google.cloud.compute.v1.IInstanceGroupManagersPatchPerInstanceConfigsReq|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchPerInstanceConfigsInstanceGroupManagerRequest. */
                class PatchPerInstanceConfigsInstanceGroupManagerRequest implements IPatchPerInstanceConfigsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new PatchPerInstanceConfigsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchPerInstanceConfigsInstanceGroupManagerRequest);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersPatchPerInstanceConfigsReqResource. */
                    public instanceGroupManagersPatchPerInstanceConfigsReqResource?: (google.cloud.compute.v1.IInstanceGroupManagersPatchPerInstanceConfigsReq|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchPerInstanceConfigsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPerInstanceConfigsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchPerInstanceConfigsInstanceGroupManagerRequest): google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified PatchPerInstanceConfigsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchPerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchPerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPerInstanceConfigsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchPerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchPerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Decodes a PatchPerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Verifies a PatchPerInstanceConfigsInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPerInstanceConfigsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPerInstanceConfigsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a PatchPerInstanceConfigsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message PatchPerInstanceConfigsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPerInstanceConfigsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPerInstanceConfigsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest. */
                interface IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerPatchInstanceConfigReqResource */
                    regionInstanceGroupManagerPatchInstanceConfigReqResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagerPatchInstanceConfigReq|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest. */
                class PatchPerInstanceConfigsRegionInstanceGroupManagerRequest implements IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new PatchPerInstanceConfigsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerPatchInstanceConfigReqResource. */
                    public regionInstanceGroupManagerPatchInstanceConfigReqResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagerPatchInstanceConfigReq|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPerInstanceConfigsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPerInstanceConfigsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest): google.cloud.compute.v1.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPerInstanceConfigsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPublicAdvertisedPrefixeRequest. */
                interface IPatchPublicAdvertisedPrefixeRequest {

                    /** PatchPublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** PatchPublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);

                    /** PatchPublicAdvertisedPrefixeRequest publicAdvertisedPrefixResource */
                    publicAdvertisedPrefixResource?: (google.cloud.compute.v1.IPublicAdvertisedPrefix|null);

                    /** PatchPublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPublicAdvertisedPrefixeRequest. */
                class PatchPublicAdvertisedPrefixeRequest implements IPatchPublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new PatchPublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchPublicAdvertisedPrefixeRequest);

                    /** PatchPublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** PatchPublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /** PatchPublicAdvertisedPrefixeRequest publicAdvertisedPrefixResource. */
                    public publicAdvertisedPrefixResource?: (google.cloud.compute.v1.IPublicAdvertisedPrefix|null);

                    /** PatchPublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchPublicAdvertisedPrefixeRequest): google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified PatchPublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message PatchPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message PatchPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes a PatchPublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies a PatchPublicAdvertisedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from a PatchPublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message PatchPublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPublicDelegatedPrefixeRequest. */
                interface IPatchPublicDelegatedPrefixeRequest {

                    /** PatchPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** PatchPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** PatchPublicDelegatedPrefixeRequest publicDelegatedPrefixResource */
                    publicDelegatedPrefixResource?: (google.cloud.compute.v1.IPublicDelegatedPrefix|null);

                    /** PatchPublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** PatchPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPublicDelegatedPrefixeRequest. */
                class PatchPublicDelegatedPrefixeRequest implements IPatchPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new PatchPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchPublicDelegatedPrefixeRequest);

                    /** PatchPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** PatchPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** PatchPublicDelegatedPrefixeRequest publicDelegatedPrefixResource. */
                    public publicDelegatedPrefixResource?: (google.cloud.compute.v1.IPublicDelegatedPrefix|null);

                    /** PatchPublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** PatchPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchPublicDelegatedPrefixeRequest): google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified PatchPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message PatchPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message PatchPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a PatchPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a PatchPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a PatchPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message PatchPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionAutoscalerRequest. */
                interface IPatchRegionAutoscalerRequest {

                    /** PatchRegionAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** PatchRegionAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** PatchRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** PatchRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** PatchRegionAutoscalerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionAutoscalerRequest. */
                class PatchRegionAutoscalerRequest implements IPatchRegionAutoscalerRequest {

                    /**
                     * Constructs a new PatchRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionAutoscalerRequest);

                    /** PatchRegionAutoscalerRequest autoscaler. */
                    public autoscaler?: (string|null);

                    /** PatchRegionAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** PatchRegionAutoscalerRequest project. */
                    public project: string;

                    /** PatchRegionAutoscalerRequest region. */
                    public region: string;

                    /** PatchRegionAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionAutoscalerRequest): google.cloud.compute.v1.PatchRegionAutoscalerRequest;

                    /**
                     * Encodes the specified PatchRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionAutoscalerRequest.verify|verify} messages.
                     * @param message PatchRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionAutoscalerRequest.verify|verify} messages.
                     * @param message PatchRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionAutoscalerRequest;

                    /**
                     * Decodes a PatchRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionAutoscalerRequest;

                    /**
                     * Verifies a PatchRegionAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from a PatchRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionBackendServiceRequest. */
                interface IPatchRegionBackendServiceRequest {

                    /** PatchRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** PatchRegionBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** PatchRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** PatchRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** PatchRegionBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionBackendServiceRequest. */
                class PatchRegionBackendServiceRequest implements IPatchRegionBackendServiceRequest {

                    /**
                     * Constructs a new PatchRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionBackendServiceRequest);

                    /** PatchRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** PatchRegionBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** PatchRegionBackendServiceRequest project. */
                    public project: string;

                    /** PatchRegionBackendServiceRequest region. */
                    public region: string;

                    /** PatchRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionBackendServiceRequest): google.cloud.compute.v1.PatchRegionBackendServiceRequest;

                    /**
                     * Encodes the specified PatchRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionBackendServiceRequest.verify|verify} messages.
                     * @param message PatchRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionBackendServiceRequest.verify|verify} messages.
                     * @param message PatchRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionBackendServiceRequest;

                    /**
                     * Decodes a PatchRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionBackendServiceRequest;

                    /**
                     * Verifies a PatchRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a PatchRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionCompositeHealthCheckRequest. */
                interface IPatchRegionCompositeHealthCheckRequest {

                    /** PatchRegionCompositeHealthCheckRequest compositeHealthCheck */
                    compositeHealthCheck?: (string|null);

                    /** PatchRegionCompositeHealthCheckRequest compositeHealthCheckResource */
                    compositeHealthCheckResource?: (google.cloud.compute.v1.ICompositeHealthCheck|null);

                    /** PatchRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** PatchRegionCompositeHealthCheckRequest region */
                    region?: (string|null);

                    /** PatchRegionCompositeHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionCompositeHealthCheckRequest. */
                class PatchRegionCompositeHealthCheckRequest implements IPatchRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new PatchRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionCompositeHealthCheckRequest);

                    /** PatchRegionCompositeHealthCheckRequest compositeHealthCheck. */
                    public compositeHealthCheck: string;

                    /** PatchRegionCompositeHealthCheckRequest compositeHealthCheckResource. */
                    public compositeHealthCheckResource?: (google.cloud.compute.v1.ICompositeHealthCheck|null);

                    /** PatchRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** PatchRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /** PatchRegionCompositeHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionCompositeHealthCheckRequest): google.cloud.compute.v1.PatchRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified PatchRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message PatchRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message PatchRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes a PatchRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies a PatchRegionCompositeHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from a PatchRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionHealthAggregationPolicyRequest. */
                interface IPatchRegionHealthAggregationPolicyRequest {

                    /** PatchRegionHealthAggregationPolicyRequest healthAggregationPolicy */
                    healthAggregationPolicy?: (string|null);

                    /** PatchRegionHealthAggregationPolicyRequest healthAggregationPolicyResource */
                    healthAggregationPolicyResource?: (google.cloud.compute.v1.IHealthAggregationPolicy|null);

                    /** PatchRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionHealthAggregationPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionHealthAggregationPolicyRequest. */
                class PatchRegionHealthAggregationPolicyRequest implements IPatchRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new PatchRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionHealthAggregationPolicyRequest);

                    /** PatchRegionHealthAggregationPolicyRequest healthAggregationPolicy. */
                    public healthAggregationPolicy: string;

                    /** PatchRegionHealthAggregationPolicyRequest healthAggregationPolicyResource. */
                    public healthAggregationPolicyResource?: (google.cloud.compute.v1.IHealthAggregationPolicy|null);

                    /** PatchRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** PatchRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /** PatchRegionHealthAggregationPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionHealthAggregationPolicyRequest): google.cloud.compute.v1.PatchRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes a PatchRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies a PatchRegionHealthAggregationPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionHealthCheckRequest. */
                interface IPatchRegionHealthCheckRequest {

                    /** PatchRegionHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** PatchRegionHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** PatchRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** PatchRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** PatchRegionHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionHealthCheckRequest. */
                class PatchRegionHealthCheckRequest implements IPatchRegionHealthCheckRequest {

                    /**
                     * Constructs a new PatchRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionHealthCheckRequest);

                    /** PatchRegionHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** PatchRegionHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** PatchRegionHealthCheckRequest project. */
                    public project: string;

                    /** PatchRegionHealthCheckRequest region. */
                    public region: string;

                    /** PatchRegionHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionHealthCheckRequest): google.cloud.compute.v1.PatchRegionHealthCheckRequest;

                    /**
                     * Encodes the specified PatchRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionHealthCheckRequest.verify|verify} messages.
                     * @param message PatchRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionHealthCheckRequest.verify|verify} messages.
                     * @param message PatchRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionHealthCheckRequest;

                    /**
                     * Decodes a PatchRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionHealthCheckRequest;

                    /**
                     * Verifies a PatchRegionHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from a PatchRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionHealthCheckServiceRequest. */
                interface IPatchRegionHealthCheckServiceRequest {

                    /** PatchRegionHealthCheckServiceRequest healthCheckService */
                    healthCheckService?: (string|null);

                    /** PatchRegionHealthCheckServiceRequest healthCheckServiceResource */
                    healthCheckServiceResource?: (google.cloud.compute.v1.IHealthCheckService|null);

                    /** PatchRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** PatchRegionHealthCheckServiceRequest region */
                    region?: (string|null);

                    /** PatchRegionHealthCheckServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionHealthCheckServiceRequest. */
                class PatchRegionHealthCheckServiceRequest implements IPatchRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new PatchRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionHealthCheckServiceRequest);

                    /** PatchRegionHealthCheckServiceRequest healthCheckService. */
                    public healthCheckService: string;

                    /** PatchRegionHealthCheckServiceRequest healthCheckServiceResource. */
                    public healthCheckServiceResource?: (google.cloud.compute.v1.IHealthCheckService|null);

                    /** PatchRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** PatchRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /** PatchRegionHealthCheckServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionHealthCheckServiceRequest): google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified PatchRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message PatchRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message PatchRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest;

                    /**
                     * Decodes a PatchRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest;

                    /**
                     * Verifies a PatchRegionHealthCheckServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from a PatchRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionHealthSourceRequest. */
                interface IPatchRegionHealthSourceRequest {

                    /** PatchRegionHealthSourceRequest healthSource */
                    healthSource?: (string|null);

                    /** PatchRegionHealthSourceRequest healthSourceResource */
                    healthSourceResource?: (google.cloud.compute.v1.IHealthSource|null);

                    /** PatchRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** PatchRegionHealthSourceRequest region */
                    region?: (string|null);

                    /** PatchRegionHealthSourceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionHealthSourceRequest. */
                class PatchRegionHealthSourceRequest implements IPatchRegionHealthSourceRequest {

                    /**
                     * Constructs a new PatchRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionHealthSourceRequest);

                    /** PatchRegionHealthSourceRequest healthSource. */
                    public healthSource: string;

                    /** PatchRegionHealthSourceRequest healthSourceResource. */
                    public healthSourceResource?: (google.cloud.compute.v1.IHealthSource|null);

                    /** PatchRegionHealthSourceRequest project. */
                    public project: string;

                    /** PatchRegionHealthSourceRequest region. */
                    public region: string;

                    /** PatchRegionHealthSourceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionHealthSourceRequest): google.cloud.compute.v1.PatchRegionHealthSourceRequest;

                    /**
                     * Encodes the specified PatchRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionHealthSourceRequest.verify|verify} messages.
                     * @param message PatchRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionHealthSourceRequest.verify|verify} messages.
                     * @param message PatchRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionHealthSourceRequest;

                    /**
                     * Decodes a PatchRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionHealthSourceRequest;

                    /**
                     * Verifies a PatchRegionHealthSourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from a PatchRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionInstanceGroupManagerRequest. */
                interface IPatchRegionInstanceGroupManagerRequest {

                    /** PatchRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** PatchRegionInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1.IInstanceGroupManager|null);

                    /** PatchRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** PatchRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** PatchRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionInstanceGroupManagerRequest. */
                class PatchRegionInstanceGroupManagerRequest implements IPatchRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new PatchRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionInstanceGroupManagerRequest);

                    /** PatchRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** PatchRegionInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1.IInstanceGroupManager|null);

                    /** PatchRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** PatchRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** PatchRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionInstanceGroupManagerRequest): google.cloud.compute.v1.PatchRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified PatchRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a PatchRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a PatchRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a PatchRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionNetworkFirewallPolicyRequest. */
                interface IPatchRegionNetworkFirewallPolicyRequest {

                    /** PatchRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchRegionNetworkFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** PatchRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionNetworkFirewallPolicyRequest. */
                class PatchRegionNetworkFirewallPolicyRequest implements IPatchRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionNetworkFirewallPolicyRequest);

                    /** PatchRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchRegionNetworkFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1.IFirewallPolicy|null);

                    /** PatchRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** PatchRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionSecurityPolicyRequest. */
                interface IPatchRegionSecurityPolicyRequest {

                    /** PatchRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchRegionSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /** PatchRegionSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchRegionSecurityPolicyRequest. */
                class PatchRegionSecurityPolicyRequest implements IPatchRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionSecurityPolicyRequest);

                    /** PatchRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** PatchRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** PatchRegionSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchRegionSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /** PatchRegionSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionSecurityPolicyRequest): google.cloud.compute.v1.PatchRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionSecurityPolicyRequest;

                    /**
                     * Decodes a PatchRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionSecurityPolicyRequest;

                    /**
                     * Verifies a PatchRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionSslPolicyRequest. */
                interface IPatchRegionSslPolicyRequest {

                    /** PatchRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);

                    /** PatchRegionSslPolicyRequest sslPolicyResource */
                    sslPolicyResource?: (google.cloud.compute.v1.ISslPolicy|null);
                }

                /** Represents a PatchRegionSslPolicyRequest. */
                class PatchRegionSslPolicyRequest implements IPatchRegionSslPolicyRequest {

                    /**
                     * Constructs a new PatchRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionSslPolicyRequest);

                    /** PatchRegionSslPolicyRequest project. */
                    public project: string;

                    /** PatchRegionSslPolicyRequest region. */
                    public region: string;

                    /** PatchRegionSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /** PatchRegionSslPolicyRequest sslPolicyResource. */
                    public sslPolicyResource?: (google.cloud.compute.v1.ISslPolicy|null);

                    /**
                     * Creates a new PatchRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionSslPolicyRequest): google.cloud.compute.v1.PatchRegionSslPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionSslPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionSslPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionSslPolicyRequest;

                    /**
                     * Decodes a PatchRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionSslPolicyRequest;

                    /**
                     * Verifies a PatchRegionSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionTargetHttpsProxyRequest. */
                interface IPatchRegionTargetHttpsProxyRequest {

                    /** PatchRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest targetHttpsProxyResource */
                    targetHttpsProxyResource?: (google.cloud.compute.v1.ITargetHttpsProxy|null);
                }

                /** Represents a PatchRegionTargetHttpsProxyRequest. */
                class PatchRegionTargetHttpsProxyRequest implements IPatchRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new PatchRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionTargetHttpsProxyRequest);

                    /** PatchRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** PatchRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** PatchRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /** PatchRegionTargetHttpsProxyRequest targetHttpsProxyResource. */
                    public targetHttpsProxyResource?: (google.cloud.compute.v1.ITargetHttpsProxy|null);

                    /**
                     * Creates a new PatchRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionTargetHttpsProxyRequest): google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified PatchRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message PatchRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message PatchRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a PatchRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a PatchRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a PatchRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionUrlMapRequest. */
                interface IPatchRegionUrlMapRequest {

                    /** PatchRegionUrlMapRequest project */
                    project?: (string|null);

                    /** PatchRegionUrlMapRequest region */
                    region?: (string|null);

                    /** PatchRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** PatchRegionUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);
                }

                /** Represents a PatchRegionUrlMapRequest. */
                class PatchRegionUrlMapRequest implements IPatchRegionUrlMapRequest {

                    /**
                     * Constructs a new PatchRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRegionUrlMapRequest);

                    /** PatchRegionUrlMapRequest project. */
                    public project: string;

                    /** PatchRegionUrlMapRequest region. */
                    public region: string;

                    /** PatchRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** PatchRegionUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);

                    /**
                     * Creates a new PatchRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRegionUrlMapRequest): google.cloud.compute.v1.PatchRegionUrlMapRequest;

                    /**
                     * Encodes the specified PatchRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRegionUrlMapRequest.verify|verify} messages.
                     * @param message PatchRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRegionUrlMapRequest.verify|verify} messages.
                     * @param message PatchRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRegionUrlMapRequest;

                    /**
                     * Decodes a PatchRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRegionUrlMapRequest;

                    /**
                     * Verifies a PatchRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a PatchRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchResourcePolicyRequest. */
                interface IPatchResourcePolicyRequest {

                    /** PatchResourcePolicyRequest project */
                    project?: (string|null);

                    /** PatchResourcePolicyRequest region */
                    region?: (string|null);

                    /** PatchResourcePolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchResourcePolicyRequest resourcePolicy */
                    resourcePolicy?: (string|null);

                    /** PatchResourcePolicyRequest resourcePolicyResource */
                    resourcePolicyResource?: (google.cloud.compute.v1.IResourcePolicy|null);

                    /** PatchResourcePolicyRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchResourcePolicyRequest. */
                class PatchResourcePolicyRequest implements IPatchResourcePolicyRequest {

                    /**
                     * Constructs a new PatchResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchResourcePolicyRequest);

                    /** PatchResourcePolicyRequest project. */
                    public project: string;

                    /** PatchResourcePolicyRequest region. */
                    public region: string;

                    /** PatchResourcePolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchResourcePolicyRequest resourcePolicy. */
                    public resourcePolicy: string;

                    /** PatchResourcePolicyRequest resourcePolicyResource. */
                    public resourcePolicyResource?: (google.cloud.compute.v1.IResourcePolicy|null);

                    /** PatchResourcePolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchResourcePolicyRequest): google.cloud.compute.v1.PatchResourcePolicyRequest;

                    /**
                     * Encodes the specified PatchResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchResourcePolicyRequest.verify|verify} messages.
                     * @param message PatchResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchResourcePolicyRequest.verify|verify} messages.
                     * @param message PatchResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchResourcePolicyRequest;

                    /**
                     * Decodes a PatchResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchResourcePolicyRequest;

                    /**
                     * Verifies a PatchResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchResourcePolicyRequest;

                    /**
                     * Creates a plain object from a PatchResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRoutePolicyRouterRequest. */
                interface IPatchRoutePolicyRouterRequest {

                    /** PatchRoutePolicyRouterRequest project */
                    project?: (string|null);

                    /** PatchRoutePolicyRouterRequest region */
                    region?: (string|null);

                    /** PatchRoutePolicyRouterRequest requestId */
                    requestId?: (string|null);

                    /** PatchRoutePolicyRouterRequest routePolicyResource */
                    routePolicyResource?: (google.cloud.compute.v1.IRoutePolicy|null);

                    /** PatchRoutePolicyRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a PatchRoutePolicyRouterRequest. */
                class PatchRoutePolicyRouterRequest implements IPatchRoutePolicyRouterRequest {

                    /**
                     * Constructs a new PatchRoutePolicyRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRoutePolicyRouterRequest);

                    /** PatchRoutePolicyRouterRequest project. */
                    public project: string;

                    /** PatchRoutePolicyRouterRequest region. */
                    public region: string;

                    /** PatchRoutePolicyRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRoutePolicyRouterRequest routePolicyResource. */
                    public routePolicyResource?: (google.cloud.compute.v1.IRoutePolicy|null);

                    /** PatchRoutePolicyRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new PatchRoutePolicyRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRoutePolicyRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRoutePolicyRouterRequest): google.cloud.compute.v1.PatchRoutePolicyRouterRequest;

                    /**
                     * Encodes the specified PatchRoutePolicyRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message PatchRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRoutePolicyRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message PatchRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRoutePolicyRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRoutePolicyRouterRequest;

                    /**
                     * Decodes a PatchRoutePolicyRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRoutePolicyRouterRequest;

                    /**
                     * Verifies a PatchRoutePolicyRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRoutePolicyRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRoutePolicyRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRoutePolicyRouterRequest;

                    /**
                     * Creates a plain object from a PatchRoutePolicyRouterRequest message. Also converts values to other types if specified.
                     * @param message PatchRoutePolicyRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRoutePolicyRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRoutePolicyRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRoutePolicyRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRouterRequest. */
                interface IPatchRouterRequest {

                    /** PatchRouterRequest project */
                    project?: (string|null);

                    /** PatchRouterRequest region */
                    region?: (string|null);

                    /** PatchRouterRequest requestId */
                    requestId?: (string|null);

                    /** PatchRouterRequest router */
                    router?: (string|null);

                    /** PatchRouterRequest routerResource */
                    routerResource?: (google.cloud.compute.v1.IRouter|null);
                }

                /** Represents a PatchRouterRequest. */
                class PatchRouterRequest implements IPatchRouterRequest {

                    /**
                     * Constructs a new PatchRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRouterRequest);

                    /** PatchRouterRequest project. */
                    public project: string;

                    /** PatchRouterRequest region. */
                    public region: string;

                    /** PatchRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRouterRequest router. */
                    public router: string;

                    /** PatchRouterRequest routerResource. */
                    public routerResource?: (google.cloud.compute.v1.IRouter|null);

                    /**
                     * Creates a new PatchRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRouterRequest): google.cloud.compute.v1.PatchRouterRequest;

                    /**
                     * Encodes the specified PatchRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRouterRequest.verify|verify} messages.
                     * @param message PatchRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRouterRequest.verify|verify} messages.
                     * @param message PatchRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRouterRequest;

                    /**
                     * Decodes a PatchRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRouterRequest;

                    /**
                     * Verifies a PatchRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRouterRequest;

                    /**
                     * Creates a plain object from a PatchRouterRequest message. Also converts values to other types if specified.
                     * @param message PatchRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleFirewallPolicyRequest. */
                interface IPatchRuleFirewallPolicyRequest {

                    /** PatchRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchRuleFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** PatchRuleFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRuleFirewallPolicyRequest. */
                class PatchRuleFirewallPolicyRequest implements IPatchRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRuleFirewallPolicyRequest);

                    /** PatchRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchRuleFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** PatchRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRuleFirewallPolicyRequest): google.cloud.compute.v1.PatchRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRuleFirewallPolicyRequest;

                    /**
                     * Decodes a PatchRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRuleFirewallPolicyRequest;

                    /**
                     * Verifies a PatchRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleNetworkFirewallPolicyRequest. */
                interface IPatchRuleNetworkFirewallPolicyRequest {

                    /** PatchRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** PatchRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRuleNetworkFirewallPolicyRequest. */
                class PatchRuleNetworkFirewallPolicyRequest implements IPatchRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRuleNetworkFirewallPolicyRequest);

                    /** PatchRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** PatchRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleOrganizationSecurityPolicyRequest. */
                interface IPatchRuleOrganizationSecurityPolicyRequest {

                    /** PatchRuleOrganizationSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);
                }

                /** Represents a PatchRuleOrganizationSecurityPolicyRequest. */
                class PatchRuleOrganizationSecurityPolicyRequest implements IPatchRuleOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchRuleOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRuleOrganizationSecurityPolicyRequest);

                    /** PatchRuleOrganizationSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchRuleOrganizationSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /**
                     * Creates a new PatchRuleOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRuleOrganizationSecurityPolicyRequest): google.cloud.compute.v1.PatchRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a PatchRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a PatchRuleOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRuleOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleRegionNetworkFirewallPolicyRequest. */
                interface IPatchRuleRegionNetworkFirewallPolicyRequest {

                    /** PatchRuleRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRuleRegionNetworkFirewallPolicyRequest. */
                class PatchRuleRegionNetworkFirewallPolicyRequest implements IPatchRuleRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchRuleRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRuleRegionNetworkFirewallPolicyRequest);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchRuleRegionNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1.IFirewallPolicyRule|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchRuleRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** PatchRuleRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRuleRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRuleRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchRuleRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleRegionSecurityPolicyRequest. */
                interface IPatchRuleRegionSecurityPolicyRequest {

                    /** PatchRuleRegionSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /** PatchRuleRegionSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents a PatchRuleRegionSecurityPolicyRequest. */
                class PatchRuleRegionSecurityPolicyRequest implements IPatchRuleRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchRuleRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRuleRegionSecurityPolicyRequest);

                    /** PatchRuleRegionSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** PatchRuleRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** PatchRuleRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchRuleRegionSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /** PatchRuleRegionSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new PatchRuleRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRuleRegionSecurityPolicyRequest): google.cloud.compute.v1.PatchRuleRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRuleRegionSecurityPolicyRequest;

                    /**
                     * Decodes a PatchRuleRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRuleRegionSecurityPolicyRequest;

                    /**
                     * Verifies a PatchRuleRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRuleRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRuleRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleSecurityPolicyRequest. */
                interface IPatchRuleSecurityPolicyRequest {

                    /** PatchRuleSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleSecurityPolicyRequest project */
                    project?: (string|null);

                    /** PatchRuleSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchRuleSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /** PatchRuleSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchRuleSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents a PatchRuleSecurityPolicyRequest. */
                class PatchRuleSecurityPolicyRequest implements IPatchRuleSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchRuleSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchRuleSecurityPolicyRequest);

                    /** PatchRuleSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleSecurityPolicyRequest project. */
                    public project: string;

                    /** PatchRuleSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchRuleSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1.ISecurityPolicyRule|null);

                    /** PatchRuleSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchRuleSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new PatchRuleSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchRuleSecurityPolicyRequest): google.cloud.compute.v1.PatchRuleSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchRuleSecurityPolicyRequest;

                    /**
                     * Decodes a PatchRuleSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchRuleSecurityPolicyRequest;

                    /**
                     * Verifies a PatchRuleSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchRuleSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchRuleSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchSecurityPolicyRequest. */
                interface IPatchSecurityPolicyRequest {

                    /** PatchSecurityPolicyRequest project */
                    project?: (string|null);

                    /** PatchSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /** PatchSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchSecurityPolicyRequest. */
                class PatchSecurityPolicyRequest implements IPatchSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchSecurityPolicyRequest);

                    /** PatchSecurityPolicyRequest project. */
                    public project: string;

                    /** PatchSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1.ISecurityPolicy|null);

                    /** PatchSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchSecurityPolicyRequest): google.cloud.compute.v1.PatchSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchSecurityPolicyRequest;

                    /**
                     * Decodes a PatchSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchSecurityPolicyRequest;

                    /**
                     * Verifies a PatchSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchServiceAttachmentRequest. */
                interface IPatchServiceAttachmentRequest {

                    /** PatchServiceAttachmentRequest project */
                    project?: (string|null);

                    /** PatchServiceAttachmentRequest region */
                    region?: (string|null);

                    /** PatchServiceAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** PatchServiceAttachmentRequest serviceAttachment */
                    serviceAttachment?: (string|null);

                    /** PatchServiceAttachmentRequest serviceAttachmentResource */
                    serviceAttachmentResource?: (google.cloud.compute.v1.IServiceAttachment|null);
                }

                /** Represents a PatchServiceAttachmentRequest. */
                class PatchServiceAttachmentRequest implements IPatchServiceAttachmentRequest {

                    /**
                     * Constructs a new PatchServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchServiceAttachmentRequest);

                    /** PatchServiceAttachmentRequest project. */
                    public project: string;

                    /** PatchServiceAttachmentRequest region. */
                    public region: string;

                    /** PatchServiceAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchServiceAttachmentRequest serviceAttachment. */
                    public serviceAttachment: string;

                    /** PatchServiceAttachmentRequest serviceAttachmentResource. */
                    public serviceAttachmentResource?: (google.cloud.compute.v1.IServiceAttachment|null);

                    /**
                     * Creates a new PatchServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchServiceAttachmentRequest): google.cloud.compute.v1.PatchServiceAttachmentRequest;

                    /**
                     * Encodes the specified PatchServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchServiceAttachmentRequest.verify|verify} messages.
                     * @param message PatchServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchServiceAttachmentRequest.verify|verify} messages.
                     * @param message PatchServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchServiceAttachmentRequest;

                    /**
                     * Decodes a PatchServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchServiceAttachmentRequest;

                    /**
                     * Verifies a PatchServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a PatchServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message PatchServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchSnapshotSettingRequest. */
                interface IPatchSnapshotSettingRequest {

                    /** PatchSnapshotSettingRequest project */
                    project?: (string|null);

                    /** PatchSnapshotSettingRequest requestId */
                    requestId?: (string|null);

                    /** PatchSnapshotSettingRequest snapshotSettingsResource */
                    snapshotSettingsResource?: (google.cloud.compute.v1.ISnapshotSettings|null);

                    /** PatchSnapshotSettingRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchSnapshotSettingRequest. */
                class PatchSnapshotSettingRequest implements IPatchSnapshotSettingRequest {

                    /**
                     * Constructs a new PatchSnapshotSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchSnapshotSettingRequest);

                    /** PatchSnapshotSettingRequest project. */
                    public project: string;

                    /** PatchSnapshotSettingRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchSnapshotSettingRequest snapshotSettingsResource. */
                    public snapshotSettingsResource?: (google.cloud.compute.v1.ISnapshotSettings|null);

                    /** PatchSnapshotSettingRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchSnapshotSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchSnapshotSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchSnapshotSettingRequest): google.cloud.compute.v1.PatchSnapshotSettingRequest;

                    /**
                     * Encodes the specified PatchSnapshotSettingRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchSnapshotSettingRequest.verify|verify} messages.
                     * @param message PatchSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchSnapshotSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchSnapshotSettingRequest.verify|verify} messages.
                     * @param message PatchSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchSnapshotSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchSnapshotSettingRequest;

                    /**
                     * Decodes a PatchSnapshotSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchSnapshotSettingRequest;

                    /**
                     * Verifies a PatchSnapshotSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchSnapshotSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchSnapshotSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchSnapshotSettingRequest;

                    /**
                     * Creates a plain object from a PatchSnapshotSettingRequest message. Also converts values to other types if specified.
                     * @param message PatchSnapshotSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchSnapshotSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchSnapshotSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchSnapshotSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchSslPolicyRequest. */
                interface IPatchSslPolicyRequest {

                    /** PatchSslPolicyRequest project */
                    project?: (string|null);

                    /** PatchSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);

                    /** PatchSslPolicyRequest sslPolicyResource */
                    sslPolicyResource?: (google.cloud.compute.v1.ISslPolicy|null);
                }

                /** Represents a PatchSslPolicyRequest. */
                class PatchSslPolicyRequest implements IPatchSslPolicyRequest {

                    /**
                     * Constructs a new PatchSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchSslPolicyRequest);

                    /** PatchSslPolicyRequest project. */
                    public project: string;

                    /** PatchSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /** PatchSslPolicyRequest sslPolicyResource. */
                    public sslPolicyResource?: (google.cloud.compute.v1.ISslPolicy|null);

                    /**
                     * Creates a new PatchSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchSslPolicyRequest): google.cloud.compute.v1.PatchSslPolicyRequest;

                    /**
                     * Encodes the specified PatchSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchSslPolicyRequest.verify|verify} messages.
                     * @param message PatchSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchSslPolicyRequest.verify|verify} messages.
                     * @param message PatchSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchSslPolicyRequest;

                    /**
                     * Decodes a PatchSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchSslPolicyRequest;

                    /**
                     * Verifies a PatchSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchSslPolicyRequest;

                    /**
                     * Creates a plain object from a PatchSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchSubnetworkRequest. */
                interface IPatchSubnetworkRequest {

                    /** PatchSubnetworkRequest drainTimeoutSeconds */
                    drainTimeoutSeconds?: (number|null);

                    /** PatchSubnetworkRequest project */
                    project?: (string|null);

                    /** PatchSubnetworkRequest region */
                    region?: (string|null);

                    /** PatchSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** PatchSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);

                    /** PatchSubnetworkRequest subnetworkResource */
                    subnetworkResource?: (google.cloud.compute.v1.ISubnetwork|null);
                }

                /** Represents a PatchSubnetworkRequest. */
                class PatchSubnetworkRequest implements IPatchSubnetworkRequest {

                    /**
                     * Constructs a new PatchSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchSubnetworkRequest);

                    /** PatchSubnetworkRequest drainTimeoutSeconds. */
                    public drainTimeoutSeconds?: (number|null);

                    /** PatchSubnetworkRequest project. */
                    public project: string;

                    /** PatchSubnetworkRequest region. */
                    public region: string;

                    /** PatchSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /** PatchSubnetworkRequest subnetworkResource. */
                    public subnetworkResource?: (google.cloud.compute.v1.ISubnetwork|null);

                    /**
                     * Creates a new PatchSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchSubnetworkRequest): google.cloud.compute.v1.PatchSubnetworkRequest;

                    /**
                     * Encodes the specified PatchSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchSubnetworkRequest.verify|verify} messages.
                     * @param message PatchSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchSubnetworkRequest.verify|verify} messages.
                     * @param message PatchSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchSubnetworkRequest;

                    /**
                     * Decodes a PatchSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchSubnetworkRequest;

                    /**
                     * Verifies a PatchSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchSubnetworkRequest;

                    /**
                     * Creates a plain object from a PatchSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message PatchSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchTargetGrpcProxyRequest. */
                interface IPatchTargetGrpcProxyRequest {

                    /** PatchTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** PatchTargetGrpcProxyRequest requestId */
                    requestId?: (string|null);

                    /** PatchTargetGrpcProxyRequest targetGrpcProxy */
                    targetGrpcProxy?: (string|null);

                    /** PatchTargetGrpcProxyRequest targetGrpcProxyResource */
                    targetGrpcProxyResource?: (google.cloud.compute.v1.ITargetGrpcProxy|null);
                }

                /** Represents a PatchTargetGrpcProxyRequest. */
                class PatchTargetGrpcProxyRequest implements IPatchTargetGrpcProxyRequest {

                    /**
                     * Constructs a new PatchTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchTargetGrpcProxyRequest);

                    /** PatchTargetGrpcProxyRequest project. */
                    public project: string;

                    /** PatchTargetGrpcProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchTargetGrpcProxyRequest targetGrpcProxy. */
                    public targetGrpcProxy: string;

                    /** PatchTargetGrpcProxyRequest targetGrpcProxyResource. */
                    public targetGrpcProxyResource?: (google.cloud.compute.v1.ITargetGrpcProxy|null);

                    /**
                     * Creates a new PatchTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchTargetGrpcProxyRequest): google.cloud.compute.v1.PatchTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified PatchTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message PatchTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message PatchTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchTargetGrpcProxyRequest;

                    /**
                     * Decodes a PatchTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchTargetGrpcProxyRequest;

                    /**
                     * Verifies a PatchTargetGrpcProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from a PatchTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message PatchTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchTargetHttpProxyRequest. */
                interface IPatchTargetHttpProxyRequest {

                    /** PatchTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** PatchTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** PatchTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);

                    /** PatchTargetHttpProxyRequest targetHttpProxyResource */
                    targetHttpProxyResource?: (google.cloud.compute.v1.ITargetHttpProxy|null);
                }

                /** Represents a PatchTargetHttpProxyRequest. */
                class PatchTargetHttpProxyRequest implements IPatchTargetHttpProxyRequest {

                    /**
                     * Constructs a new PatchTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchTargetHttpProxyRequest);

                    /** PatchTargetHttpProxyRequest project. */
                    public project: string;

                    /** PatchTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /** PatchTargetHttpProxyRequest targetHttpProxyResource. */
                    public targetHttpProxyResource?: (google.cloud.compute.v1.ITargetHttpProxy|null);

                    /**
                     * Creates a new PatchTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchTargetHttpProxyRequest): google.cloud.compute.v1.PatchTargetHttpProxyRequest;

                    /**
                     * Encodes the specified PatchTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchTargetHttpProxyRequest.verify|verify} messages.
                     * @param message PatchTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchTargetHttpProxyRequest.verify|verify} messages.
                     * @param message PatchTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchTargetHttpProxyRequest;

                    /**
                     * Decodes a PatchTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchTargetHttpProxyRequest;

                    /**
                     * Verifies a PatchTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a PatchTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message PatchTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchTargetHttpsProxyRequest. */
                interface IPatchTargetHttpsProxyRequest {

                    /** PatchTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** PatchTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** PatchTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);

                    /** PatchTargetHttpsProxyRequest targetHttpsProxyResource */
                    targetHttpsProxyResource?: (google.cloud.compute.v1.ITargetHttpsProxy|null);
                }

                /** Represents a PatchTargetHttpsProxyRequest. */
                class PatchTargetHttpsProxyRequest implements IPatchTargetHttpsProxyRequest {

                    /**
                     * Constructs a new PatchTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchTargetHttpsProxyRequest);

                    /** PatchTargetHttpsProxyRequest project. */
                    public project: string;

                    /** PatchTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /** PatchTargetHttpsProxyRequest targetHttpsProxyResource. */
                    public targetHttpsProxyResource?: (google.cloud.compute.v1.ITargetHttpsProxy|null);

                    /**
                     * Creates a new PatchTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchTargetHttpsProxyRequest): google.cloud.compute.v1.PatchTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified PatchTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message PatchTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message PatchTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchTargetHttpsProxyRequest;

                    /**
                     * Decodes a PatchTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchTargetHttpsProxyRequest;

                    /**
                     * Verifies a PatchTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a PatchTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message PatchTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchUrlMapRequest. */
                interface IPatchUrlMapRequest {

                    /** PatchUrlMapRequest project */
                    project?: (string|null);

                    /** PatchUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** PatchUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** PatchUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);
                }

                /** Represents a PatchUrlMapRequest. */
                class PatchUrlMapRequest implements IPatchUrlMapRequest {

                    /**
                     * Constructs a new PatchUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchUrlMapRequest);

                    /** PatchUrlMapRequest project. */
                    public project: string;

                    /** PatchUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** PatchUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);

                    /**
                     * Creates a new PatchUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchUrlMapRequest): google.cloud.compute.v1.PatchUrlMapRequest;

                    /**
                     * Encodes the specified PatchUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchUrlMapRequest.verify|verify} messages.
                     * @param message PatchUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchUrlMapRequest.verify|verify} messages.
                     * @param message PatchUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchUrlMapRequest;

                    /**
                     * Decodes a PatchUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchUrlMapRequest;

                    /**
                     * Verifies a PatchUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchUrlMapRequest;

                    /**
                     * Creates a plain object from a PatchUrlMapRequest message. Also converts values to other types if specified.
                     * @param message PatchUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchWireGroupRequest. */
                interface IPatchWireGroupRequest {

                    /** PatchWireGroupRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** PatchWireGroupRequest project */
                    project?: (string|null);

                    /** PatchWireGroupRequest requestId */
                    requestId?: (string|null);

                    /** PatchWireGroupRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchWireGroupRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** PatchWireGroupRequest wireGroup */
                    wireGroup?: (string|null);

                    /** PatchWireGroupRequest wireGroupResource */
                    wireGroupResource?: (google.cloud.compute.v1.IWireGroup|null);
                }

                /** Represents a PatchWireGroupRequest. */
                class PatchWireGroupRequest implements IPatchWireGroupRequest {

                    /**
                     * Constructs a new PatchWireGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPatchWireGroupRequest);

                    /** PatchWireGroupRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** PatchWireGroupRequest project. */
                    public project: string;

                    /** PatchWireGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchWireGroupRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchWireGroupRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /** PatchWireGroupRequest wireGroup. */
                    public wireGroup: string;

                    /** PatchWireGroupRequest wireGroupResource. */
                    public wireGroupResource?: (google.cloud.compute.v1.IWireGroup|null);

                    /**
                     * Creates a new PatchWireGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchWireGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPatchWireGroupRequest): google.cloud.compute.v1.PatchWireGroupRequest;

                    /**
                     * Encodes the specified PatchWireGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.PatchWireGroupRequest.verify|verify} messages.
                     * @param message PatchWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPatchWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchWireGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PatchWireGroupRequest.verify|verify} messages.
                     * @param message PatchWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPatchWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchWireGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PatchWireGroupRequest;

                    /**
                     * Decodes a PatchWireGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PatchWireGroupRequest;

                    /**
                     * Verifies a PatchWireGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchWireGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchWireGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PatchWireGroupRequest;

                    /**
                     * Creates a plain object from a PatchWireGroupRequest message. Also converts values to other types if specified.
                     * @param message PatchWireGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PatchWireGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchWireGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchWireGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PathMatcher. */
                interface IPathMatcher {

                    /** PathMatcher defaultCustomErrorResponsePolicy */
                    defaultCustomErrorResponsePolicy?: (google.cloud.compute.v1.ICustomErrorResponsePolicy|null);

                    /** PathMatcher defaultRouteAction */
                    defaultRouteAction?: (google.cloud.compute.v1.IHttpRouteAction|null);

                    /** PathMatcher defaultService */
                    defaultService?: (string|null);

                    /** PathMatcher defaultUrlRedirect */
                    defaultUrlRedirect?: (google.cloud.compute.v1.IHttpRedirectAction|null);

                    /** PathMatcher description */
                    description?: (string|null);

                    /** PathMatcher headerAction */
                    headerAction?: (google.cloud.compute.v1.IHttpHeaderAction|null);

                    /** PathMatcher name */
                    name?: (string|null);

                    /** PathMatcher pathRules */
                    pathRules?: (google.cloud.compute.v1.IPathRule[]|null);

                    /** PathMatcher routeRules */
                    routeRules?: (google.cloud.compute.v1.IHttpRouteRule[]|null);
                }

                /** Represents a PathMatcher. */
                class PathMatcher implements IPathMatcher {

                    /**
                     * Constructs a new PathMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPathMatcher);

                    /** PathMatcher defaultCustomErrorResponsePolicy. */
                    public defaultCustomErrorResponsePolicy?: (google.cloud.compute.v1.ICustomErrorResponsePolicy|null);

                    /** PathMatcher defaultRouteAction. */
                    public defaultRouteAction?: (google.cloud.compute.v1.IHttpRouteAction|null);

                    /** PathMatcher defaultService. */
                    public defaultService?: (string|null);

                    /** PathMatcher defaultUrlRedirect. */
                    public defaultUrlRedirect?: (google.cloud.compute.v1.IHttpRedirectAction|null);

                    /** PathMatcher description. */
                    public description?: (string|null);

                    /** PathMatcher headerAction. */
                    public headerAction?: (google.cloud.compute.v1.IHttpHeaderAction|null);

                    /** PathMatcher name. */
                    public name?: (string|null);

                    /** PathMatcher pathRules. */
                    public pathRules: google.cloud.compute.v1.IPathRule[];

                    /** PathMatcher routeRules. */
                    public routeRules: google.cloud.compute.v1.IHttpRouteRule[];

                    /**
                     * Creates a new PathMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PathMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPathMatcher): google.cloud.compute.v1.PathMatcher;

                    /**
                     * Encodes the specified PathMatcher message. Does not implicitly {@link google.cloud.compute.v1.PathMatcher.verify|verify} messages.
                     * @param message PathMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPathMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PathMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PathMatcher.verify|verify} messages.
                     * @param message PathMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPathMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PathMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PathMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PathMatcher;

                    /**
                     * Decodes a PathMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PathMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PathMatcher;

                    /**
                     * Verifies a PathMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PathMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PathMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PathMatcher;

                    /**
                     * Creates a plain object from a PathMatcher message. Also converts values to other types if specified.
                     * @param message PathMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PathMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PathMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PathMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PathRule. */
                interface IPathRule {

                    /** PathRule customErrorResponsePolicy */
                    customErrorResponsePolicy?: (google.cloud.compute.v1.ICustomErrorResponsePolicy|null);

                    /** PathRule paths */
                    paths?: (string[]|null);

                    /** PathRule routeAction */
                    routeAction?: (google.cloud.compute.v1.IHttpRouteAction|null);

                    /** PathRule service */
                    service?: (string|null);

                    /** PathRule urlRedirect */
                    urlRedirect?: (google.cloud.compute.v1.IHttpRedirectAction|null);
                }

                /** Represents a PathRule. */
                class PathRule implements IPathRule {

                    /**
                     * Constructs a new PathRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPathRule);

                    /** PathRule customErrorResponsePolicy. */
                    public customErrorResponsePolicy?: (google.cloud.compute.v1.ICustomErrorResponsePolicy|null);

                    /** PathRule paths. */
                    public paths: string[];

                    /** PathRule routeAction. */
                    public routeAction?: (google.cloud.compute.v1.IHttpRouteAction|null);

                    /** PathRule service. */
                    public service?: (string|null);

                    /** PathRule urlRedirect. */
                    public urlRedirect?: (google.cloud.compute.v1.IHttpRedirectAction|null);

                    /**
                     * Creates a new PathRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PathRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPathRule): google.cloud.compute.v1.PathRule;

                    /**
                     * Encodes the specified PathRule message. Does not implicitly {@link google.cloud.compute.v1.PathRule.verify|verify} messages.
                     * @param message PathRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPathRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PathRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PathRule.verify|verify} messages.
                     * @param message PathRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPathRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PathRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PathRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PathRule;

                    /**
                     * Decodes a PathRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PathRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PathRule;

                    /**
                     * Verifies a PathRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PathRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PathRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PathRule;

                    /**
                     * Creates a plain object from a PathRule message. Also converts values to other types if specified.
                     * @param message PathRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PathRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PathRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PathRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerInstanceConfig. */
                interface IPerInstanceConfig {

                    /** PerInstanceConfig fingerprint */
                    fingerprint?: (string|null);

                    /** PerInstanceConfig name */
                    name?: (string|null);

                    /** PerInstanceConfig preservedState */
                    preservedState?: (google.cloud.compute.v1.IPreservedState|null);

                    /** PerInstanceConfig status */
                    status?: (string|null);
                }

                /** Represents a PerInstanceConfig. */
                class PerInstanceConfig implements IPerInstanceConfig {

                    /**
                     * Constructs a new PerInstanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPerInstanceConfig);

                    /** PerInstanceConfig fingerprint. */
                    public fingerprint?: (string|null);

                    /** PerInstanceConfig name. */
                    public name?: (string|null);

                    /** PerInstanceConfig preservedState. */
                    public preservedState?: (google.cloud.compute.v1.IPreservedState|null);

                    /** PerInstanceConfig status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PerInstanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerInstanceConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPerInstanceConfig): google.cloud.compute.v1.PerInstanceConfig;

                    /**
                     * Encodes the specified PerInstanceConfig message. Does not implicitly {@link google.cloud.compute.v1.PerInstanceConfig.verify|verify} messages.
                     * @param message PerInstanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPerInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerInstanceConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PerInstanceConfig.verify|verify} messages.
                     * @param message PerInstanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPerInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerInstanceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerInstanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PerInstanceConfig;

                    /**
                     * Decodes a PerInstanceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerInstanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PerInstanceConfig;

                    /**
                     * Verifies a PerInstanceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerInstanceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerInstanceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PerInstanceConfig;

                    /**
                     * Creates a plain object from a PerInstanceConfig message. Also converts values to other types if specified.
                     * @param message PerInstanceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PerInstanceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerInstanceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerInstanceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PerInstanceConfig {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        APPLYING = 352003508,
                        DELETING = 528602024,
                        EFFECTIVE = 244201863,
                        NONE = 2402104,
                        UNAPPLIED = 483935140,
                        UNAPPLIED_DELETION = 313956873
                    }
                }

                /** Properties of a PerformMaintenanceInstanceRequest. */
                interface IPerformMaintenanceInstanceRequest {

                    /** PerformMaintenanceInstanceRequest instance */
                    instance?: (string|null);

                    /** PerformMaintenanceInstanceRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceInstanceRequest. */
                class PerformMaintenanceInstanceRequest implements IPerformMaintenanceInstanceRequest {

                    /**
                     * Constructs a new PerformMaintenanceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPerformMaintenanceInstanceRequest);

                    /** PerformMaintenanceInstanceRequest instance. */
                    public instance: string;

                    /** PerformMaintenanceInstanceRequest project. */
                    public project: string;

                    /** PerformMaintenanceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPerformMaintenanceInstanceRequest): google.cloud.compute.v1.PerformMaintenanceInstanceRequest;

                    /**
                     * Encodes the specified PerformMaintenanceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceInstanceRequest.verify|verify} messages.
                     * @param message PerformMaintenanceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPerformMaintenanceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceInstanceRequest.verify|verify} messages.
                     * @param message PerformMaintenanceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPerformMaintenanceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PerformMaintenanceInstanceRequest;

                    /**
                     * Decodes a PerformMaintenanceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PerformMaintenanceInstanceRequest;

                    /**
                     * Verifies a PerformMaintenanceInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PerformMaintenanceInstanceRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceInstanceRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PerformMaintenanceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerformMaintenanceNodeGroupRequest. */
                interface IPerformMaintenanceNodeGroupRequest {

                    /** PerformMaintenanceNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** PerformMaintenanceNodeGroupRequest nodeGroupsPerformMaintenanceRequestResource */
                    nodeGroupsPerformMaintenanceRequestResource?: (google.cloud.compute.v1.INodeGroupsPerformMaintenanceRequest|null);

                    /** PerformMaintenanceNodeGroupRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceNodeGroupRequest. */
                class PerformMaintenanceNodeGroupRequest implements IPerformMaintenanceNodeGroupRequest {

                    /**
                     * Constructs a new PerformMaintenanceNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPerformMaintenanceNodeGroupRequest);

                    /** PerformMaintenanceNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** PerformMaintenanceNodeGroupRequest nodeGroupsPerformMaintenanceRequestResource. */
                    public nodeGroupsPerformMaintenanceRequestResource?: (google.cloud.compute.v1.INodeGroupsPerformMaintenanceRequest|null);

                    /** PerformMaintenanceNodeGroupRequest project. */
                    public project: string;

                    /** PerformMaintenanceNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPerformMaintenanceNodeGroupRequest): google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest;

                    /**
                     * Encodes the specified PerformMaintenanceNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest.verify|verify} messages.
                     * @param message PerformMaintenanceNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPerformMaintenanceNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest.verify|verify} messages.
                     * @param message PerformMaintenanceNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPerformMaintenanceNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest;

                    /**
                     * Decodes a PerformMaintenanceNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest;

                    /**
                     * Verifies a PerformMaintenanceNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerformMaintenanceReservationBlockRequest. */
                interface IPerformMaintenanceReservationBlockRequest {

                    /** PerformMaintenanceReservationBlockRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest reservation */
                    reservation?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest reservationBlock */
                    reservationBlock?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest reservationsBlocksPerformMaintenanceRequestResource */
                    reservationsBlocksPerformMaintenanceRequestResource?: (google.cloud.compute.v1.IReservationsBlocksPerformMaintenanceRequest|null);

                    /** PerformMaintenanceReservationBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceReservationBlockRequest. */
                class PerformMaintenanceReservationBlockRequest implements IPerformMaintenanceReservationBlockRequest {

                    /**
                     * Constructs a new PerformMaintenanceReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPerformMaintenanceReservationBlockRequest);

                    /** PerformMaintenanceReservationBlockRequest project. */
                    public project: string;

                    /** PerformMaintenanceReservationBlockRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest reservation. */
                    public reservation: string;

                    /** PerformMaintenanceReservationBlockRequest reservationBlock. */
                    public reservationBlock: string;

                    /** PerformMaintenanceReservationBlockRequest reservationsBlocksPerformMaintenanceRequestResource. */
                    public reservationsBlocksPerformMaintenanceRequestResource?: (google.cloud.compute.v1.IReservationsBlocksPerformMaintenanceRequest|null);

                    /** PerformMaintenanceReservationBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPerformMaintenanceReservationBlockRequest): google.cloud.compute.v1.PerformMaintenanceReservationBlockRequest;

                    /**
                     * Encodes the specified PerformMaintenanceReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceReservationBlockRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPerformMaintenanceReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceReservationBlockRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPerformMaintenanceReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PerformMaintenanceReservationBlockRequest;

                    /**
                     * Decodes a PerformMaintenanceReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PerformMaintenanceReservationBlockRequest;

                    /**
                     * Verifies a PerformMaintenanceReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PerformMaintenanceReservationBlockRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PerformMaintenanceReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerformMaintenanceReservationRequest. */
                interface IPerformMaintenanceReservationRequest {

                    /** PerformMaintenanceReservationRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceReservationRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceReservationRequest reservation */
                    reservation?: (string|null);

                    /** PerformMaintenanceReservationRequest reservationsPerformMaintenanceRequestResource */
                    reservationsPerformMaintenanceRequestResource?: (google.cloud.compute.v1.IReservationsPerformMaintenanceRequest|null);

                    /** PerformMaintenanceReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceReservationRequest. */
                class PerformMaintenanceReservationRequest implements IPerformMaintenanceReservationRequest {

                    /**
                     * Constructs a new PerformMaintenanceReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPerformMaintenanceReservationRequest);

                    /** PerformMaintenanceReservationRequest project. */
                    public project: string;

                    /** PerformMaintenanceReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceReservationRequest reservation. */
                    public reservation: string;

                    /** PerformMaintenanceReservationRequest reservationsPerformMaintenanceRequestResource. */
                    public reservationsPerformMaintenanceRequestResource?: (google.cloud.compute.v1.IReservationsPerformMaintenanceRequest|null);

                    /** PerformMaintenanceReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPerformMaintenanceReservationRequest): google.cloud.compute.v1.PerformMaintenanceReservationRequest;

                    /**
                     * Encodes the specified PerformMaintenanceReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceReservationRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPerformMaintenanceReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceReservationRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPerformMaintenanceReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PerformMaintenanceReservationRequest;

                    /**
                     * Decodes a PerformMaintenanceReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PerformMaintenanceReservationRequest;

                    /**
                     * Verifies a PerformMaintenanceReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PerformMaintenanceReservationRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceReservationRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PerformMaintenanceReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerformMaintenanceReservationSubBlockRequest. */
                interface IPerformMaintenanceReservationSubBlockRequest {

                    /** PerformMaintenanceReservationSubBlockRequest parentName */
                    parentName?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest reservationSubBlock */
                    reservationSubBlock?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceReservationSubBlockRequest. */
                class PerformMaintenanceReservationSubBlockRequest implements IPerformMaintenanceReservationSubBlockRequest {

                    /**
                     * Constructs a new PerformMaintenanceReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPerformMaintenanceReservationSubBlockRequest);

                    /** PerformMaintenanceReservationSubBlockRequest parentName. */
                    public parentName: string;

                    /** PerformMaintenanceReservationSubBlockRequest project. */
                    public project: string;

                    /** PerformMaintenanceReservationSubBlockRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest reservationSubBlock. */
                    public reservationSubBlock: string;

                    /** PerformMaintenanceReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPerformMaintenanceReservationSubBlockRequest): google.cloud.compute.v1.PerformMaintenanceReservationSubBlockRequest;

                    /**
                     * Encodes the specified PerformMaintenanceReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceReservationSubBlockRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPerformMaintenanceReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PerformMaintenanceReservationSubBlockRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPerformMaintenanceReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PerformMaintenanceReservationSubBlockRequest;

                    /**
                     * Decodes a PerformMaintenanceReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PerformMaintenanceReservationSubBlockRequest;

                    /**
                     * Verifies a PerformMaintenanceReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PerformMaintenanceReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PerformMaintenanceReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Policy. */
                interface IPolicy {

                    /** Policy auditConfigs */
                    auditConfigs?: (google.cloud.compute.v1.IAuditConfig[]|null);

                    /** Policy bindings */
                    bindings?: (google.cloud.compute.v1.IBinding[]|null);

                    /** Policy etag */
                    etag?: (string|null);

                    /** Policy iamOwned */
                    iamOwned?: (boolean|null);

                    /** Policy version */
                    version?: (number|null);
                }

                /** Represents a Policy. */
                class Policy implements IPolicy {

                    /**
                     * Constructs a new Policy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPolicy);

                    /** Policy auditConfigs. */
                    public auditConfigs: google.cloud.compute.v1.IAuditConfig[];

                    /** Policy bindings. */
                    public bindings: google.cloud.compute.v1.IBinding[];

                    /** Policy etag. */
                    public etag?: (string|null);

                    /** Policy iamOwned. */
                    public iamOwned?: (boolean|null);

                    /** Policy version. */
                    public version?: (number|null);

                    /**
                     * Creates a new Policy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Policy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPolicy): google.cloud.compute.v1.Policy;

                    /**
                     * Encodes the specified Policy message. Does not implicitly {@link google.cloud.compute.v1.Policy.verify|verify} messages.
                     * @param message Policy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Policy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Policy.verify|verify} messages.
                     * @param message Policy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Policy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Policy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Policy;

                    /**
                     * Decodes a Policy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Policy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Policy;

                    /**
                     * Verifies a Policy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Policy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Policy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Policy;

                    /**
                     * Creates a plain object from a Policy message. Also converts values to other types if specified.
                     * @param message Policy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Policy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Policy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Policy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreconfiguredWafSet. */
                interface IPreconfiguredWafSet {

                    /** PreconfiguredWafSet expressionSets */
                    expressionSets?: (google.cloud.compute.v1.IWafExpressionSet[]|null);
                }

                /** Represents a PreconfiguredWafSet. */
                class PreconfiguredWafSet implements IPreconfiguredWafSet {

                    /**
                     * Constructs a new PreconfiguredWafSet.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreconfiguredWafSet);

                    /** PreconfiguredWafSet expressionSets. */
                    public expressionSets: google.cloud.compute.v1.IWafExpressionSet[];

                    /**
                     * Creates a new PreconfiguredWafSet instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreconfiguredWafSet instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreconfiguredWafSet): google.cloud.compute.v1.PreconfiguredWafSet;

                    /**
                     * Encodes the specified PreconfiguredWafSet message. Does not implicitly {@link google.cloud.compute.v1.PreconfiguredWafSet.verify|verify} messages.
                     * @param message PreconfiguredWafSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreconfiguredWafSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreconfiguredWafSet message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreconfiguredWafSet.verify|verify} messages.
                     * @param message PreconfiguredWafSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreconfiguredWafSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreconfiguredWafSet message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreconfiguredWafSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreconfiguredWafSet;

                    /**
                     * Decodes a PreconfiguredWafSet message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreconfiguredWafSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreconfiguredWafSet;

                    /**
                     * Verifies a PreconfiguredWafSet message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreconfiguredWafSet message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreconfiguredWafSet
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreconfiguredWafSet;

                    /**
                     * Creates a plain object from a PreconfiguredWafSet message. Also converts values to other types if specified.
                     * @param message PreconfiguredWafSet
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreconfiguredWafSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreconfiguredWafSet to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreconfiguredWafSet
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreservedState. */
                interface IPreservedState {

                    /** PreservedState disks */
                    disks?: ({ [k: string]: google.cloud.compute.v1.IPreservedStatePreservedDisk }|null);

                    /** PreservedState externalIPs */
                    externalIPs?: ({ [k: string]: google.cloud.compute.v1.IPreservedStatePreservedNetworkIp }|null);

                    /** PreservedState internalIPs */
                    internalIPs?: ({ [k: string]: google.cloud.compute.v1.IPreservedStatePreservedNetworkIp }|null);

                    /** PreservedState metadata */
                    metadata?: ({ [k: string]: string }|null);
                }

                /** Represents a PreservedState. */
                class PreservedState implements IPreservedState {

                    /**
                     * Constructs a new PreservedState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreservedState);

                    /** PreservedState disks. */
                    public disks: { [k: string]: google.cloud.compute.v1.IPreservedStatePreservedDisk };

                    /** PreservedState externalIPs. */
                    public externalIPs: { [k: string]: google.cloud.compute.v1.IPreservedStatePreservedNetworkIp };

                    /** PreservedState internalIPs. */
                    public internalIPs: { [k: string]: google.cloud.compute.v1.IPreservedStatePreservedNetworkIp };

                    /** PreservedState metadata. */
                    public metadata: { [k: string]: string };

                    /**
                     * Creates a new PreservedState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreservedState instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreservedState): google.cloud.compute.v1.PreservedState;

                    /**
                     * Encodes the specified PreservedState message. Does not implicitly {@link google.cloud.compute.v1.PreservedState.verify|verify} messages.
                     * @param message PreservedState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreservedState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreservedState message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreservedState.verify|verify} messages.
                     * @param message PreservedState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreservedState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreservedState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreservedState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreservedState;

                    /**
                     * Decodes a PreservedState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreservedState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreservedState;

                    /**
                     * Verifies a PreservedState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreservedState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreservedState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreservedState;

                    /**
                     * Creates a plain object from a PreservedState message. Also converts values to other types if specified.
                     * @param message PreservedState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreservedState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreservedState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreservedState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreservedStatePreservedDisk. */
                interface IPreservedStatePreservedDisk {

                    /** PreservedStatePreservedDisk autoDelete */
                    autoDelete?: (string|null);

                    /** PreservedStatePreservedDisk mode */
                    mode?: (string|null);

                    /** PreservedStatePreservedDisk source */
                    source?: (string|null);
                }

                /** Represents a PreservedStatePreservedDisk. */
                class PreservedStatePreservedDisk implements IPreservedStatePreservedDisk {

                    /**
                     * Constructs a new PreservedStatePreservedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreservedStatePreservedDisk);

                    /** PreservedStatePreservedDisk autoDelete. */
                    public autoDelete?: (string|null);

                    /** PreservedStatePreservedDisk mode. */
                    public mode?: (string|null);

                    /** PreservedStatePreservedDisk source. */
                    public source?: (string|null);

                    /**
                     * Creates a new PreservedStatePreservedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreservedStatePreservedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreservedStatePreservedDisk): google.cloud.compute.v1.PreservedStatePreservedDisk;

                    /**
                     * Encodes the specified PreservedStatePreservedDisk message. Does not implicitly {@link google.cloud.compute.v1.PreservedStatePreservedDisk.verify|verify} messages.
                     * @param message PreservedStatePreservedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreservedStatePreservedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreservedStatePreservedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreservedStatePreservedDisk.verify|verify} messages.
                     * @param message PreservedStatePreservedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreservedStatePreservedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreservedStatePreservedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreservedStatePreservedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreservedStatePreservedDisk;

                    /**
                     * Decodes a PreservedStatePreservedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreservedStatePreservedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreservedStatePreservedDisk;

                    /**
                     * Verifies a PreservedStatePreservedDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreservedStatePreservedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreservedStatePreservedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreservedStatePreservedDisk;

                    /**
                     * Creates a plain object from a PreservedStatePreservedDisk message. Also converts values to other types if specified.
                     * @param message PreservedStatePreservedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreservedStatePreservedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreservedStatePreservedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreservedStatePreservedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreservedStatePreservedDisk {

                    /** AutoDelete enum. */
                    enum AutoDelete {
                        UNDEFINED_AUTO_DELETE = 0,
                        NEVER = 74175084,
                        ON_PERMANENT_INSTANCE_DELETION = 95727719
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        READ_ONLY = 91950261,
                        READ_WRITE = 173607894
                    }
                }

                /** Properties of a PreservedStatePreservedNetworkIp. */
                interface IPreservedStatePreservedNetworkIp {

                    /** PreservedStatePreservedNetworkIp autoDelete */
                    autoDelete?: (string|null);

                    /** PreservedStatePreservedNetworkIp ipAddress */
                    ipAddress?: (google.cloud.compute.v1.IPreservedStatePreservedNetworkIpIpAddress|null);
                }

                /** Represents a PreservedStatePreservedNetworkIp. */
                class PreservedStatePreservedNetworkIp implements IPreservedStatePreservedNetworkIp {

                    /**
                     * Constructs a new PreservedStatePreservedNetworkIp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreservedStatePreservedNetworkIp);

                    /** PreservedStatePreservedNetworkIp autoDelete. */
                    public autoDelete?: (string|null);

                    /** PreservedStatePreservedNetworkIp ipAddress. */
                    public ipAddress?: (google.cloud.compute.v1.IPreservedStatePreservedNetworkIpIpAddress|null);

                    /**
                     * Creates a new PreservedStatePreservedNetworkIp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreservedStatePreservedNetworkIp instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreservedStatePreservedNetworkIp): google.cloud.compute.v1.PreservedStatePreservedNetworkIp;

                    /**
                     * Encodes the specified PreservedStatePreservedNetworkIp message. Does not implicitly {@link google.cloud.compute.v1.PreservedStatePreservedNetworkIp.verify|verify} messages.
                     * @param message PreservedStatePreservedNetworkIp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreservedStatePreservedNetworkIp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreservedStatePreservedNetworkIp message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreservedStatePreservedNetworkIp.verify|verify} messages.
                     * @param message PreservedStatePreservedNetworkIp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreservedStatePreservedNetworkIp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreservedStatePreservedNetworkIp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreservedStatePreservedNetworkIp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreservedStatePreservedNetworkIp;

                    /**
                     * Decodes a PreservedStatePreservedNetworkIp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreservedStatePreservedNetworkIp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreservedStatePreservedNetworkIp;

                    /**
                     * Verifies a PreservedStatePreservedNetworkIp message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreservedStatePreservedNetworkIp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreservedStatePreservedNetworkIp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreservedStatePreservedNetworkIp;

                    /**
                     * Creates a plain object from a PreservedStatePreservedNetworkIp message. Also converts values to other types if specified.
                     * @param message PreservedStatePreservedNetworkIp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreservedStatePreservedNetworkIp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreservedStatePreservedNetworkIp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreservedStatePreservedNetworkIp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreservedStatePreservedNetworkIp {

                    /** AutoDelete enum. */
                    enum AutoDelete {
                        UNDEFINED_AUTO_DELETE = 0,
                        NEVER = 74175084,
                        ON_PERMANENT_INSTANCE_DELETION = 95727719
                    }
                }

                /** Properties of a PreservedStatePreservedNetworkIpIpAddress. */
                interface IPreservedStatePreservedNetworkIpIpAddress {

                    /** PreservedStatePreservedNetworkIpIpAddress address */
                    address?: (string|null);

                    /** PreservedStatePreservedNetworkIpIpAddress literal */
                    literal?: (string|null);
                }

                /** Represents a PreservedStatePreservedNetworkIpIpAddress. */
                class PreservedStatePreservedNetworkIpIpAddress implements IPreservedStatePreservedNetworkIpIpAddress {

                    /**
                     * Constructs a new PreservedStatePreservedNetworkIpIpAddress.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreservedStatePreservedNetworkIpIpAddress);

                    /** PreservedStatePreservedNetworkIpIpAddress address. */
                    public address?: (string|null);

                    /** PreservedStatePreservedNetworkIpIpAddress literal. */
                    public literal?: (string|null);

                    /**
                     * Creates a new PreservedStatePreservedNetworkIpIpAddress instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreservedStatePreservedNetworkIpIpAddress instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreservedStatePreservedNetworkIpIpAddress): google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddress;

                    /**
                     * Encodes the specified PreservedStatePreservedNetworkIpIpAddress message. Does not implicitly {@link google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddress.verify|verify} messages.
                     * @param message PreservedStatePreservedNetworkIpIpAddress message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreservedStatePreservedNetworkIpIpAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreservedStatePreservedNetworkIpIpAddress message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddress.verify|verify} messages.
                     * @param message PreservedStatePreservedNetworkIpIpAddress message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreservedStatePreservedNetworkIpIpAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreservedStatePreservedNetworkIpIpAddress message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreservedStatePreservedNetworkIpIpAddress
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddress;

                    /**
                     * Decodes a PreservedStatePreservedNetworkIpIpAddress message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreservedStatePreservedNetworkIpIpAddress
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddress;

                    /**
                     * Verifies a PreservedStatePreservedNetworkIpIpAddress message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreservedStatePreservedNetworkIpIpAddress message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreservedStatePreservedNetworkIpIpAddress
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddress;

                    /**
                     * Creates a plain object from a PreservedStatePreservedNetworkIpIpAddress message. Also converts values to other types if specified.
                     * @param message PreservedStatePreservedNetworkIpIpAddress
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddress, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreservedStatePreservedNetworkIpIpAddress to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreservedStatePreservedNetworkIpIpAddress
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreviewFeature. */
                interface IPreviewFeature {

                    /** PreviewFeature activationStatus */
                    activationStatus?: (string|null);

                    /** PreviewFeature creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** PreviewFeature description */
                    description?: (string|null);

                    /** PreviewFeature id */
                    id?: (number|Long|string|null);

                    /** PreviewFeature kind */
                    kind?: (string|null);

                    /** PreviewFeature name */
                    name?: (string|null);

                    /** PreviewFeature rolloutOperation */
                    rolloutOperation?: (google.cloud.compute.v1.IPreviewFeatureRolloutOperation|null);

                    /** PreviewFeature selfLink */
                    selfLink?: (string|null);

                    /** PreviewFeature status */
                    status?: (google.cloud.compute.v1.IPreviewFeatureStatus|null);
                }

                /** Represents a PreviewFeature. */
                class PreviewFeature implements IPreviewFeature {

                    /**
                     * Constructs a new PreviewFeature.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreviewFeature);

                    /** PreviewFeature activationStatus. */
                    public activationStatus?: (string|null);

                    /** PreviewFeature creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** PreviewFeature description. */
                    public description?: (string|null);

                    /** PreviewFeature id. */
                    public id?: (number|Long|string|null);

                    /** PreviewFeature kind. */
                    public kind?: (string|null);

                    /** PreviewFeature name. */
                    public name?: (string|null);

                    /** PreviewFeature rolloutOperation. */
                    public rolloutOperation?: (google.cloud.compute.v1.IPreviewFeatureRolloutOperation|null);

                    /** PreviewFeature selfLink. */
                    public selfLink?: (string|null);

                    /** PreviewFeature status. */
                    public status?: (google.cloud.compute.v1.IPreviewFeatureStatus|null);

                    /**
                     * Creates a new PreviewFeature instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeature instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreviewFeature): google.cloud.compute.v1.PreviewFeature;

                    /**
                     * Encodes the specified PreviewFeature message. Does not implicitly {@link google.cloud.compute.v1.PreviewFeature.verify|verify} messages.
                     * @param message PreviewFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreviewFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeature message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreviewFeature.verify|verify} messages.
                     * @param message PreviewFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreviewFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeature message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreviewFeature;

                    /**
                     * Decodes a PreviewFeature message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreviewFeature;

                    /**
                     * Verifies a PreviewFeature message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeature message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeature
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreviewFeature;

                    /**
                     * Creates a plain object from a PreviewFeature message. Also converts values to other types if specified.
                     * @param message PreviewFeature
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreviewFeature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeature to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeature
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreviewFeature {

                    /** ActivationStatus enum. */
                    enum ActivationStatus {
                        UNDEFINED_ACTIVATION_STATUS = 0,
                        ACTIVATION_STATE_UNSPECIFIED = 632160,
                        DISABLED = 516696700,
                        ENABLED = 182130465
                    }
                }

                /** Properties of a PreviewFeatureList. */
                interface IPreviewFeatureList {

                    /** PreviewFeatureList etag */
                    etag?: (string|null);

                    /** PreviewFeatureList id */
                    id?: (string|null);

                    /** PreviewFeatureList items */
                    items?: (google.cloud.compute.v1.IPreviewFeature[]|null);

                    /** PreviewFeatureList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PreviewFeatureList selfLink */
                    selfLink?: (string|null);

                    /** PreviewFeatureList unreachables */
                    unreachables?: (string[]|null);

                    /** PreviewFeatureList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a PreviewFeatureList. */
                class PreviewFeatureList implements IPreviewFeatureList {

                    /**
                     * Constructs a new PreviewFeatureList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreviewFeatureList);

                    /** PreviewFeatureList etag. */
                    public etag?: (string|null);

                    /** PreviewFeatureList id. */
                    public id?: (string|null);

                    /** PreviewFeatureList items. */
                    public items: google.cloud.compute.v1.IPreviewFeature[];

                    /** PreviewFeatureList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PreviewFeatureList selfLink. */
                    public selfLink?: (string|null);

                    /** PreviewFeatureList unreachables. */
                    public unreachables: string[];

                    /** PreviewFeatureList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new PreviewFeatureList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreviewFeatureList): google.cloud.compute.v1.PreviewFeatureList;

                    /**
                     * Encodes the specified PreviewFeatureList message. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureList.verify|verify} messages.
                     * @param message PreviewFeatureList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreviewFeatureList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureList.verify|verify} messages.
                     * @param message PreviewFeatureList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreviewFeatureList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreviewFeatureList;

                    /**
                     * Decodes a PreviewFeatureList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreviewFeatureList;

                    /**
                     * Verifies a PreviewFeatureList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreviewFeatureList;

                    /**
                     * Creates a plain object from a PreviewFeatureList message. Also converts values to other types if specified.
                     * @param message PreviewFeatureList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreviewFeatureList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreviewFeatureRolloutOperation. */
                interface IPreviewFeatureRolloutOperation {

                    /** PreviewFeatureRolloutOperation rolloutInput */
                    rolloutInput?: (google.cloud.compute.v1.IPreviewFeatureRolloutOperationRolloutInput|null);
                }

                /** Represents a PreviewFeatureRolloutOperation. */
                class PreviewFeatureRolloutOperation implements IPreviewFeatureRolloutOperation {

                    /**
                     * Constructs a new PreviewFeatureRolloutOperation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreviewFeatureRolloutOperation);

                    /** PreviewFeatureRolloutOperation rolloutInput. */
                    public rolloutInput?: (google.cloud.compute.v1.IPreviewFeatureRolloutOperationRolloutInput|null);

                    /**
                     * Creates a new PreviewFeatureRolloutOperation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureRolloutOperation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreviewFeatureRolloutOperation): google.cloud.compute.v1.PreviewFeatureRolloutOperation;

                    /**
                     * Encodes the specified PreviewFeatureRolloutOperation message. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureRolloutOperation.verify|verify} messages.
                     * @param message PreviewFeatureRolloutOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreviewFeatureRolloutOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureRolloutOperation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureRolloutOperation.verify|verify} messages.
                     * @param message PreviewFeatureRolloutOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreviewFeatureRolloutOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureRolloutOperation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureRolloutOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreviewFeatureRolloutOperation;

                    /**
                     * Decodes a PreviewFeatureRolloutOperation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureRolloutOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreviewFeatureRolloutOperation;

                    /**
                     * Verifies a PreviewFeatureRolloutOperation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureRolloutOperation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureRolloutOperation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreviewFeatureRolloutOperation;

                    /**
                     * Creates a plain object from a PreviewFeatureRolloutOperation message. Also converts values to other types if specified.
                     * @param message PreviewFeatureRolloutOperation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreviewFeatureRolloutOperation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureRolloutOperation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureRolloutOperation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreviewFeatureRolloutOperationRolloutInput. */
                interface IPreviewFeatureRolloutOperationRolloutInput {

                    /** PreviewFeatureRolloutOperationRolloutInput name */
                    name?: (string|null);

                    /** PreviewFeatureRolloutOperationRolloutInput predefinedRolloutPlan */
                    predefinedRolloutPlan?: (string|null);
                }

                /** Represents a PreviewFeatureRolloutOperationRolloutInput. */
                class PreviewFeatureRolloutOperationRolloutInput implements IPreviewFeatureRolloutOperationRolloutInput {

                    /**
                     * Constructs a new PreviewFeatureRolloutOperationRolloutInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreviewFeatureRolloutOperationRolloutInput);

                    /** PreviewFeatureRolloutOperationRolloutInput name. */
                    public name?: (string|null);

                    /** PreviewFeatureRolloutOperationRolloutInput predefinedRolloutPlan. */
                    public predefinedRolloutPlan?: (string|null);

                    /**
                     * Creates a new PreviewFeatureRolloutOperationRolloutInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureRolloutOperationRolloutInput instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreviewFeatureRolloutOperationRolloutInput): google.cloud.compute.v1.PreviewFeatureRolloutOperationRolloutInput;

                    /**
                     * Encodes the specified PreviewFeatureRolloutOperationRolloutInput message. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureRolloutOperationRolloutInput.verify|verify} messages.
                     * @param message PreviewFeatureRolloutOperationRolloutInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreviewFeatureRolloutOperationRolloutInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureRolloutOperationRolloutInput message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureRolloutOperationRolloutInput.verify|verify} messages.
                     * @param message PreviewFeatureRolloutOperationRolloutInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreviewFeatureRolloutOperationRolloutInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureRolloutOperationRolloutInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureRolloutOperationRolloutInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreviewFeatureRolloutOperationRolloutInput;

                    /**
                     * Decodes a PreviewFeatureRolloutOperationRolloutInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureRolloutOperationRolloutInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreviewFeatureRolloutOperationRolloutInput;

                    /**
                     * Verifies a PreviewFeatureRolloutOperationRolloutInput message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureRolloutOperationRolloutInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureRolloutOperationRolloutInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreviewFeatureRolloutOperationRolloutInput;

                    /**
                     * Creates a plain object from a PreviewFeatureRolloutOperationRolloutInput message. Also converts values to other types if specified.
                     * @param message PreviewFeatureRolloutOperationRolloutInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreviewFeatureRolloutOperationRolloutInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureRolloutOperationRolloutInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureRolloutOperationRolloutInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreviewFeatureRolloutOperationRolloutInput {

                    /** PredefinedRolloutPlan enum. */
                    enum PredefinedRolloutPlan {
                        UNDEFINED_PREDEFINED_ROLLOUT_PLAN = 0,
                        ROLLOUT_PLAN_FAST_ROLLOUT = 167808726,
                        ROLLOUT_PLAN_TWO_DAY_ROLLOUT = 349866771,
                        ROLLOUT_PLAN_UNSPECIFIED = 144511983
                    }
                }

                /** Properties of a PreviewFeatureStatus. */
                interface IPreviewFeatureStatus {

                    /** PreviewFeatureStatus description */
                    description?: (string|null);

                    /** PreviewFeatureStatus helpLink */
                    helpLink?: (string|null);

                    /** PreviewFeatureStatus releaseStatus */
                    releaseStatus?: (google.cloud.compute.v1.IPreviewFeatureStatusReleaseStatus|null);
                }

                /** Represents a PreviewFeatureStatus. */
                class PreviewFeatureStatus implements IPreviewFeatureStatus {

                    /**
                     * Constructs a new PreviewFeatureStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreviewFeatureStatus);

                    /** PreviewFeatureStatus description. */
                    public description?: (string|null);

                    /** PreviewFeatureStatus helpLink. */
                    public helpLink?: (string|null);

                    /** PreviewFeatureStatus releaseStatus. */
                    public releaseStatus?: (google.cloud.compute.v1.IPreviewFeatureStatusReleaseStatus|null);

                    /**
                     * Creates a new PreviewFeatureStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreviewFeatureStatus): google.cloud.compute.v1.PreviewFeatureStatus;

                    /**
                     * Encodes the specified PreviewFeatureStatus message. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureStatus.verify|verify} messages.
                     * @param message PreviewFeatureStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreviewFeatureStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureStatus.verify|verify} messages.
                     * @param message PreviewFeatureStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreviewFeatureStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreviewFeatureStatus;

                    /**
                     * Decodes a PreviewFeatureStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreviewFeatureStatus;

                    /**
                     * Verifies a PreviewFeatureStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreviewFeatureStatus;

                    /**
                     * Creates a plain object from a PreviewFeatureStatus message. Also converts values to other types if specified.
                     * @param message PreviewFeatureStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreviewFeatureStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreviewFeatureStatusReleaseStatus. */
                interface IPreviewFeatureStatusReleaseStatus {

                    /** PreviewFeatureStatusReleaseStatus stage */
                    stage?: (string|null);

                    /** PreviewFeatureStatusReleaseStatus updateDate */
                    updateDate?: (google.cloud.compute.v1.IDate|null);
                }

                /** Represents a PreviewFeatureStatusReleaseStatus. */
                class PreviewFeatureStatusReleaseStatus implements IPreviewFeatureStatusReleaseStatus {

                    /**
                     * Constructs a new PreviewFeatureStatusReleaseStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreviewFeatureStatusReleaseStatus);

                    /** PreviewFeatureStatusReleaseStatus stage. */
                    public stage?: (string|null);

                    /** PreviewFeatureStatusReleaseStatus updateDate. */
                    public updateDate?: (google.cloud.compute.v1.IDate|null);

                    /**
                     * Creates a new PreviewFeatureStatusReleaseStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureStatusReleaseStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreviewFeatureStatusReleaseStatus): google.cloud.compute.v1.PreviewFeatureStatusReleaseStatus;

                    /**
                     * Encodes the specified PreviewFeatureStatusReleaseStatus message. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureStatusReleaseStatus.verify|verify} messages.
                     * @param message PreviewFeatureStatusReleaseStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreviewFeatureStatusReleaseStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureStatusReleaseStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreviewFeatureStatusReleaseStatus.verify|verify} messages.
                     * @param message PreviewFeatureStatusReleaseStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreviewFeatureStatusReleaseStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureStatusReleaseStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureStatusReleaseStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreviewFeatureStatusReleaseStatus;

                    /**
                     * Decodes a PreviewFeatureStatusReleaseStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureStatusReleaseStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreviewFeatureStatusReleaseStatus;

                    /**
                     * Verifies a PreviewFeatureStatusReleaseStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureStatusReleaseStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureStatusReleaseStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreviewFeatureStatusReleaseStatus;

                    /**
                     * Creates a plain object from a PreviewFeatureStatusReleaseStatus message. Also converts values to other types if specified.
                     * @param message PreviewFeatureStatusReleaseStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreviewFeatureStatusReleaseStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureStatusReleaseStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureStatusReleaseStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreviewFeatureStatusReleaseStatus {

                    /** Stage enum. */
                    enum Stage {
                        UNDEFINED_STAGE = 0,
                        DEPRECATED = 463360435,
                        GA = 2266,
                        PREVIEW = 399798184,
                        STAGE_UNSPECIFIED = 63695670
                    }
                }

                /** Properties of a PreviewRouterRequest. */
                interface IPreviewRouterRequest {

                    /** PreviewRouterRequest project */
                    project?: (string|null);

                    /** PreviewRouterRequest region */
                    region?: (string|null);

                    /** PreviewRouterRequest router */
                    router?: (string|null);

                    /** PreviewRouterRequest routerResource */
                    routerResource?: (google.cloud.compute.v1.IRouter|null);
                }

                /** Represents a PreviewRouterRequest. */
                class PreviewRouterRequest implements IPreviewRouterRequest {

                    /**
                     * Constructs a new PreviewRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPreviewRouterRequest);

                    /** PreviewRouterRequest project. */
                    public project: string;

                    /** PreviewRouterRequest region. */
                    public region: string;

                    /** PreviewRouterRequest router. */
                    public router: string;

                    /** PreviewRouterRequest routerResource. */
                    public routerResource?: (google.cloud.compute.v1.IRouter|null);

                    /**
                     * Creates a new PreviewRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPreviewRouterRequest): google.cloud.compute.v1.PreviewRouterRequest;

                    /**
                     * Encodes the specified PreviewRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.PreviewRouterRequest.verify|verify} messages.
                     * @param message PreviewRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPreviewRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PreviewRouterRequest.verify|verify} messages.
                     * @param message PreviewRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPreviewRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PreviewRouterRequest;

                    /**
                     * Decodes a PreviewRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PreviewRouterRequest;

                    /**
                     * Verifies a PreviewRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PreviewRouterRequest;

                    /**
                     * Creates a plain object from a PreviewRouterRequest message. Also converts values to other types if specified.
                     * @param message PreviewRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PreviewRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Project. */
                interface IProject {

                    /** Project cloudArmorTier */
                    cloudArmorTier?: (string|null);

                    /** Project commonInstanceMetadata */
                    commonInstanceMetadata?: (google.cloud.compute.v1.IMetadata|null);

                    /** Project creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Project defaultNetworkTier */
                    defaultNetworkTier?: (string|null);

                    /** Project defaultServiceAccount */
                    defaultServiceAccount?: (string|null);

                    /** Project description */
                    description?: (string|null);

                    /** Project enabledFeatures */
                    enabledFeatures?: (string[]|null);

                    /** Project id */
                    id?: (number|Long|string|null);

                    /** Project kind */
                    kind?: (string|null);

                    /** Project name */
                    name?: (string|null);

                    /** Project quotas */
                    quotas?: (google.cloud.compute.v1.IQuota[]|null);

                    /** Project selfLink */
                    selfLink?: (string|null);

                    /** Project usageExportLocation */
                    usageExportLocation?: (google.cloud.compute.v1.IUsageExportLocation|null);

                    /** Project vmDnsSetting */
                    vmDnsSetting?: (string|null);

                    /** Project xpnProjectStatus */
                    xpnProjectStatus?: (string|null);
                }

                /** Represents a Project. */
                class Project implements IProject {

                    /**
                     * Constructs a new Project.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IProject);

                    /** Project cloudArmorTier. */
                    public cloudArmorTier?: (string|null);

                    /** Project commonInstanceMetadata. */
                    public commonInstanceMetadata?: (google.cloud.compute.v1.IMetadata|null);

                    /** Project creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Project defaultNetworkTier. */
                    public defaultNetworkTier?: (string|null);

                    /** Project defaultServiceAccount. */
                    public defaultServiceAccount?: (string|null);

                    /** Project description. */
                    public description?: (string|null);

                    /** Project enabledFeatures. */
                    public enabledFeatures: string[];

                    /** Project id. */
                    public id?: (number|Long|string|null);

                    /** Project kind. */
                    public kind?: (string|null);

                    /** Project name. */
                    public name?: (string|null);

                    /** Project quotas. */
                    public quotas: google.cloud.compute.v1.IQuota[];

                    /** Project selfLink. */
                    public selfLink?: (string|null);

                    /** Project usageExportLocation. */
                    public usageExportLocation?: (google.cloud.compute.v1.IUsageExportLocation|null);

                    /** Project vmDnsSetting. */
                    public vmDnsSetting?: (string|null);

                    /** Project xpnProjectStatus. */
                    public xpnProjectStatus?: (string|null);

                    /**
                     * Creates a new Project instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Project instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IProject): google.cloud.compute.v1.Project;

                    /**
                     * Encodes the specified Project message. Does not implicitly {@link google.cloud.compute.v1.Project.verify|verify} messages.
                     * @param message Project message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IProject, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Project message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Project.verify|verify} messages.
                     * @param message Project message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IProject, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Project message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Project
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Project;

                    /**
                     * Decodes a Project message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Project
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Project;

                    /**
                     * Verifies a Project message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Project message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Project
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Project;

                    /**
                     * Creates a plain object from a Project message. Also converts values to other types if specified.
                     * @param message Project
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Project, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Project to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Project
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Project {

                    /** CloudArmorTier enum. */
                    enum CloudArmorTier {
                        UNDEFINED_CLOUD_ARMOR_TIER = 0,
                        CA_ENTERPRISE_ANNUAL = 219921116,
                        CA_ENTERPRISE_PAYGO = 453530323,
                        CA_STANDARD = 13156734
                    }

                    /** DefaultNetworkTier enum. */
                    enum DefaultNetworkTier {
                        UNDEFINED_DEFAULT_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** VmDnsSetting enum. */
                    enum VmDnsSetting {
                        UNDEFINED_VM_DNS_SETTING = 0,
                        GLOBAL_DEFAULT = 345419141,
                        UNSPECIFIED_VM_DNS_SETTING = 35691930,
                        ZONAL_DEFAULT = 368475782,
                        ZONAL_ONLY = 521198951
                    }

                    /** XpnProjectStatus enum. */
                    enum XpnProjectStatus {
                        UNDEFINED_XPN_PROJECT_STATUS = 0,
                        HOST = 2223528,
                        UNSPECIFIED_XPN_PROJECT_STATUS = 340393257
                    }
                }

                /** Properties of a ProjectsDisableXpnResourceRequest. */
                interface IProjectsDisableXpnResourceRequest {

                    /** ProjectsDisableXpnResourceRequest xpnResource */
                    xpnResource?: (google.cloud.compute.v1.IXpnResourceId|null);
                }

                /** Represents a ProjectsDisableXpnResourceRequest. */
                class ProjectsDisableXpnResourceRequest implements IProjectsDisableXpnResourceRequest {

                    /**
                     * Constructs a new ProjectsDisableXpnResourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IProjectsDisableXpnResourceRequest);

                    /** ProjectsDisableXpnResourceRequest xpnResource. */
                    public xpnResource?: (google.cloud.compute.v1.IXpnResourceId|null);

                    /**
                     * Creates a new ProjectsDisableXpnResourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsDisableXpnResourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IProjectsDisableXpnResourceRequest): google.cloud.compute.v1.ProjectsDisableXpnResourceRequest;

                    /**
                     * Encodes the specified ProjectsDisableXpnResourceRequest message. Does not implicitly {@link google.cloud.compute.v1.ProjectsDisableXpnResourceRequest.verify|verify} messages.
                     * @param message ProjectsDisableXpnResourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IProjectsDisableXpnResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsDisableXpnResourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ProjectsDisableXpnResourceRequest.verify|verify} messages.
                     * @param message ProjectsDisableXpnResourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IProjectsDisableXpnResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsDisableXpnResourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsDisableXpnResourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ProjectsDisableXpnResourceRequest;

                    /**
                     * Decodes a ProjectsDisableXpnResourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsDisableXpnResourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ProjectsDisableXpnResourceRequest;

                    /**
                     * Verifies a ProjectsDisableXpnResourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsDisableXpnResourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsDisableXpnResourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ProjectsDisableXpnResourceRequest;

                    /**
                     * Creates a plain object from a ProjectsDisableXpnResourceRequest message. Also converts values to other types if specified.
                     * @param message ProjectsDisableXpnResourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ProjectsDisableXpnResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsDisableXpnResourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsDisableXpnResourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ProjectsEnableXpnResourceRequest. */
                interface IProjectsEnableXpnResourceRequest {

                    /** ProjectsEnableXpnResourceRequest xpnResource */
                    xpnResource?: (google.cloud.compute.v1.IXpnResourceId|null);
                }

                /** Represents a ProjectsEnableXpnResourceRequest. */
                class ProjectsEnableXpnResourceRequest implements IProjectsEnableXpnResourceRequest {

                    /**
                     * Constructs a new ProjectsEnableXpnResourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IProjectsEnableXpnResourceRequest);

                    /** ProjectsEnableXpnResourceRequest xpnResource. */
                    public xpnResource?: (google.cloud.compute.v1.IXpnResourceId|null);

                    /**
                     * Creates a new ProjectsEnableXpnResourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsEnableXpnResourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IProjectsEnableXpnResourceRequest): google.cloud.compute.v1.ProjectsEnableXpnResourceRequest;

                    /**
                     * Encodes the specified ProjectsEnableXpnResourceRequest message. Does not implicitly {@link google.cloud.compute.v1.ProjectsEnableXpnResourceRequest.verify|verify} messages.
                     * @param message ProjectsEnableXpnResourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IProjectsEnableXpnResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsEnableXpnResourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ProjectsEnableXpnResourceRequest.verify|verify} messages.
                     * @param message ProjectsEnableXpnResourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IProjectsEnableXpnResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsEnableXpnResourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsEnableXpnResourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ProjectsEnableXpnResourceRequest;

                    /**
                     * Decodes a ProjectsEnableXpnResourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsEnableXpnResourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ProjectsEnableXpnResourceRequest;

                    /**
                     * Verifies a ProjectsEnableXpnResourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsEnableXpnResourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsEnableXpnResourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ProjectsEnableXpnResourceRequest;

                    /**
                     * Creates a plain object from a ProjectsEnableXpnResourceRequest message. Also converts values to other types if specified.
                     * @param message ProjectsEnableXpnResourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ProjectsEnableXpnResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsEnableXpnResourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsEnableXpnResourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ProjectsGetXpnResources. */
                interface IProjectsGetXpnResources {

                    /** ProjectsGetXpnResources kind */
                    kind?: (string|null);

                    /** ProjectsGetXpnResources nextPageToken */
                    nextPageToken?: (string|null);

                    /** ProjectsGetXpnResources resources */
                    resources?: (google.cloud.compute.v1.IXpnResourceId[]|null);
                }

                /** Represents a ProjectsGetXpnResources. */
                class ProjectsGetXpnResources implements IProjectsGetXpnResources {

                    /**
                     * Constructs a new ProjectsGetXpnResources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IProjectsGetXpnResources);

                    /** ProjectsGetXpnResources kind. */
                    public kind?: (string|null);

                    /** ProjectsGetXpnResources nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ProjectsGetXpnResources resources. */
                    public resources: google.cloud.compute.v1.IXpnResourceId[];

                    /**
                     * Creates a new ProjectsGetXpnResources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsGetXpnResources instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IProjectsGetXpnResources): google.cloud.compute.v1.ProjectsGetXpnResources;

                    /**
                     * Encodes the specified ProjectsGetXpnResources message. Does not implicitly {@link google.cloud.compute.v1.ProjectsGetXpnResources.verify|verify} messages.
                     * @param message ProjectsGetXpnResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IProjectsGetXpnResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsGetXpnResources message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ProjectsGetXpnResources.verify|verify} messages.
                     * @param message ProjectsGetXpnResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IProjectsGetXpnResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsGetXpnResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsGetXpnResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ProjectsGetXpnResources;

                    /**
                     * Decodes a ProjectsGetXpnResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsGetXpnResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ProjectsGetXpnResources;

                    /**
                     * Verifies a ProjectsGetXpnResources message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsGetXpnResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsGetXpnResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ProjectsGetXpnResources;

                    /**
                     * Creates a plain object from a ProjectsGetXpnResources message. Also converts values to other types if specified.
                     * @param message ProjectsGetXpnResources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ProjectsGetXpnResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsGetXpnResources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsGetXpnResources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ProjectsListXpnHostsRequest. */
                interface IProjectsListXpnHostsRequest {

                    /** ProjectsListXpnHostsRequest organization */
                    organization?: (string|null);
                }

                /** Represents a ProjectsListXpnHostsRequest. */
                class ProjectsListXpnHostsRequest implements IProjectsListXpnHostsRequest {

                    /**
                     * Constructs a new ProjectsListXpnHostsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IProjectsListXpnHostsRequest);

                    /** ProjectsListXpnHostsRequest organization. */
                    public organization?: (string|null);

                    /**
                     * Creates a new ProjectsListXpnHostsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsListXpnHostsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IProjectsListXpnHostsRequest): google.cloud.compute.v1.ProjectsListXpnHostsRequest;

                    /**
                     * Encodes the specified ProjectsListXpnHostsRequest message. Does not implicitly {@link google.cloud.compute.v1.ProjectsListXpnHostsRequest.verify|verify} messages.
                     * @param message ProjectsListXpnHostsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IProjectsListXpnHostsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsListXpnHostsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ProjectsListXpnHostsRequest.verify|verify} messages.
                     * @param message ProjectsListXpnHostsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IProjectsListXpnHostsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsListXpnHostsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsListXpnHostsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ProjectsListXpnHostsRequest;

                    /**
                     * Decodes a ProjectsListXpnHostsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsListXpnHostsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ProjectsListXpnHostsRequest;

                    /**
                     * Verifies a ProjectsListXpnHostsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsListXpnHostsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsListXpnHostsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ProjectsListXpnHostsRequest;

                    /**
                     * Creates a plain object from a ProjectsListXpnHostsRequest message. Also converts values to other types if specified.
                     * @param message ProjectsListXpnHostsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ProjectsListXpnHostsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsListXpnHostsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsListXpnHostsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ProjectsSetCloudArmorTierRequest. */
                interface IProjectsSetCloudArmorTierRequest {

                    /** ProjectsSetCloudArmorTierRequest cloudArmorTier */
                    cloudArmorTier?: (string|null);
                }

                /** Represents a ProjectsSetCloudArmorTierRequest. */
                class ProjectsSetCloudArmorTierRequest implements IProjectsSetCloudArmorTierRequest {

                    /**
                     * Constructs a new ProjectsSetCloudArmorTierRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IProjectsSetCloudArmorTierRequest);

                    /** ProjectsSetCloudArmorTierRequest cloudArmorTier. */
                    public cloudArmorTier?: (string|null);

                    /**
                     * Creates a new ProjectsSetCloudArmorTierRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsSetCloudArmorTierRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IProjectsSetCloudArmorTierRequest): google.cloud.compute.v1.ProjectsSetCloudArmorTierRequest;

                    /**
                     * Encodes the specified ProjectsSetCloudArmorTierRequest message. Does not implicitly {@link google.cloud.compute.v1.ProjectsSetCloudArmorTierRequest.verify|verify} messages.
                     * @param message ProjectsSetCloudArmorTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IProjectsSetCloudArmorTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsSetCloudArmorTierRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ProjectsSetCloudArmorTierRequest.verify|verify} messages.
                     * @param message ProjectsSetCloudArmorTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IProjectsSetCloudArmorTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsSetCloudArmorTierRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsSetCloudArmorTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ProjectsSetCloudArmorTierRequest;

                    /**
                     * Decodes a ProjectsSetCloudArmorTierRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsSetCloudArmorTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ProjectsSetCloudArmorTierRequest;

                    /**
                     * Verifies a ProjectsSetCloudArmorTierRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsSetCloudArmorTierRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsSetCloudArmorTierRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ProjectsSetCloudArmorTierRequest;

                    /**
                     * Creates a plain object from a ProjectsSetCloudArmorTierRequest message. Also converts values to other types if specified.
                     * @param message ProjectsSetCloudArmorTierRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ProjectsSetCloudArmorTierRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsSetCloudArmorTierRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsSetCloudArmorTierRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ProjectsSetCloudArmorTierRequest {

                    /** CloudArmorTier enum. */
                    enum CloudArmorTier {
                        UNDEFINED_CLOUD_ARMOR_TIER = 0,
                        CA_ENTERPRISE_ANNUAL = 219921116,
                        CA_ENTERPRISE_PAYGO = 453530323,
                        CA_STANDARD = 13156734
                    }
                }

                /** Properties of a ProjectsSetDefaultNetworkTierRequest. */
                interface IProjectsSetDefaultNetworkTierRequest {

                    /** ProjectsSetDefaultNetworkTierRequest networkTier */
                    networkTier?: (string|null);
                }

                /** Represents a ProjectsSetDefaultNetworkTierRequest. */
                class ProjectsSetDefaultNetworkTierRequest implements IProjectsSetDefaultNetworkTierRequest {

                    /**
                     * Constructs a new ProjectsSetDefaultNetworkTierRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IProjectsSetDefaultNetworkTierRequest);

                    /** ProjectsSetDefaultNetworkTierRequest networkTier. */
                    public networkTier?: (string|null);

                    /**
                     * Creates a new ProjectsSetDefaultNetworkTierRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsSetDefaultNetworkTierRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IProjectsSetDefaultNetworkTierRequest): google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequest;

                    /**
                     * Encodes the specified ProjectsSetDefaultNetworkTierRequest message. Does not implicitly {@link google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequest.verify|verify} messages.
                     * @param message ProjectsSetDefaultNetworkTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IProjectsSetDefaultNetworkTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsSetDefaultNetworkTierRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequest.verify|verify} messages.
                     * @param message ProjectsSetDefaultNetworkTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IProjectsSetDefaultNetworkTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsSetDefaultNetworkTierRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsSetDefaultNetworkTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequest;

                    /**
                     * Decodes a ProjectsSetDefaultNetworkTierRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsSetDefaultNetworkTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequest;

                    /**
                     * Verifies a ProjectsSetDefaultNetworkTierRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsSetDefaultNetworkTierRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsSetDefaultNetworkTierRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequest;

                    /**
                     * Creates a plain object from a ProjectsSetDefaultNetworkTierRequest message. Also converts values to other types if specified.
                     * @param message ProjectsSetDefaultNetworkTierRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsSetDefaultNetworkTierRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsSetDefaultNetworkTierRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ProjectsSetDefaultNetworkTierRequest {

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }
                }

                /** Properties of a PublicAdvertisedPrefix. */
                interface IPublicAdvertisedPrefix {

                    /** PublicAdvertisedPrefix byoipApiVersion */
                    byoipApiVersion?: (string|null);

                    /** PublicAdvertisedPrefix creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** PublicAdvertisedPrefix description */
                    description?: (string|null);

                    /** PublicAdvertisedPrefix dnsVerificationIp */
                    dnsVerificationIp?: (string|null);

                    /** PublicAdvertisedPrefix fingerprint */
                    fingerprint?: (string|null);

                    /** PublicAdvertisedPrefix id */
                    id?: (number|Long|string|null);

                    /** PublicAdvertisedPrefix ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** PublicAdvertisedPrefix ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** PublicAdvertisedPrefix kind */
                    kind?: (string|null);

                    /** PublicAdvertisedPrefix name */
                    name?: (string|null);

                    /** PublicAdvertisedPrefix pdpScope */
                    pdpScope?: (string|null);

                    /** PublicAdvertisedPrefix publicDelegatedPrefixs */
                    publicDelegatedPrefixs?: (google.cloud.compute.v1.IPublicAdvertisedPrefixPublicDelegatedPrefix[]|null);

                    /** PublicAdvertisedPrefix selfLink */
                    selfLink?: (string|null);

                    /** PublicAdvertisedPrefix sharedSecret */
                    sharedSecret?: (string|null);

                    /** PublicAdvertisedPrefix status */
                    status?: (string|null);
                }

                /** Represents a PublicAdvertisedPrefix. */
                class PublicAdvertisedPrefix implements IPublicAdvertisedPrefix {

                    /**
                     * Constructs a new PublicAdvertisedPrefix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPublicAdvertisedPrefix);

                    /** PublicAdvertisedPrefix byoipApiVersion. */
                    public byoipApiVersion?: (string|null);

                    /** PublicAdvertisedPrefix creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** PublicAdvertisedPrefix description. */
                    public description?: (string|null);

                    /** PublicAdvertisedPrefix dnsVerificationIp. */
                    public dnsVerificationIp?: (string|null);

                    /** PublicAdvertisedPrefix fingerprint. */
                    public fingerprint?: (string|null);

                    /** PublicAdvertisedPrefix id. */
                    public id?: (number|Long|string|null);

                    /** PublicAdvertisedPrefix ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** PublicAdvertisedPrefix ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** PublicAdvertisedPrefix kind. */
                    public kind?: (string|null);

                    /** PublicAdvertisedPrefix name. */
                    public name?: (string|null);

                    /** PublicAdvertisedPrefix pdpScope. */
                    public pdpScope?: (string|null);

                    /** PublicAdvertisedPrefix publicDelegatedPrefixs. */
                    public publicDelegatedPrefixs: google.cloud.compute.v1.IPublicAdvertisedPrefixPublicDelegatedPrefix[];

                    /** PublicAdvertisedPrefix selfLink. */
                    public selfLink?: (string|null);

                    /** PublicAdvertisedPrefix sharedSecret. */
                    public sharedSecret?: (string|null);

                    /** PublicAdvertisedPrefix status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PublicAdvertisedPrefix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicAdvertisedPrefix instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPublicAdvertisedPrefix): google.cloud.compute.v1.PublicAdvertisedPrefix;

                    /**
                     * Encodes the specified PublicAdvertisedPrefix message. Does not implicitly {@link google.cloud.compute.v1.PublicAdvertisedPrefix.verify|verify} messages.
                     * @param message PublicAdvertisedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPublicAdvertisedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicAdvertisedPrefix message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PublicAdvertisedPrefix.verify|verify} messages.
                     * @param message PublicAdvertisedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPublicAdvertisedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicAdvertisedPrefix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicAdvertisedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PublicAdvertisedPrefix;

                    /**
                     * Decodes a PublicAdvertisedPrefix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicAdvertisedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PublicAdvertisedPrefix;

                    /**
                     * Verifies a PublicAdvertisedPrefix message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicAdvertisedPrefix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicAdvertisedPrefix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PublicAdvertisedPrefix;

                    /**
                     * Creates a plain object from a PublicAdvertisedPrefix message. Also converts values to other types if specified.
                     * @param message PublicAdvertisedPrefix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PublicAdvertisedPrefix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicAdvertisedPrefix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicAdvertisedPrefix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PublicAdvertisedPrefix {

                    /** ByoipApiVersion enum. */
                    enum ByoipApiVersion {
                        UNDEFINED_BYOIP_API_VERSION = 0,
                        V1 = 2715,
                        V2 = 2716
                    }

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677
                    }

                    /** PdpScope enum. */
                    enum PdpScope {
                        UNDEFINED_PDP_SCOPE = 0,
                        GLOBAL = 494663587,
                        GLOBAL_AND_REGIONAL = 318053059,
                        REGIONAL = 92288543
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ANNOUNCED_TO_INTERNET = 177880897,
                        INITIAL = 518841124,
                        PREFIX_CONFIGURATION_COMPLETE = 480889551,
                        PREFIX_CONFIGURATION_IN_PROGRESS = 378550961,
                        PREFIX_REMOVAL_IN_PROGRESS = 284375783,
                        PTR_CONFIGURED = 513497167,
                        READY_TO_ANNOUNCE = 64641265,
                        REVERSE_DNS_LOOKUP_FAILED = 295755183,
                        VALIDATED = 66197998
                    }
                }

                /** Properties of a PublicAdvertisedPrefixList. */
                interface IPublicAdvertisedPrefixList {

                    /** PublicAdvertisedPrefixList id */
                    id?: (string|null);

                    /** PublicAdvertisedPrefixList items */
                    items?: (google.cloud.compute.v1.IPublicAdvertisedPrefix[]|null);

                    /** PublicAdvertisedPrefixList kind */
                    kind?: (string|null);

                    /** PublicAdvertisedPrefixList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PublicAdvertisedPrefixList selfLink */
                    selfLink?: (string|null);

                    /** PublicAdvertisedPrefixList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a PublicAdvertisedPrefixList. */
                class PublicAdvertisedPrefixList implements IPublicAdvertisedPrefixList {

                    /**
                     * Constructs a new PublicAdvertisedPrefixList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPublicAdvertisedPrefixList);

                    /** PublicAdvertisedPrefixList id. */
                    public id?: (string|null);

                    /** PublicAdvertisedPrefixList items. */
                    public items: google.cloud.compute.v1.IPublicAdvertisedPrefix[];

                    /** PublicAdvertisedPrefixList kind. */
                    public kind?: (string|null);

                    /** PublicAdvertisedPrefixList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PublicAdvertisedPrefixList selfLink. */
                    public selfLink?: (string|null);

                    /** PublicAdvertisedPrefixList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new PublicAdvertisedPrefixList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicAdvertisedPrefixList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPublicAdvertisedPrefixList): google.cloud.compute.v1.PublicAdvertisedPrefixList;

                    /**
                     * Encodes the specified PublicAdvertisedPrefixList message. Does not implicitly {@link google.cloud.compute.v1.PublicAdvertisedPrefixList.verify|verify} messages.
                     * @param message PublicAdvertisedPrefixList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPublicAdvertisedPrefixList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicAdvertisedPrefixList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PublicAdvertisedPrefixList.verify|verify} messages.
                     * @param message PublicAdvertisedPrefixList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPublicAdvertisedPrefixList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicAdvertisedPrefixList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicAdvertisedPrefixList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PublicAdvertisedPrefixList;

                    /**
                     * Decodes a PublicAdvertisedPrefixList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicAdvertisedPrefixList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PublicAdvertisedPrefixList;

                    /**
                     * Verifies a PublicAdvertisedPrefixList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicAdvertisedPrefixList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicAdvertisedPrefixList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PublicAdvertisedPrefixList;

                    /**
                     * Creates a plain object from a PublicAdvertisedPrefixList message. Also converts values to other types if specified.
                     * @param message PublicAdvertisedPrefixList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PublicAdvertisedPrefixList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicAdvertisedPrefixList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicAdvertisedPrefixList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PublicAdvertisedPrefixPublicDelegatedPrefix. */
                interface IPublicAdvertisedPrefixPublicDelegatedPrefix {

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix ipRange */
                    ipRange?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix name */
                    name?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix project */
                    project?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix region */
                    region?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix status */
                    status?: (string|null);
                }

                /** Represents a PublicAdvertisedPrefixPublicDelegatedPrefix. */
                class PublicAdvertisedPrefixPublicDelegatedPrefix implements IPublicAdvertisedPrefixPublicDelegatedPrefix {

                    /**
                     * Constructs a new PublicAdvertisedPrefixPublicDelegatedPrefix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPublicAdvertisedPrefixPublicDelegatedPrefix);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix ipRange. */
                    public ipRange?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix name. */
                    public name?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix project. */
                    public project?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix region. */
                    public region?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PublicAdvertisedPrefixPublicDelegatedPrefix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicAdvertisedPrefixPublicDelegatedPrefix instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPublicAdvertisedPrefixPublicDelegatedPrefix): google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix;

                    /**
                     * Encodes the specified PublicAdvertisedPrefixPublicDelegatedPrefix message. Does not implicitly {@link google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix.verify|verify} messages.
                     * @param message PublicAdvertisedPrefixPublicDelegatedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPublicAdvertisedPrefixPublicDelegatedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicAdvertisedPrefixPublicDelegatedPrefix message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix.verify|verify} messages.
                     * @param message PublicAdvertisedPrefixPublicDelegatedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPublicAdvertisedPrefixPublicDelegatedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicAdvertisedPrefixPublicDelegatedPrefix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicAdvertisedPrefixPublicDelegatedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix;

                    /**
                     * Decodes a PublicAdvertisedPrefixPublicDelegatedPrefix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicAdvertisedPrefixPublicDelegatedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix;

                    /**
                     * Verifies a PublicAdvertisedPrefixPublicDelegatedPrefix message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicAdvertisedPrefixPublicDelegatedPrefix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicAdvertisedPrefixPublicDelegatedPrefix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix;

                    /**
                     * Creates a plain object from a PublicAdvertisedPrefixPublicDelegatedPrefix message. Also converts values to other types if specified.
                     * @param message PublicAdvertisedPrefixPublicDelegatedPrefix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicAdvertisedPrefixPublicDelegatedPrefix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicAdvertisedPrefixPublicDelegatedPrefix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PublicDelegatedPrefix. */
                interface IPublicDelegatedPrefix {

                    /** PublicDelegatedPrefix allocatablePrefixLength */
                    allocatablePrefixLength?: (number|null);

                    /** PublicDelegatedPrefix byoipApiVersion */
                    byoipApiVersion?: (string|null);

                    /** PublicDelegatedPrefix creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** PublicDelegatedPrefix description */
                    description?: (string|null);

                    /** PublicDelegatedPrefix enableEnhancedIpv4Allocation */
                    enableEnhancedIpv4Allocation?: (boolean|null);

                    /** PublicDelegatedPrefix fingerprint */
                    fingerprint?: (string|null);

                    /** PublicDelegatedPrefix id */
                    id?: (number|Long|string|null);

                    /** PublicDelegatedPrefix ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** PublicDelegatedPrefix ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** PublicDelegatedPrefix isLiveMigration */
                    isLiveMigration?: (boolean|null);

                    /** PublicDelegatedPrefix kind */
                    kind?: (string|null);

                    /** PublicDelegatedPrefix mode */
                    mode?: (string|null);

                    /** PublicDelegatedPrefix name */
                    name?: (string|null);

                    /** PublicDelegatedPrefix parentPrefix */
                    parentPrefix?: (string|null);

                    /** PublicDelegatedPrefix publicDelegatedSubPrefixs */
                    publicDelegatedSubPrefixs?: (google.cloud.compute.v1.IPublicDelegatedPrefixPublicDelegatedSubPrefix[]|null);

                    /** PublicDelegatedPrefix region */
                    region?: (string|null);

                    /** PublicDelegatedPrefix selfLink */
                    selfLink?: (string|null);

                    /** PublicDelegatedPrefix status */
                    status?: (string|null);
                }

                /** Represents a PublicDelegatedPrefix. */
                class PublicDelegatedPrefix implements IPublicDelegatedPrefix {

                    /**
                     * Constructs a new PublicDelegatedPrefix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPublicDelegatedPrefix);

                    /** PublicDelegatedPrefix allocatablePrefixLength. */
                    public allocatablePrefixLength?: (number|null);

                    /** PublicDelegatedPrefix byoipApiVersion. */
                    public byoipApiVersion?: (string|null);

                    /** PublicDelegatedPrefix creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** PublicDelegatedPrefix description. */
                    public description?: (string|null);

                    /** PublicDelegatedPrefix enableEnhancedIpv4Allocation. */
                    public enableEnhancedIpv4Allocation?: (boolean|null);

                    /** PublicDelegatedPrefix fingerprint. */
                    public fingerprint?: (string|null);

                    /** PublicDelegatedPrefix id. */
                    public id?: (number|Long|string|null);

                    /** PublicDelegatedPrefix ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** PublicDelegatedPrefix ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** PublicDelegatedPrefix isLiveMigration. */
                    public isLiveMigration?: (boolean|null);

                    /** PublicDelegatedPrefix kind. */
                    public kind?: (string|null);

                    /** PublicDelegatedPrefix mode. */
                    public mode?: (string|null);

                    /** PublicDelegatedPrefix name. */
                    public name?: (string|null);

                    /** PublicDelegatedPrefix parentPrefix. */
                    public parentPrefix?: (string|null);

                    /** PublicDelegatedPrefix publicDelegatedSubPrefixs. */
                    public publicDelegatedSubPrefixs: google.cloud.compute.v1.IPublicDelegatedPrefixPublicDelegatedSubPrefix[];

                    /** PublicDelegatedPrefix region. */
                    public region?: (string|null);

                    /** PublicDelegatedPrefix selfLink. */
                    public selfLink?: (string|null);

                    /** PublicDelegatedPrefix status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PublicDelegatedPrefix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefix instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPublicDelegatedPrefix): google.cloud.compute.v1.PublicDelegatedPrefix;

                    /**
                     * Encodes the specified PublicDelegatedPrefix message. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefix.verify|verify} messages.
                     * @param message PublicDelegatedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPublicDelegatedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefix message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefix.verify|verify} messages.
                     * @param message PublicDelegatedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPublicDelegatedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PublicDelegatedPrefix;

                    /**
                     * Decodes a PublicDelegatedPrefix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PublicDelegatedPrefix;

                    /**
                     * Verifies a PublicDelegatedPrefix message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PublicDelegatedPrefix;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefix message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PublicDelegatedPrefix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PublicDelegatedPrefix {

                    /** ByoipApiVersion enum. */
                    enum ByoipApiVersion {
                        UNDEFINED_BYOIP_API_VERSION = 0,
                        V1 = 2715,
                        V2 = 2716
                    }

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        DELEGATION = 264149288,
                        EXTERNAL_IPV6_FORWARDING_RULE_CREATION = 398684356,
                        EXTERNAL_IPV6_SUBNETWORK_CREATION = 61198284,
                        INTERNAL_IPV6_SUBNETWORK_CREATION = 153239834
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        ANNOUNCED = 365103355,
                        ANNOUNCED_TO_GOOGLE = 454875705,
                        ANNOUNCED_TO_INTERNET = 177880897,
                        DELETING = 528602024,
                        INITIALIZING = 306588749,
                        READY_TO_ANNOUNCE = 64641265
                    }
                }

                /** Properties of a PublicDelegatedPrefixAggregatedList. */
                interface IPublicDelegatedPrefixAggregatedList {

                    /** PublicDelegatedPrefixAggregatedList id */
                    id?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IPublicDelegatedPrefixesScopedList }|null);

                    /** PublicDelegatedPrefixAggregatedList kind */
                    kind?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** PublicDelegatedPrefixAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a PublicDelegatedPrefixAggregatedList. */
                class PublicDelegatedPrefixAggregatedList implements IPublicDelegatedPrefixAggregatedList {

                    /**
                     * Constructs a new PublicDelegatedPrefixAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPublicDelegatedPrefixAggregatedList);

                    /** PublicDelegatedPrefixAggregatedList id. */
                    public id?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IPublicDelegatedPrefixesScopedList };

                    /** PublicDelegatedPrefixAggregatedList kind. */
                    public kind?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList unreachables. */
                    public unreachables: string[];

                    /** PublicDelegatedPrefixAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new PublicDelegatedPrefixAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefixAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPublicDelegatedPrefixAggregatedList): google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList;

                    /**
                     * Encodes the specified PublicDelegatedPrefixAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPublicDelegatedPrefixAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefixAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPublicDelegatedPrefixAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefixAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefixAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList;

                    /**
                     * Decodes a PublicDelegatedPrefixAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefixAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList;

                    /**
                     * Verifies a PublicDelegatedPrefixAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefixAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefixAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefixAggregatedList message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefixAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefixAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefixAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PublicDelegatedPrefixList. */
                interface IPublicDelegatedPrefixList {

                    /** PublicDelegatedPrefixList id */
                    id?: (string|null);

                    /** PublicDelegatedPrefixList items */
                    items?: (google.cloud.compute.v1.IPublicDelegatedPrefix[]|null);

                    /** PublicDelegatedPrefixList kind */
                    kind?: (string|null);

                    /** PublicDelegatedPrefixList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PublicDelegatedPrefixList selfLink */
                    selfLink?: (string|null);

                    /** PublicDelegatedPrefixList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a PublicDelegatedPrefixList. */
                class PublicDelegatedPrefixList implements IPublicDelegatedPrefixList {

                    /**
                     * Constructs a new PublicDelegatedPrefixList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPublicDelegatedPrefixList);

                    /** PublicDelegatedPrefixList id. */
                    public id?: (string|null);

                    /** PublicDelegatedPrefixList items. */
                    public items: google.cloud.compute.v1.IPublicDelegatedPrefix[];

                    /** PublicDelegatedPrefixList kind. */
                    public kind?: (string|null);

                    /** PublicDelegatedPrefixList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PublicDelegatedPrefixList selfLink. */
                    public selfLink?: (string|null);

                    /** PublicDelegatedPrefixList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new PublicDelegatedPrefixList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefixList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPublicDelegatedPrefixList): google.cloud.compute.v1.PublicDelegatedPrefixList;

                    /**
                     * Encodes the specified PublicDelegatedPrefixList message. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefixList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPublicDelegatedPrefixList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefixList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefixList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPublicDelegatedPrefixList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefixList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefixList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PublicDelegatedPrefixList;

                    /**
                     * Decodes a PublicDelegatedPrefixList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefixList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PublicDelegatedPrefixList;

                    /**
                     * Verifies a PublicDelegatedPrefixList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefixList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefixList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PublicDelegatedPrefixList;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefixList message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefixList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PublicDelegatedPrefixList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefixList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefixList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PublicDelegatedPrefixPublicDelegatedSubPrefix. */
                interface IPublicDelegatedPrefixPublicDelegatedSubPrefix {

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix allocatablePrefixLength */
                    allocatablePrefixLength?: (number|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix delegateeProject */
                    delegateeProject?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix description */
                    description?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix enableEnhancedIpv4Allocation */
                    enableEnhancedIpv4Allocation?: (boolean|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix isAddress */
                    isAddress?: (boolean|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix mode */
                    mode?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix name */
                    name?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix region */
                    region?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix status */
                    status?: (string|null);
                }

                /** Represents a PublicDelegatedPrefixPublicDelegatedSubPrefix. */
                class PublicDelegatedPrefixPublicDelegatedSubPrefix implements IPublicDelegatedPrefixPublicDelegatedSubPrefix {

                    /**
                     * Constructs a new PublicDelegatedPrefixPublicDelegatedSubPrefix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPublicDelegatedPrefixPublicDelegatedSubPrefix);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix allocatablePrefixLength. */
                    public allocatablePrefixLength?: (number|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix delegateeProject. */
                    public delegateeProject?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix description. */
                    public description?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix enableEnhancedIpv4Allocation. */
                    public enableEnhancedIpv4Allocation?: (boolean|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix isAddress. */
                    public isAddress?: (boolean|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix mode. */
                    public mode?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix name. */
                    public name?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix region. */
                    public region?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PublicDelegatedPrefixPublicDelegatedSubPrefix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefixPublicDelegatedSubPrefix instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPublicDelegatedPrefixPublicDelegatedSubPrefix): google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix;

                    /**
                     * Encodes the specified PublicDelegatedPrefixPublicDelegatedSubPrefix message. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix.verify|verify} messages.
                     * @param message PublicDelegatedPrefixPublicDelegatedSubPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPublicDelegatedPrefixPublicDelegatedSubPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefixPublicDelegatedSubPrefix message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix.verify|verify} messages.
                     * @param message PublicDelegatedPrefixPublicDelegatedSubPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPublicDelegatedPrefixPublicDelegatedSubPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefixPublicDelegatedSubPrefix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefixPublicDelegatedSubPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix;

                    /**
                     * Decodes a PublicDelegatedPrefixPublicDelegatedSubPrefix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefixPublicDelegatedSubPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix;

                    /**
                     * Verifies a PublicDelegatedPrefixPublicDelegatedSubPrefix message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefixPublicDelegatedSubPrefix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefixPublicDelegatedSubPrefix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefixPublicDelegatedSubPrefix message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefixPublicDelegatedSubPrefix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefixPublicDelegatedSubPrefix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefixPublicDelegatedSubPrefix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PublicDelegatedPrefixPublicDelegatedSubPrefix {

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        DELEGATION = 264149288,
                        EXTERNAL_IPV6_FORWARDING_RULE_CREATION = 398684356,
                        EXTERNAL_IPV6_SUBNETWORK_CREATION = 61198284,
                        INTERNAL_IPV6_SUBNETWORK_CREATION = 153239834
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        INACTIVE = 270421099
                    }
                }

                /** Properties of a PublicDelegatedPrefixesScopedList. */
                interface IPublicDelegatedPrefixesScopedList {

                    /** PublicDelegatedPrefixesScopedList publicDelegatedPrefixes */
                    publicDelegatedPrefixes?: (google.cloud.compute.v1.IPublicDelegatedPrefix[]|null);

                    /** PublicDelegatedPrefixesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a PublicDelegatedPrefixesScopedList. */
                class PublicDelegatedPrefixesScopedList implements IPublicDelegatedPrefixesScopedList {

                    /**
                     * Constructs a new PublicDelegatedPrefixesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IPublicDelegatedPrefixesScopedList);

                    /** PublicDelegatedPrefixesScopedList publicDelegatedPrefixes. */
                    public publicDelegatedPrefixes: google.cloud.compute.v1.IPublicDelegatedPrefix[];

                    /** PublicDelegatedPrefixesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new PublicDelegatedPrefixesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefixesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IPublicDelegatedPrefixesScopedList): google.cloud.compute.v1.PublicDelegatedPrefixesScopedList;

                    /**
                     * Encodes the specified PublicDelegatedPrefixesScopedList message. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefixesScopedList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IPublicDelegatedPrefixesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefixesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.PublicDelegatedPrefixesScopedList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IPublicDelegatedPrefixesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefixesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefixesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.PublicDelegatedPrefixesScopedList;

                    /**
                     * Decodes a PublicDelegatedPrefixesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefixesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.PublicDelegatedPrefixesScopedList;

                    /**
                     * Verifies a PublicDelegatedPrefixesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefixesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefixesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.PublicDelegatedPrefixesScopedList;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefixesScopedList message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefixesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.PublicDelegatedPrefixesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefixesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefixesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Quota. */
                interface IQuota {

                    /** Quota limit */
                    limit?: (number|null);

                    /** Quota metric */
                    metric?: (string|null);

                    /** Quota owner */
                    owner?: (string|null);

                    /** Quota usage */
                    usage?: (number|null);
                }

                /** Represents a Quota. */
                class Quota implements IQuota {

                    /**
                     * Constructs a new Quota.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IQuota);

                    /** Quota limit. */
                    public limit?: (number|null);

                    /** Quota metric. */
                    public metric?: (string|null);

                    /** Quota owner. */
                    public owner?: (string|null);

                    /** Quota usage. */
                    public usage?: (number|null);

                    /**
                     * Creates a new Quota instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Quota instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IQuota): google.cloud.compute.v1.Quota;

                    /**
                     * Encodes the specified Quota message. Does not implicitly {@link google.cloud.compute.v1.Quota.verify|verify} messages.
                     * @param message Quota message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IQuota, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Quota message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Quota.verify|verify} messages.
                     * @param message Quota message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IQuota, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Quota message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Quota
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Quota;

                    /**
                     * Decodes a Quota message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Quota
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Quota;

                    /**
                     * Verifies a Quota message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Quota message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Quota
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Quota;

                    /**
                     * Creates a plain object from a Quota message. Also converts values to other types if specified.
                     * @param message Quota
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Quota, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Quota to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Quota
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Quota {

                    /** Metric enum. */
                    enum Metric {
                        UNDEFINED_METRIC = 0,
                        A2_CPUS = 153206585,
                        AFFINITY_GROUPS = 108303563,
                        AUTOSCALERS = 471248988,
                        BACKEND_BUCKETS = 137626846,
                        BACKEND_SERVICES = 269623753,
                        C2D_CPUS = 508182517,
                        C2_CPUS = 317601211,
                        C3_CPUS = 346230362,
                        COMMITMENTS = 456141790,
                        COMMITTED_A2_CPUS = 59330902,
                        COMMITTED_C2D_CPUS = 282390904,
                        COMMITTED_C2_CPUS = 223725528,
                        COMMITTED_C3_CPUS = 252354679,
                        COMMITTED_CPUS = 292394702,
                        COMMITTED_E2_CPUS = 388120154,
                        COMMITTED_LICENSES = 357606869,
                        COMMITTED_LOCAL_SSD_TOTAL_GB = 308393480,
                        COMMITTED_M3_CPUS = 585985,
                        COMMITTED_MEMORY_OPTIMIZED_CPUS = 489057886,
                        COMMITTED_N2A_CPUS = 40064304,
                        COMMITTED_N2D_CPUS = 125951757,
                        COMMITTED_N2_CPUS = 322589603,
                        COMMITTED_NVIDIA_A100_80GB_GPUS = 464326565,
                        COMMITTED_NVIDIA_A100_GPUS = 375799445,
                        COMMITTED_NVIDIA_H100_GPUS = 71649180,
                        COMMITTED_NVIDIA_K80_GPUS = 3857188,
                        COMMITTED_NVIDIA_L4_GPUS = 19163645,
                        COMMITTED_NVIDIA_P100_GPUS = 107528100,
                        COMMITTED_NVIDIA_P4_GPUS = 347952897,
                        COMMITTED_NVIDIA_T4_GPUS = 139871237,
                        COMMITTED_NVIDIA_V100_GPUS = 219562,
                        COMMITTED_T2A_CPUS = 296378986,
                        COMMITTED_T2D_CPUS = 382266439,
                        COMMITTED_Z3_CPUS = 263844686,
                        CPUS = 2075595,
                        CPUS_ALL_REGIONS = 470911149,
                        DISKS_TOTAL_GB = 353520543,
                        E2_CPUS = 481995837,
                        EXTERNAL_MANAGED_FORWARDING_RULES = 150790089,
                        EXTERNAL_NETWORK_LB_FORWARDING_RULES = 374298265,
                        EXTERNAL_PROTOCOL_FORWARDING_RULES = 63478888,
                        EXTERNAL_VPN_GATEWAYS = 272457134,
                        FIREWALLS = 374485843,
                        FORWARDING_RULES = 432668949,
                        GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 164566753,
                        GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES = 327611949,
                        GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES = 400256169,
                        GLOBAL_INTERNAL_ADDRESSES = 42738332,
                        GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES = 256608303,
                        GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 323514196,
                        GPUS_ALL_REGIONS = 39387177,
                        HDB_TOTAL_GB = 319316271,
                        HDB_TOTAL_IOPS = 309720317,
                        HDB_TOTAL_THROUGHPUT = 20981374,
                        HEALTH_CHECKS = 289347502,
                        IMAGES = 15562360,
                        INSTANCES = 131337822,
                        INSTANCE_GROUPS = 355919038,
                        INSTANCE_GROUP_MANAGERS = 101798192,
                        INSTANCE_TEMPLATES = 226188271,
                        INTERCONNECTS = 415204741,
                        INTERCONNECT_ATTACHMENTS_PER_REGION = 159968086,
                        INTERCONNECT_ATTACHMENTS_TOTAL_MBPS = 425090419,
                        INTERCONNECT_TOTAL_GBPS = 285341866,
                        INTERNAL_ADDRESSES = 197899392,
                        INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES = 266433668,
                        IN_PLACE_SNAPSHOTS = 151359133,
                        IN_USE_ADDRESSES = 402125072,
                        IN_USE_BACKUP_SCHEDULES = 32786705,
                        IN_USE_SNAPSHOT_SCHEDULES = 462104083,
                        LOCAL_SSD_TOTAL_GB = 330878021,
                        M1_CPUS = 37203366,
                        M2_CPUS = 65832517,
                        M3_CPUS = 94461668,
                        MACHINE_IMAGES = 446986640,
                        N2A_CPUS = 265855917,
                        N2D_CPUS = 351743370,
                        N2_CPUS = 416465286,
                        NETWORKS = 485481477,
                        NETWORK_ATTACHMENTS = 149028575,
                        NETWORK_ENDPOINT_GROUPS = 102144909,
                        NETWORK_FIREWALL_POLICIES = 101117374,
                        NET_LB_SECURITY_POLICIES_PER_REGION = 157892269,
                        NET_LB_SECURITY_POLICY_RULES_PER_REGION = 356090931,
                        NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION = 311243888,
                        NODE_GROUPS = 24624817,
                        NODE_TEMPLATES = 474896668,
                        NVIDIA_A100_80GB_GPUS = 286389320,
                        NVIDIA_A100_GPUS = 504872978,
                        NVIDIA_K80_GPUS = 163886599,
                        NVIDIA_L4_GPUS = 491923130,
                        NVIDIA_P100_GPUS = 236601633,
                        NVIDIA_P100_VWS_GPUS = 213970574,
                        NVIDIA_P4_GPUS = 283841470,
                        NVIDIA_P4_VWS_GPUS = 528296619,
                        NVIDIA_T4_GPUS = 75759810,
                        NVIDIA_T4_VWS_GPUS = 319813039,
                        NVIDIA_V100_GPUS = 129293095,
                        PACKET_MIRRORINGS = 15578407,
                        PD_EXTREME_TOTAL_PROVISIONED_IOPS = 69593965,
                        PREEMPTIBLE_CPUS = 251184841,
                        PREEMPTIBLE_LOCAL_SSD_GB = 260819336,
                        PREEMPTIBLE_NVIDIA_A100_80GB_GPUS = 151942410,
                        PREEMPTIBLE_NVIDIA_A100_GPUS = 68832784,
                        PREEMPTIBLE_NVIDIA_H100_GPUS = 301553431,
                        PREEMPTIBLE_NVIDIA_K80_GPUS = 374960201,
                        PREEMPTIBLE_NVIDIA_L4_GPUS = 100408376,
                        PREEMPTIBLE_NVIDIA_P100_GPUS = 337432351,
                        PREEMPTIBLE_NVIDIA_P100_VWS_GPUS = 313544076,
                        PREEMPTIBLE_NVIDIA_P4_GPUS = 429197628,
                        PREEMPTIBLE_NVIDIA_P4_VWS_GPUS = 252981545,
                        PREEMPTIBLE_NVIDIA_T4_GPUS = 221115968,
                        PREEMPTIBLE_NVIDIA_T4_VWS_GPUS = 44497965,
                        PREEMPTIBLE_NVIDIA_V100_GPUS = 230123813,
                        PREEMPTIBLE_TPU_LITE_DEVICE_V5 = 174262523,
                        PREEMPTIBLE_TPU_LITE_PODSLICE_V5 = 112281796,
                        PREEMPTIBLE_TPU_PODSLICE_V4 = 425541132,
                        PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK = 231164291,
                        PSC_INTERNAL_LB_FORWARDING_RULES = 169005435,
                        PUBLIC_ADVERTISED_PREFIXES = 471371980,
                        PUBLIC_DELEGATED_PREFIXES = 532465974,
                        REGIONAL_AUTOSCALERS = 29363772,
                        REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 4240989,
                        REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES = 409564525,
                        REGIONAL_INSTANCE_GROUP_MANAGERS = 37543696,
                        REGIONAL_INTERNAL_LB_BACKEND_SERVICES = 137983760,
                        REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES = 96282539,
                        REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 483162968,
                        RESERVATIONS = 32644647,
                        RESOURCE_POLICIES = 83955297,
                        ROUTERS = 493018666,
                        ROUTES = 275680074,
                        SECURITY_POLICIES = 189518703,
                        SECURITY_POLICIES_PER_REGION = 249041734,
                        SECURITY_POLICY_ADVANCED_RULES_PER_REGION = 371815341,
                        SECURITY_POLICY_CEVAL_RULES = 470815689,
                        SECURITY_POLICY_RULES = 203549225,
                        SECURITY_POLICY_RULES_PER_REGION = 126510156,
                        SERVICE_ATTACHMENTS = 471521510,
                        SNAPSHOTS = 343405327,
                        SSD_TOTAL_GB = 161732561,
                        SSL_CERTIFICATES = 378372399,
                        SSL_POLICIES = 523254339,
                        STATIC_ADDRESSES = 93624049,
                        STATIC_BYOIP_ADDRESSES = 275809649,
                        STATIC_EXTERNAL_IPV6_ADDRESS_RANGES = 472346774,
                        SUBNETWORKS = 421330469,
                        T2A_CPUS = 522170599,
                        T2D_CPUS = 71187140,
                        TARGET_HTTPS_PROXIES = 219522506,
                        TARGET_HTTP_PROXIES = 164117155,
                        TARGET_INSTANCES = 284519728,
                        TARGET_POOLS = 348261257,
                        TARGET_SSL_PROXIES = 159216235,
                        TARGET_TCP_PROXIES = 182243136,
                        TARGET_VPN_GATEWAYS = 75029928,
                        TPU_LITE_DEVICE_V5 = 449577597,
                        TPU_LITE_PODSLICE_V5 = 12708294,
                        TPU_PODSLICE_V4 = 214467530,
                        URL_MAPS = 378660743,
                        VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES = 128400161,
                        VPN_GATEWAYS = 35620282,
                        VPN_TUNNELS = 104327296,
                        XPN_SERVICE_PROJECTS = 95191981
                    }
                }

                /** Properties of a QuotaExceededInfo. */
                interface IQuotaExceededInfo {

                    /** QuotaExceededInfo dimensions */
                    dimensions?: ({ [k: string]: string }|null);

                    /** QuotaExceededInfo futureLimit */
                    futureLimit?: (number|null);

                    /** QuotaExceededInfo limit */
                    limit?: (number|null);

                    /** QuotaExceededInfo limitName */
                    limitName?: (string|null);

                    /** QuotaExceededInfo metricName */
                    metricName?: (string|null);

                    /** QuotaExceededInfo rolloutStatus */
                    rolloutStatus?: (string|null);
                }

                /** Represents a QuotaExceededInfo. */
                class QuotaExceededInfo implements IQuotaExceededInfo {

                    /**
                     * Constructs a new QuotaExceededInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IQuotaExceededInfo);

                    /** QuotaExceededInfo dimensions. */
                    public dimensions: { [k: string]: string };

                    /** QuotaExceededInfo futureLimit. */
                    public futureLimit?: (number|null);

                    /** QuotaExceededInfo limit. */
                    public limit?: (number|null);

                    /** QuotaExceededInfo limitName. */
                    public limitName?: (string|null);

                    /** QuotaExceededInfo metricName. */
                    public metricName?: (string|null);

                    /** QuotaExceededInfo rolloutStatus. */
                    public rolloutStatus?: (string|null);

                    /**
                     * Creates a new QuotaExceededInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QuotaExceededInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IQuotaExceededInfo): google.cloud.compute.v1.QuotaExceededInfo;

                    /**
                     * Encodes the specified QuotaExceededInfo message. Does not implicitly {@link google.cloud.compute.v1.QuotaExceededInfo.verify|verify} messages.
                     * @param message QuotaExceededInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IQuotaExceededInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QuotaExceededInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.QuotaExceededInfo.verify|verify} messages.
                     * @param message QuotaExceededInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IQuotaExceededInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QuotaExceededInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QuotaExceededInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.QuotaExceededInfo;

                    /**
                     * Decodes a QuotaExceededInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QuotaExceededInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.QuotaExceededInfo;

                    /**
                     * Verifies a QuotaExceededInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a QuotaExceededInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QuotaExceededInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.QuotaExceededInfo;

                    /**
                     * Creates a plain object from a QuotaExceededInfo message. Also converts values to other types if specified.
                     * @param message QuotaExceededInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.QuotaExceededInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QuotaExceededInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QuotaExceededInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace QuotaExceededInfo {

                    /** RolloutStatus enum. */
                    enum RolloutStatus {
                        UNDEFINED_ROLLOUT_STATUS = 0,
                        IN_PROGRESS = 469193735,
                        ROLLOUT_STATUS_UNSPECIFIED = 26864568
                    }
                }

                /** Properties of a QuotaStatusWarning. */
                interface IQuotaStatusWarning {

                    /** QuotaStatusWarning code */
                    code?: (string|null);

                    /** QuotaStatusWarning data */
                    data?: (google.cloud.compute.v1.IData[]|null);

                    /** QuotaStatusWarning message */
                    message?: (string|null);
                }

                /** Represents a QuotaStatusWarning. */
                class QuotaStatusWarning implements IQuotaStatusWarning {

                    /**
                     * Constructs a new QuotaStatusWarning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IQuotaStatusWarning);

                    /** QuotaStatusWarning code. */
                    public code?: (string|null);

                    /** QuotaStatusWarning data. */
                    public data: google.cloud.compute.v1.IData[];

                    /** QuotaStatusWarning message. */
                    public message?: (string|null);

                    /**
                     * Creates a new QuotaStatusWarning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QuotaStatusWarning instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IQuotaStatusWarning): google.cloud.compute.v1.QuotaStatusWarning;

                    /**
                     * Encodes the specified QuotaStatusWarning message. Does not implicitly {@link google.cloud.compute.v1.QuotaStatusWarning.verify|verify} messages.
                     * @param message QuotaStatusWarning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IQuotaStatusWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QuotaStatusWarning message, length delimited. Does not implicitly {@link google.cloud.compute.v1.QuotaStatusWarning.verify|verify} messages.
                     * @param message QuotaStatusWarning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IQuotaStatusWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QuotaStatusWarning message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QuotaStatusWarning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.QuotaStatusWarning;

                    /**
                     * Decodes a QuotaStatusWarning message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QuotaStatusWarning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.QuotaStatusWarning;

                    /**
                     * Verifies a QuotaStatusWarning message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a QuotaStatusWarning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QuotaStatusWarning
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.QuotaStatusWarning;

                    /**
                     * Creates a plain object from a QuotaStatusWarning message. Also converts values to other types if specified.
                     * @param message QuotaStatusWarning
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.QuotaStatusWarning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QuotaStatusWarning to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QuotaStatusWarning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace QuotaStatusWarning {

                    /** Code enum. */
                    enum Code {
                        UNDEFINED_CODE = 0,
                        CLEANUP_FAILED = 150308440,
                        DEPRECATED_RESOURCE_USED = 391835586,
                        DEPRECATED_TYPE_USED = 346526230,
                        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967,
                        EXPERIMENTAL_TYPE_USED = 451954443,
                        EXTERNAL_API_WARNING = 175546307,
                        FIELD_VALUE_OVERRIDEN = 329669423,
                        INJECTED_KERNELS_DEPRECATED = 417377419,
                        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606,
                        LARGE_DEPLOYMENT_WARNING = 481440678,
                        LIST_OVERHEAD_QUOTA_EXCEED = 47618117,
                        MISSING_TYPE_DEPENDENCY = 344505463,
                        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999,
                        NEXT_HOP_CANNOT_IP_FORWARD = 383382887,
                        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434,
                        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446,
                        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146,
                        NEXT_HOP_NOT_RUNNING = 417081265,
                        NOT_CRITICAL_ERROR = 105763924,
                        NO_RESULTS_ON_PAGE = 30036744,
                        PARTIAL_SUCCESS = 39966469,
                        QUOTA_INFO_UNAVAILABLE = 304294182,
                        REQUIRED_TOS_AGREEMENT = 3745539,
                        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641,
                        RESOURCE_NOT_DELETED = 168598460,
                        SCHEMA_VALIDATION_IGNORED = 275245642,
                        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617,
                        UNDECLARED_PROPERTIES = 390513439,
                        UNREACHABLE = 13328052
                    }
                }

                /** Properties of a RawDisk. */
                interface IRawDisk {

                    /** RawDisk containerType */
                    containerType?: (string|null);

                    /** RawDisk sha1Checksum */
                    sha1Checksum?: (string|null);

                    /** RawDisk source */
                    source?: (string|null);
                }

                /** Represents a RawDisk. */
                class RawDisk implements IRawDisk {

                    /**
                     * Constructs a new RawDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRawDisk);

                    /** RawDisk containerType. */
                    public containerType?: (string|null);

                    /** RawDisk sha1Checksum. */
                    public sha1Checksum?: (string|null);

                    /** RawDisk source. */
                    public source?: (string|null);

                    /**
                     * Creates a new RawDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RawDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRawDisk): google.cloud.compute.v1.RawDisk;

                    /**
                     * Encodes the specified RawDisk message. Does not implicitly {@link google.cloud.compute.v1.RawDisk.verify|verify} messages.
                     * @param message RawDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRawDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RawDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RawDisk.verify|verify} messages.
                     * @param message RawDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRawDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RawDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RawDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RawDisk;

                    /**
                     * Decodes a RawDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RawDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RawDisk;

                    /**
                     * Verifies a RawDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RawDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RawDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RawDisk;

                    /**
                     * Creates a plain object from a RawDisk message. Also converts values to other types if specified.
                     * @param message RawDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RawDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RawDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RawDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RawDisk {

                    /** ContainerType enum. */
                    enum ContainerType {
                        UNDEFINED_CONTAINER_TYPE = 0,
                        TAR = 82821
                    }
                }

                /** Properties of a RecreateInstancesInstanceGroupManagerRequest. */
                interface IRecreateInstancesInstanceGroupManagerRequest {

                    /** RecreateInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** RecreateInstancesInstanceGroupManagerRequest instanceGroupManagersRecreateInstancesRequestResource */
                    instanceGroupManagersRecreateInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersRecreateInstancesRequest|null);

                    /** RecreateInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** RecreateInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** RecreateInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a RecreateInstancesInstanceGroupManagerRequest. */
                class RecreateInstancesInstanceGroupManagerRequest implements IRecreateInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new RecreateInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRecreateInstancesInstanceGroupManagerRequest);

                    /** RecreateInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** RecreateInstancesInstanceGroupManagerRequest instanceGroupManagersRecreateInstancesRequestResource. */
                    public instanceGroupManagersRecreateInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersRecreateInstancesRequest|null);

                    /** RecreateInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** RecreateInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** RecreateInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new RecreateInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecreateInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRecreateInstancesInstanceGroupManagerRequest): google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified RecreateInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message RecreateInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRecreateInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecreateInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message RecreateInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRecreateInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecreateInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecreateInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a RecreateInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecreateInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a RecreateInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecreateInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecreateInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a RecreateInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message RecreateInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecreateInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecreateInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RecreateInstancesRegionInstanceGroupManagerRequest. */
                interface IRecreateInstancesRegionInstanceGroupManagerRequest {

                    /** RecreateInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersRecreateRequestResource */
                    regionInstanceGroupManagersRecreateRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersRecreateRequest|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RecreateInstancesRegionInstanceGroupManagerRequest. */
                class RecreateInstancesRegionInstanceGroupManagerRequest implements IRecreateInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new RecreateInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRecreateInstancesRegionInstanceGroupManagerRequest);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** RecreateInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** RecreateInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** RecreateInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersRecreateRequestResource. */
                    public regionInstanceGroupManagersRecreateRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersRecreateRequest|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RecreateInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecreateInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRecreateInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1.RecreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified RecreateInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.RecreateInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message RecreateInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRecreateInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecreateInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RecreateInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message RecreateInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRecreateInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecreateInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecreateInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RecreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a RecreateInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecreateInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RecreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a RecreateInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecreateInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecreateInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RecreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a RecreateInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message RecreateInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RecreateInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecreateInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecreateInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Reference. */
                interface IReference {

                    /** Reference kind */
                    kind?: (string|null);

                    /** Reference referenceType */
                    referenceType?: (string|null);

                    /** Reference referrer */
                    referrer?: (string|null);

                    /** Reference target */
                    target?: (string|null);
                }

                /** Represents a Reference. */
                class Reference implements IReference {

                    /**
                     * Constructs a new Reference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReference);

                    /** Reference kind. */
                    public kind?: (string|null);

                    /** Reference referenceType. */
                    public referenceType?: (string|null);

                    /** Reference referrer. */
                    public referrer?: (string|null);

                    /** Reference target. */
                    public target?: (string|null);

                    /**
                     * Creates a new Reference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Reference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReference): google.cloud.compute.v1.Reference;

                    /**
                     * Encodes the specified Reference message. Does not implicitly {@link google.cloud.compute.v1.Reference.verify|verify} messages.
                     * @param message Reference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Reference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Reference.verify|verify} messages.
                     * @param message Reference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Reference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Reference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Reference;

                    /**
                     * Decodes a Reference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Reference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Reference;

                    /**
                     * Verifies a Reference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Reference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Reference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Reference;

                    /**
                     * Creates a plain object from a Reference message. Also converts values to other types if specified.
                     * @param message Reference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Reference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Reference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Reference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Region. */
                interface IRegion {

                    /** Region creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Region deprecated */
                    deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** Region description */
                    description?: (string|null);

                    /** Region id */
                    id?: (number|Long|string|null);

                    /** Region kind */
                    kind?: (string|null);

                    /** Region name */
                    name?: (string|null);

                    /** Region quotaStatusWarning */
                    quotaStatusWarning?: (google.cloud.compute.v1.IQuotaStatusWarning|null);

                    /** Region quotas */
                    quotas?: (google.cloud.compute.v1.IQuota[]|null);

                    /** Region selfLink */
                    selfLink?: (string|null);

                    /** Region status */
                    status?: (string|null);

                    /** Region supportsPzs */
                    supportsPzs?: (boolean|null);

                    /** Region zones */
                    zones?: (string[]|null);
                }

                /** Represents a Region. */
                class Region implements IRegion {

                    /**
                     * Constructs a new Region.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegion);

                    /** Region creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Region deprecated. */
                    public deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** Region description. */
                    public description?: (string|null);

                    /** Region id. */
                    public id?: (number|Long|string|null);

                    /** Region kind. */
                    public kind?: (string|null);

                    /** Region name. */
                    public name?: (string|null);

                    /** Region quotaStatusWarning. */
                    public quotaStatusWarning?: (google.cloud.compute.v1.IQuotaStatusWarning|null);

                    /** Region quotas. */
                    public quotas: google.cloud.compute.v1.IQuota[];

                    /** Region selfLink. */
                    public selfLink?: (string|null);

                    /** Region status. */
                    public status?: (string|null);

                    /** Region supportsPzs. */
                    public supportsPzs?: (boolean|null);

                    /** Region zones. */
                    public zones: string[];

                    /**
                     * Creates a new Region instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Region instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegion): google.cloud.compute.v1.Region;

                    /**
                     * Encodes the specified Region message. Does not implicitly {@link google.cloud.compute.v1.Region.verify|verify} messages.
                     * @param message Region message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Region message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Region.verify|verify} messages.
                     * @param message Region message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Region message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Region
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Region;

                    /**
                     * Decodes a Region message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Region
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Region;

                    /**
                     * Verifies a Region message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Region message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Region
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Region;

                    /**
                     * Creates a plain object from a Region message. Also converts values to other types if specified.
                     * @param message Region
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Region, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Region to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Region
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Region {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DOWN = 2104482,
                        UP = 2715
                    }
                }

                /** Properties of a RegionAddressesMoveRequest. */
                interface IRegionAddressesMoveRequest {

                    /** RegionAddressesMoveRequest description */
                    description?: (string|null);

                    /** RegionAddressesMoveRequest destinationAddress */
                    destinationAddress?: (string|null);
                }

                /** Represents a RegionAddressesMoveRequest. */
                class RegionAddressesMoveRequest implements IRegionAddressesMoveRequest {

                    /**
                     * Constructs a new RegionAddressesMoveRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionAddressesMoveRequest);

                    /** RegionAddressesMoveRequest description. */
                    public description?: (string|null);

                    /** RegionAddressesMoveRequest destinationAddress. */
                    public destinationAddress?: (string|null);

                    /**
                     * Creates a new RegionAddressesMoveRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionAddressesMoveRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionAddressesMoveRequest): google.cloud.compute.v1.RegionAddressesMoveRequest;

                    /**
                     * Encodes the specified RegionAddressesMoveRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionAddressesMoveRequest.verify|verify} messages.
                     * @param message RegionAddressesMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionAddressesMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionAddressesMoveRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionAddressesMoveRequest.verify|verify} messages.
                     * @param message RegionAddressesMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionAddressesMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionAddressesMoveRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionAddressesMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionAddressesMoveRequest;

                    /**
                     * Decodes a RegionAddressesMoveRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionAddressesMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionAddressesMoveRequest;

                    /**
                     * Verifies a RegionAddressesMoveRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionAddressesMoveRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionAddressesMoveRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionAddressesMoveRequest;

                    /**
                     * Creates a plain object from a RegionAddressesMoveRequest message. Also converts values to other types if specified.
                     * @param message RegionAddressesMoveRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionAddressesMoveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionAddressesMoveRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionAddressesMoveRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionAutoscalerList. */
                interface IRegionAutoscalerList {

                    /** RegionAutoscalerList id */
                    id?: (string|null);

                    /** RegionAutoscalerList items */
                    items?: (google.cloud.compute.v1.IAutoscaler[]|null);

                    /** RegionAutoscalerList kind */
                    kind?: (string|null);

                    /** RegionAutoscalerList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionAutoscalerList selfLink */
                    selfLink?: (string|null);

                    /** RegionAutoscalerList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RegionAutoscalerList. */
                class RegionAutoscalerList implements IRegionAutoscalerList {

                    /**
                     * Constructs a new RegionAutoscalerList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionAutoscalerList);

                    /** RegionAutoscalerList id. */
                    public id?: (string|null);

                    /** RegionAutoscalerList items. */
                    public items: google.cloud.compute.v1.IAutoscaler[];

                    /** RegionAutoscalerList kind. */
                    public kind?: (string|null);

                    /** RegionAutoscalerList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionAutoscalerList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionAutoscalerList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RegionAutoscalerList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionAutoscalerList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionAutoscalerList): google.cloud.compute.v1.RegionAutoscalerList;

                    /**
                     * Encodes the specified RegionAutoscalerList message. Does not implicitly {@link google.cloud.compute.v1.RegionAutoscalerList.verify|verify} messages.
                     * @param message RegionAutoscalerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionAutoscalerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionAutoscalerList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionAutoscalerList.verify|verify} messages.
                     * @param message RegionAutoscalerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionAutoscalerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionAutoscalerList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionAutoscalerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionAutoscalerList;

                    /**
                     * Decodes a RegionAutoscalerList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionAutoscalerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionAutoscalerList;

                    /**
                     * Verifies a RegionAutoscalerList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionAutoscalerList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionAutoscalerList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionAutoscalerList;

                    /**
                     * Creates a plain object from a RegionAutoscalerList message. Also converts values to other types if specified.
                     * @param message RegionAutoscalerList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionAutoscalerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionAutoscalerList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionAutoscalerList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDiskTypeList. */
                interface IRegionDiskTypeList {

                    /** RegionDiskTypeList id */
                    id?: (string|null);

                    /** RegionDiskTypeList items */
                    items?: (google.cloud.compute.v1.IDiskType[]|null);

                    /** RegionDiskTypeList kind */
                    kind?: (string|null);

                    /** RegionDiskTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionDiskTypeList selfLink */
                    selfLink?: (string|null);

                    /** RegionDiskTypeList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RegionDiskTypeList. */
                class RegionDiskTypeList implements IRegionDiskTypeList {

                    /**
                     * Constructs a new RegionDiskTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionDiskTypeList);

                    /** RegionDiskTypeList id. */
                    public id?: (string|null);

                    /** RegionDiskTypeList items. */
                    public items: google.cloud.compute.v1.IDiskType[];

                    /** RegionDiskTypeList kind. */
                    public kind?: (string|null);

                    /** RegionDiskTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionDiskTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionDiskTypeList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RegionDiskTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDiskTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionDiskTypeList): google.cloud.compute.v1.RegionDiskTypeList;

                    /**
                     * Encodes the specified RegionDiskTypeList message. Does not implicitly {@link google.cloud.compute.v1.RegionDiskTypeList.verify|verify} messages.
                     * @param message RegionDiskTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionDiskTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDiskTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionDiskTypeList.verify|verify} messages.
                     * @param message RegionDiskTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionDiskTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDiskTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDiskTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionDiskTypeList;

                    /**
                     * Decodes a RegionDiskTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDiskTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionDiskTypeList;

                    /**
                     * Verifies a RegionDiskTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDiskTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDiskTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionDiskTypeList;

                    /**
                     * Creates a plain object from a RegionDiskTypeList message. Also converts values to other types if specified.
                     * @param message RegionDiskTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionDiskTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDiskTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDiskTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDisksAddResourcePoliciesRequest. */
                interface IRegionDisksAddResourcePoliciesRequest {

                    /** RegionDisksAddResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents a RegionDisksAddResourcePoliciesRequest. */
                class RegionDisksAddResourcePoliciesRequest implements IRegionDisksAddResourcePoliciesRequest {

                    /**
                     * Constructs a new RegionDisksAddResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionDisksAddResourcePoliciesRequest);

                    /** RegionDisksAddResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new RegionDisksAddResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDisksAddResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionDisksAddResourcePoliciesRequest): google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequest;

                    /**
                     * Encodes the specified RegionDisksAddResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message RegionDisksAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionDisksAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDisksAddResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message RegionDisksAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionDisksAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDisksAddResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDisksAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequest;

                    /**
                     * Decodes a RegionDisksAddResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDisksAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequest;

                    /**
                     * Verifies a RegionDisksAddResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDisksAddResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDisksAddResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a RegionDisksAddResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message RegionDisksAddResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDisksAddResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDisksAddResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDisksRemoveResourcePoliciesRequest. */
                interface IRegionDisksRemoveResourcePoliciesRequest {

                    /** RegionDisksRemoveResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents a RegionDisksRemoveResourcePoliciesRequest. */
                class RegionDisksRemoveResourcePoliciesRequest implements IRegionDisksRemoveResourcePoliciesRequest {

                    /**
                     * Constructs a new RegionDisksRemoveResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionDisksRemoveResourcePoliciesRequest);

                    /** RegionDisksRemoveResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new RegionDisksRemoveResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDisksRemoveResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionDisksRemoveResourcePoliciesRequest): google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequest;

                    /**
                     * Encodes the specified RegionDisksRemoveResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message RegionDisksRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionDisksRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDisksRemoveResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message RegionDisksRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionDisksRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDisksRemoveResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDisksRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequest;

                    /**
                     * Decodes a RegionDisksRemoveResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDisksRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequest;

                    /**
                     * Verifies a RegionDisksRemoveResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDisksRemoveResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDisksRemoveResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a RegionDisksRemoveResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message RegionDisksRemoveResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDisksRemoveResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDisksRemoveResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDisksResizeRequest. */
                interface IRegionDisksResizeRequest {

                    /** RegionDisksResizeRequest sizeGb */
                    sizeGb?: (number|Long|string|null);
                }

                /** Represents a RegionDisksResizeRequest. */
                class RegionDisksResizeRequest implements IRegionDisksResizeRequest {

                    /**
                     * Constructs a new RegionDisksResizeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionDisksResizeRequest);

                    /** RegionDisksResizeRequest sizeGb. */
                    public sizeGb?: (number|Long|string|null);

                    /**
                     * Creates a new RegionDisksResizeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDisksResizeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionDisksResizeRequest): google.cloud.compute.v1.RegionDisksResizeRequest;

                    /**
                     * Encodes the specified RegionDisksResizeRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionDisksResizeRequest.verify|verify} messages.
                     * @param message RegionDisksResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionDisksResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDisksResizeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionDisksResizeRequest.verify|verify} messages.
                     * @param message RegionDisksResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionDisksResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDisksResizeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDisksResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionDisksResizeRequest;

                    /**
                     * Decodes a RegionDisksResizeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDisksResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionDisksResizeRequest;

                    /**
                     * Verifies a RegionDisksResizeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDisksResizeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDisksResizeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionDisksResizeRequest;

                    /**
                     * Creates a plain object from a RegionDisksResizeRequest message. Also converts values to other types if specified.
                     * @param message RegionDisksResizeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionDisksResizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDisksResizeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDisksResizeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDisksStartAsyncReplicationRequest. */
                interface IRegionDisksStartAsyncReplicationRequest {

                    /** RegionDisksStartAsyncReplicationRequest asyncSecondaryDisk */
                    asyncSecondaryDisk?: (string|null);
                }

                /** Represents a RegionDisksStartAsyncReplicationRequest. */
                class RegionDisksStartAsyncReplicationRequest implements IRegionDisksStartAsyncReplicationRequest {

                    /**
                     * Constructs a new RegionDisksStartAsyncReplicationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionDisksStartAsyncReplicationRequest);

                    /** RegionDisksStartAsyncReplicationRequest asyncSecondaryDisk. */
                    public asyncSecondaryDisk?: (string|null);

                    /**
                     * Creates a new RegionDisksStartAsyncReplicationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDisksStartAsyncReplicationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionDisksStartAsyncReplicationRequest): google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequest;

                    /**
                     * Encodes the specified RegionDisksStartAsyncReplicationRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequest.verify|verify} messages.
                     * @param message RegionDisksStartAsyncReplicationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionDisksStartAsyncReplicationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDisksStartAsyncReplicationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequest.verify|verify} messages.
                     * @param message RegionDisksStartAsyncReplicationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionDisksStartAsyncReplicationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDisksStartAsyncReplicationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDisksStartAsyncReplicationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequest;

                    /**
                     * Decodes a RegionDisksStartAsyncReplicationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDisksStartAsyncReplicationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequest;

                    /**
                     * Verifies a RegionDisksStartAsyncReplicationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDisksStartAsyncReplicationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDisksStartAsyncReplicationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequest;

                    /**
                     * Creates a plain object from a RegionDisksStartAsyncReplicationRequest message. Also converts values to other types if specified.
                     * @param message RegionDisksStartAsyncReplicationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDisksStartAsyncReplicationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDisksStartAsyncReplicationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupList. */
                interface IRegionInstanceGroupList {

                    /** RegionInstanceGroupList id */
                    id?: (string|null);

                    /** RegionInstanceGroupList items */
                    items?: (google.cloud.compute.v1.IInstanceGroup[]|null);

                    /** RegionInstanceGroupList kind */
                    kind?: (string|null);

                    /** RegionInstanceGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupList selfLink */
                    selfLink?: (string|null);

                    /** RegionInstanceGroupList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RegionInstanceGroupList. */
                class RegionInstanceGroupList implements IRegionInstanceGroupList {

                    /**
                     * Constructs a new RegionInstanceGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupList);

                    /** RegionInstanceGroupList id. */
                    public id?: (string|null);

                    /** RegionInstanceGroupList items. */
                    public items: google.cloud.compute.v1.IInstanceGroup[];

                    /** RegionInstanceGroupList kind. */
                    public kind?: (string|null);

                    /** RegionInstanceGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionInstanceGroupList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupList): google.cloud.compute.v1.RegionInstanceGroupList;

                    /**
                     * Encodes the specified RegionInstanceGroupList message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupList.verify|verify} messages.
                     * @param message RegionInstanceGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupList.verify|verify} messages.
                     * @param message RegionInstanceGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupList;

                    /**
                     * Decodes a RegionInstanceGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupList;

                    /**
                     * Verifies a RegionInstanceGroupList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupList;

                    /**
                     * Creates a plain object from a RegionInstanceGroupList message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerDeleteInstanceConfigReq. */
                interface IRegionInstanceGroupManagerDeleteInstanceConfigReq {

                    /** RegionInstanceGroupManagerDeleteInstanceConfigReq names */
                    names?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagerDeleteInstanceConfigReq. */
                class RegionInstanceGroupManagerDeleteInstanceConfigReq implements IRegionInstanceGroupManagerDeleteInstanceConfigReq {

                    /**
                     * Constructs a new RegionInstanceGroupManagerDeleteInstanceConfigReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagerDeleteInstanceConfigReq);

                    /** RegionInstanceGroupManagerDeleteInstanceConfigReq names. */
                    public names: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagerDeleteInstanceConfigReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerDeleteInstanceConfigReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagerDeleteInstanceConfigReq): google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReq;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerDeleteInstanceConfigReq message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerDeleteInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagerDeleteInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerDeleteInstanceConfigReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerDeleteInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagerDeleteInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerDeleteInstanceConfigReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerDeleteInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReq;

                    /**
                     * Decodes a RegionInstanceGroupManagerDeleteInstanceConfigReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerDeleteInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReq;

                    /**
                     * Verifies a RegionInstanceGroupManagerDeleteInstanceConfigReq message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerDeleteInstanceConfigReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerDeleteInstanceConfigReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReq;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerDeleteInstanceConfigReq message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerDeleteInstanceConfigReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerDeleteInstanceConfigReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerDeleteInstanceConfigReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerList. */
                interface IRegionInstanceGroupManagerList {

                    /** RegionInstanceGroupManagerList id */
                    id?: (string|null);

                    /** RegionInstanceGroupManagerList items */
                    items?: (google.cloud.compute.v1.IInstanceGroupManager[]|null);

                    /** RegionInstanceGroupManagerList kind */
                    kind?: (string|null);

                    /** RegionInstanceGroupManagerList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagerList selfLink */
                    selfLink?: (string|null);

                    /** RegionInstanceGroupManagerList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RegionInstanceGroupManagerList. */
                class RegionInstanceGroupManagerList implements IRegionInstanceGroupManagerList {

                    /**
                     * Constructs a new RegionInstanceGroupManagerList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagerList);

                    /** RegionInstanceGroupManagerList id. */
                    public id?: (string|null);

                    /** RegionInstanceGroupManagerList items. */
                    public items: google.cloud.compute.v1.IInstanceGroupManager[];

                    /** RegionInstanceGroupManagerList kind. */
                    public kind?: (string|null);

                    /** RegionInstanceGroupManagerList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagerList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionInstanceGroupManagerList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupManagerList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagerList): google.cloud.compute.v1.RegionInstanceGroupManagerList;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerList message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagerList.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagerList.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagerList;

                    /**
                     * Decodes a RegionInstanceGroupManagerList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagerList;

                    /**
                     * Verifies a RegionInstanceGroupManagerList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagerList;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerList message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerPatchInstanceConfigReq. */
                interface IRegionInstanceGroupManagerPatchInstanceConfigReq {

                    /** RegionInstanceGroupManagerPatchInstanceConfigReq perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1.IPerInstanceConfig[]|null);
                }

                /** Represents a RegionInstanceGroupManagerPatchInstanceConfigReq. */
                class RegionInstanceGroupManagerPatchInstanceConfigReq implements IRegionInstanceGroupManagerPatchInstanceConfigReq {

                    /**
                     * Constructs a new RegionInstanceGroupManagerPatchInstanceConfigReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagerPatchInstanceConfigReq);

                    /** RegionInstanceGroupManagerPatchInstanceConfigReq perInstanceConfigs. */
                    public perInstanceConfigs: google.cloud.compute.v1.IPerInstanceConfig[];

                    /**
                     * Creates a new RegionInstanceGroupManagerPatchInstanceConfigReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerPatchInstanceConfigReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagerPatchInstanceConfigReq): google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReq;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerPatchInstanceConfigReq message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerPatchInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagerPatchInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerPatchInstanceConfigReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerPatchInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagerPatchInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerPatchInstanceConfigReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerPatchInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReq;

                    /**
                     * Decodes a RegionInstanceGroupManagerPatchInstanceConfigReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerPatchInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReq;

                    /**
                     * Verifies a RegionInstanceGroupManagerPatchInstanceConfigReq message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerPatchInstanceConfigReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerPatchInstanceConfigReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReq;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerPatchInstanceConfigReq message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerPatchInstanceConfigReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerPatchInstanceConfigReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerPatchInstanceConfigReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerUpdateInstanceConfigReq. */
                interface IRegionInstanceGroupManagerUpdateInstanceConfigReq {

                    /** RegionInstanceGroupManagerUpdateInstanceConfigReq perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1.IPerInstanceConfig[]|null);
                }

                /** Represents a RegionInstanceGroupManagerUpdateInstanceConfigReq. */
                class RegionInstanceGroupManagerUpdateInstanceConfigReq implements IRegionInstanceGroupManagerUpdateInstanceConfigReq {

                    /**
                     * Constructs a new RegionInstanceGroupManagerUpdateInstanceConfigReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagerUpdateInstanceConfigReq);

                    /** RegionInstanceGroupManagerUpdateInstanceConfigReq perInstanceConfigs. */
                    public perInstanceConfigs: google.cloud.compute.v1.IPerInstanceConfig[];

                    /**
                     * Creates a new RegionInstanceGroupManagerUpdateInstanceConfigReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerUpdateInstanceConfigReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagerUpdateInstanceConfigReq): google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReq;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerUpdateInstanceConfigReq message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerUpdateInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagerUpdateInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerUpdateInstanceConfigReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerUpdateInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagerUpdateInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerUpdateInstanceConfigReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerUpdateInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReq;

                    /**
                     * Decodes a RegionInstanceGroupManagerUpdateInstanceConfigReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerUpdateInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReq;

                    /**
                     * Verifies a RegionInstanceGroupManagerUpdateInstanceConfigReq message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerUpdateInstanceConfigReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerUpdateInstanceConfigReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReq;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerUpdateInstanceConfigReq message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerUpdateInstanceConfigReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerUpdateInstanceConfigReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerUpdateInstanceConfigReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersAbandonInstancesRequest. */
                interface IRegionInstanceGroupManagersAbandonInstancesRequest {

                    /** RegionInstanceGroupManagersAbandonInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersAbandonInstancesRequest. */
                class RegionInstanceGroupManagersAbandonInstancesRequest implements IRegionInstanceGroupManagersAbandonInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersAbandonInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersAbandonInstancesRequest);

                    /** RegionInstanceGroupManagersAbandonInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersAbandonInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersAbandonInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersAbandonInstancesRequest): google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersAbandonInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersAbandonInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersAbandonInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersAbandonInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersAbandonInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersAbandonInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersAbandonInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersAbandonInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersAbandonInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersAbandonInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersAbandonInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersAbandonInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersAbandonInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersAbandonInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersAbandonInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersAbandonInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersAbandonInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersApplyUpdatesRequest. */
                interface IRegionInstanceGroupManagersApplyUpdatesRequest {

                    /** RegionInstanceGroupManagersApplyUpdatesRequest allInstances */
                    allInstances?: (boolean|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest instances */
                    instances?: (string[]|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest minimalAction */
                    minimalAction?: (string|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest mostDisruptiveAllowedAction */
                    mostDisruptiveAllowedAction?: (string|null);
                }

                /** Represents a RegionInstanceGroupManagersApplyUpdatesRequest. */
                class RegionInstanceGroupManagersApplyUpdatesRequest implements IRegionInstanceGroupManagersApplyUpdatesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersApplyUpdatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersApplyUpdatesRequest);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest allInstances. */
                    public allInstances?: (boolean|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest instances. */
                    public instances: string[];

                    /** RegionInstanceGroupManagersApplyUpdatesRequest minimalAction. */
                    public minimalAction?: (string|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest mostDisruptiveAllowedAction. */
                    public mostDisruptiveAllowedAction?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersApplyUpdatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersApplyUpdatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersApplyUpdatesRequest): google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersApplyUpdatesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersApplyUpdatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersApplyUpdatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersApplyUpdatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersApplyUpdatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersApplyUpdatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersApplyUpdatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersApplyUpdatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersApplyUpdatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersApplyUpdatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersApplyUpdatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersApplyUpdatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersApplyUpdatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersApplyUpdatesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersApplyUpdatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersApplyUpdatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersApplyUpdatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RegionInstanceGroupManagersApplyUpdatesRequest {

                    /** MinimalAction enum. */
                    enum MinimalAction {
                        UNDEFINED_MINIMAL_ACTION = 0
                    }

                    /** MostDisruptiveAllowedAction enum. */
                    enum MostDisruptiveAllowedAction {
                        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0
                    }
                }

                /** Properties of a RegionInstanceGroupManagersCreateInstancesRequest. */
                interface IRegionInstanceGroupManagersCreateInstancesRequest {

                    /** RegionInstanceGroupManagersCreateInstancesRequest instances */
                    instances?: (google.cloud.compute.v1.IPerInstanceConfig[]|null);
                }

                /** Represents a RegionInstanceGroupManagersCreateInstancesRequest. */
                class RegionInstanceGroupManagersCreateInstancesRequest implements IRegionInstanceGroupManagersCreateInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersCreateInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersCreateInstancesRequest);

                    /** RegionInstanceGroupManagersCreateInstancesRequest instances. */
                    public instances: google.cloud.compute.v1.IPerInstanceConfig[];

                    /**
                     * Creates a new RegionInstanceGroupManagersCreateInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersCreateInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersCreateInstancesRequest): google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersCreateInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersCreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersCreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersCreateInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersCreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersCreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersCreateInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersCreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersCreateInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersCreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersCreateInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersCreateInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersCreateInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersCreateInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersCreateInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersCreateInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersCreateInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersDeleteInstancesRequest. */
                interface IRegionInstanceGroupManagersDeleteInstancesRequest {

                    /** RegionInstanceGroupManagersDeleteInstancesRequest instances */
                    instances?: (string[]|null);

                    /** RegionInstanceGroupManagersDeleteInstancesRequest skipInstancesOnValidationError */
                    skipInstancesOnValidationError?: (boolean|null);
                }

                /** Represents a RegionInstanceGroupManagersDeleteInstancesRequest. */
                class RegionInstanceGroupManagersDeleteInstancesRequest implements IRegionInstanceGroupManagersDeleteInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersDeleteInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersDeleteInstancesRequest);

                    /** RegionInstanceGroupManagersDeleteInstancesRequest instances. */
                    public instances: string[];

                    /** RegionInstanceGroupManagersDeleteInstancesRequest skipInstancesOnValidationError. */
                    public skipInstancesOnValidationError?: (boolean|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersDeleteInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersDeleteInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersDeleteInstancesRequest): google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersDeleteInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersDeleteInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersDeleteInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersDeleteInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersDeleteInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersDeleteInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersDeleteInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersDeleteInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersDeleteInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersDeleteInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersDeleteInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersDeleteInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersDeleteInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersDeleteInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersDeleteInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersDeleteInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersDeleteInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersListErrorsResponse. */
                interface IRegionInstanceGroupManagersListErrorsResponse {

                    /** RegionInstanceGroupManagersListErrorsResponse items */
                    items?: (google.cloud.compute.v1.IInstanceManagedByIgmError[]|null);

                    /** RegionInstanceGroupManagersListErrorsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a RegionInstanceGroupManagersListErrorsResponse. */
                class RegionInstanceGroupManagersListErrorsResponse implements IRegionInstanceGroupManagersListErrorsResponse {

                    /**
                     * Constructs a new RegionInstanceGroupManagersListErrorsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersListErrorsResponse);

                    /** RegionInstanceGroupManagersListErrorsResponse items. */
                    public items: google.cloud.compute.v1.IInstanceManagedByIgmError[];

                    /** RegionInstanceGroupManagersListErrorsResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersListErrorsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersListErrorsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersListErrorsResponse): google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListErrorsResponse message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersListErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListErrorsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersListErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersListErrorsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersListErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse;

                    /**
                     * Decodes a RegionInstanceGroupManagersListErrorsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersListErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse;

                    /**
                     * Verifies a RegionInstanceGroupManagersListErrorsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersListErrorsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersListErrorsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersListErrorsResponse message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersListErrorsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersListErrorsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersListErrorsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersListInstanceConfigsResp. */
                interface IRegionInstanceGroupManagersListInstanceConfigsResp {

                    /** RegionInstanceGroupManagersListInstanceConfigsResp items */
                    items?: (google.cloud.compute.v1.IPerInstanceConfig[]|null);

                    /** RegionInstanceGroupManagersListInstanceConfigsResp nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagersListInstanceConfigsResp warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RegionInstanceGroupManagersListInstanceConfigsResp. */
                class RegionInstanceGroupManagersListInstanceConfigsResp implements IRegionInstanceGroupManagersListInstanceConfigsResp {

                    /**
                     * Constructs a new RegionInstanceGroupManagersListInstanceConfigsResp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersListInstanceConfigsResp);

                    /** RegionInstanceGroupManagersListInstanceConfigsResp items. */
                    public items: google.cloud.compute.v1.IPerInstanceConfig[];

                    /** RegionInstanceGroupManagersListInstanceConfigsResp nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagersListInstanceConfigsResp warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersListInstanceConfigsResp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersListInstanceConfigsResp instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersListInstanceConfigsResp): google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListInstanceConfigsResp message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListInstanceConfigsResp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersListInstanceConfigsResp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListInstanceConfigsResp message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListInstanceConfigsResp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersListInstanceConfigsResp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersListInstanceConfigsResp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersListInstanceConfigsResp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp;

                    /**
                     * Decodes a RegionInstanceGroupManagersListInstanceConfigsResp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersListInstanceConfigsResp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp;

                    /**
                     * Verifies a RegionInstanceGroupManagersListInstanceConfigsResp message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersListInstanceConfigsResp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersListInstanceConfigsResp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersListInstanceConfigsResp message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersListInstanceConfigsResp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersListInstanceConfigsResp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersListInstanceConfigsResp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersListInstancesResponse. */
                interface IRegionInstanceGroupManagersListInstancesResponse {

                    /** RegionInstanceGroupManagersListInstancesResponse managedInstances */
                    managedInstances?: (google.cloud.compute.v1.IManagedInstance[]|null);

                    /** RegionInstanceGroupManagersListInstancesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a RegionInstanceGroupManagersListInstancesResponse. */
                class RegionInstanceGroupManagersListInstancesResponse implements IRegionInstanceGroupManagersListInstancesResponse {

                    /**
                     * Constructs a new RegionInstanceGroupManagersListInstancesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersListInstancesResponse);

                    /** RegionInstanceGroupManagersListInstancesResponse managedInstances. */
                    public managedInstances: google.cloud.compute.v1.IManagedInstance[];

                    /** RegionInstanceGroupManagersListInstancesResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersListInstancesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersListInstancesResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersListInstancesResponse): google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListInstancesResponse message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListInstancesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersListInstancesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListInstancesResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListInstancesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersListInstancesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersListInstancesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersListInstancesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse;

                    /**
                     * Decodes a RegionInstanceGroupManagersListInstancesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersListInstancesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse;

                    /**
                     * Verifies a RegionInstanceGroupManagersListInstancesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersListInstancesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersListInstancesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersListInstancesResponse message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersListInstancesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersListInstancesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersListInstancesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersRecreateRequest. */
                interface IRegionInstanceGroupManagersRecreateRequest {

                    /** RegionInstanceGroupManagersRecreateRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersRecreateRequest. */
                class RegionInstanceGroupManagersRecreateRequest implements IRegionInstanceGroupManagersRecreateRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersRecreateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersRecreateRequest);

                    /** RegionInstanceGroupManagersRecreateRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersRecreateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersRecreateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersRecreateRequest): google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersRecreateRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersRecreateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersRecreateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersRecreateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersRecreateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersRecreateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersRecreateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersRecreateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersRecreateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersRecreateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersRecreateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersRecreateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersRecreateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersRecreateRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersRecreateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersRecreateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersRecreateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersResumeInstancesRequest. */
                interface IRegionInstanceGroupManagersResumeInstancesRequest {

                    /** RegionInstanceGroupManagersResumeInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersResumeInstancesRequest. */
                class RegionInstanceGroupManagersResumeInstancesRequest implements IRegionInstanceGroupManagersResumeInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersResumeInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersResumeInstancesRequest);

                    /** RegionInstanceGroupManagersResumeInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersResumeInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersResumeInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersResumeInstancesRequest): google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersResumeInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersResumeInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersResumeInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersResumeInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersResumeInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersResumeInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersResumeInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersResumeInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersResumeInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersResumeInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersResumeInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersResumeInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersResumeInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersResumeInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersResumeInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersResumeInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersResumeInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersSetTargetPoolsRequest. */
                interface IRegionInstanceGroupManagersSetTargetPoolsRequest {

                    /** RegionInstanceGroupManagersSetTargetPoolsRequest fingerprint */
                    fingerprint?: (string|null);

                    /** RegionInstanceGroupManagersSetTargetPoolsRequest targetPools */
                    targetPools?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersSetTargetPoolsRequest. */
                class RegionInstanceGroupManagersSetTargetPoolsRequest implements IRegionInstanceGroupManagersSetTargetPoolsRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersSetTargetPoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersSetTargetPoolsRequest);

                    /** RegionInstanceGroupManagersSetTargetPoolsRequest fingerprint. */
                    public fingerprint?: (string|null);

                    /** RegionInstanceGroupManagersSetTargetPoolsRequest targetPools. */
                    public targetPools: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersSetTargetPoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersSetTargetPoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersSetTargetPoolsRequest): google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetTargetPoolsRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersSetTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetTargetPoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersSetTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetTargetPoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersSetTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetTargetPoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersSetTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersSetTargetPoolsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersSetTargetPoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersSetTargetPoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersSetTargetPoolsRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersSetTargetPoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersSetTargetPoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersSetTargetPoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersSetTemplateRequest. */
                interface IRegionInstanceGroupManagersSetTemplateRequest {

                    /** RegionInstanceGroupManagersSetTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);
                }

                /** Represents a RegionInstanceGroupManagersSetTemplateRequest. */
                class RegionInstanceGroupManagersSetTemplateRequest implements IRegionInstanceGroupManagersSetTemplateRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersSetTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersSetTemplateRequest);

                    /** RegionInstanceGroupManagersSetTemplateRequest instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersSetTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersSetTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersSetTemplateRequest): google.cloud.compute.v1.RegionInstanceGroupManagersSetTemplateRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersSetTemplateRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersSetTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersSetTemplateRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersSetTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersSetTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersSetTemplateRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersSetTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersSetTemplateRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersSetTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersSetTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersSetTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersSetTemplateRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersSetTemplateRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersSetTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersSetTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersSetTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersSetTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersStartInstancesRequest. */
                interface IRegionInstanceGroupManagersStartInstancesRequest {

                    /** RegionInstanceGroupManagersStartInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersStartInstancesRequest. */
                class RegionInstanceGroupManagersStartInstancesRequest implements IRegionInstanceGroupManagersStartInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersStartInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersStartInstancesRequest);

                    /** RegionInstanceGroupManagersStartInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersStartInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersStartInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersStartInstancesRequest): google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersStartInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersStartInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersStartInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersStartInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersStartInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersStartInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersStartInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersStartInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersStartInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersStartInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersStartInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersStartInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersStartInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersStartInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersStartInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersStartInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersStartInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersStopInstancesRequest. */
                interface IRegionInstanceGroupManagersStopInstancesRequest {

                    /** RegionInstanceGroupManagersStopInstancesRequest forceStop */
                    forceStop?: (boolean|null);

                    /** RegionInstanceGroupManagersStopInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersStopInstancesRequest. */
                class RegionInstanceGroupManagersStopInstancesRequest implements IRegionInstanceGroupManagersStopInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersStopInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersStopInstancesRequest);

                    /** RegionInstanceGroupManagersStopInstancesRequest forceStop. */
                    public forceStop?: (boolean|null);

                    /** RegionInstanceGroupManagersStopInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersStopInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersStopInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersStopInstancesRequest): google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersStopInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersStopInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersStopInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersStopInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersStopInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersStopInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersStopInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersStopInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersStopInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersStopInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersStopInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersStopInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersStopInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersStopInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersStopInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersStopInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersStopInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersSuspendInstancesRequest. */
                interface IRegionInstanceGroupManagersSuspendInstancesRequest {

                    /** RegionInstanceGroupManagersSuspendInstancesRequest forceSuspend */
                    forceSuspend?: (boolean|null);

                    /** RegionInstanceGroupManagersSuspendInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersSuspendInstancesRequest. */
                class RegionInstanceGroupManagersSuspendInstancesRequest implements IRegionInstanceGroupManagersSuspendInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersSuspendInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersSuspendInstancesRequest);

                    /** RegionInstanceGroupManagersSuspendInstancesRequest forceSuspend. */
                    public forceSuspend?: (boolean|null);

                    /** RegionInstanceGroupManagersSuspendInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersSuspendInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersSuspendInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupManagersSuspendInstancesRequest): google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSuspendInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSuspendInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupManagersSuspendInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSuspendInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSuspendInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupManagersSuspendInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersSuspendInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersSuspendInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersSuspendInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersSuspendInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersSuspendInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersSuspendInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersSuspendInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersSuspendInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersSuspendInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersSuspendInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersSuspendInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupsListInstances. */
                interface IRegionInstanceGroupsListInstances {

                    /** RegionInstanceGroupsListInstances id */
                    id?: (string|null);

                    /** RegionInstanceGroupsListInstances items */
                    items?: (google.cloud.compute.v1.IInstanceWithNamedPorts[]|null);

                    /** RegionInstanceGroupsListInstances kind */
                    kind?: (string|null);

                    /** RegionInstanceGroupsListInstances nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupsListInstances selfLink */
                    selfLink?: (string|null);

                    /** RegionInstanceGroupsListInstances warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RegionInstanceGroupsListInstances. */
                class RegionInstanceGroupsListInstances implements IRegionInstanceGroupsListInstances {

                    /**
                     * Constructs a new RegionInstanceGroupsListInstances.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupsListInstances);

                    /** RegionInstanceGroupsListInstances id. */
                    public id?: (string|null);

                    /** RegionInstanceGroupsListInstances items. */
                    public items: google.cloud.compute.v1.IInstanceWithNamedPorts[];

                    /** RegionInstanceGroupsListInstances kind. */
                    public kind?: (string|null);

                    /** RegionInstanceGroupsListInstances nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupsListInstances selfLink. */
                    public selfLink?: (string|null);

                    /** RegionInstanceGroupsListInstances warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupsListInstances instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupsListInstances instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupsListInstances): google.cloud.compute.v1.RegionInstanceGroupsListInstances;

                    /**
                     * Encodes the specified RegionInstanceGroupsListInstances message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupsListInstances.verify|verify} messages.
                     * @param message RegionInstanceGroupsListInstances message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupsListInstances, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupsListInstances message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupsListInstances.verify|verify} messages.
                     * @param message RegionInstanceGroupsListInstances message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupsListInstances, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupsListInstances message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupsListInstances
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupsListInstances;

                    /**
                     * Decodes a RegionInstanceGroupsListInstances message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupsListInstances
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupsListInstances;

                    /**
                     * Verifies a RegionInstanceGroupsListInstances message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupsListInstances message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupsListInstances
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupsListInstances;

                    /**
                     * Creates a plain object from a RegionInstanceGroupsListInstances message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupsListInstances
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupsListInstances, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupsListInstances to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupsListInstances
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupsListInstancesRequest. */
                interface IRegionInstanceGroupsListInstancesRequest {

                    /** RegionInstanceGroupsListInstancesRequest instanceState */
                    instanceState?: (string|null);

                    /** RegionInstanceGroupsListInstancesRequest portName */
                    portName?: (string|null);
                }

                /** Represents a RegionInstanceGroupsListInstancesRequest. */
                class RegionInstanceGroupsListInstancesRequest implements IRegionInstanceGroupsListInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupsListInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupsListInstancesRequest);

                    /** RegionInstanceGroupsListInstancesRequest instanceState. */
                    public instanceState?: (string|null);

                    /** RegionInstanceGroupsListInstancesRequest portName. */
                    public portName?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupsListInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupsListInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupsListInstancesRequest): google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupsListInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupsListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupsListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupsListInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupsListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupsListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupsListInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupsListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupsListInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupsListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupsListInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupsListInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupsListInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupsListInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupsListInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupsListInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupsListInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RegionInstanceGroupsListInstancesRequest {

                    /** InstanceState enum. */
                    enum InstanceState {
                        UNDEFINED_INSTANCE_STATE = 0,
                        ALL = 64897,
                        RUNNING = 121282975
                    }
                }

                /** Properties of a RegionInstanceGroupsSetNamedPortsRequest. */
                interface IRegionInstanceGroupsSetNamedPortsRequest {

                    /** RegionInstanceGroupsSetNamedPortsRequest fingerprint */
                    fingerprint?: (string|null);

                    /** RegionInstanceGroupsSetNamedPortsRequest namedPorts */
                    namedPorts?: (google.cloud.compute.v1.INamedPort[]|null);
                }

                /** Represents a RegionInstanceGroupsSetNamedPortsRequest. */
                class RegionInstanceGroupsSetNamedPortsRequest implements IRegionInstanceGroupsSetNamedPortsRequest {

                    /**
                     * Constructs a new RegionInstanceGroupsSetNamedPortsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionInstanceGroupsSetNamedPortsRequest);

                    /** RegionInstanceGroupsSetNamedPortsRequest fingerprint. */
                    public fingerprint?: (string|null);

                    /** RegionInstanceGroupsSetNamedPortsRequest namedPorts. */
                    public namedPorts: google.cloud.compute.v1.INamedPort[];

                    /**
                     * Creates a new RegionInstanceGroupsSetNamedPortsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupsSetNamedPortsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionInstanceGroupsSetNamedPortsRequest): google.cloud.compute.v1.RegionInstanceGroupsSetNamedPortsRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupsSetNamedPortsRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupsSetNamedPortsRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupsSetNamedPortsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionInstanceGroupsSetNamedPortsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupsSetNamedPortsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionInstanceGroupsSetNamedPortsRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupsSetNamedPortsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionInstanceGroupsSetNamedPortsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupsSetNamedPortsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupsSetNamedPortsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionInstanceGroupsSetNamedPortsRequest;

                    /**
                     * Decodes a RegionInstanceGroupsSetNamedPortsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupsSetNamedPortsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionInstanceGroupsSetNamedPortsRequest;

                    /**
                     * Verifies a RegionInstanceGroupsSetNamedPortsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupsSetNamedPortsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupsSetNamedPortsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionInstanceGroupsSetNamedPortsRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupsSetNamedPortsRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupsSetNamedPortsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionInstanceGroupsSetNamedPortsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupsSetNamedPortsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupsSetNamedPortsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionList. */
                interface IRegionList {

                    /** RegionList id */
                    id?: (string|null);

                    /** RegionList items */
                    items?: (google.cloud.compute.v1.IRegion[]|null);

                    /** RegionList kind */
                    kind?: (string|null);

                    /** RegionList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionList selfLink */
                    selfLink?: (string|null);

                    /** RegionList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RegionList. */
                class RegionList implements IRegionList {

                    /**
                     * Constructs a new RegionList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionList);

                    /** RegionList id. */
                    public id?: (string|null);

                    /** RegionList items. */
                    public items: google.cloud.compute.v1.IRegion[];

                    /** RegionList kind. */
                    public kind?: (string|null);

                    /** RegionList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RegionList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionList): google.cloud.compute.v1.RegionList;

                    /**
                     * Encodes the specified RegionList message. Does not implicitly {@link google.cloud.compute.v1.RegionList.verify|verify} messages.
                     * @param message RegionList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionList.verify|verify} messages.
                     * @param message RegionList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionList;

                    /**
                     * Decodes a RegionList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionList;

                    /**
                     * Verifies a RegionList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionList;

                    /**
                     * Creates a plain object from a RegionList message. Also converts values to other types if specified.
                     * @param message RegionList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionNetworkEndpointGroupsAttachEndpointsRequest. */
                interface IRegionNetworkEndpointGroupsAttachEndpointsRequest {

                    /** RegionNetworkEndpointGroupsAttachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1.INetworkEndpoint[]|null);
                }

                /** Represents a RegionNetworkEndpointGroupsAttachEndpointsRequest. */
                class RegionNetworkEndpointGroupsAttachEndpointsRequest implements IRegionNetworkEndpointGroupsAttachEndpointsRequest {

                    /**
                     * Constructs a new RegionNetworkEndpointGroupsAttachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionNetworkEndpointGroupsAttachEndpointsRequest);

                    /** RegionNetworkEndpointGroupsAttachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1.INetworkEndpoint[];

                    /**
                     * Creates a new RegionNetworkEndpointGroupsAttachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionNetworkEndpointGroupsAttachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionNetworkEndpointGroupsAttachEndpointsRequest): google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Encodes the specified RegionNetworkEndpointGroupsAttachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message RegionNetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionNetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionNetworkEndpointGroupsAttachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message RegionNetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionNetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionNetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionNetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Decodes a RegionNetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionNetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Verifies a RegionNetworkEndpointGroupsAttachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionNetworkEndpointGroupsAttachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionNetworkEndpointGroupsAttachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Creates a plain object from a RegionNetworkEndpointGroupsAttachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message RegionNetworkEndpointGroupsAttachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionNetworkEndpointGroupsAttachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionNetworkEndpointGroupsAttachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionNetworkEndpointGroupsDetachEndpointsRequest. */
                interface IRegionNetworkEndpointGroupsDetachEndpointsRequest {

                    /** RegionNetworkEndpointGroupsDetachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1.INetworkEndpoint[]|null);
                }

                /** Represents a RegionNetworkEndpointGroupsDetachEndpointsRequest. */
                class RegionNetworkEndpointGroupsDetachEndpointsRequest implements IRegionNetworkEndpointGroupsDetachEndpointsRequest {

                    /**
                     * Constructs a new RegionNetworkEndpointGroupsDetachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionNetworkEndpointGroupsDetachEndpointsRequest);

                    /** RegionNetworkEndpointGroupsDetachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1.INetworkEndpoint[];

                    /**
                     * Creates a new RegionNetworkEndpointGroupsDetachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionNetworkEndpointGroupsDetachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionNetworkEndpointGroupsDetachEndpointsRequest): google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Encodes the specified RegionNetworkEndpointGroupsDetachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message RegionNetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionNetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionNetworkEndpointGroupsDetachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message RegionNetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionNetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionNetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionNetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Decodes a RegionNetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionNetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Verifies a RegionNetworkEndpointGroupsDetachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionNetworkEndpointGroupsDetachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionNetworkEndpointGroupsDetachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Creates a plain object from a RegionNetworkEndpointGroupsDetachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message RegionNetworkEndpointGroupsDetachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionNetworkEndpointGroupsDetachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionNetworkEndpointGroupsDetachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse. */
                interface IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse {

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse firewallPolicys */
                    firewallPolicys?: (google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy[]|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse firewalls */
                    firewalls?: (google.cloud.compute.v1.IFirewall[]|null);
                }

                /** Represents a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse. */
                class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse implements IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse {

                    /**
                     * Constructs a new RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse firewallPolicys. */
                    public firewallPolicys: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy[];

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse firewalls. */
                    public firewalls: google.cloud.compute.v1.IFirewall[];

                    /**
                     * Creates a new RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse): google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse;

                    /**
                     * Encodes the specified RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message. Does not implicitly {@link google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse;

                    /**
                     * Decodes a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse;

                    /**
                     * Verifies a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse;

                    /**
                     * Creates a plain object from a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message. Also converts values to other types if specified.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                interface IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName */
                    displayName?: (string|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy name */
                    name?: (string|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules */
                    packetMirroringRules?: (google.cloud.compute.v1.IFirewallPolicyRule[]|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority */
                    priority?: (number|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules */
                    rules?: (google.cloud.compute.v1.IFirewallPolicyRule[]|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy type */
                    type?: (string|null);
                }

                /** Represents a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy implements IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /**
                     * Constructs a new RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName. */
                    public displayName?: (string|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy name. */
                    public name?: (string|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules. */
                    public packetMirroringRules: google.cloud.compute.v1.IFirewallPolicyRule[];

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority. */
                    public priority?: (number|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules. */
                    public rules: google.cloud.compute.v1.IFirewallPolicyRule[];

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy): google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Encodes the specified RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Decodes a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Verifies a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Creates a plain object from a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Also converts values to other types if specified.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HIERARCHY = 69902869,
                        NETWORK = 413984270,
                        NETWORK_REGIONAL = 190804272,
                        SYSTEM_GLOBAL = 60099507,
                        SYSTEM_REGIONAL = 161777199,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a RegionSetLabelsRequest. */
                interface IRegionSetLabelsRequest {

                    /** RegionSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** RegionSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a RegionSetLabelsRequest. */
                class RegionSetLabelsRequest implements IRegionSetLabelsRequest {

                    /**
                     * Constructs a new RegionSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionSetLabelsRequest);

                    /** RegionSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** RegionSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new RegionSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionSetLabelsRequest): google.cloud.compute.v1.RegionSetLabelsRequest;

                    /**
                     * Encodes the specified RegionSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionSetLabelsRequest.verify|verify} messages.
                     * @param message RegionSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionSetLabelsRequest.verify|verify} messages.
                     * @param message RegionSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionSetLabelsRequest;

                    /**
                     * Decodes a RegionSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionSetLabelsRequest;

                    /**
                     * Verifies a RegionSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionSetLabelsRequest;

                    /**
                     * Creates a plain object from a RegionSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message RegionSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionSetPolicyRequest. */
                interface IRegionSetPolicyRequest {

                    /** RegionSetPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1.IBinding[]|null);

                    /** RegionSetPolicyRequest etag */
                    etag?: (string|null);

                    /** RegionSetPolicyRequest policy */
                    policy?: (google.cloud.compute.v1.IPolicy|null);
                }

                /** Represents a RegionSetPolicyRequest. */
                class RegionSetPolicyRequest implements IRegionSetPolicyRequest {

                    /**
                     * Constructs a new RegionSetPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionSetPolicyRequest);

                    /** RegionSetPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1.IBinding[];

                    /** RegionSetPolicyRequest etag. */
                    public etag?: (string|null);

                    /** RegionSetPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1.IPolicy|null);

                    /**
                     * Creates a new RegionSetPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionSetPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionSetPolicyRequest): google.cloud.compute.v1.RegionSetPolicyRequest;

                    /**
                     * Encodes the specified RegionSetPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionSetPolicyRequest.verify|verify} messages.
                     * @param message RegionSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionSetPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionSetPolicyRequest.verify|verify} messages.
                     * @param message RegionSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionSetPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionSetPolicyRequest;

                    /**
                     * Decodes a RegionSetPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionSetPolicyRequest;

                    /**
                     * Verifies a RegionSetPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionSetPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionSetPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionSetPolicyRequest;

                    /**
                     * Creates a plain object from a RegionSetPolicyRequest message. Also converts values to other types if specified.
                     * @param message RegionSetPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionSetPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionSetPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionSetPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionTargetHttpsProxiesSetSslCertificatesRequest. */
                interface IRegionTargetHttpsProxiesSetSslCertificatesRequest {

                    /** RegionTargetHttpsProxiesSetSslCertificatesRequest sslCertificates */
                    sslCertificates?: (string[]|null);
                }

                /** Represents a RegionTargetHttpsProxiesSetSslCertificatesRequest. */
                class RegionTargetHttpsProxiesSetSslCertificatesRequest implements IRegionTargetHttpsProxiesSetSslCertificatesRequest {

                    /**
                     * Constructs a new RegionTargetHttpsProxiesSetSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionTargetHttpsProxiesSetSslCertificatesRequest);

                    /** RegionTargetHttpsProxiesSetSslCertificatesRequest sslCertificates. */
                    public sslCertificates: string[];

                    /**
                     * Creates a new RegionTargetHttpsProxiesSetSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionTargetHttpsProxiesSetSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionTargetHttpsProxiesSetSslCertificatesRequest): google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Encodes the specified RegionTargetHttpsProxiesSetSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message RegionTargetHttpsProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionTargetHttpsProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionTargetHttpsProxiesSetSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message RegionTargetHttpsProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionTargetHttpsProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionTargetHttpsProxiesSetSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionTargetHttpsProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Decodes a RegionTargetHttpsProxiesSetSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionTargetHttpsProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Verifies a RegionTargetHttpsProxiesSetSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionTargetHttpsProxiesSetSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionTargetHttpsProxiesSetSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Creates a plain object from a RegionTargetHttpsProxiesSetSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message RegionTargetHttpsProxiesSetSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionTargetHttpsProxiesSetSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionTargetHttpsProxiesSetSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionUrlMapsValidateRequest. */
                interface IRegionUrlMapsValidateRequest {

                    /** RegionUrlMapsValidateRequest resource */
                    resource?: (google.cloud.compute.v1.IUrlMap|null);
                }

                /** Represents a RegionUrlMapsValidateRequest. */
                class RegionUrlMapsValidateRequest implements IRegionUrlMapsValidateRequest {

                    /**
                     * Constructs a new RegionUrlMapsValidateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRegionUrlMapsValidateRequest);

                    /** RegionUrlMapsValidateRequest resource. */
                    public resource?: (google.cloud.compute.v1.IUrlMap|null);

                    /**
                     * Creates a new RegionUrlMapsValidateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionUrlMapsValidateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRegionUrlMapsValidateRequest): google.cloud.compute.v1.RegionUrlMapsValidateRequest;

                    /**
                     * Encodes the specified RegionUrlMapsValidateRequest message. Does not implicitly {@link google.cloud.compute.v1.RegionUrlMapsValidateRequest.verify|verify} messages.
                     * @param message RegionUrlMapsValidateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRegionUrlMapsValidateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionUrlMapsValidateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RegionUrlMapsValidateRequest.verify|verify} messages.
                     * @param message RegionUrlMapsValidateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRegionUrlMapsValidateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionUrlMapsValidateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionUrlMapsValidateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RegionUrlMapsValidateRequest;

                    /**
                     * Decodes a RegionUrlMapsValidateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionUrlMapsValidateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RegionUrlMapsValidateRequest;

                    /**
                     * Verifies a RegionUrlMapsValidateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionUrlMapsValidateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionUrlMapsValidateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RegionUrlMapsValidateRequest;

                    /**
                     * Creates a plain object from a RegionUrlMapsValidateRequest message. Also converts values to other types if specified.
                     * @param message RegionUrlMapsValidateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RegionUrlMapsValidateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionUrlMapsValidateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionUrlMapsValidateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationFirewallPolicyRequest. */
                interface IRemoveAssociationFirewallPolicyRequest {

                    /** RemoveAssociationFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveAssociationFirewallPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveAssociationFirewallPolicyRequest. */
                class RemoveAssociationFirewallPolicyRequest implements IRemoveAssociationFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveAssociationFirewallPolicyRequest);

                    /** RemoveAssociationFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveAssociationFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveAssociationFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveAssociationFirewallPolicyRequest): google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationNetworkFirewallPolicyRequest. */
                interface IRemoveAssociationNetworkFirewallPolicyRequest {

                    /** RemoveAssociationNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveAssociationNetworkFirewallPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemoveAssociationNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveAssociationNetworkFirewallPolicyRequest. */
                class RemoveAssociationNetworkFirewallPolicyRequest implements IRemoveAssociationNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveAssociationNetworkFirewallPolicyRequest);

                    /** RemoveAssociationNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveAssociationNetworkFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemoveAssociationNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveAssociationNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveAssociationNetworkFirewallPolicyRequest): google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationOrganizationSecurityPolicyRequest. */
                interface IRemoveAssociationOrganizationSecurityPolicyRequest {

                    /** RemoveAssociationOrganizationSecurityPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a RemoveAssociationOrganizationSecurityPolicyRequest. */
                class RemoveAssociationOrganizationSecurityPolicyRequest implements IRemoveAssociationOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveAssociationOrganizationSecurityPolicyRequest);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new RemoveAssociationOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveAssociationOrganizationSecurityPolicyRequest): google.cloud.compute.v1.RemoveAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveAssociationOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationRegionNetworkFirewallPolicyRequest. */
                interface IRemoveAssociationRegionNetworkFirewallPolicyRequest {

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveAssociationRegionNetworkFirewallPolicyRequest. */
                class RemoveAssociationRegionNetworkFirewallPolicyRequest implements IRemoveAssociationRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveAssociationRegionNetworkFirewallPolicyRequest);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveAssociationRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveAssociationRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.RemoveAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveAssociationRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveHealthCheckTargetPoolRequest. */
                interface IRemoveHealthCheckTargetPoolRequest {

                    /** RemoveHealthCheckTargetPoolRequest project */
                    project?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest region */
                    region?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest targetPoolsRemoveHealthCheckRequestResource */
                    targetPoolsRemoveHealthCheckRequestResource?: (google.cloud.compute.v1.ITargetPoolsRemoveHealthCheckRequest|null);
                }

                /** Represents a RemoveHealthCheckTargetPoolRequest. */
                class RemoveHealthCheckTargetPoolRequest implements IRemoveHealthCheckTargetPoolRequest {

                    /**
                     * Constructs a new RemoveHealthCheckTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveHealthCheckTargetPoolRequest);

                    /** RemoveHealthCheckTargetPoolRequest project. */
                    public project: string;

                    /** RemoveHealthCheckTargetPoolRequest region. */
                    public region: string;

                    /** RemoveHealthCheckTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** RemoveHealthCheckTargetPoolRequest targetPoolsRemoveHealthCheckRequestResource. */
                    public targetPoolsRemoveHealthCheckRequestResource?: (google.cloud.compute.v1.ITargetPoolsRemoveHealthCheckRequest|null);

                    /**
                     * Creates a new RemoveHealthCheckTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveHealthCheckTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveHealthCheckTargetPoolRequest): google.cloud.compute.v1.RemoveHealthCheckTargetPoolRequest;

                    /**
                     * Encodes the specified RemoveHealthCheckTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveHealthCheckTargetPoolRequest.verify|verify} messages.
                     * @param message RemoveHealthCheckTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveHealthCheckTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveHealthCheckTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveHealthCheckTargetPoolRequest.verify|verify} messages.
                     * @param message RemoveHealthCheckTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveHealthCheckTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveHealthCheckTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveHealthCheckTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveHealthCheckTargetPoolRequest;

                    /**
                     * Decodes a RemoveHealthCheckTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveHealthCheckTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveHealthCheckTargetPoolRequest;

                    /**
                     * Verifies a RemoveHealthCheckTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveHealthCheckTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveHealthCheckTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveHealthCheckTargetPoolRequest;

                    /**
                     * Creates a plain object from a RemoveHealthCheckTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message RemoveHealthCheckTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveHealthCheckTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveHealthCheckTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveHealthCheckTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveInstanceTargetPoolRequest. */
                interface IRemoveInstanceTargetPoolRequest {

                    /** RemoveInstanceTargetPoolRequest project */
                    project?: (string|null);

                    /** RemoveInstanceTargetPoolRequest region */
                    region?: (string|null);

                    /** RemoveInstanceTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** RemoveInstanceTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** RemoveInstanceTargetPoolRequest targetPoolsRemoveInstanceRequestResource */
                    targetPoolsRemoveInstanceRequestResource?: (google.cloud.compute.v1.ITargetPoolsRemoveInstanceRequest|null);
                }

                /** Represents a RemoveInstanceTargetPoolRequest. */
                class RemoveInstanceTargetPoolRequest implements IRemoveInstanceTargetPoolRequest {

                    /**
                     * Constructs a new RemoveInstanceTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveInstanceTargetPoolRequest);

                    /** RemoveInstanceTargetPoolRequest project. */
                    public project: string;

                    /** RemoveInstanceTargetPoolRequest region. */
                    public region: string;

                    /** RemoveInstanceTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveInstanceTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** RemoveInstanceTargetPoolRequest targetPoolsRemoveInstanceRequestResource. */
                    public targetPoolsRemoveInstanceRequestResource?: (google.cloud.compute.v1.ITargetPoolsRemoveInstanceRequest|null);

                    /**
                     * Creates a new RemoveInstanceTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveInstanceTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveInstanceTargetPoolRequest): google.cloud.compute.v1.RemoveInstanceTargetPoolRequest;

                    /**
                     * Encodes the specified RemoveInstanceTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveInstanceTargetPoolRequest.verify|verify} messages.
                     * @param message RemoveInstanceTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveInstanceTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveInstanceTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveInstanceTargetPoolRequest.verify|verify} messages.
                     * @param message RemoveInstanceTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveInstanceTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveInstanceTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveInstanceTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveInstanceTargetPoolRequest;

                    /**
                     * Decodes a RemoveInstanceTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveInstanceTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveInstanceTargetPoolRequest;

                    /**
                     * Verifies a RemoveInstanceTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveInstanceTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveInstanceTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveInstanceTargetPoolRequest;

                    /**
                     * Creates a plain object from a RemoveInstanceTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message RemoveInstanceTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveInstanceTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveInstanceTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveInstanceTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveInstancesInstanceGroupRequest. */
                interface IRemoveInstancesInstanceGroupRequest {

                    /** RemoveInstancesInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** RemoveInstancesInstanceGroupRequest instanceGroupsRemoveInstancesRequestResource */
                    instanceGroupsRemoveInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupsRemoveInstancesRequest|null);

                    /** RemoveInstancesInstanceGroupRequest project */
                    project?: (string|null);

                    /** RemoveInstancesInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** RemoveInstancesInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a RemoveInstancesInstanceGroupRequest. */
                class RemoveInstancesInstanceGroupRequest implements IRemoveInstancesInstanceGroupRequest {

                    /**
                     * Constructs a new RemoveInstancesInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveInstancesInstanceGroupRequest);

                    /** RemoveInstancesInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** RemoveInstancesInstanceGroupRequest instanceGroupsRemoveInstancesRequestResource. */
                    public instanceGroupsRemoveInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupsRemoveInstancesRequest|null);

                    /** RemoveInstancesInstanceGroupRequest project. */
                    public project: string;

                    /** RemoveInstancesInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveInstancesInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new RemoveInstancesInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveInstancesInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveInstancesInstanceGroupRequest): google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest;

                    /**
                     * Encodes the specified RemoveInstancesInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest.verify|verify} messages.
                     * @param message RemoveInstancesInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveInstancesInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveInstancesInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest.verify|verify} messages.
                     * @param message RemoveInstancesInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveInstancesInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveInstancesInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveInstancesInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest;

                    /**
                     * Decodes a RemoveInstancesInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveInstancesInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest;

                    /**
                     * Verifies a RemoveInstancesInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveInstancesInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveInstancesInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest;

                    /**
                     * Creates a plain object from a RemoveInstancesInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message RemoveInstancesInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveInstancesInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveInstancesInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemovePacketMirroringRuleNetworkFirewallPolicyRequest. */
                interface IRemovePacketMirroringRuleNetworkFirewallPolicyRequest {

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemovePacketMirroringRuleNetworkFirewallPolicyRequest. */
                class RemovePacketMirroringRuleNetworkFirewallPolicyRequest implements IRemovePacketMirroringRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemovePacketMirroringRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemovePacketMirroringRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemovePacketMirroringRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemovePacketMirroringRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemovePacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemovePacketMirroringRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemovePacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemovePacketMirroringRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemovePeeringNetworkRequest. */
                interface IRemovePeeringNetworkRequest {

                    /** RemovePeeringNetworkRequest network */
                    network?: (string|null);

                    /** RemovePeeringNetworkRequest networksRemovePeeringRequestResource */
                    networksRemovePeeringRequestResource?: (google.cloud.compute.v1.INetworksRemovePeeringRequest|null);

                    /** RemovePeeringNetworkRequest project */
                    project?: (string|null);

                    /** RemovePeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemovePeeringNetworkRequest. */
                class RemovePeeringNetworkRequest implements IRemovePeeringNetworkRequest {

                    /**
                     * Constructs a new RemovePeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemovePeeringNetworkRequest);

                    /** RemovePeeringNetworkRequest network. */
                    public network: string;

                    /** RemovePeeringNetworkRequest networksRemovePeeringRequestResource. */
                    public networksRemovePeeringRequestResource?: (google.cloud.compute.v1.INetworksRemovePeeringRequest|null);

                    /** RemovePeeringNetworkRequest project. */
                    public project: string;

                    /** RemovePeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemovePeeringNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemovePeeringNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemovePeeringNetworkRequest): google.cloud.compute.v1.RemovePeeringNetworkRequest;

                    /**
                     * Encodes the specified RemovePeeringNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.RemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message RemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemovePeeringNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message RemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemovePeeringNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemovePeeringNetworkRequest;

                    /**
                     * Decodes a RemovePeeringNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemovePeeringNetworkRequest;

                    /**
                     * Verifies a RemovePeeringNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemovePeeringNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemovePeeringNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemovePeeringNetworkRequest;

                    /**
                     * Creates a plain object from a RemovePeeringNetworkRequest message. Also converts values to other types if specified.
                     * @param message RemovePeeringNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemovePeeringNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemovePeeringNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemovePeeringNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveResourcePoliciesDiskRequest. */
                interface IRemoveResourcePoliciesDiskRequest {

                    /** RemoveResourcePoliciesDiskRequest disk */
                    disk?: (string|null);

                    /** RemoveResourcePoliciesDiskRequest disksRemoveResourcePoliciesRequestResource */
                    disksRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1.IDisksRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesDiskRequest project */
                    project?: (string|null);

                    /** RemoveResourcePoliciesDiskRequest requestId */
                    requestId?: (string|null);

                    /** RemoveResourcePoliciesDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a RemoveResourcePoliciesDiskRequest. */
                class RemoveResourcePoliciesDiskRequest implements IRemoveResourcePoliciesDiskRequest {

                    /**
                     * Constructs a new RemoveResourcePoliciesDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveResourcePoliciesDiskRequest);

                    /** RemoveResourcePoliciesDiskRequest disk. */
                    public disk: string;

                    /** RemoveResourcePoliciesDiskRequest disksRemoveResourcePoliciesRequestResource. */
                    public disksRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1.IDisksRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesDiskRequest project. */
                    public project: string;

                    /** RemoveResourcePoliciesDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveResourcePoliciesDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new RemoveResourcePoliciesDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveResourcePoliciesDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveResourcePoliciesDiskRequest): google.cloud.compute.v1.RemoveResourcePoliciesDiskRequest;

                    /**
                     * Encodes the specified RemoveResourcePoliciesDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveResourcePoliciesDiskRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveResourcePoliciesDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveResourcePoliciesDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveResourcePoliciesDiskRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveResourcePoliciesDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveResourcePoliciesDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveResourcePoliciesDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveResourcePoliciesDiskRequest;

                    /**
                     * Decodes a RemoveResourcePoliciesDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveResourcePoliciesDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveResourcePoliciesDiskRequest;

                    /**
                     * Verifies a RemoveResourcePoliciesDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveResourcePoliciesDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveResourcePoliciesDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveResourcePoliciesDiskRequest;

                    /**
                     * Creates a plain object from a RemoveResourcePoliciesDiskRequest message. Also converts values to other types if specified.
                     * @param message RemoveResourcePoliciesDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveResourcePoliciesDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveResourcePoliciesDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveResourcePoliciesDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveResourcePoliciesInstanceRequest. */
                interface IRemoveResourcePoliciesInstanceRequest {

                    /** RemoveResourcePoliciesInstanceRequest instance */
                    instance?: (string|null);

                    /** RemoveResourcePoliciesInstanceRequest instancesRemoveResourcePoliciesRequestResource */
                    instancesRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1.IInstancesRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesInstanceRequest project */
                    project?: (string|null);

                    /** RemoveResourcePoliciesInstanceRequest requestId */
                    requestId?: (string|null);

                    /** RemoveResourcePoliciesInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a RemoveResourcePoliciesInstanceRequest. */
                class RemoveResourcePoliciesInstanceRequest implements IRemoveResourcePoliciesInstanceRequest {

                    /**
                     * Constructs a new RemoveResourcePoliciesInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveResourcePoliciesInstanceRequest);

                    /** RemoveResourcePoliciesInstanceRequest instance. */
                    public instance: string;

                    /** RemoveResourcePoliciesInstanceRequest instancesRemoveResourcePoliciesRequestResource. */
                    public instancesRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1.IInstancesRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesInstanceRequest project. */
                    public project: string;

                    /** RemoveResourcePoliciesInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveResourcePoliciesInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new RemoveResourcePoliciesInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveResourcePoliciesInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveResourcePoliciesInstanceRequest): google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest;

                    /**
                     * Encodes the specified RemoveResourcePoliciesInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveResourcePoliciesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveResourcePoliciesInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveResourcePoliciesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveResourcePoliciesInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveResourcePoliciesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest;

                    /**
                     * Decodes a RemoveResourcePoliciesInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveResourcePoliciesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest;

                    /**
                     * Verifies a RemoveResourcePoliciesInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveResourcePoliciesInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveResourcePoliciesInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest;

                    /**
                     * Creates a plain object from a RemoveResourcePoliciesInstanceRequest message. Also converts values to other types if specified.
                     * @param message RemoveResourcePoliciesInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveResourcePoliciesInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveResourcePoliciesInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveResourcePoliciesRegionDiskRequest. */
                interface IRemoveResourcePoliciesRegionDiskRequest {

                    /** RemoveResourcePoliciesRegionDiskRequest disk */
                    disk?: (string|null);

                    /** RemoveResourcePoliciesRegionDiskRequest project */
                    project?: (string|null);

                    /** RemoveResourcePoliciesRegionDiskRequest region */
                    region?: (string|null);

                    /** RemoveResourcePoliciesRegionDiskRequest regionDisksRemoveResourcePoliciesRequestResource */
                    regionDisksRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1.IRegionDisksRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveResourcePoliciesRegionDiskRequest. */
                class RemoveResourcePoliciesRegionDiskRequest implements IRemoveResourcePoliciesRegionDiskRequest {

                    /**
                     * Constructs a new RemoveResourcePoliciesRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveResourcePoliciesRegionDiskRequest);

                    /** RemoveResourcePoliciesRegionDiskRequest disk. */
                    public disk: string;

                    /** RemoveResourcePoliciesRegionDiskRequest project. */
                    public project: string;

                    /** RemoveResourcePoliciesRegionDiskRequest region. */
                    public region: string;

                    /** RemoveResourcePoliciesRegionDiskRequest regionDisksRemoveResourcePoliciesRequestResource. */
                    public regionDisksRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1.IRegionDisksRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveResourcePoliciesRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveResourcePoliciesRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveResourcePoliciesRegionDiskRequest): google.cloud.compute.v1.RemoveResourcePoliciesRegionDiskRequest;

                    /**
                     * Encodes the specified RemoveResourcePoliciesRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveResourcePoliciesRegionDiskRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveResourcePoliciesRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveResourcePoliciesRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveResourcePoliciesRegionDiskRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveResourcePoliciesRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveResourcePoliciesRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveResourcePoliciesRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveResourcePoliciesRegionDiskRequest;

                    /**
                     * Decodes a RemoveResourcePoliciesRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveResourcePoliciesRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveResourcePoliciesRegionDiskRequest;

                    /**
                     * Verifies a RemoveResourcePoliciesRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveResourcePoliciesRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveResourcePoliciesRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveResourcePoliciesRegionDiskRequest;

                    /**
                     * Creates a plain object from a RemoveResourcePoliciesRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message RemoveResourcePoliciesRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveResourcePoliciesRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveResourcePoliciesRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveResourcePoliciesRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleFirewallPolicyRequest. */
                interface IRemoveRuleFirewallPolicyRequest {

                    /** RemoveRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveRuleFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveRuleFirewallPolicyRequest. */
                class RemoveRuleFirewallPolicyRequest implements IRemoveRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveRuleFirewallPolicyRequest);

                    /** RemoveRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveRuleFirewallPolicyRequest): google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleNetworkFirewallPolicyRequest. */
                interface IRemoveRuleNetworkFirewallPolicyRequest {

                    /** RemoveRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemoveRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveRuleNetworkFirewallPolicyRequest. */
                class RemoveRuleNetworkFirewallPolicyRequest implements IRemoveRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveRuleNetworkFirewallPolicyRequest);

                    /** RemoveRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemoveRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleOrganizationSecurityPolicyRequest. */
                interface IRemoveRuleOrganizationSecurityPolicyRequest {

                    /** RemoveRuleOrganizationSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** RemoveRuleOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a RemoveRuleOrganizationSecurityPolicyRequest. */
                class RemoveRuleOrganizationSecurityPolicyRequest implements IRemoveRuleOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveRuleOrganizationSecurityPolicyRequest);

                    /** RemoveRuleOrganizationSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveRuleOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new RemoveRuleOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveRuleOrganizationSecurityPolicyRequest): google.cloud.compute.v1.RemoveRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a RemoveRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a RemoveRuleOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveRuleOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleRegionNetworkFirewallPolicyRequest. */
                interface IRemoveRuleRegionNetworkFirewallPolicyRequest {

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveRuleRegionNetworkFirewallPolicyRequest. */
                class RemoveRuleRegionNetworkFirewallPolicyRequest implements IRemoveRuleRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveRuleRegionNetworkFirewallPolicyRequest);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveRuleRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveRuleRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.RemoveRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveRuleRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveRuleRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleRegionSecurityPolicyRequest. */
                interface IRemoveRuleRegionSecurityPolicyRequest {

                    /** RemoveRuleRegionSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** RemoveRuleRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** RemoveRuleRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a RemoveRuleRegionSecurityPolicyRequest. */
                class RemoveRuleRegionSecurityPolicyRequest implements IRemoveRuleRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveRuleRegionSecurityPolicyRequest);

                    /** RemoveRuleRegionSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** RemoveRuleRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** RemoveRuleRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new RemoveRuleRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveRuleRegionSecurityPolicyRequest): google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest;

                    /**
                     * Decodes a RemoveRuleRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest;

                    /**
                     * Verifies a RemoveRuleRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleSecurityPolicyRequest. */
                interface IRemoveRuleSecurityPolicyRequest {

                    /** RemoveRuleSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleSecurityPolicyRequest project */
                    project?: (string|null);

                    /** RemoveRuleSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a RemoveRuleSecurityPolicyRequest. */
                class RemoveRuleSecurityPolicyRequest implements IRemoveRuleSecurityPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRemoveRuleSecurityPolicyRequest);

                    /** RemoveRuleSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleSecurityPolicyRequest project. */
                    public project: string;

                    /** RemoveRuleSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new RemoveRuleSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRemoveRuleSecurityPolicyRequest): google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRemoveRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRemoveRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest;

                    /**
                     * Decodes a RemoveRuleSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest;

                    /**
                     * Verifies a RemoveRuleSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReportFaultyReservationSubBlockRequest. */
                interface IReportFaultyReservationSubBlockRequest {

                    /** ReportFaultyReservationSubBlockRequest parentName */
                    parentName?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest project */
                    project?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest requestId */
                    requestId?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest reservationSubBlock */
                    reservationSubBlock?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest reservationSubBlocksReportFaultyRequestResource */
                    reservationSubBlocksReportFaultyRequestResource?: (google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequest|null);

                    /** ReportFaultyReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ReportFaultyReservationSubBlockRequest. */
                class ReportFaultyReservationSubBlockRequest implements IReportFaultyReservationSubBlockRequest {

                    /**
                     * Constructs a new ReportFaultyReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReportFaultyReservationSubBlockRequest);

                    /** ReportFaultyReservationSubBlockRequest parentName. */
                    public parentName: string;

                    /** ReportFaultyReservationSubBlockRequest project. */
                    public project: string;

                    /** ReportFaultyReservationSubBlockRequest requestId. */
                    public requestId?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest reservationSubBlock. */
                    public reservationSubBlock: string;

                    /** ReportFaultyReservationSubBlockRequest reservationSubBlocksReportFaultyRequestResource. */
                    public reservationSubBlocksReportFaultyRequestResource?: (google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequest|null);

                    /** ReportFaultyReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ReportFaultyReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReportFaultyReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReportFaultyReservationSubBlockRequest): google.cloud.compute.v1.ReportFaultyReservationSubBlockRequest;

                    /**
                     * Encodes the specified ReportFaultyReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.ReportFaultyReservationSubBlockRequest.verify|verify} messages.
                     * @param message ReportFaultyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReportFaultyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReportFaultyReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReportFaultyReservationSubBlockRequest.verify|verify} messages.
                     * @param message ReportFaultyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReportFaultyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReportFaultyReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReportFaultyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReportFaultyReservationSubBlockRequest;

                    /**
                     * Decodes a ReportFaultyReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReportFaultyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReportFaultyReservationSubBlockRequest;

                    /**
                     * Verifies a ReportFaultyReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReportFaultyReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReportFaultyReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReportFaultyReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a ReportFaultyReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message ReportFaultyReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReportFaultyReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReportFaultyReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReportFaultyReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReportHostAsFaultyInstanceRequest. */
                interface IReportHostAsFaultyInstanceRequest {

                    /** ReportHostAsFaultyInstanceRequest instance */
                    instance?: (string|null);

                    /** ReportHostAsFaultyInstanceRequest instancesReportHostAsFaultyRequestResource */
                    instancesReportHostAsFaultyRequestResource?: (google.cloud.compute.v1.IInstancesReportHostAsFaultyRequest|null);

                    /** ReportHostAsFaultyInstanceRequest project */
                    project?: (string|null);

                    /** ReportHostAsFaultyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** ReportHostAsFaultyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ReportHostAsFaultyInstanceRequest. */
                class ReportHostAsFaultyInstanceRequest implements IReportHostAsFaultyInstanceRequest {

                    /**
                     * Constructs a new ReportHostAsFaultyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReportHostAsFaultyInstanceRequest);

                    /** ReportHostAsFaultyInstanceRequest instance. */
                    public instance: string;

                    /** ReportHostAsFaultyInstanceRequest instancesReportHostAsFaultyRequestResource. */
                    public instancesReportHostAsFaultyRequestResource?: (google.cloud.compute.v1.IInstancesReportHostAsFaultyRequest|null);

                    /** ReportHostAsFaultyInstanceRequest project. */
                    public project: string;

                    /** ReportHostAsFaultyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** ReportHostAsFaultyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ReportHostAsFaultyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReportHostAsFaultyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReportHostAsFaultyInstanceRequest): google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest;

                    /**
                     * Encodes the specified ReportHostAsFaultyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest.verify|verify} messages.
                     * @param message ReportHostAsFaultyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReportHostAsFaultyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReportHostAsFaultyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest.verify|verify} messages.
                     * @param message ReportHostAsFaultyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReportHostAsFaultyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReportHostAsFaultyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReportHostAsFaultyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest;

                    /**
                     * Decodes a ReportHostAsFaultyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReportHostAsFaultyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest;

                    /**
                     * Verifies a ReportHostAsFaultyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReportHostAsFaultyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReportHostAsFaultyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest;

                    /**
                     * Creates a plain object from a ReportHostAsFaultyInstanceRequest message. Also converts values to other types if specified.
                     * @param message ReportHostAsFaultyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReportHostAsFaultyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReportHostAsFaultyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RequestMirrorPolicy. */
                interface IRequestMirrorPolicy {

                    /** RequestMirrorPolicy backendService */
                    backendService?: (string|null);

                    /** RequestMirrorPolicy mirrorPercent */
                    mirrorPercent?: (number|null);
                }

                /** Represents a RequestMirrorPolicy. */
                class RequestMirrorPolicy implements IRequestMirrorPolicy {

                    /**
                     * Constructs a new RequestMirrorPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRequestMirrorPolicy);

                    /** RequestMirrorPolicy backendService. */
                    public backendService?: (string|null);

                    /** RequestMirrorPolicy mirrorPercent. */
                    public mirrorPercent?: (number|null);

                    /**
                     * Creates a new RequestMirrorPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RequestMirrorPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRequestMirrorPolicy): google.cloud.compute.v1.RequestMirrorPolicy;

                    /**
                     * Encodes the specified RequestMirrorPolicy message. Does not implicitly {@link google.cloud.compute.v1.RequestMirrorPolicy.verify|verify} messages.
                     * @param message RequestMirrorPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRequestMirrorPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RequestMirrorPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RequestMirrorPolicy.verify|verify} messages.
                     * @param message RequestMirrorPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRequestMirrorPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RequestMirrorPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RequestMirrorPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RequestMirrorPolicy;

                    /**
                     * Decodes a RequestMirrorPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RequestMirrorPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RequestMirrorPolicy;

                    /**
                     * Verifies a RequestMirrorPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RequestMirrorPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RequestMirrorPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RequestMirrorPolicy;

                    /**
                     * Creates a plain object from a RequestMirrorPolicy message. Also converts values to other types if specified.
                     * @param message RequestMirrorPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RequestMirrorPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RequestMirrorPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RequestMirrorPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RequestRemovePeeringNetworkRequest. */
                interface IRequestRemovePeeringNetworkRequest {

                    /** RequestRemovePeeringNetworkRequest network */
                    network?: (string|null);

                    /** RequestRemovePeeringNetworkRequest networksRequestRemovePeeringRequestResource */
                    networksRequestRemovePeeringRequestResource?: (google.cloud.compute.v1.INetworksRequestRemovePeeringRequest|null);

                    /** RequestRemovePeeringNetworkRequest project */
                    project?: (string|null);

                    /** RequestRemovePeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RequestRemovePeeringNetworkRequest. */
                class RequestRemovePeeringNetworkRequest implements IRequestRemovePeeringNetworkRequest {

                    /**
                     * Constructs a new RequestRemovePeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRequestRemovePeeringNetworkRequest);

                    /** RequestRemovePeeringNetworkRequest network. */
                    public network: string;

                    /** RequestRemovePeeringNetworkRequest networksRequestRemovePeeringRequestResource. */
                    public networksRequestRemovePeeringRequestResource?: (google.cloud.compute.v1.INetworksRequestRemovePeeringRequest|null);

                    /** RequestRemovePeeringNetworkRequest project. */
                    public project: string;

                    /** RequestRemovePeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RequestRemovePeeringNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RequestRemovePeeringNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRequestRemovePeeringNetworkRequest): google.cloud.compute.v1.RequestRemovePeeringNetworkRequest;

                    /**
                     * Encodes the specified RequestRemovePeeringNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.RequestRemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message RequestRemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRequestRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RequestRemovePeeringNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RequestRemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message RequestRemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRequestRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RequestRemovePeeringNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RequestRemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RequestRemovePeeringNetworkRequest;

                    /**
                     * Decodes a RequestRemovePeeringNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RequestRemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RequestRemovePeeringNetworkRequest;

                    /**
                     * Verifies a RequestRemovePeeringNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RequestRemovePeeringNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RequestRemovePeeringNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RequestRemovePeeringNetworkRequest;

                    /**
                     * Creates a plain object from a RequestRemovePeeringNetworkRequest message. Also converts values to other types if specified.
                     * @param message RequestRemovePeeringNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RequestRemovePeeringNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RequestRemovePeeringNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RequestRemovePeeringNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Reservation. */
                interface IReservation {

                    /** Reservation advancedDeploymentControl */
                    advancedDeploymentControl?: (google.cloud.compute.v1.IReservationAdvancedDeploymentControl|null);

                    /** Reservation aggregateReservation */
                    aggregateReservation?: (google.cloud.compute.v1.IAllocationAggregateReservation|null);

                    /** Reservation commitment */
                    commitment?: (string|null);

                    /** Reservation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Reservation deleteAfterDuration */
                    deleteAfterDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** Reservation deleteAtTime */
                    deleteAtTime?: (string|null);

                    /** Reservation deploymentType */
                    deploymentType?: (string|null);

                    /** Reservation description */
                    description?: (string|null);

                    /** Reservation earlyAccessMaintenance */
                    earlyAccessMaintenance?: (string|null);

                    /** Reservation enableEmergentMaintenance */
                    enableEmergentMaintenance?: (boolean|null);

                    /** Reservation id */
                    id?: (number|Long|string|null);

                    /** Reservation kind */
                    kind?: (string|null);

                    /** Reservation linkedCommitments */
                    linkedCommitments?: (string[]|null);

                    /** Reservation name */
                    name?: (string|null);

                    /** Reservation params */
                    params?: (google.cloud.compute.v1.IReservationParams|null);

                    /** Reservation protectionTier */
                    protectionTier?: (string|null);

                    /** Reservation reservationSharingPolicy */
                    reservationSharingPolicy?: (google.cloud.compute.v1.IAllocationReservationSharingPolicy|null);

                    /** Reservation resourcePolicies */
                    resourcePolicies?: ({ [k: string]: string }|null);

                    /** Reservation resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1.IAllocationResourceStatus|null);

                    /** Reservation satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Reservation schedulingType */
                    schedulingType?: (string|null);

                    /** Reservation selfLink */
                    selfLink?: (string|null);

                    /** Reservation shareSettings */
                    shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** Reservation specificReservation */
                    specificReservation?: (google.cloud.compute.v1.IAllocationSpecificSKUReservation|null);

                    /** Reservation specificReservationRequired */
                    specificReservationRequired?: (boolean|null);

                    /** Reservation status */
                    status?: (string|null);

                    /** Reservation zone */
                    zone?: (string|null);
                }

                /** Represents a Reservation. */
                class Reservation implements IReservation {

                    /**
                     * Constructs a new Reservation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservation);

                    /** Reservation advancedDeploymentControl. */
                    public advancedDeploymentControl?: (google.cloud.compute.v1.IReservationAdvancedDeploymentControl|null);

                    /** Reservation aggregateReservation. */
                    public aggregateReservation?: (google.cloud.compute.v1.IAllocationAggregateReservation|null);

                    /** Reservation commitment. */
                    public commitment?: (string|null);

                    /** Reservation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Reservation deleteAfterDuration. */
                    public deleteAfterDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** Reservation deleteAtTime. */
                    public deleteAtTime?: (string|null);

                    /** Reservation deploymentType. */
                    public deploymentType?: (string|null);

                    /** Reservation description. */
                    public description?: (string|null);

                    /** Reservation earlyAccessMaintenance. */
                    public earlyAccessMaintenance?: (string|null);

                    /** Reservation enableEmergentMaintenance. */
                    public enableEmergentMaintenance?: (boolean|null);

                    /** Reservation id. */
                    public id?: (number|Long|string|null);

                    /** Reservation kind. */
                    public kind?: (string|null);

                    /** Reservation linkedCommitments. */
                    public linkedCommitments: string[];

                    /** Reservation name. */
                    public name?: (string|null);

                    /** Reservation params. */
                    public params?: (google.cloud.compute.v1.IReservationParams|null);

                    /** Reservation protectionTier. */
                    public protectionTier?: (string|null);

                    /** Reservation reservationSharingPolicy. */
                    public reservationSharingPolicy?: (google.cloud.compute.v1.IAllocationReservationSharingPolicy|null);

                    /** Reservation resourcePolicies. */
                    public resourcePolicies: { [k: string]: string };

                    /** Reservation resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1.IAllocationResourceStatus|null);

                    /** Reservation satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Reservation schedulingType. */
                    public schedulingType?: (string|null);

                    /** Reservation selfLink. */
                    public selfLink?: (string|null);

                    /** Reservation shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** Reservation specificReservation. */
                    public specificReservation?: (google.cloud.compute.v1.IAllocationSpecificSKUReservation|null);

                    /** Reservation specificReservationRequired. */
                    public specificReservationRequired?: (boolean|null);

                    /** Reservation status. */
                    public status?: (string|null);

                    /** Reservation zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Reservation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Reservation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservation): google.cloud.compute.v1.Reservation;

                    /**
                     * Encodes the specified Reservation message. Does not implicitly {@link google.cloud.compute.v1.Reservation.verify|verify} messages.
                     * @param message Reservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Reservation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Reservation.verify|verify} messages.
                     * @param message Reservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Reservation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Reservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Reservation;

                    /**
                     * Decodes a Reservation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Reservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Reservation;

                    /**
                     * Verifies a Reservation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Reservation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Reservation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Reservation;

                    /**
                     * Creates a plain object from a Reservation message. Also converts values to other types if specified.
                     * @param message Reservation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Reservation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Reservation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Reservation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Reservation {

                    /** DeploymentType enum. */
                    enum DeploymentType {
                        UNDEFINED_DEPLOYMENT_TYPE = 0,
                        DENSE = 64932607,
                        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180
                    }

                    /** EarlyAccessMaintenance enum. */
                    enum EarlyAccessMaintenance {
                        UNDEFINED_EARLY_ACCESS_MAINTENANCE = 0,
                        NO_EARLY_ACCESS = 220751774,
                        WAVE1 = 82367576,
                        WAVE2 = 82367577
                    }

                    /** ProtectionTier enum. */
                    enum ProtectionTier {
                        UNDEFINED_PROTECTION_TIER = 0,
                        CAPACITY_OPTIMIZED = 17430466,
                        PROTECTION_TIER_UNSPECIFIED = 262261984,
                        STANDARD = 484642493
                    }

                    /** SchedulingType enum. */
                    enum SchedulingType {
                        UNDEFINED_SCHEDULING_TYPE = 0,
                        GROUPED = 474540862,
                        GROUP_MAINTENANCE_TYPE_UNSPECIFIED = 447183678,
                        INDEPENDENT = 127011674
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963,
                        UPDATING = 494614342
                    }
                }

                /** Properties of a ReservationAdvancedDeploymentControl. */
                interface IReservationAdvancedDeploymentControl {

                    /** ReservationAdvancedDeploymentControl reservationOperationalMode */
                    reservationOperationalMode?: (string|null);
                }

                /** Represents a ReservationAdvancedDeploymentControl. */
                class ReservationAdvancedDeploymentControl implements IReservationAdvancedDeploymentControl {

                    /**
                     * Constructs a new ReservationAdvancedDeploymentControl.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationAdvancedDeploymentControl);

                    /** ReservationAdvancedDeploymentControl reservationOperationalMode. */
                    public reservationOperationalMode?: (string|null);

                    /**
                     * Creates a new ReservationAdvancedDeploymentControl instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationAdvancedDeploymentControl instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationAdvancedDeploymentControl): google.cloud.compute.v1.ReservationAdvancedDeploymentControl;

                    /**
                     * Encodes the specified ReservationAdvancedDeploymentControl message. Does not implicitly {@link google.cloud.compute.v1.ReservationAdvancedDeploymentControl.verify|verify} messages.
                     * @param message ReservationAdvancedDeploymentControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationAdvancedDeploymentControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationAdvancedDeploymentControl message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationAdvancedDeploymentControl.verify|verify} messages.
                     * @param message ReservationAdvancedDeploymentControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationAdvancedDeploymentControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationAdvancedDeploymentControl message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationAdvancedDeploymentControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationAdvancedDeploymentControl;

                    /**
                     * Decodes a ReservationAdvancedDeploymentControl message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationAdvancedDeploymentControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationAdvancedDeploymentControl;

                    /**
                     * Verifies a ReservationAdvancedDeploymentControl message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationAdvancedDeploymentControl message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationAdvancedDeploymentControl
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationAdvancedDeploymentControl;

                    /**
                     * Creates a plain object from a ReservationAdvancedDeploymentControl message. Also converts values to other types if specified.
                     * @param message ReservationAdvancedDeploymentControl
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationAdvancedDeploymentControl, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationAdvancedDeploymentControl to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationAdvancedDeploymentControl
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationAdvancedDeploymentControl {

                    /** ReservationOperationalMode enum. */
                    enum ReservationOperationalMode {
                        UNDEFINED_RESERVATION_OPERATIONAL_MODE = 0,
                        ALL_CAPACITY = 500029880,
                        HIGHLY_AVAILABLE_CAPACITY = 110861600,
                        RESERVATION_OPERATIONAL_MODE_UNSPECIFIED = 194296603
                    }
                }

                /** Properties of a ReservationAffinity. */
                interface IReservationAffinity {

                    /** ReservationAffinity consumeReservationType */
                    consumeReservationType?: (string|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.cloud.compute.v1.IReservationAffinity);

                    /** ReservationAffinity consumeReservationType. */
                    public consumeReservationType?: (string|null);

                    /** ReservationAffinity key. */
                    public key?: (string|null);

                    /** 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.cloud.compute.v1.IReservationAffinity): google.cloud.compute.v1.ReservationAffinity;

                    /**
                     * Encodes the specified ReservationAffinity message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IReservationAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationAffinity message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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 {

                    /** ConsumeReservationType enum. */
                    enum ConsumeReservationType {
                        UNDEFINED_CONSUME_RESERVATION_TYPE = 0,
                        ANY_RESERVATION = 200008121,
                        NO_RESERVATION = 169322030,
                        SPECIFIC_RESERVATION = 229889055,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a ReservationAggregatedList. */
                interface IReservationAggregatedList {

                    /** ReservationAggregatedList id */
                    id?: (string|null);

                    /** ReservationAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IReservationsScopedList }|null);

                    /** ReservationAggregatedList kind */
                    kind?: (string|null);

                    /** ReservationAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** ReservationAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** ReservationAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ReservationAggregatedList. */
                class ReservationAggregatedList implements IReservationAggregatedList {

                    /**
                     * Constructs a new ReservationAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationAggregatedList);

                    /** ReservationAggregatedList id. */
                    public id?: (string|null);

                    /** ReservationAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IReservationsScopedList };

                    /** ReservationAggregatedList kind. */
                    public kind?: (string|null);

                    /** ReservationAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationAggregatedList unreachables. */
                    public unreachables: string[];

                    /** ReservationAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ReservationAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationAggregatedList): google.cloud.compute.v1.ReservationAggregatedList;

                    /**
                     * Encodes the specified ReservationAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.ReservationAggregatedList.verify|verify} messages.
                     * @param message ReservationAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationAggregatedList.verify|verify} messages.
                     * @param message ReservationAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationAggregatedList;

                    /**
                     * Decodes a ReservationAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationAggregatedList;

                    /**
                     * Verifies a ReservationAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationAggregatedList;

                    /**
                     * Creates a plain object from a ReservationAggregatedList message. Also converts values to other types if specified.
                     * @param message ReservationAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlock. */
                interface IReservationBlock {

                    /** ReservationBlock count */
                    count?: (number|null);

                    /** ReservationBlock creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ReservationBlock healthInfo */
                    healthInfo?: (google.cloud.compute.v1.IReservationBlockHealthInfo|null);

                    /** ReservationBlock id */
                    id?: (number|Long|string|null);

                    /** ReservationBlock inUseCount */
                    inUseCount?: (number|null);

                    /** ReservationBlock inUseHostCount */
                    inUseHostCount?: (number|null);

                    /** ReservationBlock kind */
                    kind?: (string|null);

                    /** ReservationBlock name */
                    name?: (string|null);

                    /** ReservationBlock physicalTopology */
                    physicalTopology?: (google.cloud.compute.v1.IReservationBlockPhysicalTopology|null);

                    /** ReservationBlock reservationMaintenance */
                    reservationMaintenance?: (google.cloud.compute.v1.IGroupMaintenanceInfo|null);

                    /** ReservationBlock reservationSubBlockCount */
                    reservationSubBlockCount?: (number|null);

                    /** ReservationBlock reservationSubBlockInUseCount */
                    reservationSubBlockInUseCount?: (number|null);

                    /** ReservationBlock selfLink */
                    selfLink?: (string|null);

                    /** ReservationBlock selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** ReservationBlock status */
                    status?: (string|null);

                    /** ReservationBlock zone */
                    zone?: (string|null);
                }

                /** Represents a ReservationBlock. */
                class ReservationBlock implements IReservationBlock {

                    /**
                     * Constructs a new ReservationBlock.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationBlock);

                    /** ReservationBlock count. */
                    public count?: (number|null);

                    /** ReservationBlock creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ReservationBlock healthInfo. */
                    public healthInfo?: (google.cloud.compute.v1.IReservationBlockHealthInfo|null);

                    /** ReservationBlock id. */
                    public id?: (number|Long|string|null);

                    /** ReservationBlock inUseCount. */
                    public inUseCount?: (number|null);

                    /** ReservationBlock inUseHostCount. */
                    public inUseHostCount?: (number|null);

                    /** ReservationBlock kind. */
                    public kind?: (string|null);

                    /** ReservationBlock name. */
                    public name?: (string|null);

                    /** ReservationBlock physicalTopology. */
                    public physicalTopology?: (google.cloud.compute.v1.IReservationBlockPhysicalTopology|null);

                    /** ReservationBlock reservationMaintenance. */
                    public reservationMaintenance?: (google.cloud.compute.v1.IGroupMaintenanceInfo|null);

                    /** ReservationBlock reservationSubBlockCount. */
                    public reservationSubBlockCount?: (number|null);

                    /** ReservationBlock reservationSubBlockInUseCount. */
                    public reservationSubBlockInUseCount?: (number|null);

                    /** ReservationBlock selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationBlock selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** ReservationBlock status. */
                    public status?: (string|null);

                    /** ReservationBlock zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new ReservationBlock instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlock instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationBlock): google.cloud.compute.v1.ReservationBlock;

                    /**
                     * Encodes the specified ReservationBlock message. Does not implicitly {@link google.cloud.compute.v1.ReservationBlock.verify|verify} messages.
                     * @param message ReservationBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlock message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationBlock.verify|verify} messages.
                     * @param message ReservationBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlock message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationBlock;

                    /**
                     * Decodes a ReservationBlock message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationBlock;

                    /**
                     * Verifies a ReservationBlock message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlock message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlock
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationBlock;

                    /**
                     * Creates a plain object from a ReservationBlock message. Also converts values to other types if specified.
                     * @param message ReservationBlock
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationBlock, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlock to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlock
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationBlock {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a ReservationBlockHealthInfo. */
                interface IReservationBlockHealthInfo {

                    /** ReservationBlockHealthInfo degradedSubBlockCount */
                    degradedSubBlockCount?: (number|null);

                    /** ReservationBlockHealthInfo healthStatus */
                    healthStatus?: (string|null);

                    /** ReservationBlockHealthInfo healthySubBlockCount */
                    healthySubBlockCount?: (number|null);
                }

                /** Represents a ReservationBlockHealthInfo. */
                class ReservationBlockHealthInfo implements IReservationBlockHealthInfo {

                    /**
                     * Constructs a new ReservationBlockHealthInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationBlockHealthInfo);

                    /** ReservationBlockHealthInfo degradedSubBlockCount. */
                    public degradedSubBlockCount?: (number|null);

                    /** ReservationBlockHealthInfo healthStatus. */
                    public healthStatus?: (string|null);

                    /** ReservationBlockHealthInfo healthySubBlockCount. */
                    public healthySubBlockCount?: (number|null);

                    /**
                     * Creates a new ReservationBlockHealthInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlockHealthInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationBlockHealthInfo): google.cloud.compute.v1.ReservationBlockHealthInfo;

                    /**
                     * Encodes the specified ReservationBlockHealthInfo message. Does not implicitly {@link google.cloud.compute.v1.ReservationBlockHealthInfo.verify|verify} messages.
                     * @param message ReservationBlockHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationBlockHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlockHealthInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationBlockHealthInfo.verify|verify} messages.
                     * @param message ReservationBlockHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationBlockHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlockHealthInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlockHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationBlockHealthInfo;

                    /**
                     * Decodes a ReservationBlockHealthInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlockHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationBlockHealthInfo;

                    /**
                     * Verifies a ReservationBlockHealthInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlockHealthInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlockHealthInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationBlockHealthInfo;

                    /**
                     * Creates a plain object from a ReservationBlockHealthInfo message. Also converts values to other types if specified.
                     * @param message ReservationBlockHealthInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationBlockHealthInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlockHealthInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlockHealthInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationBlockHealthInfo {

                    /** HealthStatus enum. */
                    enum HealthStatus {
                        UNDEFINED_HEALTH_STATUS = 0,
                        DEGRADED = 396890926,
                        HEALTHY = 439801213,
                        HEALTH_STATUS_UNSPECIFIED = 482246925
                    }
                }

                /** Properties of a ReservationBlockPhysicalTopology. */
                interface IReservationBlockPhysicalTopology {

                    /** ReservationBlockPhysicalTopology block */
                    block?: (string|null);

                    /** ReservationBlockPhysicalTopology cluster */
                    cluster?: (string|null);

                    /** ReservationBlockPhysicalTopology instances */
                    instances?: (google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstance[]|null);
                }

                /** Represents a ReservationBlockPhysicalTopology. */
                class ReservationBlockPhysicalTopology implements IReservationBlockPhysicalTopology {

                    /**
                     * Constructs a new ReservationBlockPhysicalTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationBlockPhysicalTopology);

                    /** ReservationBlockPhysicalTopology block. */
                    public block?: (string|null);

                    /** ReservationBlockPhysicalTopology cluster. */
                    public cluster?: (string|null);

                    /** ReservationBlockPhysicalTopology instances. */
                    public instances: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstance[];

                    /**
                     * Creates a new ReservationBlockPhysicalTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlockPhysicalTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationBlockPhysicalTopology): google.cloud.compute.v1.ReservationBlockPhysicalTopology;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopology message. Does not implicitly {@link google.cloud.compute.v1.ReservationBlockPhysicalTopology.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationBlockPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationBlockPhysicalTopology.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationBlockPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlockPhysicalTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlockPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationBlockPhysicalTopology;

                    /**
                     * Decodes a ReservationBlockPhysicalTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlockPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationBlockPhysicalTopology;

                    /**
                     * Verifies a ReservationBlockPhysicalTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlockPhysicalTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlockPhysicalTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationBlockPhysicalTopology;

                    /**
                     * Creates a plain object from a ReservationBlockPhysicalTopology message. Also converts values to other types if specified.
                     * @param message ReservationBlockPhysicalTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationBlockPhysicalTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlockPhysicalTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlockPhysicalTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlockPhysicalTopologyInstance. */
                interface IReservationBlockPhysicalTopologyInstance {

                    /** ReservationBlockPhysicalTopologyInstance instanceId */
                    instanceId?: (number|Long|string|null);

                    /** ReservationBlockPhysicalTopologyInstance physicalHostTopology */
                    physicalHostTopology?: (google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology|null);

                    /** ReservationBlockPhysicalTopologyInstance projectId */
                    projectId?: (number|Long|string|null);
                }

                /** Represents a ReservationBlockPhysicalTopologyInstance. */
                class ReservationBlockPhysicalTopologyInstance implements IReservationBlockPhysicalTopologyInstance {

                    /**
                     * Constructs a new ReservationBlockPhysicalTopologyInstance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstance);

                    /** ReservationBlockPhysicalTopologyInstance instanceId. */
                    public instanceId?: (number|Long|string|null);

                    /** ReservationBlockPhysicalTopologyInstance physicalHostTopology. */
                    public physicalHostTopology?: (google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology|null);

                    /** ReservationBlockPhysicalTopologyInstance projectId. */
                    public projectId?: (number|Long|string|null);

                    /**
                     * Creates a new ReservationBlockPhysicalTopologyInstance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlockPhysicalTopologyInstance instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstance): google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstance;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopologyInstance message. Does not implicitly {@link google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstance.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopologyInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopologyInstance message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstance.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopologyInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlockPhysicalTopologyInstance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlockPhysicalTopologyInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstance;

                    /**
                     * Decodes a ReservationBlockPhysicalTopologyInstance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlockPhysicalTopologyInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstance;

                    /**
                     * Verifies a ReservationBlockPhysicalTopologyInstance message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlockPhysicalTopologyInstance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlockPhysicalTopologyInstance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstance;

                    /**
                     * Creates a plain object from a ReservationBlockPhysicalTopologyInstance message. Also converts values to other types if specified.
                     * @param message ReservationBlockPhysicalTopologyInstance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlockPhysicalTopologyInstance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlockPhysicalTopologyInstance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology. */
                interface IReservationBlockPhysicalTopologyInstancePhysicalHostTopology {

                    /** ReservationBlockPhysicalTopologyInstancePhysicalHostTopology host */
                    host?: (string|null);

                    /** ReservationBlockPhysicalTopologyInstancePhysicalHostTopology subBlock */
                    subBlock?: (string|null);
                }

                /** Represents a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology. */
                class ReservationBlockPhysicalTopologyInstancePhysicalHostTopology implements IReservationBlockPhysicalTopologyInstancePhysicalHostTopology {

                    /**
                     * Constructs a new ReservationBlockPhysicalTopologyInstancePhysicalHostTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology);

                    /** ReservationBlockPhysicalTopologyInstancePhysicalHostTopology host. */
                    public host?: (string|null);

                    /** ReservationBlockPhysicalTopologyInstancePhysicalHostTopology subBlock. */
                    public subBlock?: (string|null);

                    /**
                     * Creates a new ReservationBlockPhysicalTopologyInstancePhysicalHostTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlockPhysicalTopologyInstancePhysicalHostTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology): google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message. Does not implicitly {@link google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology;

                    /**
                     * Decodes a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology;

                    /**
                     * Verifies a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology;

                    /**
                     * Creates a plain object from a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message. Also converts values to other types if specified.
                     * @param message ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlockPhysicalTopologyInstancePhysicalHostTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlocksGetResponse. */
                interface IReservationBlocksGetResponse {

                    /** ReservationBlocksGetResponse resource */
                    resource?: (google.cloud.compute.v1.IReservationBlock|null);
                }

                /** Represents a ReservationBlocksGetResponse. */
                class ReservationBlocksGetResponse implements IReservationBlocksGetResponse {

                    /**
                     * Constructs a new ReservationBlocksGetResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationBlocksGetResponse);

                    /** ReservationBlocksGetResponse resource. */
                    public resource?: (google.cloud.compute.v1.IReservationBlock|null);

                    /**
                     * Creates a new ReservationBlocksGetResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlocksGetResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationBlocksGetResponse): google.cloud.compute.v1.ReservationBlocksGetResponse;

                    /**
                     * Encodes the specified ReservationBlocksGetResponse message. Does not implicitly {@link google.cloud.compute.v1.ReservationBlocksGetResponse.verify|verify} messages.
                     * @param message ReservationBlocksGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationBlocksGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlocksGetResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationBlocksGetResponse.verify|verify} messages.
                     * @param message ReservationBlocksGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationBlocksGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlocksGetResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlocksGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationBlocksGetResponse;

                    /**
                     * Decodes a ReservationBlocksGetResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlocksGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationBlocksGetResponse;

                    /**
                     * Verifies a ReservationBlocksGetResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlocksGetResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlocksGetResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationBlocksGetResponse;

                    /**
                     * Creates a plain object from a ReservationBlocksGetResponse message. Also converts values to other types if specified.
                     * @param message ReservationBlocksGetResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationBlocksGetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlocksGetResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlocksGetResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlocksListResponse. */
                interface IReservationBlocksListResponse {

                    /** ReservationBlocksListResponse id */
                    id?: (string|null);

                    /** ReservationBlocksListResponse items */
                    items?: (google.cloud.compute.v1.IReservationBlock[]|null);

                    /** ReservationBlocksListResponse kind */
                    kind?: (string|null);

                    /** ReservationBlocksListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationBlocksListResponse selfLink */
                    selfLink?: (string|null);

                    /** ReservationBlocksListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ReservationBlocksListResponse. */
                class ReservationBlocksListResponse implements IReservationBlocksListResponse {

                    /**
                     * Constructs a new ReservationBlocksListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationBlocksListResponse);

                    /** ReservationBlocksListResponse id. */
                    public id?: (string|null);

                    /** ReservationBlocksListResponse items. */
                    public items: google.cloud.compute.v1.IReservationBlock[];

                    /** ReservationBlocksListResponse kind. */
                    public kind?: (string|null);

                    /** ReservationBlocksListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationBlocksListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationBlocksListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ReservationBlocksListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlocksListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationBlocksListResponse): google.cloud.compute.v1.ReservationBlocksListResponse;

                    /**
                     * Encodes the specified ReservationBlocksListResponse message. Does not implicitly {@link google.cloud.compute.v1.ReservationBlocksListResponse.verify|verify} messages.
                     * @param message ReservationBlocksListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationBlocksListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlocksListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationBlocksListResponse.verify|verify} messages.
                     * @param message ReservationBlocksListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationBlocksListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlocksListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlocksListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationBlocksListResponse;

                    /**
                     * Decodes a ReservationBlocksListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlocksListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationBlocksListResponse;

                    /**
                     * Verifies a ReservationBlocksListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlocksListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlocksListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationBlocksListResponse;

                    /**
                     * Creates a plain object from a ReservationBlocksListResponse message. Also converts values to other types if specified.
                     * @param message ReservationBlocksListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationBlocksListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlocksListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlocksListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationList. */
                interface IReservationList {

                    /** ReservationList id */
                    id?: (string|null);

                    /** ReservationList items */
                    items?: (google.cloud.compute.v1.IReservation[]|null);

                    /** ReservationList kind */
                    kind?: (string|null);

                    /** ReservationList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationList selfLink */
                    selfLink?: (string|null);

                    /** ReservationList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ReservationList. */
                class ReservationList implements IReservationList {

                    /**
                     * Constructs a new ReservationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationList);

                    /** ReservationList id. */
                    public id?: (string|null);

                    /** ReservationList items. */
                    public items: google.cloud.compute.v1.IReservation[];

                    /** ReservationList kind. */
                    public kind?: (string|null);

                    /** ReservationList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationList selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ReservationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationList): google.cloud.compute.v1.ReservationList;

                    /**
                     * Encodes the specified ReservationList message. Does not implicitly {@link google.cloud.compute.v1.ReservationList.verify|verify} messages.
                     * @param message ReservationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationList.verify|verify} messages.
                     * @param message ReservationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationList;

                    /**
                     * Decodes a ReservationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationList;

                    /**
                     * Verifies a ReservationList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationList;

                    /**
                     * Creates a plain object from a ReservationList message. Also converts values to other types if specified.
                     * @param message ReservationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationParams. */
                interface IReservationParams {

                    /** ReservationParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a ReservationParams. */
                class ReservationParams implements IReservationParams {

                    /**
                     * Constructs a new ReservationParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationParams);

                    /** ReservationParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new ReservationParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationParams): google.cloud.compute.v1.ReservationParams;

                    /**
                     * Encodes the specified ReservationParams message. Does not implicitly {@link google.cloud.compute.v1.ReservationParams.verify|verify} messages.
                     * @param message ReservationParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationParams.verify|verify} messages.
                     * @param message ReservationParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationParams;

                    /**
                     * Decodes a ReservationParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationParams;

                    /**
                     * Verifies a ReservationParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationParams;

                    /**
                     * Creates a plain object from a ReservationParams message. Also converts values to other types if specified.
                     * @param message ReservationParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSlot. */
                interface IReservationSlot {

                    /** ReservationSlot creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ReservationSlot id */
                    id?: (number|Long|string|null);

                    /** ReservationSlot kind */
                    kind?: (string|null);

                    /** ReservationSlot name */
                    name?: (string|null);

                    /** ReservationSlot physicalTopology */
                    physicalTopology?: (google.cloud.compute.v1.IReservationSlotPhysicalTopology|null);

                    /** ReservationSlot selfLink */
                    selfLink?: (string|null);

                    /** ReservationSlot selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** ReservationSlot shareSettings */
                    shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** ReservationSlot state */
                    state?: (string|null);

                    /** ReservationSlot status */
                    status?: (google.cloud.compute.v1.IReservationSlotStatus|null);

                    /** ReservationSlot zone */
                    zone?: (string|null);
                }

                /** Represents a ReservationSlot. */
                class ReservationSlot implements IReservationSlot {

                    /**
                     * Constructs a new ReservationSlot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSlot);

                    /** ReservationSlot creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ReservationSlot id. */
                    public id?: (number|Long|string|null);

                    /** ReservationSlot kind. */
                    public kind?: (string|null);

                    /** ReservationSlot name. */
                    public name?: (string|null);

                    /** ReservationSlot physicalTopology. */
                    public physicalTopology?: (google.cloud.compute.v1.IReservationSlotPhysicalTopology|null);

                    /** ReservationSlot selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationSlot selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** ReservationSlot shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1.IShareSettings|null);

                    /** ReservationSlot state. */
                    public state?: (string|null);

                    /** ReservationSlot status. */
                    public status?: (google.cloud.compute.v1.IReservationSlotStatus|null);

                    /** ReservationSlot zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new ReservationSlot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlot instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSlot): google.cloud.compute.v1.ReservationSlot;

                    /**
                     * Encodes the specified ReservationSlot message. Does not implicitly {@link google.cloud.compute.v1.ReservationSlot.verify|verify} messages.
                     * @param message ReservationSlot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSlot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlot message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSlot.verify|verify} messages.
                     * @param message ReservationSlot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSlot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSlot;

                    /**
                     * Decodes a ReservationSlot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSlot;

                    /**
                     * Verifies a ReservationSlot message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlot
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSlot;

                    /**
                     * Creates a plain object from a ReservationSlot message. Also converts values to other types if specified.
                     * @param message ReservationSlot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSlot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSlot {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        STATE_UNSPECIFIED = 470755401,
                        UNAVAILABLE = 413756464
                    }
                }

                /** Properties of a ReservationSlotPhysicalTopology. */
                interface IReservationSlotPhysicalTopology {

                    /** ReservationSlotPhysicalTopology block */
                    block?: (string|null);

                    /** ReservationSlotPhysicalTopology cluster */
                    cluster?: (string|null);

                    /** ReservationSlotPhysicalTopology host */
                    host?: (string|null);

                    /** ReservationSlotPhysicalTopology subBlock */
                    subBlock?: (string|null);
                }

                /** Represents a ReservationSlotPhysicalTopology. */
                class ReservationSlotPhysicalTopology implements IReservationSlotPhysicalTopology {

                    /**
                     * Constructs a new ReservationSlotPhysicalTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSlotPhysicalTopology);

                    /** ReservationSlotPhysicalTopology block. */
                    public block?: (string|null);

                    /** ReservationSlotPhysicalTopology cluster. */
                    public cluster?: (string|null);

                    /** ReservationSlotPhysicalTopology host. */
                    public host?: (string|null);

                    /** ReservationSlotPhysicalTopology subBlock. */
                    public subBlock?: (string|null);

                    /**
                     * Creates a new ReservationSlotPhysicalTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotPhysicalTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSlotPhysicalTopology): google.cloud.compute.v1.ReservationSlotPhysicalTopology;

                    /**
                     * Encodes the specified ReservationSlotPhysicalTopology message. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotPhysicalTopology.verify|verify} messages.
                     * @param message ReservationSlotPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSlotPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotPhysicalTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotPhysicalTopology.verify|verify} messages.
                     * @param message ReservationSlotPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSlotPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotPhysicalTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSlotPhysicalTopology;

                    /**
                     * Decodes a ReservationSlotPhysicalTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSlotPhysicalTopology;

                    /**
                     * Verifies a ReservationSlotPhysicalTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotPhysicalTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotPhysicalTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSlotPhysicalTopology;

                    /**
                     * Creates a plain object from a ReservationSlotPhysicalTopology message. Also converts values to other types if specified.
                     * @param message ReservationSlotPhysicalTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSlotPhysicalTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotPhysicalTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotPhysicalTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSlotStatus. */
                interface IReservationSlotStatus {

                    /** ReservationSlotStatus physicalTopology */
                    physicalTopology?: (google.cloud.compute.v1.IReservationSlotPhysicalTopology|null);

                    /** ReservationSlotStatus rdmaIpAddresses */
                    rdmaIpAddresses?: (string[]|null);

                    /** ReservationSlotStatus runningInstances */
                    runningInstances?: (string[]|null);
                }

                /** Represents a ReservationSlotStatus. */
                class ReservationSlotStatus implements IReservationSlotStatus {

                    /**
                     * Constructs a new ReservationSlotStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSlotStatus);

                    /** ReservationSlotStatus physicalTopology. */
                    public physicalTopology?: (google.cloud.compute.v1.IReservationSlotPhysicalTopology|null);

                    /** ReservationSlotStatus rdmaIpAddresses. */
                    public rdmaIpAddresses: string[];

                    /** ReservationSlotStatus runningInstances. */
                    public runningInstances: string[];

                    /**
                     * Creates a new ReservationSlotStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSlotStatus): google.cloud.compute.v1.ReservationSlotStatus;

                    /**
                     * Encodes the specified ReservationSlotStatus message. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotStatus.verify|verify} messages.
                     * @param message ReservationSlotStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSlotStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotStatus.verify|verify} messages.
                     * @param message ReservationSlotStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSlotStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSlotStatus;

                    /**
                     * Decodes a ReservationSlotStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSlotStatus;

                    /**
                     * Verifies a ReservationSlotStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSlotStatus;

                    /**
                     * Creates a plain object from a ReservationSlotStatus message. Also converts values to other types if specified.
                     * @param message ReservationSlotStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSlotStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSlotsGetResponse. */
                interface IReservationSlotsGetResponse {

                    /** ReservationSlotsGetResponse resource */
                    resource?: (google.cloud.compute.v1.IReservationSlot|null);
                }

                /** Represents a ReservationSlotsGetResponse. */
                class ReservationSlotsGetResponse implements IReservationSlotsGetResponse {

                    /**
                     * Constructs a new ReservationSlotsGetResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSlotsGetResponse);

                    /** ReservationSlotsGetResponse resource. */
                    public resource?: (google.cloud.compute.v1.IReservationSlot|null);

                    /**
                     * Creates a new ReservationSlotsGetResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotsGetResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSlotsGetResponse): google.cloud.compute.v1.ReservationSlotsGetResponse;

                    /**
                     * Encodes the specified ReservationSlotsGetResponse message. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotsGetResponse.verify|verify} messages.
                     * @param message ReservationSlotsGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSlotsGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotsGetResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotsGetResponse.verify|verify} messages.
                     * @param message ReservationSlotsGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSlotsGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotsGetResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotsGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSlotsGetResponse;

                    /**
                     * Decodes a ReservationSlotsGetResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotsGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSlotsGetResponse;

                    /**
                     * Verifies a ReservationSlotsGetResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotsGetResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotsGetResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSlotsGetResponse;

                    /**
                     * Creates a plain object from a ReservationSlotsGetResponse message. Also converts values to other types if specified.
                     * @param message ReservationSlotsGetResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSlotsGetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotsGetResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotsGetResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSlotsGetVersionRequest. */
                interface IReservationSlotsGetVersionRequest {

                    /** ReservationSlotsGetVersionRequest sbomSelections */
                    sbomSelections?: (string[]|null);
                }

                /** Represents a ReservationSlotsGetVersionRequest. */
                class ReservationSlotsGetVersionRequest implements IReservationSlotsGetVersionRequest {

                    /**
                     * Constructs a new ReservationSlotsGetVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSlotsGetVersionRequest);

                    /** ReservationSlotsGetVersionRequest sbomSelections. */
                    public sbomSelections: string[];

                    /**
                     * Creates a new ReservationSlotsGetVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotsGetVersionRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSlotsGetVersionRequest): google.cloud.compute.v1.ReservationSlotsGetVersionRequest;

                    /**
                     * Encodes the specified ReservationSlotsGetVersionRequest message. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotsGetVersionRequest.verify|verify} messages.
                     * @param message ReservationSlotsGetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSlotsGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotsGetVersionRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotsGetVersionRequest.verify|verify} messages.
                     * @param message ReservationSlotsGetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSlotsGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotsGetVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotsGetVersionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSlotsGetVersionRequest;

                    /**
                     * Decodes a ReservationSlotsGetVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotsGetVersionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSlotsGetVersionRequest;

                    /**
                     * Verifies a ReservationSlotsGetVersionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotsGetVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotsGetVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSlotsGetVersionRequest;

                    /**
                     * Creates a plain object from a ReservationSlotsGetVersionRequest message. Also converts values to other types if specified.
                     * @param message ReservationSlotsGetVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSlotsGetVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotsGetVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotsGetVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSlotsGetVersionRequest {

                    /** SbomSelections enum. */
                    enum SbomSelections {
                        UNDEFINED_SBOM_SELECTIONS = 0,
                        SBOM_SELECTION_CURRENT = 423856692,
                        SBOM_SELECTION_TARGET = 152837462,
                        SBOM_SELECTION_UNSPECIFIED = 379615858
                    }
                }

                /** Properties of a ReservationSlotsListResponse. */
                interface IReservationSlotsListResponse {

                    /** ReservationSlotsListResponse id */
                    id?: (string|null);

                    /** ReservationSlotsListResponse items */
                    items?: (google.cloud.compute.v1.IReservationSlot[]|null);

                    /** ReservationSlotsListResponse kind */
                    kind?: (string|null);

                    /** ReservationSlotsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationSlotsListResponse selfLink */
                    selfLink?: (string|null);

                    /** ReservationSlotsListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ReservationSlotsListResponse. */
                class ReservationSlotsListResponse implements IReservationSlotsListResponse {

                    /**
                     * Constructs a new ReservationSlotsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSlotsListResponse);

                    /** ReservationSlotsListResponse id. */
                    public id?: (string|null);

                    /** ReservationSlotsListResponse items. */
                    public items: google.cloud.compute.v1.IReservationSlot[];

                    /** ReservationSlotsListResponse kind. */
                    public kind?: (string|null);

                    /** ReservationSlotsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationSlotsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationSlotsListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ReservationSlotsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSlotsListResponse): google.cloud.compute.v1.ReservationSlotsListResponse;

                    /**
                     * Encodes the specified ReservationSlotsListResponse message. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotsListResponse.verify|verify} messages.
                     * @param message ReservationSlotsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSlotsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSlotsListResponse.verify|verify} messages.
                     * @param message ReservationSlotsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSlotsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSlotsListResponse;

                    /**
                     * Decodes a ReservationSlotsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSlotsListResponse;

                    /**
                     * Verifies a ReservationSlotsListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSlotsListResponse;

                    /**
                     * Creates a plain object from a ReservationSlotsListResponse message. Also converts values to other types if specified.
                     * @param message ReservationSlotsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSlotsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSubBlock. */
                interface IReservationSubBlock {

                    /** ReservationSubBlock acceleratorTopologiesInfo */
                    acceleratorTopologiesInfo?: (google.cloud.compute.v1.IAcceleratorTopologiesInfo|null);

                    /** ReservationSubBlock count */
                    count?: (number|null);

                    /** ReservationSubBlock creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ReservationSubBlock healthInfo */
                    healthInfo?: (google.cloud.compute.v1.IReservationSubBlockHealthInfo|null);

                    /** ReservationSubBlock id */
                    id?: (number|Long|string|null);

                    /** ReservationSubBlock inUseCount */
                    inUseCount?: (number|null);

                    /** ReservationSubBlock inUseHostCount */
                    inUseHostCount?: (number|null);

                    /** ReservationSubBlock kind */
                    kind?: (string|null);

                    /** ReservationSubBlock name */
                    name?: (string|null);

                    /** ReservationSubBlock physicalTopology */
                    physicalTopology?: (google.cloud.compute.v1.IReservationSubBlockPhysicalTopology|null);

                    /** ReservationSubBlock reservationSubBlockMaintenance */
                    reservationSubBlockMaintenance?: (google.cloud.compute.v1.IGroupMaintenanceInfo|null);

                    /** ReservationSubBlock selfLink */
                    selfLink?: (string|null);

                    /** ReservationSubBlock selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** ReservationSubBlock status */
                    status?: (string|null);

                    /** ReservationSubBlock zone */
                    zone?: (string|null);
                }

                /** Represents a ReservationSubBlock. */
                class ReservationSubBlock implements IReservationSubBlock {

                    /**
                     * Constructs a new ReservationSubBlock.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSubBlock);

                    /** ReservationSubBlock acceleratorTopologiesInfo. */
                    public acceleratorTopologiesInfo?: (google.cloud.compute.v1.IAcceleratorTopologiesInfo|null);

                    /** ReservationSubBlock count. */
                    public count?: (number|null);

                    /** ReservationSubBlock creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ReservationSubBlock healthInfo. */
                    public healthInfo?: (google.cloud.compute.v1.IReservationSubBlockHealthInfo|null);

                    /** ReservationSubBlock id. */
                    public id?: (number|Long|string|null);

                    /** ReservationSubBlock inUseCount. */
                    public inUseCount?: (number|null);

                    /** ReservationSubBlock inUseHostCount. */
                    public inUseHostCount?: (number|null);

                    /** ReservationSubBlock kind. */
                    public kind?: (string|null);

                    /** ReservationSubBlock name. */
                    public name?: (string|null);

                    /** ReservationSubBlock physicalTopology. */
                    public physicalTopology?: (google.cloud.compute.v1.IReservationSubBlockPhysicalTopology|null);

                    /** ReservationSubBlock reservationSubBlockMaintenance. */
                    public reservationSubBlockMaintenance?: (google.cloud.compute.v1.IGroupMaintenanceInfo|null);

                    /** ReservationSubBlock selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationSubBlock selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** ReservationSubBlock status. */
                    public status?: (string|null);

                    /** ReservationSubBlock zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new ReservationSubBlock instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlock instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSubBlock): google.cloud.compute.v1.ReservationSubBlock;

                    /**
                     * Encodes the specified ReservationSubBlock message. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlock.verify|verify} messages.
                     * @param message ReservationSubBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSubBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlock message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlock.verify|verify} messages.
                     * @param message ReservationSubBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSubBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlock message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSubBlock;

                    /**
                     * Decodes a ReservationSubBlock message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSubBlock;

                    /**
                     * Verifies a ReservationSubBlock message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlock message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlock
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSubBlock;

                    /**
                     * Creates a plain object from a ReservationSubBlock message. Also converts values to other types if specified.
                     * @param message ReservationSubBlock
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSubBlock, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlock to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlock
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlock {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a ReservationSubBlockHealthInfo. */
                interface IReservationSubBlockHealthInfo {

                    /** ReservationSubBlockHealthInfo degradedHostCount */
                    degradedHostCount?: (number|null);

                    /** ReservationSubBlockHealthInfo degradedInfraCount */
                    degradedInfraCount?: (number|null);

                    /** ReservationSubBlockHealthInfo healthStatus */
                    healthStatus?: (string|null);

                    /** ReservationSubBlockHealthInfo healthyHostCount */
                    healthyHostCount?: (number|null);

                    /** ReservationSubBlockHealthInfo healthyInfraCount */
                    healthyInfraCount?: (number|null);
                }

                /** Represents a ReservationSubBlockHealthInfo. */
                class ReservationSubBlockHealthInfo implements IReservationSubBlockHealthInfo {

                    /**
                     * Constructs a new ReservationSubBlockHealthInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSubBlockHealthInfo);

                    /** ReservationSubBlockHealthInfo degradedHostCount. */
                    public degradedHostCount?: (number|null);

                    /** ReservationSubBlockHealthInfo degradedInfraCount. */
                    public degradedInfraCount?: (number|null);

                    /** ReservationSubBlockHealthInfo healthStatus. */
                    public healthStatus?: (string|null);

                    /** ReservationSubBlockHealthInfo healthyHostCount. */
                    public healthyHostCount?: (number|null);

                    /** ReservationSubBlockHealthInfo healthyInfraCount. */
                    public healthyInfraCount?: (number|null);

                    /**
                     * Creates a new ReservationSubBlockHealthInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlockHealthInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSubBlockHealthInfo): google.cloud.compute.v1.ReservationSubBlockHealthInfo;

                    /**
                     * Encodes the specified ReservationSubBlockHealthInfo message. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlockHealthInfo.verify|verify} messages.
                     * @param message ReservationSubBlockHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSubBlockHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlockHealthInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlockHealthInfo.verify|verify} messages.
                     * @param message ReservationSubBlockHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSubBlockHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlockHealthInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlockHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSubBlockHealthInfo;

                    /**
                     * Decodes a ReservationSubBlockHealthInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlockHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSubBlockHealthInfo;

                    /**
                     * Verifies a ReservationSubBlockHealthInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlockHealthInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlockHealthInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSubBlockHealthInfo;

                    /**
                     * Creates a plain object from a ReservationSubBlockHealthInfo message. Also converts values to other types if specified.
                     * @param message ReservationSubBlockHealthInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSubBlockHealthInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlockHealthInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlockHealthInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlockHealthInfo {

                    /** HealthStatus enum. */
                    enum HealthStatus {
                        UNDEFINED_HEALTH_STATUS = 0,
                        DEGRADED = 396890926,
                        HEALTHY = 439801213,
                        HEALTH_STATUS_UNSPECIFIED = 482246925
                    }
                }

                /** Properties of a ReservationSubBlockPhysicalTopology. */
                interface IReservationSubBlockPhysicalTopology {

                    /** ReservationSubBlockPhysicalTopology block */
                    block?: (string|null);

                    /** ReservationSubBlockPhysicalTopology cluster */
                    cluster?: (string|null);

                    /** ReservationSubBlockPhysicalTopology subBlock */
                    subBlock?: (string|null);
                }

                /** Represents a ReservationSubBlockPhysicalTopology. */
                class ReservationSubBlockPhysicalTopology implements IReservationSubBlockPhysicalTopology {

                    /**
                     * Constructs a new ReservationSubBlockPhysicalTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSubBlockPhysicalTopology);

                    /** ReservationSubBlockPhysicalTopology block. */
                    public block?: (string|null);

                    /** ReservationSubBlockPhysicalTopology cluster. */
                    public cluster?: (string|null);

                    /** ReservationSubBlockPhysicalTopology subBlock. */
                    public subBlock?: (string|null);

                    /**
                     * Creates a new ReservationSubBlockPhysicalTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlockPhysicalTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSubBlockPhysicalTopology): google.cloud.compute.v1.ReservationSubBlockPhysicalTopology;

                    /**
                     * Encodes the specified ReservationSubBlockPhysicalTopology message. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlockPhysicalTopology.verify|verify} messages.
                     * @param message ReservationSubBlockPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSubBlockPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlockPhysicalTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlockPhysicalTopology.verify|verify} messages.
                     * @param message ReservationSubBlockPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSubBlockPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlockPhysicalTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlockPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSubBlockPhysicalTopology;

                    /**
                     * Decodes a ReservationSubBlockPhysicalTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlockPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSubBlockPhysicalTopology;

                    /**
                     * Verifies a ReservationSubBlockPhysicalTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlockPhysicalTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlockPhysicalTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSubBlockPhysicalTopology;

                    /**
                     * Creates a plain object from a ReservationSubBlockPhysicalTopology message. Also converts values to other types if specified.
                     * @param message ReservationSubBlockPhysicalTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSubBlockPhysicalTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlockPhysicalTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlockPhysicalTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSubBlocksGetResponse. */
                interface IReservationSubBlocksGetResponse {

                    /** ReservationSubBlocksGetResponse resource */
                    resource?: (google.cloud.compute.v1.IReservationSubBlock|null);
                }

                /** Represents a ReservationSubBlocksGetResponse. */
                class ReservationSubBlocksGetResponse implements IReservationSubBlocksGetResponse {

                    /**
                     * Constructs a new ReservationSubBlocksGetResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSubBlocksGetResponse);

                    /** ReservationSubBlocksGetResponse resource. */
                    public resource?: (google.cloud.compute.v1.IReservationSubBlock|null);

                    /**
                     * Creates a new ReservationSubBlocksGetResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksGetResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSubBlocksGetResponse): google.cloud.compute.v1.ReservationSubBlocksGetResponse;

                    /**
                     * Encodes the specified ReservationSubBlocksGetResponse message. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksGetResponse.verify|verify} messages.
                     * @param message ReservationSubBlocksGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSubBlocksGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksGetResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksGetResponse.verify|verify} messages.
                     * @param message ReservationSubBlocksGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSubBlocksGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksGetResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSubBlocksGetResponse;

                    /**
                     * Decodes a ReservationSubBlocksGetResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSubBlocksGetResponse;

                    /**
                     * Verifies a ReservationSubBlocksGetResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksGetResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksGetResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSubBlocksGetResponse;

                    /**
                     * Creates a plain object from a ReservationSubBlocksGetResponse message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksGetResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSubBlocksGetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksGetResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksGetResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSubBlocksGetVersionRequest. */
                interface IReservationSubBlocksGetVersionRequest {

                    /** ReservationSubBlocksGetVersionRequest sbomSelections */
                    sbomSelections?: (string[]|null);
                }

                /** Represents a ReservationSubBlocksGetVersionRequest. */
                class ReservationSubBlocksGetVersionRequest implements IReservationSubBlocksGetVersionRequest {

                    /**
                     * Constructs a new ReservationSubBlocksGetVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSubBlocksGetVersionRequest);

                    /** ReservationSubBlocksGetVersionRequest sbomSelections. */
                    public sbomSelections: string[];

                    /**
                     * Creates a new ReservationSubBlocksGetVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksGetVersionRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSubBlocksGetVersionRequest): google.cloud.compute.v1.ReservationSubBlocksGetVersionRequest;

                    /**
                     * Encodes the specified ReservationSubBlocksGetVersionRequest message. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksGetVersionRequest.verify|verify} messages.
                     * @param message ReservationSubBlocksGetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSubBlocksGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksGetVersionRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksGetVersionRequest.verify|verify} messages.
                     * @param message ReservationSubBlocksGetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSubBlocksGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksGetVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksGetVersionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSubBlocksGetVersionRequest;

                    /**
                     * Decodes a ReservationSubBlocksGetVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksGetVersionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSubBlocksGetVersionRequest;

                    /**
                     * Verifies a ReservationSubBlocksGetVersionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksGetVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksGetVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSubBlocksGetVersionRequest;

                    /**
                     * Creates a plain object from a ReservationSubBlocksGetVersionRequest message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksGetVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSubBlocksGetVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksGetVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksGetVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlocksGetVersionRequest {

                    /** SbomSelections enum. */
                    enum SbomSelections {
                        UNDEFINED_SBOM_SELECTIONS = 0,
                        SBOM_SELECTION_CURRENT = 423856692,
                        SBOM_SELECTION_TARGET = 152837462,
                        SBOM_SELECTION_UNSPECIFIED = 379615858
                    }
                }

                /** Properties of a ReservationSubBlocksListResponse. */
                interface IReservationSubBlocksListResponse {

                    /** ReservationSubBlocksListResponse id */
                    id?: (string|null);

                    /** ReservationSubBlocksListResponse items */
                    items?: (google.cloud.compute.v1.IReservationSubBlock[]|null);

                    /** ReservationSubBlocksListResponse kind */
                    kind?: (string|null);

                    /** ReservationSubBlocksListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationSubBlocksListResponse selfLink */
                    selfLink?: (string|null);

                    /** ReservationSubBlocksListResponse warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ReservationSubBlocksListResponse. */
                class ReservationSubBlocksListResponse implements IReservationSubBlocksListResponse {

                    /**
                     * Constructs a new ReservationSubBlocksListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSubBlocksListResponse);

                    /** ReservationSubBlocksListResponse id. */
                    public id?: (string|null);

                    /** ReservationSubBlocksListResponse items. */
                    public items: google.cloud.compute.v1.IReservationSubBlock[];

                    /** ReservationSubBlocksListResponse kind. */
                    public kind?: (string|null);

                    /** ReservationSubBlocksListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationSubBlocksListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationSubBlocksListResponse warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ReservationSubBlocksListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSubBlocksListResponse): google.cloud.compute.v1.ReservationSubBlocksListResponse;

                    /**
                     * Encodes the specified ReservationSubBlocksListResponse message. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksListResponse.verify|verify} messages.
                     * @param message ReservationSubBlocksListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSubBlocksListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksListResponse.verify|verify} messages.
                     * @param message ReservationSubBlocksListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSubBlocksListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSubBlocksListResponse;

                    /**
                     * Decodes a ReservationSubBlocksListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSubBlocksListResponse;

                    /**
                     * Verifies a ReservationSubBlocksListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSubBlocksListResponse;

                    /**
                     * Creates a plain object from a ReservationSubBlocksListResponse message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSubBlocksListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSubBlocksReportFaultyRequest. */
                interface IReservationSubBlocksReportFaultyRequest {

                    /** ReservationSubBlocksReportFaultyRequest disruptionSchedule */
                    disruptionSchedule?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequest failureComponent */
                    failureComponent?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequest faultReasons */
                    faultReasons?: (google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequestFaultReason[]|null);
                }

                /** Represents a ReservationSubBlocksReportFaultyRequest. */
                class ReservationSubBlocksReportFaultyRequest implements IReservationSubBlocksReportFaultyRequest {

                    /**
                     * Constructs a new ReservationSubBlocksReportFaultyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequest);

                    /** ReservationSubBlocksReportFaultyRequest disruptionSchedule. */
                    public disruptionSchedule?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequest failureComponent. */
                    public failureComponent?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequest faultReasons. */
                    public faultReasons: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequestFaultReason[];

                    /**
                     * Creates a new ReservationSubBlocksReportFaultyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksReportFaultyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequest): google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequest;

                    /**
                     * Encodes the specified ReservationSubBlocksReportFaultyRequest message. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequest.verify|verify} messages.
                     * @param message ReservationSubBlocksReportFaultyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksReportFaultyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequest.verify|verify} messages.
                     * @param message ReservationSubBlocksReportFaultyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksReportFaultyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksReportFaultyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequest;

                    /**
                     * Decodes a ReservationSubBlocksReportFaultyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksReportFaultyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequest;

                    /**
                     * Verifies a ReservationSubBlocksReportFaultyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksReportFaultyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksReportFaultyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequest;

                    /**
                     * Creates a plain object from a ReservationSubBlocksReportFaultyRequest message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksReportFaultyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksReportFaultyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksReportFaultyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlocksReportFaultyRequest {

                    /** DisruptionSchedule enum. */
                    enum DisruptionSchedule {
                        UNDEFINED_DISRUPTION_SCHEDULE = 0,
                        DISRUPTION_SCHEDULE_UNSPECIFIED = 332543835,
                        IMMEDIATE = 152881041
                    }

                    /** FailureComponent enum. */
                    enum FailureComponent {
                        UNDEFINED_FAILURE_COMPONENT = 0,
                        FAILURE_COMPONENT_UNSPECIFIED = 332003744,
                        MULTIPLE_FAULTY_HOSTS = 423545298,
                        NVLINK_SWITCH = 239107153
                    }
                }

                /** Properties of a ReservationSubBlocksReportFaultyRequestFaultReason. */
                interface IReservationSubBlocksReportFaultyRequestFaultReason {

                    /** ReservationSubBlocksReportFaultyRequestFaultReason behavior */
                    behavior?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequestFaultReason description */
                    description?: (string|null);
                }

                /** Represents a ReservationSubBlocksReportFaultyRequestFaultReason. */
                class ReservationSubBlocksReportFaultyRequestFaultReason implements IReservationSubBlocksReportFaultyRequestFaultReason {

                    /**
                     * Constructs a new ReservationSubBlocksReportFaultyRequestFaultReason.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequestFaultReason);

                    /** ReservationSubBlocksReportFaultyRequestFaultReason behavior. */
                    public behavior?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequestFaultReason description. */
                    public description?: (string|null);

                    /**
                     * Creates a new ReservationSubBlocksReportFaultyRequestFaultReason instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksReportFaultyRequestFaultReason instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequestFaultReason): google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequestFaultReason;

                    /**
                     * Encodes the specified ReservationSubBlocksReportFaultyRequestFaultReason message. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequestFaultReason.verify|verify} messages.
                     * @param message ReservationSubBlocksReportFaultyRequestFaultReason message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequestFaultReason, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksReportFaultyRequestFaultReason message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequestFaultReason.verify|verify} messages.
                     * @param message ReservationSubBlocksReportFaultyRequestFaultReason message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationSubBlocksReportFaultyRequestFaultReason, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksReportFaultyRequestFaultReason message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksReportFaultyRequestFaultReason
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequestFaultReason;

                    /**
                     * Decodes a ReservationSubBlocksReportFaultyRequestFaultReason message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksReportFaultyRequestFaultReason
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequestFaultReason;

                    /**
                     * Verifies a ReservationSubBlocksReportFaultyRequestFaultReason message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksReportFaultyRequestFaultReason message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksReportFaultyRequestFaultReason
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequestFaultReason;

                    /**
                     * Creates a plain object from a ReservationSubBlocksReportFaultyRequestFaultReason message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksReportFaultyRequestFaultReason
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationSubBlocksReportFaultyRequestFaultReason, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksReportFaultyRequestFaultReason to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksReportFaultyRequestFaultReason
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlocksReportFaultyRequestFaultReason {

                    /** Behavior enum. */
                    enum Behavior {
                        UNDEFINED_BEHAVIOR = 0,
                        FAULT_BEHAVIOR_UNSPECIFIED = 447660743,
                        GPU_ERROR = 198817909,
                        PERFORMANCE = 135701520,
                        SILENT_DATA_CORRUPTION = 111360678,
                        SWITCH_FAILURE = 254909279
                    }
                }

                /** Properties of a ReservationsBlocksPerformMaintenanceRequest. */
                interface IReservationsBlocksPerformMaintenanceRequest {

                    /** ReservationsBlocksPerformMaintenanceRequest maintenanceScope */
                    maintenanceScope?: (string|null);
                }

                /** Represents a ReservationsBlocksPerformMaintenanceRequest. */
                class ReservationsBlocksPerformMaintenanceRequest implements IReservationsBlocksPerformMaintenanceRequest {

                    /**
                     * Constructs a new ReservationsBlocksPerformMaintenanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationsBlocksPerformMaintenanceRequest);

                    /** ReservationsBlocksPerformMaintenanceRequest maintenanceScope. */
                    public maintenanceScope?: (string|null);

                    /**
                     * Creates a new ReservationsBlocksPerformMaintenanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationsBlocksPerformMaintenanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationsBlocksPerformMaintenanceRequest): google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequest;

                    /**
                     * Encodes the specified ReservationsBlocksPerformMaintenanceRequest message. Does not implicitly {@link google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequest.verify|verify} messages.
                     * @param message ReservationsBlocksPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationsBlocksPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationsBlocksPerformMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequest.verify|verify} messages.
                     * @param message ReservationsBlocksPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationsBlocksPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationsBlocksPerformMaintenanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationsBlocksPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequest;

                    /**
                     * Decodes a ReservationsBlocksPerformMaintenanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationsBlocksPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequest;

                    /**
                     * Verifies a ReservationsBlocksPerformMaintenanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationsBlocksPerformMaintenanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationsBlocksPerformMaintenanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequest;

                    /**
                     * Creates a plain object from a ReservationsBlocksPerformMaintenanceRequest message. Also converts values to other types if specified.
                     * @param message ReservationsBlocksPerformMaintenanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationsBlocksPerformMaintenanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationsBlocksPerformMaintenanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationsBlocksPerformMaintenanceRequest {

                    /** MaintenanceScope enum. */
                    enum MaintenanceScope {
                        UNDEFINED_MAINTENANCE_SCOPE = 0,
                        ALL = 64897,
                        MAINTENANCE_SCOPE_UNSPECIFIED = 78827328,
                        RUNNING_VMS = 535770588,
                        UNUSED_CAPACITY = 212724995
                    }
                }

                /** Properties of a ReservationsPerformMaintenanceRequest. */
                interface IReservationsPerformMaintenanceRequest {

                    /** ReservationsPerformMaintenanceRequest maintenanceScope */
                    maintenanceScope?: (string|null);
                }

                /** Represents a ReservationsPerformMaintenanceRequest. */
                class ReservationsPerformMaintenanceRequest implements IReservationsPerformMaintenanceRequest {

                    /**
                     * Constructs a new ReservationsPerformMaintenanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationsPerformMaintenanceRequest);

                    /** ReservationsPerformMaintenanceRequest maintenanceScope. */
                    public maintenanceScope?: (string|null);

                    /**
                     * Creates a new ReservationsPerformMaintenanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationsPerformMaintenanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationsPerformMaintenanceRequest): google.cloud.compute.v1.ReservationsPerformMaintenanceRequest;

                    /**
                     * Encodes the specified ReservationsPerformMaintenanceRequest message. Does not implicitly {@link google.cloud.compute.v1.ReservationsPerformMaintenanceRequest.verify|verify} messages.
                     * @param message ReservationsPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationsPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationsPerformMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationsPerformMaintenanceRequest.verify|verify} messages.
                     * @param message ReservationsPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationsPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationsPerformMaintenanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationsPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationsPerformMaintenanceRequest;

                    /**
                     * Decodes a ReservationsPerformMaintenanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationsPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationsPerformMaintenanceRequest;

                    /**
                     * Verifies a ReservationsPerformMaintenanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationsPerformMaintenanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationsPerformMaintenanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationsPerformMaintenanceRequest;

                    /**
                     * Creates a plain object from a ReservationsPerformMaintenanceRequest message. Also converts values to other types if specified.
                     * @param message ReservationsPerformMaintenanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationsPerformMaintenanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationsPerformMaintenanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationsPerformMaintenanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationsPerformMaintenanceRequest {

                    /** MaintenanceScope enum. */
                    enum MaintenanceScope {
                        UNDEFINED_MAINTENANCE_SCOPE = 0,
                        ALL = 64897,
                        MAINTENANCE_SCOPE_UNSPECIFIED = 78827328,
                        RUNNING_VMS = 535770588,
                        UNUSED_CAPACITY = 212724995
                    }
                }

                /** Properties of a ReservationsResizeRequest. */
                interface IReservationsResizeRequest {

                    /** ReservationsResizeRequest specificSkuCount */
                    specificSkuCount?: (number|Long|string|null);
                }

                /** Represents a ReservationsResizeRequest. */
                class ReservationsResizeRequest implements IReservationsResizeRequest {

                    /**
                     * Constructs a new ReservationsResizeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationsResizeRequest);

                    /** ReservationsResizeRequest specificSkuCount. */
                    public specificSkuCount?: (number|Long|string|null);

                    /**
                     * Creates a new ReservationsResizeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationsResizeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationsResizeRequest): google.cloud.compute.v1.ReservationsResizeRequest;

                    /**
                     * Encodes the specified ReservationsResizeRequest message. Does not implicitly {@link google.cloud.compute.v1.ReservationsResizeRequest.verify|verify} messages.
                     * @param message ReservationsResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationsResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationsResizeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationsResizeRequest.verify|verify} messages.
                     * @param message ReservationsResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationsResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationsResizeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationsResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationsResizeRequest;

                    /**
                     * Decodes a ReservationsResizeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationsResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationsResizeRequest;

                    /**
                     * Verifies a ReservationsResizeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationsResizeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationsResizeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationsResizeRequest;

                    /**
                     * Creates a plain object from a ReservationsResizeRequest message. Also converts values to other types if specified.
                     * @param message ReservationsResizeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationsResizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationsResizeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationsResizeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationsScopedList. */
                interface IReservationsScopedList {

                    /** ReservationsScopedList reservations */
                    reservations?: (google.cloud.compute.v1.IReservation[]|null);

                    /** ReservationsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ReservationsScopedList. */
                class ReservationsScopedList implements IReservationsScopedList {

                    /**
                     * Constructs a new ReservationsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IReservationsScopedList);

                    /** ReservationsScopedList reservations. */
                    public reservations: google.cloud.compute.v1.IReservation[];

                    /** ReservationsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ReservationsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IReservationsScopedList): google.cloud.compute.v1.ReservationsScopedList;

                    /**
                     * Encodes the specified ReservationsScopedList message. Does not implicitly {@link google.cloud.compute.v1.ReservationsScopedList.verify|verify} messages.
                     * @param message ReservationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IReservationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ReservationsScopedList.verify|verify} messages.
                     * @param message ReservationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IReservationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ReservationsScopedList;

                    /**
                     * Decodes a ReservationsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ReservationsScopedList;

                    /**
                     * Verifies a ReservationsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ReservationsScopedList;

                    /**
                     * Creates a plain object from a ReservationsScopedList message. Also converts values to other types if specified.
                     * @param message ReservationsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ReservationsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResetInstanceRequest. */
                interface IResetInstanceRequest {

                    /** ResetInstanceRequest instance */
                    instance?: (string|null);

                    /** ResetInstanceRequest project */
                    project?: (string|null);

                    /** ResetInstanceRequest requestId */
                    requestId?: (string|null);

                    /** ResetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResetInstanceRequest. */
                class ResetInstanceRequest implements IResetInstanceRequest {

                    /**
                     * Constructs a new ResetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResetInstanceRequest);

                    /** ResetInstanceRequest instance. */
                    public instance: string;

                    /** ResetInstanceRequest project. */
                    public project: string;

                    /** ResetInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** ResetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResetInstanceRequest): google.cloud.compute.v1.ResetInstanceRequest;

                    /**
                     * Encodes the specified ResetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.ResetInstanceRequest.verify|verify} messages.
                     * @param message ResetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResetInstanceRequest.verify|verify} messages.
                     * @param message ResetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResetInstanceRequest;

                    /**
                     * Decodes a ResetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResetInstanceRequest;

                    /**
                     * Verifies a ResetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResetInstanceRequest;

                    /**
                     * Creates a plain object from a ResetInstanceRequest message. Also converts values to other types if specified.
                     * @param message ResetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeDiskRequest. */
                interface IResizeDiskRequest {

                    /** ResizeDiskRequest disk */
                    disk?: (string|null);

                    /** ResizeDiskRequest disksResizeRequestResource */
                    disksResizeRequestResource?: (google.cloud.compute.v1.IDisksResizeRequest|null);

                    /** ResizeDiskRequest project */
                    project?: (string|null);

                    /** ResizeDiskRequest requestId */
                    requestId?: (string|null);

                    /** ResizeDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResizeDiskRequest. */
                class ResizeDiskRequest implements IResizeDiskRequest {

                    /**
                     * Constructs a new ResizeDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResizeDiskRequest);

                    /** ResizeDiskRequest disk. */
                    public disk: string;

                    /** ResizeDiskRequest disksResizeRequestResource. */
                    public disksResizeRequestResource?: (google.cloud.compute.v1.IDisksResizeRequest|null);

                    /** ResizeDiskRequest project. */
                    public project: string;

                    /** ResizeDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResizeDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResizeDiskRequest): google.cloud.compute.v1.ResizeDiskRequest;

                    /**
                     * Encodes the specified ResizeDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.ResizeDiskRequest.verify|verify} messages.
                     * @param message ResizeDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResizeDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResizeDiskRequest.verify|verify} messages.
                     * @param message ResizeDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResizeDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResizeDiskRequest;

                    /**
                     * Decodes a ResizeDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResizeDiskRequest;

                    /**
                     * Verifies a ResizeDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResizeDiskRequest;

                    /**
                     * Creates a plain object from a ResizeDiskRequest message. Also converts values to other types if specified.
                     * @param message ResizeDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResizeDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeInstanceGroupManagerRequest. */
                interface IResizeInstanceGroupManagerRequest {

                    /** ResizeInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResizeInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResizeInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** ResizeInstanceGroupManagerRequest size */
                    size?: (number|null);

                    /** ResizeInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResizeInstanceGroupManagerRequest. */
                class ResizeInstanceGroupManagerRequest implements IResizeInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResizeInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResizeInstanceGroupManagerRequest);

                    /** ResizeInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResizeInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResizeInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeInstanceGroupManagerRequest size. */
                    public size: number;

                    /** ResizeInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResizeInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResizeInstanceGroupManagerRequest): google.cloud.compute.v1.ResizeInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResizeInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.ResizeInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResizeInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResizeInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResizeInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResizeInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResizeInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResizeInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResizeInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResizeInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResizeInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResizeInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResizeInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeRegionDiskRequest. */
                interface IResizeRegionDiskRequest {

                    /** ResizeRegionDiskRequest disk */
                    disk?: (string|null);

                    /** ResizeRegionDiskRequest project */
                    project?: (string|null);

                    /** ResizeRegionDiskRequest region */
                    region?: (string|null);

                    /** ResizeRegionDiskRequest regionDisksResizeRequestResource */
                    regionDisksResizeRequestResource?: (google.cloud.compute.v1.IRegionDisksResizeRequest|null);

                    /** ResizeRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a ResizeRegionDiskRequest. */
                class ResizeRegionDiskRequest implements IResizeRegionDiskRequest {

                    /**
                     * Constructs a new ResizeRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResizeRegionDiskRequest);

                    /** ResizeRegionDiskRequest disk. */
                    public disk: string;

                    /** ResizeRegionDiskRequest project. */
                    public project: string;

                    /** ResizeRegionDiskRequest region. */
                    public region: string;

                    /** ResizeRegionDiskRequest regionDisksResizeRequestResource. */
                    public regionDisksResizeRequestResource?: (google.cloud.compute.v1.IRegionDisksResizeRequest|null);

                    /** ResizeRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new ResizeRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResizeRegionDiskRequest): google.cloud.compute.v1.ResizeRegionDiskRequest;

                    /**
                     * Encodes the specified ResizeRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.ResizeRegionDiskRequest.verify|verify} messages.
                     * @param message ResizeRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResizeRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResizeRegionDiskRequest.verify|verify} messages.
                     * @param message ResizeRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResizeRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResizeRegionDiskRequest;

                    /**
                     * Decodes a ResizeRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResizeRegionDiskRequest;

                    /**
                     * Verifies a ResizeRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResizeRegionDiskRequest;

                    /**
                     * Creates a plain object from a ResizeRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message ResizeRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResizeRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeRegionInstanceGroupManagerRequest. */
                interface IResizeRegionInstanceGroupManagerRequest {

                    /** ResizeRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest size */
                    size?: (number|null);
                }

                /** Represents a ResizeRegionInstanceGroupManagerRequest. */
                class ResizeRegionInstanceGroupManagerRequest implements IResizeRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResizeRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResizeRegionInstanceGroupManagerRequest);

                    /** ResizeRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResizeRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResizeRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** ResizeRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest size. */
                    public size: number;

                    /**
                     * Creates a new ResizeRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResizeRegionInstanceGroupManagerRequest): google.cloud.compute.v1.ResizeRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResizeRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.ResizeRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResizeRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResizeRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResizeRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResizeRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResizeRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResizeRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResizeRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResizeRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResizeRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResizeRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResizeRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeReservationRequest. */
                interface IResizeReservationRequest {

                    /** ResizeReservationRequest project */
                    project?: (string|null);

                    /** ResizeReservationRequest requestId */
                    requestId?: (string|null);

                    /** ResizeReservationRequest reservation */
                    reservation?: (string|null);

                    /** ResizeReservationRequest reservationsResizeRequestResource */
                    reservationsResizeRequestResource?: (google.cloud.compute.v1.IReservationsResizeRequest|null);

                    /** ResizeReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResizeReservationRequest. */
                class ResizeReservationRequest implements IResizeReservationRequest {

                    /**
                     * Constructs a new ResizeReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResizeReservationRequest);

                    /** ResizeReservationRequest project. */
                    public project: string;

                    /** ResizeReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeReservationRequest reservation. */
                    public reservation: string;

                    /** ResizeReservationRequest reservationsResizeRequestResource. */
                    public reservationsResizeRequestResource?: (google.cloud.compute.v1.IReservationsResizeRequest|null);

                    /** ResizeReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResizeReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResizeReservationRequest): google.cloud.compute.v1.ResizeReservationRequest;

                    /**
                     * Encodes the specified ResizeReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.ResizeReservationRequest.verify|verify} messages.
                     * @param message ResizeReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResizeReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResizeReservationRequest.verify|verify} messages.
                     * @param message ResizeReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResizeReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResizeReservationRequest;

                    /**
                     * Decodes a ResizeReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResizeReservationRequest;

                    /**
                     * Verifies a ResizeReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResizeReservationRequest;

                    /**
                     * Creates a plain object from a ResizeReservationRequest message. Also converts values to other types if specified.
                     * @param message ResizeReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResizeReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceCommitment. */
                interface IResourceCommitment {

                    /** ResourceCommitment acceleratorType */
                    acceleratorType?: (string|null);

                    /** ResourceCommitment amount */
                    amount?: (number|Long|string|null);

                    /** ResourceCommitment type */
                    type?: (string|null);
                }

                /** Represents a ResourceCommitment. */
                class ResourceCommitment implements IResourceCommitment {

                    /**
                     * Constructs a new ResourceCommitment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourceCommitment);

                    /** ResourceCommitment acceleratorType. */
                    public acceleratorType?: (string|null);

                    /** ResourceCommitment amount. */
                    public amount?: (number|Long|string|null);

                    /** ResourceCommitment type. */
                    public type?: (string|null);

                    /**
                     * Creates a new ResourceCommitment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceCommitment instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourceCommitment): google.cloud.compute.v1.ResourceCommitment;

                    /**
                     * Encodes the specified ResourceCommitment message. Does not implicitly {@link google.cloud.compute.v1.ResourceCommitment.verify|verify} messages.
                     * @param message ResourceCommitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourceCommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceCommitment message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourceCommitment.verify|verify} messages.
                     * @param message ResourceCommitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourceCommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceCommitment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceCommitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourceCommitment;

                    /**
                     * Decodes a ResourceCommitment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceCommitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourceCommitment;

                    /**
                     * Verifies a ResourceCommitment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceCommitment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceCommitment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourceCommitment;

                    /**
                     * Creates a plain object from a ResourceCommitment message. Also converts values to other types if specified.
                     * @param message ResourceCommitment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourceCommitment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceCommitment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceCommitment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourceCommitment {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        ACCELERATOR = 429815371,
                        LOCAL_SSD = 508934896,
                        MEMORY = 123056385,
                        UNSPECIFIED = 526786327,
                        VCPU = 2628978
                    }
                }

                /** Properties of a ResourceGroupReference. */
                interface IResourceGroupReference {

                    /** ResourceGroupReference group */
                    group?: (string|null);
                }

                /** Represents a ResourceGroupReference. */
                class ResourceGroupReference implements IResourceGroupReference {

                    /**
                     * Constructs a new ResourceGroupReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourceGroupReference);

                    /** ResourceGroupReference group. */
                    public group?: (string|null);

                    /**
                     * Creates a new ResourceGroupReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceGroupReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourceGroupReference): google.cloud.compute.v1.ResourceGroupReference;

                    /**
                     * Encodes the specified ResourceGroupReference message. Does not implicitly {@link google.cloud.compute.v1.ResourceGroupReference.verify|verify} messages.
                     * @param message ResourceGroupReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourceGroupReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceGroupReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourceGroupReference.verify|verify} messages.
                     * @param message ResourceGroupReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourceGroupReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceGroupReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceGroupReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourceGroupReference;

                    /**
                     * Decodes a ResourceGroupReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceGroupReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourceGroupReference;

                    /**
                     * Verifies a ResourceGroupReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceGroupReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceGroupReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourceGroupReference;

                    /**
                     * Creates a plain object from a ResourceGroupReference message. Also converts values to other types if specified.
                     * @param message ResourceGroupReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourceGroupReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceGroupReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceGroupReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePoliciesScopedList. */
                interface IResourcePoliciesScopedList {

                    /** ResourcePoliciesScopedList resourcePolicies */
                    resourcePolicies?: (google.cloud.compute.v1.IResourcePolicy[]|null);

                    /** ResourcePoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ResourcePoliciesScopedList. */
                class ResourcePoliciesScopedList implements IResourcePoliciesScopedList {

                    /**
                     * Constructs a new ResourcePoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePoliciesScopedList);

                    /** ResourcePoliciesScopedList resourcePolicies. */
                    public resourcePolicies: google.cloud.compute.v1.IResourcePolicy[];

                    /** ResourcePoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ResourcePoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePoliciesScopedList): google.cloud.compute.v1.ResourcePoliciesScopedList;

                    /**
                     * Encodes the specified ResourcePoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1.ResourcePoliciesScopedList.verify|verify} messages.
                     * @param message ResourcePoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePoliciesScopedList.verify|verify} messages.
                     * @param message ResourcePoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePoliciesScopedList;

                    /**
                     * Decodes a ResourcePoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePoliciesScopedList;

                    /**
                     * Verifies a ResourcePoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePoliciesScopedList;

                    /**
                     * Creates a plain object from a ResourcePoliciesScopedList message. Also converts values to other types if specified.
                     * @param message ResourcePoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicy. */
                interface IResourcePolicy {

                    /** ResourcePolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ResourcePolicy description */
                    description?: (string|null);

                    /** ResourcePolicy diskConsistencyGroupPolicy */
                    diskConsistencyGroupPolicy?: (google.cloud.compute.v1.IResourcePolicyDiskConsistencyGroupPolicy|null);

                    /** ResourcePolicy groupPlacementPolicy */
                    groupPlacementPolicy?: (google.cloud.compute.v1.IResourcePolicyGroupPlacementPolicy|null);

                    /** ResourcePolicy id */
                    id?: (number|Long|string|null);

                    /** ResourcePolicy instanceSchedulePolicy */
                    instanceSchedulePolicy?: (google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicy|null);

                    /** ResourcePolicy kind */
                    kind?: (string|null);

                    /** ResourcePolicy name */
                    name?: (string|null);

                    /** ResourcePolicy region */
                    region?: (string|null);

                    /** ResourcePolicy resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1.IResourcePolicyResourceStatus|null);

                    /** ResourcePolicy selfLink */
                    selfLink?: (string|null);

                    /** ResourcePolicy snapshotSchedulePolicy */
                    snapshotSchedulePolicy?: (google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicy|null);

                    /** ResourcePolicy status */
                    status?: (string|null);

                    /** ResourcePolicy workloadPolicy */
                    workloadPolicy?: (google.cloud.compute.v1.IResourcePolicyWorkloadPolicy|null);
                }

                /** Represents a ResourcePolicy. */
                class ResourcePolicy implements IResourcePolicy {

                    /**
                     * Constructs a new ResourcePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicy);

                    /** ResourcePolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ResourcePolicy description. */
                    public description?: (string|null);

                    /** ResourcePolicy diskConsistencyGroupPolicy. */
                    public diskConsistencyGroupPolicy?: (google.cloud.compute.v1.IResourcePolicyDiskConsistencyGroupPolicy|null);

                    /** ResourcePolicy groupPlacementPolicy. */
                    public groupPlacementPolicy?: (google.cloud.compute.v1.IResourcePolicyGroupPlacementPolicy|null);

                    /** ResourcePolicy id. */
                    public id?: (number|Long|string|null);

                    /** ResourcePolicy instanceSchedulePolicy. */
                    public instanceSchedulePolicy?: (google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicy|null);

                    /** ResourcePolicy kind. */
                    public kind?: (string|null);

                    /** ResourcePolicy name. */
                    public name?: (string|null);

                    /** ResourcePolicy region. */
                    public region?: (string|null);

                    /** ResourcePolicy resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1.IResourcePolicyResourceStatus|null);

                    /** ResourcePolicy selfLink. */
                    public selfLink?: (string|null);

                    /** ResourcePolicy snapshotSchedulePolicy. */
                    public snapshotSchedulePolicy?: (google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicy|null);

                    /** ResourcePolicy status. */
                    public status?: (string|null);

                    /** ResourcePolicy workloadPolicy. */
                    public workloadPolicy?: (google.cloud.compute.v1.IResourcePolicyWorkloadPolicy|null);

                    /**
                     * Creates a new ResourcePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicy): google.cloud.compute.v1.ResourcePolicy;

                    /**
                     * Encodes the specified ResourcePolicy message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicy.verify|verify} messages.
                     * @param message ResourcePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicy.verify|verify} messages.
                     * @param message ResourcePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicy;

                    /**
                     * Decodes a ResourcePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicy;

                    /**
                     * Verifies a ResourcePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicy;

                    /**
                     * Creates a plain object from a ResourcePolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicy {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        EXPIRED = 482489093,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a ResourcePolicyAggregatedList. */
                interface IResourcePolicyAggregatedList {

                    /** ResourcePolicyAggregatedList etag */
                    etag?: (string|null);

                    /** ResourcePolicyAggregatedList id */
                    id?: (string|null);

                    /** ResourcePolicyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IResourcePoliciesScopedList }|null);

                    /** ResourcePolicyAggregatedList kind */
                    kind?: (string|null);

                    /** ResourcePolicyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ResourcePolicyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** ResourcePolicyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** ResourcePolicyAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ResourcePolicyAggregatedList. */
                class ResourcePolicyAggregatedList implements IResourcePolicyAggregatedList {

                    /**
                     * Constructs a new ResourcePolicyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyAggregatedList);

                    /** ResourcePolicyAggregatedList etag. */
                    public etag?: (string|null);

                    /** ResourcePolicyAggregatedList id. */
                    public id?: (string|null);

                    /** ResourcePolicyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IResourcePoliciesScopedList };

                    /** ResourcePolicyAggregatedList kind. */
                    public kind?: (string|null);

                    /** ResourcePolicyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ResourcePolicyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** ResourcePolicyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** ResourcePolicyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ResourcePolicyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyAggregatedList): google.cloud.compute.v1.ResourcePolicyAggregatedList;

                    /**
                     * Encodes the specified ResourcePolicyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyAggregatedList.verify|verify} messages.
                     * @param message ResourcePolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyAggregatedList.verify|verify} messages.
                     * @param message ResourcePolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyAggregatedList;

                    /**
                     * Decodes a ResourcePolicyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyAggregatedList;

                    /**
                     * Verifies a ResourcePolicyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyAggregatedList;

                    /**
                     * Creates a plain object from a ResourcePolicyAggregatedList message. Also converts values to other types if specified.
                     * @param message ResourcePolicyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyDailyCycle. */
                interface IResourcePolicyDailyCycle {

                    /** ResourcePolicyDailyCycle daysInCycle */
                    daysInCycle?: (number|null);

                    /** ResourcePolicyDailyCycle duration */
                    duration?: (string|null);

                    /** ResourcePolicyDailyCycle startTime */
                    startTime?: (string|null);
                }

                /** Represents a ResourcePolicyDailyCycle. */
                class ResourcePolicyDailyCycle implements IResourcePolicyDailyCycle {

                    /**
                     * Constructs a new ResourcePolicyDailyCycle.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyDailyCycle);

                    /** ResourcePolicyDailyCycle daysInCycle. */
                    public daysInCycle?: (number|null);

                    /** ResourcePolicyDailyCycle duration. */
                    public duration?: (string|null);

                    /** ResourcePolicyDailyCycle startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new ResourcePolicyDailyCycle instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyDailyCycle instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyDailyCycle): google.cloud.compute.v1.ResourcePolicyDailyCycle;

                    /**
                     * Encodes the specified ResourcePolicyDailyCycle message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyDailyCycle.verify|verify} messages.
                     * @param message ResourcePolicyDailyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyDailyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyDailyCycle message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyDailyCycle.verify|verify} messages.
                     * @param message ResourcePolicyDailyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyDailyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyDailyCycle message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyDailyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyDailyCycle;

                    /**
                     * Decodes a ResourcePolicyDailyCycle message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyDailyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyDailyCycle;

                    /**
                     * Verifies a ResourcePolicyDailyCycle message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyDailyCycle message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyDailyCycle
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyDailyCycle;

                    /**
                     * Creates a plain object from a ResourcePolicyDailyCycle message. Also converts values to other types if specified.
                     * @param message ResourcePolicyDailyCycle
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyDailyCycle, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyDailyCycle to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyDailyCycle
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyDiskConsistencyGroupPolicy. */
                interface IResourcePolicyDiskConsistencyGroupPolicy {
                }

                /** Represents a ResourcePolicyDiskConsistencyGroupPolicy. */
                class ResourcePolicyDiskConsistencyGroupPolicy implements IResourcePolicyDiskConsistencyGroupPolicy {

                    /**
                     * Constructs a new ResourcePolicyDiskConsistencyGroupPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyDiskConsistencyGroupPolicy);

                    /**
                     * Creates a new ResourcePolicyDiskConsistencyGroupPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyDiskConsistencyGroupPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyDiskConsistencyGroupPolicy): google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicy;

                    /**
                     * Encodes the specified ResourcePolicyDiskConsistencyGroupPolicy message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicy.verify|verify} messages.
                     * @param message ResourcePolicyDiskConsistencyGroupPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyDiskConsistencyGroupPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyDiskConsistencyGroupPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicy.verify|verify} messages.
                     * @param message ResourcePolicyDiskConsistencyGroupPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyDiskConsistencyGroupPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyDiskConsistencyGroupPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyDiskConsistencyGroupPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicy;

                    /**
                     * Decodes a ResourcePolicyDiskConsistencyGroupPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyDiskConsistencyGroupPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicy;

                    /**
                     * Verifies a ResourcePolicyDiskConsistencyGroupPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyDiskConsistencyGroupPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyDiskConsistencyGroupPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicy;

                    /**
                     * Creates a plain object from a ResourcePolicyDiskConsistencyGroupPolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicyDiskConsistencyGroupPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyDiskConsistencyGroupPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyDiskConsistencyGroupPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyGroupPlacementPolicy. */
                interface IResourcePolicyGroupPlacementPolicy {

                    /** ResourcePolicyGroupPlacementPolicy acceleratorTopologyMode */
                    acceleratorTopologyMode?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy availabilityDomainCount */
                    availabilityDomainCount?: (number|null);

                    /** ResourcePolicyGroupPlacementPolicy collocation */
                    collocation?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy gpuTopology */
                    gpuTopology?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy vmCount */
                    vmCount?: (number|null);
                }

                /** Represents a ResourcePolicyGroupPlacementPolicy. */
                class ResourcePolicyGroupPlacementPolicy implements IResourcePolicyGroupPlacementPolicy {

                    /**
                     * Constructs a new ResourcePolicyGroupPlacementPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyGroupPlacementPolicy);

                    /** ResourcePolicyGroupPlacementPolicy acceleratorTopologyMode. */
                    public acceleratorTopologyMode?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy availabilityDomainCount. */
                    public availabilityDomainCount?: (number|null);

                    /** ResourcePolicyGroupPlacementPolicy collocation. */
                    public collocation?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy gpuTopology. */
                    public gpuTopology?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy vmCount. */
                    public vmCount?: (number|null);

                    /**
                     * Creates a new ResourcePolicyGroupPlacementPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyGroupPlacementPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyGroupPlacementPolicy): google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicy;

                    /**
                     * Encodes the specified ResourcePolicyGroupPlacementPolicy message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicy.verify|verify} messages.
                     * @param message ResourcePolicyGroupPlacementPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyGroupPlacementPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyGroupPlacementPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicy.verify|verify} messages.
                     * @param message ResourcePolicyGroupPlacementPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyGroupPlacementPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyGroupPlacementPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyGroupPlacementPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicy;

                    /**
                     * Decodes a ResourcePolicyGroupPlacementPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyGroupPlacementPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicy;

                    /**
                     * Verifies a ResourcePolicyGroupPlacementPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyGroupPlacementPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyGroupPlacementPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicy;

                    /**
                     * Creates a plain object from a ResourcePolicyGroupPlacementPolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicyGroupPlacementPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyGroupPlacementPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyGroupPlacementPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicyGroupPlacementPolicy {

                    /** AcceleratorTopologyMode enum. */
                    enum AcceleratorTopologyMode {
                        UNDEFINED_ACCELERATOR_TOPOLOGY_MODE = 0,
                        AUTO_CONNECT = 491872826,
                        PROVISION_ONLY = 399134966
                    }

                    /** Collocation enum. */
                    enum Collocation {
                        UNDEFINED_COLLOCATION = 0,
                        COLLOCATED = 103257554,
                        UNSPECIFIED_COLLOCATION = 464308205
                    }
                }

                /** Properties of a ResourcePolicyHourlyCycle. */
                interface IResourcePolicyHourlyCycle {

                    /** ResourcePolicyHourlyCycle duration */
                    duration?: (string|null);

                    /** ResourcePolicyHourlyCycle hoursInCycle */
                    hoursInCycle?: (number|null);

                    /** ResourcePolicyHourlyCycle startTime */
                    startTime?: (string|null);
                }

                /** Represents a ResourcePolicyHourlyCycle. */
                class ResourcePolicyHourlyCycle implements IResourcePolicyHourlyCycle {

                    /**
                     * Constructs a new ResourcePolicyHourlyCycle.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyHourlyCycle);

                    /** ResourcePolicyHourlyCycle duration. */
                    public duration?: (string|null);

                    /** ResourcePolicyHourlyCycle hoursInCycle. */
                    public hoursInCycle?: (number|null);

                    /** ResourcePolicyHourlyCycle startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new ResourcePolicyHourlyCycle instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyHourlyCycle instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyHourlyCycle): google.cloud.compute.v1.ResourcePolicyHourlyCycle;

                    /**
                     * Encodes the specified ResourcePolicyHourlyCycle message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyHourlyCycle.verify|verify} messages.
                     * @param message ResourcePolicyHourlyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyHourlyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyHourlyCycle message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyHourlyCycle.verify|verify} messages.
                     * @param message ResourcePolicyHourlyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyHourlyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyHourlyCycle message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyHourlyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyHourlyCycle;

                    /**
                     * Decodes a ResourcePolicyHourlyCycle message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyHourlyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyHourlyCycle;

                    /**
                     * Verifies a ResourcePolicyHourlyCycle message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyHourlyCycle message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyHourlyCycle
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyHourlyCycle;

                    /**
                     * Creates a plain object from a ResourcePolicyHourlyCycle message. Also converts values to other types if specified.
                     * @param message ResourcePolicyHourlyCycle
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyHourlyCycle, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyHourlyCycle to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyHourlyCycle
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyInstanceSchedulePolicy. */
                interface IResourcePolicyInstanceSchedulePolicy {

                    /** ResourcePolicyInstanceSchedulePolicy expirationTime */
                    expirationTime?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy startTime */
                    startTime?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy timeZone */
                    timeZone?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy vmStartSchedule */
                    vmStartSchedule?: (google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicySchedule|null);

                    /** ResourcePolicyInstanceSchedulePolicy vmStopSchedule */
                    vmStopSchedule?: (google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicySchedule|null);
                }

                /** Represents a ResourcePolicyInstanceSchedulePolicy. */
                class ResourcePolicyInstanceSchedulePolicy implements IResourcePolicyInstanceSchedulePolicy {

                    /**
                     * Constructs a new ResourcePolicyInstanceSchedulePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicy);

                    /** ResourcePolicyInstanceSchedulePolicy expirationTime. */
                    public expirationTime?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy startTime. */
                    public startTime?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy timeZone. */
                    public timeZone?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy vmStartSchedule. */
                    public vmStartSchedule?: (google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicySchedule|null);

                    /** ResourcePolicyInstanceSchedulePolicy vmStopSchedule. */
                    public vmStopSchedule?: (google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicySchedule|null);

                    /**
                     * Creates a new ResourcePolicyInstanceSchedulePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyInstanceSchedulePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicy): google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicy;

                    /**
                     * Encodes the specified ResourcePolicyInstanceSchedulePolicy message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicy.verify|verify} messages.
                     * @param message ResourcePolicyInstanceSchedulePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyInstanceSchedulePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicy.verify|verify} messages.
                     * @param message ResourcePolicyInstanceSchedulePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyInstanceSchedulePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyInstanceSchedulePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicy;

                    /**
                     * Decodes a ResourcePolicyInstanceSchedulePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyInstanceSchedulePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicy;

                    /**
                     * Verifies a ResourcePolicyInstanceSchedulePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyInstanceSchedulePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyInstanceSchedulePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicy;

                    /**
                     * Creates a plain object from a ResourcePolicyInstanceSchedulePolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicyInstanceSchedulePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyInstanceSchedulePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyInstanceSchedulePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyInstanceSchedulePolicySchedule. */
                interface IResourcePolicyInstanceSchedulePolicySchedule {

                    /** ResourcePolicyInstanceSchedulePolicySchedule schedule */
                    schedule?: (string|null);
                }

                /** Represents a ResourcePolicyInstanceSchedulePolicySchedule. */
                class ResourcePolicyInstanceSchedulePolicySchedule implements IResourcePolicyInstanceSchedulePolicySchedule {

                    /**
                     * Constructs a new ResourcePolicyInstanceSchedulePolicySchedule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicySchedule);

                    /** ResourcePolicyInstanceSchedulePolicySchedule schedule. */
                    public schedule?: (string|null);

                    /**
                     * Creates a new ResourcePolicyInstanceSchedulePolicySchedule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyInstanceSchedulePolicySchedule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicySchedule): google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicySchedule;

                    /**
                     * Encodes the specified ResourcePolicyInstanceSchedulePolicySchedule message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicySchedule.verify|verify} messages.
                     * @param message ResourcePolicyInstanceSchedulePolicySchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyInstanceSchedulePolicySchedule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicySchedule.verify|verify} messages.
                     * @param message ResourcePolicyInstanceSchedulePolicySchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyInstanceSchedulePolicySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyInstanceSchedulePolicySchedule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyInstanceSchedulePolicySchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicySchedule;

                    /**
                     * Decodes a ResourcePolicyInstanceSchedulePolicySchedule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyInstanceSchedulePolicySchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicySchedule;

                    /**
                     * Verifies a ResourcePolicyInstanceSchedulePolicySchedule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyInstanceSchedulePolicySchedule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyInstanceSchedulePolicySchedule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicySchedule;

                    /**
                     * Creates a plain object from a ResourcePolicyInstanceSchedulePolicySchedule message. Also converts values to other types if specified.
                     * @param message ResourcePolicyInstanceSchedulePolicySchedule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicySchedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyInstanceSchedulePolicySchedule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyInstanceSchedulePolicySchedule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyList. */
                interface IResourcePolicyList {

                    /** ResourcePolicyList etag */
                    etag?: (string|null);

                    /** ResourcePolicyList id */
                    id?: (string|null);

                    /** ResourcePolicyList items */
                    items?: (google.cloud.compute.v1.IResourcePolicy[]|null);

                    /** ResourcePolicyList kind */
                    kind?: (string|null);

                    /** ResourcePolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ResourcePolicyList selfLink */
                    selfLink?: (string|null);

                    /** ResourcePolicyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ResourcePolicyList. */
                class ResourcePolicyList implements IResourcePolicyList {

                    /**
                     * Constructs a new ResourcePolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyList);

                    /** ResourcePolicyList etag. */
                    public etag?: (string|null);

                    /** ResourcePolicyList id. */
                    public id?: (string|null);

                    /** ResourcePolicyList items. */
                    public items: google.cloud.compute.v1.IResourcePolicy[];

                    /** ResourcePolicyList kind. */
                    public kind?: (string|null);

                    /** ResourcePolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ResourcePolicyList selfLink. */
                    public selfLink?: (string|null);

                    /** ResourcePolicyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ResourcePolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyList): google.cloud.compute.v1.ResourcePolicyList;

                    /**
                     * Encodes the specified ResourcePolicyList message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyList.verify|verify} messages.
                     * @param message ResourcePolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyList.verify|verify} messages.
                     * @param message ResourcePolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyList;

                    /**
                     * Decodes a ResourcePolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyList;

                    /**
                     * Verifies a ResourcePolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyList;

                    /**
                     * Creates a plain object from a ResourcePolicyList message. Also converts values to other types if specified.
                     * @param message ResourcePolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyResourceStatus. */
                interface IResourcePolicyResourceStatus {

                    /** ResourcePolicyResourceStatus instanceSchedulePolicy */
                    instanceSchedulePolicy?: (google.cloud.compute.v1.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus|null);
                }

                /** Represents a ResourcePolicyResourceStatus. */
                class ResourcePolicyResourceStatus implements IResourcePolicyResourceStatus {

                    /**
                     * Constructs a new ResourcePolicyResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyResourceStatus);

                    /** ResourcePolicyResourceStatus instanceSchedulePolicy. */
                    public instanceSchedulePolicy?: (google.cloud.compute.v1.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus|null);

                    /**
                     * Creates a new ResourcePolicyResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyResourceStatus): google.cloud.compute.v1.ResourcePolicyResourceStatus;

                    /**
                     * Encodes the specified ResourcePolicyResourceStatus message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyResourceStatus.verify|verify} messages.
                     * @param message ResourcePolicyResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyResourceStatus.verify|verify} messages.
                     * @param message ResourcePolicyResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyResourceStatus;

                    /**
                     * Decodes a ResourcePolicyResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyResourceStatus;

                    /**
                     * Verifies a ResourcePolicyResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyResourceStatus;

                    /**
                     * Creates a plain object from a ResourcePolicyResourceStatus message. Also converts values to other types if specified.
                     * @param message ResourcePolicyResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus. */
                interface IResourcePolicyResourceStatusInstanceSchedulePolicyStatus {

                    /** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus lastRunStartTime */
                    lastRunStartTime?: (string|null);

                    /** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus nextRunStartTime */
                    nextRunStartTime?: (string|null);
                }

                /** Represents a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus. */
                class ResourcePolicyResourceStatusInstanceSchedulePolicyStatus implements IResourcePolicyResourceStatusInstanceSchedulePolicyStatus {

                    /**
                     * Constructs a new ResourcePolicyResourceStatusInstanceSchedulePolicyStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus);

                    /** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus lastRunStartTime. */
                    public lastRunStartTime?: (string|null);

                    /** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus nextRunStartTime. */
                    public nextRunStartTime?: (string|null);

                    /**
                     * Creates a new ResourcePolicyResourceStatusInstanceSchedulePolicyStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyResourceStatusInstanceSchedulePolicyStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus): google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus;

                    /**
                     * Encodes the specified ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus.verify|verify} messages.
                     * @param message ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus.verify|verify} messages.
                     * @param message ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus;

                    /**
                     * Decodes a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus;

                    /**
                     * Verifies a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus;

                    /**
                     * Creates a plain object from a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message. Also converts values to other types if specified.
                     * @param message ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyResourceStatusInstanceSchedulePolicyStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicySnapshotSchedulePolicy. */
                interface IResourcePolicySnapshotSchedulePolicy {

                    /** ResourcePolicySnapshotSchedulePolicy retentionPolicy */
                    retentionPolicy?: (google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicyRetentionPolicy|null);

                    /** ResourcePolicySnapshotSchedulePolicy schedule */
                    schedule?: (google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySchedule|null);

                    /** ResourcePolicySnapshotSchedulePolicy snapshotProperties */
                    snapshotProperties?: (google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySnapshotProperties|null);
                }

                /** Represents a ResourcePolicySnapshotSchedulePolicy. */
                class ResourcePolicySnapshotSchedulePolicy implements IResourcePolicySnapshotSchedulePolicy {

                    /**
                     * Constructs a new ResourcePolicySnapshotSchedulePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicy);

                    /** ResourcePolicySnapshotSchedulePolicy retentionPolicy. */
                    public retentionPolicy?: (google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicyRetentionPolicy|null);

                    /** ResourcePolicySnapshotSchedulePolicy schedule. */
                    public schedule?: (google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySchedule|null);

                    /** ResourcePolicySnapshotSchedulePolicy snapshotProperties. */
                    public snapshotProperties?: (google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySnapshotProperties|null);

                    /**
                     * Creates a new ResourcePolicySnapshotSchedulePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicySnapshotSchedulePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicy): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicy;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicy message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicy.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicy.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicySnapshotSchedulePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicy;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicySnapshotSchedulePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicy;

                    /**
                     * Verifies a ResourcePolicySnapshotSchedulePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicySnapshotSchedulePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicySnapshotSchedulePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicy;

                    /**
                     * Creates a plain object from a ResourcePolicySnapshotSchedulePolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicySnapshotSchedulePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicySnapshotSchedulePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicySnapshotSchedulePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicySnapshotSchedulePolicyRetentionPolicy. */
                interface IResourcePolicySnapshotSchedulePolicyRetentionPolicy {

                    /** ResourcePolicySnapshotSchedulePolicyRetentionPolicy maxRetentionDays */
                    maxRetentionDays?: (number|null);

                    /** ResourcePolicySnapshotSchedulePolicyRetentionPolicy onSourceDiskDelete */
                    onSourceDiskDelete?: (string|null);
                }

                /** Represents a ResourcePolicySnapshotSchedulePolicyRetentionPolicy. */
                class ResourcePolicySnapshotSchedulePolicyRetentionPolicy implements IResourcePolicySnapshotSchedulePolicyRetentionPolicy {

                    /**
                     * Constructs a new ResourcePolicySnapshotSchedulePolicyRetentionPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicyRetentionPolicy);

                    /** ResourcePolicySnapshotSchedulePolicyRetentionPolicy maxRetentionDays. */
                    public maxRetentionDays?: (number|null);

                    /** ResourcePolicySnapshotSchedulePolicyRetentionPolicy onSourceDiskDelete. */
                    public onSourceDiskDelete?: (string|null);

                    /**
                     * Creates a new ResourcePolicySnapshotSchedulePolicyRetentionPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicySnapshotSchedulePolicyRetentionPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicyRetentionPolicy): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicy;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicyRetentionPolicy message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicy.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicyRetentionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicyRetentionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicyRetentionPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicy.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicyRetentionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicyRetentionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicy;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicy;

                    /**
                     * Verifies a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicy;

                    /**
                     * Creates a plain object from a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicySnapshotSchedulePolicyRetentionPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicySnapshotSchedulePolicyRetentionPolicy {

                    /** OnSourceDiskDelete enum. */
                    enum OnSourceDiskDelete {
                        UNDEFINED_ON_SOURCE_DISK_DELETE = 0,
                        APPLY_RETENTION_POLICY = 535071332,
                        KEEP_AUTO_SNAPSHOTS = 258925689,
                        UNSPECIFIED_ON_SOURCE_DISK_DELETE = 239140769
                    }
                }

                /** Properties of a ResourcePolicySnapshotSchedulePolicySchedule. */
                interface IResourcePolicySnapshotSchedulePolicySchedule {

                    /** ResourcePolicySnapshotSchedulePolicySchedule dailySchedule */
                    dailySchedule?: (google.cloud.compute.v1.IResourcePolicyDailyCycle|null);

                    /** ResourcePolicySnapshotSchedulePolicySchedule hourlySchedule */
                    hourlySchedule?: (google.cloud.compute.v1.IResourcePolicyHourlyCycle|null);

                    /** ResourcePolicySnapshotSchedulePolicySchedule weeklySchedule */
                    weeklySchedule?: (google.cloud.compute.v1.IResourcePolicyWeeklyCycle|null);
                }

                /** Represents a ResourcePolicySnapshotSchedulePolicySchedule. */
                class ResourcePolicySnapshotSchedulePolicySchedule implements IResourcePolicySnapshotSchedulePolicySchedule {

                    /**
                     * Constructs a new ResourcePolicySnapshotSchedulePolicySchedule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySchedule);

                    /** ResourcePolicySnapshotSchedulePolicySchedule dailySchedule. */
                    public dailySchedule?: (google.cloud.compute.v1.IResourcePolicyDailyCycle|null);

                    /** ResourcePolicySnapshotSchedulePolicySchedule hourlySchedule. */
                    public hourlySchedule?: (google.cloud.compute.v1.IResourcePolicyHourlyCycle|null);

                    /** ResourcePolicySnapshotSchedulePolicySchedule weeklySchedule. */
                    public weeklySchedule?: (google.cloud.compute.v1.IResourcePolicyWeeklyCycle|null);

                    /**
                     * Creates a new ResourcePolicySnapshotSchedulePolicySchedule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicySnapshotSchedulePolicySchedule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySchedule): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySchedule;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicySchedule message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySchedule.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicySchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicySchedule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySchedule.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicySchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicySchedule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicySnapshotSchedulePolicySchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySchedule;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicySchedule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicySnapshotSchedulePolicySchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySchedule;

                    /**
                     * Verifies a ResourcePolicySnapshotSchedulePolicySchedule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicySnapshotSchedulePolicySchedule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicySnapshotSchedulePolicySchedule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySchedule;

                    /**
                     * Creates a plain object from a ResourcePolicySnapshotSchedulePolicySchedule message. Also converts values to other types if specified.
                     * @param message ResourcePolicySnapshotSchedulePolicySchedule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySchedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicySnapshotSchedulePolicySchedule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicySnapshotSchedulePolicySchedule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicySnapshotSchedulePolicySnapshotProperties. */
                interface IResourcePolicySnapshotSchedulePolicySnapshotProperties {

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties chainName */
                    chainName?: (string|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties guestFlush */
                    guestFlush?: (boolean|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties labels */
                    labels?: ({ [k: string]: string }|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties storageLocations */
                    storageLocations?: (string[]|null);
                }

                /** Represents a ResourcePolicySnapshotSchedulePolicySnapshotProperties. */
                class ResourcePolicySnapshotSchedulePolicySnapshotProperties implements IResourcePolicySnapshotSchedulePolicySnapshotProperties {

                    /**
                     * Constructs a new ResourcePolicySnapshotSchedulePolicySnapshotProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySnapshotProperties);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties chainName. */
                    public chainName?: (string|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties guestFlush. */
                    public guestFlush?: (boolean|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties labels. */
                    public labels: { [k: string]: string };

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties storageLocations. */
                    public storageLocations: string[];

                    /**
                     * Creates a new ResourcePolicySnapshotSchedulePolicySnapshotProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicySnapshotSchedulePolicySnapshotProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySnapshotProperties): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicySnapshotProperties message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicySnapshotProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySnapshotProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicySnapshotProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicySnapshotProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicySnapshotSchedulePolicySnapshotProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicySnapshotProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicySnapshotProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties;

                    /**
                     * Verifies a ResourcePolicySnapshotSchedulePolicySnapshotProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicySnapshotSchedulePolicySnapshotProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties;

                    /**
                     * Creates a plain object from a ResourcePolicySnapshotSchedulePolicySnapshotProperties message. Also converts values to other types if specified.
                     * @param message ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicySnapshotSchedulePolicySnapshotProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyWeeklyCycle. */
                interface IResourcePolicyWeeklyCycle {

                    /** ResourcePolicyWeeklyCycle dayOfWeeks */
                    dayOfWeeks?: (google.cloud.compute.v1.IResourcePolicyWeeklyCycleDayOfWeek[]|null);
                }

                /** Represents a ResourcePolicyWeeklyCycle. */
                class ResourcePolicyWeeklyCycle implements IResourcePolicyWeeklyCycle {

                    /**
                     * Constructs a new ResourcePolicyWeeklyCycle.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyWeeklyCycle);

                    /** ResourcePolicyWeeklyCycle dayOfWeeks. */
                    public dayOfWeeks: google.cloud.compute.v1.IResourcePolicyWeeklyCycleDayOfWeek[];

                    /**
                     * Creates a new ResourcePolicyWeeklyCycle instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyWeeklyCycle instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyWeeklyCycle): google.cloud.compute.v1.ResourcePolicyWeeklyCycle;

                    /**
                     * Encodes the specified ResourcePolicyWeeklyCycle message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyWeeklyCycle.verify|verify} messages.
                     * @param message ResourcePolicyWeeklyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyWeeklyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyWeeklyCycle message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyWeeklyCycle.verify|verify} messages.
                     * @param message ResourcePolicyWeeklyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyWeeklyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyWeeklyCycle message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyWeeklyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyWeeklyCycle;

                    /**
                     * Decodes a ResourcePolicyWeeklyCycle message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyWeeklyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyWeeklyCycle;

                    /**
                     * Verifies a ResourcePolicyWeeklyCycle message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyWeeklyCycle message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyWeeklyCycle
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyWeeklyCycle;

                    /**
                     * Creates a plain object from a ResourcePolicyWeeklyCycle message. Also converts values to other types if specified.
                     * @param message ResourcePolicyWeeklyCycle
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyWeeklyCycle, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyWeeklyCycle to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyWeeklyCycle
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyWeeklyCycleDayOfWeek. */
                interface IResourcePolicyWeeklyCycleDayOfWeek {

                    /** ResourcePolicyWeeklyCycleDayOfWeek day */
                    day?: (string|null);

                    /** ResourcePolicyWeeklyCycleDayOfWeek duration */
                    duration?: (string|null);

                    /** ResourcePolicyWeeklyCycleDayOfWeek startTime */
                    startTime?: (string|null);
                }

                /** Represents a ResourcePolicyWeeklyCycleDayOfWeek. */
                class ResourcePolicyWeeklyCycleDayOfWeek implements IResourcePolicyWeeklyCycleDayOfWeek {

                    /**
                     * Constructs a new ResourcePolicyWeeklyCycleDayOfWeek.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyWeeklyCycleDayOfWeek);

                    /** ResourcePolicyWeeklyCycleDayOfWeek day. */
                    public day?: (string|null);

                    /** ResourcePolicyWeeklyCycleDayOfWeek duration. */
                    public duration?: (string|null);

                    /** ResourcePolicyWeeklyCycleDayOfWeek startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new ResourcePolicyWeeklyCycleDayOfWeek instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyWeeklyCycleDayOfWeek instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyWeeklyCycleDayOfWeek): google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek;

                    /**
                     * Encodes the specified ResourcePolicyWeeklyCycleDayOfWeek message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek.verify|verify} messages.
                     * @param message ResourcePolicyWeeklyCycleDayOfWeek message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyWeeklyCycleDayOfWeek, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyWeeklyCycleDayOfWeek message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek.verify|verify} messages.
                     * @param message ResourcePolicyWeeklyCycleDayOfWeek message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyWeeklyCycleDayOfWeek, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyWeeklyCycleDayOfWeek message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyWeeklyCycleDayOfWeek
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek;

                    /**
                     * Decodes a ResourcePolicyWeeklyCycleDayOfWeek message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyWeeklyCycleDayOfWeek
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek;

                    /**
                     * Verifies a ResourcePolicyWeeklyCycleDayOfWeek message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyWeeklyCycleDayOfWeek message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyWeeklyCycleDayOfWeek
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek;

                    /**
                     * Creates a plain object from a ResourcePolicyWeeklyCycleDayOfWeek message. Also converts values to other types if specified.
                     * @param message ResourcePolicyWeeklyCycleDayOfWeek
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyWeeklyCycleDayOfWeek to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyWeeklyCycleDayOfWeek
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicyWeeklyCycleDayOfWeek {

                    /** Day enum. */
                    enum Day {
                        UNDEFINED_DAY = 0,
                        FRIDAY = 471398751,
                        INVALID = 530283991,
                        MONDAY = 132310288,
                        SATURDAY = 279037881,
                        SUNDAY = 309626320,
                        THURSDAY = 207198682,
                        TUESDAY = 277509677,
                        WEDNESDAY = 422029110
                    }
                }

                /** Properties of a ResourcePolicyWorkloadPolicy. */
                interface IResourcePolicyWorkloadPolicy {

                    /** ResourcePolicyWorkloadPolicy acceleratorTopology */
                    acceleratorTopology?: (string|null);

                    /** ResourcePolicyWorkloadPolicy acceleratorTopologyMode */
                    acceleratorTopologyMode?: (string|null);

                    /** ResourcePolicyWorkloadPolicy maxTopologyDistance */
                    maxTopologyDistance?: (string|null);

                    /** ResourcePolicyWorkloadPolicy type */
                    type?: (string|null);
                }

                /** Represents a ResourcePolicyWorkloadPolicy. */
                class ResourcePolicyWorkloadPolicy implements IResourcePolicyWorkloadPolicy {

                    /**
                     * Constructs a new ResourcePolicyWorkloadPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourcePolicyWorkloadPolicy);

                    /** ResourcePolicyWorkloadPolicy acceleratorTopology. */
                    public acceleratorTopology?: (string|null);

                    /** ResourcePolicyWorkloadPolicy acceleratorTopologyMode. */
                    public acceleratorTopologyMode?: (string|null);

                    /** ResourcePolicyWorkloadPolicy maxTopologyDistance. */
                    public maxTopologyDistance?: (string|null);

                    /** ResourcePolicyWorkloadPolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new ResourcePolicyWorkloadPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyWorkloadPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourcePolicyWorkloadPolicy): google.cloud.compute.v1.ResourcePolicyWorkloadPolicy;

                    /**
                     * Encodes the specified ResourcePolicyWorkloadPolicy message. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyWorkloadPolicy.verify|verify} messages.
                     * @param message ResourcePolicyWorkloadPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourcePolicyWorkloadPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyWorkloadPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourcePolicyWorkloadPolicy.verify|verify} messages.
                     * @param message ResourcePolicyWorkloadPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourcePolicyWorkloadPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyWorkloadPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyWorkloadPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourcePolicyWorkloadPolicy;

                    /**
                     * Decodes a ResourcePolicyWorkloadPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyWorkloadPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourcePolicyWorkloadPolicy;

                    /**
                     * Verifies a ResourcePolicyWorkloadPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyWorkloadPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyWorkloadPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourcePolicyWorkloadPolicy;

                    /**
                     * Creates a plain object from a ResourcePolicyWorkloadPolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicyWorkloadPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourcePolicyWorkloadPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyWorkloadPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyWorkloadPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicyWorkloadPolicy {

                    /** AcceleratorTopologyMode enum. */
                    enum AcceleratorTopologyMode {
                        UNDEFINED_ACCELERATOR_TOPOLOGY_MODE = 0,
                        AUTO_CONNECT = 491872826,
                        PROVISION_ONLY = 399134966
                    }

                    /** MaxTopologyDistance enum. */
                    enum MaxTopologyDistance {
                        UNDEFINED_MAX_TOPOLOGY_DISTANCE = 0,
                        BLOCK = 63294573,
                        CLUSTER = 516333018,
                        SUBBLOCK = 316202573
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HIGH_AVAILABILITY = 409487576,
                        HIGH_THROUGHPUT = 146499815
                    }
                }

                /** Properties of a ResourceStatus. */
                interface IResourceStatus {

                    /** ResourceStatus effectiveInstanceMetadata */
                    effectiveInstanceMetadata?: (google.cloud.compute.v1.IResourceStatusEffectiveInstanceMetadata|null);

                    /** ResourceStatus physicalHost */
                    physicalHost?: (string|null);

                    /** ResourceStatus physicalHostTopology */
                    physicalHostTopology?: (google.cloud.compute.v1.IResourceStatusPhysicalHostTopology|null);

                    /** ResourceStatus reservationConsumptionInfo */
                    reservationConsumptionInfo?: (google.cloud.compute.v1.IResourceStatusReservationConsumptionInfo|null);

                    /** ResourceStatus scheduling */
                    scheduling?: (google.cloud.compute.v1.IResourceStatusScheduling|null);

                    /** ResourceStatus upcomingMaintenance */
                    upcomingMaintenance?: (google.cloud.compute.v1.IUpcomingMaintenance|null);
                }

                /** Represents a ResourceStatus. */
                class ResourceStatus implements IResourceStatus {

                    /**
                     * Constructs a new ResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourceStatus);

                    /** ResourceStatus effectiveInstanceMetadata. */
                    public effectiveInstanceMetadata?: (google.cloud.compute.v1.IResourceStatusEffectiveInstanceMetadata|null);

                    /** ResourceStatus physicalHost. */
                    public physicalHost?: (string|null);

                    /** ResourceStatus physicalHostTopology. */
                    public physicalHostTopology?: (google.cloud.compute.v1.IResourceStatusPhysicalHostTopology|null);

                    /** ResourceStatus reservationConsumptionInfo. */
                    public reservationConsumptionInfo?: (google.cloud.compute.v1.IResourceStatusReservationConsumptionInfo|null);

                    /** ResourceStatus scheduling. */
                    public scheduling?: (google.cloud.compute.v1.IResourceStatusScheduling|null);

                    /** ResourceStatus upcomingMaintenance. */
                    public upcomingMaintenance?: (google.cloud.compute.v1.IUpcomingMaintenance|null);

                    /**
                     * Creates a new ResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourceStatus): google.cloud.compute.v1.ResourceStatus;

                    /**
                     * Encodes the specified ResourceStatus message. Does not implicitly {@link google.cloud.compute.v1.ResourceStatus.verify|verify} messages.
                     * @param message ResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourceStatus.verify|verify} messages.
                     * @param message ResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourceStatus;

                    /**
                     * Decodes a ResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourceStatus;

                    /**
                     * Verifies a ResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourceStatus;

                    /**
                     * Creates a plain object from a ResourceStatus message. Also converts values to other types if specified.
                     * @param message ResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusEffectiveInstanceMetadata. */
                interface IResourceStatusEffectiveInstanceMetadata {

                    /** ResourceStatusEffectiveInstanceMetadata blockProjectSshKeysMetadataValue */
                    blockProjectSshKeysMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableGuestAttributesMetadataValue */
                    enableGuestAttributesMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsInventoryMetadataValue */
                    enableOsInventoryMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsconfigMetadataValue */
                    enableOsconfigMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsloginMetadataValue */
                    enableOsloginMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata gceContainerDeclarationMetadataValue */
                    gceContainerDeclarationMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata serialPortEnableMetadataValue */
                    serialPortEnableMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata serialPortLoggingEnableMetadataValue */
                    serialPortLoggingEnableMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata vmDnsSettingMetadataValue */
                    vmDnsSettingMetadataValue?: (string|null);
                }

                /** Represents a ResourceStatusEffectiveInstanceMetadata. */
                class ResourceStatusEffectiveInstanceMetadata implements IResourceStatusEffectiveInstanceMetadata {

                    /**
                     * Constructs a new ResourceStatusEffectiveInstanceMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourceStatusEffectiveInstanceMetadata);

                    /** ResourceStatusEffectiveInstanceMetadata blockProjectSshKeysMetadataValue. */
                    public blockProjectSshKeysMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableGuestAttributesMetadataValue. */
                    public enableGuestAttributesMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsInventoryMetadataValue. */
                    public enableOsInventoryMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsconfigMetadataValue. */
                    public enableOsconfigMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsloginMetadataValue. */
                    public enableOsloginMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata gceContainerDeclarationMetadataValue. */
                    public gceContainerDeclarationMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata serialPortEnableMetadataValue. */
                    public serialPortEnableMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata serialPortLoggingEnableMetadataValue. */
                    public serialPortLoggingEnableMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata vmDnsSettingMetadataValue. */
                    public vmDnsSettingMetadataValue?: (string|null);

                    /**
                     * Creates a new ResourceStatusEffectiveInstanceMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusEffectiveInstanceMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourceStatusEffectiveInstanceMetadata): google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadata;

                    /**
                     * Encodes the specified ResourceStatusEffectiveInstanceMetadata message. Does not implicitly {@link google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadata.verify|verify} messages.
                     * @param message ResourceStatusEffectiveInstanceMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourceStatusEffectiveInstanceMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusEffectiveInstanceMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadata.verify|verify} messages.
                     * @param message ResourceStatusEffectiveInstanceMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourceStatusEffectiveInstanceMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusEffectiveInstanceMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusEffectiveInstanceMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadata;

                    /**
                     * Decodes a ResourceStatusEffectiveInstanceMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusEffectiveInstanceMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadata;

                    /**
                     * Verifies a ResourceStatusEffectiveInstanceMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusEffectiveInstanceMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusEffectiveInstanceMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadata;

                    /**
                     * Creates a plain object from a ResourceStatusEffectiveInstanceMetadata message. Also converts values to other types if specified.
                     * @param message ResourceStatusEffectiveInstanceMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusEffectiveInstanceMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusEffectiveInstanceMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusPhysicalHostTopology. */
                interface IResourceStatusPhysicalHostTopology {

                    /** ResourceStatusPhysicalHostTopology block */
                    block?: (string|null);

                    /** ResourceStatusPhysicalHostTopology cluster */
                    cluster?: (string|null);

                    /** ResourceStatusPhysicalHostTopology host */
                    host?: (string|null);

                    /** ResourceStatusPhysicalHostTopology subblock */
                    subblock?: (string|null);
                }

                /** Represents a ResourceStatusPhysicalHostTopology. */
                class ResourceStatusPhysicalHostTopology implements IResourceStatusPhysicalHostTopology {

                    /**
                     * Constructs a new ResourceStatusPhysicalHostTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourceStatusPhysicalHostTopology);

                    /** ResourceStatusPhysicalHostTopology block. */
                    public block?: (string|null);

                    /** ResourceStatusPhysicalHostTopology cluster. */
                    public cluster?: (string|null);

                    /** ResourceStatusPhysicalHostTopology host. */
                    public host?: (string|null);

                    /** ResourceStatusPhysicalHostTopology subblock. */
                    public subblock?: (string|null);

                    /**
                     * Creates a new ResourceStatusPhysicalHostTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusPhysicalHostTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourceStatusPhysicalHostTopology): google.cloud.compute.v1.ResourceStatusPhysicalHostTopology;

                    /**
                     * Encodes the specified ResourceStatusPhysicalHostTopology message. Does not implicitly {@link google.cloud.compute.v1.ResourceStatusPhysicalHostTopology.verify|verify} messages.
                     * @param message ResourceStatusPhysicalHostTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourceStatusPhysicalHostTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusPhysicalHostTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourceStatusPhysicalHostTopology.verify|verify} messages.
                     * @param message ResourceStatusPhysicalHostTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourceStatusPhysicalHostTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusPhysicalHostTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusPhysicalHostTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourceStatusPhysicalHostTopology;

                    /**
                     * Decodes a ResourceStatusPhysicalHostTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusPhysicalHostTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourceStatusPhysicalHostTopology;

                    /**
                     * Verifies a ResourceStatusPhysicalHostTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusPhysicalHostTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusPhysicalHostTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourceStatusPhysicalHostTopology;

                    /**
                     * Creates a plain object from a ResourceStatusPhysicalHostTopology message. Also converts values to other types if specified.
                     * @param message ResourceStatusPhysicalHostTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourceStatusPhysicalHostTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusPhysicalHostTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusPhysicalHostTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusReservationConsumptionInfo. */
                interface IResourceStatusReservationConsumptionInfo {

                    /** ResourceStatusReservationConsumptionInfo consumedReservation */
                    consumedReservation?: (string|null);
                }

                /** Represents a ResourceStatusReservationConsumptionInfo. */
                class ResourceStatusReservationConsumptionInfo implements IResourceStatusReservationConsumptionInfo {

                    /**
                     * Constructs a new ResourceStatusReservationConsumptionInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourceStatusReservationConsumptionInfo);

                    /** ResourceStatusReservationConsumptionInfo consumedReservation. */
                    public consumedReservation?: (string|null);

                    /**
                     * Creates a new ResourceStatusReservationConsumptionInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusReservationConsumptionInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourceStatusReservationConsumptionInfo): google.cloud.compute.v1.ResourceStatusReservationConsumptionInfo;

                    /**
                     * Encodes the specified ResourceStatusReservationConsumptionInfo message. Does not implicitly {@link google.cloud.compute.v1.ResourceStatusReservationConsumptionInfo.verify|verify} messages.
                     * @param message ResourceStatusReservationConsumptionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourceStatusReservationConsumptionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusReservationConsumptionInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourceStatusReservationConsumptionInfo.verify|verify} messages.
                     * @param message ResourceStatusReservationConsumptionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourceStatusReservationConsumptionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusReservationConsumptionInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusReservationConsumptionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourceStatusReservationConsumptionInfo;

                    /**
                     * Decodes a ResourceStatusReservationConsumptionInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusReservationConsumptionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourceStatusReservationConsumptionInfo;

                    /**
                     * Verifies a ResourceStatusReservationConsumptionInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusReservationConsumptionInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusReservationConsumptionInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourceStatusReservationConsumptionInfo;

                    /**
                     * Creates a plain object from a ResourceStatusReservationConsumptionInfo message. Also converts values to other types if specified.
                     * @param message ResourceStatusReservationConsumptionInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourceStatusReservationConsumptionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusReservationConsumptionInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusReservationConsumptionInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusScheduling. */
                interface IResourceStatusScheduling {

                    /** ResourceStatusScheduling availabilityDomain */
                    availabilityDomain?: (number|null);
                }

                /** Represents a ResourceStatusScheduling. */
                class ResourceStatusScheduling implements IResourceStatusScheduling {

                    /**
                     * Constructs a new ResourceStatusScheduling.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResourceStatusScheduling);

                    /** ResourceStatusScheduling availabilityDomain. */
                    public availabilityDomain?: (number|null);

                    /**
                     * Creates a new ResourceStatusScheduling instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusScheduling instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResourceStatusScheduling): google.cloud.compute.v1.ResourceStatusScheduling;

                    /**
                     * Encodes the specified ResourceStatusScheduling message. Does not implicitly {@link google.cloud.compute.v1.ResourceStatusScheduling.verify|verify} messages.
                     * @param message ResourceStatusScheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResourceStatusScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusScheduling message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResourceStatusScheduling.verify|verify} messages.
                     * @param message ResourceStatusScheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResourceStatusScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusScheduling message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusScheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResourceStatusScheduling;

                    /**
                     * Decodes a ResourceStatusScheduling message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusScheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResourceStatusScheduling;

                    /**
                     * Verifies a ResourceStatusScheduling message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusScheduling message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusScheduling
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResourceStatusScheduling;

                    /**
                     * Creates a plain object from a ResourceStatusScheduling message. Also converts values to other types if specified.
                     * @param message ResourceStatusScheduling
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResourceStatusScheduling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusScheduling to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusScheduling
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResumeInstanceRequest. */
                interface IResumeInstanceRequest {

                    /** ResumeInstanceRequest instance */
                    instance?: (string|null);

                    /** ResumeInstanceRequest project */
                    project?: (string|null);

                    /** ResumeInstanceRequest requestId */
                    requestId?: (string|null);

                    /** ResumeInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResumeInstanceRequest. */
                class ResumeInstanceRequest implements IResumeInstanceRequest {

                    /**
                     * Constructs a new ResumeInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResumeInstanceRequest);

                    /** ResumeInstanceRequest instance. */
                    public instance: string;

                    /** ResumeInstanceRequest project. */
                    public project: string;

                    /** ResumeInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** ResumeInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResumeInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResumeInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResumeInstanceRequest): google.cloud.compute.v1.ResumeInstanceRequest;

                    /**
                     * Encodes the specified ResumeInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.ResumeInstanceRequest.verify|verify} messages.
                     * @param message ResumeInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResumeInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResumeInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResumeInstanceRequest.verify|verify} messages.
                     * @param message ResumeInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResumeInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResumeInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResumeInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResumeInstanceRequest;

                    /**
                     * Decodes a ResumeInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResumeInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResumeInstanceRequest;

                    /**
                     * Verifies a ResumeInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResumeInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResumeInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResumeInstanceRequest;

                    /**
                     * Creates a plain object from a ResumeInstanceRequest message. Also converts values to other types if specified.
                     * @param message ResumeInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResumeInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResumeInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResumeInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResumeInstancesInstanceGroupManagerRequest. */
                interface IResumeInstancesInstanceGroupManagerRequest {

                    /** ResumeInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResumeInstancesInstanceGroupManagerRequest instanceGroupManagersResumeInstancesRequestResource */
                    instanceGroupManagersResumeInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersResumeInstancesRequest|null);

                    /** ResumeInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResumeInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** ResumeInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResumeInstancesInstanceGroupManagerRequest. */
                class ResumeInstancesInstanceGroupManagerRequest implements IResumeInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResumeInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResumeInstancesInstanceGroupManagerRequest);

                    /** ResumeInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResumeInstancesInstanceGroupManagerRequest instanceGroupManagersResumeInstancesRequestResource. */
                    public instanceGroupManagersResumeInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersResumeInstancesRequest|null);

                    /** ResumeInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResumeInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** ResumeInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResumeInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResumeInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResumeInstancesInstanceGroupManagerRequest): google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResumeInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResumeInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResumeInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResumeInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResumeInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResumeInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResumeInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResumeInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResumeInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResumeInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResumeInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResumeInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResumeInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResumeInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResumeInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResumeInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResumeInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResumeInstancesRegionInstanceGroupManagerRequest. */
                interface IResumeInstancesRegionInstanceGroupManagerRequest {

                    /** ResumeInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersResumeInstancesRequestResource */
                    regionInstanceGroupManagersResumeInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersResumeInstancesRequest|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a ResumeInstancesRegionInstanceGroupManagerRequest. */
                class ResumeInstancesRegionInstanceGroupManagerRequest implements IResumeInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResumeInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IResumeInstancesRegionInstanceGroupManagerRequest);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResumeInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResumeInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** ResumeInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersResumeInstancesRequestResource. */
                    public regionInstanceGroupManagersResumeInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersResumeInstancesRequest|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new ResumeInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResumeInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IResumeInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1.ResumeInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResumeInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.ResumeInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResumeInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IResumeInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResumeInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ResumeInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResumeInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IResumeInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResumeInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResumeInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ResumeInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResumeInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResumeInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ResumeInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResumeInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResumeInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResumeInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ResumeInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResumeInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResumeInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ResumeInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResumeInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResumeInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Route. */
                interface IRoute {

                    /** Route asPaths */
                    asPaths?: (google.cloud.compute.v1.IRouteAsPath[]|null);

                    /** Route creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Route description */
                    description?: (string|null);

                    /** Route destRange */
                    destRange?: (string|null);

                    /** Route id */
                    id?: (number|Long|string|null);

                    /** Route kind */
                    kind?: (string|null);

                    /** Route name */
                    name?: (string|null);

                    /** Route network */
                    network?: (string|null);

                    /** Route nextHopGateway */
                    nextHopGateway?: (string|null);

                    /** Route nextHopHub */
                    nextHopHub?: (string|null);

                    /** Route nextHopIlb */
                    nextHopIlb?: (string|null);

                    /** Route nextHopInstance */
                    nextHopInstance?: (string|null);

                    /** Route nextHopInterRegionCost */
                    nextHopInterRegionCost?: (number|null);

                    /** Route nextHopInterconnectAttachment */
                    nextHopInterconnectAttachment?: (string|null);

                    /** Route nextHopIp */
                    nextHopIp?: (string|null);

                    /** Route nextHopMed */
                    nextHopMed?: (number|null);

                    /** Route nextHopNetwork */
                    nextHopNetwork?: (string|null);

                    /** Route nextHopOrigin */
                    nextHopOrigin?: (string|null);

                    /** Route nextHopPeering */
                    nextHopPeering?: (string|null);

                    /** Route nextHopVpnTunnel */
                    nextHopVpnTunnel?: (string|null);

                    /** Route params */
                    params?: (google.cloud.compute.v1.IRouteParams|null);

                    /** Route priority */
                    priority?: (number|null);

                    /** Route routeStatus */
                    routeStatus?: (string|null);

                    /** Route routeType */
                    routeType?: (string|null);

                    /** Route selfLink */
                    selfLink?: (string|null);

                    /** Route tags */
                    tags?: (string[]|null);

                    /** Route warnings */
                    warnings?: (google.cloud.compute.v1.IWarnings[]|null);
                }

                /** Represents a Route. */
                class Route implements IRoute {

                    /**
                     * Constructs a new Route.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRoute);

                    /** Route asPaths. */
                    public asPaths: google.cloud.compute.v1.IRouteAsPath[];

                    /** Route creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Route description. */
                    public description?: (string|null);

                    /** Route destRange. */
                    public destRange?: (string|null);

                    /** Route id. */
                    public id?: (number|Long|string|null);

                    /** Route kind. */
                    public kind?: (string|null);

                    /** Route name. */
                    public name?: (string|null);

                    /** Route network. */
                    public network?: (string|null);

                    /** Route nextHopGateway. */
                    public nextHopGateway?: (string|null);

                    /** Route nextHopHub. */
                    public nextHopHub?: (string|null);

                    /** Route nextHopIlb. */
                    public nextHopIlb?: (string|null);

                    /** Route nextHopInstance. */
                    public nextHopInstance?: (string|null);

                    /** Route nextHopInterRegionCost. */
                    public nextHopInterRegionCost?: (number|null);

                    /** Route nextHopInterconnectAttachment. */
                    public nextHopInterconnectAttachment?: (string|null);

                    /** Route nextHopIp. */
                    public nextHopIp?: (string|null);

                    /** Route nextHopMed. */
                    public nextHopMed?: (number|null);

                    /** Route nextHopNetwork. */
                    public nextHopNetwork?: (string|null);

                    /** Route nextHopOrigin. */
                    public nextHopOrigin?: (string|null);

                    /** Route nextHopPeering. */
                    public nextHopPeering?: (string|null);

                    /** Route nextHopVpnTunnel. */
                    public nextHopVpnTunnel?: (string|null);

                    /** Route params. */
                    public params?: (google.cloud.compute.v1.IRouteParams|null);

                    /** Route priority. */
                    public priority?: (number|null);

                    /** Route routeStatus. */
                    public routeStatus?: (string|null);

                    /** Route routeType. */
                    public routeType?: (string|null);

                    /** Route selfLink. */
                    public selfLink?: (string|null);

                    /** Route tags. */
                    public tags: string[];

                    /** Route warnings. */
                    public warnings: google.cloud.compute.v1.IWarnings[];

                    /**
                     * Creates a new Route instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Route instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRoute): google.cloud.compute.v1.Route;

                    /**
                     * Encodes the specified Route message. Does not implicitly {@link google.cloud.compute.v1.Route.verify|verify} messages.
                     * @param message Route message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Route message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Route.verify|verify} messages.
                     * @param message Route message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Route message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Route
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Route;

                    /**
                     * Decodes a Route message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Route
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Route;

                    /**
                     * Verifies a Route message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Route message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Route
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Route;

                    /**
                     * Creates a plain object from a Route message. Also converts values to other types if specified.
                     * @param message Route
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Route, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Route to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Route
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Route {

                    /** NextHopOrigin enum. */
                    enum NextHopOrigin {
                        UNDEFINED_NEXT_HOP_ORIGIN = 0,
                        EGP = 68590,
                        IGP = 72434,
                        INCOMPLETE = 11941214
                    }

                    /** RouteStatus enum. */
                    enum RouteStatus {
                        UNDEFINED_ROUTE_STATUS = 0,
                        ACTIVE = 314733318,
                        DROPPED = 496235424,
                        INACTIVE = 270421099,
                        PENDING = 35394935
                    }

                    /** RouteType enum. */
                    enum RouteType {
                        UNDEFINED_ROUTE_TYPE = 0,
                        BGP = 65707,
                        STATIC = 308331118,
                        SUBNET = 309278557,
                        TRANSIT = 187793843
                    }
                }

                /** Properties of a RouteAsPath. */
                interface IRouteAsPath {

                    /** RouteAsPath asLists */
                    asLists?: (number[]|null);

                    /** RouteAsPath pathSegmentType */
                    pathSegmentType?: (string|null);
                }

                /** Represents a RouteAsPath. */
                class RouteAsPath implements IRouteAsPath {

                    /**
                     * Constructs a new RouteAsPath.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouteAsPath);

                    /** RouteAsPath asLists. */
                    public asLists: number[];

                    /** RouteAsPath pathSegmentType. */
                    public pathSegmentType?: (string|null);

                    /**
                     * Creates a new RouteAsPath instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouteAsPath instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouteAsPath): google.cloud.compute.v1.RouteAsPath;

                    /**
                     * Encodes the specified RouteAsPath message. Does not implicitly {@link google.cloud.compute.v1.RouteAsPath.verify|verify} messages.
                     * @param message RouteAsPath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouteAsPath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouteAsPath message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouteAsPath.verify|verify} messages.
                     * @param message RouteAsPath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouteAsPath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouteAsPath message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouteAsPath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouteAsPath;

                    /**
                     * Decodes a RouteAsPath message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouteAsPath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouteAsPath;

                    /**
                     * Verifies a RouteAsPath message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouteAsPath message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouteAsPath
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouteAsPath;

                    /**
                     * Creates a plain object from a RouteAsPath message. Also converts values to other types if specified.
                     * @param message RouteAsPath
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouteAsPath, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouteAsPath to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouteAsPath
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouteAsPath {

                    /** PathSegmentType enum. */
                    enum PathSegmentType {
                        UNDEFINED_PATH_SEGMENT_TYPE = 0,
                        AS_CONFED_SEQUENCE = 222152624,
                        AS_CONFED_SET = 374040307,
                        AS_SEQUENCE = 106735918,
                        AS_SET = 329846453
                    }
                }

                /** Properties of a RouteList. */
                interface IRouteList {

                    /** RouteList id */
                    id?: (string|null);

                    /** RouteList items */
                    items?: (google.cloud.compute.v1.IRoute[]|null);

                    /** RouteList kind */
                    kind?: (string|null);

                    /** RouteList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RouteList selfLink */
                    selfLink?: (string|null);

                    /** RouteList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RouteList. */
                class RouteList implements IRouteList {

                    /**
                     * Constructs a new RouteList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouteList);

                    /** RouteList id. */
                    public id?: (string|null);

                    /** RouteList items. */
                    public items: google.cloud.compute.v1.IRoute[];

                    /** RouteList kind. */
                    public kind?: (string|null);

                    /** RouteList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RouteList selfLink. */
                    public selfLink?: (string|null);

                    /** RouteList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RouteList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouteList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouteList): google.cloud.compute.v1.RouteList;

                    /**
                     * Encodes the specified RouteList message. Does not implicitly {@link google.cloud.compute.v1.RouteList.verify|verify} messages.
                     * @param message RouteList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouteList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouteList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouteList.verify|verify} messages.
                     * @param message RouteList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouteList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouteList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouteList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouteList;

                    /**
                     * Decodes a RouteList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouteList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouteList;

                    /**
                     * Verifies a RouteList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouteList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouteList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouteList;

                    /**
                     * Creates a plain object from a RouteList message. Also converts values to other types if specified.
                     * @param message RouteList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouteList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouteList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouteList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouteParams. */
                interface IRouteParams {

                    /** RouteParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a RouteParams. */
                class RouteParams implements IRouteParams {

                    /**
                     * Constructs a new RouteParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouteParams);

                    /** RouteParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new RouteParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouteParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouteParams): google.cloud.compute.v1.RouteParams;

                    /**
                     * Encodes the specified RouteParams message. Does not implicitly {@link google.cloud.compute.v1.RouteParams.verify|verify} messages.
                     * @param message RouteParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouteParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouteParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouteParams.verify|verify} messages.
                     * @param message RouteParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouteParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouteParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouteParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouteParams;

                    /**
                     * Decodes a RouteParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouteParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouteParams;

                    /**
                     * Verifies a RouteParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouteParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouteParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouteParams;

                    /**
                     * Creates a plain object from a RouteParams message. Also converts values to other types if specified.
                     * @param message RouteParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouteParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouteParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouteParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutePolicy. */
                interface IRoutePolicy {

                    /** RoutePolicy description */
                    description?: (string|null);

                    /** RoutePolicy fingerprint */
                    fingerprint?: (string|null);

                    /** RoutePolicy name */
                    name?: (string|null);

                    /** RoutePolicy terms */
                    terms?: (google.cloud.compute.v1.IRoutePolicyPolicyTerm[]|null);

                    /** RoutePolicy type */
                    type?: (string|null);
                }

                /** Represents a RoutePolicy. */
                class RoutePolicy implements IRoutePolicy {

                    /**
                     * Constructs a new RoutePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRoutePolicy);

                    /** RoutePolicy description. */
                    public description?: (string|null);

                    /** RoutePolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** RoutePolicy name. */
                    public name?: (string|null);

                    /** RoutePolicy terms. */
                    public terms: google.cloud.compute.v1.IRoutePolicyPolicyTerm[];

                    /** RoutePolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new RoutePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRoutePolicy): google.cloud.compute.v1.RoutePolicy;

                    /**
                     * Encodes the specified RoutePolicy message. Does not implicitly {@link google.cloud.compute.v1.RoutePolicy.verify|verify} messages.
                     * @param message RoutePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRoutePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RoutePolicy.verify|verify} messages.
                     * @param message RoutePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRoutePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RoutePolicy;

                    /**
                     * Decodes a RoutePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RoutePolicy;

                    /**
                     * Verifies a RoutePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RoutePolicy;

                    /**
                     * Creates a plain object from a RoutePolicy message. Also converts values to other types if specified.
                     * @param message RoutePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RoutePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RoutePolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        ROUTE_POLICY_TYPE_EXPORT = 293086882,
                        ROUTE_POLICY_TYPE_IMPORT = 397444755
                    }
                }

                /** Properties of a RoutePolicyPolicyTerm. */
                interface IRoutePolicyPolicyTerm {

                    /** RoutePolicyPolicyTerm actions */
                    actions?: (google.cloud.compute.v1.IExpr[]|null);

                    /** RoutePolicyPolicyTerm match */
                    match?: (google.cloud.compute.v1.IExpr|null);

                    /** RoutePolicyPolicyTerm priority */
                    priority?: (number|null);
                }

                /** Represents a RoutePolicyPolicyTerm. */
                class RoutePolicyPolicyTerm implements IRoutePolicyPolicyTerm {

                    /**
                     * Constructs a new RoutePolicyPolicyTerm.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRoutePolicyPolicyTerm);

                    /** RoutePolicyPolicyTerm actions. */
                    public actions: google.cloud.compute.v1.IExpr[];

                    /** RoutePolicyPolicyTerm match. */
                    public match?: (google.cloud.compute.v1.IExpr|null);

                    /** RoutePolicyPolicyTerm priority. */
                    public priority?: (number|null);

                    /**
                     * Creates a new RoutePolicyPolicyTerm instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutePolicyPolicyTerm instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRoutePolicyPolicyTerm): google.cloud.compute.v1.RoutePolicyPolicyTerm;

                    /**
                     * Encodes the specified RoutePolicyPolicyTerm message. Does not implicitly {@link google.cloud.compute.v1.RoutePolicyPolicyTerm.verify|verify} messages.
                     * @param message RoutePolicyPolicyTerm message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRoutePolicyPolicyTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutePolicyPolicyTerm message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RoutePolicyPolicyTerm.verify|verify} messages.
                     * @param message RoutePolicyPolicyTerm message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRoutePolicyPolicyTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutePolicyPolicyTerm message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutePolicyPolicyTerm
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RoutePolicyPolicyTerm;

                    /**
                     * Decodes a RoutePolicyPolicyTerm message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutePolicyPolicyTerm
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RoutePolicyPolicyTerm;

                    /**
                     * Verifies a RoutePolicyPolicyTerm message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutePolicyPolicyTerm message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutePolicyPolicyTerm
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RoutePolicyPolicyTerm;

                    /**
                     * Creates a plain object from a RoutePolicyPolicyTerm message. Also converts values to other types if specified.
                     * @param message RoutePolicyPolicyTerm
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RoutePolicyPolicyTerm, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutePolicyPolicyTerm to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutePolicyPolicyTerm
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Router. */
                interface IRouter {

                    /** Router bgp */
                    bgp?: (google.cloud.compute.v1.IRouterBgp|null);

                    /** Router bgpPeers */
                    bgpPeers?: (google.cloud.compute.v1.IRouterBgpPeer[]|null);

                    /** Router creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Router description */
                    description?: (string|null);

                    /** Router encryptedInterconnectRouter */
                    encryptedInterconnectRouter?: (boolean|null);

                    /** Router id */
                    id?: (number|Long|string|null);

                    /** Router interfaces */
                    interfaces?: (google.cloud.compute.v1.IRouterInterface[]|null);

                    /** Router kind */
                    kind?: (string|null);

                    /** Router md5AuthenticationKeys */
                    md5AuthenticationKeys?: (google.cloud.compute.v1.IRouterMd5AuthenticationKey[]|null);

                    /** Router name */
                    name?: (string|null);

                    /** Router nats */
                    nats?: (google.cloud.compute.v1.IRouterNat[]|null);

                    /** Router network */
                    network?: (string|null);

                    /** Router params */
                    params?: (google.cloud.compute.v1.IRouterParams|null);

                    /** Router region */
                    region?: (string|null);

                    /** Router selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a Router. */
                class Router implements IRouter {

                    /**
                     * Constructs a new Router.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouter);

                    /** Router bgp. */
                    public bgp?: (google.cloud.compute.v1.IRouterBgp|null);

                    /** Router bgpPeers. */
                    public bgpPeers: google.cloud.compute.v1.IRouterBgpPeer[];

                    /** Router creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Router description. */
                    public description?: (string|null);

                    /** Router encryptedInterconnectRouter. */
                    public encryptedInterconnectRouter?: (boolean|null);

                    /** Router id. */
                    public id?: (number|Long|string|null);

                    /** Router interfaces. */
                    public interfaces: google.cloud.compute.v1.IRouterInterface[];

                    /** Router kind. */
                    public kind?: (string|null);

                    /** Router md5AuthenticationKeys. */
                    public md5AuthenticationKeys: google.cloud.compute.v1.IRouterMd5AuthenticationKey[];

                    /** Router name. */
                    public name?: (string|null);

                    /** Router nats. */
                    public nats: google.cloud.compute.v1.IRouterNat[];

                    /** Router network. */
                    public network?: (string|null);

                    /** Router params. */
                    public params?: (google.cloud.compute.v1.IRouterParams|null);

                    /** Router region. */
                    public region?: (string|null);

                    /** Router selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new Router instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Router instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouter): google.cloud.compute.v1.Router;

                    /**
                     * Encodes the specified Router message. Does not implicitly {@link google.cloud.compute.v1.Router.verify|verify} messages.
                     * @param message Router message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Router message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Router.verify|verify} messages.
                     * @param message Router message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Router message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Router
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Router;

                    /**
                     * Decodes a Router message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Router
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Router;

                    /**
                     * Verifies a Router message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Router message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Router
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Router;

                    /**
                     * Creates a plain object from a Router message. Also converts values to other types if specified.
                     * @param message Router
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Router, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Router to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Router
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterAdvertisedIpRange. */
                interface IRouterAdvertisedIpRange {

                    /** RouterAdvertisedIpRange description */
                    description?: (string|null);

                    /** RouterAdvertisedIpRange range */
                    range?: (string|null);
                }

                /** Represents a RouterAdvertisedIpRange. */
                class RouterAdvertisedIpRange implements IRouterAdvertisedIpRange {

                    /**
                     * Constructs a new RouterAdvertisedIpRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterAdvertisedIpRange);

                    /** RouterAdvertisedIpRange description. */
                    public description?: (string|null);

                    /** RouterAdvertisedIpRange range. */
                    public range?: (string|null);

                    /**
                     * Creates a new RouterAdvertisedIpRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterAdvertisedIpRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterAdvertisedIpRange): google.cloud.compute.v1.RouterAdvertisedIpRange;

                    /**
                     * Encodes the specified RouterAdvertisedIpRange message. Does not implicitly {@link google.cloud.compute.v1.RouterAdvertisedIpRange.verify|verify} messages.
                     * @param message RouterAdvertisedIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterAdvertisedIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterAdvertisedIpRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterAdvertisedIpRange.verify|verify} messages.
                     * @param message RouterAdvertisedIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterAdvertisedIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterAdvertisedIpRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterAdvertisedIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterAdvertisedIpRange;

                    /**
                     * Decodes a RouterAdvertisedIpRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterAdvertisedIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterAdvertisedIpRange;

                    /**
                     * Verifies a RouterAdvertisedIpRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterAdvertisedIpRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterAdvertisedIpRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterAdvertisedIpRange;

                    /**
                     * Creates a plain object from a RouterAdvertisedIpRange message. Also converts values to other types if specified.
                     * @param message RouterAdvertisedIpRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterAdvertisedIpRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterAdvertisedIpRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterAdvertisedIpRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterAggregatedList. */
                interface IRouterAggregatedList {

                    /** RouterAggregatedList id */
                    id?: (string|null);

                    /** RouterAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IRoutersScopedList }|null);

                    /** RouterAggregatedList kind */
                    kind?: (string|null);

                    /** RouterAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RouterAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** RouterAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** RouterAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RouterAggregatedList. */
                class RouterAggregatedList implements IRouterAggregatedList {

                    /**
                     * Constructs a new RouterAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterAggregatedList);

                    /** RouterAggregatedList id. */
                    public id?: (string|null);

                    /** RouterAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IRoutersScopedList };

                    /** RouterAggregatedList kind. */
                    public kind?: (string|null);

                    /** RouterAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RouterAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** RouterAggregatedList unreachables. */
                    public unreachables: string[];

                    /** RouterAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RouterAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterAggregatedList): google.cloud.compute.v1.RouterAggregatedList;

                    /**
                     * Encodes the specified RouterAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.RouterAggregatedList.verify|verify} messages.
                     * @param message RouterAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterAggregatedList.verify|verify} messages.
                     * @param message RouterAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterAggregatedList;

                    /**
                     * Decodes a RouterAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterAggregatedList;

                    /**
                     * Verifies a RouterAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterAggregatedList;

                    /**
                     * Creates a plain object from a RouterAggregatedList message. Also converts values to other types if specified.
                     * @param message RouterAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterBgp. */
                interface IRouterBgp {

                    /** RouterBgp advertiseMode */
                    advertiseMode?: (string|null);

                    /** RouterBgp advertisedGroups */
                    advertisedGroups?: (string[]|null);

                    /** RouterBgp advertisedIpRanges */
                    advertisedIpRanges?: (google.cloud.compute.v1.IRouterAdvertisedIpRange[]|null);

                    /** RouterBgp asn */
                    asn?: (number|null);

                    /** RouterBgp identifierRange */
                    identifierRange?: (string|null);

                    /** RouterBgp keepaliveInterval */
                    keepaliveInterval?: (number|null);
                }

                /** Represents a RouterBgp. */
                class RouterBgp implements IRouterBgp {

                    /**
                     * Constructs a new RouterBgp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterBgp);

                    /** RouterBgp advertiseMode. */
                    public advertiseMode?: (string|null);

                    /** RouterBgp advertisedGroups. */
                    public advertisedGroups: string[];

                    /** RouterBgp advertisedIpRanges. */
                    public advertisedIpRanges: google.cloud.compute.v1.IRouterAdvertisedIpRange[];

                    /** RouterBgp asn. */
                    public asn?: (number|null);

                    /** RouterBgp identifierRange. */
                    public identifierRange?: (string|null);

                    /** RouterBgp keepaliveInterval. */
                    public keepaliveInterval?: (number|null);

                    /**
                     * Creates a new RouterBgp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterBgp instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterBgp): google.cloud.compute.v1.RouterBgp;

                    /**
                     * Encodes the specified RouterBgp message. Does not implicitly {@link google.cloud.compute.v1.RouterBgp.verify|verify} messages.
                     * @param message RouterBgp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterBgp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterBgp message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterBgp.verify|verify} messages.
                     * @param message RouterBgp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterBgp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterBgp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterBgp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterBgp;

                    /**
                     * Decodes a RouterBgp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterBgp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterBgp;

                    /**
                     * Verifies a RouterBgp message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterBgp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterBgp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterBgp;

                    /**
                     * Creates a plain object from a RouterBgp message. Also converts values to other types if specified.
                     * @param message RouterBgp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterBgp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterBgp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterBgp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterBgp {

                    /** AdvertiseMode enum. */
                    enum AdvertiseMode {
                        UNDEFINED_ADVERTISE_MODE = 0,
                        CUSTOM = 388595569,
                        DEFAULT = 115302945
                    }

                    /** AdvertisedGroups enum. */
                    enum AdvertisedGroups {
                        UNDEFINED_ADVERTISED_GROUPS = 0,
                        ALL_SUBNETS = 3622872
                    }
                }

                /** Properties of a RouterBgpPeer. */
                interface IRouterBgpPeer {

                    /** RouterBgpPeer advertiseMode */
                    advertiseMode?: (string|null);

                    /** RouterBgpPeer advertisedGroups */
                    advertisedGroups?: (string[]|null);

                    /** RouterBgpPeer advertisedIpRanges */
                    advertisedIpRanges?: (google.cloud.compute.v1.IRouterAdvertisedIpRange[]|null);

                    /** RouterBgpPeer advertisedRoutePriority */
                    advertisedRoutePriority?: (number|null);

                    /** RouterBgpPeer bfd */
                    bfd?: (google.cloud.compute.v1.IRouterBgpPeerBfd|null);

                    /** RouterBgpPeer customLearnedIpRanges */
                    customLearnedIpRanges?: (google.cloud.compute.v1.IRouterBgpPeerCustomLearnedIpRange[]|null);

                    /** RouterBgpPeer customLearnedRoutePriority */
                    customLearnedRoutePriority?: (number|null);

                    /** RouterBgpPeer enable */
                    enable?: (string|null);

                    /** RouterBgpPeer enableIpv4 */
                    enableIpv4?: (boolean|null);

                    /** RouterBgpPeer enableIpv6 */
                    enableIpv6?: (boolean|null);

                    /** RouterBgpPeer exportPolicies */
                    exportPolicies?: (string[]|null);

                    /** RouterBgpPeer importPolicies */
                    importPolicies?: (string[]|null);

                    /** RouterBgpPeer interfaceName */
                    interfaceName?: (string|null);

                    /** RouterBgpPeer ipAddress */
                    ipAddress?: (string|null);

                    /** RouterBgpPeer ipv4NexthopAddress */
                    ipv4NexthopAddress?: (string|null);

                    /** RouterBgpPeer ipv6NexthopAddress */
                    ipv6NexthopAddress?: (string|null);

                    /** RouterBgpPeer managementType */
                    managementType?: (string|null);

                    /** RouterBgpPeer md5AuthenticationKeyName */
                    md5AuthenticationKeyName?: (string|null);

                    /** RouterBgpPeer name */
                    name?: (string|null);

                    /** RouterBgpPeer peerAsn */
                    peerAsn?: (number|null);

                    /** RouterBgpPeer peerIpAddress */
                    peerIpAddress?: (string|null);

                    /** RouterBgpPeer peerIpv4NexthopAddress */
                    peerIpv4NexthopAddress?: (string|null);

                    /** RouterBgpPeer peerIpv6NexthopAddress */
                    peerIpv6NexthopAddress?: (string|null);

                    /** RouterBgpPeer routerApplianceInstance */
                    routerApplianceInstance?: (string|null);
                }

                /** Represents a RouterBgpPeer. */
                class RouterBgpPeer implements IRouterBgpPeer {

                    /**
                     * Constructs a new RouterBgpPeer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterBgpPeer);

                    /** RouterBgpPeer advertiseMode. */
                    public advertiseMode?: (string|null);

                    /** RouterBgpPeer advertisedGroups. */
                    public advertisedGroups: string[];

                    /** RouterBgpPeer advertisedIpRanges. */
                    public advertisedIpRanges: google.cloud.compute.v1.IRouterAdvertisedIpRange[];

                    /** RouterBgpPeer advertisedRoutePriority. */
                    public advertisedRoutePriority?: (number|null);

                    /** RouterBgpPeer bfd. */
                    public bfd?: (google.cloud.compute.v1.IRouterBgpPeerBfd|null);

                    /** RouterBgpPeer customLearnedIpRanges. */
                    public customLearnedIpRanges: google.cloud.compute.v1.IRouterBgpPeerCustomLearnedIpRange[];

                    /** RouterBgpPeer customLearnedRoutePriority. */
                    public customLearnedRoutePriority?: (number|null);

                    /** RouterBgpPeer enable. */
                    public enable?: (string|null);

                    /** RouterBgpPeer enableIpv4. */
                    public enableIpv4?: (boolean|null);

                    /** RouterBgpPeer enableIpv6. */
                    public enableIpv6?: (boolean|null);

                    /** RouterBgpPeer exportPolicies. */
                    public exportPolicies: string[];

                    /** RouterBgpPeer importPolicies. */
                    public importPolicies: string[];

                    /** RouterBgpPeer interfaceName. */
                    public interfaceName?: (string|null);

                    /** RouterBgpPeer ipAddress. */
                    public ipAddress?: (string|null);

                    /** RouterBgpPeer ipv4NexthopAddress. */
                    public ipv4NexthopAddress?: (string|null);

                    /** RouterBgpPeer ipv6NexthopAddress. */
                    public ipv6NexthopAddress?: (string|null);

                    /** RouterBgpPeer managementType. */
                    public managementType?: (string|null);

                    /** RouterBgpPeer md5AuthenticationKeyName. */
                    public md5AuthenticationKeyName?: (string|null);

                    /** RouterBgpPeer name. */
                    public name?: (string|null);

                    /** RouterBgpPeer peerAsn. */
                    public peerAsn?: (number|null);

                    /** RouterBgpPeer peerIpAddress. */
                    public peerIpAddress?: (string|null);

                    /** RouterBgpPeer peerIpv4NexthopAddress. */
                    public peerIpv4NexthopAddress?: (string|null);

                    /** RouterBgpPeer peerIpv6NexthopAddress. */
                    public peerIpv6NexthopAddress?: (string|null);

                    /** RouterBgpPeer routerApplianceInstance. */
                    public routerApplianceInstance?: (string|null);

                    /**
                     * Creates a new RouterBgpPeer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterBgpPeer instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterBgpPeer): google.cloud.compute.v1.RouterBgpPeer;

                    /**
                     * Encodes the specified RouterBgpPeer message. Does not implicitly {@link google.cloud.compute.v1.RouterBgpPeer.verify|verify} messages.
                     * @param message RouterBgpPeer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterBgpPeer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterBgpPeer message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterBgpPeer.verify|verify} messages.
                     * @param message RouterBgpPeer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterBgpPeer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterBgpPeer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterBgpPeer
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterBgpPeer;

                    /**
                     * Decodes a RouterBgpPeer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterBgpPeer
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterBgpPeer;

                    /**
                     * Verifies a RouterBgpPeer message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterBgpPeer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterBgpPeer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterBgpPeer;

                    /**
                     * Creates a plain object from a RouterBgpPeer message. Also converts values to other types if specified.
                     * @param message RouterBgpPeer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterBgpPeer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterBgpPeer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterBgpPeer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterBgpPeer {

                    /** AdvertiseMode enum. */
                    enum AdvertiseMode {
                        UNDEFINED_ADVERTISE_MODE = 0,
                        CUSTOM = 388595569,
                        DEFAULT = 115302945
                    }

                    /** AdvertisedGroups enum. */
                    enum AdvertisedGroups {
                        UNDEFINED_ADVERTISED_GROUPS = 0,
                        ALL_SUBNETS = 3622872
                    }

                    /** Enable enum. */
                    enum Enable {
                        UNDEFINED_ENABLE = 0,
                        FALSE = 66658563,
                        TRUE = 2583950
                    }

                    /** ManagementType enum. */
                    enum ManagementType {
                        UNDEFINED_MANAGEMENT_TYPE = 0,
                        MANAGED_BY_ATTACHMENT = 458926411,
                        MANAGED_BY_USER = 317294067
                    }
                }

                /** Properties of a RouterBgpPeerBfd. */
                interface IRouterBgpPeerBfd {

                    /** RouterBgpPeerBfd minReceiveInterval */
                    minReceiveInterval?: (number|null);

                    /** RouterBgpPeerBfd minTransmitInterval */
                    minTransmitInterval?: (number|null);

                    /** RouterBgpPeerBfd multiplier */
                    multiplier?: (number|null);

                    /** RouterBgpPeerBfd sessionInitializationMode */
                    sessionInitializationMode?: (string|null);
                }

                /** Represents a RouterBgpPeerBfd. */
                class RouterBgpPeerBfd implements IRouterBgpPeerBfd {

                    /**
                     * Constructs a new RouterBgpPeerBfd.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterBgpPeerBfd);

                    /** RouterBgpPeerBfd minReceiveInterval. */
                    public minReceiveInterval?: (number|null);

                    /** RouterBgpPeerBfd minTransmitInterval. */
                    public minTransmitInterval?: (number|null);

                    /** RouterBgpPeerBfd multiplier. */
                    public multiplier?: (number|null);

                    /** RouterBgpPeerBfd sessionInitializationMode. */
                    public sessionInitializationMode?: (string|null);

                    /**
                     * Creates a new RouterBgpPeerBfd instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterBgpPeerBfd instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterBgpPeerBfd): google.cloud.compute.v1.RouterBgpPeerBfd;

                    /**
                     * Encodes the specified RouterBgpPeerBfd message. Does not implicitly {@link google.cloud.compute.v1.RouterBgpPeerBfd.verify|verify} messages.
                     * @param message RouterBgpPeerBfd message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterBgpPeerBfd, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterBgpPeerBfd message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterBgpPeerBfd.verify|verify} messages.
                     * @param message RouterBgpPeerBfd message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterBgpPeerBfd, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterBgpPeerBfd message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterBgpPeerBfd
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterBgpPeerBfd;

                    /**
                     * Decodes a RouterBgpPeerBfd message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterBgpPeerBfd
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterBgpPeerBfd;

                    /**
                     * Verifies a RouterBgpPeerBfd message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterBgpPeerBfd message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterBgpPeerBfd
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterBgpPeerBfd;

                    /**
                     * Creates a plain object from a RouterBgpPeerBfd message. Also converts values to other types if specified.
                     * @param message RouterBgpPeerBfd
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterBgpPeerBfd, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterBgpPeerBfd to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterBgpPeerBfd
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterBgpPeerBfd {

                    /** SessionInitializationMode enum. */
                    enum SessionInitializationMode {
                        UNDEFINED_SESSION_INITIALIZATION_MODE = 0,
                        ACTIVE = 314733318,
                        DISABLED = 516696700,
                        PASSIVE = 462813959
                    }
                }

                /** Properties of a RouterBgpPeerCustomLearnedIpRange. */
                interface IRouterBgpPeerCustomLearnedIpRange {

                    /** RouterBgpPeerCustomLearnedIpRange range */
                    range?: (string|null);
                }

                /** Represents a RouterBgpPeerCustomLearnedIpRange. */
                class RouterBgpPeerCustomLearnedIpRange implements IRouterBgpPeerCustomLearnedIpRange {

                    /**
                     * Constructs a new RouterBgpPeerCustomLearnedIpRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterBgpPeerCustomLearnedIpRange);

                    /** RouterBgpPeerCustomLearnedIpRange range. */
                    public range?: (string|null);

                    /**
                     * Creates a new RouterBgpPeerCustomLearnedIpRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterBgpPeerCustomLearnedIpRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterBgpPeerCustomLearnedIpRange): google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange;

                    /**
                     * Encodes the specified RouterBgpPeerCustomLearnedIpRange message. Does not implicitly {@link google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange.verify|verify} messages.
                     * @param message RouterBgpPeerCustomLearnedIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterBgpPeerCustomLearnedIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterBgpPeerCustomLearnedIpRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange.verify|verify} messages.
                     * @param message RouterBgpPeerCustomLearnedIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterBgpPeerCustomLearnedIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterBgpPeerCustomLearnedIpRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterBgpPeerCustomLearnedIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange;

                    /**
                     * Decodes a RouterBgpPeerCustomLearnedIpRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterBgpPeerCustomLearnedIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange;

                    /**
                     * Verifies a RouterBgpPeerCustomLearnedIpRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterBgpPeerCustomLearnedIpRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterBgpPeerCustomLearnedIpRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange;

                    /**
                     * Creates a plain object from a RouterBgpPeerCustomLearnedIpRange message. Also converts values to other types if specified.
                     * @param message RouterBgpPeerCustomLearnedIpRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterBgpPeerCustomLearnedIpRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterBgpPeerCustomLearnedIpRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterInterface. */
                interface IRouterInterface {

                    /** RouterInterface ipRange */
                    ipRange?: (string|null);

                    /** RouterInterface ipVersion */
                    ipVersion?: (string|null);

                    /** RouterInterface linkedInterconnectAttachment */
                    linkedInterconnectAttachment?: (string|null);

                    /** RouterInterface linkedVpnTunnel */
                    linkedVpnTunnel?: (string|null);

                    /** RouterInterface managementType */
                    managementType?: (string|null);

                    /** RouterInterface name */
                    name?: (string|null);

                    /** RouterInterface privateIpAddress */
                    privateIpAddress?: (string|null);

                    /** RouterInterface redundantInterface */
                    redundantInterface?: (string|null);

                    /** RouterInterface subnetwork */
                    subnetwork?: (string|null);
                }

                /** Represents a RouterInterface. */
                class RouterInterface implements IRouterInterface {

                    /**
                     * Constructs a new RouterInterface.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterInterface);

                    /** RouterInterface ipRange. */
                    public ipRange?: (string|null);

                    /** RouterInterface ipVersion. */
                    public ipVersion?: (string|null);

                    /** RouterInterface linkedInterconnectAttachment. */
                    public linkedInterconnectAttachment?: (string|null);

                    /** RouterInterface linkedVpnTunnel. */
                    public linkedVpnTunnel?: (string|null);

                    /** RouterInterface managementType. */
                    public managementType?: (string|null);

                    /** RouterInterface name. */
                    public name?: (string|null);

                    /** RouterInterface privateIpAddress. */
                    public privateIpAddress?: (string|null);

                    /** RouterInterface redundantInterface. */
                    public redundantInterface?: (string|null);

                    /** RouterInterface subnetwork. */
                    public subnetwork?: (string|null);

                    /**
                     * Creates a new RouterInterface instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterInterface instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterInterface): google.cloud.compute.v1.RouterInterface;

                    /**
                     * Encodes the specified RouterInterface message. Does not implicitly {@link google.cloud.compute.v1.RouterInterface.verify|verify} messages.
                     * @param message RouterInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterInterface message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterInterface.verify|verify} messages.
                     * @param message RouterInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterInterface message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterInterface;

                    /**
                     * Decodes a RouterInterface message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterInterface;

                    /**
                     * Verifies a RouterInterface message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterInterface message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterInterface
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterInterface;

                    /**
                     * Creates a plain object from a RouterInterface message. Also converts values to other types if specified.
                     * @param message RouterInterface
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterInterface, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterInterface to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterInterface
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterInterface {

                    /** IpVersion enum. */
                    enum IpVersion {
                        UNDEFINED_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343
                    }

                    /** ManagementType enum. */
                    enum ManagementType {
                        UNDEFINED_MANAGEMENT_TYPE = 0,
                        MANAGED_BY_ATTACHMENT = 458926411,
                        MANAGED_BY_USER = 317294067
                    }
                }

                /** Properties of a RouterList. */
                interface IRouterList {

                    /** RouterList id */
                    id?: (string|null);

                    /** RouterList items */
                    items?: (google.cloud.compute.v1.IRouter[]|null);

                    /** RouterList kind */
                    kind?: (string|null);

                    /** RouterList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RouterList selfLink */
                    selfLink?: (string|null);

                    /** RouterList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RouterList. */
                class RouterList implements IRouterList {

                    /**
                     * Constructs a new RouterList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterList);

                    /** RouterList id. */
                    public id?: (string|null);

                    /** RouterList items. */
                    public items: google.cloud.compute.v1.IRouter[];

                    /** RouterList kind. */
                    public kind?: (string|null);

                    /** RouterList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RouterList selfLink. */
                    public selfLink?: (string|null);

                    /** RouterList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RouterList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterList): google.cloud.compute.v1.RouterList;

                    /**
                     * Encodes the specified RouterList message. Does not implicitly {@link google.cloud.compute.v1.RouterList.verify|verify} messages.
                     * @param message RouterList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterList.verify|verify} messages.
                     * @param message RouterList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterList;

                    /**
                     * Decodes a RouterList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterList;

                    /**
                     * Verifies a RouterList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterList;

                    /**
                     * Creates a plain object from a RouterList message. Also converts values to other types if specified.
                     * @param message RouterList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterMd5AuthenticationKey. */
                interface IRouterMd5AuthenticationKey {

                    /** RouterMd5AuthenticationKey key */
                    key?: (string|null);

                    /** RouterMd5AuthenticationKey name */
                    name?: (string|null);
                }

                /** Represents a RouterMd5AuthenticationKey. */
                class RouterMd5AuthenticationKey implements IRouterMd5AuthenticationKey {

                    /**
                     * Constructs a new RouterMd5AuthenticationKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterMd5AuthenticationKey);

                    /** RouterMd5AuthenticationKey key. */
                    public key?: (string|null);

                    /** RouterMd5AuthenticationKey name. */
                    public name?: (string|null);

                    /**
                     * Creates a new RouterMd5AuthenticationKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterMd5AuthenticationKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterMd5AuthenticationKey): google.cloud.compute.v1.RouterMd5AuthenticationKey;

                    /**
                     * Encodes the specified RouterMd5AuthenticationKey message. Does not implicitly {@link google.cloud.compute.v1.RouterMd5AuthenticationKey.verify|verify} messages.
                     * @param message RouterMd5AuthenticationKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterMd5AuthenticationKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterMd5AuthenticationKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterMd5AuthenticationKey.verify|verify} messages.
                     * @param message RouterMd5AuthenticationKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterMd5AuthenticationKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterMd5AuthenticationKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterMd5AuthenticationKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterMd5AuthenticationKey;

                    /**
                     * Decodes a RouterMd5AuthenticationKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterMd5AuthenticationKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterMd5AuthenticationKey;

                    /**
                     * Verifies a RouterMd5AuthenticationKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterMd5AuthenticationKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterMd5AuthenticationKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterMd5AuthenticationKey;

                    /**
                     * Creates a plain object from a RouterMd5AuthenticationKey message. Also converts values to other types if specified.
                     * @param message RouterMd5AuthenticationKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterMd5AuthenticationKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterMd5AuthenticationKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterMd5AuthenticationKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterNat. */
                interface IRouterNat {

                    /** RouterNat autoNetworkTier */
                    autoNetworkTier?: (string|null);

                    /** RouterNat drainNatIps */
                    drainNatIps?: (string[]|null);

                    /** RouterNat enableDynamicPortAllocation */
                    enableDynamicPortAllocation?: (boolean|null);

                    /** RouterNat enableEndpointIndependentMapping */
                    enableEndpointIndependentMapping?: (boolean|null);

                    /** RouterNat endpointTypes */
                    endpointTypes?: (string[]|null);

                    /** RouterNat icmpIdleTimeoutSec */
                    icmpIdleTimeoutSec?: (number|null);

                    /** RouterNat logConfig */
                    logConfig?: (google.cloud.compute.v1.IRouterNatLogConfig|null);

                    /** RouterNat maxPortsPerVm */
                    maxPortsPerVm?: (number|null);

                    /** RouterNat minPortsPerVm */
                    minPortsPerVm?: (number|null);

                    /** RouterNat name */
                    name?: (string|null);

                    /** RouterNat nat64Subnetworks */
                    nat64Subnetworks?: (google.cloud.compute.v1.IRouterNatSubnetworkToNat64[]|null);

                    /** RouterNat natIpAllocateOption */
                    natIpAllocateOption?: (string|null);

                    /** RouterNat natIps */
                    natIps?: (string[]|null);

                    /** RouterNat rules */
                    rules?: (google.cloud.compute.v1.IRouterNatRule[]|null);

                    /** RouterNat sourceSubnetworkIpRangesToNat */
                    sourceSubnetworkIpRangesToNat?: (string|null);

                    /** RouterNat sourceSubnetworkIpRangesToNat64 */
                    sourceSubnetworkIpRangesToNat64?: (string|null);

                    /** RouterNat subnetworks */
                    subnetworks?: (google.cloud.compute.v1.IRouterNatSubnetworkToNat[]|null);

                    /** RouterNat tcpEstablishedIdleTimeoutSec */
                    tcpEstablishedIdleTimeoutSec?: (number|null);

                    /** RouterNat tcpTimeWaitTimeoutSec */
                    tcpTimeWaitTimeoutSec?: (number|null);

                    /** RouterNat tcpTransitoryIdleTimeoutSec */
                    tcpTransitoryIdleTimeoutSec?: (number|null);

                    /** RouterNat type */
                    type?: (string|null);

                    /** RouterNat udpIdleTimeoutSec */
                    udpIdleTimeoutSec?: (number|null);
                }

                /** Represents a RouterNat. */
                class RouterNat implements IRouterNat {

                    /**
                     * Constructs a new RouterNat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterNat);

                    /** RouterNat autoNetworkTier. */
                    public autoNetworkTier?: (string|null);

                    /** RouterNat drainNatIps. */
                    public drainNatIps: string[];

                    /** RouterNat enableDynamicPortAllocation. */
                    public enableDynamicPortAllocation?: (boolean|null);

                    /** RouterNat enableEndpointIndependentMapping. */
                    public enableEndpointIndependentMapping?: (boolean|null);

                    /** RouterNat endpointTypes. */
                    public endpointTypes: string[];

                    /** RouterNat icmpIdleTimeoutSec. */
                    public icmpIdleTimeoutSec?: (number|null);

                    /** RouterNat logConfig. */
                    public logConfig?: (google.cloud.compute.v1.IRouterNatLogConfig|null);

                    /** RouterNat maxPortsPerVm. */
                    public maxPortsPerVm?: (number|null);

                    /** RouterNat minPortsPerVm. */
                    public minPortsPerVm?: (number|null);

                    /** RouterNat name. */
                    public name?: (string|null);

                    /** RouterNat nat64Subnetworks. */
                    public nat64Subnetworks: google.cloud.compute.v1.IRouterNatSubnetworkToNat64[];

                    /** RouterNat natIpAllocateOption. */
                    public natIpAllocateOption?: (string|null);

                    /** RouterNat natIps. */
                    public natIps: string[];

                    /** RouterNat rules. */
                    public rules: google.cloud.compute.v1.IRouterNatRule[];

                    /** RouterNat sourceSubnetworkIpRangesToNat. */
                    public sourceSubnetworkIpRangesToNat?: (string|null);

                    /** RouterNat sourceSubnetworkIpRangesToNat64. */
                    public sourceSubnetworkIpRangesToNat64?: (string|null);

                    /** RouterNat subnetworks. */
                    public subnetworks: google.cloud.compute.v1.IRouterNatSubnetworkToNat[];

                    /** RouterNat tcpEstablishedIdleTimeoutSec. */
                    public tcpEstablishedIdleTimeoutSec?: (number|null);

                    /** RouterNat tcpTimeWaitTimeoutSec. */
                    public tcpTimeWaitTimeoutSec?: (number|null);

                    /** RouterNat tcpTransitoryIdleTimeoutSec. */
                    public tcpTransitoryIdleTimeoutSec?: (number|null);

                    /** RouterNat type. */
                    public type?: (string|null);

                    /** RouterNat udpIdleTimeoutSec. */
                    public udpIdleTimeoutSec?: (number|null);

                    /**
                     * Creates a new RouterNat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNat instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterNat): google.cloud.compute.v1.RouterNat;

                    /**
                     * Encodes the specified RouterNat message. Does not implicitly {@link google.cloud.compute.v1.RouterNat.verify|verify} messages.
                     * @param message RouterNat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterNat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNat message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterNat.verify|verify} messages.
                     * @param message RouterNat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterNat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterNat;

                    /**
                     * Decodes a RouterNat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterNat;

                    /**
                     * Verifies a RouterNat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterNat;

                    /**
                     * Creates a plain object from a RouterNat message. Also converts values to other types if specified.
                     * @param message RouterNat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterNat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterNat {

                    /** AutoNetworkTier enum. */
                    enum AutoNetworkTier {
                        UNDEFINED_AUTO_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** EndpointTypes enum. */
                    enum EndpointTypes {
                        UNDEFINED_ENDPOINT_TYPES = 0,
                        ENDPOINT_TYPE_MANAGED_PROXY_LB = 439196930,
                        ENDPOINT_TYPE_SWG = 159344456,
                        ENDPOINT_TYPE_VM = 57095474
                    }

                    /** NatIpAllocateOption enum. */
                    enum NatIpAllocateOption {
                        UNDEFINED_NAT_IP_ALLOCATE_OPTION = 0,
                        AUTO_ONLY = 182333500,
                        MANUAL_ONLY = 261251205
                    }

                    /** SourceSubnetworkIpRangesToNat enum. */
                    enum SourceSubnetworkIpRangesToNat {
                        UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT = 0,
                        ALL_SUBNETWORKS_ALL_IP_RANGES = 179964376,
                        ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES = 185573819,
                        LIST_OF_SUBNETWORKS = 517542270
                    }

                    /** SourceSubnetworkIpRangesToNat64 enum. */
                    enum SourceSubnetworkIpRangesToNat64 {
                        UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT64 = 0,
                        ALL_IPV6_SUBNETWORKS = 341632747,
                        LIST_OF_IPV6_SUBNETWORKS = 521079860
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        PRIVATE = 403485027,
                        PUBLIC = 223389289
                    }
                }

                /** Properties of a RouterNatLogConfig. */
                interface IRouterNatLogConfig {

                    /** RouterNatLogConfig enable */
                    enable?: (boolean|null);

                    /** RouterNatLogConfig filter */
                    filter?: (string|null);
                }

                /** Represents a RouterNatLogConfig. */
                class RouterNatLogConfig implements IRouterNatLogConfig {

                    /**
                     * Constructs a new RouterNatLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterNatLogConfig);

                    /** RouterNatLogConfig enable. */
                    public enable?: (boolean|null);

                    /** RouterNatLogConfig filter. */
                    public filter?: (string|null);

                    /**
                     * Creates a new RouterNatLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterNatLogConfig): google.cloud.compute.v1.RouterNatLogConfig;

                    /**
                     * Encodes the specified RouterNatLogConfig message. Does not implicitly {@link google.cloud.compute.v1.RouterNatLogConfig.verify|verify} messages.
                     * @param message RouterNatLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterNatLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterNatLogConfig.verify|verify} messages.
                     * @param message RouterNatLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterNatLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterNatLogConfig;

                    /**
                     * Decodes a RouterNatLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterNatLogConfig;

                    /**
                     * Verifies a RouterNatLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterNatLogConfig;

                    /**
                     * Creates a plain object from a RouterNatLogConfig message. Also converts values to other types if specified.
                     * @param message RouterNatLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterNatLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterNatLogConfig {

                    /** Filter enum. */
                    enum Filter {
                        UNDEFINED_FILTER = 0,
                        ALL = 64897,
                        ERRORS_ONLY = 307484672,
                        TRANSLATIONS_ONLY = 357212649
                    }
                }

                /** Properties of a RouterNatRule. */
                interface IRouterNatRule {

                    /** RouterNatRule action */
                    action?: (google.cloud.compute.v1.IRouterNatRuleAction|null);

                    /** RouterNatRule description */
                    description?: (string|null);

                    /** RouterNatRule match */
                    match?: (string|null);

                    /** RouterNatRule ruleNumber */
                    ruleNumber?: (number|null);
                }

                /** Represents a RouterNatRule. */
                class RouterNatRule implements IRouterNatRule {

                    /**
                     * Constructs a new RouterNatRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterNatRule);

                    /** RouterNatRule action. */
                    public action?: (google.cloud.compute.v1.IRouterNatRuleAction|null);

                    /** RouterNatRule description. */
                    public description?: (string|null);

                    /** RouterNatRule match. */
                    public match?: (string|null);

                    /** RouterNatRule ruleNumber. */
                    public ruleNumber?: (number|null);

                    /**
                     * Creates a new RouterNatRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterNatRule): google.cloud.compute.v1.RouterNatRule;

                    /**
                     * Encodes the specified RouterNatRule message. Does not implicitly {@link google.cloud.compute.v1.RouterNatRule.verify|verify} messages.
                     * @param message RouterNatRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterNatRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterNatRule.verify|verify} messages.
                     * @param message RouterNatRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterNatRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterNatRule;

                    /**
                     * Decodes a RouterNatRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterNatRule;

                    /**
                     * Verifies a RouterNatRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterNatRule;

                    /**
                     * Creates a plain object from a RouterNatRule message. Also converts values to other types if specified.
                     * @param message RouterNatRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterNatRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterNatRuleAction. */
                interface IRouterNatRuleAction {

                    /** RouterNatRuleAction sourceNatActiveIps */
                    sourceNatActiveIps?: (string[]|null);

                    /** RouterNatRuleAction sourceNatActiveRanges */
                    sourceNatActiveRanges?: (string[]|null);

                    /** RouterNatRuleAction sourceNatDrainIps */
                    sourceNatDrainIps?: (string[]|null);

                    /** RouterNatRuleAction sourceNatDrainRanges */
                    sourceNatDrainRanges?: (string[]|null);
                }

                /** Represents a RouterNatRuleAction. */
                class RouterNatRuleAction implements IRouterNatRuleAction {

                    /**
                     * Constructs a new RouterNatRuleAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterNatRuleAction);

                    /** RouterNatRuleAction sourceNatActiveIps. */
                    public sourceNatActiveIps: string[];

                    /** RouterNatRuleAction sourceNatActiveRanges. */
                    public sourceNatActiveRanges: string[];

                    /** RouterNatRuleAction sourceNatDrainIps. */
                    public sourceNatDrainIps: string[];

                    /** RouterNatRuleAction sourceNatDrainRanges. */
                    public sourceNatDrainRanges: string[];

                    /**
                     * Creates a new RouterNatRuleAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatRuleAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterNatRuleAction): google.cloud.compute.v1.RouterNatRuleAction;

                    /**
                     * Encodes the specified RouterNatRuleAction message. Does not implicitly {@link google.cloud.compute.v1.RouterNatRuleAction.verify|verify} messages.
                     * @param message RouterNatRuleAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterNatRuleAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatRuleAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterNatRuleAction.verify|verify} messages.
                     * @param message RouterNatRuleAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterNatRuleAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatRuleAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatRuleAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterNatRuleAction;

                    /**
                     * Decodes a RouterNatRuleAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatRuleAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterNatRuleAction;

                    /**
                     * Verifies a RouterNatRuleAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatRuleAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatRuleAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterNatRuleAction;

                    /**
                     * Creates a plain object from a RouterNatRuleAction message. Also converts values to other types if specified.
                     * @param message RouterNatRuleAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterNatRuleAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatRuleAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatRuleAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterNatSubnetworkToNat. */
                interface IRouterNatSubnetworkToNat {

                    /** RouterNatSubnetworkToNat name */
                    name?: (string|null);

                    /** RouterNatSubnetworkToNat secondaryIpRangeNames */
                    secondaryIpRangeNames?: (string[]|null);

                    /** RouterNatSubnetworkToNat sourceIpRangesToNat */
                    sourceIpRangesToNat?: (string[]|null);
                }

                /** Represents a RouterNatSubnetworkToNat. */
                class RouterNatSubnetworkToNat implements IRouterNatSubnetworkToNat {

                    /**
                     * Constructs a new RouterNatSubnetworkToNat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterNatSubnetworkToNat);

                    /** RouterNatSubnetworkToNat name. */
                    public name?: (string|null);

                    /** RouterNatSubnetworkToNat secondaryIpRangeNames. */
                    public secondaryIpRangeNames: string[];

                    /** RouterNatSubnetworkToNat sourceIpRangesToNat. */
                    public sourceIpRangesToNat: string[];

                    /**
                     * Creates a new RouterNatSubnetworkToNat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatSubnetworkToNat instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterNatSubnetworkToNat): google.cloud.compute.v1.RouterNatSubnetworkToNat;

                    /**
                     * Encodes the specified RouterNatSubnetworkToNat message. Does not implicitly {@link google.cloud.compute.v1.RouterNatSubnetworkToNat.verify|verify} messages.
                     * @param message RouterNatSubnetworkToNat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterNatSubnetworkToNat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatSubnetworkToNat message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterNatSubnetworkToNat.verify|verify} messages.
                     * @param message RouterNatSubnetworkToNat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterNatSubnetworkToNat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatSubnetworkToNat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatSubnetworkToNat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterNatSubnetworkToNat;

                    /**
                     * Decodes a RouterNatSubnetworkToNat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatSubnetworkToNat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterNatSubnetworkToNat;

                    /**
                     * Verifies a RouterNatSubnetworkToNat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatSubnetworkToNat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatSubnetworkToNat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterNatSubnetworkToNat;

                    /**
                     * Creates a plain object from a RouterNatSubnetworkToNat message. Also converts values to other types if specified.
                     * @param message RouterNatSubnetworkToNat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterNatSubnetworkToNat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatSubnetworkToNat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatSubnetworkToNat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterNatSubnetworkToNat {

                    /** SourceIpRangesToNat enum. */
                    enum SourceIpRangesToNat {
                        UNDEFINED_SOURCE_IP_RANGES_TO_NAT = 0,
                        ALL_IP_RANGES = 35608496,
                        LIST_OF_SECONDARY_IP_RANGES = 192289308,
                        PRIMARY_IP_RANGE = 297109954
                    }
                }

                /** Properties of a RouterNatSubnetworkToNat64. */
                interface IRouterNatSubnetworkToNat64 {

                    /** RouterNatSubnetworkToNat64 name */
                    name?: (string|null);
                }

                /** Represents a RouterNatSubnetworkToNat64. */
                class RouterNatSubnetworkToNat64 implements IRouterNatSubnetworkToNat64 {

                    /**
                     * Constructs a new RouterNatSubnetworkToNat64.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterNatSubnetworkToNat64);

                    /** RouterNatSubnetworkToNat64 name. */
                    public name?: (string|null);

                    /**
                     * Creates a new RouterNatSubnetworkToNat64 instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatSubnetworkToNat64 instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterNatSubnetworkToNat64): google.cloud.compute.v1.RouterNatSubnetworkToNat64;

                    /**
                     * Encodes the specified RouterNatSubnetworkToNat64 message. Does not implicitly {@link google.cloud.compute.v1.RouterNatSubnetworkToNat64.verify|verify} messages.
                     * @param message RouterNatSubnetworkToNat64 message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterNatSubnetworkToNat64, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatSubnetworkToNat64 message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterNatSubnetworkToNat64.verify|verify} messages.
                     * @param message RouterNatSubnetworkToNat64 message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterNatSubnetworkToNat64, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatSubnetworkToNat64 message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatSubnetworkToNat64
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterNatSubnetworkToNat64;

                    /**
                     * Decodes a RouterNatSubnetworkToNat64 message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatSubnetworkToNat64
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterNatSubnetworkToNat64;

                    /**
                     * Verifies a RouterNatSubnetworkToNat64 message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatSubnetworkToNat64 message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatSubnetworkToNat64
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterNatSubnetworkToNat64;

                    /**
                     * Creates a plain object from a RouterNatSubnetworkToNat64 message. Also converts values to other types if specified.
                     * @param message RouterNatSubnetworkToNat64
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterNatSubnetworkToNat64, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatSubnetworkToNat64 to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatSubnetworkToNat64
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterParams. */
                interface IRouterParams {

                    /** RouterParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a RouterParams. */
                class RouterParams implements IRouterParams {

                    /**
                     * Constructs a new RouterParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterParams);

                    /** RouterParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new RouterParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterParams): google.cloud.compute.v1.RouterParams;

                    /**
                     * Encodes the specified RouterParams message. Does not implicitly {@link google.cloud.compute.v1.RouterParams.verify|verify} messages.
                     * @param message RouterParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterParams.verify|verify} messages.
                     * @param message RouterParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterParams;

                    /**
                     * Decodes a RouterParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterParams;

                    /**
                     * Verifies a RouterParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterParams;

                    /**
                     * Creates a plain object from a RouterParams message. Also converts values to other types if specified.
                     * @param message RouterParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterStatus. */
                interface IRouterStatus {

                    /** RouterStatus bestRoutes */
                    bestRoutes?: (google.cloud.compute.v1.IRoute[]|null);

                    /** RouterStatus bestRoutesForRouter */
                    bestRoutesForRouter?: (google.cloud.compute.v1.IRoute[]|null);

                    /** RouterStatus bgpPeerStatus */
                    bgpPeerStatus?: (google.cloud.compute.v1.IRouterStatusBgpPeerStatus[]|null);

                    /** RouterStatus natStatus */
                    natStatus?: (google.cloud.compute.v1.IRouterStatusNatStatus[]|null);

                    /** RouterStatus network */
                    network?: (string|null);
                }

                /** Represents a RouterStatus. */
                class RouterStatus implements IRouterStatus {

                    /**
                     * Constructs a new RouterStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterStatus);

                    /** RouterStatus bestRoutes. */
                    public bestRoutes: google.cloud.compute.v1.IRoute[];

                    /** RouterStatus bestRoutesForRouter. */
                    public bestRoutesForRouter: google.cloud.compute.v1.IRoute[];

                    /** RouterStatus bgpPeerStatus. */
                    public bgpPeerStatus: google.cloud.compute.v1.IRouterStatusBgpPeerStatus[];

                    /** RouterStatus natStatus. */
                    public natStatus: google.cloud.compute.v1.IRouterStatusNatStatus[];

                    /** RouterStatus network. */
                    public network?: (string|null);

                    /**
                     * Creates a new RouterStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterStatus): google.cloud.compute.v1.RouterStatus;

                    /**
                     * Encodes the specified RouterStatus message. Does not implicitly {@link google.cloud.compute.v1.RouterStatus.verify|verify} messages.
                     * @param message RouterStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterStatus.verify|verify} messages.
                     * @param message RouterStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterStatus;

                    /**
                     * Decodes a RouterStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterStatus;

                    /**
                     * Verifies a RouterStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterStatus;

                    /**
                     * Creates a plain object from a RouterStatus message. Also converts values to other types if specified.
                     * @param message RouterStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterStatusBgpPeerStatus. */
                interface IRouterStatusBgpPeerStatus {

                    /** RouterStatusBgpPeerStatus advertisedRoutes */
                    advertisedRoutes?: (google.cloud.compute.v1.IRoute[]|null);

                    /** RouterStatusBgpPeerStatus bfdStatus */
                    bfdStatus?: (google.cloud.compute.v1.IBfdStatus|null);

                    /** RouterStatusBgpPeerStatus enableIpv4 */
                    enableIpv4?: (boolean|null);

                    /** RouterStatusBgpPeerStatus enableIpv6 */
                    enableIpv6?: (boolean|null);

                    /** RouterStatusBgpPeerStatus ipAddress */
                    ipAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus ipv4NexthopAddress */
                    ipv4NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus ipv6NexthopAddress */
                    ipv6NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus linkedVpnTunnel */
                    linkedVpnTunnel?: (string|null);

                    /** RouterStatusBgpPeerStatus md5AuthEnabled */
                    md5AuthEnabled?: (boolean|null);

                    /** RouterStatusBgpPeerStatus name */
                    name?: (string|null);

                    /** RouterStatusBgpPeerStatus numLearnedRoutes */
                    numLearnedRoutes?: (number|null);

                    /** RouterStatusBgpPeerStatus peerIpAddress */
                    peerIpAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus peerIpv4NexthopAddress */
                    peerIpv4NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus peerIpv6NexthopAddress */
                    peerIpv6NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus routerApplianceInstance */
                    routerApplianceInstance?: (string|null);

                    /** RouterStatusBgpPeerStatus state */
                    state?: (string|null);

                    /** RouterStatusBgpPeerStatus status */
                    status?: (string|null);

                    /** RouterStatusBgpPeerStatus statusReason */
                    statusReason?: (string|null);

                    /** RouterStatusBgpPeerStatus uptime */
                    uptime?: (string|null);

                    /** RouterStatusBgpPeerStatus uptimeSeconds */
                    uptimeSeconds?: (string|null);
                }

                /** Represents a RouterStatusBgpPeerStatus. */
                class RouterStatusBgpPeerStatus implements IRouterStatusBgpPeerStatus {

                    /**
                     * Constructs a new RouterStatusBgpPeerStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterStatusBgpPeerStatus);

                    /** RouterStatusBgpPeerStatus advertisedRoutes. */
                    public advertisedRoutes: google.cloud.compute.v1.IRoute[];

                    /** RouterStatusBgpPeerStatus bfdStatus. */
                    public bfdStatus?: (google.cloud.compute.v1.IBfdStatus|null);

                    /** RouterStatusBgpPeerStatus enableIpv4. */
                    public enableIpv4?: (boolean|null);

                    /** RouterStatusBgpPeerStatus enableIpv6. */
                    public enableIpv6?: (boolean|null);

                    /** RouterStatusBgpPeerStatus ipAddress. */
                    public ipAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus ipv4NexthopAddress. */
                    public ipv4NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus ipv6NexthopAddress. */
                    public ipv6NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus linkedVpnTunnel. */
                    public linkedVpnTunnel?: (string|null);

                    /** RouterStatusBgpPeerStatus md5AuthEnabled. */
                    public md5AuthEnabled?: (boolean|null);

                    /** RouterStatusBgpPeerStatus name. */
                    public name?: (string|null);

                    /** RouterStatusBgpPeerStatus numLearnedRoutes. */
                    public numLearnedRoutes?: (number|null);

                    /** RouterStatusBgpPeerStatus peerIpAddress. */
                    public peerIpAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus peerIpv4NexthopAddress. */
                    public peerIpv4NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus peerIpv6NexthopAddress. */
                    public peerIpv6NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus routerApplianceInstance. */
                    public routerApplianceInstance?: (string|null);

                    /** RouterStatusBgpPeerStatus state. */
                    public state?: (string|null);

                    /** RouterStatusBgpPeerStatus status. */
                    public status?: (string|null);

                    /** RouterStatusBgpPeerStatus statusReason. */
                    public statusReason?: (string|null);

                    /** RouterStatusBgpPeerStatus uptime. */
                    public uptime?: (string|null);

                    /** RouterStatusBgpPeerStatus uptimeSeconds. */
                    public uptimeSeconds?: (string|null);

                    /**
                     * Creates a new RouterStatusBgpPeerStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatusBgpPeerStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterStatusBgpPeerStatus): google.cloud.compute.v1.RouterStatusBgpPeerStatus;

                    /**
                     * Encodes the specified RouterStatusBgpPeerStatus message. Does not implicitly {@link google.cloud.compute.v1.RouterStatusBgpPeerStatus.verify|verify} messages.
                     * @param message RouterStatusBgpPeerStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterStatusBgpPeerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatusBgpPeerStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterStatusBgpPeerStatus.verify|verify} messages.
                     * @param message RouterStatusBgpPeerStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterStatusBgpPeerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatusBgpPeerStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatusBgpPeerStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterStatusBgpPeerStatus;

                    /**
                     * Decodes a RouterStatusBgpPeerStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatusBgpPeerStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterStatusBgpPeerStatus;

                    /**
                     * Verifies a RouterStatusBgpPeerStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatusBgpPeerStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatusBgpPeerStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterStatusBgpPeerStatus;

                    /**
                     * Creates a plain object from a RouterStatusBgpPeerStatus message. Also converts values to other types if specified.
                     * @param message RouterStatusBgpPeerStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterStatusBgpPeerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatusBgpPeerStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatusBgpPeerStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterStatusBgpPeerStatus {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DOWN = 2104482,
                        UNKNOWN = 433141802,
                        UP = 2715
                    }

                    /** StatusReason enum. */
                    enum StatusReason {
                        UNDEFINED_STATUS_REASON = 0,
                        IPV4_PEER_ON_IPV6_ONLY_CONNECTION = 435936662,
                        IPV6_PEER_ON_IPV4_ONLY_CONNECTION = 436304082,
                        MD5_AUTH_INTERNAL_PROBLEM = 140462259,
                        STATUS_REASON_UNSPECIFIED = 394331913
                    }
                }

                /** Properties of a RouterStatusNatStatus. */
                interface IRouterStatusNatStatus {

                    /** RouterStatusNatStatus autoAllocatedNatIps */
                    autoAllocatedNatIps?: (string[]|null);

                    /** RouterStatusNatStatus drainAutoAllocatedNatIps */
                    drainAutoAllocatedNatIps?: (string[]|null);

                    /** RouterStatusNatStatus drainUserAllocatedNatIps */
                    drainUserAllocatedNatIps?: (string[]|null);

                    /** RouterStatusNatStatus minExtraNatIpsNeeded */
                    minExtraNatIpsNeeded?: (number|null);

                    /** RouterStatusNatStatus name */
                    name?: (string|null);

                    /** RouterStatusNatStatus numVmEndpointsWithNatMappings */
                    numVmEndpointsWithNatMappings?: (number|null);

                    /** RouterStatusNatStatus ruleStatus */
                    ruleStatus?: (google.cloud.compute.v1.IRouterStatusNatStatusNatRuleStatus[]|null);

                    /** RouterStatusNatStatus userAllocatedNatIpResources */
                    userAllocatedNatIpResources?: (string[]|null);

                    /** RouterStatusNatStatus userAllocatedNatIps */
                    userAllocatedNatIps?: (string[]|null);
                }

                /** Represents a RouterStatusNatStatus. */
                class RouterStatusNatStatus implements IRouterStatusNatStatus {

                    /**
                     * Constructs a new RouterStatusNatStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterStatusNatStatus);

                    /** RouterStatusNatStatus autoAllocatedNatIps. */
                    public autoAllocatedNatIps: string[];

                    /** RouterStatusNatStatus drainAutoAllocatedNatIps. */
                    public drainAutoAllocatedNatIps: string[];

                    /** RouterStatusNatStatus drainUserAllocatedNatIps. */
                    public drainUserAllocatedNatIps: string[];

                    /** RouterStatusNatStatus minExtraNatIpsNeeded. */
                    public minExtraNatIpsNeeded?: (number|null);

                    /** RouterStatusNatStatus name. */
                    public name?: (string|null);

                    /** RouterStatusNatStatus numVmEndpointsWithNatMappings. */
                    public numVmEndpointsWithNatMappings?: (number|null);

                    /** RouterStatusNatStatus ruleStatus. */
                    public ruleStatus: google.cloud.compute.v1.IRouterStatusNatStatusNatRuleStatus[];

                    /** RouterStatusNatStatus userAllocatedNatIpResources. */
                    public userAllocatedNatIpResources: string[];

                    /** RouterStatusNatStatus userAllocatedNatIps. */
                    public userAllocatedNatIps: string[];

                    /**
                     * Creates a new RouterStatusNatStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatusNatStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterStatusNatStatus): google.cloud.compute.v1.RouterStatusNatStatus;

                    /**
                     * Encodes the specified RouterStatusNatStatus message. Does not implicitly {@link google.cloud.compute.v1.RouterStatusNatStatus.verify|verify} messages.
                     * @param message RouterStatusNatStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterStatusNatStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatusNatStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterStatusNatStatus.verify|verify} messages.
                     * @param message RouterStatusNatStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterStatusNatStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatusNatStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatusNatStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterStatusNatStatus;

                    /**
                     * Decodes a RouterStatusNatStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatusNatStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterStatusNatStatus;

                    /**
                     * Verifies a RouterStatusNatStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatusNatStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatusNatStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterStatusNatStatus;

                    /**
                     * Creates a plain object from a RouterStatusNatStatus message. Also converts values to other types if specified.
                     * @param message RouterStatusNatStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterStatusNatStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatusNatStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatusNatStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterStatusNatStatusNatRuleStatus. */
                interface IRouterStatusNatStatusNatRuleStatus {

                    /** RouterStatusNatStatusNatRuleStatus activeNatIps */
                    activeNatIps?: (string[]|null);

                    /** RouterStatusNatStatusNatRuleStatus drainNatIps */
                    drainNatIps?: (string[]|null);

                    /** RouterStatusNatStatusNatRuleStatus minExtraIpsNeeded */
                    minExtraIpsNeeded?: (number|null);

                    /** RouterStatusNatStatusNatRuleStatus numVmEndpointsWithNatMappings */
                    numVmEndpointsWithNatMappings?: (number|null);

                    /** RouterStatusNatStatusNatRuleStatus ruleNumber */
                    ruleNumber?: (number|null);
                }

                /** Represents a RouterStatusNatStatusNatRuleStatus. */
                class RouterStatusNatStatusNatRuleStatus implements IRouterStatusNatStatusNatRuleStatus {

                    /**
                     * Constructs a new RouterStatusNatStatusNatRuleStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterStatusNatStatusNatRuleStatus);

                    /** RouterStatusNatStatusNatRuleStatus activeNatIps. */
                    public activeNatIps: string[];

                    /** RouterStatusNatStatusNatRuleStatus drainNatIps. */
                    public drainNatIps: string[];

                    /** RouterStatusNatStatusNatRuleStatus minExtraIpsNeeded. */
                    public minExtraIpsNeeded?: (number|null);

                    /** RouterStatusNatStatusNatRuleStatus numVmEndpointsWithNatMappings. */
                    public numVmEndpointsWithNatMappings?: (number|null);

                    /** RouterStatusNatStatusNatRuleStatus ruleNumber. */
                    public ruleNumber?: (number|null);

                    /**
                     * Creates a new RouterStatusNatStatusNatRuleStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatusNatStatusNatRuleStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterStatusNatStatusNatRuleStatus): google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus;

                    /**
                     * Encodes the specified RouterStatusNatStatusNatRuleStatus message. Does not implicitly {@link google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus.verify|verify} messages.
                     * @param message RouterStatusNatStatusNatRuleStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterStatusNatStatusNatRuleStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatusNatStatusNatRuleStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus.verify|verify} messages.
                     * @param message RouterStatusNatStatusNatRuleStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterStatusNatStatusNatRuleStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatusNatStatusNatRuleStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatusNatStatusNatRuleStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus;

                    /**
                     * Decodes a RouterStatusNatStatusNatRuleStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatusNatStatusNatRuleStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus;

                    /**
                     * Verifies a RouterStatusNatStatusNatRuleStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatusNatStatusNatRuleStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatusNatStatusNatRuleStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus;

                    /**
                     * Creates a plain object from a RouterStatusNatStatusNatRuleStatus message. Also converts values to other types if specified.
                     * @param message RouterStatusNatStatusNatRuleStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatusNatStatusNatRuleStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatusNatStatusNatRuleStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterStatusResponse. */
                interface IRouterStatusResponse {

                    /** RouterStatusResponse kind */
                    kind?: (string|null);

                    /** RouterStatusResponse result */
                    result?: (google.cloud.compute.v1.IRouterStatus|null);
                }

                /** Represents a RouterStatusResponse. */
                class RouterStatusResponse implements IRouterStatusResponse {

                    /**
                     * Constructs a new RouterStatusResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRouterStatusResponse);

                    /** RouterStatusResponse kind. */
                    public kind?: (string|null);

                    /** RouterStatusResponse result. */
                    public result?: (google.cloud.compute.v1.IRouterStatus|null);

                    /**
                     * Creates a new RouterStatusResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatusResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRouterStatusResponse): google.cloud.compute.v1.RouterStatusResponse;

                    /**
                     * Encodes the specified RouterStatusResponse message. Does not implicitly {@link google.cloud.compute.v1.RouterStatusResponse.verify|verify} messages.
                     * @param message RouterStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRouterStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatusResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RouterStatusResponse.verify|verify} messages.
                     * @param message RouterStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRouterStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatusResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RouterStatusResponse;

                    /**
                     * Decodes a RouterStatusResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RouterStatusResponse;

                    /**
                     * Verifies a RouterStatusResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatusResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatusResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RouterStatusResponse;

                    /**
                     * Creates a plain object from a RouterStatusResponse message. Also converts values to other types if specified.
                     * @param message RouterStatusResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RouterStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatusResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatusResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersGetRoutePolicyResponse. */
                interface IRoutersGetRoutePolicyResponse {

                    /** RoutersGetRoutePolicyResponse resource */
                    resource?: (google.cloud.compute.v1.IRoutePolicy|null);
                }

                /** Represents a RoutersGetRoutePolicyResponse. */
                class RoutersGetRoutePolicyResponse implements IRoutersGetRoutePolicyResponse {

                    /**
                     * Constructs a new RoutersGetRoutePolicyResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRoutersGetRoutePolicyResponse);

                    /** RoutersGetRoutePolicyResponse resource. */
                    public resource?: (google.cloud.compute.v1.IRoutePolicy|null);

                    /**
                     * Creates a new RoutersGetRoutePolicyResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersGetRoutePolicyResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRoutersGetRoutePolicyResponse): google.cloud.compute.v1.RoutersGetRoutePolicyResponse;

                    /**
                     * Encodes the specified RoutersGetRoutePolicyResponse message. Does not implicitly {@link google.cloud.compute.v1.RoutersGetRoutePolicyResponse.verify|verify} messages.
                     * @param message RoutersGetRoutePolicyResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRoutersGetRoutePolicyResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersGetRoutePolicyResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RoutersGetRoutePolicyResponse.verify|verify} messages.
                     * @param message RoutersGetRoutePolicyResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRoutersGetRoutePolicyResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersGetRoutePolicyResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersGetRoutePolicyResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RoutersGetRoutePolicyResponse;

                    /**
                     * Decodes a RoutersGetRoutePolicyResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersGetRoutePolicyResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RoutersGetRoutePolicyResponse;

                    /**
                     * Verifies a RoutersGetRoutePolicyResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersGetRoutePolicyResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersGetRoutePolicyResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RoutersGetRoutePolicyResponse;

                    /**
                     * Creates a plain object from a RoutersGetRoutePolicyResponse message. Also converts values to other types if specified.
                     * @param message RoutersGetRoutePolicyResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RoutersGetRoutePolicyResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersGetRoutePolicyResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersGetRoutePolicyResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersListBgpRoutes. */
                interface IRoutersListBgpRoutes {

                    /** RoutersListBgpRoutes etag */
                    etag?: (string|null);

                    /** RoutersListBgpRoutes id */
                    id?: (string|null);

                    /** RoutersListBgpRoutes kind */
                    kind?: (string|null);

                    /** RoutersListBgpRoutes nextPageToken */
                    nextPageToken?: (string|null);

                    /** RoutersListBgpRoutes result */
                    result?: (google.cloud.compute.v1.IBgpRoute[]|null);

                    /** RoutersListBgpRoutes selfLink */
                    selfLink?: (string|null);

                    /** RoutersListBgpRoutes unreachables */
                    unreachables?: (string[]|null);

                    /** RoutersListBgpRoutes warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RoutersListBgpRoutes. */
                class RoutersListBgpRoutes implements IRoutersListBgpRoutes {

                    /**
                     * Constructs a new RoutersListBgpRoutes.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRoutersListBgpRoutes);

                    /** RoutersListBgpRoutes etag. */
                    public etag?: (string|null);

                    /** RoutersListBgpRoutes id. */
                    public id?: (string|null);

                    /** RoutersListBgpRoutes kind. */
                    public kind?: (string|null);

                    /** RoutersListBgpRoutes nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RoutersListBgpRoutes result. */
                    public result: google.cloud.compute.v1.IBgpRoute[];

                    /** RoutersListBgpRoutes selfLink. */
                    public selfLink?: (string|null);

                    /** RoutersListBgpRoutes unreachables. */
                    public unreachables: string[];

                    /** RoutersListBgpRoutes warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RoutersListBgpRoutes instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersListBgpRoutes instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRoutersListBgpRoutes): google.cloud.compute.v1.RoutersListBgpRoutes;

                    /**
                     * Encodes the specified RoutersListBgpRoutes message. Does not implicitly {@link google.cloud.compute.v1.RoutersListBgpRoutes.verify|verify} messages.
                     * @param message RoutersListBgpRoutes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRoutersListBgpRoutes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersListBgpRoutes message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RoutersListBgpRoutes.verify|verify} messages.
                     * @param message RoutersListBgpRoutes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRoutersListBgpRoutes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersListBgpRoutes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersListBgpRoutes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RoutersListBgpRoutes;

                    /**
                     * Decodes a RoutersListBgpRoutes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersListBgpRoutes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RoutersListBgpRoutes;

                    /**
                     * Verifies a RoutersListBgpRoutes message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersListBgpRoutes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersListBgpRoutes
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RoutersListBgpRoutes;

                    /**
                     * Creates a plain object from a RoutersListBgpRoutes message. Also converts values to other types if specified.
                     * @param message RoutersListBgpRoutes
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RoutersListBgpRoutes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersListBgpRoutes to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersListBgpRoutes
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersListRoutePolicies. */
                interface IRoutersListRoutePolicies {

                    /** RoutersListRoutePolicies etag */
                    etag?: (string|null);

                    /** RoutersListRoutePolicies id */
                    id?: (string|null);

                    /** RoutersListRoutePolicies kind */
                    kind?: (string|null);

                    /** RoutersListRoutePolicies nextPageToken */
                    nextPageToken?: (string|null);

                    /** RoutersListRoutePolicies result */
                    result?: (google.cloud.compute.v1.IRoutePolicy[]|null);

                    /** RoutersListRoutePolicies selfLink */
                    selfLink?: (string|null);

                    /** RoutersListRoutePolicies unreachables */
                    unreachables?: (string[]|null);

                    /** RoutersListRoutePolicies warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RoutersListRoutePolicies. */
                class RoutersListRoutePolicies implements IRoutersListRoutePolicies {

                    /**
                     * Constructs a new RoutersListRoutePolicies.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRoutersListRoutePolicies);

                    /** RoutersListRoutePolicies etag. */
                    public etag?: (string|null);

                    /** RoutersListRoutePolicies id. */
                    public id?: (string|null);

                    /** RoutersListRoutePolicies kind. */
                    public kind?: (string|null);

                    /** RoutersListRoutePolicies nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RoutersListRoutePolicies result. */
                    public result: google.cloud.compute.v1.IRoutePolicy[];

                    /** RoutersListRoutePolicies selfLink. */
                    public selfLink?: (string|null);

                    /** RoutersListRoutePolicies unreachables. */
                    public unreachables: string[];

                    /** RoutersListRoutePolicies warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RoutersListRoutePolicies instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersListRoutePolicies instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRoutersListRoutePolicies): google.cloud.compute.v1.RoutersListRoutePolicies;

                    /**
                     * Encodes the specified RoutersListRoutePolicies message. Does not implicitly {@link google.cloud.compute.v1.RoutersListRoutePolicies.verify|verify} messages.
                     * @param message RoutersListRoutePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRoutersListRoutePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersListRoutePolicies message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RoutersListRoutePolicies.verify|verify} messages.
                     * @param message RoutersListRoutePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRoutersListRoutePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersListRoutePolicies message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersListRoutePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RoutersListRoutePolicies;

                    /**
                     * Decodes a RoutersListRoutePolicies message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersListRoutePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RoutersListRoutePolicies;

                    /**
                     * Verifies a RoutersListRoutePolicies message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersListRoutePolicies message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersListRoutePolicies
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RoutersListRoutePolicies;

                    /**
                     * Creates a plain object from a RoutersListRoutePolicies message. Also converts values to other types if specified.
                     * @param message RoutersListRoutePolicies
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RoutersListRoutePolicies, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersListRoutePolicies to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersListRoutePolicies
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersPreviewResponse. */
                interface IRoutersPreviewResponse {

                    /** RoutersPreviewResponse resource */
                    resource?: (google.cloud.compute.v1.IRouter|null);
                }

                /** Represents a RoutersPreviewResponse. */
                class RoutersPreviewResponse implements IRoutersPreviewResponse {

                    /**
                     * Constructs a new RoutersPreviewResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRoutersPreviewResponse);

                    /** RoutersPreviewResponse resource. */
                    public resource?: (google.cloud.compute.v1.IRouter|null);

                    /**
                     * Creates a new RoutersPreviewResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersPreviewResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRoutersPreviewResponse): google.cloud.compute.v1.RoutersPreviewResponse;

                    /**
                     * Encodes the specified RoutersPreviewResponse message. Does not implicitly {@link google.cloud.compute.v1.RoutersPreviewResponse.verify|verify} messages.
                     * @param message RoutersPreviewResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRoutersPreviewResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersPreviewResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RoutersPreviewResponse.verify|verify} messages.
                     * @param message RoutersPreviewResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRoutersPreviewResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersPreviewResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersPreviewResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RoutersPreviewResponse;

                    /**
                     * Decodes a RoutersPreviewResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersPreviewResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RoutersPreviewResponse;

                    /**
                     * Verifies a RoutersPreviewResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersPreviewResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersPreviewResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RoutersPreviewResponse;

                    /**
                     * Creates a plain object from a RoutersPreviewResponse message. Also converts values to other types if specified.
                     * @param message RoutersPreviewResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RoutersPreviewResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersPreviewResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersPreviewResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersScopedList. */
                interface IRoutersScopedList {

                    /** RoutersScopedList routers */
                    routers?: (google.cloud.compute.v1.IRouter[]|null);

                    /** RoutersScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a RoutersScopedList. */
                class RoutersScopedList implements IRoutersScopedList {

                    /**
                     * Constructs a new RoutersScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IRoutersScopedList);

                    /** RoutersScopedList routers. */
                    public routers: google.cloud.compute.v1.IRouter[];

                    /** RoutersScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new RoutersScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IRoutersScopedList): google.cloud.compute.v1.RoutersScopedList;

                    /**
                     * Encodes the specified RoutersScopedList message. Does not implicitly {@link google.cloud.compute.v1.RoutersScopedList.verify|verify} messages.
                     * @param message RoutersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IRoutersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.RoutersScopedList.verify|verify} messages.
                     * @param message RoutersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IRoutersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.RoutersScopedList;

                    /**
                     * Decodes a RoutersScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.RoutersScopedList;

                    /**
                     * Verifies a RoutersScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.RoutersScopedList;

                    /**
                     * Creates a plain object from a RoutersScopedList message. Also converts values to other types if specified.
                     * @param message RoutersScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.RoutersScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SSLHealthCheck. */
                interface ISSLHealthCheck {

                    /** SSLHealthCheck port */
                    port?: (number|null);

                    /** SSLHealthCheck portName */
                    portName?: (string|null);

                    /** SSLHealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** SSLHealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** SSLHealthCheck request */
                    request?: (string|null);

                    /** SSLHealthCheck response */
                    response?: (string|null);
                }

                /** Represents a SSLHealthCheck. */
                class SSLHealthCheck implements ISSLHealthCheck {

                    /**
                     * Constructs a new SSLHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISSLHealthCheck);

                    /** SSLHealthCheck port. */
                    public port?: (number|null);

                    /** SSLHealthCheck portName. */
                    public portName?: (string|null);

                    /** SSLHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** SSLHealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** SSLHealthCheck request. */
                    public request?: (string|null);

                    /** SSLHealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new SSLHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SSLHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISSLHealthCheck): google.cloud.compute.v1.SSLHealthCheck;

                    /**
                     * Encodes the specified SSLHealthCheck message. Does not implicitly {@link google.cloud.compute.v1.SSLHealthCheck.verify|verify} messages.
                     * @param message SSLHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISSLHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SSLHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SSLHealthCheck.verify|verify} messages.
                     * @param message SSLHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISSLHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SSLHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SSLHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SSLHealthCheck;

                    /**
                     * Decodes a SSLHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SSLHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SSLHealthCheck;

                    /**
                     * Verifies a SSLHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SSLHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SSLHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SSLHealthCheck;

                    /**
                     * Creates a plain object from a SSLHealthCheck message. Also converts values to other types if specified.
                     * @param message SSLHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SSLHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SSLHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SSLHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SSLHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a SavedAttachedDisk. */
                interface ISavedAttachedDisk {

                    /** SavedAttachedDisk autoDelete */
                    autoDelete?: (boolean|null);

                    /** SavedAttachedDisk boot */
                    boot?: (boolean|null);

                    /** SavedAttachedDisk deviceName */
                    deviceName?: (string|null);

                    /** SavedAttachedDisk diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** SavedAttachedDisk diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** SavedAttachedDisk diskType */
                    diskType?: (string|null);

                    /** SavedAttachedDisk guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1.IGuestOsFeature[]|null);

                    /** SavedAttachedDisk index */
                    index?: (number|null);

                    /** SavedAttachedDisk interface */
                    "interface"?: (string|null);

                    /** SavedAttachedDisk kind */
                    kind?: (string|null);

                    /** SavedAttachedDisk licenses */
                    licenses?: (string[]|null);

                    /** SavedAttachedDisk mode */
                    mode?: (string|null);

                    /** SavedAttachedDisk source */
                    source?: (string|null);

                    /** SavedAttachedDisk storageBytes */
                    storageBytes?: (number|Long|string|null);

                    /** SavedAttachedDisk storageBytesStatus */
                    storageBytesStatus?: (string|null);

                    /** SavedAttachedDisk type */
                    type?: (string|null);
                }

                /** Represents a SavedAttachedDisk. */
                class SavedAttachedDisk implements ISavedAttachedDisk {

                    /**
                     * Constructs a new SavedAttachedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISavedAttachedDisk);

                    /** SavedAttachedDisk autoDelete. */
                    public autoDelete?: (boolean|null);

                    /** SavedAttachedDisk boot. */
                    public boot?: (boolean|null);

                    /** SavedAttachedDisk deviceName. */
                    public deviceName?: (string|null);

                    /** SavedAttachedDisk diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** SavedAttachedDisk diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** SavedAttachedDisk diskType. */
                    public diskType?: (string|null);

                    /** SavedAttachedDisk guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1.IGuestOsFeature[];

                    /** SavedAttachedDisk index. */
                    public index?: (number|null);

                    /** SavedAttachedDisk interface. */
                    public interface?: (string|null);

                    /** SavedAttachedDisk kind. */
                    public kind?: (string|null);

                    /** SavedAttachedDisk licenses. */
                    public licenses: string[];

                    /** SavedAttachedDisk mode. */
                    public mode?: (string|null);

                    /** SavedAttachedDisk source. */
                    public source?: (string|null);

                    /** SavedAttachedDisk storageBytes. */
                    public storageBytes?: (number|Long|string|null);

                    /** SavedAttachedDisk storageBytesStatus. */
                    public storageBytesStatus?: (string|null);

                    /** SavedAttachedDisk type. */
                    public type?: (string|null);

                    /**
                     * Creates a new SavedAttachedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SavedAttachedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISavedAttachedDisk): google.cloud.compute.v1.SavedAttachedDisk;

                    /**
                     * Encodes the specified SavedAttachedDisk message. Does not implicitly {@link google.cloud.compute.v1.SavedAttachedDisk.verify|verify} messages.
                     * @param message SavedAttachedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISavedAttachedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SavedAttachedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SavedAttachedDisk.verify|verify} messages.
                     * @param message SavedAttachedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISavedAttachedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SavedAttachedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SavedAttachedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SavedAttachedDisk;

                    /**
                     * Decodes a SavedAttachedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SavedAttachedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SavedAttachedDisk;

                    /**
                     * Verifies a SavedAttachedDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SavedAttachedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SavedAttachedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SavedAttachedDisk;

                    /**
                     * Creates a plain object from a SavedAttachedDisk message. Also converts values to other types if specified.
                     * @param message SavedAttachedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SavedAttachedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SavedAttachedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SavedAttachedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SavedAttachedDisk {

                    /** Interface enum. */
                    enum Interface {
                        UNDEFINED_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        READ_ONLY = 91950261,
                        READ_WRITE = 173607894
                    }

                    /** StorageBytesStatus enum. */
                    enum StorageBytesStatus {
                        UNDEFINED_STORAGE_BYTES_STATUS = 0,
                        UPDATING = 494614342,
                        UP_TO_DATE = 101306702
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        PERSISTENT = 460683927,
                        SCRATCH = 496778970
                    }
                }

                /** Properties of a SavedDisk. */
                interface ISavedDisk {

                    /** SavedDisk architecture */
                    architecture?: (string|null);

                    /** SavedDisk kind */
                    kind?: (string|null);

                    /** SavedDisk sourceDisk */
                    sourceDisk?: (string|null);

                    /** SavedDisk storageBytes */
                    storageBytes?: (number|Long|string|null);

                    /** SavedDisk storageBytesStatus */
                    storageBytesStatus?: (string|null);
                }

                /** Represents a SavedDisk. */
                class SavedDisk implements ISavedDisk {

                    /**
                     * Constructs a new SavedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISavedDisk);

                    /** SavedDisk architecture. */
                    public architecture?: (string|null);

                    /** SavedDisk kind. */
                    public kind?: (string|null);

                    /** SavedDisk sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** SavedDisk storageBytes. */
                    public storageBytes?: (number|Long|string|null);

                    /** SavedDisk storageBytesStatus. */
                    public storageBytesStatus?: (string|null);

                    /**
                     * Creates a new SavedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SavedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISavedDisk): google.cloud.compute.v1.SavedDisk;

                    /**
                     * Encodes the specified SavedDisk message. Does not implicitly {@link google.cloud.compute.v1.SavedDisk.verify|verify} messages.
                     * @param message SavedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISavedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SavedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SavedDisk.verify|verify} messages.
                     * @param message SavedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISavedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SavedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SavedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SavedDisk;

                    /**
                     * Decodes a SavedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SavedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SavedDisk;

                    /**
                     * Verifies a SavedDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SavedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SavedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SavedDisk;

                    /**
                     * Creates a plain object from a SavedDisk message. Also converts values to other types if specified.
                     * @param message SavedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SavedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SavedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SavedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SavedDisk {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** StorageBytesStatus enum. */
                    enum StorageBytesStatus {
                        UNDEFINED_STORAGE_BYTES_STATUS = 0,
                        UPDATING = 494614342,
                        UP_TO_DATE = 101306702
                    }
                }

                /** Properties of a ScalingScheduleStatus. */
                interface IScalingScheduleStatus {

                    /** ScalingScheduleStatus lastStartTime */
                    lastStartTime?: (string|null);

                    /** ScalingScheduleStatus nextStartTime */
                    nextStartTime?: (string|null);

                    /** ScalingScheduleStatus state */
                    state?: (string|null);
                }

                /** Represents a ScalingScheduleStatus. */
                class ScalingScheduleStatus implements IScalingScheduleStatus {

                    /**
                     * Constructs a new ScalingScheduleStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IScalingScheduleStatus);

                    /** ScalingScheduleStatus lastStartTime. */
                    public lastStartTime?: (string|null);

                    /** ScalingScheduleStatus nextStartTime. */
                    public nextStartTime?: (string|null);

                    /** ScalingScheduleStatus state. */
                    public state?: (string|null);

                    /**
                     * Creates a new ScalingScheduleStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ScalingScheduleStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IScalingScheduleStatus): google.cloud.compute.v1.ScalingScheduleStatus;

                    /**
                     * Encodes the specified ScalingScheduleStatus message. Does not implicitly {@link google.cloud.compute.v1.ScalingScheduleStatus.verify|verify} messages.
                     * @param message ScalingScheduleStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IScalingScheduleStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ScalingScheduleStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ScalingScheduleStatus.verify|verify} messages.
                     * @param message ScalingScheduleStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IScalingScheduleStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ScalingScheduleStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ScalingScheduleStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ScalingScheduleStatus;

                    /**
                     * Decodes a ScalingScheduleStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ScalingScheduleStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ScalingScheduleStatus;

                    /**
                     * Verifies a ScalingScheduleStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ScalingScheduleStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ScalingScheduleStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ScalingScheduleStatus;

                    /**
                     * Creates a plain object from a ScalingScheduleStatus message. Also converts values to other types if specified.
                     * @param message ScalingScheduleStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ScalingScheduleStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ScalingScheduleStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ScalingScheduleStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ScalingScheduleStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DISABLED = 516696700,
                        OBSOLETE = 66532761,
                        READY = 77848963
                    }
                }

                /** Properties of a Scheduling. */
                interface IScheduling {

                    /** Scheduling automaticRestart */
                    automaticRestart?: (boolean|null);

                    /** Scheduling availabilityDomain */
                    availabilityDomain?: (number|null);

                    /** Scheduling hostErrorTimeoutSeconds */
                    hostErrorTimeoutSeconds?: (number|null);

                    /** Scheduling instanceTerminationAction */
                    instanceTerminationAction?: (string|null);

                    /** Scheduling localSsdRecoveryTimeout */
                    localSsdRecoveryTimeout?: (google.cloud.compute.v1.IDuration|null);

                    /** Scheduling locationHint */
                    locationHint?: (string|null);

                    /** Scheduling maxRunDuration */
                    maxRunDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** Scheduling minNodeCpus */
                    minNodeCpus?: (number|null);

                    /** Scheduling nodeAffinities */
                    nodeAffinities?: (google.cloud.compute.v1.ISchedulingNodeAffinity[]|null);

                    /** Scheduling onHostMaintenance */
                    onHostMaintenance?: (string|null);

                    /** Scheduling onInstanceStopAction */
                    onInstanceStopAction?: (google.cloud.compute.v1.ISchedulingOnInstanceStopAction|null);

                    /** Scheduling preemptible */
                    preemptible?: (boolean|null);

                    /** Scheduling provisioningModel */
                    provisioningModel?: (string|null);

                    /** Scheduling skipGuestOsShutdown */
                    skipGuestOsShutdown?: (boolean|null);

                    /** Scheduling terminationTime */
                    terminationTime?: (string|null);
                }

                /** Represents a Scheduling. */
                class Scheduling implements IScheduling {

                    /**
                     * Constructs a new Scheduling.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IScheduling);

                    /** Scheduling automaticRestart. */
                    public automaticRestart?: (boolean|null);

                    /** Scheduling availabilityDomain. */
                    public availabilityDomain?: (number|null);

                    /** Scheduling hostErrorTimeoutSeconds. */
                    public hostErrorTimeoutSeconds?: (number|null);

                    /** Scheduling instanceTerminationAction. */
                    public instanceTerminationAction?: (string|null);

                    /** Scheduling localSsdRecoveryTimeout. */
                    public localSsdRecoveryTimeout?: (google.cloud.compute.v1.IDuration|null);

                    /** Scheduling locationHint. */
                    public locationHint?: (string|null);

                    /** Scheduling maxRunDuration. */
                    public maxRunDuration?: (google.cloud.compute.v1.IDuration|null);

                    /** Scheduling minNodeCpus. */
                    public minNodeCpus?: (number|null);

                    /** Scheduling nodeAffinities. */
                    public nodeAffinities: google.cloud.compute.v1.ISchedulingNodeAffinity[];

                    /** Scheduling onHostMaintenance. */
                    public onHostMaintenance?: (string|null);

                    /** Scheduling onInstanceStopAction. */
                    public onInstanceStopAction?: (google.cloud.compute.v1.ISchedulingOnInstanceStopAction|null);

                    /** Scheduling preemptible. */
                    public preemptible?: (boolean|null);

                    /** Scheduling provisioningModel. */
                    public provisioningModel?: (string|null);

                    /** Scheduling skipGuestOsShutdown. */
                    public skipGuestOsShutdown?: (boolean|null);

                    /** Scheduling terminationTime. */
                    public terminationTime?: (string|null);

                    /**
                     * Creates a new Scheduling instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Scheduling instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IScheduling): google.cloud.compute.v1.Scheduling;

                    /**
                     * Encodes the specified Scheduling message. Does not implicitly {@link google.cloud.compute.v1.Scheduling.verify|verify} messages.
                     * @param message Scheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Scheduling message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Scheduling.verify|verify} messages.
                     * @param message Scheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Scheduling message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Scheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Scheduling;

                    /**
                     * Decodes a Scheduling message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Scheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Scheduling;

                    /**
                     * Verifies a Scheduling message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Scheduling message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Scheduling
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Scheduling;

                    /**
                     * Creates a plain object from a Scheduling message. Also converts values to other types if specified.
                     * @param message Scheduling
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Scheduling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Scheduling to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Scheduling
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Scheduling {

                    /** InstanceTerminationAction enum. */
                    enum InstanceTerminationAction {
                        UNDEFINED_INSTANCE_TERMINATION_ACTION = 0,
                        DELETE = 402225579,
                        INSTANCE_TERMINATION_ACTION_UNSPECIFIED = 92954803,
                        STOP = 2555906
                    }

                    /** OnHostMaintenance enum. */
                    enum OnHostMaintenance {
                        UNDEFINED_ON_HOST_MAINTENANCE = 0,
                        MIGRATE = 165699979,
                        TERMINATE = 527617601
                    }

                    /** ProvisioningModel enum. */
                    enum ProvisioningModel {
                        UNDEFINED_PROVISIONING_MODEL = 0,
                        FLEX_START = 101746812,
                        RESERVATION_BOUND = 293538571,
                        SPOT = 2552066,
                        STANDARD = 484642493
                    }
                }

                /** Properties of a SchedulingNodeAffinity. */
                interface ISchedulingNodeAffinity {

                    /** SchedulingNodeAffinity key */
                    key?: (string|null);

                    /** SchedulingNodeAffinity operator */
                    operator?: (string|null);

                    /** SchedulingNodeAffinity values */
                    values?: (string[]|null);
                }

                /** Represents a SchedulingNodeAffinity. */
                class SchedulingNodeAffinity implements ISchedulingNodeAffinity {

                    /**
                     * Constructs a new SchedulingNodeAffinity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISchedulingNodeAffinity);

                    /** SchedulingNodeAffinity key. */
                    public key?: (string|null);

                    /** SchedulingNodeAffinity operator. */
                    public operator?: (string|null);

                    /** SchedulingNodeAffinity values. */
                    public values: string[];

                    /**
                     * Creates a new SchedulingNodeAffinity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SchedulingNodeAffinity instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISchedulingNodeAffinity): google.cloud.compute.v1.SchedulingNodeAffinity;

                    /**
                     * Encodes the specified SchedulingNodeAffinity message. Does not implicitly {@link google.cloud.compute.v1.SchedulingNodeAffinity.verify|verify} messages.
                     * @param message SchedulingNodeAffinity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISchedulingNodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SchedulingNodeAffinity message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SchedulingNodeAffinity.verify|verify} messages.
                     * @param message SchedulingNodeAffinity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISchedulingNodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SchedulingNodeAffinity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SchedulingNodeAffinity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SchedulingNodeAffinity;

                    /**
                     * Decodes a SchedulingNodeAffinity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SchedulingNodeAffinity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SchedulingNodeAffinity;

                    /**
                     * Verifies a SchedulingNodeAffinity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SchedulingNodeAffinity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SchedulingNodeAffinity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SchedulingNodeAffinity;

                    /**
                     * Creates a plain object from a SchedulingNodeAffinity message. Also converts values to other types if specified.
                     * @param message SchedulingNodeAffinity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SchedulingNodeAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SchedulingNodeAffinity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SchedulingNodeAffinity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SchedulingNodeAffinity {

                    /** Operator enum. */
                    enum Operator {
                        UNDEFINED_OPERATOR = 0,
                        IN = 2341,
                        NOT_IN = 161144369,
                        OPERATOR_UNSPECIFIED = 128892924
                    }
                }

                /** Properties of a SchedulingOnInstanceStopAction. */
                interface ISchedulingOnInstanceStopAction {

                    /** SchedulingOnInstanceStopAction discardLocalSsd */
                    discardLocalSsd?: (boolean|null);
                }

                /** Represents a SchedulingOnInstanceStopAction. */
                class SchedulingOnInstanceStopAction implements ISchedulingOnInstanceStopAction {

                    /**
                     * Constructs a new SchedulingOnInstanceStopAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISchedulingOnInstanceStopAction);

                    /** SchedulingOnInstanceStopAction discardLocalSsd. */
                    public discardLocalSsd?: (boolean|null);

                    /**
                     * Creates a new SchedulingOnInstanceStopAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SchedulingOnInstanceStopAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISchedulingOnInstanceStopAction): google.cloud.compute.v1.SchedulingOnInstanceStopAction;

                    /**
                     * Encodes the specified SchedulingOnInstanceStopAction message. Does not implicitly {@link google.cloud.compute.v1.SchedulingOnInstanceStopAction.verify|verify} messages.
                     * @param message SchedulingOnInstanceStopAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISchedulingOnInstanceStopAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SchedulingOnInstanceStopAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SchedulingOnInstanceStopAction.verify|verify} messages.
                     * @param message SchedulingOnInstanceStopAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISchedulingOnInstanceStopAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SchedulingOnInstanceStopAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SchedulingOnInstanceStopAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SchedulingOnInstanceStopAction;

                    /**
                     * Decodes a SchedulingOnInstanceStopAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SchedulingOnInstanceStopAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SchedulingOnInstanceStopAction;

                    /**
                     * Verifies a SchedulingOnInstanceStopAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SchedulingOnInstanceStopAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SchedulingOnInstanceStopAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SchedulingOnInstanceStopAction;

                    /**
                     * Creates a plain object from a SchedulingOnInstanceStopAction message. Also converts values to other types if specified.
                     * @param message SchedulingOnInstanceStopAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SchedulingOnInstanceStopAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SchedulingOnInstanceStopAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SchedulingOnInstanceStopAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Screenshot. */
                interface IScreenshot {

                    /** Screenshot contents */
                    contents?: (string|null);

                    /** Screenshot kind */
                    kind?: (string|null);
                }

                /** Represents a Screenshot. */
                class Screenshot implements IScreenshot {

                    /**
                     * Constructs a new Screenshot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IScreenshot);

                    /** Screenshot contents. */
                    public contents?: (string|null);

                    /** Screenshot kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new Screenshot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Screenshot instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IScreenshot): google.cloud.compute.v1.Screenshot;

                    /**
                     * Encodes the specified Screenshot message. Does not implicitly {@link google.cloud.compute.v1.Screenshot.verify|verify} messages.
                     * @param message Screenshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IScreenshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Screenshot message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Screenshot.verify|verify} messages.
                     * @param message Screenshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IScreenshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Screenshot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Screenshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Screenshot;

                    /**
                     * Decodes a Screenshot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Screenshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Screenshot;

                    /**
                     * Verifies a Screenshot message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Screenshot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Screenshot
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Screenshot;

                    /**
                     * Creates a plain object from a Screenshot message. Also converts values to other types if specified.
                     * @param message Screenshot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Screenshot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Screenshot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Screenshot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPoliciesAggregatedList. */
                interface ISecurityPoliciesAggregatedList {

                    /** SecurityPoliciesAggregatedList etag */
                    etag?: (string|null);

                    /** SecurityPoliciesAggregatedList id */
                    id?: (string|null);

                    /** SecurityPoliciesAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ISecurityPoliciesScopedList }|null);

                    /** SecurityPoliciesAggregatedList kind */
                    kind?: (string|null);

                    /** SecurityPoliciesAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SecurityPoliciesAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SecurityPoliciesAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SecurityPoliciesAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SecurityPoliciesAggregatedList. */
                class SecurityPoliciesAggregatedList implements ISecurityPoliciesAggregatedList {

                    /**
                     * Constructs a new SecurityPoliciesAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPoliciesAggregatedList);

                    /** SecurityPoliciesAggregatedList etag. */
                    public etag?: (string|null);

                    /** SecurityPoliciesAggregatedList id. */
                    public id?: (string|null);

                    /** SecurityPoliciesAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ISecurityPoliciesScopedList };

                    /** SecurityPoliciesAggregatedList kind. */
                    public kind?: (string|null);

                    /** SecurityPoliciesAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SecurityPoliciesAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SecurityPoliciesAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SecurityPoliciesAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SecurityPoliciesAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPoliciesAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPoliciesAggregatedList): google.cloud.compute.v1.SecurityPoliciesAggregatedList;

                    /**
                     * Encodes the specified SecurityPoliciesAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.SecurityPoliciesAggregatedList.verify|verify} messages.
                     * @param message SecurityPoliciesAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPoliciesAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPoliciesAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPoliciesAggregatedList.verify|verify} messages.
                     * @param message SecurityPoliciesAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPoliciesAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPoliciesAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPoliciesAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPoliciesAggregatedList;

                    /**
                     * Decodes a SecurityPoliciesAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPoliciesAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPoliciesAggregatedList;

                    /**
                     * Verifies a SecurityPoliciesAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPoliciesAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPoliciesAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPoliciesAggregatedList;

                    /**
                     * Creates a plain object from a SecurityPoliciesAggregatedList message. Also converts values to other types if specified.
                     * @param message SecurityPoliciesAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPoliciesAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPoliciesAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPoliciesAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPoliciesListPreconfiguredExpressionSetsResponse. */
                interface ISecurityPoliciesListPreconfiguredExpressionSetsResponse {

                    /** SecurityPoliciesListPreconfiguredExpressionSetsResponse preconfiguredExpressionSets */
                    preconfiguredExpressionSets?: (google.cloud.compute.v1.ISecurityPoliciesWafConfig|null);
                }

                /** Represents a SecurityPoliciesListPreconfiguredExpressionSetsResponse. */
                class SecurityPoliciesListPreconfiguredExpressionSetsResponse implements ISecurityPoliciesListPreconfiguredExpressionSetsResponse {

                    /**
                     * Constructs a new SecurityPoliciesListPreconfiguredExpressionSetsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPoliciesListPreconfiguredExpressionSetsResponse);

                    /** SecurityPoliciesListPreconfiguredExpressionSetsResponse preconfiguredExpressionSets. */
                    public preconfiguredExpressionSets?: (google.cloud.compute.v1.ISecurityPoliciesWafConfig|null);

                    /**
                     * Creates a new SecurityPoliciesListPreconfiguredExpressionSetsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPoliciesListPreconfiguredExpressionSetsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPoliciesListPreconfiguredExpressionSetsResponse): google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse;

                    /**
                     * Encodes the specified SecurityPoliciesListPreconfiguredExpressionSetsResponse message. Does not implicitly {@link google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse.verify|verify} messages.
                     * @param message SecurityPoliciesListPreconfiguredExpressionSetsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPoliciesListPreconfiguredExpressionSetsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPoliciesListPreconfiguredExpressionSetsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse.verify|verify} messages.
                     * @param message SecurityPoliciesListPreconfiguredExpressionSetsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPoliciesListPreconfiguredExpressionSetsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPoliciesListPreconfiguredExpressionSetsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse;

                    /**
                     * Decodes a SecurityPoliciesListPreconfiguredExpressionSetsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse;

                    /**
                     * Verifies a SecurityPoliciesListPreconfiguredExpressionSetsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPoliciesListPreconfiguredExpressionSetsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse;

                    /**
                     * Creates a plain object from a SecurityPoliciesListPreconfiguredExpressionSetsResponse message. Also converts values to other types if specified.
                     * @param message SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPoliciesListPreconfiguredExpressionSetsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPoliciesScopedList. */
                interface ISecurityPoliciesScopedList {

                    /** SecurityPoliciesScopedList securityPolicies */
                    securityPolicies?: (google.cloud.compute.v1.ISecurityPolicy[]|null);

                    /** SecurityPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SecurityPoliciesScopedList. */
                class SecurityPoliciesScopedList implements ISecurityPoliciesScopedList {

                    /**
                     * Constructs a new SecurityPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPoliciesScopedList);

                    /** SecurityPoliciesScopedList securityPolicies. */
                    public securityPolicies: google.cloud.compute.v1.ISecurityPolicy[];

                    /** SecurityPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SecurityPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPoliciesScopedList): google.cloud.compute.v1.SecurityPoliciesScopedList;

                    /**
                     * Encodes the specified SecurityPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1.SecurityPoliciesScopedList.verify|verify} messages.
                     * @param message SecurityPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPoliciesScopedList.verify|verify} messages.
                     * @param message SecurityPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPoliciesScopedList;

                    /**
                     * Decodes a SecurityPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPoliciesScopedList;

                    /**
                     * Verifies a SecurityPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPoliciesScopedList;

                    /**
                     * Creates a plain object from a SecurityPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message SecurityPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPoliciesWafConfig. */
                interface ISecurityPoliciesWafConfig {

                    /** SecurityPoliciesWafConfig wafRules */
                    wafRules?: (google.cloud.compute.v1.IPreconfiguredWafSet|null);
                }

                /** Represents a SecurityPoliciesWafConfig. */
                class SecurityPoliciesWafConfig implements ISecurityPoliciesWafConfig {

                    /**
                     * Constructs a new SecurityPoliciesWafConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPoliciesWafConfig);

                    /** SecurityPoliciesWafConfig wafRules. */
                    public wafRules?: (google.cloud.compute.v1.IPreconfiguredWafSet|null);

                    /**
                     * Creates a new SecurityPoliciesWafConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPoliciesWafConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPoliciesWafConfig): google.cloud.compute.v1.SecurityPoliciesWafConfig;

                    /**
                     * Encodes the specified SecurityPoliciesWafConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPoliciesWafConfig.verify|verify} messages.
                     * @param message SecurityPoliciesWafConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPoliciesWafConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPoliciesWafConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPoliciesWafConfig.verify|verify} messages.
                     * @param message SecurityPoliciesWafConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPoliciesWafConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPoliciesWafConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPoliciesWafConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPoliciesWafConfig;

                    /**
                     * Decodes a SecurityPoliciesWafConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPoliciesWafConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPoliciesWafConfig;

                    /**
                     * Verifies a SecurityPoliciesWafConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPoliciesWafConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPoliciesWafConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPoliciesWafConfig;

                    /**
                     * Creates a plain object from a SecurityPoliciesWafConfig message. Also converts values to other types if specified.
                     * @param message SecurityPoliciesWafConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPoliciesWafConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPoliciesWafConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPoliciesWafConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicy. */
                interface ISecurityPolicy {

                    /** SecurityPolicy adaptiveProtectionConfig */
                    adaptiveProtectionConfig?: (google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfig|null);

                    /** SecurityPolicy advancedOptionsConfig */
                    advancedOptionsConfig?: (google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfig|null);

                    /** SecurityPolicy associations */
                    associations?: (google.cloud.compute.v1.ISecurityPolicyAssociation[]|null);

                    /** SecurityPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** SecurityPolicy ddosProtectionConfig */
                    ddosProtectionConfig?: (google.cloud.compute.v1.ISecurityPolicyDdosProtectionConfig|null);

                    /** SecurityPolicy description */
                    description?: (string|null);

                    /** SecurityPolicy fingerprint */
                    fingerprint?: (string|null);

                    /** SecurityPolicy id */
                    id?: (number|Long|string|null);

                    /** SecurityPolicy kind */
                    kind?: (string|null);

                    /** SecurityPolicy labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** SecurityPolicy labels */
                    labels?: ({ [k: string]: string }|null);

                    /** SecurityPolicy name */
                    name?: (string|null);

                    /** SecurityPolicy parent */
                    parent?: (string|null);

                    /** SecurityPolicy recaptchaOptionsConfig */
                    recaptchaOptionsConfig?: (google.cloud.compute.v1.ISecurityPolicyRecaptchaOptionsConfig|null);

                    /** SecurityPolicy region */
                    region?: (string|null);

                    /** SecurityPolicy rules */
                    rules?: (google.cloud.compute.v1.ISecurityPolicyRule[]|null);

                    /** SecurityPolicy selfLink */
                    selfLink?: (string|null);

                    /** SecurityPolicy shortName */
                    shortName?: (string|null);

                    /** SecurityPolicy type */
                    type?: (string|null);

                    /** SecurityPolicy userDefinedFields */
                    userDefinedFields?: (google.cloud.compute.v1.ISecurityPolicyUserDefinedField[]|null);
                }

                /** Represents a SecurityPolicy. */
                class SecurityPolicy implements ISecurityPolicy {

                    /**
                     * Constructs a new SecurityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicy);

                    /** SecurityPolicy adaptiveProtectionConfig. */
                    public adaptiveProtectionConfig?: (google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfig|null);

                    /** SecurityPolicy advancedOptionsConfig. */
                    public advancedOptionsConfig?: (google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfig|null);

                    /** SecurityPolicy associations. */
                    public associations: google.cloud.compute.v1.ISecurityPolicyAssociation[];

                    /** SecurityPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** SecurityPolicy ddosProtectionConfig. */
                    public ddosProtectionConfig?: (google.cloud.compute.v1.ISecurityPolicyDdosProtectionConfig|null);

                    /** SecurityPolicy description. */
                    public description?: (string|null);

                    /** SecurityPolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** SecurityPolicy id. */
                    public id?: (number|Long|string|null);

                    /** SecurityPolicy kind. */
                    public kind?: (string|null);

                    /** SecurityPolicy labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** SecurityPolicy labels. */
                    public labels: { [k: string]: string };

                    /** SecurityPolicy name. */
                    public name?: (string|null);

                    /** SecurityPolicy parent. */
                    public parent?: (string|null);

                    /** SecurityPolicy recaptchaOptionsConfig. */
                    public recaptchaOptionsConfig?: (google.cloud.compute.v1.ISecurityPolicyRecaptchaOptionsConfig|null);

                    /** SecurityPolicy region. */
                    public region?: (string|null);

                    /** SecurityPolicy rules. */
                    public rules: google.cloud.compute.v1.ISecurityPolicyRule[];

                    /** SecurityPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** SecurityPolicy shortName. */
                    public shortName?: (string|null);

                    /** SecurityPolicy type. */
                    public type?: (string|null);

                    /** SecurityPolicy userDefinedFields. */
                    public userDefinedFields: google.cloud.compute.v1.ISecurityPolicyUserDefinedField[];

                    /**
                     * Creates a new SecurityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicy): google.cloud.compute.v1.SecurityPolicy;

                    /**
                     * Encodes the specified SecurityPolicy message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicy.verify|verify} messages.
                     * @param message SecurityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicy.verify|verify} messages.
                     * @param message SecurityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicy;

                    /**
                     * Decodes a SecurityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicy;

                    /**
                     * Verifies a SecurityPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicy;

                    /**
                     * Creates a plain object from a SecurityPolicy message. Also converts values to other types if specified.
                     * @param message SecurityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        CLOUD_ARMOR = 260640373,
                        CLOUD_ARMOR_EDGE = 250728775,
                        CLOUD_ARMOR_NETWORK = 488527428
                    }
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfig {

                    /** SecurityPolicyAdaptiveProtectionConfig layer7DdosDefenseConfig */
                    layer7DdosDefenseConfig?: (google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfig. */
                class SecurityPolicyAdaptiveProtectionConfig implements ISecurityPolicyAdaptiveProtectionConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfig);

                    /** SecurityPolicyAdaptiveProtectionConfig layer7DdosDefenseConfig. */
                    public layer7DdosDefenseConfig?: (google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig|null);

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfig): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig {

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig enable */
                    enable?: (boolean|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig ruleVisibility */
                    ruleVisibility?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig thresholdConfigs */
                    thresholdConfigs?: (google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig[]|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig. */
                class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig implements ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig enable. */
                    public enable?: (boolean|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig ruleVisibility. */
                    public ruleVisibility?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig thresholdConfigs. */
                    public thresholdConfigs: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig[];

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig {

                    /** RuleVisibility enum. */
                    enum RuleVisibility {
                        UNDEFINED_RULE_VISIBILITY = 0,
                        PREMIUM = 399530551,
                        STANDARD = 484642493
                    }
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig {

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployConfidenceThreshold */
                    autoDeployConfidenceThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployExpirationSec */
                    autoDeployExpirationSec?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployImpactedBaselineThreshold */
                    autoDeployImpactedBaselineThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployLoadThreshold */
                    autoDeployLoadThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionAbsoluteQps */
                    detectionAbsoluteQps?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionLoadThreshold */
                    detectionLoadThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionRelativeToBaselineQps */
                    detectionRelativeToBaselineQps?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig name */
                    name?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig trafficGranularityConfigs */
                    trafficGranularityConfigs?: (google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig[]|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig. */
                class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig implements ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployConfidenceThreshold. */
                    public autoDeployConfidenceThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployExpirationSec. */
                    public autoDeployExpirationSec?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployImpactedBaselineThreshold. */
                    public autoDeployImpactedBaselineThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployLoadThreshold. */
                    public autoDeployLoadThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionAbsoluteQps. */
                    public detectionAbsoluteQps?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionLoadThreshold. */
                    public detectionLoadThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionRelativeToBaselineQps. */
                    public detectionRelativeToBaselineQps?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig name. */
                    public name?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig trafficGranularityConfigs. */
                    public trafficGranularityConfigs: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig[];

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig {

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig enableEachUniqueValue */
                    enableEachUniqueValue?: (boolean|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig type */
                    type?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig value */
                    value?: (string|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig. */
                class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig implements ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig enableEachUniqueValue. */
                    public enableEachUniqueValue?: (boolean|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig type. */
                    public type?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig value. */
                    public value?: (string|null);

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HTTP_HEADER_HOST = 374321891,
                        HTTP_PATH = 311503228,
                        UNSPECIFIED_TYPE = 53933922
                    }
                }

                /** Properties of a SecurityPolicyAdvancedOptionsConfig. */
                interface ISecurityPolicyAdvancedOptionsConfig {

                    /** SecurityPolicyAdvancedOptionsConfig jsonCustomConfig */
                    jsonCustomConfig?: (google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig|null);

                    /** SecurityPolicyAdvancedOptionsConfig jsonParsing */
                    jsonParsing?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig logLevel */
                    logLevel?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig requestBodyInspectionSize */
                    requestBodyInspectionSize?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig userIpRequestHeaders */
                    userIpRequestHeaders?: (string[]|null);
                }

                /** Represents a SecurityPolicyAdvancedOptionsConfig. */
                class SecurityPolicyAdvancedOptionsConfig implements ISecurityPolicyAdvancedOptionsConfig {

                    /**
                     * Constructs a new SecurityPolicyAdvancedOptionsConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfig);

                    /** SecurityPolicyAdvancedOptionsConfig jsonCustomConfig. */
                    public jsonCustomConfig?: (google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig|null);

                    /** SecurityPolicyAdvancedOptionsConfig jsonParsing. */
                    public jsonParsing?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig logLevel. */
                    public logLevel?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig requestBodyInspectionSize. */
                    public requestBodyInspectionSize?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig userIpRequestHeaders. */
                    public userIpRequestHeaders: string[];

                    /**
                     * Creates a new SecurityPolicyAdvancedOptionsConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdvancedOptionsConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfig): google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdvancedOptionsConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdvancedOptionsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdvancedOptionsConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdvancedOptionsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdvancedOptionsConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdvancedOptionsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfig;

                    /**
                     * Decodes a SecurityPolicyAdvancedOptionsConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdvancedOptionsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfig;

                    /**
                     * Verifies a SecurityPolicyAdvancedOptionsConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdvancedOptionsConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdvancedOptionsConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdvancedOptionsConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdvancedOptionsConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdvancedOptionsConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdvancedOptionsConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyAdvancedOptionsConfig {

                    /** JsonParsing enum. */
                    enum JsonParsing {
                        UNDEFINED_JSON_PARSING = 0,
                        DISABLED = 516696700,
                        STANDARD = 484642493,
                        STANDARD_WITH_GRAPHQL = 106979218
                    }

                    /** LogLevel enum. */
                    enum LogLevel {
                        UNDEFINED_LOG_LEVEL = 0,
                        NORMAL = 161067239,
                        VERBOSE = 532219234
                    }
                }

                /** Properties of a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig. */
                interface ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig {

                    /** SecurityPolicyAdvancedOptionsConfigJsonCustomConfig contentTypes */
                    contentTypes?: (string[]|null);
                }

                /** Represents a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig. */
                class SecurityPolicyAdvancedOptionsConfigJsonCustomConfig implements ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig {

                    /**
                     * Constructs a new SecurityPolicyAdvancedOptionsConfigJsonCustomConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig);

                    /** SecurityPolicyAdvancedOptionsConfigJsonCustomConfig contentTypes. */
                    public contentTypes: string[];

                    /**
                     * Creates a new SecurityPolicyAdvancedOptionsConfigJsonCustomConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdvancedOptionsConfigJsonCustomConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig): google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig;

                    /**
                     * Decodes a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig;

                    /**
                     * Verifies a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdvancedOptionsConfigJsonCustomConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyAssociation. */
                interface ISecurityPolicyAssociation {

                    /** SecurityPolicyAssociation attachmentId */
                    attachmentId?: (string|null);

                    /** SecurityPolicyAssociation displayName */
                    displayName?: (string|null);

                    /** SecurityPolicyAssociation excludedFolders */
                    excludedFolders?: (string[]|null);

                    /** SecurityPolicyAssociation excludedProjects */
                    excludedProjects?: (string[]|null);

                    /** SecurityPolicyAssociation name */
                    name?: (string|null);

                    /** SecurityPolicyAssociation securityPolicyId */
                    securityPolicyId?: (string|null);

                    /** SecurityPolicyAssociation shortName */
                    shortName?: (string|null);
                }

                /** Represents a SecurityPolicyAssociation. */
                class SecurityPolicyAssociation implements ISecurityPolicyAssociation {

                    /**
                     * Constructs a new SecurityPolicyAssociation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyAssociation);

                    /** SecurityPolicyAssociation attachmentId. */
                    public attachmentId?: (string|null);

                    /** SecurityPolicyAssociation displayName. */
                    public displayName?: (string|null);

                    /** SecurityPolicyAssociation excludedFolders. */
                    public excludedFolders: string[];

                    /** SecurityPolicyAssociation excludedProjects. */
                    public excludedProjects: string[];

                    /** SecurityPolicyAssociation name. */
                    public name?: (string|null);

                    /** SecurityPolicyAssociation securityPolicyId. */
                    public securityPolicyId?: (string|null);

                    /** SecurityPolicyAssociation shortName. */
                    public shortName?: (string|null);

                    /**
                     * Creates a new SecurityPolicyAssociation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAssociation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyAssociation): google.cloud.compute.v1.SecurityPolicyAssociation;

                    /**
                     * Encodes the specified SecurityPolicyAssociation message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAssociation.verify|verify} messages.
                     * @param message SecurityPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAssociation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyAssociation.verify|verify} messages.
                     * @param message SecurityPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAssociation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyAssociation;

                    /**
                     * Decodes a SecurityPolicyAssociation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyAssociation;

                    /**
                     * Verifies a SecurityPolicyAssociation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAssociation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAssociation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyAssociation;

                    /**
                     * Creates a plain object from a SecurityPolicyAssociation message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAssociation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyAssociation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAssociation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAssociation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyDdosProtectionConfig. */
                interface ISecurityPolicyDdosProtectionConfig {

                    /** SecurityPolicyDdosProtectionConfig ddosProtection */
                    ddosProtection?: (string|null);
                }

                /** Represents a SecurityPolicyDdosProtectionConfig. */
                class SecurityPolicyDdosProtectionConfig implements ISecurityPolicyDdosProtectionConfig {

                    /**
                     * Constructs a new SecurityPolicyDdosProtectionConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyDdosProtectionConfig);

                    /** SecurityPolicyDdosProtectionConfig ddosProtection. */
                    public ddosProtection?: (string|null);

                    /**
                     * Creates a new SecurityPolicyDdosProtectionConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyDdosProtectionConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyDdosProtectionConfig): google.cloud.compute.v1.SecurityPolicyDdosProtectionConfig;

                    /**
                     * Encodes the specified SecurityPolicyDdosProtectionConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyDdosProtectionConfig.verify|verify} messages.
                     * @param message SecurityPolicyDdosProtectionConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyDdosProtectionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyDdosProtectionConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyDdosProtectionConfig.verify|verify} messages.
                     * @param message SecurityPolicyDdosProtectionConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyDdosProtectionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyDdosProtectionConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyDdosProtectionConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyDdosProtectionConfig;

                    /**
                     * Decodes a SecurityPolicyDdosProtectionConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyDdosProtectionConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyDdosProtectionConfig;

                    /**
                     * Verifies a SecurityPolicyDdosProtectionConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyDdosProtectionConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyDdosProtectionConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyDdosProtectionConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyDdosProtectionConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyDdosProtectionConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyDdosProtectionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyDdosProtectionConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyDdosProtectionConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyDdosProtectionConfig {

                    /** DdosProtection enum. */
                    enum DdosProtection {
                        UNDEFINED_DDOS_PROTECTION = 0,
                        ADVANCED = 63789090,
                        ADVANCED_PREVIEW = 40905867,
                        STANDARD = 484642493
                    }
                }

                /** Properties of a SecurityPolicyList. */
                interface ISecurityPolicyList {

                    /** SecurityPolicyList id */
                    id?: (string|null);

                    /** SecurityPolicyList items */
                    items?: (google.cloud.compute.v1.ISecurityPolicy[]|null);

                    /** SecurityPolicyList kind */
                    kind?: (string|null);

                    /** SecurityPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SecurityPolicyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SecurityPolicyList. */
                class SecurityPolicyList implements ISecurityPolicyList {

                    /**
                     * Constructs a new SecurityPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyList);

                    /** SecurityPolicyList id. */
                    public id?: (string|null);

                    /** SecurityPolicyList items. */
                    public items: google.cloud.compute.v1.ISecurityPolicy[];

                    /** SecurityPolicyList kind. */
                    public kind?: (string|null);

                    /** SecurityPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SecurityPolicyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SecurityPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyList): google.cloud.compute.v1.SecurityPolicyList;

                    /**
                     * Encodes the specified SecurityPolicyList message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyList.verify|verify} messages.
                     * @param message SecurityPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyList.verify|verify} messages.
                     * @param message SecurityPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyList;

                    /**
                     * Decodes a SecurityPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyList;

                    /**
                     * Verifies a SecurityPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyList;

                    /**
                     * Creates a plain object from a SecurityPolicyList message. Also converts values to other types if specified.
                     * @param message SecurityPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRecaptchaOptionsConfig. */
                interface ISecurityPolicyRecaptchaOptionsConfig {

                    /** SecurityPolicyRecaptchaOptionsConfig redirectSiteKey */
                    redirectSiteKey?: (string|null);
                }

                /** Represents a SecurityPolicyRecaptchaOptionsConfig. */
                class SecurityPolicyRecaptchaOptionsConfig implements ISecurityPolicyRecaptchaOptionsConfig {

                    /**
                     * Constructs a new SecurityPolicyRecaptchaOptionsConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRecaptchaOptionsConfig);

                    /** SecurityPolicyRecaptchaOptionsConfig redirectSiteKey. */
                    public redirectSiteKey?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRecaptchaOptionsConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRecaptchaOptionsConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRecaptchaOptionsConfig): google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfig;

                    /**
                     * Encodes the specified SecurityPolicyRecaptchaOptionsConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfig.verify|verify} messages.
                     * @param message SecurityPolicyRecaptchaOptionsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRecaptchaOptionsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRecaptchaOptionsConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfig.verify|verify} messages.
                     * @param message SecurityPolicyRecaptchaOptionsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRecaptchaOptionsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRecaptchaOptionsConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRecaptchaOptionsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfig;

                    /**
                     * Decodes a SecurityPolicyRecaptchaOptionsConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRecaptchaOptionsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfig;

                    /**
                     * Verifies a SecurityPolicyRecaptchaOptionsConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRecaptchaOptionsConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRecaptchaOptionsConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyRecaptchaOptionsConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRecaptchaOptionsConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRecaptchaOptionsConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRecaptchaOptionsConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyReference. */
                interface ISecurityPolicyReference {

                    /** SecurityPolicyReference securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a SecurityPolicyReference. */
                class SecurityPolicyReference implements ISecurityPolicyReference {

                    /**
                     * Constructs a new SecurityPolicyReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyReference);

                    /** SecurityPolicyReference securityPolicy. */
                    public securityPolicy?: (string|null);

                    /**
                     * Creates a new SecurityPolicyReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyReference): google.cloud.compute.v1.SecurityPolicyReference;

                    /**
                     * Encodes the specified SecurityPolicyReference message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyReference.verify|verify} messages.
                     * @param message SecurityPolicyReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyReference.verify|verify} messages.
                     * @param message SecurityPolicyReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyReference;

                    /**
                     * Decodes a SecurityPolicyReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyReference;

                    /**
                     * Verifies a SecurityPolicyReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyReference;

                    /**
                     * Creates a plain object from a SecurityPolicyReference message. Also converts values to other types if specified.
                     * @param message SecurityPolicyReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRule. */
                interface ISecurityPolicyRule {

                    /** SecurityPolicyRule action */
                    action?: (string|null);

                    /** SecurityPolicyRule description */
                    description?: (string|null);

                    /** SecurityPolicyRule headerAction */
                    headerAction?: (google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderAction|null);

                    /** SecurityPolicyRule kind */
                    kind?: (string|null);

                    /** SecurityPolicyRule match */
                    match?: (google.cloud.compute.v1.ISecurityPolicyRuleMatcher|null);

                    /** SecurityPolicyRule networkMatch */
                    networkMatch?: (google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcher|null);

                    /** SecurityPolicyRule preconfiguredWafConfig */
                    preconfiguredWafConfig?: (google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfig|null);

                    /** SecurityPolicyRule preview */
                    preview?: (boolean|null);

                    /** SecurityPolicyRule priority */
                    priority?: (number|null);

                    /** SecurityPolicyRule rateLimitOptions */
                    rateLimitOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptions|null);

                    /** SecurityPolicyRule redirectOptions */
                    redirectOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleRedirectOptions|null);
                }

                /** Represents a SecurityPolicyRule. */
                class SecurityPolicyRule implements ISecurityPolicyRule {

                    /**
                     * Constructs a new SecurityPolicyRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRule);

                    /** SecurityPolicyRule action. */
                    public action?: (string|null);

                    /** SecurityPolicyRule description. */
                    public description?: (string|null);

                    /** SecurityPolicyRule headerAction. */
                    public headerAction?: (google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderAction|null);

                    /** SecurityPolicyRule kind. */
                    public kind?: (string|null);

                    /** SecurityPolicyRule match. */
                    public match?: (google.cloud.compute.v1.ISecurityPolicyRuleMatcher|null);

                    /** SecurityPolicyRule networkMatch. */
                    public networkMatch?: (google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcher|null);

                    /** SecurityPolicyRule preconfiguredWafConfig. */
                    public preconfiguredWafConfig?: (google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfig|null);

                    /** SecurityPolicyRule preview. */
                    public preview?: (boolean|null);

                    /** SecurityPolicyRule priority. */
                    public priority?: (number|null);

                    /** SecurityPolicyRule rateLimitOptions. */
                    public rateLimitOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptions|null);

                    /** SecurityPolicyRule redirectOptions. */
                    public redirectOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleRedirectOptions|null);

                    /**
                     * Creates a new SecurityPolicyRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRule): google.cloud.compute.v1.SecurityPolicyRule;

                    /**
                     * Encodes the specified SecurityPolicyRule message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRule.verify|verify} messages.
                     * @param message SecurityPolicyRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRule.verify|verify} messages.
                     * @param message SecurityPolicyRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRule;

                    /**
                     * Decodes a SecurityPolicyRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRule;

                    /**
                     * Verifies a SecurityPolicyRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRule;

                    /**
                     * Creates a plain object from a SecurityPolicyRule message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleHttpHeaderAction. */
                interface ISecurityPolicyRuleHttpHeaderAction {

                    /** SecurityPolicyRuleHttpHeaderAction requestHeadersToAdds */
                    requestHeadersToAdds?: (google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption[]|null);
                }

                /** Represents a SecurityPolicyRuleHttpHeaderAction. */
                class SecurityPolicyRuleHttpHeaderAction implements ISecurityPolicyRuleHttpHeaderAction {

                    /**
                     * Constructs a new SecurityPolicyRuleHttpHeaderAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderAction);

                    /** SecurityPolicyRuleHttpHeaderAction requestHeadersToAdds. */
                    public requestHeadersToAdds: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption[];

                    /**
                     * Creates a new SecurityPolicyRuleHttpHeaderAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleHttpHeaderAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderAction): google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderAction;

                    /**
                     * Encodes the specified SecurityPolicyRuleHttpHeaderAction message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderAction.verify|verify} messages.
                     * @param message SecurityPolicyRuleHttpHeaderAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleHttpHeaderAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderAction.verify|verify} messages.
                     * @param message SecurityPolicyRuleHttpHeaderAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleHttpHeaderAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleHttpHeaderAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderAction;

                    /**
                     * Decodes a SecurityPolicyRuleHttpHeaderAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleHttpHeaderAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderAction;

                    /**
                     * Verifies a SecurityPolicyRuleHttpHeaderAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleHttpHeaderAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleHttpHeaderAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderAction;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleHttpHeaderAction message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleHttpHeaderAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleHttpHeaderAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleHttpHeaderAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption. */
                interface ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption {

                    /** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption headerName */
                    headerName?: (string|null);

                    /** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption headerValue */
                    headerValue?: (string|null);
                }

                /** Represents a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption. */
                class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption implements ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption {

                    /**
                     * Constructs a new SecurityPolicyRuleHttpHeaderActionHttpHeaderOption.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption);

                    /** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption headerName. */
                    public headerName?: (string|null);

                    /** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption headerValue. */
                    public headerValue?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRuleHttpHeaderActionHttpHeaderOption instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleHttpHeaderActionHttpHeaderOption instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption): google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption;

                    /**
                     * Encodes the specified SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption.verify|verify} messages.
                     * @param message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption.verify|verify} messages.
                     * @param message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption;

                    /**
                     * Decodes a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption;

                    /**
                     * Verifies a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleHttpHeaderActionHttpHeaderOption to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleMatcher. */
                interface ISecurityPolicyRuleMatcher {

                    /** SecurityPolicyRuleMatcher config */
                    config?: (google.cloud.compute.v1.ISecurityPolicyRuleMatcherConfig|null);

                    /** SecurityPolicyRuleMatcher expr */
                    expr?: (google.cloud.compute.v1.IExpr|null);

                    /** SecurityPolicyRuleMatcher exprOptions */
                    exprOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptions|null);

                    /** SecurityPolicyRuleMatcher versionedExpr */
                    versionedExpr?: (string|null);
                }

                /** Represents a SecurityPolicyRuleMatcher. */
                class SecurityPolicyRuleMatcher implements ISecurityPolicyRuleMatcher {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleMatcher);

                    /** SecurityPolicyRuleMatcher config. */
                    public config?: (google.cloud.compute.v1.ISecurityPolicyRuleMatcherConfig|null);

                    /** SecurityPolicyRuleMatcher expr. */
                    public expr?: (google.cloud.compute.v1.IExpr|null);

                    /** SecurityPolicyRuleMatcher exprOptions. */
                    public exprOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptions|null);

                    /** SecurityPolicyRuleMatcher versionedExpr. */
                    public versionedExpr?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRuleMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleMatcher): google.cloud.compute.v1.SecurityPolicyRuleMatcher;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcher message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleMatcher.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleMatcher.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleMatcher;

                    /**
                     * Decodes a SecurityPolicyRuleMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleMatcher;

                    /**
                     * Verifies a SecurityPolicyRuleMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleMatcher;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcher message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRuleMatcher {

                    /** VersionedExpr enum. */
                    enum VersionedExpr {
                        UNDEFINED_VERSIONED_EXPR = 0,
                        SRC_IPS_V1 = 70925961
                    }
                }

                /** Properties of a SecurityPolicyRuleMatcherConfig. */
                interface ISecurityPolicyRuleMatcherConfig {

                    /** SecurityPolicyRuleMatcherConfig srcIpRanges */
                    srcIpRanges?: (string[]|null);
                }

                /** Represents a SecurityPolicyRuleMatcherConfig. */
                class SecurityPolicyRuleMatcherConfig implements ISecurityPolicyRuleMatcherConfig {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcherConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleMatcherConfig);

                    /** SecurityPolicyRuleMatcherConfig srcIpRanges. */
                    public srcIpRanges: string[];

                    /**
                     * Creates a new SecurityPolicyRuleMatcherConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcherConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleMatcherConfig): google.cloud.compute.v1.SecurityPolicyRuleMatcherConfig;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleMatcherConfig.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleMatcherConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleMatcherConfig.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleMatcherConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcherConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleMatcherConfig;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcherConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleMatcherConfig;

                    /**
                     * Verifies a SecurityPolicyRuleMatcherConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcherConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcherConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleMatcherConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcherConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcherConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleMatcherConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcherConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcherConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleMatcherExprOptions. */
                interface ISecurityPolicyRuleMatcherExprOptions {

                    /** SecurityPolicyRuleMatcherExprOptions recaptchaOptions */
                    recaptchaOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions|null);
                }

                /** Represents a SecurityPolicyRuleMatcherExprOptions. */
                class SecurityPolicyRuleMatcherExprOptions implements ISecurityPolicyRuleMatcherExprOptions {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcherExprOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptions);

                    /** SecurityPolicyRuleMatcherExprOptions recaptchaOptions. */
                    public recaptchaOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions|null);

                    /**
                     * Creates a new SecurityPolicyRuleMatcherExprOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcherExprOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptions): google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptions;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherExprOptions message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherExprOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherExprOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherExprOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherExprOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcherExprOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptions;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherExprOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcherExprOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptions;

                    /**
                     * Verifies a SecurityPolicyRuleMatcherExprOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcherExprOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcherExprOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptions;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcherExprOptions message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcherExprOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcherExprOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcherExprOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions. */
                interface ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions {

                    /** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions actionTokenSiteKeys */
                    actionTokenSiteKeys?: (string[]|null);

                    /** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions sessionTokenSiteKeys */
                    sessionTokenSiteKeys?: (string[]|null);
                }

                /** Represents a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions. */
                class SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions implements ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions);

                    /** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions actionTokenSiteKeys. */
                    public actionTokenSiteKeys: string[];

                    /** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions sessionTokenSiteKeys. */
                    public sessionTokenSiteKeys: string[];

                    /**
                     * Creates a new SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions): google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions;

                    /**
                     * Verifies a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleNetworkMatcher. */
                interface ISecurityPolicyRuleNetworkMatcher {

                    /** SecurityPolicyRuleNetworkMatcher destIpRanges */
                    destIpRanges?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher destPorts */
                    destPorts?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher ipProtocols */
                    ipProtocols?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher srcAsns */
                    srcAsns?: (number[]|null);

                    /** SecurityPolicyRuleNetworkMatcher srcIpRanges */
                    srcIpRanges?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher srcPorts */
                    srcPorts?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher srcRegionCodes */
                    srcRegionCodes?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher userDefinedFields */
                    userDefinedFields?: (google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch[]|null);
                }

                /** Represents a SecurityPolicyRuleNetworkMatcher. */
                class SecurityPolicyRuleNetworkMatcher implements ISecurityPolicyRuleNetworkMatcher {

                    /**
                     * Constructs a new SecurityPolicyRuleNetworkMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcher);

                    /** SecurityPolicyRuleNetworkMatcher destIpRanges. */
                    public destIpRanges: string[];

                    /** SecurityPolicyRuleNetworkMatcher destPorts. */
                    public destPorts: string[];

                    /** SecurityPolicyRuleNetworkMatcher ipProtocols. */
                    public ipProtocols: string[];

                    /** SecurityPolicyRuleNetworkMatcher srcAsns. */
                    public srcAsns: number[];

                    /** SecurityPolicyRuleNetworkMatcher srcIpRanges. */
                    public srcIpRanges: string[];

                    /** SecurityPolicyRuleNetworkMatcher srcPorts. */
                    public srcPorts: string[];

                    /** SecurityPolicyRuleNetworkMatcher srcRegionCodes. */
                    public srcRegionCodes: string[];

                    /** SecurityPolicyRuleNetworkMatcher userDefinedFields. */
                    public userDefinedFields: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch[];

                    /**
                     * Creates a new SecurityPolicyRuleNetworkMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleNetworkMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcher): google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcher;

                    /**
                     * Encodes the specified SecurityPolicyRuleNetworkMatcher message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcher.verify|verify} messages.
                     * @param message SecurityPolicyRuleNetworkMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleNetworkMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcher.verify|verify} messages.
                     * @param message SecurityPolicyRuleNetworkMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleNetworkMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleNetworkMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcher;

                    /**
                     * Decodes a SecurityPolicyRuleNetworkMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleNetworkMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcher;

                    /**
                     * Verifies a SecurityPolicyRuleNetworkMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleNetworkMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleNetworkMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcher;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleNetworkMatcher message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleNetworkMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleNetworkMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleNetworkMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch. */
                interface ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch {

                    /** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch name */
                    name?: (string|null);

                    /** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch values */
                    values?: (string[]|null);
                }

                /** Represents a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch. */
                class SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch implements ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch {

                    /**
                     * Constructs a new SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch);

                    /** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch name. */
                    public name?: (string|null);

                    /** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch values. */
                    public values: string[];

                    /**
                     * Creates a new SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch): google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch;

                    /**
                     * Encodes the specified SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch.verify|verify} messages.
                     * @param message SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch.verify|verify} messages.
                     * @param message SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch;

                    /**
                     * Decodes a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch;

                    /**
                     * Verifies a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRulePreconfiguredWafConfig. */
                interface ISecurityPolicyRulePreconfiguredWafConfig {

                    /** SecurityPolicyRulePreconfiguredWafConfig exclusions */
                    exclusions?: (google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusion[]|null);
                }

                /** Represents a SecurityPolicyRulePreconfiguredWafConfig. */
                class SecurityPolicyRulePreconfiguredWafConfig implements ISecurityPolicyRulePreconfiguredWafConfig {

                    /**
                     * Constructs a new SecurityPolicyRulePreconfiguredWafConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfig);

                    /** SecurityPolicyRulePreconfiguredWafConfig exclusions. */
                    public exclusions: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusion[];

                    /**
                     * Creates a new SecurityPolicyRulePreconfiguredWafConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRulePreconfiguredWafConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfig): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfig;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfig.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfig.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRulePreconfiguredWafConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfig;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRulePreconfiguredWafConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfig;

                    /**
                     * Verifies a SecurityPolicyRulePreconfiguredWafConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRulePreconfiguredWafConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRulePreconfiguredWafConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyRulePreconfiguredWafConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRulePreconfiguredWafConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRulePreconfiguredWafConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRulePreconfiguredWafConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRulePreconfiguredWafConfigExclusion. */
                interface ISecurityPolicyRulePreconfiguredWafConfigExclusion {

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestCookiesToExclude */
                    requestCookiesToExclude?: (google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestHeadersToExclude */
                    requestHeadersToExclude?: (google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestQueryParamsToExclude */
                    requestQueryParamsToExclude?: (google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestUrisToExclude */
                    requestUrisToExclude?: (google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion targetRuleIds */
                    targetRuleIds?: (string[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion targetRuleSet */
                    targetRuleSet?: (string|null);
                }

                /** Represents a SecurityPolicyRulePreconfiguredWafConfigExclusion. */
                class SecurityPolicyRulePreconfiguredWafConfigExclusion implements ISecurityPolicyRulePreconfiguredWafConfigExclusion {

                    /**
                     * Constructs a new SecurityPolicyRulePreconfiguredWafConfigExclusion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusion);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestCookiesToExclude. */
                    public requestCookiesToExclude: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestHeadersToExclude. */
                    public requestHeadersToExclude: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestQueryParamsToExclude. */
                    public requestQueryParamsToExclude: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestUrisToExclude. */
                    public requestUrisToExclude: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion targetRuleIds. */
                    public targetRuleIds: string[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion targetRuleSet. */
                    public targetRuleSet?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRulePreconfiguredWafConfigExclusion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusion instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusion): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfigExclusion message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfigExclusion message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfigExclusion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfigExclusion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion;

                    /**
                     * Verifies a SecurityPolicyRulePreconfiguredWafConfigExclusion message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRulePreconfiguredWafConfigExclusion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion;

                    /**
                     * Creates a plain object from a SecurityPolicyRulePreconfiguredWafConfigExclusion message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRulePreconfiguredWafConfigExclusion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRulePreconfiguredWafConfigExclusion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams. */
                interface ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams {

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams op */
                    op?: (string|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams val */
                    val?: (string|null);
                }

                /** Represents a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams. */
                class SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams implements ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams {

                    /**
                     * Constructs a new SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams op. */
                    public op?: (string|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams val. */
                    public val?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams;

                    /**
                     * Verifies a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams;

                    /**
                     * Creates a plain object from a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams {

                    /** Op enum. */
                    enum Op {
                        UNDEFINED_OP = 0,
                        CONTAINS = 215180831,
                        ENDS_WITH = 490402221,
                        EQUALS = 442201023,
                        EQUALS_ANY = 337226060,
                        STARTS_WITH = 139505652
                    }
                }

                /** Properties of a SecurityPolicyRuleRateLimitOptions. */
                interface ISecurityPolicyRuleRateLimitOptions {

                    /** SecurityPolicyRuleRateLimitOptions banDurationSec */
                    banDurationSec?: (number|null);

                    /** SecurityPolicyRuleRateLimitOptions banThreshold */
                    banThreshold?: (google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsThreshold|null);

                    /** SecurityPolicyRuleRateLimitOptions conformAction */
                    conformAction?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKey */
                    enforceOnKey?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKeyConfigs */
                    enforceOnKeyConfigs?: (google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig[]|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKeyName */
                    enforceOnKeyName?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions exceedAction */
                    exceedAction?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions exceedRedirectOptions */
                    exceedRedirectOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleRedirectOptions|null);

                    /** SecurityPolicyRuleRateLimitOptions rateLimitThreshold */
                    rateLimitThreshold?: (google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsThreshold|null);
                }

                /** Represents a SecurityPolicyRuleRateLimitOptions. */
                class SecurityPolicyRuleRateLimitOptions implements ISecurityPolicyRuleRateLimitOptions {

                    /**
                     * Constructs a new SecurityPolicyRuleRateLimitOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptions);

                    /** SecurityPolicyRuleRateLimitOptions banDurationSec. */
                    public banDurationSec?: (number|null);

                    /** SecurityPolicyRuleRateLimitOptions banThreshold. */
                    public banThreshold?: (google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsThreshold|null);

                    /** SecurityPolicyRuleRateLimitOptions conformAction. */
                    public conformAction?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKey. */
                    public enforceOnKey?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKeyConfigs. */
                    public enforceOnKeyConfigs: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig[];

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKeyName. */
                    public enforceOnKeyName?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions exceedAction. */
                    public exceedAction?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions exceedRedirectOptions. */
                    public exceedRedirectOptions?: (google.cloud.compute.v1.ISecurityPolicyRuleRedirectOptions|null);

                    /** SecurityPolicyRuleRateLimitOptions rateLimitThreshold. */
                    public rateLimitThreshold?: (google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsThreshold|null);

                    /**
                     * Creates a new SecurityPolicyRuleRateLimitOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleRateLimitOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptions): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptions;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptions message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleRateLimitOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptions;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleRateLimitOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptions;

                    /**
                     * Verifies a SecurityPolicyRuleRateLimitOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleRateLimitOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleRateLimitOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptions;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleRateLimitOptions message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleRateLimitOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleRateLimitOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleRateLimitOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRuleRateLimitOptions {

                    /** EnforceOnKey enum. */
                    enum EnforceOnKey {
                        UNDEFINED_ENFORCE_ON_KEY = 0,
                        ALL = 64897,
                        HTTP_COOKIE = 494981627,
                        HTTP_HEADER = 91597348,
                        HTTP_PATH = 311503228,
                        IP = 2343,
                        REGION_CODE = 79559768,
                        SNI = 82254,
                        TLS_JA3_FINGERPRINT = 327127933,
                        TLS_JA4_FINGERPRINT = 33724926,
                        USER_IP = 34009627,
                        XFF_IP = 438707118
                    }
                }

                /** Properties of a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig. */
                interface ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig {

                    /** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig enforceOnKeyName */
                    enforceOnKeyName?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig enforceOnKeyType */
                    enforceOnKeyType?: (string|null);
                }

                /** Represents a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig. */
                class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig implements ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig {

                    /**
                     * Constructs a new SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig);

                    /** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig enforceOnKeyName. */
                    public enforceOnKeyName?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig enforceOnKeyType. */
                    public enforceOnKeyType?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig;

                    /**
                     * Verifies a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig {

                    /** EnforceOnKeyType enum. */
                    enum EnforceOnKeyType {
                        UNDEFINED_ENFORCE_ON_KEY_TYPE = 0,
                        ALL = 64897,
                        HTTP_COOKIE = 494981627,
                        HTTP_HEADER = 91597348,
                        HTTP_PATH = 311503228,
                        IP = 2343,
                        REGION_CODE = 79559768,
                        SNI = 82254,
                        TLS_JA3_FINGERPRINT = 327127933,
                        TLS_JA4_FINGERPRINT = 33724926,
                        USER_IP = 34009627,
                        XFF_IP = 438707118
                    }
                }

                /** Properties of a SecurityPolicyRuleRateLimitOptionsThreshold. */
                interface ISecurityPolicyRuleRateLimitOptionsThreshold {

                    /** SecurityPolicyRuleRateLimitOptionsThreshold count */
                    count?: (number|null);

                    /** SecurityPolicyRuleRateLimitOptionsThreshold intervalSec */
                    intervalSec?: (number|null);
                }

                /** Represents a SecurityPolicyRuleRateLimitOptionsThreshold. */
                class SecurityPolicyRuleRateLimitOptionsThreshold implements ISecurityPolicyRuleRateLimitOptionsThreshold {

                    /**
                     * Constructs a new SecurityPolicyRuleRateLimitOptionsThreshold.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsThreshold);

                    /** SecurityPolicyRuleRateLimitOptionsThreshold count. */
                    public count?: (number|null);

                    /** SecurityPolicyRuleRateLimitOptionsThreshold intervalSec. */
                    public intervalSec?: (number|null);

                    /**
                     * Creates a new SecurityPolicyRuleRateLimitOptionsThreshold instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleRateLimitOptionsThreshold instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsThreshold): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsThreshold;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptionsThreshold message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsThreshold.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptionsThreshold message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsThreshold, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptionsThreshold message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsThreshold.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptionsThreshold message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleRateLimitOptionsThreshold, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptionsThreshold message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleRateLimitOptionsThreshold
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsThreshold;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptionsThreshold message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleRateLimitOptionsThreshold
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsThreshold;

                    /**
                     * Verifies a SecurityPolicyRuleRateLimitOptionsThreshold message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleRateLimitOptionsThreshold message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleRateLimitOptionsThreshold
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsThreshold;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleRateLimitOptionsThreshold message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleRateLimitOptionsThreshold
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsThreshold, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleRateLimitOptionsThreshold to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleRateLimitOptionsThreshold
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleRedirectOptions. */
                interface ISecurityPolicyRuleRedirectOptions {

                    /** SecurityPolicyRuleRedirectOptions target */
                    target?: (string|null);

                    /** SecurityPolicyRuleRedirectOptions type */
                    type?: (string|null);
                }

                /** Represents a SecurityPolicyRuleRedirectOptions. */
                class SecurityPolicyRuleRedirectOptions implements ISecurityPolicyRuleRedirectOptions {

                    /**
                     * Constructs a new SecurityPolicyRuleRedirectOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyRuleRedirectOptions);

                    /** SecurityPolicyRuleRedirectOptions target. */
                    public target?: (string|null);

                    /** SecurityPolicyRuleRedirectOptions type. */
                    public type?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRuleRedirectOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleRedirectOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyRuleRedirectOptions): google.cloud.compute.v1.SecurityPolicyRuleRedirectOptions;

                    /**
                     * Encodes the specified SecurityPolicyRuleRedirectOptions message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleRedirectOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleRedirectOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyRuleRedirectOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleRedirectOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyRuleRedirectOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleRedirectOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyRuleRedirectOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleRedirectOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleRedirectOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyRuleRedirectOptions;

                    /**
                     * Decodes a SecurityPolicyRuleRedirectOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleRedirectOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyRuleRedirectOptions;

                    /**
                     * Verifies a SecurityPolicyRuleRedirectOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleRedirectOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleRedirectOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyRuleRedirectOptions;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleRedirectOptions message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleRedirectOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyRuleRedirectOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleRedirectOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleRedirectOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRuleRedirectOptions {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        EXTERNAL_302 = 395733761,
                        GOOGLE_RECAPTCHA = 518803009
                    }
                }

                /** Properties of a SecurityPolicyUserDefinedField. */
                interface ISecurityPolicyUserDefinedField {

                    /** SecurityPolicyUserDefinedField base */
                    base?: (string|null);

                    /** SecurityPolicyUserDefinedField mask */
                    mask?: (string|null);

                    /** SecurityPolicyUserDefinedField name */
                    name?: (string|null);

                    /** SecurityPolicyUserDefinedField offset */
                    offset?: (number|null);

                    /** SecurityPolicyUserDefinedField size */
                    size?: (number|null);
                }

                /** Represents a SecurityPolicyUserDefinedField. */
                class SecurityPolicyUserDefinedField implements ISecurityPolicyUserDefinedField {

                    /**
                     * Constructs a new SecurityPolicyUserDefinedField.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecurityPolicyUserDefinedField);

                    /** SecurityPolicyUserDefinedField base. */
                    public base?: (string|null);

                    /** SecurityPolicyUserDefinedField mask. */
                    public mask?: (string|null);

                    /** SecurityPolicyUserDefinedField name. */
                    public name?: (string|null);

                    /** SecurityPolicyUserDefinedField offset. */
                    public offset?: (number|null);

                    /** SecurityPolicyUserDefinedField size. */
                    public size?: (number|null);

                    /**
                     * Creates a new SecurityPolicyUserDefinedField instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyUserDefinedField instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecurityPolicyUserDefinedField): google.cloud.compute.v1.SecurityPolicyUserDefinedField;

                    /**
                     * Encodes the specified SecurityPolicyUserDefinedField message. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyUserDefinedField.verify|verify} messages.
                     * @param message SecurityPolicyUserDefinedField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecurityPolicyUserDefinedField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyUserDefinedField message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecurityPolicyUserDefinedField.verify|verify} messages.
                     * @param message SecurityPolicyUserDefinedField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecurityPolicyUserDefinedField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyUserDefinedField message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyUserDefinedField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecurityPolicyUserDefinedField;

                    /**
                     * Decodes a SecurityPolicyUserDefinedField message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyUserDefinedField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecurityPolicyUserDefinedField;

                    /**
                     * Verifies a SecurityPolicyUserDefinedField message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyUserDefinedField message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyUserDefinedField
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecurityPolicyUserDefinedField;

                    /**
                     * Creates a plain object from a SecurityPolicyUserDefinedField message. Also converts values to other types if specified.
                     * @param message SecurityPolicyUserDefinedField
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecurityPolicyUserDefinedField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyUserDefinedField to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyUserDefinedField
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyUserDefinedField {

                    /** Base enum. */
                    enum Base {
                        UNDEFINED_BASE = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        TCP = 82881,
                        UDP = 83873
                    }
                }

                /** Properties of a SecuritySettings. */
                interface ISecuritySettings {

                    /** SecuritySettings awsV4Authentication */
                    awsV4Authentication?: (google.cloud.compute.v1.IAWSV4Signature|null);

                    /** SecuritySettings clientTlsPolicy */
                    clientTlsPolicy?: (string|null);

                    /** SecuritySettings subjectAltNames */
                    subjectAltNames?: (string[]|null);
                }

                /** Represents a SecuritySettings. */
                class SecuritySettings implements ISecuritySettings {

                    /**
                     * Constructs a new SecuritySettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISecuritySettings);

                    /** SecuritySettings awsV4Authentication. */
                    public awsV4Authentication?: (google.cloud.compute.v1.IAWSV4Signature|null);

                    /** SecuritySettings clientTlsPolicy. */
                    public clientTlsPolicy?: (string|null);

                    /** SecuritySettings subjectAltNames. */
                    public subjectAltNames: string[];

                    /**
                     * Creates a new SecuritySettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecuritySettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISecuritySettings): google.cloud.compute.v1.SecuritySettings;

                    /**
                     * Encodes the specified SecuritySettings message. Does not implicitly {@link google.cloud.compute.v1.SecuritySettings.verify|verify} messages.
                     * @param message SecuritySettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISecuritySettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecuritySettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SecuritySettings.verify|verify} messages.
                     * @param message SecuritySettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISecuritySettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecuritySettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecuritySettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SecuritySettings;

                    /**
                     * Decodes a SecuritySettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecuritySettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SecuritySettings;

                    /**
                     * Verifies a SecuritySettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecuritySettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecuritySettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SecuritySettings;

                    /**
                     * Creates a plain object from a SecuritySettings message. Also converts values to other types if specified.
                     * @param message SecuritySettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SecuritySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecuritySettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecuritySettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SendDiagnosticInterruptInstanceRequest. */
                interface ISendDiagnosticInterruptInstanceRequest {

                    /** SendDiagnosticInterruptInstanceRequest instance */
                    instance?: (string|null);

                    /** SendDiagnosticInterruptInstanceRequest project */
                    project?: (string|null);

                    /** SendDiagnosticInterruptInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SendDiagnosticInterruptInstanceRequest. */
                class SendDiagnosticInterruptInstanceRequest implements ISendDiagnosticInterruptInstanceRequest {

                    /**
                     * Constructs a new SendDiagnosticInterruptInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceRequest);

                    /** SendDiagnosticInterruptInstanceRequest instance. */
                    public instance: string;

                    /** SendDiagnosticInterruptInstanceRequest project. */
                    public project: string;

                    /** SendDiagnosticInterruptInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SendDiagnosticInterruptInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SendDiagnosticInterruptInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceRequest): google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest;

                    /**
                     * Encodes the specified SendDiagnosticInterruptInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest.verify|verify} messages.
                     * @param message SendDiagnosticInterruptInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SendDiagnosticInterruptInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest.verify|verify} messages.
                     * @param message SendDiagnosticInterruptInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SendDiagnosticInterruptInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SendDiagnosticInterruptInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest;

                    /**
                     * Decodes a SendDiagnosticInterruptInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SendDiagnosticInterruptInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest;

                    /**
                     * Verifies a SendDiagnosticInterruptInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SendDiagnosticInterruptInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SendDiagnosticInterruptInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest;

                    /**
                     * Creates a plain object from a SendDiagnosticInterruptInstanceRequest message. Also converts values to other types if specified.
                     * @param message SendDiagnosticInterruptInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SendDiagnosticInterruptInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SendDiagnosticInterruptInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SendDiagnosticInterruptInstanceResponse. */
                interface ISendDiagnosticInterruptInstanceResponse {
                }

                /** Represents a SendDiagnosticInterruptInstanceResponse. */
                class SendDiagnosticInterruptInstanceResponse implements ISendDiagnosticInterruptInstanceResponse {

                    /**
                     * Constructs a new SendDiagnosticInterruptInstanceResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceResponse);

                    /**
                     * Creates a new SendDiagnosticInterruptInstanceResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SendDiagnosticInterruptInstanceResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceResponse): google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse;

                    /**
                     * Encodes the specified SendDiagnosticInterruptInstanceResponse message. Does not implicitly {@link google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse.verify|verify} messages.
                     * @param message SendDiagnosticInterruptInstanceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SendDiagnosticInterruptInstanceResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse.verify|verify} messages.
                     * @param message SendDiagnosticInterruptInstanceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SendDiagnosticInterruptInstanceResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SendDiagnosticInterruptInstanceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse;

                    /**
                     * Decodes a SendDiagnosticInterruptInstanceResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SendDiagnosticInterruptInstanceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse;

                    /**
                     * Verifies a SendDiagnosticInterruptInstanceResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SendDiagnosticInterruptInstanceResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SendDiagnosticInterruptInstanceResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse;

                    /**
                     * Creates a plain object from a SendDiagnosticInterruptInstanceResponse message. Also converts values to other types if specified.
                     * @param message SendDiagnosticInterruptInstanceResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SendDiagnosticInterruptInstanceResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SendDiagnosticInterruptInstanceResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SerialPortOutput. */
                interface ISerialPortOutput {

                    /** SerialPortOutput contents */
                    contents?: (string|null);

                    /** SerialPortOutput kind */
                    kind?: (string|null);

                    /** SerialPortOutput next */
                    next?: (number|Long|string|null);

                    /** SerialPortOutput selfLink */
                    selfLink?: (string|null);

                    /** SerialPortOutput start */
                    start?: (number|Long|string|null);
                }

                /** Represents a SerialPortOutput. */
                class SerialPortOutput implements ISerialPortOutput {

                    /**
                     * Constructs a new SerialPortOutput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISerialPortOutput);

                    /** SerialPortOutput contents. */
                    public contents?: (string|null);

                    /** SerialPortOutput kind. */
                    public kind?: (string|null);

                    /** SerialPortOutput next. */
                    public next?: (number|Long|string|null);

                    /** SerialPortOutput selfLink. */
                    public selfLink?: (string|null);

                    /** SerialPortOutput start. */
                    public start?: (number|Long|string|null);

                    /**
                     * Creates a new SerialPortOutput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SerialPortOutput instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISerialPortOutput): google.cloud.compute.v1.SerialPortOutput;

                    /**
                     * Encodes the specified SerialPortOutput message. Does not implicitly {@link google.cloud.compute.v1.SerialPortOutput.verify|verify} messages.
                     * @param message SerialPortOutput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISerialPortOutput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SerialPortOutput message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SerialPortOutput.verify|verify} messages.
                     * @param message SerialPortOutput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISerialPortOutput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SerialPortOutput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SerialPortOutput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SerialPortOutput;

                    /**
                     * Decodes a SerialPortOutput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SerialPortOutput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SerialPortOutput;

                    /**
                     * Verifies a SerialPortOutput message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SerialPortOutput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SerialPortOutput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SerialPortOutput;

                    /**
                     * Creates a plain object from a SerialPortOutput message. Also converts values to other types if specified.
                     * @param message SerialPortOutput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SerialPortOutput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SerialPortOutput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SerialPortOutput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServerBinding. */
                interface IServerBinding {

                    /** ServerBinding type */
                    type?: (string|null);
                }

                /** Represents a ServerBinding. */
                class ServerBinding implements IServerBinding {

                    /**
                     * Constructs a new ServerBinding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IServerBinding);

                    /** ServerBinding type. */
                    public type?: (string|null);

                    /**
                     * Creates a new ServerBinding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServerBinding instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IServerBinding): google.cloud.compute.v1.ServerBinding;

                    /**
                     * Encodes the specified ServerBinding message. Does not implicitly {@link google.cloud.compute.v1.ServerBinding.verify|verify} messages.
                     * @param message ServerBinding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IServerBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServerBinding message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ServerBinding.verify|verify} messages.
                     * @param message ServerBinding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IServerBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServerBinding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServerBinding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ServerBinding;

                    /**
                     * Decodes a ServerBinding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServerBinding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ServerBinding;

                    /**
                     * Verifies a ServerBinding message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServerBinding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServerBinding
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ServerBinding;

                    /**
                     * Creates a plain object from a ServerBinding message. Also converts values to other types if specified.
                     * @param message ServerBinding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ServerBinding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServerBinding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServerBinding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ServerBinding {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        RESTART_NODE_ON_ANY_SERVER = 502950985,
                        RESTART_NODE_ON_MINIMAL_SERVERS = 204166495,
                        SERVER_BINDING_TYPE_UNSPECIFIED = 180825512
                    }
                }

                /** Properties of a ServiceAccount. */
                interface IServiceAccount {

                    /** ServiceAccount email */
                    email?: (string|null);

                    /** ServiceAccount scopes */
                    scopes?: (string[]|null);
                }

                /** Represents a ServiceAccount. */
                class ServiceAccount implements IServiceAccount {

                    /**
                     * Constructs a new ServiceAccount.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IServiceAccount);

                    /** ServiceAccount email. */
                    public email?: (string|null);

                    /** ServiceAccount scopes. */
                    public scopes: string[];

                    /**
                     * Creates a new ServiceAccount instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAccount instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IServiceAccount): google.cloud.compute.v1.ServiceAccount;

                    /**
                     * Encodes the specified ServiceAccount message. Does not implicitly {@link google.cloud.compute.v1.ServiceAccount.verify|verify} messages.
                     * @param message ServiceAccount message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IServiceAccount, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAccount message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ServiceAccount.verify|verify} messages.
                     * @param message ServiceAccount message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IServiceAccount, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAccount message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAccount
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ServiceAccount;

                    /**
                     * Decodes a ServiceAccount message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAccount
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ServiceAccount;

                    /**
                     * Verifies a ServiceAccount message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAccount message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAccount
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ServiceAccount;

                    /**
                     * Creates a plain object from a ServiceAccount message. Also converts values to other types if specified.
                     * @param message ServiceAccount
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ServiceAccount, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAccount to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAccount
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServiceAttachment. */
                interface IServiceAttachment {

                    /** ServiceAttachment connectedEndpoints */
                    connectedEndpoints?: (google.cloud.compute.v1.IServiceAttachmentConnectedEndpoint[]|null);

                    /** ServiceAttachment connectionPreference */
                    connectionPreference?: (string|null);

                    /** ServiceAttachment consumerAcceptLists */
                    consumerAcceptLists?: (google.cloud.compute.v1.IServiceAttachmentConsumerProjectLimit[]|null);

                    /** ServiceAttachment consumerRejectLists */
                    consumerRejectLists?: (string[]|null);

                    /** ServiceAttachment creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ServiceAttachment description */
                    description?: (string|null);

                    /** ServiceAttachment domainNames */
                    domainNames?: (string[]|null);

                    /** ServiceAttachment enableProxyProtocol */
                    enableProxyProtocol?: (boolean|null);

                    /** ServiceAttachment fingerprint */
                    fingerprint?: (string|null);

                    /** ServiceAttachment id */
                    id?: (number|Long|string|null);

                    /** ServiceAttachment kind */
                    kind?: (string|null);

                    /** ServiceAttachment metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** ServiceAttachment name */
                    name?: (string|null);

                    /** ServiceAttachment natSubnets */
                    natSubnets?: (string[]|null);

                    /** ServiceAttachment producerForwardingRule */
                    producerForwardingRule?: (string|null);

                    /** ServiceAttachment propagatedConnectionLimit */
                    propagatedConnectionLimit?: (number|null);

                    /** ServiceAttachment pscServiceAttachmentId */
                    pscServiceAttachmentId?: (google.cloud.compute.v1.IUint128|null);

                    /** ServiceAttachment reconcileConnections */
                    reconcileConnections?: (boolean|null);

                    /** ServiceAttachment region */
                    region?: (string|null);

                    /** ServiceAttachment selfLink */
                    selfLink?: (string|null);

                    /** ServiceAttachment targetService */
                    targetService?: (string|null);
                }

                /** Represents a ServiceAttachment. */
                class ServiceAttachment implements IServiceAttachment {

                    /**
                     * Constructs a new ServiceAttachment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IServiceAttachment);

                    /** ServiceAttachment connectedEndpoints. */
                    public connectedEndpoints: google.cloud.compute.v1.IServiceAttachmentConnectedEndpoint[];

                    /** ServiceAttachment connectionPreference. */
                    public connectionPreference?: (string|null);

                    /** ServiceAttachment consumerAcceptLists. */
                    public consumerAcceptLists: google.cloud.compute.v1.IServiceAttachmentConsumerProjectLimit[];

                    /** ServiceAttachment consumerRejectLists. */
                    public consumerRejectLists: string[];

                    /** ServiceAttachment creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ServiceAttachment description. */
                    public description?: (string|null);

                    /** ServiceAttachment domainNames. */
                    public domainNames: string[];

                    /** ServiceAttachment enableProxyProtocol. */
                    public enableProxyProtocol?: (boolean|null);

                    /** ServiceAttachment fingerprint. */
                    public fingerprint?: (string|null);

                    /** ServiceAttachment id. */
                    public id?: (number|Long|string|null);

                    /** ServiceAttachment kind. */
                    public kind?: (string|null);

                    /** ServiceAttachment metadata. */
                    public metadata: { [k: string]: string };

                    /** ServiceAttachment name. */
                    public name?: (string|null);

                    /** ServiceAttachment natSubnets. */
                    public natSubnets: string[];

                    /** ServiceAttachment producerForwardingRule. */
                    public producerForwardingRule?: (string|null);

                    /** ServiceAttachment propagatedConnectionLimit. */
                    public propagatedConnectionLimit?: (number|null);

                    /** ServiceAttachment pscServiceAttachmentId. */
                    public pscServiceAttachmentId?: (google.cloud.compute.v1.IUint128|null);

                    /** ServiceAttachment reconcileConnections. */
                    public reconcileConnections?: (boolean|null);

                    /** ServiceAttachment region. */
                    public region?: (string|null);

                    /** ServiceAttachment selfLink. */
                    public selfLink?: (string|null);

                    /** ServiceAttachment targetService. */
                    public targetService?: (string|null);

                    /**
                     * Creates a new ServiceAttachment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachment instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IServiceAttachment): google.cloud.compute.v1.ServiceAttachment;

                    /**
                     * Encodes the specified ServiceAttachment message. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachment.verify|verify} messages.
                     * @param message ServiceAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IServiceAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachment message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachment.verify|verify} messages.
                     * @param message ServiceAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IServiceAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ServiceAttachment;

                    /**
                     * Decodes a ServiceAttachment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ServiceAttachment;

                    /**
                     * Verifies a ServiceAttachment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ServiceAttachment;

                    /**
                     * Creates a plain object from a ServiceAttachment message. Also converts values to other types if specified.
                     * @param message ServiceAttachment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ServiceAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ServiceAttachment {

                    /** ConnectionPreference enum. */
                    enum ConnectionPreference {
                        UNDEFINED_CONNECTION_PREFERENCE = 0,
                        ACCEPT_AUTOMATIC = 75250580,
                        ACCEPT_MANUAL = 373061341,
                        CONNECTION_PREFERENCE_UNSPECIFIED = 34590772
                    }
                }

                /** Properties of a ServiceAttachmentAggregatedList. */
                interface IServiceAttachmentAggregatedList {

                    /** ServiceAttachmentAggregatedList id */
                    id?: (string|null);

                    /** ServiceAttachmentAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IServiceAttachmentsScopedList }|null);

                    /** ServiceAttachmentAggregatedList kind */
                    kind?: (string|null);

                    /** ServiceAttachmentAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ServiceAttachmentAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** ServiceAttachmentAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** ServiceAttachmentAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ServiceAttachmentAggregatedList. */
                class ServiceAttachmentAggregatedList implements IServiceAttachmentAggregatedList {

                    /**
                     * Constructs a new ServiceAttachmentAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IServiceAttachmentAggregatedList);

                    /** ServiceAttachmentAggregatedList id. */
                    public id?: (string|null);

                    /** ServiceAttachmentAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IServiceAttachmentsScopedList };

                    /** ServiceAttachmentAggregatedList kind. */
                    public kind?: (string|null);

                    /** ServiceAttachmentAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ServiceAttachmentAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** ServiceAttachmentAggregatedList unreachables. */
                    public unreachables: string[];

                    /** ServiceAttachmentAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ServiceAttachmentAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IServiceAttachmentAggregatedList): google.cloud.compute.v1.ServiceAttachmentAggregatedList;

                    /**
                     * Encodes the specified ServiceAttachmentAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentAggregatedList.verify|verify} messages.
                     * @param message ServiceAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IServiceAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentAggregatedList.verify|verify} messages.
                     * @param message ServiceAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IServiceAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ServiceAttachmentAggregatedList;

                    /**
                     * Decodes a ServiceAttachmentAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ServiceAttachmentAggregatedList;

                    /**
                     * Verifies a ServiceAttachmentAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ServiceAttachmentAggregatedList;

                    /**
                     * Creates a plain object from a ServiceAttachmentAggregatedList message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ServiceAttachmentAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServiceAttachmentConnectedEndpoint. */
                interface IServiceAttachmentConnectedEndpoint {

                    /** ServiceAttachmentConnectedEndpoint consumerNetwork */
                    consumerNetwork?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint endpoint */
                    endpoint?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint endpointWithId */
                    endpointWithId?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint natIps */
                    natIps?: (string[]|null);

                    /** ServiceAttachmentConnectedEndpoint propagatedConnectionCount */
                    propagatedConnectionCount?: (number|null);

                    /** ServiceAttachmentConnectedEndpoint pscConnectionId */
                    pscConnectionId?: (number|Long|string|null);

                    /** ServiceAttachmentConnectedEndpoint status */
                    status?: (string|null);
                }

                /** Represents a ServiceAttachmentConnectedEndpoint. */
                class ServiceAttachmentConnectedEndpoint implements IServiceAttachmentConnectedEndpoint {

                    /**
                     * Constructs a new ServiceAttachmentConnectedEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IServiceAttachmentConnectedEndpoint);

                    /** ServiceAttachmentConnectedEndpoint consumerNetwork. */
                    public consumerNetwork?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint endpoint. */
                    public endpoint?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint endpointWithId. */
                    public endpointWithId?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint natIps. */
                    public natIps: string[];

                    /** ServiceAttachmentConnectedEndpoint propagatedConnectionCount. */
                    public propagatedConnectionCount?: (number|null);

                    /** ServiceAttachmentConnectedEndpoint pscConnectionId. */
                    public pscConnectionId?: (number|Long|string|null);

                    /** ServiceAttachmentConnectedEndpoint status. */
                    public status?: (string|null);

                    /**
                     * Creates a new ServiceAttachmentConnectedEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentConnectedEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IServiceAttachmentConnectedEndpoint): google.cloud.compute.v1.ServiceAttachmentConnectedEndpoint;

                    /**
                     * Encodes the specified ServiceAttachmentConnectedEndpoint message. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentConnectedEndpoint.verify|verify} messages.
                     * @param message ServiceAttachmentConnectedEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IServiceAttachmentConnectedEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentConnectedEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentConnectedEndpoint.verify|verify} messages.
                     * @param message ServiceAttachmentConnectedEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IServiceAttachmentConnectedEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentConnectedEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentConnectedEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ServiceAttachmentConnectedEndpoint;

                    /**
                     * Decodes a ServiceAttachmentConnectedEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentConnectedEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ServiceAttachmentConnectedEndpoint;

                    /**
                     * Verifies a ServiceAttachmentConnectedEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentConnectedEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentConnectedEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ServiceAttachmentConnectedEndpoint;

                    /**
                     * Creates a plain object from a ServiceAttachmentConnectedEndpoint message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentConnectedEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ServiceAttachmentConnectedEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentConnectedEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentConnectedEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ServiceAttachmentConnectedEndpoint {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACCEPTED = 246714279,
                        CLOSED = 380163436,
                        NEEDS_ATTENTION = 344491452,
                        PENDING = 35394935,
                        REJECTED = 174130302,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a ServiceAttachmentConsumerProjectLimit. */
                interface IServiceAttachmentConsumerProjectLimit {

                    /** ServiceAttachmentConsumerProjectLimit connectionLimit */
                    connectionLimit?: (number|null);

                    /** ServiceAttachmentConsumerProjectLimit endpointUrl */
                    endpointUrl?: (string|null);

                    /** ServiceAttachmentConsumerProjectLimit networkUrl */
                    networkUrl?: (string|null);

                    /** ServiceAttachmentConsumerProjectLimit projectIdOrNum */
                    projectIdOrNum?: (string|null);
                }

                /** Represents a ServiceAttachmentConsumerProjectLimit. */
                class ServiceAttachmentConsumerProjectLimit implements IServiceAttachmentConsumerProjectLimit {

                    /**
                     * Constructs a new ServiceAttachmentConsumerProjectLimit.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IServiceAttachmentConsumerProjectLimit);

                    /** ServiceAttachmentConsumerProjectLimit connectionLimit. */
                    public connectionLimit?: (number|null);

                    /** ServiceAttachmentConsumerProjectLimit endpointUrl. */
                    public endpointUrl?: (string|null);

                    /** ServiceAttachmentConsumerProjectLimit networkUrl. */
                    public networkUrl?: (string|null);

                    /** ServiceAttachmentConsumerProjectLimit projectIdOrNum. */
                    public projectIdOrNum?: (string|null);

                    /**
                     * Creates a new ServiceAttachmentConsumerProjectLimit instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentConsumerProjectLimit instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IServiceAttachmentConsumerProjectLimit): google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit;

                    /**
                     * Encodes the specified ServiceAttachmentConsumerProjectLimit message. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit.verify|verify} messages.
                     * @param message ServiceAttachmentConsumerProjectLimit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IServiceAttachmentConsumerProjectLimit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentConsumerProjectLimit message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit.verify|verify} messages.
                     * @param message ServiceAttachmentConsumerProjectLimit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IServiceAttachmentConsumerProjectLimit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentConsumerProjectLimit message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentConsumerProjectLimit
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit;

                    /**
                     * Decodes a ServiceAttachmentConsumerProjectLimit message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentConsumerProjectLimit
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit;

                    /**
                     * Verifies a ServiceAttachmentConsumerProjectLimit message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentConsumerProjectLimit message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentConsumerProjectLimit
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit;

                    /**
                     * Creates a plain object from a ServiceAttachmentConsumerProjectLimit message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentConsumerProjectLimit
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentConsumerProjectLimit to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentConsumerProjectLimit
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServiceAttachmentList. */
                interface IServiceAttachmentList {

                    /** ServiceAttachmentList id */
                    id?: (string|null);

                    /** ServiceAttachmentList items */
                    items?: (google.cloud.compute.v1.IServiceAttachment[]|null);

                    /** ServiceAttachmentList kind */
                    kind?: (string|null);

                    /** ServiceAttachmentList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ServiceAttachmentList selfLink */
                    selfLink?: (string|null);

                    /** ServiceAttachmentList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ServiceAttachmentList. */
                class ServiceAttachmentList implements IServiceAttachmentList {

                    /**
                     * Constructs a new ServiceAttachmentList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IServiceAttachmentList);

                    /** ServiceAttachmentList id. */
                    public id?: (string|null);

                    /** ServiceAttachmentList items. */
                    public items: google.cloud.compute.v1.IServiceAttachment[];

                    /** ServiceAttachmentList kind. */
                    public kind?: (string|null);

                    /** ServiceAttachmentList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ServiceAttachmentList selfLink. */
                    public selfLink?: (string|null);

                    /** ServiceAttachmentList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ServiceAttachmentList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IServiceAttachmentList): google.cloud.compute.v1.ServiceAttachmentList;

                    /**
                     * Encodes the specified ServiceAttachmentList message. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentList.verify|verify} messages.
                     * @param message ServiceAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IServiceAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentList.verify|verify} messages.
                     * @param message ServiceAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IServiceAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ServiceAttachmentList;

                    /**
                     * Decodes a ServiceAttachmentList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ServiceAttachmentList;

                    /**
                     * Verifies a ServiceAttachmentList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ServiceAttachmentList;

                    /**
                     * Creates a plain object from a ServiceAttachmentList message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ServiceAttachmentList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServiceAttachmentsScopedList. */
                interface IServiceAttachmentsScopedList {

                    /** ServiceAttachmentsScopedList serviceAttachments */
                    serviceAttachments?: (google.cloud.compute.v1.IServiceAttachment[]|null);

                    /** ServiceAttachmentsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ServiceAttachmentsScopedList. */
                class ServiceAttachmentsScopedList implements IServiceAttachmentsScopedList {

                    /**
                     * Constructs a new ServiceAttachmentsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IServiceAttachmentsScopedList);

                    /** ServiceAttachmentsScopedList serviceAttachments. */
                    public serviceAttachments: google.cloud.compute.v1.IServiceAttachment[];

                    /** ServiceAttachmentsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ServiceAttachmentsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IServiceAttachmentsScopedList): google.cloud.compute.v1.ServiceAttachmentsScopedList;

                    /**
                     * Encodes the specified ServiceAttachmentsScopedList message. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentsScopedList.verify|verify} messages.
                     * @param message ServiceAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IServiceAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ServiceAttachmentsScopedList.verify|verify} messages.
                     * @param message ServiceAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IServiceAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ServiceAttachmentsScopedList;

                    /**
                     * Decodes a ServiceAttachmentsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ServiceAttachmentsScopedList;

                    /**
                     * Verifies a ServiceAttachmentsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ServiceAttachmentsScopedList;

                    /**
                     * Creates a plain object from a ServiceAttachmentsScopedList message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ServiceAttachmentsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetBackendServiceTargetSslProxyRequest. */
                interface ISetBackendServiceTargetSslProxyRequest {

                    /** SetBackendServiceTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetBackendServiceTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetBackendServiceTargetSslProxyRequest targetSslProxiesSetBackendServiceRequestResource */
                    targetSslProxiesSetBackendServiceRequestResource?: (google.cloud.compute.v1.ITargetSslProxiesSetBackendServiceRequest|null);

                    /** SetBackendServiceTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetBackendServiceTargetSslProxyRequest. */
                class SetBackendServiceTargetSslProxyRequest implements ISetBackendServiceTargetSslProxyRequest {

                    /**
                     * Constructs a new SetBackendServiceTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetBackendServiceTargetSslProxyRequest);

                    /** SetBackendServiceTargetSslProxyRequest project. */
                    public project: string;

                    /** SetBackendServiceTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetBackendServiceTargetSslProxyRequest targetSslProxiesSetBackendServiceRequestResource. */
                    public targetSslProxiesSetBackendServiceRequestResource?: (google.cloud.compute.v1.ITargetSslProxiesSetBackendServiceRequest|null);

                    /** SetBackendServiceTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetBackendServiceTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetBackendServiceTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetBackendServiceTargetSslProxyRequest): google.cloud.compute.v1.SetBackendServiceTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetBackendServiceTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetBackendServiceTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetBackendServiceTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetBackendServiceTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetBackendServiceTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetBackendServiceTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetBackendServiceTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetBackendServiceTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetBackendServiceTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetBackendServiceTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetBackendServiceTargetSslProxyRequest;

                    /**
                     * Decodes a SetBackendServiceTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetBackendServiceTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetBackendServiceTargetSslProxyRequest;

                    /**
                     * Verifies a SetBackendServiceTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetBackendServiceTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetBackendServiceTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetBackendServiceTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetBackendServiceTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetBackendServiceTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetBackendServiceTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetBackendServiceTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetBackendServiceTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetBackendServiceTargetTcpProxyRequest. */
                interface ISetBackendServiceTargetTcpProxyRequest {

                    /** SetBackendServiceTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** SetBackendServiceTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetBackendServiceTargetTcpProxyRequest targetTcpProxiesSetBackendServiceRequestResource */
                    targetTcpProxiesSetBackendServiceRequestResource?: (google.cloud.compute.v1.ITargetTcpProxiesSetBackendServiceRequest|null);

                    /** SetBackendServiceTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a SetBackendServiceTargetTcpProxyRequest. */
                class SetBackendServiceTargetTcpProxyRequest implements ISetBackendServiceTargetTcpProxyRequest {

                    /**
                     * Constructs a new SetBackendServiceTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetBackendServiceTargetTcpProxyRequest);

                    /** SetBackendServiceTargetTcpProxyRequest project. */
                    public project: string;

                    /** SetBackendServiceTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetBackendServiceTargetTcpProxyRequest targetTcpProxiesSetBackendServiceRequestResource. */
                    public targetTcpProxiesSetBackendServiceRequestResource?: (google.cloud.compute.v1.ITargetTcpProxiesSetBackendServiceRequest|null);

                    /** SetBackendServiceTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new SetBackendServiceTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetBackendServiceTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetBackendServiceTargetTcpProxyRequest): google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest;

                    /**
                     * Encodes the specified SetBackendServiceTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest.verify|verify} messages.
                     * @param message SetBackendServiceTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetBackendServiceTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetBackendServiceTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest.verify|verify} messages.
                     * @param message SetBackendServiceTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetBackendServiceTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetBackendServiceTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetBackendServiceTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest;

                    /**
                     * Decodes a SetBackendServiceTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetBackendServiceTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest;

                    /**
                     * Verifies a SetBackendServiceTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetBackendServiceTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetBackendServiceTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a SetBackendServiceTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message SetBackendServiceTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetBackendServiceTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetBackendServiceTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetBackupTargetPoolRequest. */
                interface ISetBackupTargetPoolRequest {

                    /** SetBackupTargetPoolRequest failoverRatio */
                    failoverRatio?: (number|null);

                    /** SetBackupTargetPoolRequest project */
                    project?: (string|null);

                    /** SetBackupTargetPoolRequest region */
                    region?: (string|null);

                    /** SetBackupTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** SetBackupTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** SetBackupTargetPoolRequest targetReferenceResource */
                    targetReferenceResource?: (google.cloud.compute.v1.ITargetReference|null);
                }

                /** Represents a SetBackupTargetPoolRequest. */
                class SetBackupTargetPoolRequest implements ISetBackupTargetPoolRequest {

                    /**
                     * Constructs a new SetBackupTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetBackupTargetPoolRequest);

                    /** SetBackupTargetPoolRequest failoverRatio. */
                    public failoverRatio?: (number|null);

                    /** SetBackupTargetPoolRequest project. */
                    public project: string;

                    /** SetBackupTargetPoolRequest region. */
                    public region: string;

                    /** SetBackupTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** SetBackupTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** SetBackupTargetPoolRequest targetReferenceResource. */
                    public targetReferenceResource?: (google.cloud.compute.v1.ITargetReference|null);

                    /**
                     * Creates a new SetBackupTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetBackupTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetBackupTargetPoolRequest): google.cloud.compute.v1.SetBackupTargetPoolRequest;

                    /**
                     * Encodes the specified SetBackupTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.SetBackupTargetPoolRequest.verify|verify} messages.
                     * @param message SetBackupTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetBackupTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetBackupTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetBackupTargetPoolRequest.verify|verify} messages.
                     * @param message SetBackupTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetBackupTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetBackupTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetBackupTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetBackupTargetPoolRequest;

                    /**
                     * Decodes a SetBackupTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetBackupTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetBackupTargetPoolRequest;

                    /**
                     * Verifies a SetBackupTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetBackupTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetBackupTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetBackupTargetPoolRequest;

                    /**
                     * Creates a plain object from a SetBackupTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message SetBackupTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetBackupTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetBackupTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetBackupTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCertificateMapTargetHttpsProxyRequest. */
                interface ISetCertificateMapTargetHttpsProxyRequest {

                    /** SetCertificateMapTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetCertificateMapTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetCertificateMapTargetHttpsProxyRequest targetHttpsProxiesSetCertificateMapRequestResource */
                    targetHttpsProxiesSetCertificateMapRequestResource?: (google.cloud.compute.v1.ITargetHttpsProxiesSetCertificateMapRequest|null);

                    /** SetCertificateMapTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetCertificateMapTargetHttpsProxyRequest. */
                class SetCertificateMapTargetHttpsProxyRequest implements ISetCertificateMapTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetCertificateMapTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetCertificateMapTargetHttpsProxyRequest);

                    /** SetCertificateMapTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetCertificateMapTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetCertificateMapTargetHttpsProxyRequest targetHttpsProxiesSetCertificateMapRequestResource. */
                    public targetHttpsProxiesSetCertificateMapRequestResource?: (google.cloud.compute.v1.ITargetHttpsProxiesSetCertificateMapRequest|null);

                    /** SetCertificateMapTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetCertificateMapTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCertificateMapTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetCertificateMapTargetHttpsProxyRequest): google.cloud.compute.v1.SetCertificateMapTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetCertificateMapTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetCertificateMapTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetCertificateMapTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetCertificateMapTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCertificateMapTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetCertificateMapTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetCertificateMapTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetCertificateMapTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCertificateMapTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCertificateMapTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetCertificateMapTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetCertificateMapTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCertificateMapTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetCertificateMapTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetCertificateMapTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCertificateMapTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCertificateMapTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetCertificateMapTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetCertificateMapTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetCertificateMapTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetCertificateMapTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCertificateMapTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCertificateMapTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCertificateMapTargetSslProxyRequest. */
                interface ISetCertificateMapTargetSslProxyRequest {

                    /** SetCertificateMapTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetCertificateMapTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetCertificateMapTargetSslProxyRequest targetSslProxiesSetCertificateMapRequestResource */
                    targetSslProxiesSetCertificateMapRequestResource?: (google.cloud.compute.v1.ITargetSslProxiesSetCertificateMapRequest|null);

                    /** SetCertificateMapTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetCertificateMapTargetSslProxyRequest. */
                class SetCertificateMapTargetSslProxyRequest implements ISetCertificateMapTargetSslProxyRequest {

                    /**
                     * Constructs a new SetCertificateMapTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetCertificateMapTargetSslProxyRequest);

                    /** SetCertificateMapTargetSslProxyRequest project. */
                    public project: string;

                    /** SetCertificateMapTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetCertificateMapTargetSslProxyRequest targetSslProxiesSetCertificateMapRequestResource. */
                    public targetSslProxiesSetCertificateMapRequestResource?: (google.cloud.compute.v1.ITargetSslProxiesSetCertificateMapRequest|null);

                    /** SetCertificateMapTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetCertificateMapTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCertificateMapTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetCertificateMapTargetSslProxyRequest): google.cloud.compute.v1.SetCertificateMapTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetCertificateMapTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetCertificateMapTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetCertificateMapTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetCertificateMapTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCertificateMapTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetCertificateMapTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetCertificateMapTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetCertificateMapTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCertificateMapTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCertificateMapTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetCertificateMapTargetSslProxyRequest;

                    /**
                     * Decodes a SetCertificateMapTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCertificateMapTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetCertificateMapTargetSslProxyRequest;

                    /**
                     * Verifies a SetCertificateMapTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCertificateMapTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCertificateMapTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetCertificateMapTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetCertificateMapTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetCertificateMapTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetCertificateMapTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCertificateMapTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCertificateMapTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCloudArmorTierProjectRequest. */
                interface ISetCloudArmorTierProjectRequest {

                    /** SetCloudArmorTierProjectRequest project */
                    project?: (string|null);

                    /** SetCloudArmorTierProjectRequest projectsSetCloudArmorTierRequestResource */
                    projectsSetCloudArmorTierRequestResource?: (google.cloud.compute.v1.IProjectsSetCloudArmorTierRequest|null);

                    /** SetCloudArmorTierProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetCloudArmorTierProjectRequest. */
                class SetCloudArmorTierProjectRequest implements ISetCloudArmorTierProjectRequest {

                    /**
                     * Constructs a new SetCloudArmorTierProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetCloudArmorTierProjectRequest);

                    /** SetCloudArmorTierProjectRequest project. */
                    public project: string;

                    /** SetCloudArmorTierProjectRequest projectsSetCloudArmorTierRequestResource. */
                    public projectsSetCloudArmorTierRequestResource?: (google.cloud.compute.v1.IProjectsSetCloudArmorTierRequest|null);

                    /** SetCloudArmorTierProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetCloudArmorTierProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCloudArmorTierProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetCloudArmorTierProjectRequest): google.cloud.compute.v1.SetCloudArmorTierProjectRequest;

                    /**
                     * Encodes the specified SetCloudArmorTierProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.SetCloudArmorTierProjectRequest.verify|verify} messages.
                     * @param message SetCloudArmorTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetCloudArmorTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCloudArmorTierProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetCloudArmorTierProjectRequest.verify|verify} messages.
                     * @param message SetCloudArmorTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetCloudArmorTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCloudArmorTierProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCloudArmorTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetCloudArmorTierProjectRequest;

                    /**
                     * Decodes a SetCloudArmorTierProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCloudArmorTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetCloudArmorTierProjectRequest;

                    /**
                     * Verifies a SetCloudArmorTierProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCloudArmorTierProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCloudArmorTierProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetCloudArmorTierProjectRequest;

                    /**
                     * Creates a plain object from a SetCloudArmorTierProjectRequest message. Also converts values to other types if specified.
                     * @param message SetCloudArmorTierProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetCloudArmorTierProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCloudArmorTierProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCloudArmorTierProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCommonInstanceMetadataOperationMetadata. */
                interface ISetCommonInstanceMetadataOperationMetadata {

                    /** SetCommonInstanceMetadataOperationMetadata clientOperationId */
                    clientOperationId?: (string|null);

                    /** SetCommonInstanceMetadataOperationMetadata perLocationOperations */
                    perLocationOperations?: ({ [k: string]: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo }|null);
                }

                /** Represents a SetCommonInstanceMetadataOperationMetadata. */
                class SetCommonInstanceMetadataOperationMetadata implements ISetCommonInstanceMetadataOperationMetadata {

                    /**
                     * Constructs a new SetCommonInstanceMetadataOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadata);

                    /** SetCommonInstanceMetadataOperationMetadata clientOperationId. */
                    public clientOperationId?: (string|null);

                    /** SetCommonInstanceMetadataOperationMetadata perLocationOperations. */
                    public perLocationOperations: { [k: string]: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo };

                    /**
                     * Creates a new SetCommonInstanceMetadataOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCommonInstanceMetadataOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadata): google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataOperationMetadata message. Does not implicitly {@link google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCommonInstanceMetadataOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCommonInstanceMetadataOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata;

                    /**
                     * Decodes a SetCommonInstanceMetadataOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCommonInstanceMetadataOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata;

                    /**
                     * Verifies a SetCommonInstanceMetadataOperationMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCommonInstanceMetadataOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCommonInstanceMetadataOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata;

                    /**
                     * Creates a plain object from a SetCommonInstanceMetadataOperationMetadata message. Also converts values to other types if specified.
                     * @param message SetCommonInstanceMetadataOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCommonInstanceMetadataOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCommonInstanceMetadataOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo. */
                interface ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo {

                    /** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo error */
                    error?: (google.cloud.compute.v1.IStatus|null);

                    /** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo state */
                    state?: (string|null);
                }

                /** Represents a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo. */
                class SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo implements ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo {

                    /**
                     * Constructs a new SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo);

                    /** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo error. */
                    public error?: (google.cloud.compute.v1.IStatus|null);

                    /** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo state. */
                    public state?: (string|null);

                    /**
                     * Creates a new SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo): google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message. Does not implicitly {@link google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo;

                    /**
                     * Decodes a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo;

                    /**
                     * Verifies a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo;

                    /**
                     * Creates a plain object from a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message. Also converts values to other types if specified.
                     * @param message SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ABANDONED = 81797556,
                        DONE = 2104194,
                        FAILED = 455706685,
                        PROPAGATED = 507550299,
                        PROPAGATING = 164807046,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a SetCommonInstanceMetadataProjectRequest. */
                interface ISetCommonInstanceMetadataProjectRequest {

                    /** SetCommonInstanceMetadataProjectRequest metadataResource */
                    metadataResource?: (google.cloud.compute.v1.IMetadata|null);

                    /** SetCommonInstanceMetadataProjectRequest project */
                    project?: (string|null);

                    /** SetCommonInstanceMetadataProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetCommonInstanceMetadataProjectRequest. */
                class SetCommonInstanceMetadataProjectRequest implements ISetCommonInstanceMetadataProjectRequest {

                    /**
                     * Constructs a new SetCommonInstanceMetadataProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest);

                    /** SetCommonInstanceMetadataProjectRequest metadataResource. */
                    public metadataResource?: (google.cloud.compute.v1.IMetadata|null);

                    /** SetCommonInstanceMetadataProjectRequest project. */
                    public project: string;

                    /** SetCommonInstanceMetadataProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetCommonInstanceMetadataProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCommonInstanceMetadataProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest): google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCommonInstanceMetadataProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCommonInstanceMetadataProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest;

                    /**
                     * Decodes a SetCommonInstanceMetadataProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCommonInstanceMetadataProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest;

                    /**
                     * Verifies a SetCommonInstanceMetadataProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCommonInstanceMetadataProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCommonInstanceMetadataProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest;

                    /**
                     * Creates a plain object from a SetCommonInstanceMetadataProjectRequest message. Also converts values to other types if specified.
                     * @param message SetCommonInstanceMetadataProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCommonInstanceMetadataProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCommonInstanceMetadataProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetDefaultNetworkTierProjectRequest. */
                interface ISetDefaultNetworkTierProjectRequest {

                    /** SetDefaultNetworkTierProjectRequest project */
                    project?: (string|null);

                    /** SetDefaultNetworkTierProjectRequest projectsSetDefaultNetworkTierRequestResource */
                    projectsSetDefaultNetworkTierRequestResource?: (google.cloud.compute.v1.IProjectsSetDefaultNetworkTierRequest|null);

                    /** SetDefaultNetworkTierProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetDefaultNetworkTierProjectRequest. */
                class SetDefaultNetworkTierProjectRequest implements ISetDefaultNetworkTierProjectRequest {

                    /**
                     * Constructs a new SetDefaultNetworkTierProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest);

                    /** SetDefaultNetworkTierProjectRequest project. */
                    public project: string;

                    /** SetDefaultNetworkTierProjectRequest projectsSetDefaultNetworkTierRequestResource. */
                    public projectsSetDefaultNetworkTierRequestResource?: (google.cloud.compute.v1.IProjectsSetDefaultNetworkTierRequest|null);

                    /** SetDefaultNetworkTierProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetDefaultNetworkTierProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetDefaultNetworkTierProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest): google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest;

                    /**
                     * Encodes the specified SetDefaultNetworkTierProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest.verify|verify} messages.
                     * @param message SetDefaultNetworkTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetDefaultNetworkTierProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest.verify|verify} messages.
                     * @param message SetDefaultNetworkTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetDefaultNetworkTierProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetDefaultNetworkTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest;

                    /**
                     * Decodes a SetDefaultNetworkTierProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetDefaultNetworkTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest;

                    /**
                     * Verifies a SetDefaultNetworkTierProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetDefaultNetworkTierProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetDefaultNetworkTierProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest;

                    /**
                     * Creates a plain object from a SetDefaultNetworkTierProjectRequest message. Also converts values to other types if specified.
                     * @param message SetDefaultNetworkTierProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetDefaultNetworkTierProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetDefaultNetworkTierProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetDeletionProtectionInstanceRequest. */
                interface ISetDeletionProtectionInstanceRequest {

                    /** SetDeletionProtectionInstanceRequest deletionProtection */
                    deletionProtection?: (boolean|null);

                    /** SetDeletionProtectionInstanceRequest project */
                    project?: (string|null);

                    /** SetDeletionProtectionInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetDeletionProtectionInstanceRequest resource */
                    resource?: (string|null);

                    /** SetDeletionProtectionInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetDeletionProtectionInstanceRequest. */
                class SetDeletionProtectionInstanceRequest implements ISetDeletionProtectionInstanceRequest {

                    /**
                     * Constructs a new SetDeletionProtectionInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetDeletionProtectionInstanceRequest);

                    /** SetDeletionProtectionInstanceRequest deletionProtection. */
                    public deletionProtection?: (boolean|null);

                    /** SetDeletionProtectionInstanceRequest project. */
                    public project: string;

                    /** SetDeletionProtectionInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetDeletionProtectionInstanceRequest resource. */
                    public resource: string;

                    /** SetDeletionProtectionInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetDeletionProtectionInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetDeletionProtectionInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetDeletionProtectionInstanceRequest): google.cloud.compute.v1.SetDeletionProtectionInstanceRequest;

                    /**
                     * Encodes the specified SetDeletionProtectionInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetDeletionProtectionInstanceRequest.verify|verify} messages.
                     * @param message SetDeletionProtectionInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetDeletionProtectionInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetDeletionProtectionInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetDeletionProtectionInstanceRequest.verify|verify} messages.
                     * @param message SetDeletionProtectionInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetDeletionProtectionInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetDeletionProtectionInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetDeletionProtectionInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetDeletionProtectionInstanceRequest;

                    /**
                     * Decodes a SetDeletionProtectionInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetDeletionProtectionInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetDeletionProtectionInstanceRequest;

                    /**
                     * Verifies a SetDeletionProtectionInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetDeletionProtectionInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetDeletionProtectionInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetDeletionProtectionInstanceRequest;

                    /**
                     * Creates a plain object from a SetDeletionProtectionInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetDeletionProtectionInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetDeletionProtectionInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetDeletionProtectionInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetDeletionProtectionInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetDiskAutoDeleteInstanceRequest. */
                interface ISetDiskAutoDeleteInstanceRequest {

                    /** SetDiskAutoDeleteInstanceRequest autoDelete */
                    autoDelete?: (boolean|null);

                    /** SetDiskAutoDeleteInstanceRequest deviceName */
                    deviceName?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest instance */
                    instance?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest project */
                    project?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetDiskAutoDeleteInstanceRequest. */
                class SetDiskAutoDeleteInstanceRequest implements ISetDiskAutoDeleteInstanceRequest {

                    /**
                     * Constructs a new SetDiskAutoDeleteInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetDiskAutoDeleteInstanceRequest);

                    /** SetDiskAutoDeleteInstanceRequest autoDelete. */
                    public autoDelete: boolean;

                    /** SetDiskAutoDeleteInstanceRequest deviceName. */
                    public deviceName: string;

                    /** SetDiskAutoDeleteInstanceRequest instance. */
                    public instance: string;

                    /** SetDiskAutoDeleteInstanceRequest project. */
                    public project: string;

                    /** SetDiskAutoDeleteInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetDiskAutoDeleteInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetDiskAutoDeleteInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetDiskAutoDeleteInstanceRequest): google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest;

                    /**
                     * Encodes the specified SetDiskAutoDeleteInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest.verify|verify} messages.
                     * @param message SetDiskAutoDeleteInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetDiskAutoDeleteInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetDiskAutoDeleteInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest.verify|verify} messages.
                     * @param message SetDiskAutoDeleteInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetDiskAutoDeleteInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetDiskAutoDeleteInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetDiskAutoDeleteInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest;

                    /**
                     * Decodes a SetDiskAutoDeleteInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetDiskAutoDeleteInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest;

                    /**
                     * Verifies a SetDiskAutoDeleteInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetDiskAutoDeleteInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetDiskAutoDeleteInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest;

                    /**
                     * Creates a plain object from a SetDiskAutoDeleteInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetDiskAutoDeleteInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetDiskAutoDeleteInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetDiskAutoDeleteInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetEdgeSecurityPolicyBackendBucketRequest. */
                interface ISetEdgeSecurityPolicyBackendBucketRequest {

                    /** SetEdgeSecurityPolicyBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** SetEdgeSecurityPolicyBackendBucketRequest project */
                    project?: (string|null);

                    /** SetEdgeSecurityPolicyBackendBucketRequest requestId */
                    requestId?: (string|null);

                    /** SetEdgeSecurityPolicyBackendBucketRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);
                }

                /** Represents a SetEdgeSecurityPolicyBackendBucketRequest. */
                class SetEdgeSecurityPolicyBackendBucketRequest implements ISetEdgeSecurityPolicyBackendBucketRequest {

                    /**
                     * Constructs a new SetEdgeSecurityPolicyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendBucketRequest);

                    /** SetEdgeSecurityPolicyBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** SetEdgeSecurityPolicyBackendBucketRequest project. */
                    public project: string;

                    /** SetEdgeSecurityPolicyBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /** SetEdgeSecurityPolicyBackendBucketRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);

                    /**
                     * Creates a new SetEdgeSecurityPolicyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetEdgeSecurityPolicyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendBucketRequest): google.cloud.compute.v1.SetEdgeSecurityPolicyBackendBucketRequest;

                    /**
                     * Encodes the specified SetEdgeSecurityPolicyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.SetEdgeSecurityPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message SetEdgeSecurityPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetEdgeSecurityPolicyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetEdgeSecurityPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message SetEdgeSecurityPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetEdgeSecurityPolicyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetEdgeSecurityPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetEdgeSecurityPolicyBackendBucketRequest;

                    /**
                     * Decodes a SetEdgeSecurityPolicyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetEdgeSecurityPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetEdgeSecurityPolicyBackendBucketRequest;

                    /**
                     * Verifies a SetEdgeSecurityPolicyBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetEdgeSecurityPolicyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetEdgeSecurityPolicyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetEdgeSecurityPolicyBackendBucketRequest;

                    /**
                     * Creates a plain object from a SetEdgeSecurityPolicyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message SetEdgeSecurityPolicyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetEdgeSecurityPolicyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetEdgeSecurityPolicyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetEdgeSecurityPolicyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetEdgeSecurityPolicyBackendServiceRequest. */
                interface ISetEdgeSecurityPolicyBackendServiceRequest {

                    /** SetEdgeSecurityPolicyBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** SetEdgeSecurityPolicyBackendServiceRequest project */
                    project?: (string|null);

                    /** SetEdgeSecurityPolicyBackendServiceRequest requestId */
                    requestId?: (string|null);

                    /** SetEdgeSecurityPolicyBackendServiceRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);
                }

                /** Represents a SetEdgeSecurityPolicyBackendServiceRequest. */
                class SetEdgeSecurityPolicyBackendServiceRequest implements ISetEdgeSecurityPolicyBackendServiceRequest {

                    /**
                     * Constructs a new SetEdgeSecurityPolicyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendServiceRequest);

                    /** SetEdgeSecurityPolicyBackendServiceRequest backendService. */
                    public backendService: string;

                    /** SetEdgeSecurityPolicyBackendServiceRequest project. */
                    public project: string;

                    /** SetEdgeSecurityPolicyBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetEdgeSecurityPolicyBackendServiceRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);

                    /**
                     * Creates a new SetEdgeSecurityPolicyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetEdgeSecurityPolicyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendServiceRequest): google.cloud.compute.v1.SetEdgeSecurityPolicyBackendServiceRequest;

                    /**
                     * Encodes the specified SetEdgeSecurityPolicyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetEdgeSecurityPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetEdgeSecurityPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetEdgeSecurityPolicyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetEdgeSecurityPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetEdgeSecurityPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetEdgeSecurityPolicyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetEdgeSecurityPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetEdgeSecurityPolicyBackendServiceRequest;

                    /**
                     * Decodes a SetEdgeSecurityPolicyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetEdgeSecurityPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetEdgeSecurityPolicyBackendServiceRequest;

                    /**
                     * Verifies a SetEdgeSecurityPolicyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetEdgeSecurityPolicyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetEdgeSecurityPolicyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetEdgeSecurityPolicyBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetEdgeSecurityPolicyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetEdgeSecurityPolicyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetEdgeSecurityPolicyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetEdgeSecurityPolicyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetEdgeSecurityPolicyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyBackendBucketRequest. */
                interface ISetIamPolicyBackendBucketRequest {

                    /** SetIamPolicyBackendBucketRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyBackendBucketRequest project */
                    project?: (string|null);

                    /** SetIamPolicyBackendBucketRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyBackendBucketRequest. */
                class SetIamPolicyBackendBucketRequest implements ISetIamPolicyBackendBucketRequest {

                    /**
                     * Constructs a new SetIamPolicyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyBackendBucketRequest);

                    /** SetIamPolicyBackendBucketRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyBackendBucketRequest project. */
                    public project: string;

                    /** SetIamPolicyBackendBucketRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyBackendBucketRequest): google.cloud.compute.v1.SetIamPolicyBackendBucketRequest;

                    /**
                     * Encodes the specified SetIamPolicyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message SetIamPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message SetIamPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyBackendBucketRequest;

                    /**
                     * Decodes a SetIamPolicyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyBackendBucketRequest;

                    /**
                     * Verifies a SetIamPolicyBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyBackendBucketRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyBackendServiceRequest. */
                interface ISetIamPolicyBackendServiceRequest {

                    /** SetIamPolicyBackendServiceRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyBackendServiceRequest project */
                    project?: (string|null);

                    /** SetIamPolicyBackendServiceRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyBackendServiceRequest. */
                class SetIamPolicyBackendServiceRequest implements ISetIamPolicyBackendServiceRequest {

                    /**
                     * Constructs a new SetIamPolicyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyBackendServiceRequest);

                    /** SetIamPolicyBackendServiceRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyBackendServiceRequest project. */
                    public project: string;

                    /** SetIamPolicyBackendServiceRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyBackendServiceRequest): google.cloud.compute.v1.SetIamPolicyBackendServiceRequest;

                    /**
                     * Encodes the specified SetIamPolicyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetIamPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetIamPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyBackendServiceRequest;

                    /**
                     * Decodes a SetIamPolicyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyBackendServiceRequest;

                    /**
                     * Verifies a SetIamPolicyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyDiskRequest. */
                interface ISetIamPolicyDiskRequest {

                    /** SetIamPolicyDiskRequest project */
                    project?: (string|null);

                    /** SetIamPolicyDiskRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyDiskRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyDiskRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyDiskRequest. */
                class SetIamPolicyDiskRequest implements ISetIamPolicyDiskRequest {

                    /**
                     * Constructs a new SetIamPolicyDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyDiskRequest);

                    /** SetIamPolicyDiskRequest project. */
                    public project: string;

                    /** SetIamPolicyDiskRequest resource. */
                    public resource: string;

                    /** SetIamPolicyDiskRequest zone. */
                    public zone: string;

                    /** SetIamPolicyDiskRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyDiskRequest): google.cloud.compute.v1.SetIamPolicyDiskRequest;

                    /**
                     * Encodes the specified SetIamPolicyDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyDiskRequest.verify|verify} messages.
                     * @param message SetIamPolicyDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyDiskRequest.verify|verify} messages.
                     * @param message SetIamPolicyDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyDiskRequest;

                    /**
                     * Decodes a SetIamPolicyDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyDiskRequest;

                    /**
                     * Verifies a SetIamPolicyDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyDiskRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyDiskRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyFirewallPolicyRequest. */
                interface ISetIamPolicyFirewallPolicyRequest {

                    /** SetIamPolicyFirewallPolicyRequest globalOrganizationSetPolicyRequestResource */
                    globalOrganizationSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalOrganizationSetPolicyRequest|null);

                    /** SetIamPolicyFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyFirewallPolicyRequest. */
                class SetIamPolicyFirewallPolicyRequest implements ISetIamPolicyFirewallPolicyRequest {

                    /**
                     * Constructs a new SetIamPolicyFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyFirewallPolicyRequest);

                    /** SetIamPolicyFirewallPolicyRequest globalOrganizationSetPolicyRequestResource. */
                    public globalOrganizationSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalOrganizationSetPolicyRequest|null);

                    /** SetIamPolicyFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyFirewallPolicyRequest): google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest;

                    /**
                     * Encodes the specified SetIamPolicyFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest;

                    /**
                     * Decodes a SetIamPolicyFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest;

                    /**
                     * Verifies a SetIamPolicyFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyImageRequest. */
                interface ISetIamPolicyImageRequest {

                    /** SetIamPolicyImageRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyImageRequest project */
                    project?: (string|null);

                    /** SetIamPolicyImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyImageRequest. */
                class SetIamPolicyImageRequest implements ISetIamPolicyImageRequest {

                    /**
                     * Constructs a new SetIamPolicyImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyImageRequest);

                    /** SetIamPolicyImageRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyImageRequest project. */
                    public project: string;

                    /** SetIamPolicyImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyImageRequest): google.cloud.compute.v1.SetIamPolicyImageRequest;

                    /**
                     * Encodes the specified SetIamPolicyImageRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyImageRequest.verify|verify} messages.
                     * @param message SetIamPolicyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyImageRequest.verify|verify} messages.
                     * @param message SetIamPolicyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyImageRequest;

                    /**
                     * Decodes a SetIamPolicyImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyImageRequest;

                    /**
                     * Verifies a SetIamPolicyImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyImageRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyImageRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInstanceRequest. */
                interface ISetIamPolicyInstanceRequest {

                    /** SetIamPolicyInstanceRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInstanceRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyInstanceRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyInstanceRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyInstanceRequest. */
                class SetIamPolicyInstanceRequest implements ISetIamPolicyInstanceRequest {

                    /**
                     * Constructs a new SetIamPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyInstanceRequest);

                    /** SetIamPolicyInstanceRequest project. */
                    public project: string;

                    /** SetIamPolicyInstanceRequest resource. */
                    public resource: string;

                    /** SetIamPolicyInstanceRequest zone. */
                    public zone: string;

                    /** SetIamPolicyInstanceRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyInstanceRequest): google.cloud.compute.v1.SetIamPolicyInstanceRequest;

                    /**
                     * Encodes the specified SetIamPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyInstanceRequest;

                    /**
                     * Decodes a SetIamPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyInstanceRequest;

                    /**
                     * Verifies a SetIamPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInstanceTemplateRequest. */
                interface ISetIamPolicyInstanceTemplateRequest {

                    /** SetIamPolicyInstanceTemplateRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInstanceTemplateRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInstanceTemplateRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyInstanceTemplateRequest. */
                class SetIamPolicyInstanceTemplateRequest implements ISetIamPolicyInstanceTemplateRequest {

                    /**
                     * Constructs a new SetIamPolicyInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyInstanceTemplateRequest);

                    /** SetIamPolicyInstanceTemplateRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInstanceTemplateRequest project. */
                    public project: string;

                    /** SetIamPolicyInstanceTemplateRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyInstanceTemplateRequest): google.cloud.compute.v1.SetIamPolicyInstanceTemplateRequest;

                    /**
                     * Encodes the specified SetIamPolicyInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInstanceTemplateRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInstanceTemplateRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyInstanceTemplateRequest;

                    /**
                     * Decodes a SetIamPolicyInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyInstanceTemplateRequest;

                    /**
                     * Verifies a SetIamPolicyInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInstantSnapshotRequest. */
                interface ISetIamPolicyInstantSnapshotRequest {

                    /** SetIamPolicyInstantSnapshotRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyInstantSnapshotRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyInstantSnapshotRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyInstantSnapshotRequest. */
                class SetIamPolicyInstantSnapshotRequest implements ISetIamPolicyInstantSnapshotRequest {

                    /**
                     * Constructs a new SetIamPolicyInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyInstantSnapshotRequest);

                    /** SetIamPolicyInstantSnapshotRequest project. */
                    public project: string;

                    /** SetIamPolicyInstantSnapshotRequest resource. */
                    public resource: string;

                    /** SetIamPolicyInstantSnapshotRequest zone. */
                    public zone: string;

                    /** SetIamPolicyInstantSnapshotRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyInstantSnapshotRequest): google.cloud.compute.v1.SetIamPolicyInstantSnapshotRequest;

                    /**
                     * Encodes the specified SetIamPolicyInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyInstantSnapshotRequest;

                    /**
                     * Decodes a SetIamPolicyInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyInstantSnapshotRequest;

                    /**
                     * Verifies a SetIamPolicyInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInterconnectAttachmentGroupRequest. */
                interface ISetIamPolicyInterconnectAttachmentGroupRequest {

                    /** SetIamPolicyInterconnectAttachmentGroupRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInterconnectAttachmentGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyInterconnectAttachmentGroupRequest. */
                class SetIamPolicyInterconnectAttachmentGroupRequest implements ISetIamPolicyInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new SetIamPolicyInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyInterconnectAttachmentGroupRequest);

                    /** SetIamPolicyInterconnectAttachmentGroupRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** SetIamPolicyInterconnectAttachmentGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyInterconnectAttachmentGroupRequest): google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicyInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a SetIamPolicyInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a SetIamPolicyInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInterconnectGroupRequest. */
                interface ISetIamPolicyInterconnectGroupRequest {

                    /** SetIamPolicyInterconnectGroupRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInterconnectGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInterconnectGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyInterconnectGroupRequest. */
                class SetIamPolicyInterconnectGroupRequest implements ISetIamPolicyInterconnectGroupRequest {

                    /**
                     * Constructs a new SetIamPolicyInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyInterconnectGroupRequest);

                    /** SetIamPolicyInterconnectGroupRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInterconnectGroupRequest project. */
                    public project: string;

                    /** SetIamPolicyInterconnectGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyInterconnectGroupRequest): google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicyInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest;

                    /**
                     * Decodes a SetIamPolicyInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest;

                    /**
                     * Verifies a SetIamPolicyInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyLicenseRequest. */
                interface ISetIamPolicyLicenseRequest {

                    /** SetIamPolicyLicenseRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyLicenseRequest project */
                    project?: (string|null);

                    /** SetIamPolicyLicenseRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyLicenseRequest. */
                class SetIamPolicyLicenseRequest implements ISetIamPolicyLicenseRequest {

                    /**
                     * Constructs a new SetIamPolicyLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyLicenseRequest);

                    /** SetIamPolicyLicenseRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyLicenseRequest project. */
                    public project: string;

                    /** SetIamPolicyLicenseRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyLicenseRequest): google.cloud.compute.v1.SetIamPolicyLicenseRequest;

                    /**
                     * Encodes the specified SetIamPolicyLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyLicenseRequest.verify|verify} messages.
                     * @param message SetIamPolicyLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyLicenseRequest.verify|verify} messages.
                     * @param message SetIamPolicyLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyLicenseRequest;

                    /**
                     * Decodes a SetIamPolicyLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyLicenseRequest;

                    /**
                     * Verifies a SetIamPolicyLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyLicenseRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyLicenseRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyMachineImageRequest. */
                interface ISetIamPolicyMachineImageRequest {

                    /** SetIamPolicyMachineImageRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyMachineImageRequest project */
                    project?: (string|null);

                    /** SetIamPolicyMachineImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyMachineImageRequest. */
                class SetIamPolicyMachineImageRequest implements ISetIamPolicyMachineImageRequest {

                    /**
                     * Constructs a new SetIamPolicyMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyMachineImageRequest);

                    /** SetIamPolicyMachineImageRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyMachineImageRequest project. */
                    public project: string;

                    /** SetIamPolicyMachineImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyMachineImageRequest): google.cloud.compute.v1.SetIamPolicyMachineImageRequest;

                    /**
                     * Encodes the specified SetIamPolicyMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyMachineImageRequest.verify|verify} messages.
                     * @param message SetIamPolicyMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyMachineImageRequest.verify|verify} messages.
                     * @param message SetIamPolicyMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyMachineImageRequest;

                    /**
                     * Decodes a SetIamPolicyMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyMachineImageRequest;

                    /**
                     * Verifies a SetIamPolicyMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyMachineImageRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyMachineImageRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyNetworkAttachmentRequest. */
                interface ISetIamPolicyNetworkAttachmentRequest {

                    /** SetIamPolicyNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** SetIamPolicyNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** SetIamPolicyNetworkAttachmentRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyNetworkAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyNetworkAttachmentRequest. */
                class SetIamPolicyNetworkAttachmentRequest implements ISetIamPolicyNetworkAttachmentRequest {

                    /**
                     * Constructs a new SetIamPolicyNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyNetworkAttachmentRequest);

                    /** SetIamPolicyNetworkAttachmentRequest project. */
                    public project: string;

                    /** SetIamPolicyNetworkAttachmentRequest region. */
                    public region: string;

                    /** SetIamPolicyNetworkAttachmentRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyNetworkAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyNetworkAttachmentRequest): google.cloud.compute.v1.SetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Encodes the specified SetIamPolicyNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyNetworkAttachmentRequest.verify|verify} messages.
                     * @param message SetIamPolicyNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyNetworkAttachmentRequest.verify|verify} messages.
                     * @param message SetIamPolicyNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Decodes a SetIamPolicyNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Verifies a SetIamPolicyNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyNetworkFirewallPolicyRequest. */
                interface ISetIamPolicyNetworkFirewallPolicyRequest {

                    /** SetIamPolicyNetworkFirewallPolicyRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** SetIamPolicyNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyNetworkFirewallPolicyRequest. */
                class SetIamPolicyNetworkFirewallPolicyRequest implements ISetIamPolicyNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new SetIamPolicyNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyNetworkFirewallPolicyRequest);

                    /** SetIamPolicyNetworkFirewallPolicyRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** SetIamPolicyNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyNetworkFirewallPolicyRequest): google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified SetIamPolicyNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a SetIamPolicyNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a SetIamPolicyNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyNodeGroupRequest. */
                interface ISetIamPolicyNodeGroupRequest {

                    /** SetIamPolicyNodeGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicyNodeGroupRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyNodeGroupRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyNodeGroupRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyNodeGroupRequest. */
                class SetIamPolicyNodeGroupRequest implements ISetIamPolicyNodeGroupRequest {

                    /**
                     * Constructs a new SetIamPolicyNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyNodeGroupRequest);

                    /** SetIamPolicyNodeGroupRequest project. */
                    public project: string;

                    /** SetIamPolicyNodeGroupRequest resource. */
                    public resource: string;

                    /** SetIamPolicyNodeGroupRequest zone. */
                    public zone: string;

                    /** SetIamPolicyNodeGroupRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyNodeGroupRequest): google.cloud.compute.v1.SetIamPolicyNodeGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicyNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyNodeGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyNodeGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyNodeGroupRequest;

                    /**
                     * Decodes a SetIamPolicyNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyNodeGroupRequest;

                    /**
                     * Verifies a SetIamPolicyNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyNodeGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyNodeTemplateRequest. */
                interface ISetIamPolicyNodeTemplateRequest {

                    /** SetIamPolicyNodeTemplateRequest project */
                    project?: (string|null);

                    /** SetIamPolicyNodeTemplateRequest region */
                    region?: (string|null);

                    /** SetIamPolicyNodeTemplateRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyNodeTemplateRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyNodeTemplateRequest. */
                class SetIamPolicyNodeTemplateRequest implements ISetIamPolicyNodeTemplateRequest {

                    /**
                     * Constructs a new SetIamPolicyNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyNodeTemplateRequest);

                    /** SetIamPolicyNodeTemplateRequest project. */
                    public project: string;

                    /** SetIamPolicyNodeTemplateRequest region. */
                    public region: string;

                    /** SetIamPolicyNodeTemplateRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyNodeTemplateRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyNodeTemplateRequest): google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest;

                    /**
                     * Encodes the specified SetIamPolicyNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest.verify|verify} messages.
                     * @param message SetIamPolicyNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest.verify|verify} messages.
                     * @param message SetIamPolicyNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest;

                    /**
                     * Decodes a SetIamPolicyNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest;

                    /**
                     * Verifies a SetIamPolicyNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionBackendServiceRequest. */
                interface ISetIamPolicyRegionBackendServiceRequest {

                    /** SetIamPolicyRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionBackendServiceRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionBackendServiceRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionBackendServiceRequest. */
                class SetIamPolicyRegionBackendServiceRequest implements ISetIamPolicyRegionBackendServiceRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyRegionBackendServiceRequest);

                    /** SetIamPolicyRegionBackendServiceRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionBackendServiceRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionBackendServiceRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionBackendServiceRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyRegionBackendServiceRequest): google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Decodes a SetIamPolicyRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Verifies a SetIamPolicyRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionDiskRequest. */
                interface ISetIamPolicyRegionDiskRequest {

                    /** SetIamPolicyRegionDiskRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionDiskRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionDiskRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionDiskRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionDiskRequest. */
                class SetIamPolicyRegionDiskRequest implements ISetIamPolicyRegionDiskRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyRegionDiskRequest);

                    /** SetIamPolicyRegionDiskRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionDiskRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionDiskRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionDiskRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyRegionDiskRequest): google.cloud.compute.v1.SetIamPolicyRegionDiskRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyRegionDiskRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyRegionDiskRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyRegionDiskRequest;

                    /**
                     * Decodes a SetIamPolicyRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyRegionDiskRequest;

                    /**
                     * Verifies a SetIamPolicyRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyRegionDiskRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionInstantSnapshotRequest. */
                interface ISetIamPolicyRegionInstantSnapshotRequest {

                    /** SetIamPolicyRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionInstantSnapshotRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionInstantSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionInstantSnapshotRequest. */
                class SetIamPolicyRegionInstantSnapshotRequest implements ISetIamPolicyRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyRegionInstantSnapshotRequest);

                    /** SetIamPolicyRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionInstantSnapshotRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionInstantSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyRegionInstantSnapshotRequest): google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Decodes a SetIamPolicyRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Verifies a SetIamPolicyRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionNetworkFirewallPolicyRequest. */
                interface ISetIamPolicyRegionNetworkFirewallPolicyRequest {

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionNetworkFirewallPolicyRequest. */
                class SetIamPolicyRegionNetworkFirewallPolicyRequest implements ISetIamPolicyRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyRegionNetworkFirewallPolicyRequest);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.SetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a SetIamPolicyRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a SetIamPolicyRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyReservationBlockRequest. */
                interface ISetIamPolicyReservationBlockRequest {

                    /** SetIamPolicyReservationBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** SetIamPolicyReservationBlockRequest project */
                    project?: (string|null);

                    /** SetIamPolicyReservationBlockRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyReservationBlockRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyReservationBlockRequest zoneSetNestedPolicyRequestResource */
                    zoneSetNestedPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetNestedPolicyRequest|null);
                }

                /** Represents a SetIamPolicyReservationBlockRequest. */
                class SetIamPolicyReservationBlockRequest implements ISetIamPolicyReservationBlockRequest {

                    /**
                     * Constructs a new SetIamPolicyReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyReservationBlockRequest);

                    /** SetIamPolicyReservationBlockRequest parentResource. */
                    public parentResource: string;

                    /** SetIamPolicyReservationBlockRequest project. */
                    public project: string;

                    /** SetIamPolicyReservationBlockRequest resource. */
                    public resource: string;

                    /** SetIamPolicyReservationBlockRequest zone. */
                    public zone: string;

                    /** SetIamPolicyReservationBlockRequest zoneSetNestedPolicyRequestResource. */
                    public zoneSetNestedPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetNestedPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyReservationBlockRequest): google.cloud.compute.v1.SetIamPolicyReservationBlockRequest;

                    /**
                     * Encodes the specified SetIamPolicyReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyReservationBlockRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyReservationBlockRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyReservationBlockRequest;

                    /**
                     * Decodes a SetIamPolicyReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyReservationBlockRequest;

                    /**
                     * Verifies a SetIamPolicyReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyReservationBlockRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyReservationRequest. */
                interface ISetIamPolicyReservationRequest {

                    /** SetIamPolicyReservationRequest project */
                    project?: (string|null);

                    /** SetIamPolicyReservationRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyReservationRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyReservationRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyReservationRequest. */
                class SetIamPolicyReservationRequest implements ISetIamPolicyReservationRequest {

                    /**
                     * Constructs a new SetIamPolicyReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyReservationRequest);

                    /** SetIamPolicyReservationRequest project. */
                    public project: string;

                    /** SetIamPolicyReservationRequest resource. */
                    public resource: string;

                    /** SetIamPolicyReservationRequest zone. */
                    public zone: string;

                    /** SetIamPolicyReservationRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyReservationRequest): google.cloud.compute.v1.SetIamPolicyReservationRequest;

                    /**
                     * Encodes the specified SetIamPolicyReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyReservationRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyReservationRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyReservationRequest;

                    /**
                     * Decodes a SetIamPolicyReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyReservationRequest;

                    /**
                     * Verifies a SetIamPolicyReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyReservationRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyReservationRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyReservationSubBlockRequest. */
                interface ISetIamPolicyReservationSubBlockRequest {

                    /** SetIamPolicyReservationSubBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** SetIamPolicyReservationSubBlockRequest project */
                    project?: (string|null);

                    /** SetIamPolicyReservationSubBlockRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyReservationSubBlockRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyReservationSubBlockRequest zoneSetNestedPolicyRequestResource */
                    zoneSetNestedPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetNestedPolicyRequest|null);
                }

                /** Represents a SetIamPolicyReservationSubBlockRequest. */
                class SetIamPolicyReservationSubBlockRequest implements ISetIamPolicyReservationSubBlockRequest {

                    /**
                     * Constructs a new SetIamPolicyReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyReservationSubBlockRequest);

                    /** SetIamPolicyReservationSubBlockRequest parentResource. */
                    public parentResource: string;

                    /** SetIamPolicyReservationSubBlockRequest project. */
                    public project: string;

                    /** SetIamPolicyReservationSubBlockRequest resource. */
                    public resource: string;

                    /** SetIamPolicyReservationSubBlockRequest zone. */
                    public zone: string;

                    /** SetIamPolicyReservationSubBlockRequest zoneSetNestedPolicyRequestResource. */
                    public zoneSetNestedPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetNestedPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyReservationSubBlockRequest): google.cloud.compute.v1.SetIamPolicyReservationSubBlockRequest;

                    /**
                     * Encodes the specified SetIamPolicyReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyReservationSubBlockRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyReservationSubBlockRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyReservationSubBlockRequest;

                    /**
                     * Decodes a SetIamPolicyReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyReservationSubBlockRequest;

                    /**
                     * Verifies a SetIamPolicyReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyResourcePolicyRequest. */
                interface ISetIamPolicyResourcePolicyRequest {

                    /** SetIamPolicyResourcePolicyRequest project */
                    project?: (string|null);

                    /** SetIamPolicyResourcePolicyRequest region */
                    region?: (string|null);

                    /** SetIamPolicyResourcePolicyRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyResourcePolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyResourcePolicyRequest. */
                class SetIamPolicyResourcePolicyRequest implements ISetIamPolicyResourcePolicyRequest {

                    /**
                     * Constructs a new SetIamPolicyResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyResourcePolicyRequest);

                    /** SetIamPolicyResourcePolicyRequest project. */
                    public project: string;

                    /** SetIamPolicyResourcePolicyRequest region. */
                    public region: string;

                    /** SetIamPolicyResourcePolicyRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyResourcePolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyResourcePolicyRequest): google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest;

                    /**
                     * Encodes the specified SetIamPolicyResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest;

                    /**
                     * Decodes a SetIamPolicyResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest;

                    /**
                     * Verifies a SetIamPolicyResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyServiceAttachmentRequest. */
                interface ISetIamPolicyServiceAttachmentRequest {

                    /** SetIamPolicyServiceAttachmentRequest project */
                    project?: (string|null);

                    /** SetIamPolicyServiceAttachmentRequest region */
                    region?: (string|null);

                    /** SetIamPolicyServiceAttachmentRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyServiceAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyServiceAttachmentRequest. */
                class SetIamPolicyServiceAttachmentRequest implements ISetIamPolicyServiceAttachmentRequest {

                    /**
                     * Constructs a new SetIamPolicyServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyServiceAttachmentRequest);

                    /** SetIamPolicyServiceAttachmentRequest project. */
                    public project: string;

                    /** SetIamPolicyServiceAttachmentRequest region. */
                    public region: string;

                    /** SetIamPolicyServiceAttachmentRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyServiceAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyServiceAttachmentRequest): google.cloud.compute.v1.SetIamPolicyServiceAttachmentRequest;

                    /**
                     * Encodes the specified SetIamPolicyServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyServiceAttachmentRequest.verify|verify} messages.
                     * @param message SetIamPolicyServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyServiceAttachmentRequest.verify|verify} messages.
                     * @param message SetIamPolicyServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyServiceAttachmentRequest;

                    /**
                     * Decodes a SetIamPolicyServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyServiceAttachmentRequest;

                    /**
                     * Verifies a SetIamPolicyServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicySnapshotRequest. */
                interface ISetIamPolicySnapshotRequest {

                    /** SetIamPolicySnapshotRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicySnapshotRequest project */
                    project?: (string|null);

                    /** SetIamPolicySnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicySnapshotRequest. */
                class SetIamPolicySnapshotRequest implements ISetIamPolicySnapshotRequest {

                    /**
                     * Constructs a new SetIamPolicySnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicySnapshotRequest);

                    /** SetIamPolicySnapshotRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicySnapshotRequest project. */
                    public project: string;

                    /** SetIamPolicySnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicySnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicySnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicySnapshotRequest): google.cloud.compute.v1.SetIamPolicySnapshotRequest;

                    /**
                     * Encodes the specified SetIamPolicySnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicySnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicySnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicySnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicySnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicySnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicySnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicySnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicySnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicySnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicySnapshotRequest;

                    /**
                     * Decodes a SetIamPolicySnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicySnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicySnapshotRequest;

                    /**
                     * Verifies a SetIamPolicySnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicySnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicySnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicySnapshotRequest;

                    /**
                     * Creates a plain object from a SetIamPolicySnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicySnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicySnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicySnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicySnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyStoragePoolRequest. */
                interface ISetIamPolicyStoragePoolRequest {

                    /** SetIamPolicyStoragePoolRequest project */
                    project?: (string|null);

                    /** SetIamPolicyStoragePoolRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyStoragePoolRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyStoragePoolRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyStoragePoolRequest. */
                class SetIamPolicyStoragePoolRequest implements ISetIamPolicyStoragePoolRequest {

                    /**
                     * Constructs a new SetIamPolicyStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicyStoragePoolRequest);

                    /** SetIamPolicyStoragePoolRequest project. */
                    public project: string;

                    /** SetIamPolicyStoragePoolRequest resource. */
                    public resource: string;

                    /** SetIamPolicyStoragePoolRequest zone. */
                    public zone: string;

                    /** SetIamPolicyStoragePoolRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicyStoragePoolRequest): google.cloud.compute.v1.SetIamPolicyStoragePoolRequest;

                    /**
                     * Encodes the specified SetIamPolicyStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyStoragePoolRequest.verify|verify} messages.
                     * @param message SetIamPolicyStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicyStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicyStoragePoolRequest.verify|verify} messages.
                     * @param message SetIamPolicyStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicyStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicyStoragePoolRequest;

                    /**
                     * Decodes a SetIamPolicyStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicyStoragePoolRequest;

                    /**
                     * Verifies a SetIamPolicyStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicyStoragePoolRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicyStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicySubnetworkRequest. */
                interface ISetIamPolicySubnetworkRequest {

                    /** SetIamPolicySubnetworkRequest project */
                    project?: (string|null);

                    /** SetIamPolicySubnetworkRequest region */
                    region?: (string|null);

                    /** SetIamPolicySubnetworkRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicySubnetworkRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicySubnetworkRequest. */
                class SetIamPolicySubnetworkRequest implements ISetIamPolicySubnetworkRequest {

                    /**
                     * Constructs a new SetIamPolicySubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetIamPolicySubnetworkRequest);

                    /** SetIamPolicySubnetworkRequest project. */
                    public project: string;

                    /** SetIamPolicySubnetworkRequest region. */
                    public region: string;

                    /** SetIamPolicySubnetworkRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1.IRegionSetPolicyRequest|null);

                    /** SetIamPolicySubnetworkRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicySubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicySubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetIamPolicySubnetworkRequest): google.cloud.compute.v1.SetIamPolicySubnetworkRequest;

                    /**
                     * Encodes the specified SetIamPolicySubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicySubnetworkRequest.verify|verify} messages.
                     * @param message SetIamPolicySubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetIamPolicySubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicySubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetIamPolicySubnetworkRequest.verify|verify} messages.
                     * @param message SetIamPolicySubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetIamPolicySubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicySubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicySubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetIamPolicySubnetworkRequest;

                    /**
                     * Decodes a SetIamPolicySubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicySubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetIamPolicySubnetworkRequest;

                    /**
                     * Verifies a SetIamPolicySubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicySubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicySubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetIamPolicySubnetworkRequest;

                    /**
                     * Creates a plain object from a SetIamPolicySubnetworkRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicySubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetIamPolicySubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicySubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicySubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetInstanceTemplateInstanceGroupManagerRequest. */
                interface ISetInstanceTemplateInstanceGroupManagerRequest {

                    /** SetInstanceTemplateInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest instanceGroupManagersSetInstanceTemplateRequestResource */
                    instanceGroupManagersSetInstanceTemplateRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersSetInstanceTemplateRequest|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetInstanceTemplateInstanceGroupManagerRequest. */
                class SetInstanceTemplateInstanceGroupManagerRequest implements ISetInstanceTemplateInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetInstanceTemplateInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetInstanceTemplateInstanceGroupManagerRequest);

                    /** SetInstanceTemplateInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetInstanceTemplateInstanceGroupManagerRequest instanceGroupManagersSetInstanceTemplateRequestResource. */
                    public instanceGroupManagersSetInstanceTemplateRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersSetInstanceTemplateRequest|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetInstanceTemplateInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetInstanceTemplateInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetInstanceTemplateInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetInstanceTemplateInstanceGroupManagerRequest): google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetInstanceTemplateInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetInstanceTemplateInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetInstanceTemplateInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetInstanceTemplateInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetInstanceTemplateInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetInstanceTemplateInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetInstanceTemplateInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetInstanceTemplateInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetInstanceTemplateInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetInstanceTemplateInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetInstanceTemplateInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetInstanceTemplateInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetInstanceTemplateInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetInstanceTemplateInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetInstanceTemplateInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetInstanceTemplateInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetInstanceTemplateInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetInstanceTemplateRegionInstanceGroupManagerRequest. */
                interface ISetInstanceTemplateRegionInstanceGroupManagerRequest {

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetTemplateRequestResource */
                    regionInstanceGroupManagersSetTemplateRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersSetTemplateRequest|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetInstanceTemplateRegionInstanceGroupManagerRequest. */
                class SetInstanceTemplateRegionInstanceGroupManagerRequest implements ISetInstanceTemplateRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetInstanceTemplateRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetInstanceTemplateRegionInstanceGroupManagerRequest);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetTemplateRequestResource. */
                    public regionInstanceGroupManagersSetTemplateRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersSetTemplateRequest|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetInstanceTemplateRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetInstanceTemplateRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetInstanceTemplateRegionInstanceGroupManagerRequest): google.cloud.compute.v1.SetInstanceTemplateRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetInstanceTemplateRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.SetInstanceTemplateRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetInstanceTemplateRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetInstanceTemplateRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetInstanceTemplateRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetInstanceTemplateRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetInstanceTemplateRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetInstanceTemplateRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetInstanceTemplateRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetInstanceTemplateRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetInstanceTemplateRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetInstanceTemplateRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetInstanceTemplateRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetInstanceTemplateRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetInstanceTemplateRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetInstanceTemplateRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetInstanceTemplateRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetInstanceTemplateRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetInstanceTemplateRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetInstanceTemplateRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetInstanceTemplateRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetInstanceTemplateRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetInstanceTemplateRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsAddressRequest. */
                interface ISetLabelsAddressRequest {

                    /** SetLabelsAddressRequest project */
                    project?: (string|null);

                    /** SetLabelsAddressRequest region */
                    region?: (string|null);

                    /** SetLabelsAddressRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsAddressRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsAddressRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsAddressRequest. */
                class SetLabelsAddressRequest implements ISetLabelsAddressRequest {

                    /**
                     * Constructs a new SetLabelsAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsAddressRequest);

                    /** SetLabelsAddressRequest project. */
                    public project: string;

                    /** SetLabelsAddressRequest region. */
                    public region: string;

                    /** SetLabelsAddressRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsAddressRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsAddressRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsAddressRequest): google.cloud.compute.v1.SetLabelsAddressRequest;

                    /**
                     * Encodes the specified SetLabelsAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsAddressRequest.verify|verify} messages.
                     * @param message SetLabelsAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsAddressRequest.verify|verify} messages.
                     * @param message SetLabelsAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsAddressRequest;

                    /**
                     * Decodes a SetLabelsAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsAddressRequest;

                    /**
                     * Verifies a SetLabelsAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsAddressRequest;

                    /**
                     * Creates a plain object from a SetLabelsAddressRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsDiskRequest. */
                interface ISetLabelsDiskRequest {

                    /** SetLabelsDiskRequest project */
                    project?: (string|null);

                    /** SetLabelsDiskRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsDiskRequest resource */
                    resource?: (string|null);

                    /** SetLabelsDiskRequest zone */
                    zone?: (string|null);

                    /** SetLabelsDiskRequest zoneSetLabelsRequestResource */
                    zoneSetLabelsRequestResource?: (google.cloud.compute.v1.IZoneSetLabelsRequest|null);
                }

                /** Represents a SetLabelsDiskRequest. */
                class SetLabelsDiskRequest implements ISetLabelsDiskRequest {

                    /**
                     * Constructs a new SetLabelsDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsDiskRequest);

                    /** SetLabelsDiskRequest project. */
                    public project: string;

                    /** SetLabelsDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsDiskRequest resource. */
                    public resource: string;

                    /** SetLabelsDiskRequest zone. */
                    public zone: string;

                    /** SetLabelsDiskRequest zoneSetLabelsRequestResource. */
                    public zoneSetLabelsRequestResource?: (google.cloud.compute.v1.IZoneSetLabelsRequest|null);

                    /**
                     * Creates a new SetLabelsDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsDiskRequest): google.cloud.compute.v1.SetLabelsDiskRequest;

                    /**
                     * Encodes the specified SetLabelsDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsDiskRequest.verify|verify} messages.
                     * @param message SetLabelsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsDiskRequest.verify|verify} messages.
                     * @param message SetLabelsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsDiskRequest;

                    /**
                     * Decodes a SetLabelsDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsDiskRequest;

                    /**
                     * Verifies a SetLabelsDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsDiskRequest;

                    /**
                     * Creates a plain object from a SetLabelsDiskRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsExternalVpnGatewayRequest. */
                interface ISetLabelsExternalVpnGatewayRequest {

                    /** SetLabelsExternalVpnGatewayRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsExternalVpnGatewayRequest project */
                    project?: (string|null);

                    /** SetLabelsExternalVpnGatewayRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsExternalVpnGatewayRequest. */
                class SetLabelsExternalVpnGatewayRequest implements ISetLabelsExternalVpnGatewayRequest {

                    /**
                     * Constructs a new SetLabelsExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsExternalVpnGatewayRequest);

                    /** SetLabelsExternalVpnGatewayRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsExternalVpnGatewayRequest project. */
                    public project: string;

                    /** SetLabelsExternalVpnGatewayRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsExternalVpnGatewayRequest): google.cloud.compute.v1.SetLabelsExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified SetLabelsExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsExternalVpnGatewayRequest;

                    /**
                     * Decodes a SetLabelsExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsExternalVpnGatewayRequest;

                    /**
                     * Verifies a SetLabelsExternalVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from a SetLabelsExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsForwardingRuleRequest. */
                interface ISetLabelsForwardingRuleRequest {

                    /** SetLabelsForwardingRuleRequest project */
                    project?: (string|null);

                    /** SetLabelsForwardingRuleRequest region */
                    region?: (string|null);

                    /** SetLabelsForwardingRuleRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsForwardingRuleRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsForwardingRuleRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsForwardingRuleRequest. */
                class SetLabelsForwardingRuleRequest implements ISetLabelsForwardingRuleRequest {

                    /**
                     * Constructs a new SetLabelsForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsForwardingRuleRequest);

                    /** SetLabelsForwardingRuleRequest project. */
                    public project: string;

                    /** SetLabelsForwardingRuleRequest region. */
                    public region: string;

                    /** SetLabelsForwardingRuleRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsForwardingRuleRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsForwardingRuleRequest): google.cloud.compute.v1.SetLabelsForwardingRuleRequest;

                    /**
                     * Encodes the specified SetLabelsForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsForwardingRuleRequest.verify|verify} messages.
                     * @param message SetLabelsForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsForwardingRuleRequest.verify|verify} messages.
                     * @param message SetLabelsForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsForwardingRuleRequest;

                    /**
                     * Decodes a SetLabelsForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsForwardingRuleRequest;

                    /**
                     * Verifies a SetLabelsForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsForwardingRuleRequest;

                    /**
                     * Creates a plain object from a SetLabelsForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsGlobalAddressRequest. */
                interface ISetLabelsGlobalAddressRequest {

                    /** SetLabelsGlobalAddressRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsGlobalAddressRequest project */
                    project?: (string|null);

                    /** SetLabelsGlobalAddressRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsGlobalAddressRequest. */
                class SetLabelsGlobalAddressRequest implements ISetLabelsGlobalAddressRequest {

                    /**
                     * Constructs a new SetLabelsGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsGlobalAddressRequest);

                    /** SetLabelsGlobalAddressRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsGlobalAddressRequest project. */
                    public project: string;

                    /** SetLabelsGlobalAddressRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsGlobalAddressRequest): google.cloud.compute.v1.SetLabelsGlobalAddressRequest;

                    /**
                     * Encodes the specified SetLabelsGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsGlobalAddressRequest.verify|verify} messages.
                     * @param message SetLabelsGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsGlobalAddressRequest.verify|verify} messages.
                     * @param message SetLabelsGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsGlobalAddressRequest;

                    /**
                     * Decodes a SetLabelsGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsGlobalAddressRequest;

                    /**
                     * Verifies a SetLabelsGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsGlobalAddressRequest;

                    /**
                     * Creates a plain object from a SetLabelsGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsGlobalForwardingRuleRequest. */
                interface ISetLabelsGlobalForwardingRuleRequest {

                    /** SetLabelsGlobalForwardingRuleRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** SetLabelsGlobalForwardingRuleRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsGlobalForwardingRuleRequest. */
                class SetLabelsGlobalForwardingRuleRequest implements ISetLabelsGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new SetLabelsGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsGlobalForwardingRuleRequest);

                    /** SetLabelsGlobalForwardingRuleRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** SetLabelsGlobalForwardingRuleRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsGlobalForwardingRuleRequest): google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified SetLabelsGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message SetLabelsGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message SetLabelsGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest;

                    /**
                     * Decodes a SetLabelsGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest;

                    /**
                     * Verifies a SetLabelsGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a SetLabelsGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsImageRequest. */
                interface ISetLabelsImageRequest {

                    /** SetLabelsImageRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsImageRequest project */
                    project?: (string|null);

                    /** SetLabelsImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsImageRequest. */
                class SetLabelsImageRequest implements ISetLabelsImageRequest {

                    /**
                     * Constructs a new SetLabelsImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsImageRequest);

                    /** SetLabelsImageRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsImageRequest project. */
                    public project: string;

                    /** SetLabelsImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsImageRequest): google.cloud.compute.v1.SetLabelsImageRequest;

                    /**
                     * Encodes the specified SetLabelsImageRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsImageRequest.verify|verify} messages.
                     * @param message SetLabelsImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsImageRequest.verify|verify} messages.
                     * @param message SetLabelsImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsImageRequest;

                    /**
                     * Decodes a SetLabelsImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsImageRequest;

                    /**
                     * Verifies a SetLabelsImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsImageRequest;

                    /**
                     * Creates a plain object from a SetLabelsImageRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsInstanceRequest. */
                interface ISetLabelsInstanceRequest {

                    /** SetLabelsInstanceRequest instance */
                    instance?: (string|null);

                    /** SetLabelsInstanceRequest instancesSetLabelsRequestResource */
                    instancesSetLabelsRequestResource?: (google.cloud.compute.v1.IInstancesSetLabelsRequest|null);

                    /** SetLabelsInstanceRequest project */
                    project?: (string|null);

                    /** SetLabelsInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetLabelsInstanceRequest. */
                class SetLabelsInstanceRequest implements ISetLabelsInstanceRequest {

                    /**
                     * Constructs a new SetLabelsInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsInstanceRequest);

                    /** SetLabelsInstanceRequest instance. */
                    public instance: string;

                    /** SetLabelsInstanceRequest instancesSetLabelsRequestResource. */
                    public instancesSetLabelsRequestResource?: (google.cloud.compute.v1.IInstancesSetLabelsRequest|null);

                    /** SetLabelsInstanceRequest project. */
                    public project: string;

                    /** SetLabelsInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetLabelsInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsInstanceRequest): google.cloud.compute.v1.SetLabelsInstanceRequest;

                    /**
                     * Encodes the specified SetLabelsInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsInstanceRequest.verify|verify} messages.
                     * @param message SetLabelsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsInstanceRequest.verify|verify} messages.
                     * @param message SetLabelsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsInstanceRequest;

                    /**
                     * Decodes a SetLabelsInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsInstanceRequest;

                    /**
                     * Verifies a SetLabelsInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsInstanceRequest;

                    /**
                     * Creates a plain object from a SetLabelsInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsInstantSnapshotRequest. */
                interface ISetLabelsInstantSnapshotRequest {

                    /** SetLabelsInstantSnapshotRequest project */
                    project?: (string|null);

                    /** SetLabelsInstantSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** SetLabelsInstantSnapshotRequest zone */
                    zone?: (string|null);

                    /** SetLabelsInstantSnapshotRequest zoneSetLabelsRequestResource */
                    zoneSetLabelsRequestResource?: (google.cloud.compute.v1.IZoneSetLabelsRequest|null);
                }

                /** Represents a SetLabelsInstantSnapshotRequest. */
                class SetLabelsInstantSnapshotRequest implements ISetLabelsInstantSnapshotRequest {

                    /**
                     * Constructs a new SetLabelsInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsInstantSnapshotRequest);

                    /** SetLabelsInstantSnapshotRequest project. */
                    public project: string;

                    /** SetLabelsInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsInstantSnapshotRequest resource. */
                    public resource: string;

                    /** SetLabelsInstantSnapshotRequest zone. */
                    public zone: string;

                    /** SetLabelsInstantSnapshotRequest zoneSetLabelsRequestResource. */
                    public zoneSetLabelsRequestResource?: (google.cloud.compute.v1.IZoneSetLabelsRequest|null);

                    /**
                     * Creates a new SetLabelsInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsInstantSnapshotRequest): google.cloud.compute.v1.SetLabelsInstantSnapshotRequest;

                    /**
                     * Encodes the specified SetLabelsInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsInstantSnapshotRequest;

                    /**
                     * Decodes a SetLabelsInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsInstantSnapshotRequest;

                    /**
                     * Verifies a SetLabelsInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a SetLabelsInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsInterconnectAttachmentRequest. */
                interface ISetLabelsInterconnectAttachmentRequest {

                    /** SetLabelsInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** SetLabelsInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** SetLabelsInterconnectAttachmentRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsInterconnectAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsInterconnectAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsInterconnectAttachmentRequest. */
                class SetLabelsInterconnectAttachmentRequest implements ISetLabelsInterconnectAttachmentRequest {

                    /**
                     * Constructs a new SetLabelsInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsInterconnectAttachmentRequest);

                    /** SetLabelsInterconnectAttachmentRequest project. */
                    public project: string;

                    /** SetLabelsInterconnectAttachmentRequest region. */
                    public region: string;

                    /** SetLabelsInterconnectAttachmentRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsInterconnectAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsInterconnectAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsInterconnectAttachmentRequest): google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified SetLabelsInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message SetLabelsInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message SetLabelsInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest;

                    /**
                     * Decodes a SetLabelsInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest;

                    /**
                     * Verifies a SetLabelsInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a SetLabelsInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsInterconnectRequest. */
                interface ISetLabelsInterconnectRequest {

                    /** SetLabelsInterconnectRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsInterconnectRequest project */
                    project?: (string|null);

                    /** SetLabelsInterconnectRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsInterconnectRequest. */
                class SetLabelsInterconnectRequest implements ISetLabelsInterconnectRequest {

                    /**
                     * Constructs a new SetLabelsInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsInterconnectRequest);

                    /** SetLabelsInterconnectRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsInterconnectRequest project. */
                    public project: string;

                    /** SetLabelsInterconnectRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsInterconnectRequest): google.cloud.compute.v1.SetLabelsInterconnectRequest;

                    /**
                     * Encodes the specified SetLabelsInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsInterconnectRequest.verify|verify} messages.
                     * @param message SetLabelsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsInterconnectRequest.verify|verify} messages.
                     * @param message SetLabelsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsInterconnectRequest;

                    /**
                     * Decodes a SetLabelsInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsInterconnectRequest;

                    /**
                     * Verifies a SetLabelsInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsInterconnectRequest;

                    /**
                     * Creates a plain object from a SetLabelsInterconnectRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsMachineImageRequest. */
                interface ISetLabelsMachineImageRequest {

                    /** SetLabelsMachineImageRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsMachineImageRequest project */
                    project?: (string|null);

                    /** SetLabelsMachineImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsMachineImageRequest. */
                class SetLabelsMachineImageRequest implements ISetLabelsMachineImageRequest {

                    /**
                     * Constructs a new SetLabelsMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsMachineImageRequest);

                    /** SetLabelsMachineImageRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsMachineImageRequest project. */
                    public project: string;

                    /** SetLabelsMachineImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsMachineImageRequest): google.cloud.compute.v1.SetLabelsMachineImageRequest;

                    /**
                     * Encodes the specified SetLabelsMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsMachineImageRequest.verify|verify} messages.
                     * @param message SetLabelsMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsMachineImageRequest.verify|verify} messages.
                     * @param message SetLabelsMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsMachineImageRequest;

                    /**
                     * Decodes a SetLabelsMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsMachineImageRequest;

                    /**
                     * Verifies a SetLabelsMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsMachineImageRequest;

                    /**
                     * Creates a plain object from a SetLabelsMachineImageRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsRegionDiskRequest. */
                interface ISetLabelsRegionDiskRequest {

                    /** SetLabelsRegionDiskRequest project */
                    project?: (string|null);

                    /** SetLabelsRegionDiskRequest region */
                    region?: (string|null);

                    /** SetLabelsRegionDiskRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionDiskRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsRegionDiskRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsRegionDiskRequest. */
                class SetLabelsRegionDiskRequest implements ISetLabelsRegionDiskRequest {

                    /**
                     * Constructs a new SetLabelsRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsRegionDiskRequest);

                    /** SetLabelsRegionDiskRequest project. */
                    public project: string;

                    /** SetLabelsRegionDiskRequest region. */
                    public region: string;

                    /** SetLabelsRegionDiskRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsRegionDiskRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsRegionDiskRequest): google.cloud.compute.v1.SetLabelsRegionDiskRequest;

                    /**
                     * Encodes the specified SetLabelsRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsRegionDiskRequest.verify|verify} messages.
                     * @param message SetLabelsRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsRegionDiskRequest.verify|verify} messages.
                     * @param message SetLabelsRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsRegionDiskRequest;

                    /**
                     * Decodes a SetLabelsRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsRegionDiskRequest;

                    /**
                     * Verifies a SetLabelsRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsRegionDiskRequest;

                    /**
                     * Creates a plain object from a SetLabelsRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsRegionInstantSnapshotRequest. */
                interface ISetLabelsRegionInstantSnapshotRequest {

                    /** SetLabelsRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** SetLabelsRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** SetLabelsRegionInstantSnapshotRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionInstantSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsRegionInstantSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsRegionInstantSnapshotRequest. */
                class SetLabelsRegionInstantSnapshotRequest implements ISetLabelsRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new SetLabelsRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsRegionInstantSnapshotRequest);

                    /** SetLabelsRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** SetLabelsRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** SetLabelsRegionInstantSnapshotRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsRegionInstantSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsRegionInstantSnapshotRequest): google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified SetLabelsRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest;

                    /**
                     * Decodes a SetLabelsRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest;

                    /**
                     * Verifies a SetLabelsRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a SetLabelsRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsRegionSecurityPolicyRequest. */
                interface ISetLabelsRegionSecurityPolicyRequest {

                    /** SetLabelsRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** SetLabelsRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** SetLabelsRegionSecurityPolicyRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsRegionSecurityPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsRegionSecurityPolicyRequest. */
                class SetLabelsRegionSecurityPolicyRequest implements ISetLabelsRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new SetLabelsRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsRegionSecurityPolicyRequest);

                    /** SetLabelsRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** SetLabelsRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** SetLabelsRegionSecurityPolicyRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsRegionSecurityPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsRegionSecurityPolicyRequest): google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified SetLabelsRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message SetLabelsRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message SetLabelsRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest;

                    /**
                     * Decodes a SetLabelsRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest;

                    /**
                     * Verifies a SetLabelsRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a SetLabelsRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsSecurityPolicyRequest. */
                interface ISetLabelsSecurityPolicyRequest {

                    /** SetLabelsSecurityPolicyRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsSecurityPolicyRequest project */
                    project?: (string|null);

                    /** SetLabelsSecurityPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsSecurityPolicyRequest. */
                class SetLabelsSecurityPolicyRequest implements ISetLabelsSecurityPolicyRequest {

                    /**
                     * Constructs a new SetLabelsSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsSecurityPolicyRequest);

                    /** SetLabelsSecurityPolicyRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsSecurityPolicyRequest project. */
                    public project: string;

                    /** SetLabelsSecurityPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsSecurityPolicyRequest): google.cloud.compute.v1.SetLabelsSecurityPolicyRequest;

                    /**
                     * Encodes the specified SetLabelsSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsSecurityPolicyRequest.verify|verify} messages.
                     * @param message SetLabelsSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsSecurityPolicyRequest.verify|verify} messages.
                     * @param message SetLabelsSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsSecurityPolicyRequest;

                    /**
                     * Decodes a SetLabelsSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsSecurityPolicyRequest;

                    /**
                     * Verifies a SetLabelsSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a SetLabelsSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsSnapshotRequest. */
                interface ISetLabelsSnapshotRequest {

                    /** SetLabelsSnapshotRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsSnapshotRequest project */
                    project?: (string|null);

                    /** SetLabelsSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsSnapshotRequest. */
                class SetLabelsSnapshotRequest implements ISetLabelsSnapshotRequest {

                    /**
                     * Constructs a new SetLabelsSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsSnapshotRequest);

                    /** SetLabelsSnapshotRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1.IGlobalSetLabelsRequest|null);

                    /** SetLabelsSnapshotRequest project. */
                    public project: string;

                    /** SetLabelsSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsSnapshotRequest): google.cloud.compute.v1.SetLabelsSnapshotRequest;

                    /**
                     * Encodes the specified SetLabelsSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsSnapshotRequest;

                    /**
                     * Decodes a SetLabelsSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsSnapshotRequest;

                    /**
                     * Verifies a SetLabelsSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsSnapshotRequest;

                    /**
                     * Creates a plain object from a SetLabelsSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsTargetVpnGatewayRequest. */
                interface ISetLabelsTargetVpnGatewayRequest {

                    /** SetLabelsTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** SetLabelsTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** SetLabelsTargetVpnGatewayRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsTargetVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsTargetVpnGatewayRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsTargetVpnGatewayRequest. */
                class SetLabelsTargetVpnGatewayRequest implements ISetLabelsTargetVpnGatewayRequest {

                    /**
                     * Constructs a new SetLabelsTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsTargetVpnGatewayRequest);

                    /** SetLabelsTargetVpnGatewayRequest project. */
                    public project: string;

                    /** SetLabelsTargetVpnGatewayRequest region. */
                    public region: string;

                    /** SetLabelsTargetVpnGatewayRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsTargetVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsTargetVpnGatewayRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsTargetVpnGatewayRequest): google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified SetLabelsTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest;

                    /**
                     * Decodes a SetLabelsTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest;

                    /**
                     * Verifies a SetLabelsTargetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a SetLabelsTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsVpnGatewayRequest. */
                interface ISetLabelsVpnGatewayRequest {

                    /** SetLabelsVpnGatewayRequest project */
                    project?: (string|null);

                    /** SetLabelsVpnGatewayRequest region */
                    region?: (string|null);

                    /** SetLabelsVpnGatewayRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsVpnGatewayRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsVpnGatewayRequest. */
                class SetLabelsVpnGatewayRequest implements ISetLabelsVpnGatewayRequest {

                    /**
                     * Constructs a new SetLabelsVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsVpnGatewayRequest);

                    /** SetLabelsVpnGatewayRequest project. */
                    public project: string;

                    /** SetLabelsVpnGatewayRequest region. */
                    public region: string;

                    /** SetLabelsVpnGatewayRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsVpnGatewayRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsVpnGatewayRequest): google.cloud.compute.v1.SetLabelsVpnGatewayRequest;

                    /**
                     * Encodes the specified SetLabelsVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsVpnGatewayRequest;

                    /**
                     * Decodes a SetLabelsVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsVpnGatewayRequest;

                    /**
                     * Verifies a SetLabelsVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsVpnGatewayRequest;

                    /**
                     * Creates a plain object from a SetLabelsVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsVpnTunnelRequest. */
                interface ISetLabelsVpnTunnelRequest {

                    /** SetLabelsVpnTunnelRequest project */
                    project?: (string|null);

                    /** SetLabelsVpnTunnelRequest region */
                    region?: (string|null);

                    /** SetLabelsVpnTunnelRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsVpnTunnelRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsVpnTunnelRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsVpnTunnelRequest. */
                class SetLabelsVpnTunnelRequest implements ISetLabelsVpnTunnelRequest {

                    /**
                     * Constructs a new SetLabelsVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetLabelsVpnTunnelRequest);

                    /** SetLabelsVpnTunnelRequest project. */
                    public project: string;

                    /** SetLabelsVpnTunnelRequest region. */
                    public region: string;

                    /** SetLabelsVpnTunnelRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1.IRegionSetLabelsRequest|null);

                    /** SetLabelsVpnTunnelRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsVpnTunnelRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetLabelsVpnTunnelRequest): google.cloud.compute.v1.SetLabelsVpnTunnelRequest;

                    /**
                     * Encodes the specified SetLabelsVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1.SetLabelsVpnTunnelRequest.verify|verify} messages.
                     * @param message SetLabelsVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetLabelsVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetLabelsVpnTunnelRequest.verify|verify} messages.
                     * @param message SetLabelsVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetLabelsVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetLabelsVpnTunnelRequest;

                    /**
                     * Decodes a SetLabelsVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetLabelsVpnTunnelRequest;

                    /**
                     * Verifies a SetLabelsVpnTunnelRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetLabelsVpnTunnelRequest;

                    /**
                     * Creates a plain object from a SetLabelsVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetLabelsVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetMachineResourcesInstanceRequest. */
                interface ISetMachineResourcesInstanceRequest {

                    /** SetMachineResourcesInstanceRequest instance */
                    instance?: (string|null);

                    /** SetMachineResourcesInstanceRequest instancesSetMachineResourcesRequestResource */
                    instancesSetMachineResourcesRequestResource?: (google.cloud.compute.v1.IInstancesSetMachineResourcesRequest|null);

                    /** SetMachineResourcesInstanceRequest project */
                    project?: (string|null);

                    /** SetMachineResourcesInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetMachineResourcesInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetMachineResourcesInstanceRequest. */
                class SetMachineResourcesInstanceRequest implements ISetMachineResourcesInstanceRequest {

                    /**
                     * Constructs a new SetMachineResourcesInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetMachineResourcesInstanceRequest);

                    /** SetMachineResourcesInstanceRequest instance. */
                    public instance: string;

                    /** SetMachineResourcesInstanceRequest instancesSetMachineResourcesRequestResource. */
                    public instancesSetMachineResourcesRequestResource?: (google.cloud.compute.v1.IInstancesSetMachineResourcesRequest|null);

                    /** SetMachineResourcesInstanceRequest project. */
                    public project: string;

                    /** SetMachineResourcesInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetMachineResourcesInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetMachineResourcesInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetMachineResourcesInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetMachineResourcesInstanceRequest): google.cloud.compute.v1.SetMachineResourcesInstanceRequest;

                    /**
                     * Encodes the specified SetMachineResourcesInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetMachineResourcesInstanceRequest.verify|verify} messages.
                     * @param message SetMachineResourcesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetMachineResourcesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetMachineResourcesInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetMachineResourcesInstanceRequest.verify|verify} messages.
                     * @param message SetMachineResourcesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetMachineResourcesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetMachineResourcesInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetMachineResourcesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetMachineResourcesInstanceRequest;

                    /**
                     * Decodes a SetMachineResourcesInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetMachineResourcesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetMachineResourcesInstanceRequest;

                    /**
                     * Verifies a SetMachineResourcesInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetMachineResourcesInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetMachineResourcesInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetMachineResourcesInstanceRequest;

                    /**
                     * Creates a plain object from a SetMachineResourcesInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetMachineResourcesInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetMachineResourcesInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetMachineResourcesInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetMachineResourcesInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetMachineTypeInstanceRequest. */
                interface ISetMachineTypeInstanceRequest {

                    /** SetMachineTypeInstanceRequest instance */
                    instance?: (string|null);

                    /** SetMachineTypeInstanceRequest instancesSetMachineTypeRequestResource */
                    instancesSetMachineTypeRequestResource?: (google.cloud.compute.v1.IInstancesSetMachineTypeRequest|null);

                    /** SetMachineTypeInstanceRequest project */
                    project?: (string|null);

                    /** SetMachineTypeInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetMachineTypeInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetMachineTypeInstanceRequest. */
                class SetMachineTypeInstanceRequest implements ISetMachineTypeInstanceRequest {

                    /**
                     * Constructs a new SetMachineTypeInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetMachineTypeInstanceRequest);

                    /** SetMachineTypeInstanceRequest instance. */
                    public instance: string;

                    /** SetMachineTypeInstanceRequest instancesSetMachineTypeRequestResource. */
                    public instancesSetMachineTypeRequestResource?: (google.cloud.compute.v1.IInstancesSetMachineTypeRequest|null);

                    /** SetMachineTypeInstanceRequest project. */
                    public project: string;

                    /** SetMachineTypeInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetMachineTypeInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetMachineTypeInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetMachineTypeInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetMachineTypeInstanceRequest): google.cloud.compute.v1.SetMachineTypeInstanceRequest;

                    /**
                     * Encodes the specified SetMachineTypeInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetMachineTypeInstanceRequest.verify|verify} messages.
                     * @param message SetMachineTypeInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetMachineTypeInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetMachineTypeInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetMachineTypeInstanceRequest.verify|verify} messages.
                     * @param message SetMachineTypeInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetMachineTypeInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetMachineTypeInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetMachineTypeInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetMachineTypeInstanceRequest;

                    /**
                     * Decodes a SetMachineTypeInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetMachineTypeInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetMachineTypeInstanceRequest;

                    /**
                     * Verifies a SetMachineTypeInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetMachineTypeInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetMachineTypeInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetMachineTypeInstanceRequest;

                    /**
                     * Creates a plain object from a SetMachineTypeInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetMachineTypeInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetMachineTypeInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetMachineTypeInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetMachineTypeInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetMetadataInstanceRequest. */
                interface ISetMetadataInstanceRequest {

                    /** SetMetadataInstanceRequest instance */
                    instance?: (string|null);

                    /** SetMetadataInstanceRequest metadataResource */
                    metadataResource?: (google.cloud.compute.v1.IMetadata|null);

                    /** SetMetadataInstanceRequest project */
                    project?: (string|null);

                    /** SetMetadataInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetMetadataInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetMetadataInstanceRequest. */
                class SetMetadataInstanceRequest implements ISetMetadataInstanceRequest {

                    /**
                     * Constructs a new SetMetadataInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetMetadataInstanceRequest);

                    /** SetMetadataInstanceRequest instance. */
                    public instance: string;

                    /** SetMetadataInstanceRequest metadataResource. */
                    public metadataResource?: (google.cloud.compute.v1.IMetadata|null);

                    /** SetMetadataInstanceRequest project. */
                    public project: string;

                    /** SetMetadataInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetMetadataInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetMetadataInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetMetadataInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetMetadataInstanceRequest): google.cloud.compute.v1.SetMetadataInstanceRequest;

                    /**
                     * Encodes the specified SetMetadataInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetMetadataInstanceRequest.verify|verify} messages.
                     * @param message SetMetadataInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetMetadataInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetMetadataInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetMetadataInstanceRequest.verify|verify} messages.
                     * @param message SetMetadataInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetMetadataInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetMetadataInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetMetadataInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetMetadataInstanceRequest;

                    /**
                     * Decodes a SetMetadataInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetMetadataInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetMetadataInstanceRequest;

                    /**
                     * Verifies a SetMetadataInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetMetadataInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetMetadataInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetMetadataInstanceRequest;

                    /**
                     * Creates a plain object from a SetMetadataInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetMetadataInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetMetadataInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetMetadataInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetMetadataInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetMinCpuPlatformInstanceRequest. */
                interface ISetMinCpuPlatformInstanceRequest {

                    /** SetMinCpuPlatformInstanceRequest instance */
                    instance?: (string|null);

                    /** SetMinCpuPlatformInstanceRequest instancesSetMinCpuPlatformRequestResource */
                    instancesSetMinCpuPlatformRequestResource?: (google.cloud.compute.v1.IInstancesSetMinCpuPlatformRequest|null);

                    /** SetMinCpuPlatformInstanceRequest project */
                    project?: (string|null);

                    /** SetMinCpuPlatformInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetMinCpuPlatformInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetMinCpuPlatformInstanceRequest. */
                class SetMinCpuPlatformInstanceRequest implements ISetMinCpuPlatformInstanceRequest {

                    /**
                     * Constructs a new SetMinCpuPlatformInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetMinCpuPlatformInstanceRequest);

                    /** SetMinCpuPlatformInstanceRequest instance. */
                    public instance: string;

                    /** SetMinCpuPlatformInstanceRequest instancesSetMinCpuPlatformRequestResource. */
                    public instancesSetMinCpuPlatformRequestResource?: (google.cloud.compute.v1.IInstancesSetMinCpuPlatformRequest|null);

                    /** SetMinCpuPlatformInstanceRequest project. */
                    public project: string;

                    /** SetMinCpuPlatformInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetMinCpuPlatformInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetMinCpuPlatformInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetMinCpuPlatformInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetMinCpuPlatformInstanceRequest): google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest;

                    /**
                     * Encodes the specified SetMinCpuPlatformInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest.verify|verify} messages.
                     * @param message SetMinCpuPlatformInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetMinCpuPlatformInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetMinCpuPlatformInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest.verify|verify} messages.
                     * @param message SetMinCpuPlatformInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetMinCpuPlatformInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetMinCpuPlatformInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetMinCpuPlatformInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest;

                    /**
                     * Decodes a SetMinCpuPlatformInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetMinCpuPlatformInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest;

                    /**
                     * Verifies a SetMinCpuPlatformInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetMinCpuPlatformInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetMinCpuPlatformInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest;

                    /**
                     * Creates a plain object from a SetMinCpuPlatformInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetMinCpuPlatformInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetMinCpuPlatformInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetMinCpuPlatformInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetNameInstanceRequest. */
                interface ISetNameInstanceRequest {

                    /** SetNameInstanceRequest instance */
                    instance?: (string|null);

                    /** SetNameInstanceRequest instancesSetNameRequestResource */
                    instancesSetNameRequestResource?: (google.cloud.compute.v1.IInstancesSetNameRequest|null);

                    /** SetNameInstanceRequest project */
                    project?: (string|null);

                    /** SetNameInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetNameInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetNameInstanceRequest. */
                class SetNameInstanceRequest implements ISetNameInstanceRequest {

                    /**
                     * Constructs a new SetNameInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetNameInstanceRequest);

                    /** SetNameInstanceRequest instance. */
                    public instance: string;

                    /** SetNameInstanceRequest instancesSetNameRequestResource. */
                    public instancesSetNameRequestResource?: (google.cloud.compute.v1.IInstancesSetNameRequest|null);

                    /** SetNameInstanceRequest project. */
                    public project: string;

                    /** SetNameInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetNameInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetNameInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetNameInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetNameInstanceRequest): google.cloud.compute.v1.SetNameInstanceRequest;

                    /**
                     * Encodes the specified SetNameInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetNameInstanceRequest.verify|verify} messages.
                     * @param message SetNameInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetNameInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetNameInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetNameInstanceRequest.verify|verify} messages.
                     * @param message SetNameInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetNameInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetNameInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetNameInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetNameInstanceRequest;

                    /**
                     * Decodes a SetNameInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetNameInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetNameInstanceRequest;

                    /**
                     * Verifies a SetNameInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetNameInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetNameInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetNameInstanceRequest;

                    /**
                     * Creates a plain object from a SetNameInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetNameInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetNameInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetNameInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetNameInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetNamedPortsInstanceGroupRequest. */
                interface ISetNamedPortsInstanceGroupRequest {

                    /** SetNamedPortsInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** SetNamedPortsInstanceGroupRequest instanceGroupsSetNamedPortsRequestResource */
                    instanceGroupsSetNamedPortsRequestResource?: (google.cloud.compute.v1.IInstanceGroupsSetNamedPortsRequest|null);

                    /** SetNamedPortsInstanceGroupRequest project */
                    project?: (string|null);

                    /** SetNamedPortsInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** SetNamedPortsInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetNamedPortsInstanceGroupRequest. */
                class SetNamedPortsInstanceGroupRequest implements ISetNamedPortsInstanceGroupRequest {

                    /**
                     * Constructs a new SetNamedPortsInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetNamedPortsInstanceGroupRequest);

                    /** SetNamedPortsInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** SetNamedPortsInstanceGroupRequest instanceGroupsSetNamedPortsRequestResource. */
                    public instanceGroupsSetNamedPortsRequestResource?: (google.cloud.compute.v1.IInstanceGroupsSetNamedPortsRequest|null);

                    /** SetNamedPortsInstanceGroupRequest project. */
                    public project: string;

                    /** SetNamedPortsInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** SetNamedPortsInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetNamedPortsInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetNamedPortsInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetNamedPortsInstanceGroupRequest): google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest;

                    /**
                     * Encodes the specified SetNamedPortsInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest.verify|verify} messages.
                     * @param message SetNamedPortsInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetNamedPortsInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetNamedPortsInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest.verify|verify} messages.
                     * @param message SetNamedPortsInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetNamedPortsInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetNamedPortsInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetNamedPortsInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest;

                    /**
                     * Decodes a SetNamedPortsInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetNamedPortsInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest;

                    /**
                     * Verifies a SetNamedPortsInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetNamedPortsInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetNamedPortsInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest;

                    /**
                     * Creates a plain object from a SetNamedPortsInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message SetNamedPortsInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetNamedPortsInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetNamedPortsInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetNamedPortsRegionInstanceGroupRequest. */
                interface ISetNamedPortsRegionInstanceGroupRequest {

                    /** SetNamedPortsRegionInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** SetNamedPortsRegionInstanceGroupRequest project */
                    project?: (string|null);

                    /** SetNamedPortsRegionInstanceGroupRequest region */
                    region?: (string|null);

                    /** SetNamedPortsRegionInstanceGroupRequest regionInstanceGroupsSetNamedPortsRequestResource */
                    regionInstanceGroupsSetNamedPortsRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupsSetNamedPortsRequest|null);

                    /** SetNamedPortsRegionInstanceGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetNamedPortsRegionInstanceGroupRequest. */
                class SetNamedPortsRegionInstanceGroupRequest implements ISetNamedPortsRegionInstanceGroupRequest {

                    /**
                     * Constructs a new SetNamedPortsRegionInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetNamedPortsRegionInstanceGroupRequest);

                    /** SetNamedPortsRegionInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** SetNamedPortsRegionInstanceGroupRequest project. */
                    public project: string;

                    /** SetNamedPortsRegionInstanceGroupRequest region. */
                    public region: string;

                    /** SetNamedPortsRegionInstanceGroupRequest regionInstanceGroupsSetNamedPortsRequestResource. */
                    public regionInstanceGroupsSetNamedPortsRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupsSetNamedPortsRequest|null);

                    /** SetNamedPortsRegionInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetNamedPortsRegionInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetNamedPortsRegionInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetNamedPortsRegionInstanceGroupRequest): google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest;

                    /**
                     * Encodes the specified SetNamedPortsRegionInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message SetNamedPortsRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetNamedPortsRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetNamedPortsRegionInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message SetNamedPortsRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetNamedPortsRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetNamedPortsRegionInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetNamedPortsRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest;

                    /**
                     * Decodes a SetNamedPortsRegionInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetNamedPortsRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest;

                    /**
                     * Verifies a SetNamedPortsRegionInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetNamedPortsRegionInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetNamedPortsRegionInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest;

                    /**
                     * Creates a plain object from a SetNamedPortsRegionInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message SetNamedPortsRegionInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetNamedPortsRegionInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetNamedPortsRegionInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetNodeTemplateNodeGroupRequest. */
                interface ISetNodeTemplateNodeGroupRequest {

                    /** SetNodeTemplateNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** SetNodeTemplateNodeGroupRequest nodeGroupsSetNodeTemplateRequestResource */
                    nodeGroupsSetNodeTemplateRequestResource?: (google.cloud.compute.v1.INodeGroupsSetNodeTemplateRequest|null);

                    /** SetNodeTemplateNodeGroupRequest project */
                    project?: (string|null);

                    /** SetNodeTemplateNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** SetNodeTemplateNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetNodeTemplateNodeGroupRequest. */
                class SetNodeTemplateNodeGroupRequest implements ISetNodeTemplateNodeGroupRequest {

                    /**
                     * Constructs a new SetNodeTemplateNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetNodeTemplateNodeGroupRequest);

                    /** SetNodeTemplateNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** SetNodeTemplateNodeGroupRequest nodeGroupsSetNodeTemplateRequestResource. */
                    public nodeGroupsSetNodeTemplateRequestResource?: (google.cloud.compute.v1.INodeGroupsSetNodeTemplateRequest|null);

                    /** SetNodeTemplateNodeGroupRequest project. */
                    public project: string;

                    /** SetNodeTemplateNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** SetNodeTemplateNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetNodeTemplateNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetNodeTemplateNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetNodeTemplateNodeGroupRequest): google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest;

                    /**
                     * Encodes the specified SetNodeTemplateNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest.verify|verify} messages.
                     * @param message SetNodeTemplateNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetNodeTemplateNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetNodeTemplateNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest.verify|verify} messages.
                     * @param message SetNodeTemplateNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetNodeTemplateNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetNodeTemplateNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetNodeTemplateNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest;

                    /**
                     * Decodes a SetNodeTemplateNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetNodeTemplateNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest;

                    /**
                     * Verifies a SetNodeTemplateNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetNodeTemplateNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetNodeTemplateNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest;

                    /**
                     * Creates a plain object from a SetNodeTemplateNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message SetNodeTemplateNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetNodeTemplateNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetNodeTemplateNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetPrivateIpGoogleAccessSubnetworkRequest. */
                interface ISetPrivateIpGoogleAccessSubnetworkRequest {

                    /** SetPrivateIpGoogleAccessSubnetworkRequest project */
                    project?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest region */
                    region?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest subnetworksSetPrivateIpGoogleAccessRequestResource */
                    subnetworksSetPrivateIpGoogleAccessRequestResource?: (google.cloud.compute.v1.ISubnetworksSetPrivateIpGoogleAccessRequest|null);
                }

                /** Represents a SetPrivateIpGoogleAccessSubnetworkRequest. */
                class SetPrivateIpGoogleAccessSubnetworkRequest implements ISetPrivateIpGoogleAccessSubnetworkRequest {

                    /**
                     * Constructs a new SetPrivateIpGoogleAccessSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetPrivateIpGoogleAccessSubnetworkRequest);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest project. */
                    public project: string;

                    /** SetPrivateIpGoogleAccessSubnetworkRequest region. */
                    public region: string;

                    /** SetPrivateIpGoogleAccessSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /** SetPrivateIpGoogleAccessSubnetworkRequest subnetworksSetPrivateIpGoogleAccessRequestResource. */
                    public subnetworksSetPrivateIpGoogleAccessRequestResource?: (google.cloud.compute.v1.ISubnetworksSetPrivateIpGoogleAccessRequest|null);

                    /**
                     * Creates a new SetPrivateIpGoogleAccessSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetPrivateIpGoogleAccessSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetPrivateIpGoogleAccessSubnetworkRequest): google.cloud.compute.v1.SetPrivateIpGoogleAccessSubnetworkRequest;

                    /**
                     * Encodes the specified SetPrivateIpGoogleAccessSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.SetPrivateIpGoogleAccessSubnetworkRequest.verify|verify} messages.
                     * @param message SetPrivateIpGoogleAccessSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetPrivateIpGoogleAccessSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetPrivateIpGoogleAccessSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetPrivateIpGoogleAccessSubnetworkRequest.verify|verify} messages.
                     * @param message SetPrivateIpGoogleAccessSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetPrivateIpGoogleAccessSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetPrivateIpGoogleAccessSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetPrivateIpGoogleAccessSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetPrivateIpGoogleAccessSubnetworkRequest;

                    /**
                     * Decodes a SetPrivateIpGoogleAccessSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetPrivateIpGoogleAccessSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetPrivateIpGoogleAccessSubnetworkRequest;

                    /**
                     * Verifies a SetPrivateIpGoogleAccessSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetPrivateIpGoogleAccessSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetPrivateIpGoogleAccessSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetPrivateIpGoogleAccessSubnetworkRequest;

                    /**
                     * Creates a plain object from a SetPrivateIpGoogleAccessSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message SetPrivateIpGoogleAccessSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetPrivateIpGoogleAccessSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetPrivateIpGoogleAccessSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetPrivateIpGoogleAccessSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetProxyHeaderTargetSslProxyRequest. */
                interface ISetProxyHeaderTargetSslProxyRequest {

                    /** SetProxyHeaderTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetProxyHeaderTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetProxyHeaderTargetSslProxyRequest targetSslProxiesSetProxyHeaderRequestResource */
                    targetSslProxiesSetProxyHeaderRequestResource?: (google.cloud.compute.v1.ITargetSslProxiesSetProxyHeaderRequest|null);

                    /** SetProxyHeaderTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetProxyHeaderTargetSslProxyRequest. */
                class SetProxyHeaderTargetSslProxyRequest implements ISetProxyHeaderTargetSslProxyRequest {

                    /**
                     * Constructs a new SetProxyHeaderTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetProxyHeaderTargetSslProxyRequest);

                    /** SetProxyHeaderTargetSslProxyRequest project. */
                    public project: string;

                    /** SetProxyHeaderTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetProxyHeaderTargetSslProxyRequest targetSslProxiesSetProxyHeaderRequestResource. */
                    public targetSslProxiesSetProxyHeaderRequestResource?: (google.cloud.compute.v1.ITargetSslProxiesSetProxyHeaderRequest|null);

                    /** SetProxyHeaderTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetProxyHeaderTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetProxyHeaderTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetProxyHeaderTargetSslProxyRequest): google.cloud.compute.v1.SetProxyHeaderTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetProxyHeaderTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetProxyHeaderTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetProxyHeaderTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetProxyHeaderTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetProxyHeaderTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetProxyHeaderTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetProxyHeaderTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetProxyHeaderTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetProxyHeaderTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetProxyHeaderTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetProxyHeaderTargetSslProxyRequest;

                    /**
                     * Decodes a SetProxyHeaderTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetProxyHeaderTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetProxyHeaderTargetSslProxyRequest;

                    /**
                     * Verifies a SetProxyHeaderTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetProxyHeaderTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetProxyHeaderTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetProxyHeaderTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetProxyHeaderTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetProxyHeaderTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetProxyHeaderTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetProxyHeaderTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetProxyHeaderTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetProxyHeaderTargetTcpProxyRequest. */
                interface ISetProxyHeaderTargetTcpProxyRequest {

                    /** SetProxyHeaderTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** SetProxyHeaderTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetProxyHeaderTargetTcpProxyRequest targetTcpProxiesSetProxyHeaderRequestResource */
                    targetTcpProxiesSetProxyHeaderRequestResource?: (google.cloud.compute.v1.ITargetTcpProxiesSetProxyHeaderRequest|null);

                    /** SetProxyHeaderTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a SetProxyHeaderTargetTcpProxyRequest. */
                class SetProxyHeaderTargetTcpProxyRequest implements ISetProxyHeaderTargetTcpProxyRequest {

                    /**
                     * Constructs a new SetProxyHeaderTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetProxyHeaderTargetTcpProxyRequest);

                    /** SetProxyHeaderTargetTcpProxyRequest project. */
                    public project: string;

                    /** SetProxyHeaderTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetProxyHeaderTargetTcpProxyRequest targetTcpProxiesSetProxyHeaderRequestResource. */
                    public targetTcpProxiesSetProxyHeaderRequestResource?: (google.cloud.compute.v1.ITargetTcpProxiesSetProxyHeaderRequest|null);

                    /** SetProxyHeaderTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new SetProxyHeaderTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetProxyHeaderTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetProxyHeaderTargetTcpProxyRequest): google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest;

                    /**
                     * Encodes the specified SetProxyHeaderTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest.verify|verify} messages.
                     * @param message SetProxyHeaderTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetProxyHeaderTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetProxyHeaderTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest.verify|verify} messages.
                     * @param message SetProxyHeaderTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetProxyHeaderTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetProxyHeaderTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetProxyHeaderTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest;

                    /**
                     * Decodes a SetProxyHeaderTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetProxyHeaderTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest;

                    /**
                     * Verifies a SetProxyHeaderTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetProxyHeaderTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetProxyHeaderTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a SetProxyHeaderTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message SetProxyHeaderTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetProxyHeaderTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetProxyHeaderTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetQuicOverrideTargetHttpsProxyRequest. */
                interface ISetQuicOverrideTargetHttpsProxyRequest {

                    /** SetQuicOverrideTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest targetHttpsProxiesSetQuicOverrideRequestResource */
                    targetHttpsProxiesSetQuicOverrideRequestResource?: (google.cloud.compute.v1.ITargetHttpsProxiesSetQuicOverrideRequest|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetQuicOverrideTargetHttpsProxyRequest. */
                class SetQuicOverrideTargetHttpsProxyRequest implements ISetQuicOverrideTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetQuicOverrideTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetQuicOverrideTargetHttpsProxyRequest);

                    /** SetQuicOverrideTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetQuicOverrideTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest targetHttpsProxiesSetQuicOverrideRequestResource. */
                    public targetHttpsProxiesSetQuicOverrideRequestResource?: (google.cloud.compute.v1.ITargetHttpsProxiesSetQuicOverrideRequest|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetQuicOverrideTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetQuicOverrideTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetQuicOverrideTargetHttpsProxyRequest): google.cloud.compute.v1.SetQuicOverrideTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetQuicOverrideTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetQuicOverrideTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetQuicOverrideTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetQuicOverrideTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetQuicOverrideTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetQuicOverrideTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetQuicOverrideTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetQuicOverrideTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetQuicOverrideTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetQuicOverrideTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetQuicOverrideTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetQuicOverrideTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetQuicOverrideTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetQuicOverrideTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetQuicOverrideTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetQuicOverrideTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetQuicOverrideTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetQuicOverrideTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetQuicOverrideTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetQuicOverrideTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetQuicOverrideTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetQuicOverrideTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetQuicOverrideTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSchedulingInstanceRequest. */
                interface ISetSchedulingInstanceRequest {

                    /** SetSchedulingInstanceRequest instance */
                    instance?: (string|null);

                    /** SetSchedulingInstanceRequest project */
                    project?: (string|null);

                    /** SetSchedulingInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetSchedulingInstanceRequest schedulingResource */
                    schedulingResource?: (google.cloud.compute.v1.IScheduling|null);

                    /** SetSchedulingInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetSchedulingInstanceRequest. */
                class SetSchedulingInstanceRequest implements ISetSchedulingInstanceRequest {

                    /**
                     * Constructs a new SetSchedulingInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSchedulingInstanceRequest);

                    /** SetSchedulingInstanceRequest instance. */
                    public instance: string;

                    /** SetSchedulingInstanceRequest project. */
                    public project: string;

                    /** SetSchedulingInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSchedulingInstanceRequest schedulingResource. */
                    public schedulingResource?: (google.cloud.compute.v1.IScheduling|null);

                    /** SetSchedulingInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetSchedulingInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSchedulingInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSchedulingInstanceRequest): google.cloud.compute.v1.SetSchedulingInstanceRequest;

                    /**
                     * Encodes the specified SetSchedulingInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSchedulingInstanceRequest.verify|verify} messages.
                     * @param message SetSchedulingInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSchedulingInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSchedulingInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSchedulingInstanceRequest.verify|verify} messages.
                     * @param message SetSchedulingInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSchedulingInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSchedulingInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSchedulingInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSchedulingInstanceRequest;

                    /**
                     * Decodes a SetSchedulingInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSchedulingInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSchedulingInstanceRequest;

                    /**
                     * Verifies a SetSchedulingInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSchedulingInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSchedulingInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSchedulingInstanceRequest;

                    /**
                     * Creates a plain object from a SetSchedulingInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetSchedulingInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSchedulingInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSchedulingInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSchedulingInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyBackendServiceRequest. */
                interface ISetSecurityPolicyBackendServiceRequest {

                    /** SetSecurityPolicyBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** SetSecurityPolicyBackendServiceRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyBackendServiceRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyBackendServiceRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);
                }

                /** Represents a SetSecurityPolicyBackendServiceRequest. */
                class SetSecurityPolicyBackendServiceRequest implements ISetSecurityPolicyBackendServiceRequest {

                    /**
                     * Constructs a new SetSecurityPolicyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSecurityPolicyBackendServiceRequest);

                    /** SetSecurityPolicyBackendServiceRequest backendService. */
                    public backendService: string;

                    /** SetSecurityPolicyBackendServiceRequest project. */
                    public project: string;

                    /** SetSecurityPolicyBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyBackendServiceRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);

                    /**
                     * Creates a new SetSecurityPolicyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSecurityPolicyBackendServiceRequest): google.cloud.compute.v1.SetSecurityPolicyBackendServiceRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSecurityPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSecurityPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSecurityPolicyBackendServiceRequest;

                    /**
                     * Decodes a SetSecurityPolicyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSecurityPolicyBackendServiceRequest;

                    /**
                     * Verifies a SetSecurityPolicyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSecurityPolicyBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSecurityPolicyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyInstanceRequest. */
                interface ISetSecurityPolicyInstanceRequest {

                    /** SetSecurityPolicyInstanceRequest instance */
                    instance?: (string|null);

                    /** SetSecurityPolicyInstanceRequest instancesSetSecurityPolicyRequestResource */
                    instancesSetSecurityPolicyRequestResource?: (google.cloud.compute.v1.IInstancesSetSecurityPolicyRequest|null);

                    /** SetSecurityPolicyInstanceRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetSecurityPolicyInstanceRequest. */
                class SetSecurityPolicyInstanceRequest implements ISetSecurityPolicyInstanceRequest {

                    /**
                     * Constructs a new SetSecurityPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSecurityPolicyInstanceRequest);

                    /** SetSecurityPolicyInstanceRequest instance. */
                    public instance: string;

                    /** SetSecurityPolicyInstanceRequest instancesSetSecurityPolicyRequestResource. */
                    public instancesSetSecurityPolicyRequestResource?: (google.cloud.compute.v1.IInstancesSetSecurityPolicyRequest|null);

                    /** SetSecurityPolicyInstanceRequest project. */
                    public project: string;

                    /** SetSecurityPolicyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetSecurityPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSecurityPolicyInstanceRequest): google.cloud.compute.v1.SetSecurityPolicyInstanceRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSecurityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSecurityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSecurityPolicyInstanceRequest;

                    /**
                     * Decodes a SetSecurityPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSecurityPolicyInstanceRequest;

                    /**
                     * Verifies a SetSecurityPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSecurityPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSecurityPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyRegionBackendServiceRequest. */
                interface ISetSecurityPolicyRegionBackendServiceRequest {

                    /** SetSecurityPolicyRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);
                }

                /** Represents a SetSecurityPolicyRegionBackendServiceRequest. */
                class SetSecurityPolicyRegionBackendServiceRequest implements ISetSecurityPolicyRegionBackendServiceRequest {

                    /**
                     * Constructs a new SetSecurityPolicyRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSecurityPolicyRegionBackendServiceRequest);

                    /** SetSecurityPolicyRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** SetSecurityPolicyRegionBackendServiceRequest project. */
                    public project: string;

                    /** SetSecurityPolicyRegionBackendServiceRequest region. */
                    public region: string;

                    /** SetSecurityPolicyRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);

                    /**
                     * Creates a new SetSecurityPolicyRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSecurityPolicyRegionBackendServiceRequest): google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSecurityPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSecurityPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest;

                    /**
                     * Decodes a SetSecurityPolicyRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest;

                    /**
                     * Verifies a SetSecurityPolicyRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyTargetInstanceRequest. */
                interface ISetSecurityPolicyTargetInstanceRequest {

                    /** SetSecurityPolicyTargetInstanceRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyTargetInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyTargetInstanceRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);

                    /** SetSecurityPolicyTargetInstanceRequest targetInstance */
                    targetInstance?: (string|null);

                    /** SetSecurityPolicyTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetSecurityPolicyTargetInstanceRequest. */
                class SetSecurityPolicyTargetInstanceRequest implements ISetSecurityPolicyTargetInstanceRequest {

                    /**
                     * Constructs a new SetSecurityPolicyTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSecurityPolicyTargetInstanceRequest);

                    /** SetSecurityPolicyTargetInstanceRequest project. */
                    public project: string;

                    /** SetSecurityPolicyTargetInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyTargetInstanceRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);

                    /** SetSecurityPolicyTargetInstanceRequest targetInstance. */
                    public targetInstance: string;

                    /** SetSecurityPolicyTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetSecurityPolicyTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSecurityPolicyTargetInstanceRequest): google.cloud.compute.v1.SetSecurityPolicyTargetInstanceRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyTargetInstanceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSecurityPolicyTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyTargetInstanceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSecurityPolicyTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSecurityPolicyTargetInstanceRequest;

                    /**
                     * Decodes a SetSecurityPolicyTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSecurityPolicyTargetInstanceRequest;

                    /**
                     * Verifies a SetSecurityPolicyTargetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSecurityPolicyTargetInstanceRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSecurityPolicyTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyTargetPoolRequest. */
                interface ISetSecurityPolicyTargetPoolRequest {

                    /** SetSecurityPolicyTargetPoolRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyTargetPoolRequest region */
                    region?: (string|null);

                    /** SetSecurityPolicyTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyTargetPoolRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);

                    /** SetSecurityPolicyTargetPoolRequest targetPool */
                    targetPool?: (string|null);
                }

                /** Represents a SetSecurityPolicyTargetPoolRequest. */
                class SetSecurityPolicyTargetPoolRequest implements ISetSecurityPolicyTargetPoolRequest {

                    /**
                     * Constructs a new SetSecurityPolicyTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSecurityPolicyTargetPoolRequest);

                    /** SetSecurityPolicyTargetPoolRequest project. */
                    public project: string;

                    /** SetSecurityPolicyTargetPoolRequest region. */
                    public region: string;

                    /** SetSecurityPolicyTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyTargetPoolRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1.ISecurityPolicyReference|null);

                    /** SetSecurityPolicyTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /**
                     * Creates a new SetSecurityPolicyTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSecurityPolicyTargetPoolRequest): google.cloud.compute.v1.SetSecurityPolicyTargetPoolRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyTargetPoolRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSecurityPolicyTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSecurityPolicyTargetPoolRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSecurityPolicyTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSecurityPolicyTargetPoolRequest;

                    /**
                     * Decodes a SetSecurityPolicyTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSecurityPolicyTargetPoolRequest;

                    /**
                     * Verifies a SetSecurityPolicyTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSecurityPolicyTargetPoolRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSecurityPolicyTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetServiceAccountInstanceRequest. */
                interface ISetServiceAccountInstanceRequest {

                    /** SetServiceAccountInstanceRequest instance */
                    instance?: (string|null);

                    /** SetServiceAccountInstanceRequest instancesSetServiceAccountRequestResource */
                    instancesSetServiceAccountRequestResource?: (google.cloud.compute.v1.IInstancesSetServiceAccountRequest|null);

                    /** SetServiceAccountInstanceRequest project */
                    project?: (string|null);

                    /** SetServiceAccountInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetServiceAccountInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetServiceAccountInstanceRequest. */
                class SetServiceAccountInstanceRequest implements ISetServiceAccountInstanceRequest {

                    /**
                     * Constructs a new SetServiceAccountInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetServiceAccountInstanceRequest);

                    /** SetServiceAccountInstanceRequest instance. */
                    public instance: string;

                    /** SetServiceAccountInstanceRequest instancesSetServiceAccountRequestResource. */
                    public instancesSetServiceAccountRequestResource?: (google.cloud.compute.v1.IInstancesSetServiceAccountRequest|null);

                    /** SetServiceAccountInstanceRequest project. */
                    public project: string;

                    /** SetServiceAccountInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetServiceAccountInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetServiceAccountInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetServiceAccountInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetServiceAccountInstanceRequest): google.cloud.compute.v1.SetServiceAccountInstanceRequest;

                    /**
                     * Encodes the specified SetServiceAccountInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetServiceAccountInstanceRequest.verify|verify} messages.
                     * @param message SetServiceAccountInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetServiceAccountInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetServiceAccountInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetServiceAccountInstanceRequest.verify|verify} messages.
                     * @param message SetServiceAccountInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetServiceAccountInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetServiceAccountInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetServiceAccountInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetServiceAccountInstanceRequest;

                    /**
                     * Decodes a SetServiceAccountInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetServiceAccountInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetServiceAccountInstanceRequest;

                    /**
                     * Verifies a SetServiceAccountInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetServiceAccountInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetServiceAccountInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetServiceAccountInstanceRequest;

                    /**
                     * Creates a plain object from a SetServiceAccountInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetServiceAccountInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetServiceAccountInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetServiceAccountInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetServiceAccountInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetShieldedInstanceIntegrityPolicyInstanceRequest. */
                interface ISetShieldedInstanceIntegrityPolicyInstanceRequest {

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest instance */
                    instance?: (string|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest project */
                    project?: (string|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest shieldedInstanceIntegrityPolicyResource */
                    shieldedInstanceIntegrityPolicyResource?: (google.cloud.compute.v1.IShieldedInstanceIntegrityPolicy|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetShieldedInstanceIntegrityPolicyInstanceRequest. */
                class SetShieldedInstanceIntegrityPolicyInstanceRequest implements ISetShieldedInstanceIntegrityPolicyInstanceRequest {

                    /**
                     * Constructs a new SetShieldedInstanceIntegrityPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetShieldedInstanceIntegrityPolicyInstanceRequest);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest instance. */
                    public instance: string;

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest project. */
                    public project: string;

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest shieldedInstanceIntegrityPolicyResource. */
                    public shieldedInstanceIntegrityPolicyResource?: (google.cloud.compute.v1.IShieldedInstanceIntegrityPolicy|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetShieldedInstanceIntegrityPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetShieldedInstanceIntegrityPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetShieldedInstanceIntegrityPolicyInstanceRequest): google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest;

                    /**
                     * Encodes the specified SetShieldedInstanceIntegrityPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetShieldedInstanceIntegrityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetShieldedInstanceIntegrityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetShieldedInstanceIntegrityPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetShieldedInstanceIntegrityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetShieldedInstanceIntegrityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetShieldedInstanceIntegrityPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetShieldedInstanceIntegrityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest;

                    /**
                     * Decodes a SetShieldedInstanceIntegrityPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetShieldedInstanceIntegrityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest;

                    /**
                     * Verifies a SetShieldedInstanceIntegrityPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetShieldedInstanceIntegrityPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetShieldedInstanceIntegrityPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a SetShieldedInstanceIntegrityPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetShieldedInstanceIntegrityPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetShieldedInstanceIntegrityPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetShieldedInstanceIntegrityPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslCertificatesRegionTargetHttpsProxyRequest. */
                interface ISetSslCertificatesRegionTargetHttpsProxyRequest {

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest regionTargetHttpsProxiesSetSslCertificatesRequestResource */
                    regionTargetHttpsProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1.IRegionTargetHttpsProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetSslCertificatesRegionTargetHttpsProxyRequest. */
                class SetSslCertificatesRegionTargetHttpsProxyRequest implements ISetSslCertificatesRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetSslCertificatesRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSslCertificatesRegionTargetHttpsProxyRequest);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest regionTargetHttpsProxiesSetSslCertificatesRequestResource. */
                    public regionTargetHttpsProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1.IRegionTargetHttpsProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetSslCertificatesRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslCertificatesRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSslCertificatesRegionTargetHttpsProxyRequest): google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetSslCertificatesRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSslCertificatesRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslCertificatesRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSslCertificatesRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslCertificatesRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslCertificatesRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetSslCertificatesRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslCertificatesRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetSslCertificatesRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslCertificatesRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslCertificatesRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetSslCertificatesRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslCertificatesRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslCertificatesRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslCertificatesRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslCertificatesTargetHttpsProxyRequest. */
                interface ISetSslCertificatesTargetHttpsProxyRequest {

                    /** SetSslCertificatesTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest targetHttpsProxiesSetSslCertificatesRequestResource */
                    targetHttpsProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1.ITargetHttpsProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetSslCertificatesTargetHttpsProxyRequest. */
                class SetSslCertificatesTargetHttpsProxyRequest implements ISetSslCertificatesTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetSslCertificatesTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSslCertificatesTargetHttpsProxyRequest);

                    /** SetSslCertificatesTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetSslCertificatesTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest targetHttpsProxiesSetSslCertificatesRequestResource. */
                    public targetHttpsProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1.ITargetHttpsProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetSslCertificatesTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslCertificatesTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSslCertificatesTargetHttpsProxyRequest): google.cloud.compute.v1.SetSslCertificatesTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetSslCertificatesTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSslCertificatesTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSslCertificatesTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslCertificatesTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSslCertificatesTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSslCertificatesTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslCertificatesTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslCertificatesTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSslCertificatesTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetSslCertificatesTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslCertificatesTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSslCertificatesTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetSslCertificatesTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslCertificatesTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslCertificatesTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSslCertificatesTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetSslCertificatesTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslCertificatesTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSslCertificatesTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslCertificatesTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslCertificatesTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslCertificatesTargetSslProxyRequest. */
                interface ISetSslCertificatesTargetSslProxyRequest {

                    /** SetSslCertificatesTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetSslCertificatesTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslCertificatesTargetSslProxyRequest targetSslProxiesSetSslCertificatesRequestResource */
                    targetSslProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1.ITargetSslProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetSslCertificatesTargetSslProxyRequest. */
                class SetSslCertificatesTargetSslProxyRequest implements ISetSslCertificatesTargetSslProxyRequest {

                    /**
                     * Constructs a new SetSslCertificatesTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSslCertificatesTargetSslProxyRequest);

                    /** SetSslCertificatesTargetSslProxyRequest project. */
                    public project: string;

                    /** SetSslCertificatesTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslCertificatesTargetSslProxyRequest targetSslProxiesSetSslCertificatesRequestResource. */
                    public targetSslProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1.ITargetSslProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetSslCertificatesTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslCertificatesTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSslCertificatesTargetSslProxyRequest): google.cloud.compute.v1.SetSslCertificatesTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetSslCertificatesTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSslCertificatesTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSslCertificatesTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslCertificatesTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSslCertificatesTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSslCertificatesTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslCertificatesTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslCertificatesTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSslCertificatesTargetSslProxyRequest;

                    /**
                     * Decodes a SetSslCertificatesTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslCertificatesTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSslCertificatesTargetSslProxyRequest;

                    /**
                     * Verifies a SetSslCertificatesTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslCertificatesTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslCertificatesTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSslCertificatesTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetSslCertificatesTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslCertificatesTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSslCertificatesTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslCertificatesTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslCertificatesTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslPolicyTargetHttpsProxyRequest. */
                interface ISetSslPolicyTargetHttpsProxyRequest {

                    /** SetSslPolicyTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetSslPolicyTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslPolicyTargetHttpsProxyRequest sslPolicyReferenceResource */
                    sslPolicyReferenceResource?: (google.cloud.compute.v1.ISslPolicyReference|null);

                    /** SetSslPolicyTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetSslPolicyTargetHttpsProxyRequest. */
                class SetSslPolicyTargetHttpsProxyRequest implements ISetSslPolicyTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetSslPolicyTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSslPolicyTargetHttpsProxyRequest);

                    /** SetSslPolicyTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetSslPolicyTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslPolicyTargetHttpsProxyRequest sslPolicyReferenceResource. */
                    public sslPolicyReferenceResource?: (google.cloud.compute.v1.ISslPolicyReference|null);

                    /** SetSslPolicyTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetSslPolicyTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslPolicyTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSslPolicyTargetHttpsProxyRequest): google.cloud.compute.v1.SetSslPolicyTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetSslPolicyTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSslPolicyTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslPolicyTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSslPolicyTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslPolicyTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSslPolicyTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslPolicyTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSslPolicyTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslPolicyTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslPolicyTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSslPolicyTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetSslPolicyTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslPolicyTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSslPolicyTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetSslPolicyTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslPolicyTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslPolicyTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSslPolicyTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetSslPolicyTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslPolicyTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSslPolicyTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslPolicyTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslPolicyTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslPolicyTargetSslProxyRequest. */
                interface ISetSslPolicyTargetSslProxyRequest {

                    /** SetSslPolicyTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetSslPolicyTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslPolicyTargetSslProxyRequest sslPolicyReferenceResource */
                    sslPolicyReferenceResource?: (google.cloud.compute.v1.ISslPolicyReference|null);

                    /** SetSslPolicyTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetSslPolicyTargetSslProxyRequest. */
                class SetSslPolicyTargetSslProxyRequest implements ISetSslPolicyTargetSslProxyRequest {

                    /**
                     * Constructs a new SetSslPolicyTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetSslPolicyTargetSslProxyRequest);

                    /** SetSslPolicyTargetSslProxyRequest project. */
                    public project: string;

                    /** SetSslPolicyTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslPolicyTargetSslProxyRequest sslPolicyReferenceResource. */
                    public sslPolicyReferenceResource?: (google.cloud.compute.v1.ISslPolicyReference|null);

                    /** SetSslPolicyTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetSslPolicyTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslPolicyTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetSslPolicyTargetSslProxyRequest): google.cloud.compute.v1.SetSslPolicyTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetSslPolicyTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetSslPolicyTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetSslPolicyTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetSslPolicyTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslPolicyTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetSslPolicyTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetSslPolicyTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetSslPolicyTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslPolicyTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslPolicyTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetSslPolicyTargetSslProxyRequest;

                    /**
                     * Decodes a SetSslPolicyTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslPolicyTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetSslPolicyTargetSslProxyRequest;

                    /**
                     * Verifies a SetSslPolicyTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslPolicyTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslPolicyTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetSslPolicyTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetSslPolicyTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslPolicyTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetSslPolicyTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslPolicyTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslPolicyTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTagsInstanceRequest. */
                interface ISetTagsInstanceRequest {

                    /** SetTagsInstanceRequest instance */
                    instance?: (string|null);

                    /** SetTagsInstanceRequest project */
                    project?: (string|null);

                    /** SetTagsInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetTagsInstanceRequest tagsResource */
                    tagsResource?: (google.cloud.compute.v1.ITags|null);

                    /** SetTagsInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetTagsInstanceRequest. */
                class SetTagsInstanceRequest implements ISetTagsInstanceRequest {

                    /**
                     * Constructs a new SetTagsInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetTagsInstanceRequest);

                    /** SetTagsInstanceRequest instance. */
                    public instance: string;

                    /** SetTagsInstanceRequest project. */
                    public project: string;

                    /** SetTagsInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetTagsInstanceRequest tagsResource. */
                    public tagsResource?: (google.cloud.compute.v1.ITags|null);

                    /** SetTagsInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetTagsInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTagsInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetTagsInstanceRequest): google.cloud.compute.v1.SetTagsInstanceRequest;

                    /**
                     * Encodes the specified SetTagsInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SetTagsInstanceRequest.verify|verify} messages.
                     * @param message SetTagsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetTagsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTagsInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetTagsInstanceRequest.verify|verify} messages.
                     * @param message SetTagsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetTagsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTagsInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTagsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetTagsInstanceRequest;

                    /**
                     * Decodes a SetTagsInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTagsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetTagsInstanceRequest;

                    /**
                     * Verifies a SetTagsInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTagsInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTagsInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetTagsInstanceRequest;

                    /**
                     * Creates a plain object from a SetTagsInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetTagsInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetTagsInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTagsInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTagsInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTargetForwardingRuleRequest. */
                interface ISetTargetForwardingRuleRequest {

                    /** SetTargetForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** SetTargetForwardingRuleRequest project */
                    project?: (string|null);

                    /** SetTargetForwardingRuleRequest region */
                    region?: (string|null);

                    /** SetTargetForwardingRuleRequest requestId */
                    requestId?: (string|null);

                    /** SetTargetForwardingRuleRequest targetReferenceResource */
                    targetReferenceResource?: (google.cloud.compute.v1.ITargetReference|null);
                }

                /** Represents a SetTargetForwardingRuleRequest. */
                class SetTargetForwardingRuleRequest implements ISetTargetForwardingRuleRequest {

                    /**
                     * Constructs a new SetTargetForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetTargetForwardingRuleRequest);

                    /** SetTargetForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** SetTargetForwardingRuleRequest project. */
                    public project: string;

                    /** SetTargetForwardingRuleRequest region. */
                    public region: string;

                    /** SetTargetForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /** SetTargetForwardingRuleRequest targetReferenceResource. */
                    public targetReferenceResource?: (google.cloud.compute.v1.ITargetReference|null);

                    /**
                     * Creates a new SetTargetForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTargetForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetTargetForwardingRuleRequest): google.cloud.compute.v1.SetTargetForwardingRuleRequest;

                    /**
                     * Encodes the specified SetTargetForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.SetTargetForwardingRuleRequest.verify|verify} messages.
                     * @param message SetTargetForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetTargetForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTargetForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetTargetForwardingRuleRequest.verify|verify} messages.
                     * @param message SetTargetForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetTargetForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTargetForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTargetForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetTargetForwardingRuleRequest;

                    /**
                     * Decodes a SetTargetForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTargetForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetTargetForwardingRuleRequest;

                    /**
                     * Verifies a SetTargetForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTargetForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTargetForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetTargetForwardingRuleRequest;

                    /**
                     * Creates a plain object from a SetTargetForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message SetTargetForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetTargetForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTargetForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTargetForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTargetGlobalForwardingRuleRequest. */
                interface ISetTargetGlobalForwardingRuleRequest {

                    /** SetTargetGlobalForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** SetTargetGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** SetTargetGlobalForwardingRuleRequest requestId */
                    requestId?: (string|null);

                    /** SetTargetGlobalForwardingRuleRequest targetReferenceResource */
                    targetReferenceResource?: (google.cloud.compute.v1.ITargetReference|null);
                }

                /** Represents a SetTargetGlobalForwardingRuleRequest. */
                class SetTargetGlobalForwardingRuleRequest implements ISetTargetGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new SetTargetGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetTargetGlobalForwardingRuleRequest);

                    /** SetTargetGlobalForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** SetTargetGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** SetTargetGlobalForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /** SetTargetGlobalForwardingRuleRequest targetReferenceResource. */
                    public targetReferenceResource?: (google.cloud.compute.v1.ITargetReference|null);

                    /**
                     * Creates a new SetTargetGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTargetGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetTargetGlobalForwardingRuleRequest): google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified SetTargetGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message SetTargetGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetTargetGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTargetGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message SetTargetGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetTargetGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTargetGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTargetGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest;

                    /**
                     * Decodes a SetTargetGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTargetGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest;

                    /**
                     * Verifies a SetTargetGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTargetGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTargetGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a SetTargetGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message SetTargetGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTargetGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTargetGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTargetPoolsInstanceGroupManagerRequest. */
                interface ISetTargetPoolsInstanceGroupManagerRequest {

                    /** SetTargetPoolsInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest instanceGroupManagersSetTargetPoolsRequestResource */
                    instanceGroupManagersSetTargetPoolsRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersSetTargetPoolsRequest|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetTargetPoolsInstanceGroupManagerRequest. */
                class SetTargetPoolsInstanceGroupManagerRequest implements ISetTargetPoolsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetTargetPoolsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetTargetPoolsInstanceGroupManagerRequest);

                    /** SetTargetPoolsInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetTargetPoolsInstanceGroupManagerRequest instanceGroupManagersSetTargetPoolsRequestResource. */
                    public instanceGroupManagersSetTargetPoolsRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersSetTargetPoolsRequest|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetTargetPoolsInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetTargetPoolsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTargetPoolsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetTargetPoolsInstanceGroupManagerRequest): google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetTargetPoolsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetTargetPoolsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetTargetPoolsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTargetPoolsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetTargetPoolsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetTargetPoolsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTargetPoolsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTargetPoolsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetTargetPoolsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTargetPoolsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetTargetPoolsInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTargetPoolsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTargetPoolsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetTargetPoolsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetTargetPoolsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTargetPoolsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTargetPoolsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTargetPoolsRegionInstanceGroupManagerRequest. */
                interface ISetTargetPoolsRegionInstanceGroupManagerRequest {

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetTargetPoolsRequestResource */
                    regionInstanceGroupManagersSetTargetPoolsRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersSetTargetPoolsRequest|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetTargetPoolsRegionInstanceGroupManagerRequest. */
                class SetTargetPoolsRegionInstanceGroupManagerRequest implements ISetTargetPoolsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetTargetPoolsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetTargetPoolsRegionInstanceGroupManagerRequest);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetTargetPoolsRequestResource. */
                    public regionInstanceGroupManagersSetTargetPoolsRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersSetTargetPoolsRequest|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetTargetPoolsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTargetPoolsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetTargetPoolsRegionInstanceGroupManagerRequest): google.cloud.compute.v1.SetTargetPoolsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetTargetPoolsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.SetTargetPoolsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetTargetPoolsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetTargetPoolsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTargetPoolsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetTargetPoolsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetTargetPoolsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetTargetPoolsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTargetPoolsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTargetPoolsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetTargetPoolsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetTargetPoolsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTargetPoolsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetTargetPoolsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetTargetPoolsRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTargetPoolsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTargetPoolsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetTargetPoolsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetTargetPoolsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetTargetPoolsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetTargetPoolsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTargetPoolsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTargetPoolsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUrlMapRegionTargetHttpProxyRequest. */
                interface ISetUrlMapRegionTargetHttpProxyRequest {

                    /** SetUrlMapRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest urlMapReferenceResource */
                    urlMapReferenceResource?: (google.cloud.compute.v1.IUrlMapReference|null);
                }

                /** Represents a SetUrlMapRegionTargetHttpProxyRequest. */
                class SetUrlMapRegionTargetHttpProxyRequest implements ISetUrlMapRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new SetUrlMapRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpProxyRequest);

                    /** SetUrlMapRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** SetUrlMapRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** SetUrlMapRegionTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /** SetUrlMapRegionTargetHttpProxyRequest urlMapReferenceResource. */
                    public urlMapReferenceResource?: (google.cloud.compute.v1.IUrlMapReference|null);

                    /**
                     * Creates a new SetUrlMapRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUrlMapRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpProxyRequest): google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified SetUrlMapRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUrlMapRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUrlMapRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUrlMapRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest;

                    /**
                     * Decodes a SetUrlMapRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUrlMapRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest;

                    /**
                     * Verifies a SetUrlMapRegionTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUrlMapRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUrlMapRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a SetUrlMapRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message SetUrlMapRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUrlMapRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUrlMapRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUrlMapRegionTargetHttpsProxyRequest. */
                interface ISetUrlMapRegionTargetHttpsProxyRequest {

                    /** SetUrlMapRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest urlMapReferenceResource */
                    urlMapReferenceResource?: (google.cloud.compute.v1.IUrlMapReference|null);
                }

                /** Represents a SetUrlMapRegionTargetHttpsProxyRequest. */
                class SetUrlMapRegionTargetHttpsProxyRequest implements ISetUrlMapRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetUrlMapRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpsProxyRequest);

                    /** SetUrlMapRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetUrlMapRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** SetUrlMapRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /** SetUrlMapRegionTargetHttpsProxyRequest urlMapReferenceResource. */
                    public urlMapReferenceResource?: (google.cloud.compute.v1.IUrlMapReference|null);

                    /**
                     * Creates a new SetUrlMapRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUrlMapRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpsProxyRequest): google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetUrlMapRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUrlMapRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUrlMapRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUrlMapRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetUrlMapRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUrlMapRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetUrlMapRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUrlMapRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUrlMapRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetUrlMapRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetUrlMapRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUrlMapRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUrlMapRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUrlMapTargetHttpProxyRequest. */
                interface ISetUrlMapTargetHttpProxyRequest {

                    /** SetUrlMapTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** SetUrlMapTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetUrlMapTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);

                    /** SetUrlMapTargetHttpProxyRequest urlMapReferenceResource */
                    urlMapReferenceResource?: (google.cloud.compute.v1.IUrlMapReference|null);
                }

                /** Represents a SetUrlMapTargetHttpProxyRequest. */
                class SetUrlMapTargetHttpProxyRequest implements ISetUrlMapTargetHttpProxyRequest {

                    /**
                     * Constructs a new SetUrlMapTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetUrlMapTargetHttpProxyRequest);

                    /** SetUrlMapTargetHttpProxyRequest project. */
                    public project: string;

                    /** SetUrlMapTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUrlMapTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /** SetUrlMapTargetHttpProxyRequest urlMapReferenceResource. */
                    public urlMapReferenceResource?: (google.cloud.compute.v1.IUrlMapReference|null);

                    /**
                     * Creates a new SetUrlMapTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUrlMapTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetUrlMapTargetHttpProxyRequest): google.cloud.compute.v1.SetUrlMapTargetHttpProxyRequest;

                    /**
                     * Encodes the specified SetUrlMapTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetUrlMapTargetHttpProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetUrlMapTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUrlMapTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetUrlMapTargetHttpProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetUrlMapTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUrlMapTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUrlMapTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetUrlMapTargetHttpProxyRequest;

                    /**
                     * Decodes a SetUrlMapTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUrlMapTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetUrlMapTargetHttpProxyRequest;

                    /**
                     * Verifies a SetUrlMapTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUrlMapTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUrlMapTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetUrlMapTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a SetUrlMapTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message SetUrlMapTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetUrlMapTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUrlMapTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUrlMapTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUrlMapTargetHttpsProxyRequest. */
                interface ISetUrlMapTargetHttpsProxyRequest {

                    /** SetUrlMapTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetUrlMapTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetUrlMapTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);

                    /** SetUrlMapTargetHttpsProxyRequest urlMapReferenceResource */
                    urlMapReferenceResource?: (google.cloud.compute.v1.IUrlMapReference|null);
                }

                /** Represents a SetUrlMapTargetHttpsProxyRequest. */
                class SetUrlMapTargetHttpsProxyRequest implements ISetUrlMapTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetUrlMapTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetUrlMapTargetHttpsProxyRequest);

                    /** SetUrlMapTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetUrlMapTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUrlMapTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /** SetUrlMapTargetHttpsProxyRequest urlMapReferenceResource. */
                    public urlMapReferenceResource?: (google.cloud.compute.v1.IUrlMapReference|null);

                    /**
                     * Creates a new SetUrlMapTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUrlMapTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetUrlMapTargetHttpsProxyRequest): google.cloud.compute.v1.SetUrlMapTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetUrlMapTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.SetUrlMapTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetUrlMapTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUrlMapTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetUrlMapTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetUrlMapTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUrlMapTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUrlMapTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetUrlMapTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetUrlMapTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUrlMapTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetUrlMapTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetUrlMapTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUrlMapTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUrlMapTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetUrlMapTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetUrlMapTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetUrlMapTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetUrlMapTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUrlMapTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUrlMapTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUsageExportBucketProjectRequest. */
                interface ISetUsageExportBucketProjectRequest {

                    /** SetUsageExportBucketProjectRequest project */
                    project?: (string|null);

                    /** SetUsageExportBucketProjectRequest requestId */
                    requestId?: (string|null);

                    /** SetUsageExportBucketProjectRequest usageExportLocationResource */
                    usageExportLocationResource?: (google.cloud.compute.v1.IUsageExportLocation|null);
                }

                /** Represents a SetUsageExportBucketProjectRequest. */
                class SetUsageExportBucketProjectRequest implements ISetUsageExportBucketProjectRequest {

                    /**
                     * Constructs a new SetUsageExportBucketProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISetUsageExportBucketProjectRequest);

                    /** SetUsageExportBucketProjectRequest project. */
                    public project: string;

                    /** SetUsageExportBucketProjectRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUsageExportBucketProjectRequest usageExportLocationResource. */
                    public usageExportLocationResource?: (google.cloud.compute.v1.IUsageExportLocation|null);

                    /**
                     * Creates a new SetUsageExportBucketProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUsageExportBucketProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISetUsageExportBucketProjectRequest): google.cloud.compute.v1.SetUsageExportBucketProjectRequest;

                    /**
                     * Encodes the specified SetUsageExportBucketProjectRequest message. Does not implicitly {@link google.cloud.compute.v1.SetUsageExportBucketProjectRequest.verify|verify} messages.
                     * @param message SetUsageExportBucketProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISetUsageExportBucketProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUsageExportBucketProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SetUsageExportBucketProjectRequest.verify|verify} messages.
                     * @param message SetUsageExportBucketProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISetUsageExportBucketProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUsageExportBucketProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUsageExportBucketProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SetUsageExportBucketProjectRequest;

                    /**
                     * Decodes a SetUsageExportBucketProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUsageExportBucketProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SetUsageExportBucketProjectRequest;

                    /**
                     * Verifies a SetUsageExportBucketProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUsageExportBucketProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUsageExportBucketProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SetUsageExportBucketProjectRequest;

                    /**
                     * Creates a plain object from a SetUsageExportBucketProjectRequest message. Also converts values to other types if specified.
                     * @param message SetUsageExportBucketProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SetUsageExportBucketProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUsageExportBucketProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUsageExportBucketProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShareSettings. */
                interface IShareSettings {

                    /** ShareSettings projectMap */
                    projectMap?: ({ [k: string]: google.cloud.compute.v1.IShareSettingsProjectConfig }|null);

                    /** ShareSettings shareType */
                    shareType?: (string|null);
                }

                /** Represents a ShareSettings. */
                class ShareSettings implements IShareSettings {

                    /**
                     * Constructs a new ShareSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IShareSettings);

                    /** ShareSettings projectMap. */
                    public projectMap: { [k: string]: google.cloud.compute.v1.IShareSettingsProjectConfig };

                    /** ShareSettings shareType. */
                    public shareType?: (string|null);

                    /**
                     * Creates a new ShareSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShareSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IShareSettings): google.cloud.compute.v1.ShareSettings;

                    /**
                     * Encodes the specified ShareSettings message. Does not implicitly {@link google.cloud.compute.v1.ShareSettings.verify|verify} messages.
                     * @param message ShareSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IShareSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShareSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ShareSettings.verify|verify} messages.
                     * @param message ShareSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IShareSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShareSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShareSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ShareSettings;

                    /**
                     * Decodes a ShareSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShareSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ShareSettings;

                    /**
                     * Verifies a ShareSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShareSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShareSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ShareSettings;

                    /**
                     * Creates a plain object from a ShareSettings message. Also converts values to other types if specified.
                     * @param message ShareSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ShareSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShareSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShareSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ShareSettings {

                    /** ShareType enum. */
                    enum ShareType {
                        UNDEFINED_SHARE_TYPE = 0,
                        LOCAL = 72607563,
                        ORGANIZATION = 274978099,
                        SHARE_TYPE_UNSPECIFIED = 494771730,
                        SPECIFIC_PROJECTS = 347838695
                    }
                }

                /** Properties of a ShareSettingsProjectConfig. */
                interface IShareSettingsProjectConfig {

                    /** ShareSettingsProjectConfig projectId */
                    projectId?: (string|null);
                }

                /** Represents a ShareSettingsProjectConfig. */
                class ShareSettingsProjectConfig implements IShareSettingsProjectConfig {

                    /**
                     * Constructs a new ShareSettingsProjectConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IShareSettingsProjectConfig);

                    /** ShareSettingsProjectConfig projectId. */
                    public projectId?: (string|null);

                    /**
                     * Creates a new ShareSettingsProjectConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShareSettingsProjectConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IShareSettingsProjectConfig): google.cloud.compute.v1.ShareSettingsProjectConfig;

                    /**
                     * Encodes the specified ShareSettingsProjectConfig message. Does not implicitly {@link google.cloud.compute.v1.ShareSettingsProjectConfig.verify|verify} messages.
                     * @param message ShareSettingsProjectConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IShareSettingsProjectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShareSettingsProjectConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ShareSettingsProjectConfig.verify|verify} messages.
                     * @param message ShareSettingsProjectConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IShareSettingsProjectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShareSettingsProjectConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShareSettingsProjectConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ShareSettingsProjectConfig;

                    /**
                     * Decodes a ShareSettingsProjectConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShareSettingsProjectConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ShareSettingsProjectConfig;

                    /**
                     * Verifies a ShareSettingsProjectConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShareSettingsProjectConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShareSettingsProjectConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ShareSettingsProjectConfig;

                    /**
                     * Creates a plain object from a ShareSettingsProjectConfig message. Also converts values to other types if specified.
                     * @param message ShareSettingsProjectConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ShareSettingsProjectConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShareSettingsProjectConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShareSettingsProjectConfig
                     * @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 enableIntegrityMonitoring */
                    enableIntegrityMonitoring?: (boolean|null);

                    /** ShieldedInstanceConfig enableSecureBoot */
                    enableSecureBoot?: (boolean|null);

                    /** ShieldedInstanceConfig enableVtpm */
                    enableVtpm?: (boolean|null);
                }

                /** Represents a ShieldedInstanceConfig. */
                class ShieldedInstanceConfig implements IShieldedInstanceConfig {

                    /**
                     * Constructs a new ShieldedInstanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IShieldedInstanceConfig);

                    /** ShieldedInstanceConfig enableIntegrityMonitoring. */
                    public enableIntegrityMonitoring?: (boolean|null);

                    /** ShieldedInstanceConfig enableSecureBoot. */
                    public enableSecureBoot?: (boolean|null);

                    /** ShieldedInstanceConfig enableVtpm. */
                    public enableVtpm?: (boolean|null);

                    /**
                     * Creates a new ShieldedInstanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedInstanceConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IShieldedInstanceConfig): google.cloud.compute.v1.ShieldedInstanceConfig;

                    /**
                     * Encodes the specified ShieldedInstanceConfig message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IShieldedInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedInstanceConfig message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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 ShieldedInstanceIdentity. */
                interface IShieldedInstanceIdentity {

                    /** ShieldedInstanceIdentity eccP256EncryptionKey */
                    eccP256EncryptionKey?: (google.cloud.compute.v1.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity eccP256SigningKey */
                    eccP256SigningKey?: (google.cloud.compute.v1.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity encryptionKey */
                    encryptionKey?: (google.cloud.compute.v1.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity kind */
                    kind?: (string|null);

                    /** ShieldedInstanceIdentity signingKey */
                    signingKey?: (google.cloud.compute.v1.IShieldedInstanceIdentityEntry|null);
                }

                /** Represents a ShieldedInstanceIdentity. */
                class ShieldedInstanceIdentity implements IShieldedInstanceIdentity {

                    /**
                     * Constructs a new ShieldedInstanceIdentity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IShieldedInstanceIdentity);

                    /** ShieldedInstanceIdentity eccP256EncryptionKey. */
                    public eccP256EncryptionKey?: (google.cloud.compute.v1.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity eccP256SigningKey. */
                    public eccP256SigningKey?: (google.cloud.compute.v1.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity encryptionKey. */
                    public encryptionKey?: (google.cloud.compute.v1.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity kind. */
                    public kind?: (string|null);

                    /** ShieldedInstanceIdentity signingKey. */
                    public signingKey?: (google.cloud.compute.v1.IShieldedInstanceIdentityEntry|null);

                    /**
                     * Creates a new ShieldedInstanceIdentity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedInstanceIdentity instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IShieldedInstanceIdentity): google.cloud.compute.v1.ShieldedInstanceIdentity;

                    /**
                     * Encodes the specified ShieldedInstanceIdentity message. Does not implicitly {@link google.cloud.compute.v1.ShieldedInstanceIdentity.verify|verify} messages.
                     * @param message ShieldedInstanceIdentity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IShieldedInstanceIdentity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedInstanceIdentity message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ShieldedInstanceIdentity.verify|verify} messages.
                     * @param message ShieldedInstanceIdentity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IShieldedInstanceIdentity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedInstanceIdentity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedInstanceIdentity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ShieldedInstanceIdentity;

                    /**
                     * Decodes a ShieldedInstanceIdentity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedInstanceIdentity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ShieldedInstanceIdentity;

                    /**
                     * Verifies a ShieldedInstanceIdentity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedInstanceIdentity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedInstanceIdentity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ShieldedInstanceIdentity;

                    /**
                     * Creates a plain object from a ShieldedInstanceIdentity message. Also converts values to other types if specified.
                     * @param message ShieldedInstanceIdentity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ShieldedInstanceIdentity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedInstanceIdentity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedInstanceIdentity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShieldedInstanceIdentityEntry. */
                interface IShieldedInstanceIdentityEntry {

                    /** ShieldedInstanceIdentityEntry ekCert */
                    ekCert?: (string|null);

                    /** ShieldedInstanceIdentityEntry ekPub */
                    ekPub?: (string|null);
                }

                /** Represents a ShieldedInstanceIdentityEntry. */
                class ShieldedInstanceIdentityEntry implements IShieldedInstanceIdentityEntry {

                    /**
                     * Constructs a new ShieldedInstanceIdentityEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IShieldedInstanceIdentityEntry);

                    /** ShieldedInstanceIdentityEntry ekCert. */
                    public ekCert?: (string|null);

                    /** ShieldedInstanceIdentityEntry ekPub. */
                    public ekPub?: (string|null);

                    /**
                     * Creates a new ShieldedInstanceIdentityEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedInstanceIdentityEntry instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IShieldedInstanceIdentityEntry): google.cloud.compute.v1.ShieldedInstanceIdentityEntry;

                    /**
                     * Encodes the specified ShieldedInstanceIdentityEntry message. Does not implicitly {@link google.cloud.compute.v1.ShieldedInstanceIdentityEntry.verify|verify} messages.
                     * @param message ShieldedInstanceIdentityEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IShieldedInstanceIdentityEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedInstanceIdentityEntry message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ShieldedInstanceIdentityEntry.verify|verify} messages.
                     * @param message ShieldedInstanceIdentityEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IShieldedInstanceIdentityEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedInstanceIdentityEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedInstanceIdentityEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ShieldedInstanceIdentityEntry;

                    /**
                     * Decodes a ShieldedInstanceIdentityEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedInstanceIdentityEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ShieldedInstanceIdentityEntry;

                    /**
                     * Verifies a ShieldedInstanceIdentityEntry message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedInstanceIdentityEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedInstanceIdentityEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ShieldedInstanceIdentityEntry;

                    /**
                     * Creates a plain object from a ShieldedInstanceIdentityEntry message. Also converts values to other types if specified.
                     * @param message ShieldedInstanceIdentityEntry
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ShieldedInstanceIdentityEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedInstanceIdentityEntry to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedInstanceIdentityEntry
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShieldedInstanceIntegrityPolicy. */
                interface IShieldedInstanceIntegrityPolicy {

                    /** ShieldedInstanceIntegrityPolicy updateAutoLearnPolicy */
                    updateAutoLearnPolicy?: (boolean|null);
                }

                /** Represents a ShieldedInstanceIntegrityPolicy. */
                class ShieldedInstanceIntegrityPolicy implements IShieldedInstanceIntegrityPolicy {

                    /**
                     * Constructs a new ShieldedInstanceIntegrityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IShieldedInstanceIntegrityPolicy);

                    /** ShieldedInstanceIntegrityPolicy updateAutoLearnPolicy. */
                    public updateAutoLearnPolicy?: (boolean|null);

                    /**
                     * Creates a new ShieldedInstanceIntegrityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedInstanceIntegrityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IShieldedInstanceIntegrityPolicy): google.cloud.compute.v1.ShieldedInstanceIntegrityPolicy;

                    /**
                     * Encodes the specified ShieldedInstanceIntegrityPolicy message. Does not implicitly {@link google.cloud.compute.v1.ShieldedInstanceIntegrityPolicy.verify|verify} messages.
                     * @param message ShieldedInstanceIntegrityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IShieldedInstanceIntegrityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedInstanceIntegrityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ShieldedInstanceIntegrityPolicy.verify|verify} messages.
                     * @param message ShieldedInstanceIntegrityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IShieldedInstanceIntegrityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedInstanceIntegrityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedInstanceIntegrityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ShieldedInstanceIntegrityPolicy;

                    /**
                     * Decodes a ShieldedInstanceIntegrityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedInstanceIntegrityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ShieldedInstanceIntegrityPolicy;

                    /**
                     * Verifies a ShieldedInstanceIntegrityPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedInstanceIntegrityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedInstanceIntegrityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ShieldedInstanceIntegrityPolicy;

                    /**
                     * Creates a plain object from a ShieldedInstanceIntegrityPolicy message. Also converts values to other types if specified.
                     * @param message ShieldedInstanceIntegrityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ShieldedInstanceIntegrityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedInstanceIntegrityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedInstanceIntegrityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SignedUrlKey. */
                interface ISignedUrlKey {

                    /** SignedUrlKey keyName */
                    keyName?: (string|null);

                    /** SignedUrlKey keyValue */
                    keyValue?: (string|null);
                }

                /** Represents a SignedUrlKey. */
                class SignedUrlKey implements ISignedUrlKey {

                    /**
                     * Constructs a new SignedUrlKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISignedUrlKey);

                    /** SignedUrlKey keyName. */
                    public keyName?: (string|null);

                    /** SignedUrlKey keyValue. */
                    public keyValue?: (string|null);

                    /**
                     * Creates a new SignedUrlKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SignedUrlKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISignedUrlKey): google.cloud.compute.v1.SignedUrlKey;

                    /**
                     * Encodes the specified SignedUrlKey message. Does not implicitly {@link google.cloud.compute.v1.SignedUrlKey.verify|verify} messages.
                     * @param message SignedUrlKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISignedUrlKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SignedUrlKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SignedUrlKey.verify|verify} messages.
                     * @param message SignedUrlKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISignedUrlKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SignedUrlKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SignedUrlKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SignedUrlKey;

                    /**
                     * Decodes a SignedUrlKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SignedUrlKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SignedUrlKey;

                    /**
                     * Verifies a SignedUrlKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SignedUrlKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SignedUrlKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SignedUrlKey;

                    /**
                     * Creates a plain object from a SignedUrlKey message. Also converts values to other types if specified.
                     * @param message SignedUrlKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SignedUrlKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SignedUrlKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SignedUrlKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SimulateMaintenanceEventInstanceRequest. */
                interface ISimulateMaintenanceEventInstanceRequest {

                    /** SimulateMaintenanceEventInstanceRequest instance */
                    instance?: (string|null);

                    /** SimulateMaintenanceEventInstanceRequest project */
                    project?: (string|null);

                    /** SimulateMaintenanceEventInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SimulateMaintenanceEventInstanceRequest withExtendedNotifications */
                    withExtendedNotifications?: (boolean|null);

                    /** SimulateMaintenanceEventInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SimulateMaintenanceEventInstanceRequest. */
                class SimulateMaintenanceEventInstanceRequest implements ISimulateMaintenanceEventInstanceRequest {

                    /**
                     * Constructs a new SimulateMaintenanceEventInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISimulateMaintenanceEventInstanceRequest);

                    /** SimulateMaintenanceEventInstanceRequest instance. */
                    public instance: string;

                    /** SimulateMaintenanceEventInstanceRequest project. */
                    public project: string;

                    /** SimulateMaintenanceEventInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SimulateMaintenanceEventInstanceRequest withExtendedNotifications. */
                    public withExtendedNotifications?: (boolean|null);

                    /** SimulateMaintenanceEventInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SimulateMaintenanceEventInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SimulateMaintenanceEventInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISimulateMaintenanceEventInstanceRequest): google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest;

                    /**
                     * Encodes the specified SimulateMaintenanceEventInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest.verify|verify} messages.
                     * @param message SimulateMaintenanceEventInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISimulateMaintenanceEventInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SimulateMaintenanceEventInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest.verify|verify} messages.
                     * @param message SimulateMaintenanceEventInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISimulateMaintenanceEventInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SimulateMaintenanceEventInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SimulateMaintenanceEventInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest;

                    /**
                     * Decodes a SimulateMaintenanceEventInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SimulateMaintenanceEventInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest;

                    /**
                     * Verifies a SimulateMaintenanceEventInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SimulateMaintenanceEventInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SimulateMaintenanceEventInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest;

                    /**
                     * Creates a plain object from a SimulateMaintenanceEventInstanceRequest message. Also converts values to other types if specified.
                     * @param message SimulateMaintenanceEventInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SimulateMaintenanceEventInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SimulateMaintenanceEventInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SimulateMaintenanceEventNodeGroupRequest. */
                interface ISimulateMaintenanceEventNodeGroupRequest {

                    /** SimulateMaintenanceEventNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** SimulateMaintenanceEventNodeGroupRequest nodeGroupsSimulateMaintenanceEventRequestResource */
                    nodeGroupsSimulateMaintenanceEventRequestResource?: (google.cloud.compute.v1.INodeGroupsSimulateMaintenanceEventRequest|null);

                    /** SimulateMaintenanceEventNodeGroupRequest project */
                    project?: (string|null);

                    /** SimulateMaintenanceEventNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** SimulateMaintenanceEventNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SimulateMaintenanceEventNodeGroupRequest. */
                class SimulateMaintenanceEventNodeGroupRequest implements ISimulateMaintenanceEventNodeGroupRequest {

                    /**
                     * Constructs a new SimulateMaintenanceEventNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISimulateMaintenanceEventNodeGroupRequest);

                    /** SimulateMaintenanceEventNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** SimulateMaintenanceEventNodeGroupRequest nodeGroupsSimulateMaintenanceEventRequestResource. */
                    public nodeGroupsSimulateMaintenanceEventRequestResource?: (google.cloud.compute.v1.INodeGroupsSimulateMaintenanceEventRequest|null);

                    /** SimulateMaintenanceEventNodeGroupRequest project. */
                    public project: string;

                    /** SimulateMaintenanceEventNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** SimulateMaintenanceEventNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SimulateMaintenanceEventNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SimulateMaintenanceEventNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISimulateMaintenanceEventNodeGroupRequest): google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest;

                    /**
                     * Encodes the specified SimulateMaintenanceEventNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest.verify|verify} messages.
                     * @param message SimulateMaintenanceEventNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISimulateMaintenanceEventNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SimulateMaintenanceEventNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest.verify|verify} messages.
                     * @param message SimulateMaintenanceEventNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISimulateMaintenanceEventNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SimulateMaintenanceEventNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SimulateMaintenanceEventNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest;

                    /**
                     * Decodes a SimulateMaintenanceEventNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SimulateMaintenanceEventNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest;

                    /**
                     * Verifies a SimulateMaintenanceEventNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SimulateMaintenanceEventNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SimulateMaintenanceEventNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest;

                    /**
                     * Creates a plain object from a SimulateMaintenanceEventNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message SimulateMaintenanceEventNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SimulateMaintenanceEventNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SimulateMaintenanceEventNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Snapshot. */
                interface ISnapshot {

                    /** Snapshot architecture */
                    architecture?: (string|null);

                    /** Snapshot autoCreated */
                    autoCreated?: (boolean|null);

                    /** Snapshot chainName */
                    chainName?: (string|null);

                    /** Snapshot creationSizeBytes */
                    creationSizeBytes?: (number|Long|string|null);

                    /** Snapshot creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Snapshot description */
                    description?: (string|null);

                    /** Snapshot diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** Snapshot downloadBytes */
                    downloadBytes?: (number|Long|string|null);

                    /** Snapshot enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);

                    /** Snapshot guestFlush */
                    guestFlush?: (boolean|null);

                    /** Snapshot guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1.IGuestOsFeature[]|null);

                    /** Snapshot id */
                    id?: (number|Long|string|null);

                    /** Snapshot kind */
                    kind?: (string|null);

                    /** Snapshot labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Snapshot labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Snapshot licenseCodes */
                    licenseCodes?: ((number|Long|string)[]|null);

                    /** Snapshot licenses */
                    licenses?: (string[]|null);

                    /** Snapshot locationHint */
                    locationHint?: (string|null);

                    /** Snapshot name */
                    name?: (string|null);

                    /** Snapshot params */
                    params?: (google.cloud.compute.v1.ISnapshotParams|null);

                    /** Snapshot satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** Snapshot satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Snapshot selfLink */
                    selfLink?: (string|null);

                    /** Snapshot snapshotEncryptionKey */
                    snapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Snapshot snapshotType */
                    snapshotType?: (string|null);

                    /** Snapshot sourceDisk */
                    sourceDisk?: (string|null);

                    /** Snapshot sourceDiskEncryptionKey */
                    sourceDiskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Snapshot sourceDiskForRecoveryCheckpoint */
                    sourceDiskForRecoveryCheckpoint?: (string|null);

                    /** Snapshot sourceDiskId */
                    sourceDiskId?: (string|null);

                    /** Snapshot sourceInstantSnapshot */
                    sourceInstantSnapshot?: (string|null);

                    /** Snapshot sourceInstantSnapshotEncryptionKey */
                    sourceInstantSnapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Snapshot sourceInstantSnapshotId */
                    sourceInstantSnapshotId?: (string|null);

                    /** Snapshot sourceSnapshotSchedulePolicy */
                    sourceSnapshotSchedulePolicy?: (string|null);

                    /** Snapshot sourceSnapshotSchedulePolicyId */
                    sourceSnapshotSchedulePolicyId?: (string|null);

                    /** Snapshot status */
                    status?: (string|null);

                    /** Snapshot storageBytes */
                    storageBytes?: (number|Long|string|null);

                    /** Snapshot storageBytesStatus */
                    storageBytesStatus?: (string|null);

                    /** Snapshot storageLocations */
                    storageLocations?: (string[]|null);
                }

                /** Represents a Snapshot. */
                class Snapshot implements ISnapshot {

                    /**
                     * Constructs a new Snapshot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISnapshot);

                    /** Snapshot architecture. */
                    public architecture?: (string|null);

                    /** Snapshot autoCreated. */
                    public autoCreated?: (boolean|null);

                    /** Snapshot chainName. */
                    public chainName?: (string|null);

                    /** Snapshot creationSizeBytes. */
                    public creationSizeBytes?: (number|Long|string|null);

                    /** Snapshot creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Snapshot description. */
                    public description?: (string|null);

                    /** Snapshot diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** Snapshot downloadBytes. */
                    public downloadBytes?: (number|Long|string|null);

                    /** Snapshot enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /** Snapshot guestFlush. */
                    public guestFlush?: (boolean|null);

                    /** Snapshot guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1.IGuestOsFeature[];

                    /** Snapshot id. */
                    public id?: (number|Long|string|null);

                    /** Snapshot kind. */
                    public kind?: (string|null);

                    /** Snapshot labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Snapshot labels. */
                    public labels: { [k: string]: string };

                    /** Snapshot licenseCodes. */
                    public licenseCodes: (number|Long|string)[];

                    /** Snapshot licenses. */
                    public licenses: string[];

                    /** Snapshot locationHint. */
                    public locationHint?: (string|null);

                    /** Snapshot name. */
                    public name?: (string|null);

                    /** Snapshot params. */
                    public params?: (google.cloud.compute.v1.ISnapshotParams|null);

                    /** Snapshot satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Snapshot satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Snapshot selfLink. */
                    public selfLink?: (string|null);

                    /** Snapshot snapshotEncryptionKey. */
                    public snapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Snapshot snapshotType. */
                    public snapshotType?: (string|null);

                    /** Snapshot sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** Snapshot sourceDiskEncryptionKey. */
                    public sourceDiskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Snapshot sourceDiskForRecoveryCheckpoint. */
                    public sourceDiskForRecoveryCheckpoint?: (string|null);

                    /** Snapshot sourceDiskId. */
                    public sourceDiskId?: (string|null);

                    /** Snapshot sourceInstantSnapshot. */
                    public sourceInstantSnapshot?: (string|null);

                    /** Snapshot sourceInstantSnapshotEncryptionKey. */
                    public sourceInstantSnapshotEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** Snapshot sourceInstantSnapshotId. */
                    public sourceInstantSnapshotId?: (string|null);

                    /** Snapshot sourceSnapshotSchedulePolicy. */
                    public sourceSnapshotSchedulePolicy?: (string|null);

                    /** Snapshot sourceSnapshotSchedulePolicyId. */
                    public sourceSnapshotSchedulePolicyId?: (string|null);

                    /** Snapshot status. */
                    public status?: (string|null);

                    /** Snapshot storageBytes. */
                    public storageBytes?: (number|Long|string|null);

                    /** Snapshot storageBytesStatus. */
                    public storageBytesStatus?: (string|null);

                    /** Snapshot storageLocations. */
                    public storageLocations: string[];

                    /**
                     * Creates a new Snapshot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Snapshot instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISnapshot): google.cloud.compute.v1.Snapshot;

                    /**
                     * Encodes the specified Snapshot message. Does not implicitly {@link google.cloud.compute.v1.Snapshot.verify|verify} messages.
                     * @param message Snapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Snapshot message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Snapshot.verify|verify} messages.
                     * @param message Snapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Snapshot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Snapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Snapshot;

                    /**
                     * Decodes a Snapshot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Snapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Snapshot;

                    /**
                     * Verifies a Snapshot message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Snapshot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Snapshot
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Snapshot;

                    /**
                     * Creates a plain object from a Snapshot message. Also converts values to other types if specified.
                     * @param message Snapshot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Snapshot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Snapshot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Snapshot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Snapshot {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** SnapshotType enum. */
                    enum SnapshotType {
                        UNDEFINED_SNAPSHOT_TYPE = 0,
                        ARCHIVE = 506752162,
                        STANDARD = 484642493
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963,
                        UPLOADING = 267603489
                    }

                    /** StorageBytesStatus enum. */
                    enum StorageBytesStatus {
                        UNDEFINED_STORAGE_BYTES_STATUS = 0,
                        UPDATING = 494614342,
                        UP_TO_DATE = 101306702
                    }
                }

                /** Properties of a SnapshotList. */
                interface ISnapshotList {

                    /** SnapshotList id */
                    id?: (string|null);

                    /** SnapshotList items */
                    items?: (google.cloud.compute.v1.ISnapshot[]|null);

                    /** SnapshotList kind */
                    kind?: (string|null);

                    /** SnapshotList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SnapshotList selfLink */
                    selfLink?: (string|null);

                    /** SnapshotList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SnapshotList. */
                class SnapshotList implements ISnapshotList {

                    /**
                     * Constructs a new SnapshotList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISnapshotList);

                    /** SnapshotList id. */
                    public id?: (string|null);

                    /** SnapshotList items. */
                    public items: google.cloud.compute.v1.ISnapshot[];

                    /** SnapshotList kind. */
                    public kind?: (string|null);

                    /** SnapshotList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SnapshotList selfLink. */
                    public selfLink?: (string|null);

                    /** SnapshotList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SnapshotList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISnapshotList): google.cloud.compute.v1.SnapshotList;

                    /**
                     * Encodes the specified SnapshotList message. Does not implicitly {@link google.cloud.compute.v1.SnapshotList.verify|verify} messages.
                     * @param message SnapshotList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISnapshotList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SnapshotList.verify|verify} messages.
                     * @param message SnapshotList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISnapshotList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SnapshotList;

                    /**
                     * Decodes a SnapshotList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SnapshotList;

                    /**
                     * Verifies a SnapshotList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SnapshotList;

                    /**
                     * Creates a plain object from a SnapshotList message. Also converts values to other types if specified.
                     * @param message SnapshotList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SnapshotList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotParams. */
                interface ISnapshotParams {

                    /** SnapshotParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a SnapshotParams. */
                class SnapshotParams implements ISnapshotParams {

                    /**
                     * Constructs a new SnapshotParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISnapshotParams);

                    /** SnapshotParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new SnapshotParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISnapshotParams): google.cloud.compute.v1.SnapshotParams;

                    /**
                     * Encodes the specified SnapshotParams message. Does not implicitly {@link google.cloud.compute.v1.SnapshotParams.verify|verify} messages.
                     * @param message SnapshotParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISnapshotParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SnapshotParams.verify|verify} messages.
                     * @param message SnapshotParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISnapshotParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SnapshotParams;

                    /**
                     * Decodes a SnapshotParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SnapshotParams;

                    /**
                     * Verifies a SnapshotParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SnapshotParams;

                    /**
                     * Creates a plain object from a SnapshotParams message. Also converts values to other types if specified.
                     * @param message SnapshotParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SnapshotParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotSettings. */
                interface ISnapshotSettings {

                    /** SnapshotSettings storageLocation */
                    storageLocation?: (google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettings|null);
                }

                /** Represents a SnapshotSettings. */
                class SnapshotSettings implements ISnapshotSettings {

                    /**
                     * Constructs a new SnapshotSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISnapshotSettings);

                    /** SnapshotSettings storageLocation. */
                    public storageLocation?: (google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettings|null);

                    /**
                     * Creates a new SnapshotSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISnapshotSettings): google.cloud.compute.v1.SnapshotSettings;

                    /**
                     * Encodes the specified SnapshotSettings message. Does not implicitly {@link google.cloud.compute.v1.SnapshotSettings.verify|verify} messages.
                     * @param message SnapshotSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISnapshotSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SnapshotSettings.verify|verify} messages.
                     * @param message SnapshotSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISnapshotSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SnapshotSettings;

                    /**
                     * Decodes a SnapshotSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SnapshotSettings;

                    /**
                     * Verifies a SnapshotSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SnapshotSettings;

                    /**
                     * Creates a plain object from a SnapshotSettings message. Also converts values to other types if specified.
                     * @param message SnapshotSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SnapshotSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotSettingsStorageLocationSettings. */
                interface ISnapshotSettingsStorageLocationSettings {

                    /** SnapshotSettingsStorageLocationSettings locations */
                    locations?: ({ [k: string]: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference }|null);

                    /** SnapshotSettingsStorageLocationSettings policy */
                    policy?: (string|null);
                }

                /** Represents a SnapshotSettingsStorageLocationSettings. */
                class SnapshotSettingsStorageLocationSettings implements ISnapshotSettingsStorageLocationSettings {

                    /**
                     * Constructs a new SnapshotSettingsStorageLocationSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettings);

                    /** SnapshotSettingsStorageLocationSettings locations. */
                    public locations: { [k: string]: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference };

                    /** SnapshotSettingsStorageLocationSettings policy. */
                    public policy?: (string|null);

                    /**
                     * Creates a new SnapshotSettingsStorageLocationSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotSettingsStorageLocationSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettings): google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings;

                    /**
                     * Encodes the specified SnapshotSettingsStorageLocationSettings message. Does not implicitly {@link google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings.verify|verify} messages.
                     * @param message SnapshotSettingsStorageLocationSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotSettingsStorageLocationSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings.verify|verify} messages.
                     * @param message SnapshotSettingsStorageLocationSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotSettingsStorageLocationSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotSettingsStorageLocationSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings;

                    /**
                     * Decodes a SnapshotSettingsStorageLocationSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotSettingsStorageLocationSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings;

                    /**
                     * Verifies a SnapshotSettingsStorageLocationSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotSettingsStorageLocationSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotSettingsStorageLocationSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings;

                    /**
                     * Creates a plain object from a SnapshotSettingsStorageLocationSettings message. Also converts values to other types if specified.
                     * @param message SnapshotSettingsStorageLocationSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotSettingsStorageLocationSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotSettingsStorageLocationSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SnapshotSettingsStorageLocationSettings {

                    /** Policy enum. */
                    enum Policy {
                        UNDEFINED_POLICY = 0,
                        LOCAL_REGION = 403535464,
                        NEAREST_MULTI_REGION = 212467515,
                        SPECIFIC_LOCATIONS = 280093809,
                        STORAGE_LOCATION_POLICY_UNSPECIFIED = 250644592
                    }
                }

                /** Properties of a SnapshotSettingsStorageLocationSettingsStorageLocationPreference. */
                interface ISnapshotSettingsStorageLocationSettingsStorageLocationPreference {

                    /** SnapshotSettingsStorageLocationSettingsStorageLocationPreference name */
                    name?: (string|null);
                }

                /** Represents a SnapshotSettingsStorageLocationSettingsStorageLocationPreference. */
                class SnapshotSettingsStorageLocationSettingsStorageLocationPreference implements ISnapshotSettingsStorageLocationSettingsStorageLocationPreference {

                    /**
                     * Constructs a new SnapshotSettingsStorageLocationSettingsStorageLocationPreference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference);

                    /** SnapshotSettingsStorageLocationSettingsStorageLocationPreference name. */
                    public name?: (string|null);

                    /**
                     * Creates a new SnapshotSettingsStorageLocationSettingsStorageLocationPreference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotSettingsStorageLocationSettingsStorageLocationPreference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference): google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference;

                    /**
                     * Encodes the specified SnapshotSettingsStorageLocationSettingsStorageLocationPreference message. Does not implicitly {@link google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference.verify|verify} messages.
                     * @param message SnapshotSettingsStorageLocationSettingsStorageLocationPreference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotSettingsStorageLocationSettingsStorageLocationPreference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference.verify|verify} messages.
                     * @param message SnapshotSettingsStorageLocationSettingsStorageLocationPreference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference;

                    /**
                     * Decodes a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference;

                    /**
                     * Verifies a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference;

                    /**
                     * Creates a plain object from a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message. Also converts values to other types if specified.
                     * @param message SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotSettingsStorageLocationSettingsStorageLocationPreference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceDiskEncryptionKey. */
                interface ISourceDiskEncryptionKey {

                    /** SourceDiskEncryptionKey diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** SourceDiskEncryptionKey sourceDisk */
                    sourceDisk?: (string|null);
                }

                /** Represents a SourceDiskEncryptionKey. */
                class SourceDiskEncryptionKey implements ISourceDiskEncryptionKey {

                    /**
                     * Constructs a new SourceDiskEncryptionKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISourceDiskEncryptionKey);

                    /** SourceDiskEncryptionKey diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1.ICustomerEncryptionKey|null);

                    /** SourceDiskEncryptionKey sourceDisk. */
                    public sourceDisk?: (string|null);

                    /**
                     * Creates a new SourceDiskEncryptionKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceDiskEncryptionKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISourceDiskEncryptionKey): google.cloud.compute.v1.SourceDiskEncryptionKey;

                    /**
                     * Encodes the specified SourceDiskEncryptionKey message. Does not implicitly {@link google.cloud.compute.v1.SourceDiskEncryptionKey.verify|verify} messages.
                     * @param message SourceDiskEncryptionKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISourceDiskEncryptionKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceDiskEncryptionKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SourceDiskEncryptionKey.verify|verify} messages.
                     * @param message SourceDiskEncryptionKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISourceDiskEncryptionKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceDiskEncryptionKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceDiskEncryptionKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SourceDiskEncryptionKey;

                    /**
                     * Decodes a SourceDiskEncryptionKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceDiskEncryptionKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SourceDiskEncryptionKey;

                    /**
                     * Verifies a SourceDiskEncryptionKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceDiskEncryptionKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceDiskEncryptionKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SourceDiskEncryptionKey;

                    /**
                     * Creates a plain object from a SourceDiskEncryptionKey message. Also converts values to other types if specified.
                     * @param message SourceDiskEncryptionKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SourceDiskEncryptionKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceDiskEncryptionKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceDiskEncryptionKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceInstanceParams. */
                interface ISourceInstanceParams {

                    /** SourceInstanceParams diskConfigs */
                    diskConfigs?: (google.cloud.compute.v1.IDiskInstantiationConfig[]|null);
                }

                /** Represents a SourceInstanceParams. */
                class SourceInstanceParams implements ISourceInstanceParams {

                    /**
                     * Constructs a new SourceInstanceParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISourceInstanceParams);

                    /** SourceInstanceParams diskConfigs. */
                    public diskConfigs: google.cloud.compute.v1.IDiskInstantiationConfig[];

                    /**
                     * Creates a new SourceInstanceParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceInstanceParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISourceInstanceParams): google.cloud.compute.v1.SourceInstanceParams;

                    /**
                     * Encodes the specified SourceInstanceParams message. Does not implicitly {@link google.cloud.compute.v1.SourceInstanceParams.verify|verify} messages.
                     * @param message SourceInstanceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISourceInstanceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceInstanceParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SourceInstanceParams.verify|verify} messages.
                     * @param message SourceInstanceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISourceInstanceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceInstanceParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceInstanceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SourceInstanceParams;

                    /**
                     * Decodes a SourceInstanceParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceInstanceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SourceInstanceParams;

                    /**
                     * Verifies a SourceInstanceParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceInstanceParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceInstanceParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SourceInstanceParams;

                    /**
                     * Creates a plain object from a SourceInstanceParams message. Also converts values to other types if specified.
                     * @param message SourceInstanceParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SourceInstanceParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceInstanceParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceInstanceParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceInstanceProperties. */
                interface ISourceInstanceProperties {

                    /** SourceInstanceProperties canIpForward */
                    canIpForward?: (boolean|null);

                    /** SourceInstanceProperties deletionProtection */
                    deletionProtection?: (boolean|null);

                    /** SourceInstanceProperties description */
                    description?: (string|null);

                    /** SourceInstanceProperties disks */
                    disks?: (google.cloud.compute.v1.ISavedAttachedDisk[]|null);

                    /** SourceInstanceProperties guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1.IAcceleratorConfig[]|null);

                    /** SourceInstanceProperties keyRevocationActionType */
                    keyRevocationActionType?: (string|null);

                    /** SourceInstanceProperties labels */
                    labels?: ({ [k: string]: string }|null);

                    /** SourceInstanceProperties machineType */
                    machineType?: (string|null);

                    /** SourceInstanceProperties metadata */
                    metadata?: (google.cloud.compute.v1.IMetadata|null);

                    /** SourceInstanceProperties minCpuPlatform */
                    minCpuPlatform?: (string|null);

                    /** SourceInstanceProperties networkInterfaces */
                    networkInterfaces?: (google.cloud.compute.v1.INetworkInterface[]|null);

                    /** SourceInstanceProperties postKeyRevocationActionType */
                    postKeyRevocationActionType?: (string|null);

                    /** SourceInstanceProperties scheduling */
                    scheduling?: (google.cloud.compute.v1.IScheduling|null);

                    /** SourceInstanceProperties serviceAccounts */
                    serviceAccounts?: (google.cloud.compute.v1.IServiceAccount[]|null);

                    /** SourceInstanceProperties tags */
                    tags?: (google.cloud.compute.v1.ITags|null);
                }

                /** Represents a SourceInstanceProperties. */
                class SourceInstanceProperties implements ISourceInstanceProperties {

                    /**
                     * Constructs a new SourceInstanceProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISourceInstanceProperties);

                    /** SourceInstanceProperties canIpForward. */
                    public canIpForward?: (boolean|null);

                    /** SourceInstanceProperties deletionProtection. */
                    public deletionProtection?: (boolean|null);

                    /** SourceInstanceProperties description. */
                    public description?: (string|null);

                    /** SourceInstanceProperties disks. */
                    public disks: google.cloud.compute.v1.ISavedAttachedDisk[];

                    /** SourceInstanceProperties guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1.IAcceleratorConfig[];

                    /** SourceInstanceProperties keyRevocationActionType. */
                    public keyRevocationActionType?: (string|null);

                    /** SourceInstanceProperties labels. */
                    public labels: { [k: string]: string };

                    /** SourceInstanceProperties machineType. */
                    public machineType?: (string|null);

                    /** SourceInstanceProperties metadata. */
                    public metadata?: (google.cloud.compute.v1.IMetadata|null);

                    /** SourceInstanceProperties minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /** SourceInstanceProperties networkInterfaces. */
                    public networkInterfaces: google.cloud.compute.v1.INetworkInterface[];

                    /** SourceInstanceProperties postKeyRevocationActionType. */
                    public postKeyRevocationActionType?: (string|null);

                    /** SourceInstanceProperties scheduling. */
                    public scheduling?: (google.cloud.compute.v1.IScheduling|null);

                    /** SourceInstanceProperties serviceAccounts. */
                    public serviceAccounts: google.cloud.compute.v1.IServiceAccount[];

                    /** SourceInstanceProperties tags. */
                    public tags?: (google.cloud.compute.v1.ITags|null);

                    /**
                     * Creates a new SourceInstanceProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceInstanceProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISourceInstanceProperties): google.cloud.compute.v1.SourceInstanceProperties;

                    /**
                     * Encodes the specified SourceInstanceProperties message. Does not implicitly {@link google.cloud.compute.v1.SourceInstanceProperties.verify|verify} messages.
                     * @param message SourceInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISourceInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceInstanceProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SourceInstanceProperties.verify|verify} messages.
                     * @param message SourceInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISourceInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceInstanceProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SourceInstanceProperties;

                    /**
                     * Decodes a SourceInstanceProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SourceInstanceProperties;

                    /**
                     * Verifies a SourceInstanceProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceInstanceProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceInstanceProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SourceInstanceProperties;

                    /**
                     * Creates a plain object from a SourceInstanceProperties message. Also converts values to other types if specified.
                     * @param message SourceInstanceProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SourceInstanceProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceInstanceProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceInstanceProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SourceInstanceProperties {

                    /** KeyRevocationActionType enum. */
                    enum KeyRevocationActionType {
                        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0,
                        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106,
                        NONE = 2402104,
                        STOP = 2555906
                    }

                    /** PostKeyRevocationActionType enum. */
                    enum PostKeyRevocationActionType {
                        UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE = 0,
                        NOOP = 2402146,
                        POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 228738393,
                        SHUTDOWN = 76412502
                    }
                }

                /** Properties of a SslCertificate. */
                interface ISslCertificate {

                    /** SslCertificate certificate */
                    certificate?: (string|null);

                    /** SslCertificate creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** SslCertificate description */
                    description?: (string|null);

                    /** SslCertificate expireTime */
                    expireTime?: (string|null);

                    /** SslCertificate id */
                    id?: (number|Long|string|null);

                    /** SslCertificate kind */
                    kind?: (string|null);

                    /** SslCertificate managed */
                    managed?: (google.cloud.compute.v1.ISslCertificateManagedSslCertificate|null);

                    /** SslCertificate name */
                    name?: (string|null);

                    /** SslCertificate privateKey */
                    privateKey?: (string|null);

                    /** SslCertificate region */
                    region?: (string|null);

                    /** SslCertificate selfLink */
                    selfLink?: (string|null);

                    /** SslCertificate selfManaged */
                    selfManaged?: (google.cloud.compute.v1.ISslCertificateSelfManagedSslCertificate|null);

                    /** SslCertificate subjectAlternativeNames */
                    subjectAlternativeNames?: (string[]|null);

                    /** SslCertificate type */
                    type?: (string|null);
                }

                /** Represents a SslCertificate. */
                class SslCertificate implements ISslCertificate {

                    /**
                     * Constructs a new SslCertificate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslCertificate);

                    /** SslCertificate certificate. */
                    public certificate?: (string|null);

                    /** SslCertificate creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** SslCertificate description. */
                    public description?: (string|null);

                    /** SslCertificate expireTime. */
                    public expireTime?: (string|null);

                    /** SslCertificate id. */
                    public id?: (number|Long|string|null);

                    /** SslCertificate kind. */
                    public kind?: (string|null);

                    /** SslCertificate managed. */
                    public managed?: (google.cloud.compute.v1.ISslCertificateManagedSslCertificate|null);

                    /** SslCertificate name. */
                    public name?: (string|null);

                    /** SslCertificate privateKey. */
                    public privateKey?: (string|null);

                    /** SslCertificate region. */
                    public region?: (string|null);

                    /** SslCertificate selfLink. */
                    public selfLink?: (string|null);

                    /** SslCertificate selfManaged. */
                    public selfManaged?: (google.cloud.compute.v1.ISslCertificateSelfManagedSslCertificate|null);

                    /** SslCertificate subjectAlternativeNames. */
                    public subjectAlternativeNames: string[];

                    /** SslCertificate type. */
                    public type?: (string|null);

                    /**
                     * Creates a new SslCertificate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificate instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslCertificate): google.cloud.compute.v1.SslCertificate;

                    /**
                     * Encodes the specified SslCertificate message. Does not implicitly {@link google.cloud.compute.v1.SslCertificate.verify|verify} messages.
                     * @param message SslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificate message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslCertificate.verify|verify} messages.
                     * @param message SslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslCertificate;

                    /**
                     * Decodes a SslCertificate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslCertificate;

                    /**
                     * Verifies a SslCertificate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslCertificate;

                    /**
                     * Creates a plain object from a SslCertificate message. Also converts values to other types if specified.
                     * @param message SslCertificate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslCertificate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SslCertificate {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        MANAGED = 479501183,
                        SELF_MANAGED = 434437516,
                        TYPE_UNSPECIFIED = 437714322
                    }
                }

                /** Properties of a SslCertificateAggregatedList. */
                interface ISslCertificateAggregatedList {

                    /** SslCertificateAggregatedList id */
                    id?: (string|null);

                    /** SslCertificateAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ISslCertificatesScopedList }|null);

                    /** SslCertificateAggregatedList kind */
                    kind?: (string|null);

                    /** SslCertificateAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SslCertificateAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SslCertificateAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SslCertificateAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SslCertificateAggregatedList. */
                class SslCertificateAggregatedList implements ISslCertificateAggregatedList {

                    /**
                     * Constructs a new SslCertificateAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslCertificateAggregatedList);

                    /** SslCertificateAggregatedList id. */
                    public id?: (string|null);

                    /** SslCertificateAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ISslCertificatesScopedList };

                    /** SslCertificateAggregatedList kind. */
                    public kind?: (string|null);

                    /** SslCertificateAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SslCertificateAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SslCertificateAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SslCertificateAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SslCertificateAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificateAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslCertificateAggregatedList): google.cloud.compute.v1.SslCertificateAggregatedList;

                    /**
                     * Encodes the specified SslCertificateAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.SslCertificateAggregatedList.verify|verify} messages.
                     * @param message SslCertificateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslCertificateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificateAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslCertificateAggregatedList.verify|verify} messages.
                     * @param message SslCertificateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslCertificateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificateAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslCertificateAggregatedList;

                    /**
                     * Decodes a SslCertificateAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslCertificateAggregatedList;

                    /**
                     * Verifies a SslCertificateAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificateAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificateAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslCertificateAggregatedList;

                    /**
                     * Creates a plain object from a SslCertificateAggregatedList message. Also converts values to other types if specified.
                     * @param message SslCertificateAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslCertificateAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificateAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificateAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslCertificateList. */
                interface ISslCertificateList {

                    /** SslCertificateList id */
                    id?: (string|null);

                    /** SslCertificateList items */
                    items?: (google.cloud.compute.v1.ISslCertificate[]|null);

                    /** SslCertificateList kind */
                    kind?: (string|null);

                    /** SslCertificateList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SslCertificateList selfLink */
                    selfLink?: (string|null);

                    /** SslCertificateList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SslCertificateList. */
                class SslCertificateList implements ISslCertificateList {

                    /**
                     * Constructs a new SslCertificateList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslCertificateList);

                    /** SslCertificateList id. */
                    public id?: (string|null);

                    /** SslCertificateList items. */
                    public items: google.cloud.compute.v1.ISslCertificate[];

                    /** SslCertificateList kind. */
                    public kind?: (string|null);

                    /** SslCertificateList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SslCertificateList selfLink. */
                    public selfLink?: (string|null);

                    /** SslCertificateList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SslCertificateList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificateList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslCertificateList): google.cloud.compute.v1.SslCertificateList;

                    /**
                     * Encodes the specified SslCertificateList message. Does not implicitly {@link google.cloud.compute.v1.SslCertificateList.verify|verify} messages.
                     * @param message SslCertificateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslCertificateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificateList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslCertificateList.verify|verify} messages.
                     * @param message SslCertificateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslCertificateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificateList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslCertificateList;

                    /**
                     * Decodes a SslCertificateList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslCertificateList;

                    /**
                     * Verifies a SslCertificateList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificateList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificateList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslCertificateList;

                    /**
                     * Creates a plain object from a SslCertificateList message. Also converts values to other types if specified.
                     * @param message SslCertificateList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslCertificateList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificateList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificateList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslCertificateManagedSslCertificate. */
                interface ISslCertificateManagedSslCertificate {

                    /** SslCertificateManagedSslCertificate domainStatus */
                    domainStatus?: ({ [k: string]: string }|null);

                    /** SslCertificateManagedSslCertificate domains */
                    domains?: (string[]|null);

                    /** SslCertificateManagedSslCertificate status */
                    status?: (string|null);
                }

                /** Represents a SslCertificateManagedSslCertificate. */
                class SslCertificateManagedSslCertificate implements ISslCertificateManagedSslCertificate {

                    /**
                     * Constructs a new SslCertificateManagedSslCertificate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslCertificateManagedSslCertificate);

                    /** SslCertificateManagedSslCertificate domainStatus. */
                    public domainStatus: { [k: string]: string };

                    /** SslCertificateManagedSslCertificate domains. */
                    public domains: string[];

                    /** SslCertificateManagedSslCertificate status. */
                    public status?: (string|null);

                    /**
                     * Creates a new SslCertificateManagedSslCertificate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificateManagedSslCertificate instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslCertificateManagedSslCertificate): google.cloud.compute.v1.SslCertificateManagedSslCertificate;

                    /**
                     * Encodes the specified SslCertificateManagedSslCertificate message. Does not implicitly {@link google.cloud.compute.v1.SslCertificateManagedSslCertificate.verify|verify} messages.
                     * @param message SslCertificateManagedSslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslCertificateManagedSslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificateManagedSslCertificate message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslCertificateManagedSslCertificate.verify|verify} messages.
                     * @param message SslCertificateManagedSslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslCertificateManagedSslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificateManagedSslCertificate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificateManagedSslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslCertificateManagedSslCertificate;

                    /**
                     * Decodes a SslCertificateManagedSslCertificate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificateManagedSslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslCertificateManagedSslCertificate;

                    /**
                     * Verifies a SslCertificateManagedSslCertificate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificateManagedSslCertificate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificateManagedSslCertificate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslCertificateManagedSslCertificate;

                    /**
                     * Creates a plain object from a SslCertificateManagedSslCertificate message. Also converts values to other types if specified.
                     * @param message SslCertificateManagedSslCertificate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslCertificateManagedSslCertificate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificateManagedSslCertificate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificateManagedSslCertificate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SslCertificateManagedSslCertificate {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        MANAGED_CERTIFICATE_STATUS_UNSPECIFIED = 474800850,
                        PROVISIONING = 290896621,
                        PROVISIONING_FAILED = 76813775,
                        PROVISIONING_FAILED_PERMANENTLY = 275036203,
                        RENEWAL_FAILED = 434659076
                    }
                }

                /** Properties of a SslCertificateSelfManagedSslCertificate. */
                interface ISslCertificateSelfManagedSslCertificate {

                    /** SslCertificateSelfManagedSslCertificate certificate */
                    certificate?: (string|null);

                    /** SslCertificateSelfManagedSslCertificate privateKey */
                    privateKey?: (string|null);
                }

                /** Represents a SslCertificateSelfManagedSslCertificate. */
                class SslCertificateSelfManagedSslCertificate implements ISslCertificateSelfManagedSslCertificate {

                    /**
                     * Constructs a new SslCertificateSelfManagedSslCertificate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslCertificateSelfManagedSslCertificate);

                    /** SslCertificateSelfManagedSslCertificate certificate. */
                    public certificate?: (string|null);

                    /** SslCertificateSelfManagedSslCertificate privateKey. */
                    public privateKey?: (string|null);

                    /**
                     * Creates a new SslCertificateSelfManagedSslCertificate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificateSelfManagedSslCertificate instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslCertificateSelfManagedSslCertificate): google.cloud.compute.v1.SslCertificateSelfManagedSslCertificate;

                    /**
                     * Encodes the specified SslCertificateSelfManagedSslCertificate message. Does not implicitly {@link google.cloud.compute.v1.SslCertificateSelfManagedSslCertificate.verify|verify} messages.
                     * @param message SslCertificateSelfManagedSslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslCertificateSelfManagedSslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificateSelfManagedSslCertificate message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslCertificateSelfManagedSslCertificate.verify|verify} messages.
                     * @param message SslCertificateSelfManagedSslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslCertificateSelfManagedSslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificateSelfManagedSslCertificate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificateSelfManagedSslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslCertificateSelfManagedSslCertificate;

                    /**
                     * Decodes a SslCertificateSelfManagedSslCertificate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificateSelfManagedSslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslCertificateSelfManagedSslCertificate;

                    /**
                     * Verifies a SslCertificateSelfManagedSslCertificate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificateSelfManagedSslCertificate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificateSelfManagedSslCertificate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslCertificateSelfManagedSslCertificate;

                    /**
                     * Creates a plain object from a SslCertificateSelfManagedSslCertificate message. Also converts values to other types if specified.
                     * @param message SslCertificateSelfManagedSslCertificate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslCertificateSelfManagedSslCertificate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificateSelfManagedSslCertificate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificateSelfManagedSslCertificate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslCertificatesScopedList. */
                interface ISslCertificatesScopedList {

                    /** SslCertificatesScopedList sslCertificates */
                    sslCertificates?: (google.cloud.compute.v1.ISslCertificate[]|null);

                    /** SslCertificatesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SslCertificatesScopedList. */
                class SslCertificatesScopedList implements ISslCertificatesScopedList {

                    /**
                     * Constructs a new SslCertificatesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslCertificatesScopedList);

                    /** SslCertificatesScopedList sslCertificates. */
                    public sslCertificates: google.cloud.compute.v1.ISslCertificate[];

                    /** SslCertificatesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SslCertificatesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificatesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslCertificatesScopedList): google.cloud.compute.v1.SslCertificatesScopedList;

                    /**
                     * Encodes the specified SslCertificatesScopedList message. Does not implicitly {@link google.cloud.compute.v1.SslCertificatesScopedList.verify|verify} messages.
                     * @param message SslCertificatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslCertificatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificatesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslCertificatesScopedList.verify|verify} messages.
                     * @param message SslCertificatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslCertificatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificatesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslCertificatesScopedList;

                    /**
                     * Decodes a SslCertificatesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslCertificatesScopedList;

                    /**
                     * Verifies a SslCertificatesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificatesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificatesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslCertificatesScopedList;

                    /**
                     * Creates a plain object from a SslCertificatesScopedList message. Also converts values to other types if specified.
                     * @param message SslCertificatesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslCertificatesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificatesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificatesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPoliciesAggregatedList. */
                interface ISslPoliciesAggregatedList {

                    /** SslPoliciesAggregatedList etag */
                    etag?: (string|null);

                    /** SslPoliciesAggregatedList id */
                    id?: (string|null);

                    /** SslPoliciesAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ISslPoliciesScopedList }|null);

                    /** SslPoliciesAggregatedList kind */
                    kind?: (string|null);

                    /** SslPoliciesAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SslPoliciesAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SslPoliciesAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SslPoliciesAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SslPoliciesAggregatedList. */
                class SslPoliciesAggregatedList implements ISslPoliciesAggregatedList {

                    /**
                     * Constructs a new SslPoliciesAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslPoliciesAggregatedList);

                    /** SslPoliciesAggregatedList etag. */
                    public etag?: (string|null);

                    /** SslPoliciesAggregatedList id. */
                    public id?: (string|null);

                    /** SslPoliciesAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ISslPoliciesScopedList };

                    /** SslPoliciesAggregatedList kind. */
                    public kind?: (string|null);

                    /** SslPoliciesAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SslPoliciesAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SslPoliciesAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SslPoliciesAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SslPoliciesAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPoliciesAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslPoliciesAggregatedList): google.cloud.compute.v1.SslPoliciesAggregatedList;

                    /**
                     * Encodes the specified SslPoliciesAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.SslPoliciesAggregatedList.verify|verify} messages.
                     * @param message SslPoliciesAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslPoliciesAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPoliciesAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslPoliciesAggregatedList.verify|verify} messages.
                     * @param message SslPoliciesAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslPoliciesAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPoliciesAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPoliciesAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslPoliciesAggregatedList;

                    /**
                     * Decodes a SslPoliciesAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPoliciesAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslPoliciesAggregatedList;

                    /**
                     * Verifies a SslPoliciesAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPoliciesAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPoliciesAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslPoliciesAggregatedList;

                    /**
                     * Creates a plain object from a SslPoliciesAggregatedList message. Also converts values to other types if specified.
                     * @param message SslPoliciesAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslPoliciesAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPoliciesAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPoliciesAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPoliciesList. */
                interface ISslPoliciesList {

                    /** SslPoliciesList id */
                    id?: (string|null);

                    /** SslPoliciesList items */
                    items?: (google.cloud.compute.v1.ISslPolicy[]|null);

                    /** SslPoliciesList kind */
                    kind?: (string|null);

                    /** SslPoliciesList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SslPoliciesList selfLink */
                    selfLink?: (string|null);

                    /** SslPoliciesList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SslPoliciesList. */
                class SslPoliciesList implements ISslPoliciesList {

                    /**
                     * Constructs a new SslPoliciesList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslPoliciesList);

                    /** SslPoliciesList id. */
                    public id?: (string|null);

                    /** SslPoliciesList items. */
                    public items: google.cloud.compute.v1.ISslPolicy[];

                    /** SslPoliciesList kind. */
                    public kind?: (string|null);

                    /** SslPoliciesList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SslPoliciesList selfLink. */
                    public selfLink?: (string|null);

                    /** SslPoliciesList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SslPoliciesList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPoliciesList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslPoliciesList): google.cloud.compute.v1.SslPoliciesList;

                    /**
                     * Encodes the specified SslPoliciesList message. Does not implicitly {@link google.cloud.compute.v1.SslPoliciesList.verify|verify} messages.
                     * @param message SslPoliciesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslPoliciesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPoliciesList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslPoliciesList.verify|verify} messages.
                     * @param message SslPoliciesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslPoliciesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPoliciesList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPoliciesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslPoliciesList;

                    /**
                     * Decodes a SslPoliciesList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPoliciesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslPoliciesList;

                    /**
                     * Verifies a SslPoliciesList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPoliciesList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPoliciesList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslPoliciesList;

                    /**
                     * Creates a plain object from a SslPoliciesList message. Also converts values to other types if specified.
                     * @param message SslPoliciesList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslPoliciesList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPoliciesList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPoliciesList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPoliciesListAvailableFeaturesResponse. */
                interface ISslPoliciesListAvailableFeaturesResponse {

                    /** SslPoliciesListAvailableFeaturesResponse features */
                    features?: (string[]|null);
                }

                /** Represents a SslPoliciesListAvailableFeaturesResponse. */
                class SslPoliciesListAvailableFeaturesResponse implements ISslPoliciesListAvailableFeaturesResponse {

                    /**
                     * Constructs a new SslPoliciesListAvailableFeaturesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslPoliciesListAvailableFeaturesResponse);

                    /** SslPoliciesListAvailableFeaturesResponse features. */
                    public features: string[];

                    /**
                     * Creates a new SslPoliciesListAvailableFeaturesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPoliciesListAvailableFeaturesResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslPoliciesListAvailableFeaturesResponse): google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse;

                    /**
                     * Encodes the specified SslPoliciesListAvailableFeaturesResponse message. Does not implicitly {@link google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse.verify|verify} messages.
                     * @param message SslPoliciesListAvailableFeaturesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslPoliciesListAvailableFeaturesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPoliciesListAvailableFeaturesResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse.verify|verify} messages.
                     * @param message SslPoliciesListAvailableFeaturesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslPoliciesListAvailableFeaturesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPoliciesListAvailableFeaturesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPoliciesListAvailableFeaturesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse;

                    /**
                     * Decodes a SslPoliciesListAvailableFeaturesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPoliciesListAvailableFeaturesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse;

                    /**
                     * Verifies a SslPoliciesListAvailableFeaturesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPoliciesListAvailableFeaturesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPoliciesListAvailableFeaturesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse;

                    /**
                     * Creates a plain object from a SslPoliciesListAvailableFeaturesResponse message. Also converts values to other types if specified.
                     * @param message SslPoliciesListAvailableFeaturesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPoliciesListAvailableFeaturesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPoliciesListAvailableFeaturesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPoliciesScopedList. */
                interface ISslPoliciesScopedList {

                    /** SslPoliciesScopedList sslPolicies */
                    sslPolicies?: (google.cloud.compute.v1.ISslPolicy[]|null);

                    /** SslPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SslPoliciesScopedList. */
                class SslPoliciesScopedList implements ISslPoliciesScopedList {

                    /**
                     * Constructs a new SslPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslPoliciesScopedList);

                    /** SslPoliciesScopedList sslPolicies. */
                    public sslPolicies: google.cloud.compute.v1.ISslPolicy[];

                    /** SslPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SslPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslPoliciesScopedList): google.cloud.compute.v1.SslPoliciesScopedList;

                    /**
                     * Encodes the specified SslPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1.SslPoliciesScopedList.verify|verify} messages.
                     * @param message SslPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslPoliciesScopedList.verify|verify} messages.
                     * @param message SslPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslPoliciesScopedList;

                    /**
                     * Decodes a SslPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslPoliciesScopedList;

                    /**
                     * Verifies a SslPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslPoliciesScopedList;

                    /**
                     * Creates a plain object from a SslPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message SslPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPolicy. */
                interface ISslPolicy {

                    /** SslPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** SslPolicy customFeatures */
                    customFeatures?: (string[]|null);

                    /** SslPolicy description */
                    description?: (string|null);

                    /** SslPolicy enabledFeatures */
                    enabledFeatures?: (string[]|null);

                    /** SslPolicy fingerprint */
                    fingerprint?: (string|null);

                    /** SslPolicy id */
                    id?: (number|Long|string|null);

                    /** SslPolicy kind */
                    kind?: (string|null);

                    /** SslPolicy minTlsVersion */
                    minTlsVersion?: (string|null);

                    /** SslPolicy name */
                    name?: (string|null);

                    /** SslPolicy profile */
                    profile?: (string|null);

                    /** SslPolicy region */
                    region?: (string|null);

                    /** SslPolicy selfLink */
                    selfLink?: (string|null);

                    /** SslPolicy warnings */
                    warnings?: (google.cloud.compute.v1.IWarnings[]|null);
                }

                /** Represents a SslPolicy. */
                class SslPolicy implements ISslPolicy {

                    /**
                     * Constructs a new SslPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslPolicy);

                    /** SslPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** SslPolicy customFeatures. */
                    public customFeatures: string[];

                    /** SslPolicy description. */
                    public description?: (string|null);

                    /** SslPolicy enabledFeatures. */
                    public enabledFeatures: string[];

                    /** SslPolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** SslPolicy id. */
                    public id?: (number|Long|string|null);

                    /** SslPolicy kind. */
                    public kind?: (string|null);

                    /** SslPolicy minTlsVersion. */
                    public minTlsVersion?: (string|null);

                    /** SslPolicy name. */
                    public name?: (string|null);

                    /** SslPolicy profile. */
                    public profile?: (string|null);

                    /** SslPolicy region. */
                    public region?: (string|null);

                    /** SslPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** SslPolicy warnings. */
                    public warnings: google.cloud.compute.v1.IWarnings[];

                    /**
                     * Creates a new SslPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslPolicy): google.cloud.compute.v1.SslPolicy;

                    /**
                     * Encodes the specified SslPolicy message. Does not implicitly {@link google.cloud.compute.v1.SslPolicy.verify|verify} messages.
                     * @param message SslPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslPolicy.verify|verify} messages.
                     * @param message SslPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslPolicy;

                    /**
                     * Decodes a SslPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslPolicy;

                    /**
                     * Verifies a SslPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslPolicy;

                    /**
                     * Creates a plain object from a SslPolicy message. Also converts values to other types if specified.
                     * @param message SslPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SslPolicy {

                    /** MinTlsVersion enum. */
                    enum MinTlsVersion {
                        UNDEFINED_MIN_TLS_VERSION = 0,
                        TLS_1_0 = 33116734,
                        TLS_1_1 = 33116735,
                        TLS_1_2 = 33116736,
                        TLS_1_3 = 33116737
                    }

                    /** Profile enum. */
                    enum Profile {
                        UNDEFINED_PROFILE = 0,
                        COMPATIBLE = 179357396,
                        CUSTOM = 388595569,
                        FIPS_202205 = 475828188,
                        MODERN = 132013855,
                        RESTRICTED = 261551195
                    }
                }

                /** Properties of a SslPolicyReference. */
                interface ISslPolicyReference {

                    /** SslPolicyReference sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a SslPolicyReference. */
                class SslPolicyReference implements ISslPolicyReference {

                    /**
                     * Constructs a new SslPolicyReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISslPolicyReference);

                    /** SslPolicyReference sslPolicy. */
                    public sslPolicy?: (string|null);

                    /**
                     * Creates a new SslPolicyReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPolicyReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISslPolicyReference): google.cloud.compute.v1.SslPolicyReference;

                    /**
                     * Encodes the specified SslPolicyReference message. Does not implicitly {@link google.cloud.compute.v1.SslPolicyReference.verify|verify} messages.
                     * @param message SslPolicyReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISslPolicyReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPolicyReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SslPolicyReference.verify|verify} messages.
                     * @param message SslPolicyReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISslPolicyReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPolicyReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPolicyReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SslPolicyReference;

                    /**
                     * Decodes a SslPolicyReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPolicyReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SslPolicyReference;

                    /**
                     * Verifies a SslPolicyReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPolicyReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPolicyReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SslPolicyReference;

                    /**
                     * Creates a plain object from a SslPolicyReference message. Also converts values to other types if specified.
                     * @param message SslPolicyReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SslPolicyReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPolicyReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPolicyReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartAsyncReplicationDiskRequest. */
                interface IStartAsyncReplicationDiskRequest {

                    /** StartAsyncReplicationDiskRequest disk */
                    disk?: (string|null);

                    /** StartAsyncReplicationDiskRequest disksStartAsyncReplicationRequestResource */
                    disksStartAsyncReplicationRequestResource?: (google.cloud.compute.v1.IDisksStartAsyncReplicationRequest|null);

                    /** StartAsyncReplicationDiskRequest project */
                    project?: (string|null);

                    /** StartAsyncReplicationDiskRequest requestId */
                    requestId?: (string|null);

                    /** StartAsyncReplicationDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StartAsyncReplicationDiskRequest. */
                class StartAsyncReplicationDiskRequest implements IStartAsyncReplicationDiskRequest {

                    /**
                     * Constructs a new StartAsyncReplicationDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStartAsyncReplicationDiskRequest);

                    /** StartAsyncReplicationDiskRequest disk. */
                    public disk: string;

                    /** StartAsyncReplicationDiskRequest disksStartAsyncReplicationRequestResource. */
                    public disksStartAsyncReplicationRequestResource?: (google.cloud.compute.v1.IDisksStartAsyncReplicationRequest|null);

                    /** StartAsyncReplicationDiskRequest project. */
                    public project: string;

                    /** StartAsyncReplicationDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** StartAsyncReplicationDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StartAsyncReplicationDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartAsyncReplicationDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStartAsyncReplicationDiskRequest): google.cloud.compute.v1.StartAsyncReplicationDiskRequest;

                    /**
                     * Encodes the specified StartAsyncReplicationDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.StartAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StartAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStartAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartAsyncReplicationDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StartAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StartAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStartAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartAsyncReplicationDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StartAsyncReplicationDiskRequest;

                    /**
                     * Decodes a StartAsyncReplicationDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StartAsyncReplicationDiskRequest;

                    /**
                     * Verifies a StartAsyncReplicationDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartAsyncReplicationDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartAsyncReplicationDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StartAsyncReplicationDiskRequest;

                    /**
                     * Creates a plain object from a StartAsyncReplicationDiskRequest message. Also converts values to other types if specified.
                     * @param message StartAsyncReplicationDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StartAsyncReplicationDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartAsyncReplicationDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartAsyncReplicationDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartAsyncReplicationRegionDiskRequest. */
                interface IStartAsyncReplicationRegionDiskRequest {

                    /** StartAsyncReplicationRegionDiskRequest disk */
                    disk?: (string|null);

                    /** StartAsyncReplicationRegionDiskRequest project */
                    project?: (string|null);

                    /** StartAsyncReplicationRegionDiskRequest region */
                    region?: (string|null);

                    /** StartAsyncReplicationRegionDiskRequest regionDisksStartAsyncReplicationRequestResource */
                    regionDisksStartAsyncReplicationRequestResource?: (google.cloud.compute.v1.IRegionDisksStartAsyncReplicationRequest|null);

                    /** StartAsyncReplicationRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StartAsyncReplicationRegionDiskRequest. */
                class StartAsyncReplicationRegionDiskRequest implements IStartAsyncReplicationRegionDiskRequest {

                    /**
                     * Constructs a new StartAsyncReplicationRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStartAsyncReplicationRegionDiskRequest);

                    /** StartAsyncReplicationRegionDiskRequest disk. */
                    public disk: string;

                    /** StartAsyncReplicationRegionDiskRequest project. */
                    public project: string;

                    /** StartAsyncReplicationRegionDiskRequest region. */
                    public region: string;

                    /** StartAsyncReplicationRegionDiskRequest regionDisksStartAsyncReplicationRequestResource. */
                    public regionDisksStartAsyncReplicationRequestResource?: (google.cloud.compute.v1.IRegionDisksStartAsyncReplicationRequest|null);

                    /** StartAsyncReplicationRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StartAsyncReplicationRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartAsyncReplicationRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStartAsyncReplicationRegionDiskRequest): google.cloud.compute.v1.StartAsyncReplicationRegionDiskRequest;

                    /**
                     * Encodes the specified StartAsyncReplicationRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.StartAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StartAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStartAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartAsyncReplicationRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StartAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StartAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStartAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartAsyncReplicationRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StartAsyncReplicationRegionDiskRequest;

                    /**
                     * Decodes a StartAsyncReplicationRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StartAsyncReplicationRegionDiskRequest;

                    /**
                     * Verifies a StartAsyncReplicationRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartAsyncReplicationRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartAsyncReplicationRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StartAsyncReplicationRegionDiskRequest;

                    /**
                     * Creates a plain object from a StartAsyncReplicationRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message StartAsyncReplicationRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StartAsyncReplicationRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartAsyncReplicationRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartAsyncReplicationRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartInstanceRequest. */
                interface IStartInstanceRequest {

                    /** StartInstanceRequest instance */
                    instance?: (string|null);

                    /** StartInstanceRequest project */
                    project?: (string|null);

                    /** StartInstanceRequest requestId */
                    requestId?: (string|null);

                    /** StartInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StartInstanceRequest. */
                class StartInstanceRequest implements IStartInstanceRequest {

                    /**
                     * Constructs a new StartInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStartInstanceRequest);

                    /** StartInstanceRequest instance. */
                    public instance: string;

                    /** StartInstanceRequest project. */
                    public project: string;

                    /** StartInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** StartInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StartInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStartInstanceRequest): google.cloud.compute.v1.StartInstanceRequest;

                    /**
                     * Encodes the specified StartInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.StartInstanceRequest.verify|verify} messages.
                     * @param message StartInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStartInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StartInstanceRequest.verify|verify} messages.
                     * @param message StartInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStartInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StartInstanceRequest;

                    /**
                     * Decodes a StartInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StartInstanceRequest;

                    /**
                     * Verifies a StartInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StartInstanceRequest;

                    /**
                     * Creates a plain object from a StartInstanceRequest message. Also converts values to other types if specified.
                     * @param message StartInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StartInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartInstancesInstanceGroupManagerRequest. */
                interface IStartInstancesInstanceGroupManagerRequest {

                    /** StartInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** StartInstancesInstanceGroupManagerRequest instanceGroupManagersStartInstancesRequestResource */
                    instanceGroupManagersStartInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersStartInstancesRequest|null);

                    /** StartInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** StartInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** StartInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StartInstancesInstanceGroupManagerRequest. */
                class StartInstancesInstanceGroupManagerRequest implements IStartInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new StartInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStartInstancesInstanceGroupManagerRequest);

                    /** StartInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** StartInstancesInstanceGroupManagerRequest instanceGroupManagersStartInstancesRequestResource. */
                    public instanceGroupManagersStartInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersStartInstancesRequest|null);

                    /** StartInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** StartInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** StartInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StartInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStartInstancesInstanceGroupManagerRequest): google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified StartInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StartInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStartInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StartInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStartInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a StartInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a StartInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a StartInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message StartInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartInstancesRegionInstanceGroupManagerRequest. */
                interface IStartInstancesRegionInstanceGroupManagerRequest {

                    /** StartInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersStartInstancesRequestResource */
                    regionInstanceGroupManagersStartInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersStartInstancesRequest|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StartInstancesRegionInstanceGroupManagerRequest. */
                class StartInstancesRegionInstanceGroupManagerRequest implements IStartInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new StartInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStartInstancesRegionInstanceGroupManagerRequest);

                    /** StartInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** StartInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** StartInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** StartInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersStartInstancesRequestResource. */
                    public regionInstanceGroupManagersStartInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersStartInstancesRequest|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StartInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStartInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1.StartInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified StartInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.StartInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StartInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStartInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StartInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StartInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStartInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StartInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a StartInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StartInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a StartInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StartInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a StartInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message StartInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StartInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartWithEncryptionKeyInstanceRequest. */
                interface IStartWithEncryptionKeyInstanceRequest {

                    /** StartWithEncryptionKeyInstanceRequest instance */
                    instance?: (string|null);

                    /** StartWithEncryptionKeyInstanceRequest instancesStartWithEncryptionKeyRequestResource */
                    instancesStartWithEncryptionKeyRequestResource?: (google.cloud.compute.v1.IInstancesStartWithEncryptionKeyRequest|null);

                    /** StartWithEncryptionKeyInstanceRequest project */
                    project?: (string|null);

                    /** StartWithEncryptionKeyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** StartWithEncryptionKeyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StartWithEncryptionKeyInstanceRequest. */
                class StartWithEncryptionKeyInstanceRequest implements IStartWithEncryptionKeyInstanceRequest {

                    /**
                     * Constructs a new StartWithEncryptionKeyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStartWithEncryptionKeyInstanceRequest);

                    /** StartWithEncryptionKeyInstanceRequest instance. */
                    public instance: string;

                    /** StartWithEncryptionKeyInstanceRequest instancesStartWithEncryptionKeyRequestResource. */
                    public instancesStartWithEncryptionKeyRequestResource?: (google.cloud.compute.v1.IInstancesStartWithEncryptionKeyRequest|null);

                    /** StartWithEncryptionKeyInstanceRequest project. */
                    public project: string;

                    /** StartWithEncryptionKeyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** StartWithEncryptionKeyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StartWithEncryptionKeyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartWithEncryptionKeyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStartWithEncryptionKeyInstanceRequest): google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest;

                    /**
                     * Encodes the specified StartWithEncryptionKeyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest.verify|verify} messages.
                     * @param message StartWithEncryptionKeyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStartWithEncryptionKeyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartWithEncryptionKeyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest.verify|verify} messages.
                     * @param message StartWithEncryptionKeyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStartWithEncryptionKeyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartWithEncryptionKeyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartWithEncryptionKeyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest;

                    /**
                     * Decodes a StartWithEncryptionKeyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartWithEncryptionKeyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest;

                    /**
                     * Verifies a StartWithEncryptionKeyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartWithEncryptionKeyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartWithEncryptionKeyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest;

                    /**
                     * Creates a plain object from a StartWithEncryptionKeyInstanceRequest message. Also converts values to other types if specified.
                     * @param message StartWithEncryptionKeyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartWithEncryptionKeyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartWithEncryptionKeyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StatefulPolicy. */
                interface IStatefulPolicy {

                    /** StatefulPolicy preservedState */
                    preservedState?: (google.cloud.compute.v1.IStatefulPolicyPreservedState|null);
                }

                /** Represents a StatefulPolicy. */
                class StatefulPolicy implements IStatefulPolicy {

                    /**
                     * Constructs a new StatefulPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStatefulPolicy);

                    /** StatefulPolicy preservedState. */
                    public preservedState?: (google.cloud.compute.v1.IStatefulPolicyPreservedState|null);

                    /**
                     * Creates a new StatefulPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatefulPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStatefulPolicy): google.cloud.compute.v1.StatefulPolicy;

                    /**
                     * Encodes the specified StatefulPolicy message. Does not implicitly {@link google.cloud.compute.v1.StatefulPolicy.verify|verify} messages.
                     * @param message StatefulPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStatefulPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatefulPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StatefulPolicy.verify|verify} messages.
                     * @param message StatefulPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStatefulPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatefulPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatefulPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StatefulPolicy;

                    /**
                     * Decodes a StatefulPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatefulPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StatefulPolicy;

                    /**
                     * Verifies a StatefulPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatefulPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatefulPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StatefulPolicy;

                    /**
                     * Creates a plain object from a StatefulPolicy message. Also converts values to other types if specified.
                     * @param message StatefulPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StatefulPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatefulPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatefulPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StatefulPolicyPreservedState. */
                interface IStatefulPolicyPreservedState {

                    /** StatefulPolicyPreservedState disks */
                    disks?: ({ [k: string]: google.cloud.compute.v1.IStatefulPolicyPreservedStateDiskDevice }|null);

                    /** StatefulPolicyPreservedState externalIPs */
                    externalIPs?: ({ [k: string]: google.cloud.compute.v1.IStatefulPolicyPreservedStateNetworkIp }|null);

                    /** StatefulPolicyPreservedState internalIPs */
                    internalIPs?: ({ [k: string]: google.cloud.compute.v1.IStatefulPolicyPreservedStateNetworkIp }|null);
                }

                /** Represents a StatefulPolicyPreservedState. */
                class StatefulPolicyPreservedState implements IStatefulPolicyPreservedState {

                    /**
                     * Constructs a new StatefulPolicyPreservedState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStatefulPolicyPreservedState);

                    /** StatefulPolicyPreservedState disks. */
                    public disks: { [k: string]: google.cloud.compute.v1.IStatefulPolicyPreservedStateDiskDevice };

                    /** StatefulPolicyPreservedState externalIPs. */
                    public externalIPs: { [k: string]: google.cloud.compute.v1.IStatefulPolicyPreservedStateNetworkIp };

                    /** StatefulPolicyPreservedState internalIPs. */
                    public internalIPs: { [k: string]: google.cloud.compute.v1.IStatefulPolicyPreservedStateNetworkIp };

                    /**
                     * Creates a new StatefulPolicyPreservedState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatefulPolicyPreservedState instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStatefulPolicyPreservedState): google.cloud.compute.v1.StatefulPolicyPreservedState;

                    /**
                     * Encodes the specified StatefulPolicyPreservedState message. Does not implicitly {@link google.cloud.compute.v1.StatefulPolicyPreservedState.verify|verify} messages.
                     * @param message StatefulPolicyPreservedState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStatefulPolicyPreservedState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatefulPolicyPreservedState message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StatefulPolicyPreservedState.verify|verify} messages.
                     * @param message StatefulPolicyPreservedState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStatefulPolicyPreservedState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatefulPolicyPreservedState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatefulPolicyPreservedState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StatefulPolicyPreservedState;

                    /**
                     * Decodes a StatefulPolicyPreservedState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatefulPolicyPreservedState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StatefulPolicyPreservedState;

                    /**
                     * Verifies a StatefulPolicyPreservedState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatefulPolicyPreservedState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatefulPolicyPreservedState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StatefulPolicyPreservedState;

                    /**
                     * Creates a plain object from a StatefulPolicyPreservedState message. Also converts values to other types if specified.
                     * @param message StatefulPolicyPreservedState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StatefulPolicyPreservedState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatefulPolicyPreservedState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatefulPolicyPreservedState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StatefulPolicyPreservedStateDiskDevice. */
                interface IStatefulPolicyPreservedStateDiskDevice {

                    /** StatefulPolicyPreservedStateDiskDevice autoDelete */
                    autoDelete?: (string|null);
                }

                /** Represents a StatefulPolicyPreservedStateDiskDevice. */
                class StatefulPolicyPreservedStateDiskDevice implements IStatefulPolicyPreservedStateDiskDevice {

                    /**
                     * Constructs a new StatefulPolicyPreservedStateDiskDevice.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStatefulPolicyPreservedStateDiskDevice);

                    /** StatefulPolicyPreservedStateDiskDevice autoDelete. */
                    public autoDelete?: (string|null);

                    /**
                     * Creates a new StatefulPolicyPreservedStateDiskDevice instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatefulPolicyPreservedStateDiskDevice instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStatefulPolicyPreservedStateDiskDevice): google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice;

                    /**
                     * Encodes the specified StatefulPolicyPreservedStateDiskDevice message. Does not implicitly {@link google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice.verify|verify} messages.
                     * @param message StatefulPolicyPreservedStateDiskDevice message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStatefulPolicyPreservedStateDiskDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatefulPolicyPreservedStateDiskDevice message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice.verify|verify} messages.
                     * @param message StatefulPolicyPreservedStateDiskDevice message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStatefulPolicyPreservedStateDiskDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatefulPolicyPreservedStateDiskDevice message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatefulPolicyPreservedStateDiskDevice
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice;

                    /**
                     * Decodes a StatefulPolicyPreservedStateDiskDevice message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatefulPolicyPreservedStateDiskDevice
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice;

                    /**
                     * Verifies a StatefulPolicyPreservedStateDiskDevice message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatefulPolicyPreservedStateDiskDevice message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatefulPolicyPreservedStateDiskDevice
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice;

                    /**
                     * Creates a plain object from a StatefulPolicyPreservedStateDiskDevice message. Also converts values to other types if specified.
                     * @param message StatefulPolicyPreservedStateDiskDevice
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatefulPolicyPreservedStateDiskDevice to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatefulPolicyPreservedStateDiskDevice
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StatefulPolicyPreservedStateDiskDevice {

                    /** AutoDelete enum. */
                    enum AutoDelete {
                        UNDEFINED_AUTO_DELETE = 0,
                        NEVER = 74175084,
                        ON_PERMANENT_INSTANCE_DELETION = 95727719
                    }
                }

                /** Properties of a StatefulPolicyPreservedStateNetworkIp. */
                interface IStatefulPolicyPreservedStateNetworkIp {

                    /** StatefulPolicyPreservedStateNetworkIp autoDelete */
                    autoDelete?: (string|null);
                }

                /** Represents a StatefulPolicyPreservedStateNetworkIp. */
                class StatefulPolicyPreservedStateNetworkIp implements IStatefulPolicyPreservedStateNetworkIp {

                    /**
                     * Constructs a new StatefulPolicyPreservedStateNetworkIp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStatefulPolicyPreservedStateNetworkIp);

                    /** StatefulPolicyPreservedStateNetworkIp autoDelete. */
                    public autoDelete?: (string|null);

                    /**
                     * Creates a new StatefulPolicyPreservedStateNetworkIp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatefulPolicyPreservedStateNetworkIp instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStatefulPolicyPreservedStateNetworkIp): google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp;

                    /**
                     * Encodes the specified StatefulPolicyPreservedStateNetworkIp message. Does not implicitly {@link google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp.verify|verify} messages.
                     * @param message StatefulPolicyPreservedStateNetworkIp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStatefulPolicyPreservedStateNetworkIp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatefulPolicyPreservedStateNetworkIp message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp.verify|verify} messages.
                     * @param message StatefulPolicyPreservedStateNetworkIp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStatefulPolicyPreservedStateNetworkIp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatefulPolicyPreservedStateNetworkIp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatefulPolicyPreservedStateNetworkIp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp;

                    /**
                     * Decodes a StatefulPolicyPreservedStateNetworkIp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatefulPolicyPreservedStateNetworkIp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp;

                    /**
                     * Verifies a StatefulPolicyPreservedStateNetworkIp message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatefulPolicyPreservedStateNetworkIp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatefulPolicyPreservedStateNetworkIp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp;

                    /**
                     * Creates a plain object from a StatefulPolicyPreservedStateNetworkIp message. Also converts values to other types if specified.
                     * @param message StatefulPolicyPreservedStateNetworkIp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatefulPolicyPreservedStateNetworkIp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatefulPolicyPreservedStateNetworkIp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StatefulPolicyPreservedStateNetworkIp {

                    /** AutoDelete enum. */
                    enum AutoDelete {
                        UNDEFINED_AUTO_DELETE = 0,
                        NEVER = 74175084,
                        ON_PERMANENT_INSTANCE_DELETION = 95727719
                    }
                }

                /** Properties of a Status. */
                interface IStatus {

                    /** Status code */
                    code?: (number|null);

                    /** Status details */
                    details?: (google.protobuf.IAny[]|null);

                    /** Status message */
                    message?: (string|null);
                }

                /** Represents a Status. */
                class Status implements IStatus {

                    /**
                     * Constructs a new Status.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStatus);

                    /** Status code. */
                    public code?: (number|null);

                    /** Status details. */
                    public details: google.protobuf.IAny[];

                    /** Status message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Status instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Status instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStatus): google.cloud.compute.v1.Status;

                    /**
                     * Encodes the specified Status message. Does not implicitly {@link google.cloud.compute.v1.Status.verify|verify} messages.
                     * @param message Status message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Status message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Status.verify|verify} messages.
                     * @param message Status message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Status message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Status
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Status;

                    /**
                     * Decodes a Status message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Status
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Status;

                    /**
                     * Verifies a Status message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Status message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Status
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Status;

                    /**
                     * Creates a plain object from a Status message. Also converts values to other types if specified.
                     * @param message Status
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.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;
                }

                /** Properties of a StopAsyncReplicationDiskRequest. */
                interface IStopAsyncReplicationDiskRequest {

                    /** StopAsyncReplicationDiskRequest disk */
                    disk?: (string|null);

                    /** StopAsyncReplicationDiskRequest project */
                    project?: (string|null);

                    /** StopAsyncReplicationDiskRequest requestId */
                    requestId?: (string|null);

                    /** StopAsyncReplicationDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StopAsyncReplicationDiskRequest. */
                class StopAsyncReplicationDiskRequest implements IStopAsyncReplicationDiskRequest {

                    /**
                     * Constructs a new StopAsyncReplicationDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStopAsyncReplicationDiskRequest);

                    /** StopAsyncReplicationDiskRequest disk. */
                    public disk: string;

                    /** StopAsyncReplicationDiskRequest project. */
                    public project: string;

                    /** StopAsyncReplicationDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** StopAsyncReplicationDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StopAsyncReplicationDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopAsyncReplicationDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStopAsyncReplicationDiskRequest): google.cloud.compute.v1.StopAsyncReplicationDiskRequest;

                    /**
                     * Encodes the specified StopAsyncReplicationDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.StopAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StopAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStopAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopAsyncReplicationDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StopAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StopAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStopAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopAsyncReplicationDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StopAsyncReplicationDiskRequest;

                    /**
                     * Decodes a StopAsyncReplicationDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StopAsyncReplicationDiskRequest;

                    /**
                     * Verifies a StopAsyncReplicationDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopAsyncReplicationDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopAsyncReplicationDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StopAsyncReplicationDiskRequest;

                    /**
                     * Creates a plain object from a StopAsyncReplicationDiskRequest message. Also converts values to other types if specified.
                     * @param message StopAsyncReplicationDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StopAsyncReplicationDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopAsyncReplicationDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopAsyncReplicationDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopAsyncReplicationRegionDiskRequest. */
                interface IStopAsyncReplicationRegionDiskRequest {

                    /** StopAsyncReplicationRegionDiskRequest disk */
                    disk?: (string|null);

                    /** StopAsyncReplicationRegionDiskRequest project */
                    project?: (string|null);

                    /** StopAsyncReplicationRegionDiskRequest region */
                    region?: (string|null);

                    /** StopAsyncReplicationRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StopAsyncReplicationRegionDiskRequest. */
                class StopAsyncReplicationRegionDiskRequest implements IStopAsyncReplicationRegionDiskRequest {

                    /**
                     * Constructs a new StopAsyncReplicationRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStopAsyncReplicationRegionDiskRequest);

                    /** StopAsyncReplicationRegionDiskRequest disk. */
                    public disk: string;

                    /** StopAsyncReplicationRegionDiskRequest project. */
                    public project: string;

                    /** StopAsyncReplicationRegionDiskRequest region. */
                    public region: string;

                    /** StopAsyncReplicationRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StopAsyncReplicationRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopAsyncReplicationRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStopAsyncReplicationRegionDiskRequest): google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest;

                    /**
                     * Encodes the specified StopAsyncReplicationRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StopAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStopAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopAsyncReplicationRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StopAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStopAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopAsyncReplicationRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest;

                    /**
                     * Decodes a StopAsyncReplicationRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest;

                    /**
                     * Verifies a StopAsyncReplicationRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopAsyncReplicationRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopAsyncReplicationRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest;

                    /**
                     * Creates a plain object from a StopAsyncReplicationRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message StopAsyncReplicationRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopAsyncReplicationRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopAsyncReplicationRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopGroupAsyncReplicationDiskRequest. */
                interface IStopGroupAsyncReplicationDiskRequest {

                    /** StopGroupAsyncReplicationDiskRequest disksStopGroupAsyncReplicationResourceResource */
                    disksStopGroupAsyncReplicationResourceResource?: (google.cloud.compute.v1.IDisksStopGroupAsyncReplicationResource|null);

                    /** StopGroupAsyncReplicationDiskRequest project */
                    project?: (string|null);

                    /** StopGroupAsyncReplicationDiskRequest requestId */
                    requestId?: (string|null);

                    /** StopGroupAsyncReplicationDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StopGroupAsyncReplicationDiskRequest. */
                class StopGroupAsyncReplicationDiskRequest implements IStopGroupAsyncReplicationDiskRequest {

                    /**
                     * Constructs a new StopGroupAsyncReplicationDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStopGroupAsyncReplicationDiskRequest);

                    /** StopGroupAsyncReplicationDiskRequest disksStopGroupAsyncReplicationResourceResource. */
                    public disksStopGroupAsyncReplicationResourceResource?: (google.cloud.compute.v1.IDisksStopGroupAsyncReplicationResource|null);

                    /** StopGroupAsyncReplicationDiskRequest project. */
                    public project: string;

                    /** StopGroupAsyncReplicationDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** StopGroupAsyncReplicationDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StopGroupAsyncReplicationDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopGroupAsyncReplicationDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStopGroupAsyncReplicationDiskRequest): google.cloud.compute.v1.StopGroupAsyncReplicationDiskRequest;

                    /**
                     * Encodes the specified StopGroupAsyncReplicationDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.StopGroupAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StopGroupAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStopGroupAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopGroupAsyncReplicationDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StopGroupAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StopGroupAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStopGroupAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopGroupAsyncReplicationDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopGroupAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StopGroupAsyncReplicationDiskRequest;

                    /**
                     * Decodes a StopGroupAsyncReplicationDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopGroupAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StopGroupAsyncReplicationDiskRequest;

                    /**
                     * Verifies a StopGroupAsyncReplicationDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopGroupAsyncReplicationDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopGroupAsyncReplicationDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StopGroupAsyncReplicationDiskRequest;

                    /**
                     * Creates a plain object from a StopGroupAsyncReplicationDiskRequest message. Also converts values to other types if specified.
                     * @param message StopGroupAsyncReplicationDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StopGroupAsyncReplicationDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopGroupAsyncReplicationDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopGroupAsyncReplicationDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopGroupAsyncReplicationRegionDiskRequest. */
                interface IStopGroupAsyncReplicationRegionDiskRequest {

                    /** StopGroupAsyncReplicationRegionDiskRequest disksStopGroupAsyncReplicationResourceResource */
                    disksStopGroupAsyncReplicationResourceResource?: (google.cloud.compute.v1.IDisksStopGroupAsyncReplicationResource|null);

                    /** StopGroupAsyncReplicationRegionDiskRequest project */
                    project?: (string|null);

                    /** StopGroupAsyncReplicationRegionDiskRequest region */
                    region?: (string|null);

                    /** StopGroupAsyncReplicationRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StopGroupAsyncReplicationRegionDiskRequest. */
                class StopGroupAsyncReplicationRegionDiskRequest implements IStopGroupAsyncReplicationRegionDiskRequest {

                    /**
                     * Constructs a new StopGroupAsyncReplicationRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStopGroupAsyncReplicationRegionDiskRequest);

                    /** StopGroupAsyncReplicationRegionDiskRequest disksStopGroupAsyncReplicationResourceResource. */
                    public disksStopGroupAsyncReplicationResourceResource?: (google.cloud.compute.v1.IDisksStopGroupAsyncReplicationResource|null);

                    /** StopGroupAsyncReplicationRegionDiskRequest project. */
                    public project: string;

                    /** StopGroupAsyncReplicationRegionDiskRequest region. */
                    public region: string;

                    /** StopGroupAsyncReplicationRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StopGroupAsyncReplicationRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopGroupAsyncReplicationRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStopGroupAsyncReplicationRegionDiskRequest): google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest;

                    /**
                     * Encodes the specified StopGroupAsyncReplicationRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StopGroupAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStopGroupAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopGroupAsyncReplicationRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StopGroupAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStopGroupAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopGroupAsyncReplicationRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopGroupAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest;

                    /**
                     * Decodes a StopGroupAsyncReplicationRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopGroupAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest;

                    /**
                     * Verifies a StopGroupAsyncReplicationRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopGroupAsyncReplicationRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopGroupAsyncReplicationRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest;

                    /**
                     * Creates a plain object from a StopGroupAsyncReplicationRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message StopGroupAsyncReplicationRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopGroupAsyncReplicationRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopGroupAsyncReplicationRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopInstanceRequest. */
                interface IStopInstanceRequest {

                    /** StopInstanceRequest discardLocalSsd */
                    discardLocalSsd?: (boolean|null);

                    /** StopInstanceRequest instance */
                    instance?: (string|null);

                    /** StopInstanceRequest project */
                    project?: (string|null);

                    /** StopInstanceRequest requestId */
                    requestId?: (string|null);

                    /** StopInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StopInstanceRequest. */
                class StopInstanceRequest implements IStopInstanceRequest {

                    /**
                     * Constructs a new StopInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStopInstanceRequest);

                    /** StopInstanceRequest discardLocalSsd. */
                    public discardLocalSsd?: (boolean|null);

                    /** StopInstanceRequest instance. */
                    public instance: string;

                    /** StopInstanceRequest project. */
                    public project: string;

                    /** StopInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** StopInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StopInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStopInstanceRequest): google.cloud.compute.v1.StopInstanceRequest;

                    /**
                     * Encodes the specified StopInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.StopInstanceRequest.verify|verify} messages.
                     * @param message StopInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStopInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StopInstanceRequest.verify|verify} messages.
                     * @param message StopInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStopInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StopInstanceRequest;

                    /**
                     * Decodes a StopInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StopInstanceRequest;

                    /**
                     * Verifies a StopInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StopInstanceRequest;

                    /**
                     * Creates a plain object from a StopInstanceRequest message. Also converts values to other types if specified.
                     * @param message StopInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StopInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopInstancesInstanceGroupManagerRequest. */
                interface IStopInstancesInstanceGroupManagerRequest {

                    /** StopInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** StopInstancesInstanceGroupManagerRequest instanceGroupManagersStopInstancesRequestResource */
                    instanceGroupManagersStopInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersStopInstancesRequest|null);

                    /** StopInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** StopInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** StopInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StopInstancesInstanceGroupManagerRequest. */
                class StopInstancesInstanceGroupManagerRequest implements IStopInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new StopInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStopInstancesInstanceGroupManagerRequest);

                    /** StopInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** StopInstancesInstanceGroupManagerRequest instanceGroupManagersStopInstancesRequestResource. */
                    public instanceGroupManagersStopInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersStopInstancesRequest|null);

                    /** StopInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** StopInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** StopInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StopInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStopInstancesInstanceGroupManagerRequest): google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified StopInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StopInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStopInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StopInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStopInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a StopInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a StopInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a StopInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message StopInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopInstancesRegionInstanceGroupManagerRequest. */
                interface IStopInstancesRegionInstanceGroupManagerRequest {

                    /** StopInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersStopInstancesRequestResource */
                    regionInstanceGroupManagersStopInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersStopInstancesRequest|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StopInstancesRegionInstanceGroupManagerRequest. */
                class StopInstancesRegionInstanceGroupManagerRequest implements IStopInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new StopInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStopInstancesRegionInstanceGroupManagerRequest);

                    /** StopInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** StopInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** StopInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** StopInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersStopInstancesRequestResource. */
                    public regionInstanceGroupManagersStopInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersStopInstancesRequest|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StopInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStopInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1.StopInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified StopInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.StopInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StopInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStopInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StopInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StopInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStopInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StopInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a StopInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StopInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a StopInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StopInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a StopInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message StopInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StopInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePool. */
                interface IStoragePool {

                    /** StoragePool capacityProvisioningType */
                    capacityProvisioningType?: (string|null);

                    /** StoragePool creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** StoragePool description */
                    description?: (string|null);

                    /** StoragePool exapoolProvisionedCapacityGb */
                    exapoolProvisionedCapacityGb?: (google.cloud.compute.v1.IStoragePoolExapoolProvisionedCapacityGb|null);

                    /** StoragePool id */
                    id?: (number|Long|string|null);

                    /** StoragePool kind */
                    kind?: (string|null);

                    /** StoragePool labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** StoragePool labels */
                    labels?: ({ [k: string]: string }|null);

                    /** StoragePool name */
                    name?: (string|null);

                    /** StoragePool params */
                    params?: (google.cloud.compute.v1.IStoragePoolParams|null);

                    /** StoragePool performanceProvisioningType */
                    performanceProvisioningType?: (string|null);

                    /** StoragePool poolProvisionedCapacityGb */
                    poolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePool poolProvisionedIops */
                    poolProvisionedIops?: (number|Long|string|null);

                    /** StoragePool poolProvisionedThroughput */
                    poolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePool resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1.IStoragePoolResourceStatus|null);

                    /** StoragePool selfLink */
                    selfLink?: (string|null);

                    /** StoragePool selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** StoragePool state */
                    state?: (string|null);

                    /** StoragePool status */
                    status?: (google.cloud.compute.v1.IStoragePoolResourceStatus|null);

                    /** StoragePool storagePoolType */
                    storagePoolType?: (string|null);

                    /** StoragePool zone */
                    zone?: (string|null);
                }

                /** Represents a StoragePool. */
                class StoragePool implements IStoragePool {

                    /**
                     * Constructs a new StoragePool.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePool);

                    /** StoragePool capacityProvisioningType. */
                    public capacityProvisioningType?: (string|null);

                    /** StoragePool creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** StoragePool description. */
                    public description?: (string|null);

                    /** StoragePool exapoolProvisionedCapacityGb. */
                    public exapoolProvisionedCapacityGb?: (google.cloud.compute.v1.IStoragePoolExapoolProvisionedCapacityGb|null);

                    /** StoragePool id. */
                    public id?: (number|Long|string|null);

                    /** StoragePool kind. */
                    public kind?: (string|null);

                    /** StoragePool labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** StoragePool labels. */
                    public labels: { [k: string]: string };

                    /** StoragePool name. */
                    public name?: (string|null);

                    /** StoragePool params. */
                    public params?: (google.cloud.compute.v1.IStoragePoolParams|null);

                    /** StoragePool performanceProvisioningType. */
                    public performanceProvisioningType?: (string|null);

                    /** StoragePool poolProvisionedCapacityGb. */
                    public poolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePool poolProvisionedIops. */
                    public poolProvisionedIops?: (number|Long|string|null);

                    /** StoragePool poolProvisionedThroughput. */
                    public poolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePool resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1.IStoragePoolResourceStatus|null);

                    /** StoragePool selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePool selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** StoragePool state. */
                    public state?: (string|null);

                    /** StoragePool status. */
                    public status?: (google.cloud.compute.v1.IStoragePoolResourceStatus|null);

                    /** StoragePool storagePoolType. */
                    public storagePoolType?: (string|null);

                    /** StoragePool zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new StoragePool instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePool instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePool): google.cloud.compute.v1.StoragePool;

                    /**
                     * Encodes the specified StoragePool message. Does not implicitly {@link google.cloud.compute.v1.StoragePool.verify|verify} messages.
                     * @param message StoragePool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePool message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePool.verify|verify} messages.
                     * @param message StoragePool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePool message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePool
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePool;

                    /**
                     * Decodes a StoragePool message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePool
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePool;

                    /**
                     * Verifies a StoragePool message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePool message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePool
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePool;

                    /**
                     * Creates a plain object from a StoragePool message. Also converts values to other types if specified.
                     * @param message StoragePool
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePool to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePool
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StoragePool {

                    /** CapacityProvisioningType enum. */
                    enum CapacityProvisioningType {
                        UNDEFINED_CAPACITY_PROVISIONING_TYPE = 0
                    }

                    /** PerformanceProvisioningType enum. */
                    enum PerformanceProvisioningType {
                        UNDEFINED_PERFORMANCE_PROVISIONING_TYPE = 0
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963
                    }
                }

                /** Properties of a StoragePoolAggregatedList. */
                interface IStoragePoolAggregatedList {

                    /** StoragePoolAggregatedList etag */
                    etag?: (string|null);

                    /** StoragePoolAggregatedList id */
                    id?: (string|null);

                    /** StoragePoolAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IStoragePoolsScopedList }|null);

                    /** StoragePoolAggregatedList kind */
                    kind?: (string|null);

                    /** StoragePoolAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** StoragePoolAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a StoragePoolAggregatedList. */
                class StoragePoolAggregatedList implements IStoragePoolAggregatedList {

                    /**
                     * Constructs a new StoragePoolAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolAggregatedList);

                    /** StoragePoolAggregatedList etag. */
                    public etag?: (string|null);

                    /** StoragePoolAggregatedList id. */
                    public id?: (string|null);

                    /** StoragePoolAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IStoragePoolsScopedList };

                    /** StoragePoolAggregatedList kind. */
                    public kind?: (string|null);

                    /** StoragePoolAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolAggregatedList unreachables. */
                    public unreachables: string[];

                    /** StoragePoolAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new StoragePoolAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolAggregatedList): google.cloud.compute.v1.StoragePoolAggregatedList;

                    /**
                     * Encodes the specified StoragePoolAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolAggregatedList.verify|verify} messages.
                     * @param message StoragePoolAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolAggregatedList.verify|verify} messages.
                     * @param message StoragePoolAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolAggregatedList;

                    /**
                     * Decodes a StoragePoolAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolAggregatedList;

                    /**
                     * Verifies a StoragePoolAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolAggregatedList;

                    /**
                     * Creates a plain object from a StoragePoolAggregatedList message. Also converts values to other types if specified.
                     * @param message StoragePoolAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolDisk. */
                interface IStoragePoolDisk {

                    /** StoragePoolDisk attachedInstances */
                    attachedInstances?: (string[]|null);

                    /** StoragePoolDisk creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** StoragePoolDisk disk */
                    disk?: (string|null);

                    /** StoragePoolDisk name */
                    name?: (string|null);

                    /** StoragePoolDisk provisionedIops */
                    provisionedIops?: (number|Long|string|null);

                    /** StoragePoolDisk provisionedThroughput */
                    provisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolDisk resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** StoragePoolDisk sizeGb */
                    sizeGb?: (number|Long|string|null);

                    /** StoragePoolDisk status */
                    status?: (string|null);

                    /** StoragePoolDisk type */
                    type?: (string|null);

                    /** StoragePoolDisk usedBytes */
                    usedBytes?: (number|Long|string|null);
                }

                /** Represents a StoragePoolDisk. */
                class StoragePoolDisk implements IStoragePoolDisk {

                    /**
                     * Constructs a new StoragePoolDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolDisk);

                    /** StoragePoolDisk attachedInstances. */
                    public attachedInstances: string[];

                    /** StoragePoolDisk creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** StoragePoolDisk disk. */
                    public disk?: (string|null);

                    /** StoragePoolDisk name. */
                    public name?: (string|null);

                    /** StoragePoolDisk provisionedIops. */
                    public provisionedIops?: (number|Long|string|null);

                    /** StoragePoolDisk provisionedThroughput. */
                    public provisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolDisk resourcePolicies. */
                    public resourcePolicies: string[];

                    /** StoragePoolDisk sizeGb. */
                    public sizeGb?: (number|Long|string|null);

                    /** StoragePoolDisk status. */
                    public status?: (string|null);

                    /** StoragePoolDisk type. */
                    public type?: (string|null);

                    /** StoragePoolDisk usedBytes. */
                    public usedBytes?: (number|Long|string|null);

                    /**
                     * Creates a new StoragePoolDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolDisk): google.cloud.compute.v1.StoragePoolDisk;

                    /**
                     * Encodes the specified StoragePoolDisk message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolDisk.verify|verify} messages.
                     * @param message StoragePoolDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolDisk.verify|verify} messages.
                     * @param message StoragePoolDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolDisk;

                    /**
                     * Decodes a StoragePoolDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolDisk;

                    /**
                     * Verifies a StoragePoolDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolDisk;

                    /**
                     * Creates a plain object from a StoragePoolDisk message. Also converts values to other types if specified.
                     * @param message StoragePoolDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StoragePoolDisk {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963,
                        RESTORING = 404263851,
                        UNAVAILABLE = 413756464
                    }
                }

                /** Properties of a StoragePoolExapoolProvisionedCapacityGb. */
                interface IStoragePoolExapoolProvisionedCapacityGb {

                    /** StoragePoolExapoolProvisionedCapacityGb capacityOptimized */
                    capacityOptimized?: (number|Long|string|null);

                    /** StoragePoolExapoolProvisionedCapacityGb readOptimized */
                    readOptimized?: (number|Long|string|null);

                    /** StoragePoolExapoolProvisionedCapacityGb writeOptimized */
                    writeOptimized?: (number|Long|string|null);
                }

                /** Represents a StoragePoolExapoolProvisionedCapacityGb. */
                class StoragePoolExapoolProvisionedCapacityGb implements IStoragePoolExapoolProvisionedCapacityGb {

                    /**
                     * Constructs a new StoragePoolExapoolProvisionedCapacityGb.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolExapoolProvisionedCapacityGb);

                    /** StoragePoolExapoolProvisionedCapacityGb capacityOptimized. */
                    public capacityOptimized?: (number|Long|string|null);

                    /** StoragePoolExapoolProvisionedCapacityGb readOptimized. */
                    public readOptimized?: (number|Long|string|null);

                    /** StoragePoolExapoolProvisionedCapacityGb writeOptimized. */
                    public writeOptimized?: (number|Long|string|null);

                    /**
                     * Creates a new StoragePoolExapoolProvisionedCapacityGb instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolExapoolProvisionedCapacityGb instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolExapoolProvisionedCapacityGb): google.cloud.compute.v1.StoragePoolExapoolProvisionedCapacityGb;

                    /**
                     * Encodes the specified StoragePoolExapoolProvisionedCapacityGb message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolExapoolProvisionedCapacityGb.verify|verify} messages.
                     * @param message StoragePoolExapoolProvisionedCapacityGb message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolExapoolProvisionedCapacityGb, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolExapoolProvisionedCapacityGb message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolExapoolProvisionedCapacityGb.verify|verify} messages.
                     * @param message StoragePoolExapoolProvisionedCapacityGb message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolExapoolProvisionedCapacityGb, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolExapoolProvisionedCapacityGb message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolExapoolProvisionedCapacityGb
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolExapoolProvisionedCapacityGb;

                    /**
                     * Decodes a StoragePoolExapoolProvisionedCapacityGb message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolExapoolProvisionedCapacityGb
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolExapoolProvisionedCapacityGb;

                    /**
                     * Verifies a StoragePoolExapoolProvisionedCapacityGb message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolExapoolProvisionedCapacityGb message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolExapoolProvisionedCapacityGb
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolExapoolProvisionedCapacityGb;

                    /**
                     * Creates a plain object from a StoragePoolExapoolProvisionedCapacityGb message. Also converts values to other types if specified.
                     * @param message StoragePoolExapoolProvisionedCapacityGb
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolExapoolProvisionedCapacityGb, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolExapoolProvisionedCapacityGb to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolExapoolProvisionedCapacityGb
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolList. */
                interface IStoragePoolList {

                    /** StoragePoolList etag */
                    etag?: (string|null);

                    /** StoragePoolList id */
                    id?: (string|null);

                    /** StoragePoolList items */
                    items?: (google.cloud.compute.v1.IStoragePool[]|null);

                    /** StoragePoolList kind */
                    kind?: (string|null);

                    /** StoragePoolList nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolList selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolList unreachables */
                    unreachables?: (string[]|null);

                    /** StoragePoolList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a StoragePoolList. */
                class StoragePoolList implements IStoragePoolList {

                    /**
                     * Constructs a new StoragePoolList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolList);

                    /** StoragePoolList etag. */
                    public etag?: (string|null);

                    /** StoragePoolList id. */
                    public id?: (string|null);

                    /** StoragePoolList items. */
                    public items: google.cloud.compute.v1.IStoragePool[];

                    /** StoragePoolList kind. */
                    public kind?: (string|null);

                    /** StoragePoolList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolList selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolList unreachables. */
                    public unreachables: string[];

                    /** StoragePoolList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new StoragePoolList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolList): google.cloud.compute.v1.StoragePoolList;

                    /**
                     * Encodes the specified StoragePoolList message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolList.verify|verify} messages.
                     * @param message StoragePoolList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolList.verify|verify} messages.
                     * @param message StoragePoolList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolList;

                    /**
                     * Decodes a StoragePoolList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolList;

                    /**
                     * Verifies a StoragePoolList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolList;

                    /**
                     * Creates a plain object from a StoragePoolList message. Also converts values to other types if specified.
                     * @param message StoragePoolList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolListDisks. */
                interface IStoragePoolListDisks {

                    /** StoragePoolListDisks etag */
                    etag?: (string|null);

                    /** StoragePoolListDisks id */
                    id?: (string|null);

                    /** StoragePoolListDisks items */
                    items?: (google.cloud.compute.v1.IStoragePoolDisk[]|null);

                    /** StoragePoolListDisks kind */
                    kind?: (string|null);

                    /** StoragePoolListDisks nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolListDisks selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolListDisks unreachables */
                    unreachables?: (string[]|null);

                    /** StoragePoolListDisks warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a StoragePoolListDisks. */
                class StoragePoolListDisks implements IStoragePoolListDisks {

                    /**
                     * Constructs a new StoragePoolListDisks.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolListDisks);

                    /** StoragePoolListDisks etag. */
                    public etag?: (string|null);

                    /** StoragePoolListDisks id. */
                    public id?: (string|null);

                    /** StoragePoolListDisks items. */
                    public items: google.cloud.compute.v1.IStoragePoolDisk[];

                    /** StoragePoolListDisks kind. */
                    public kind?: (string|null);

                    /** StoragePoolListDisks nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolListDisks selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolListDisks unreachables. */
                    public unreachables: string[];

                    /** StoragePoolListDisks warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new StoragePoolListDisks instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolListDisks instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolListDisks): google.cloud.compute.v1.StoragePoolListDisks;

                    /**
                     * Encodes the specified StoragePoolListDisks message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolListDisks.verify|verify} messages.
                     * @param message StoragePoolListDisks message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolListDisks, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolListDisks message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolListDisks.verify|verify} messages.
                     * @param message StoragePoolListDisks message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolListDisks, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolListDisks message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolListDisks
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolListDisks;

                    /**
                     * Decodes a StoragePoolListDisks message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolListDisks
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolListDisks;

                    /**
                     * Verifies a StoragePoolListDisks message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolListDisks message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolListDisks
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolListDisks;

                    /**
                     * Creates a plain object from a StoragePoolListDisks message. Also converts values to other types if specified.
                     * @param message StoragePoolListDisks
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolListDisks, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolListDisks to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolListDisks
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolParams. */
                interface IStoragePoolParams {

                    /** StoragePoolParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a StoragePoolParams. */
                class StoragePoolParams implements IStoragePoolParams {

                    /**
                     * Constructs a new StoragePoolParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolParams);

                    /** StoragePoolParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new StoragePoolParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolParams): google.cloud.compute.v1.StoragePoolParams;

                    /**
                     * Encodes the specified StoragePoolParams message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolParams.verify|verify} messages.
                     * @param message StoragePoolParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolParams.verify|verify} messages.
                     * @param message StoragePoolParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolParams;

                    /**
                     * Decodes a StoragePoolParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolParams;

                    /**
                     * Verifies a StoragePoolParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolParams;

                    /**
                     * Creates a plain object from a StoragePoolParams message. Also converts values to other types if specified.
                     * @param message StoragePoolParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolResourceStatus. */
                interface IStoragePoolResourceStatus {

                    /** StoragePoolResourceStatus diskCount */
                    diskCount?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxReadIops */
                    exapoolMaxReadIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxReadThroughput */
                    exapoolMaxReadThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxWriteIops */
                    exapoolMaxWriteIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxWriteThroughput */
                    exapoolMaxWriteThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus lastResizeTimestamp */
                    lastResizeTimestamp?: (string|null);

                    /** StoragePoolResourceStatus maxTotalProvisionedDiskCapacityGb */
                    maxTotalProvisionedDiskCapacityGb?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedCapacityBytes */
                    poolUsedCapacityBytes?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedIops */
                    poolUsedIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedThroughput */
                    poolUsedThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUserWrittenBytes */
                    poolUserWrittenBytes?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskCapacityGb */
                    totalProvisionedDiskCapacityGb?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskIops */
                    totalProvisionedDiskIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskThroughput */
                    totalProvisionedDiskThroughput?: (number|Long|string|null);
                }

                /** Represents a StoragePoolResourceStatus. */
                class StoragePoolResourceStatus implements IStoragePoolResourceStatus {

                    /**
                     * Constructs a new StoragePoolResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolResourceStatus);

                    /** StoragePoolResourceStatus diskCount. */
                    public diskCount?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxReadIops. */
                    public exapoolMaxReadIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxReadThroughput. */
                    public exapoolMaxReadThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxWriteIops. */
                    public exapoolMaxWriteIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxWriteThroughput. */
                    public exapoolMaxWriteThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus lastResizeTimestamp. */
                    public lastResizeTimestamp?: (string|null);

                    /** StoragePoolResourceStatus maxTotalProvisionedDiskCapacityGb. */
                    public maxTotalProvisionedDiskCapacityGb?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedCapacityBytes. */
                    public poolUsedCapacityBytes?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedIops. */
                    public poolUsedIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedThroughput. */
                    public poolUsedThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUserWrittenBytes. */
                    public poolUserWrittenBytes?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskCapacityGb. */
                    public totalProvisionedDiskCapacityGb?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskIops. */
                    public totalProvisionedDiskIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskThroughput. */
                    public totalProvisionedDiskThroughput?: (number|Long|string|null);

                    /**
                     * Creates a new StoragePoolResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolResourceStatus): google.cloud.compute.v1.StoragePoolResourceStatus;

                    /**
                     * Encodes the specified StoragePoolResourceStatus message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolResourceStatus.verify|verify} messages.
                     * @param message StoragePoolResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolResourceStatus.verify|verify} messages.
                     * @param message StoragePoolResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolResourceStatus;

                    /**
                     * Decodes a StoragePoolResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolResourceStatus;

                    /**
                     * Verifies a StoragePoolResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolResourceStatus;

                    /**
                     * Creates a plain object from a StoragePoolResourceStatus message. Also converts values to other types if specified.
                     * @param message StoragePoolResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolType. */
                interface IStoragePoolType {

                    /** StoragePoolType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** StoragePoolType deprecated */
                    deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** StoragePoolType description */
                    description?: (string|null);

                    /** StoragePoolType id */
                    id?: (number|Long|string|null);

                    /** StoragePoolType kind */
                    kind?: (string|null);

                    /** StoragePoolType maxPoolProvisionedCapacityGb */
                    maxPoolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePoolType maxPoolProvisionedIops */
                    maxPoolProvisionedIops?: (number|Long|string|null);

                    /** StoragePoolType maxPoolProvisionedThroughput */
                    maxPoolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedCapacityGb */
                    minPoolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedIops */
                    minPoolProvisionedIops?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedThroughput */
                    minPoolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolType minSizeGb */
                    minSizeGb?: (number|Long|string|null);

                    /** StoragePoolType name */
                    name?: (string|null);

                    /** StoragePoolType selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolType selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** StoragePoolType supportedDiskTypes */
                    supportedDiskTypes?: (string[]|null);

                    /** StoragePoolType zone */
                    zone?: (string|null);
                }

                /** Represents a StoragePoolType. */
                class StoragePoolType implements IStoragePoolType {

                    /**
                     * Constructs a new StoragePoolType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolType);

                    /** StoragePoolType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** StoragePoolType deprecated. */
                    public deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** StoragePoolType description. */
                    public description?: (string|null);

                    /** StoragePoolType id. */
                    public id?: (number|Long|string|null);

                    /** StoragePoolType kind. */
                    public kind?: (string|null);

                    /** StoragePoolType maxPoolProvisionedCapacityGb. */
                    public maxPoolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePoolType maxPoolProvisionedIops. */
                    public maxPoolProvisionedIops?: (number|Long|string|null);

                    /** StoragePoolType maxPoolProvisionedThroughput. */
                    public maxPoolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedCapacityGb. */
                    public minPoolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedIops. */
                    public minPoolProvisionedIops?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedThroughput. */
                    public minPoolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolType minSizeGb. */
                    public minSizeGb?: (number|Long|string|null);

                    /** StoragePoolType name. */
                    public name?: (string|null);

                    /** StoragePoolType selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolType selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** StoragePoolType supportedDiskTypes. */
                    public supportedDiskTypes: string[];

                    /** StoragePoolType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new StoragePoolType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolType instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolType): google.cloud.compute.v1.StoragePoolType;

                    /**
                     * Encodes the specified StoragePoolType message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolType.verify|verify} messages.
                     * @param message StoragePoolType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolType message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolType.verify|verify} messages.
                     * @param message StoragePoolType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolType;

                    /**
                     * Decodes a StoragePoolType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolType;

                    /**
                     * Verifies a StoragePoolType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolType;

                    /**
                     * Creates a plain object from a StoragePoolType message. Also converts values to other types if specified.
                     * @param message StoragePoolType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolTypeAggregatedList. */
                interface IStoragePoolTypeAggregatedList {

                    /** StoragePoolTypeAggregatedList id */
                    id?: (string|null);

                    /** StoragePoolTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IStoragePoolTypesScopedList }|null);

                    /** StoragePoolTypeAggregatedList kind */
                    kind?: (string|null);

                    /** StoragePoolTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a StoragePoolTypeAggregatedList. */
                class StoragePoolTypeAggregatedList implements IStoragePoolTypeAggregatedList {

                    /**
                     * Constructs a new StoragePoolTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolTypeAggregatedList);

                    /** StoragePoolTypeAggregatedList id. */
                    public id?: (string|null);

                    /** StoragePoolTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IStoragePoolTypesScopedList };

                    /** StoragePoolTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** StoragePoolTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new StoragePoolTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolTypeAggregatedList): google.cloud.compute.v1.StoragePoolTypeAggregatedList;

                    /**
                     * Encodes the specified StoragePoolTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolTypeAggregatedList.verify|verify} messages.
                     * @param message StoragePoolTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolTypeAggregatedList.verify|verify} messages.
                     * @param message StoragePoolTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolTypeAggregatedList;

                    /**
                     * Decodes a StoragePoolTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolTypeAggregatedList;

                    /**
                     * Verifies a StoragePoolTypeAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolTypeAggregatedList;

                    /**
                     * Creates a plain object from a StoragePoolTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message StoragePoolTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolTypeList. */
                interface IStoragePoolTypeList {

                    /** StoragePoolTypeList id */
                    id?: (string|null);

                    /** StoragePoolTypeList items */
                    items?: (google.cloud.compute.v1.IStoragePoolType[]|null);

                    /** StoragePoolTypeList kind */
                    kind?: (string|null);

                    /** StoragePoolTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolTypeList selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolTypeList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a StoragePoolTypeList. */
                class StoragePoolTypeList implements IStoragePoolTypeList {

                    /**
                     * Constructs a new StoragePoolTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolTypeList);

                    /** StoragePoolTypeList id. */
                    public id?: (string|null);

                    /** StoragePoolTypeList items. */
                    public items: google.cloud.compute.v1.IStoragePoolType[];

                    /** StoragePoolTypeList kind. */
                    public kind?: (string|null);

                    /** StoragePoolTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolTypeList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new StoragePoolTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolTypeList): google.cloud.compute.v1.StoragePoolTypeList;

                    /**
                     * Encodes the specified StoragePoolTypeList message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolTypeList.verify|verify} messages.
                     * @param message StoragePoolTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolTypeList.verify|verify} messages.
                     * @param message StoragePoolTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolTypeList;

                    /**
                     * Decodes a StoragePoolTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolTypeList;

                    /**
                     * Verifies a StoragePoolTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolTypeList;

                    /**
                     * Creates a plain object from a StoragePoolTypeList message. Also converts values to other types if specified.
                     * @param message StoragePoolTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolTypesScopedList. */
                interface IStoragePoolTypesScopedList {

                    /** StoragePoolTypesScopedList storagePoolTypes */
                    storagePoolTypes?: (google.cloud.compute.v1.IStoragePoolType[]|null);

                    /** StoragePoolTypesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a StoragePoolTypesScopedList. */
                class StoragePoolTypesScopedList implements IStoragePoolTypesScopedList {

                    /**
                     * Constructs a new StoragePoolTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolTypesScopedList);

                    /** StoragePoolTypesScopedList storagePoolTypes. */
                    public storagePoolTypes: google.cloud.compute.v1.IStoragePoolType[];

                    /** StoragePoolTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new StoragePoolTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolTypesScopedList): google.cloud.compute.v1.StoragePoolTypesScopedList;

                    /**
                     * Encodes the specified StoragePoolTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolTypesScopedList.verify|verify} messages.
                     * @param message StoragePoolTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolTypesScopedList.verify|verify} messages.
                     * @param message StoragePoolTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolTypesScopedList;

                    /**
                     * Decodes a StoragePoolTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolTypesScopedList;

                    /**
                     * Verifies a StoragePoolTypesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolTypesScopedList;

                    /**
                     * Creates a plain object from a StoragePoolTypesScopedList message. Also converts values to other types if specified.
                     * @param message StoragePoolTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolsScopedList. */
                interface IStoragePoolsScopedList {

                    /** StoragePoolsScopedList storagePools */
                    storagePools?: (google.cloud.compute.v1.IStoragePool[]|null);

                    /** StoragePoolsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a StoragePoolsScopedList. */
                class StoragePoolsScopedList implements IStoragePoolsScopedList {

                    /**
                     * Constructs a new StoragePoolsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IStoragePoolsScopedList);

                    /** StoragePoolsScopedList storagePools. */
                    public storagePools: google.cloud.compute.v1.IStoragePool[];

                    /** StoragePoolsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new StoragePoolsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IStoragePoolsScopedList): google.cloud.compute.v1.StoragePoolsScopedList;

                    /**
                     * Encodes the specified StoragePoolsScopedList message. Does not implicitly {@link google.cloud.compute.v1.StoragePoolsScopedList.verify|verify} messages.
                     * @param message StoragePoolsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IStoragePoolsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.StoragePoolsScopedList.verify|verify} messages.
                     * @param message StoragePoolsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IStoragePoolsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.StoragePoolsScopedList;

                    /**
                     * Decodes a StoragePoolsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.StoragePoolsScopedList;

                    /**
                     * Verifies a StoragePoolsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.StoragePoolsScopedList;

                    /**
                     * Creates a plain object from a StoragePoolsScopedList message. Also converts values to other types if specified.
                     * @param message StoragePoolsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.StoragePoolsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Subnetwork. */
                interface ISubnetwork {

                    /** Subnetwork allowSubnetCidrRoutesOverlap */
                    allowSubnetCidrRoutesOverlap?: (boolean|null);

                    /** Subnetwork creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Subnetwork description */
                    description?: (string|null);

                    /** Subnetwork enableFlowLogs */
                    enableFlowLogs?: (boolean|null);

                    /** Subnetwork externalIpv6Prefix */
                    externalIpv6Prefix?: (string|null);

                    /** Subnetwork fingerprint */
                    fingerprint?: (string|null);

                    /** Subnetwork gatewayAddress */
                    gatewayAddress?: (string|null);

                    /** Subnetwork id */
                    id?: (number|Long|string|null);

                    /** Subnetwork internalIpv6Prefix */
                    internalIpv6Prefix?: (string|null);

                    /** Subnetwork ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** Subnetwork ipCollection */
                    ipCollection?: (string|null);

                    /** Subnetwork ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** Subnetwork ipv6CidrRange */
                    ipv6CidrRange?: (string|null);

                    /** Subnetwork ipv6GceEndpoint */
                    ipv6GceEndpoint?: (string|null);

                    /** Subnetwork kind */
                    kind?: (string|null);

                    /** Subnetwork logConfig */
                    logConfig?: (google.cloud.compute.v1.ISubnetworkLogConfig|null);

                    /** Subnetwork name */
                    name?: (string|null);

                    /** Subnetwork network */
                    network?: (string|null);

                    /** Subnetwork params */
                    params?: (google.cloud.compute.v1.ISubnetworkParams|null);

                    /** Subnetwork privateIpGoogleAccess */
                    privateIpGoogleAccess?: (boolean|null);

                    /** Subnetwork privateIpv6GoogleAccess */
                    privateIpv6GoogleAccess?: (string|null);

                    /** Subnetwork purpose */
                    purpose?: (string|null);

                    /** Subnetwork region */
                    region?: (string|null);

                    /** Subnetwork reservedInternalRange */
                    reservedInternalRange?: (string|null);

                    /** Subnetwork resolveSubnetMask */
                    resolveSubnetMask?: (string|null);

                    /** Subnetwork role */
                    role?: (string|null);

                    /** Subnetwork secondaryIpRanges */
                    secondaryIpRanges?: (google.cloud.compute.v1.ISubnetworkSecondaryRange[]|null);

                    /** Subnetwork selfLink */
                    selfLink?: (string|null);

                    /** Subnetwork stackType */
                    stackType?: (string|null);

                    /** Subnetwork state */
                    state?: (string|null);

                    /** Subnetwork systemReservedExternalIpv6Ranges */
                    systemReservedExternalIpv6Ranges?: (string[]|null);

                    /** Subnetwork systemReservedInternalIpv6Ranges */
                    systemReservedInternalIpv6Ranges?: (string[]|null);

                    /** Subnetwork utilizationDetails */
                    utilizationDetails?: (google.cloud.compute.v1.ISubnetworkUtilizationDetails|null);
                }

                /** Represents a Subnetwork. */
                class Subnetwork implements ISubnetwork {

                    /**
                     * Constructs a new Subnetwork.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetwork);

                    /** Subnetwork allowSubnetCidrRoutesOverlap. */
                    public allowSubnetCidrRoutesOverlap?: (boolean|null);

                    /** Subnetwork creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Subnetwork description. */
                    public description?: (string|null);

                    /** Subnetwork enableFlowLogs. */
                    public enableFlowLogs?: (boolean|null);

                    /** Subnetwork externalIpv6Prefix. */
                    public externalIpv6Prefix?: (string|null);

                    /** Subnetwork fingerprint. */
                    public fingerprint?: (string|null);

                    /** Subnetwork gatewayAddress. */
                    public gatewayAddress?: (string|null);

                    /** Subnetwork id. */
                    public id?: (number|Long|string|null);

                    /** Subnetwork internalIpv6Prefix. */
                    public internalIpv6Prefix?: (string|null);

                    /** Subnetwork ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** Subnetwork ipCollection. */
                    public ipCollection?: (string|null);

                    /** Subnetwork ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** Subnetwork ipv6CidrRange. */
                    public ipv6CidrRange?: (string|null);

                    /** Subnetwork ipv6GceEndpoint. */
                    public ipv6GceEndpoint?: (string|null);

                    /** Subnetwork kind. */
                    public kind?: (string|null);

                    /** Subnetwork logConfig. */
                    public logConfig?: (google.cloud.compute.v1.ISubnetworkLogConfig|null);

                    /** Subnetwork name. */
                    public name?: (string|null);

                    /** Subnetwork network. */
                    public network?: (string|null);

                    /** Subnetwork params. */
                    public params?: (google.cloud.compute.v1.ISubnetworkParams|null);

                    /** Subnetwork privateIpGoogleAccess. */
                    public privateIpGoogleAccess?: (boolean|null);

                    /** Subnetwork privateIpv6GoogleAccess. */
                    public privateIpv6GoogleAccess?: (string|null);

                    /** Subnetwork purpose. */
                    public purpose?: (string|null);

                    /** Subnetwork region. */
                    public region?: (string|null);

                    /** Subnetwork reservedInternalRange. */
                    public reservedInternalRange?: (string|null);

                    /** Subnetwork resolveSubnetMask. */
                    public resolveSubnetMask?: (string|null);

                    /** Subnetwork role. */
                    public role?: (string|null);

                    /** Subnetwork secondaryIpRanges. */
                    public secondaryIpRanges: google.cloud.compute.v1.ISubnetworkSecondaryRange[];

                    /** Subnetwork selfLink. */
                    public selfLink?: (string|null);

                    /** Subnetwork stackType. */
                    public stackType?: (string|null);

                    /** Subnetwork state. */
                    public state?: (string|null);

                    /** Subnetwork systemReservedExternalIpv6Ranges. */
                    public systemReservedExternalIpv6Ranges: string[];

                    /** Subnetwork systemReservedInternalIpv6Ranges. */
                    public systemReservedInternalIpv6Ranges: string[];

                    /** Subnetwork utilizationDetails. */
                    public utilizationDetails?: (google.cloud.compute.v1.ISubnetworkUtilizationDetails|null);

                    /**
                     * Creates a new Subnetwork instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Subnetwork instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetwork): google.cloud.compute.v1.Subnetwork;

                    /**
                     * Encodes the specified Subnetwork message. Does not implicitly {@link google.cloud.compute.v1.Subnetwork.verify|verify} messages.
                     * @param message Subnetwork message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Subnetwork message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Subnetwork.verify|verify} messages.
                     * @param message Subnetwork message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Subnetwork message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Subnetwork
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Subnetwork;

                    /**
                     * Decodes a Subnetwork message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Subnetwork
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Subnetwork;

                    /**
                     * Verifies a Subnetwork message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Subnetwork message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Subnetwork
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Subnetwork;

                    /**
                     * Creates a plain object from a Subnetwork message. Also converts values to other types if specified.
                     * @param message Subnetwork
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Subnetwork, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Subnetwork to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Subnetwork
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Subnetwork {

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677,
                        UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613
                    }

                    /** Ipv6GceEndpoint enum. */
                    enum Ipv6GceEndpoint {
                        UNDEFINED_IPV6_GCE_ENDPOINT = 0,
                        VM_AND_FR = 41830108,
                        VM_ONLY = 236773428
                    }

                    /** PrivateIpv6GoogleAccess enum. */
                    enum PrivateIpv6GoogleAccess {
                        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0,
                        DISABLE_GOOGLE_ACCESS = 450958579,
                        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994,
                        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263
                    }

                    /** Purpose enum. */
                    enum Purpose {
                        UNDEFINED_PURPOSE = 0,
                        GLOBAL_MANAGED_PROXY = 236463602,
                        INTERNAL_HTTPS_LOAD_BALANCER = 248748889,
                        PEER_MIGRATION = 491902225,
                        PRIVATE = 403485027,
                        PRIVATE_NAT = 367764517,
                        PRIVATE_RFC_1918 = 254902107,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        REGIONAL_MANAGED_PROXY = 153049966
                    }

                    /** ResolveSubnetMask enum. */
                    enum ResolveSubnetMask {
                        UNDEFINED_RESOLVE_SUBNET_MASK = 0,
                        ARP_ALL_RANGES = 445655380,
                        ARP_PRIMARY_RANGE = 120210048
                    }

                    /** Role enum. */
                    enum Role {
                        UNDEFINED_ROLE = 0,
                        ACTIVE = 314733318,
                        BACKUP = 341010882
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100,
                        UNSPECIFIED_STACK_TYPE = 298084569
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        DRAINING = 480455402,
                        READY = 77848963
                    }
                }

                /** Properties of a SubnetworkAggregatedList. */
                interface ISubnetworkAggregatedList {

                    /** SubnetworkAggregatedList id */
                    id?: (string|null);

                    /** SubnetworkAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ISubnetworksScopedList }|null);

                    /** SubnetworkAggregatedList kind */
                    kind?: (string|null);

                    /** SubnetworkAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SubnetworkAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SubnetworkAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SubnetworkAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SubnetworkAggregatedList. */
                class SubnetworkAggregatedList implements ISubnetworkAggregatedList {

                    /**
                     * Constructs a new SubnetworkAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworkAggregatedList);

                    /** SubnetworkAggregatedList id. */
                    public id?: (string|null);

                    /** SubnetworkAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ISubnetworksScopedList };

                    /** SubnetworkAggregatedList kind. */
                    public kind?: (string|null);

                    /** SubnetworkAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SubnetworkAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SubnetworkAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SubnetworkAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SubnetworkAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworkAggregatedList): google.cloud.compute.v1.SubnetworkAggregatedList;

                    /**
                     * Encodes the specified SubnetworkAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.SubnetworkAggregatedList.verify|verify} messages.
                     * @param message SubnetworkAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworkAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworkAggregatedList.verify|verify} messages.
                     * @param message SubnetworkAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworkAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworkAggregatedList;

                    /**
                     * Decodes a SubnetworkAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworkAggregatedList;

                    /**
                     * Verifies a SubnetworkAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworkAggregatedList;

                    /**
                     * Creates a plain object from a SubnetworkAggregatedList message. Also converts values to other types if specified.
                     * @param message SubnetworkAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworkAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkList. */
                interface ISubnetworkList {

                    /** SubnetworkList id */
                    id?: (string|null);

                    /** SubnetworkList items */
                    items?: (google.cloud.compute.v1.ISubnetwork[]|null);

                    /** SubnetworkList kind */
                    kind?: (string|null);

                    /** SubnetworkList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SubnetworkList selfLink */
                    selfLink?: (string|null);

                    /** SubnetworkList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SubnetworkList. */
                class SubnetworkList implements ISubnetworkList {

                    /**
                     * Constructs a new SubnetworkList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworkList);

                    /** SubnetworkList id. */
                    public id?: (string|null);

                    /** SubnetworkList items. */
                    public items: google.cloud.compute.v1.ISubnetwork[];

                    /** SubnetworkList kind. */
                    public kind?: (string|null);

                    /** SubnetworkList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SubnetworkList selfLink. */
                    public selfLink?: (string|null);

                    /** SubnetworkList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SubnetworkList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworkList): google.cloud.compute.v1.SubnetworkList;

                    /**
                     * Encodes the specified SubnetworkList message. Does not implicitly {@link google.cloud.compute.v1.SubnetworkList.verify|verify} messages.
                     * @param message SubnetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworkList.verify|verify} messages.
                     * @param message SubnetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworkList;

                    /**
                     * Decodes a SubnetworkList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworkList;

                    /**
                     * Verifies a SubnetworkList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworkList;

                    /**
                     * Creates a plain object from a SubnetworkList message. Also converts values to other types if specified.
                     * @param message SubnetworkList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworkList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkLogConfig. */
                interface ISubnetworkLogConfig {

                    /** SubnetworkLogConfig aggregationInterval */
                    aggregationInterval?: (string|null);

                    /** SubnetworkLogConfig enable */
                    enable?: (boolean|null);

                    /** SubnetworkLogConfig filterExpr */
                    filterExpr?: (string|null);

                    /** SubnetworkLogConfig flowSampling */
                    flowSampling?: (number|null);

                    /** SubnetworkLogConfig metadata */
                    metadata?: (string|null);

                    /** SubnetworkLogConfig metadataFields */
                    metadataFields?: (string[]|null);
                }

                /** Represents a SubnetworkLogConfig. */
                class SubnetworkLogConfig implements ISubnetworkLogConfig {

                    /**
                     * Constructs a new SubnetworkLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworkLogConfig);

                    /** SubnetworkLogConfig aggregationInterval. */
                    public aggregationInterval?: (string|null);

                    /** SubnetworkLogConfig enable. */
                    public enable?: (boolean|null);

                    /** SubnetworkLogConfig filterExpr. */
                    public filterExpr?: (string|null);

                    /** SubnetworkLogConfig flowSampling. */
                    public flowSampling?: (number|null);

                    /** SubnetworkLogConfig metadata. */
                    public metadata?: (string|null);

                    /** SubnetworkLogConfig metadataFields. */
                    public metadataFields: string[];

                    /**
                     * Creates a new SubnetworkLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworkLogConfig): google.cloud.compute.v1.SubnetworkLogConfig;

                    /**
                     * Encodes the specified SubnetworkLogConfig message. Does not implicitly {@link google.cloud.compute.v1.SubnetworkLogConfig.verify|verify} messages.
                     * @param message SubnetworkLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworkLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworkLogConfig.verify|verify} messages.
                     * @param message SubnetworkLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworkLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworkLogConfig;

                    /**
                     * Decodes a SubnetworkLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworkLogConfig;

                    /**
                     * Verifies a SubnetworkLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworkLogConfig;

                    /**
                     * Creates a plain object from a SubnetworkLogConfig message. Also converts values to other types if specified.
                     * @param message SubnetworkLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworkLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SubnetworkLogConfig {

                    /** AggregationInterval enum. */
                    enum AggregationInterval {
                        UNDEFINED_AGGREGATION_INTERVAL = 0,
                        INTERVAL_10_MIN = 487155916,
                        INTERVAL_15_MIN = 491773521,
                        INTERVAL_1_MIN = 69052714,
                        INTERVAL_30_SEC = 7548937,
                        INTERVAL_5_MIN = 72746798,
                        INTERVAL_5_SEC = 72752429
                    }

                    /** Metadata enum. */
                    enum Metadata {
                        UNDEFINED_METADATA = 0,
                        CUSTOM_METADATA = 62450749,
                        EXCLUDE_ALL_METADATA = 334519954,
                        INCLUDE_ALL_METADATA = 164619908
                    }
                }

                /** Properties of a SubnetworkParams. */
                interface ISubnetworkParams {

                    /** SubnetworkParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a SubnetworkParams. */
                class SubnetworkParams implements ISubnetworkParams {

                    /**
                     * Constructs a new SubnetworkParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworkParams);

                    /** SubnetworkParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new SubnetworkParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworkParams): google.cloud.compute.v1.SubnetworkParams;

                    /**
                     * Encodes the specified SubnetworkParams message. Does not implicitly {@link google.cloud.compute.v1.SubnetworkParams.verify|verify} messages.
                     * @param message SubnetworkParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworkParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworkParams.verify|verify} messages.
                     * @param message SubnetworkParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworkParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworkParams;

                    /**
                     * Decodes a SubnetworkParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworkParams;

                    /**
                     * Verifies a SubnetworkParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworkParams;

                    /**
                     * Creates a plain object from a SubnetworkParams message. Also converts values to other types if specified.
                     * @param message SubnetworkParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworkParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkSecondaryRange. */
                interface ISubnetworkSecondaryRange {

                    /** SubnetworkSecondaryRange ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** SubnetworkSecondaryRange rangeName */
                    rangeName?: (string|null);

                    /** SubnetworkSecondaryRange reservedInternalRange */
                    reservedInternalRange?: (string|null);
                }

                /** Represents a SubnetworkSecondaryRange. */
                class SubnetworkSecondaryRange implements ISubnetworkSecondaryRange {

                    /**
                     * Constructs a new SubnetworkSecondaryRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworkSecondaryRange);

                    /** SubnetworkSecondaryRange ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** SubnetworkSecondaryRange rangeName. */
                    public rangeName?: (string|null);

                    /** SubnetworkSecondaryRange reservedInternalRange. */
                    public reservedInternalRange?: (string|null);

                    /**
                     * Creates a new SubnetworkSecondaryRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkSecondaryRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworkSecondaryRange): google.cloud.compute.v1.SubnetworkSecondaryRange;

                    /**
                     * Encodes the specified SubnetworkSecondaryRange message. Does not implicitly {@link google.cloud.compute.v1.SubnetworkSecondaryRange.verify|verify} messages.
                     * @param message SubnetworkSecondaryRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkSecondaryRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworkSecondaryRange.verify|verify} messages.
                     * @param message SubnetworkSecondaryRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkSecondaryRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkSecondaryRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworkSecondaryRange;

                    /**
                     * Decodes a SubnetworkSecondaryRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkSecondaryRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworkSecondaryRange;

                    /**
                     * Verifies a SubnetworkSecondaryRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkSecondaryRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkSecondaryRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworkSecondaryRange;

                    /**
                     * Creates a plain object from a SubnetworkSecondaryRange message. Also converts values to other types if specified.
                     * @param message SubnetworkSecondaryRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworkSecondaryRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkSecondaryRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkSecondaryRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkUtilizationDetails. */
                interface ISubnetworkUtilizationDetails {

                    /** SubnetworkUtilizationDetails externalIpv6InstanceUtilization */
                    externalIpv6InstanceUtilization?: (google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails externalIpv6LbUtilization */
                    externalIpv6LbUtilization?: (google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails internalIpv6Utilization */
                    internalIpv6Utilization?: (google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails ipv4Utilizations */
                    ipv4Utilizations?: (google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV4Utilization[]|null);
                }

                /** Represents a SubnetworkUtilizationDetails. */
                class SubnetworkUtilizationDetails implements ISubnetworkUtilizationDetails {

                    /**
                     * Constructs a new SubnetworkUtilizationDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworkUtilizationDetails);

                    /** SubnetworkUtilizationDetails externalIpv6InstanceUtilization. */
                    public externalIpv6InstanceUtilization?: (google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails externalIpv6LbUtilization. */
                    public externalIpv6LbUtilization?: (google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails internalIpv6Utilization. */
                    public internalIpv6Utilization?: (google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails ipv4Utilizations. */
                    public ipv4Utilizations: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV4Utilization[];

                    /**
                     * Creates a new SubnetworkUtilizationDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkUtilizationDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworkUtilizationDetails): google.cloud.compute.v1.SubnetworkUtilizationDetails;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetails message. Does not implicitly {@link google.cloud.compute.v1.SubnetworkUtilizationDetails.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworkUtilizationDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworkUtilizationDetails.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworkUtilizationDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkUtilizationDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkUtilizationDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworkUtilizationDetails;

                    /**
                     * Decodes a SubnetworkUtilizationDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkUtilizationDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworkUtilizationDetails;

                    /**
                     * Verifies a SubnetworkUtilizationDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkUtilizationDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkUtilizationDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworkUtilizationDetails;

                    /**
                     * Creates a plain object from a SubnetworkUtilizationDetails message. Also converts values to other types if specified.
                     * @param message SubnetworkUtilizationDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworkUtilizationDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkUtilizationDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkUtilizationDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkUtilizationDetailsIPV4Utilization. */
                interface ISubnetworkUtilizationDetailsIPV4Utilization {

                    /** SubnetworkUtilizationDetailsIPV4Utilization rangeName */
                    rangeName?: (string|null);

                    /** SubnetworkUtilizationDetailsIPV4Utilization totalAllocatedIp */
                    totalAllocatedIp?: (number|Long|string|null);

                    /** SubnetworkUtilizationDetailsIPV4Utilization totalFreeIp */
                    totalFreeIp?: (number|Long|string|null);
                }

                /** Represents a SubnetworkUtilizationDetailsIPV4Utilization. */
                class SubnetworkUtilizationDetailsIPV4Utilization implements ISubnetworkUtilizationDetailsIPV4Utilization {

                    /**
                     * Constructs a new SubnetworkUtilizationDetailsIPV4Utilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV4Utilization);

                    /** SubnetworkUtilizationDetailsIPV4Utilization rangeName. */
                    public rangeName?: (string|null);

                    /** SubnetworkUtilizationDetailsIPV4Utilization totalAllocatedIp. */
                    public totalAllocatedIp?: (number|Long|string|null);

                    /** SubnetworkUtilizationDetailsIPV4Utilization totalFreeIp. */
                    public totalFreeIp?: (number|Long|string|null);

                    /**
                     * Creates a new SubnetworkUtilizationDetailsIPV4Utilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkUtilizationDetailsIPV4Utilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV4Utilization): google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV4Utilization;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetailsIPV4Utilization message. Does not implicitly {@link google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV4Utilization.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetailsIPV4Utilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV4Utilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetailsIPV4Utilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV4Utilization.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetailsIPV4Utilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV4Utilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkUtilizationDetailsIPV4Utilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkUtilizationDetailsIPV4Utilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV4Utilization;

                    /**
                     * Decodes a SubnetworkUtilizationDetailsIPV4Utilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkUtilizationDetailsIPV4Utilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV4Utilization;

                    /**
                     * Verifies a SubnetworkUtilizationDetailsIPV4Utilization message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkUtilizationDetailsIPV4Utilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkUtilizationDetailsIPV4Utilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV4Utilization;

                    /**
                     * Creates a plain object from a SubnetworkUtilizationDetailsIPV4Utilization message. Also converts values to other types if specified.
                     * @param message SubnetworkUtilizationDetailsIPV4Utilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV4Utilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkUtilizationDetailsIPV4Utilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkUtilizationDetailsIPV4Utilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkUtilizationDetailsIPV6Utilization. */
                interface ISubnetworkUtilizationDetailsIPV6Utilization {

                    /** SubnetworkUtilizationDetailsIPV6Utilization totalAllocatedIp */
                    totalAllocatedIp?: (google.cloud.compute.v1.IUint128|null);

                    /** SubnetworkUtilizationDetailsIPV6Utilization totalFreeIp */
                    totalFreeIp?: (google.cloud.compute.v1.IUint128|null);
                }

                /** Represents a SubnetworkUtilizationDetailsIPV6Utilization. */
                class SubnetworkUtilizationDetailsIPV6Utilization implements ISubnetworkUtilizationDetailsIPV6Utilization {

                    /**
                     * Constructs a new SubnetworkUtilizationDetailsIPV6Utilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization);

                    /** SubnetworkUtilizationDetailsIPV6Utilization totalAllocatedIp. */
                    public totalAllocatedIp?: (google.cloud.compute.v1.IUint128|null);

                    /** SubnetworkUtilizationDetailsIPV6Utilization totalFreeIp. */
                    public totalFreeIp?: (google.cloud.compute.v1.IUint128|null);

                    /**
                     * Creates a new SubnetworkUtilizationDetailsIPV6Utilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkUtilizationDetailsIPV6Utilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization): google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV6Utilization;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetailsIPV6Utilization message. Does not implicitly {@link google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV6Utilization.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetailsIPV6Utilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetailsIPV6Utilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV6Utilization.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetailsIPV6Utilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworkUtilizationDetailsIPV6Utilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkUtilizationDetailsIPV6Utilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkUtilizationDetailsIPV6Utilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV6Utilization;

                    /**
                     * Decodes a SubnetworkUtilizationDetailsIPV6Utilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkUtilizationDetailsIPV6Utilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV6Utilization;

                    /**
                     * Verifies a SubnetworkUtilizationDetailsIPV6Utilization message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkUtilizationDetailsIPV6Utilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkUtilizationDetailsIPV6Utilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV6Utilization;

                    /**
                     * Creates a plain object from a SubnetworkUtilizationDetailsIPV6Utilization message. Also converts values to other types if specified.
                     * @param message SubnetworkUtilizationDetailsIPV6Utilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworkUtilizationDetailsIPV6Utilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkUtilizationDetailsIPV6Utilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkUtilizationDetailsIPV6Utilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworksExpandIpCidrRangeRequest. */
                interface ISubnetworksExpandIpCidrRangeRequest {

                    /** SubnetworksExpandIpCidrRangeRequest ipCidrRange */
                    ipCidrRange?: (string|null);
                }

                /** Represents a SubnetworksExpandIpCidrRangeRequest. */
                class SubnetworksExpandIpCidrRangeRequest implements ISubnetworksExpandIpCidrRangeRequest {

                    /**
                     * Constructs a new SubnetworksExpandIpCidrRangeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworksExpandIpCidrRangeRequest);

                    /** SubnetworksExpandIpCidrRangeRequest ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /**
                     * Creates a new SubnetworksExpandIpCidrRangeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworksExpandIpCidrRangeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworksExpandIpCidrRangeRequest): google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequest;

                    /**
                     * Encodes the specified SubnetworksExpandIpCidrRangeRequest message. Does not implicitly {@link google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequest.verify|verify} messages.
                     * @param message SubnetworksExpandIpCidrRangeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworksExpandIpCidrRangeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworksExpandIpCidrRangeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequest.verify|verify} messages.
                     * @param message SubnetworksExpandIpCidrRangeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworksExpandIpCidrRangeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworksExpandIpCidrRangeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworksExpandIpCidrRangeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequest;

                    /**
                     * Decodes a SubnetworksExpandIpCidrRangeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworksExpandIpCidrRangeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequest;

                    /**
                     * Verifies a SubnetworksExpandIpCidrRangeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworksExpandIpCidrRangeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworksExpandIpCidrRangeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequest;

                    /**
                     * Creates a plain object from a SubnetworksExpandIpCidrRangeRequest message. Also converts values to other types if specified.
                     * @param message SubnetworksExpandIpCidrRangeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworksExpandIpCidrRangeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworksExpandIpCidrRangeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworksScopedList. */
                interface ISubnetworksScopedList {

                    /** SubnetworksScopedList subnetworks */
                    subnetworks?: (google.cloud.compute.v1.ISubnetwork[]|null);

                    /** SubnetworksScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SubnetworksScopedList. */
                class SubnetworksScopedList implements ISubnetworksScopedList {

                    /**
                     * Constructs a new SubnetworksScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworksScopedList);

                    /** SubnetworksScopedList subnetworks. */
                    public subnetworks: google.cloud.compute.v1.ISubnetwork[];

                    /** SubnetworksScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SubnetworksScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworksScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworksScopedList): google.cloud.compute.v1.SubnetworksScopedList;

                    /**
                     * Encodes the specified SubnetworksScopedList message. Does not implicitly {@link google.cloud.compute.v1.SubnetworksScopedList.verify|verify} messages.
                     * @param message SubnetworksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworksScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworksScopedList.verify|verify} messages.
                     * @param message SubnetworksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworksScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworksScopedList;

                    /**
                     * Decodes a SubnetworksScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworksScopedList;

                    /**
                     * Verifies a SubnetworksScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworksScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworksScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworksScopedList;

                    /**
                     * Creates a plain object from a SubnetworksScopedList message. Also converts values to other types if specified.
                     * @param message SubnetworksScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworksScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworksScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworksScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworksScopedWarning. */
                interface ISubnetworksScopedWarning {

                    /** SubnetworksScopedWarning scopeName */
                    scopeName?: (string|null);

                    /** SubnetworksScopedWarning warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a SubnetworksScopedWarning. */
                class SubnetworksScopedWarning implements ISubnetworksScopedWarning {

                    /**
                     * Constructs a new SubnetworksScopedWarning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworksScopedWarning);

                    /** SubnetworksScopedWarning scopeName. */
                    public scopeName?: (string|null);

                    /** SubnetworksScopedWarning warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new SubnetworksScopedWarning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworksScopedWarning instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworksScopedWarning): google.cloud.compute.v1.SubnetworksScopedWarning;

                    /**
                     * Encodes the specified SubnetworksScopedWarning message. Does not implicitly {@link google.cloud.compute.v1.SubnetworksScopedWarning.verify|verify} messages.
                     * @param message SubnetworksScopedWarning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworksScopedWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworksScopedWarning message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworksScopedWarning.verify|verify} messages.
                     * @param message SubnetworksScopedWarning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworksScopedWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworksScopedWarning message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworksScopedWarning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworksScopedWarning;

                    /**
                     * Decodes a SubnetworksScopedWarning message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworksScopedWarning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworksScopedWarning;

                    /**
                     * Verifies a SubnetworksScopedWarning message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworksScopedWarning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworksScopedWarning
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworksScopedWarning;

                    /**
                     * Creates a plain object from a SubnetworksScopedWarning message. Also converts values to other types if specified.
                     * @param message SubnetworksScopedWarning
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworksScopedWarning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworksScopedWarning to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworksScopedWarning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworksSetPrivateIpGoogleAccessRequest. */
                interface ISubnetworksSetPrivateIpGoogleAccessRequest {

                    /** SubnetworksSetPrivateIpGoogleAccessRequest privateIpGoogleAccess */
                    privateIpGoogleAccess?: (boolean|null);
                }

                /** Represents a SubnetworksSetPrivateIpGoogleAccessRequest. */
                class SubnetworksSetPrivateIpGoogleAccessRequest implements ISubnetworksSetPrivateIpGoogleAccessRequest {

                    /**
                     * Constructs a new SubnetworksSetPrivateIpGoogleAccessRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubnetworksSetPrivateIpGoogleAccessRequest);

                    /** SubnetworksSetPrivateIpGoogleAccessRequest privateIpGoogleAccess. */
                    public privateIpGoogleAccess?: (boolean|null);

                    /**
                     * Creates a new SubnetworksSetPrivateIpGoogleAccessRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworksSetPrivateIpGoogleAccessRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubnetworksSetPrivateIpGoogleAccessRequest): google.cloud.compute.v1.SubnetworksSetPrivateIpGoogleAccessRequest;

                    /**
                     * Encodes the specified SubnetworksSetPrivateIpGoogleAccessRequest message. Does not implicitly {@link google.cloud.compute.v1.SubnetworksSetPrivateIpGoogleAccessRequest.verify|verify} messages.
                     * @param message SubnetworksSetPrivateIpGoogleAccessRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubnetworksSetPrivateIpGoogleAccessRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworksSetPrivateIpGoogleAccessRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SubnetworksSetPrivateIpGoogleAccessRequest.verify|verify} messages.
                     * @param message SubnetworksSetPrivateIpGoogleAccessRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubnetworksSetPrivateIpGoogleAccessRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworksSetPrivateIpGoogleAccessRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworksSetPrivateIpGoogleAccessRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SubnetworksSetPrivateIpGoogleAccessRequest;

                    /**
                     * Decodes a SubnetworksSetPrivateIpGoogleAccessRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworksSetPrivateIpGoogleAccessRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SubnetworksSetPrivateIpGoogleAccessRequest;

                    /**
                     * Verifies a SubnetworksSetPrivateIpGoogleAccessRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworksSetPrivateIpGoogleAccessRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworksSetPrivateIpGoogleAccessRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SubnetworksSetPrivateIpGoogleAccessRequest;

                    /**
                     * Creates a plain object from a SubnetworksSetPrivateIpGoogleAccessRequest message. Also converts values to other types if specified.
                     * @param message SubnetworksSetPrivateIpGoogleAccessRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SubnetworksSetPrivateIpGoogleAccessRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworksSetPrivateIpGoogleAccessRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworksSetPrivateIpGoogleAccessRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Subsetting. */
                interface ISubsetting {

                    /** Subsetting policy */
                    policy?: (string|null);
                }

                /** Represents a Subsetting. */
                class Subsetting implements ISubsetting {

                    /**
                     * Constructs a new Subsetting.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISubsetting);

                    /** Subsetting policy. */
                    public policy?: (string|null);

                    /**
                     * Creates a new Subsetting instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Subsetting instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISubsetting): google.cloud.compute.v1.Subsetting;

                    /**
                     * Encodes the specified Subsetting message. Does not implicitly {@link google.cloud.compute.v1.Subsetting.verify|verify} messages.
                     * @param message Subsetting message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISubsetting, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Subsetting message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Subsetting.verify|verify} messages.
                     * @param message Subsetting message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISubsetting, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Subsetting message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Subsetting
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Subsetting;

                    /**
                     * Decodes a Subsetting message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Subsetting
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Subsetting;

                    /**
                     * Verifies a Subsetting message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Subsetting message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Subsetting
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Subsetting;

                    /**
                     * Creates a plain object from a Subsetting message. Also converts values to other types if specified.
                     * @param message Subsetting
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Subsetting, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Subsetting to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Subsetting
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Subsetting {

                    /** Policy enum. */
                    enum Policy {
                        UNDEFINED_POLICY = 0,
                        CONSISTENT_HASH_SUBSETTING = 108989492,
                        NONE = 2402104
                    }
                }

                /** Properties of a SuspendInstanceRequest. */
                interface ISuspendInstanceRequest {

                    /** SuspendInstanceRequest discardLocalSsd */
                    discardLocalSsd?: (boolean|null);

                    /** SuspendInstanceRequest instance */
                    instance?: (string|null);

                    /** SuspendInstanceRequest project */
                    project?: (string|null);

                    /** SuspendInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SuspendInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SuspendInstanceRequest. */
                class SuspendInstanceRequest implements ISuspendInstanceRequest {

                    /**
                     * Constructs a new SuspendInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISuspendInstanceRequest);

                    /** SuspendInstanceRequest discardLocalSsd. */
                    public discardLocalSsd?: (boolean|null);

                    /** SuspendInstanceRequest instance. */
                    public instance: string;

                    /** SuspendInstanceRequest project. */
                    public project: string;

                    /** SuspendInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SuspendInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SuspendInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuspendInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISuspendInstanceRequest): google.cloud.compute.v1.SuspendInstanceRequest;

                    /**
                     * Encodes the specified SuspendInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.SuspendInstanceRequest.verify|verify} messages.
                     * @param message SuspendInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISuspendInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuspendInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SuspendInstanceRequest.verify|verify} messages.
                     * @param message SuspendInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISuspendInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuspendInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuspendInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SuspendInstanceRequest;

                    /**
                     * Decodes a SuspendInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuspendInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SuspendInstanceRequest;

                    /**
                     * Verifies a SuspendInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SuspendInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuspendInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SuspendInstanceRequest;

                    /**
                     * Creates a plain object from a SuspendInstanceRequest message. Also converts values to other types if specified.
                     * @param message SuspendInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SuspendInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuspendInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuspendInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuspendInstancesInstanceGroupManagerRequest. */
                interface ISuspendInstancesInstanceGroupManagerRequest {

                    /** SuspendInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SuspendInstancesInstanceGroupManagerRequest instanceGroupManagersSuspendInstancesRequestResource */
                    instanceGroupManagersSuspendInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersSuspendInstancesRequest|null);

                    /** SuspendInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SuspendInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** SuspendInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SuspendInstancesInstanceGroupManagerRequest. */
                class SuspendInstancesInstanceGroupManagerRequest implements ISuspendInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SuspendInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISuspendInstancesInstanceGroupManagerRequest);

                    /** SuspendInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SuspendInstancesInstanceGroupManagerRequest instanceGroupManagersSuspendInstancesRequestResource. */
                    public instanceGroupManagersSuspendInstancesRequestResource?: (google.cloud.compute.v1.IInstanceGroupManagersSuspendInstancesRequest|null);

                    /** SuspendInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SuspendInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** SuspendInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SuspendInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuspendInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISuspendInstancesInstanceGroupManagerRequest): google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SuspendInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SuspendInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISuspendInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuspendInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SuspendInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISuspendInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuspendInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuspendInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a SuspendInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuspendInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a SuspendInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SuspendInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuspendInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SuspendInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SuspendInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuspendInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuspendInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuspendInstancesRegionInstanceGroupManagerRequest. */
                interface ISuspendInstancesRegionInstanceGroupManagerRequest {

                    /** SuspendInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersSuspendInstancesRequestResource */
                    regionInstanceGroupManagersSuspendInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersSuspendInstancesRequest|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SuspendInstancesRegionInstanceGroupManagerRequest. */
                class SuspendInstancesRegionInstanceGroupManagerRequest implements ISuspendInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SuspendInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISuspendInstancesRegionInstanceGroupManagerRequest);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SuspendInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SuspendInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** SuspendInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersSuspendInstancesRequestResource. */
                    public regionInstanceGroupManagersSuspendInstancesRequestResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagersSuspendInstancesRequest|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SuspendInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuspendInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISuspendInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SuspendInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SuspendInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISuspendInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuspendInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SuspendInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISuspendInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuspendInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuspendInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a SuspendInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuspendInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a SuspendInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SuspendInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuspendInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SuspendInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SuspendInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuspendInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuspendInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SwitchToCustomModeNetworkRequest. */
                interface ISwitchToCustomModeNetworkRequest {

                    /** SwitchToCustomModeNetworkRequest network */
                    network?: (string|null);

                    /** SwitchToCustomModeNetworkRequest project */
                    project?: (string|null);

                    /** SwitchToCustomModeNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SwitchToCustomModeNetworkRequest. */
                class SwitchToCustomModeNetworkRequest implements ISwitchToCustomModeNetworkRequest {

                    /**
                     * Constructs a new SwitchToCustomModeNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ISwitchToCustomModeNetworkRequest);

                    /** SwitchToCustomModeNetworkRequest network. */
                    public network: string;

                    /** SwitchToCustomModeNetworkRequest project. */
                    public project: string;

                    /** SwitchToCustomModeNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SwitchToCustomModeNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SwitchToCustomModeNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ISwitchToCustomModeNetworkRequest): google.cloud.compute.v1.SwitchToCustomModeNetworkRequest;

                    /**
                     * Encodes the specified SwitchToCustomModeNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.SwitchToCustomModeNetworkRequest.verify|verify} messages.
                     * @param message SwitchToCustomModeNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ISwitchToCustomModeNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SwitchToCustomModeNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.SwitchToCustomModeNetworkRequest.verify|verify} messages.
                     * @param message SwitchToCustomModeNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ISwitchToCustomModeNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SwitchToCustomModeNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SwitchToCustomModeNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.SwitchToCustomModeNetworkRequest;

                    /**
                     * Decodes a SwitchToCustomModeNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SwitchToCustomModeNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.SwitchToCustomModeNetworkRequest;

                    /**
                     * Verifies a SwitchToCustomModeNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SwitchToCustomModeNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SwitchToCustomModeNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.SwitchToCustomModeNetworkRequest;

                    /**
                     * Creates a plain object from a SwitchToCustomModeNetworkRequest message. Also converts values to other types if specified.
                     * @param message SwitchToCustomModeNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.SwitchToCustomModeNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SwitchToCustomModeNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SwitchToCustomModeNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TCPHealthCheck. */
                interface ITCPHealthCheck {

                    /** TCPHealthCheck port */
                    port?: (number|null);

                    /** TCPHealthCheck portName */
                    portName?: (string|null);

                    /** TCPHealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** TCPHealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** TCPHealthCheck request */
                    request?: (string|null);

                    /** TCPHealthCheck response */
                    response?: (string|null);
                }

                /** Represents a TCPHealthCheck. */
                class TCPHealthCheck implements ITCPHealthCheck {

                    /**
                     * Constructs a new TCPHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITCPHealthCheck);

                    /** TCPHealthCheck port. */
                    public port?: (number|null);

                    /** TCPHealthCheck portName. */
                    public portName?: (string|null);

                    /** TCPHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** TCPHealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** TCPHealthCheck request. */
                    public request?: (string|null);

                    /** TCPHealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new TCPHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TCPHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITCPHealthCheck): google.cloud.compute.v1.TCPHealthCheck;

                    /**
                     * Encodes the specified TCPHealthCheck message. Does not implicitly {@link google.cloud.compute.v1.TCPHealthCheck.verify|verify} messages.
                     * @param message TCPHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITCPHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TCPHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TCPHealthCheck.verify|verify} messages.
                     * @param message TCPHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITCPHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TCPHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TCPHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TCPHealthCheck;

                    /**
                     * Decodes a TCPHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TCPHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TCPHealthCheck;

                    /**
                     * Verifies a TCPHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TCPHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TCPHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TCPHealthCheck;

                    /**
                     * Creates a plain object from a TCPHealthCheck message. Also converts values to other types if specified.
                     * @param message TCPHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TCPHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TCPHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TCPHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TCPHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a Tags. */
                interface ITags {

                    /** Tags fingerprint */
                    fingerprint?: (string|null);

                    /** Tags items */
                    items?: (string[]|null);
                }

                /** Represents a Tags. */
                class Tags implements ITags {

                    /**
                     * Constructs a new Tags.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITags);

                    /** Tags fingerprint. */
                    public fingerprint?: (string|null);

                    /** Tags items. */
                    public items: string[];

                    /**
                     * Creates a new Tags instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Tags instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITags): google.cloud.compute.v1.Tags;

                    /**
                     * Encodes the specified Tags message. Does not implicitly {@link google.cloud.compute.v1.Tags.verify|verify} messages.
                     * @param message Tags message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITags, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Tags message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Tags.verify|verify} messages.
                     * @param message Tags message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITags, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Tags message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Tags
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Tags;

                    /**
                     * Decodes a Tags message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Tags
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Tags;

                    /**
                     * Verifies a Tags message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Tags message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Tags
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Tags;

                    /**
                     * Creates a plain object from a Tags message. Also converts values to other types if specified.
                     * @param message Tags
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Tags, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Tags to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Tags
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetGrpcProxy. */
                interface ITargetGrpcProxy {

                    /** TargetGrpcProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetGrpcProxy description */
                    description?: (string|null);

                    /** TargetGrpcProxy fingerprint */
                    fingerprint?: (string|null);

                    /** TargetGrpcProxy id */
                    id?: (number|Long|string|null);

                    /** TargetGrpcProxy kind */
                    kind?: (string|null);

                    /** TargetGrpcProxy name */
                    name?: (string|null);

                    /** TargetGrpcProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetGrpcProxy selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** TargetGrpcProxy urlMap */
                    urlMap?: (string|null);

                    /** TargetGrpcProxy validateForProxyless */
                    validateForProxyless?: (boolean|null);
                }

                /** Represents a TargetGrpcProxy. */
                class TargetGrpcProxy implements ITargetGrpcProxy {

                    /**
                     * Constructs a new TargetGrpcProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetGrpcProxy);

                    /** TargetGrpcProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetGrpcProxy description. */
                    public description?: (string|null);

                    /** TargetGrpcProxy fingerprint. */
                    public fingerprint?: (string|null);

                    /** TargetGrpcProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetGrpcProxy kind. */
                    public kind?: (string|null);

                    /** TargetGrpcProxy name. */
                    public name?: (string|null);

                    /** TargetGrpcProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetGrpcProxy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** TargetGrpcProxy urlMap. */
                    public urlMap?: (string|null);

                    /** TargetGrpcProxy validateForProxyless. */
                    public validateForProxyless?: (boolean|null);

                    /**
                     * Creates a new TargetGrpcProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetGrpcProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetGrpcProxy): google.cloud.compute.v1.TargetGrpcProxy;

                    /**
                     * Encodes the specified TargetGrpcProxy message. Does not implicitly {@link google.cloud.compute.v1.TargetGrpcProxy.verify|verify} messages.
                     * @param message TargetGrpcProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetGrpcProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetGrpcProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetGrpcProxy.verify|verify} messages.
                     * @param message TargetGrpcProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetGrpcProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetGrpcProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetGrpcProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetGrpcProxy;

                    /**
                     * Decodes a TargetGrpcProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetGrpcProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetGrpcProxy;

                    /**
                     * Verifies a TargetGrpcProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetGrpcProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetGrpcProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetGrpcProxy;

                    /**
                     * Creates a plain object from a TargetGrpcProxy message. Also converts values to other types if specified.
                     * @param message TargetGrpcProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetGrpcProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetGrpcProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetGrpcProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetGrpcProxyList. */
                interface ITargetGrpcProxyList {

                    /** TargetGrpcProxyList id */
                    id?: (string|null);

                    /** TargetGrpcProxyList items */
                    items?: (google.cloud.compute.v1.ITargetGrpcProxy[]|null);

                    /** TargetGrpcProxyList kind */
                    kind?: (string|null);

                    /** TargetGrpcProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetGrpcProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetGrpcProxyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetGrpcProxyList. */
                class TargetGrpcProxyList implements ITargetGrpcProxyList {

                    /**
                     * Constructs a new TargetGrpcProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetGrpcProxyList);

                    /** TargetGrpcProxyList id. */
                    public id?: (string|null);

                    /** TargetGrpcProxyList items. */
                    public items: google.cloud.compute.v1.ITargetGrpcProxy[];

                    /** TargetGrpcProxyList kind. */
                    public kind?: (string|null);

                    /** TargetGrpcProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetGrpcProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetGrpcProxyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetGrpcProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetGrpcProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetGrpcProxyList): google.cloud.compute.v1.TargetGrpcProxyList;

                    /**
                     * Encodes the specified TargetGrpcProxyList message. Does not implicitly {@link google.cloud.compute.v1.TargetGrpcProxyList.verify|verify} messages.
                     * @param message TargetGrpcProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetGrpcProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetGrpcProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetGrpcProxyList.verify|verify} messages.
                     * @param message TargetGrpcProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetGrpcProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetGrpcProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetGrpcProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetGrpcProxyList;

                    /**
                     * Decodes a TargetGrpcProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetGrpcProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetGrpcProxyList;

                    /**
                     * Verifies a TargetGrpcProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetGrpcProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetGrpcProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetGrpcProxyList;

                    /**
                     * Creates a plain object from a TargetGrpcProxyList message. Also converts values to other types if specified.
                     * @param message TargetGrpcProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetGrpcProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetGrpcProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetGrpcProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpProxiesScopedList. */
                interface ITargetHttpProxiesScopedList {

                    /** TargetHttpProxiesScopedList targetHttpProxies */
                    targetHttpProxies?: (google.cloud.compute.v1.ITargetHttpProxy[]|null);

                    /** TargetHttpProxiesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetHttpProxiesScopedList. */
                class TargetHttpProxiesScopedList implements ITargetHttpProxiesScopedList {

                    /**
                     * Constructs a new TargetHttpProxiesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpProxiesScopedList);

                    /** TargetHttpProxiesScopedList targetHttpProxies. */
                    public targetHttpProxies: google.cloud.compute.v1.ITargetHttpProxy[];

                    /** TargetHttpProxiesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetHttpProxiesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpProxiesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpProxiesScopedList): google.cloud.compute.v1.TargetHttpProxiesScopedList;

                    /**
                     * Encodes the specified TargetHttpProxiesScopedList message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpProxiesScopedList.verify|verify} messages.
                     * @param message TargetHttpProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpProxiesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpProxiesScopedList.verify|verify} messages.
                     * @param message TargetHttpProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpProxiesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpProxiesScopedList;

                    /**
                     * Decodes a TargetHttpProxiesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpProxiesScopedList;

                    /**
                     * Verifies a TargetHttpProxiesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpProxiesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpProxiesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpProxiesScopedList;

                    /**
                     * Creates a plain object from a TargetHttpProxiesScopedList message. Also converts values to other types if specified.
                     * @param message TargetHttpProxiesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpProxiesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpProxiesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpProxiesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpProxy. */
                interface ITargetHttpProxy {

                    /** TargetHttpProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetHttpProxy description */
                    description?: (string|null);

                    /** TargetHttpProxy fingerprint */
                    fingerprint?: (string|null);

                    /** TargetHttpProxy httpKeepAliveTimeoutSec */
                    httpKeepAliveTimeoutSec?: (number|null);

                    /** TargetHttpProxy id */
                    id?: (number|Long|string|null);

                    /** TargetHttpProxy kind */
                    kind?: (string|null);

                    /** TargetHttpProxy name */
                    name?: (string|null);

                    /** TargetHttpProxy proxyBind */
                    proxyBind?: (boolean|null);

                    /** TargetHttpProxy region */
                    region?: (string|null);

                    /** TargetHttpProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpProxy urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a TargetHttpProxy. */
                class TargetHttpProxy implements ITargetHttpProxy {

                    /**
                     * Constructs a new TargetHttpProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpProxy);

                    /** TargetHttpProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetHttpProxy description. */
                    public description?: (string|null);

                    /** TargetHttpProxy fingerprint. */
                    public fingerprint?: (string|null);

                    /** TargetHttpProxy httpKeepAliveTimeoutSec. */
                    public httpKeepAliveTimeoutSec?: (number|null);

                    /** TargetHttpProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetHttpProxy kind. */
                    public kind?: (string|null);

                    /** TargetHttpProxy name. */
                    public name?: (string|null);

                    /** TargetHttpProxy proxyBind. */
                    public proxyBind?: (boolean|null);

                    /** TargetHttpProxy region. */
                    public region?: (string|null);

                    /** TargetHttpProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpProxy urlMap. */
                    public urlMap?: (string|null);

                    /**
                     * Creates a new TargetHttpProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpProxy): google.cloud.compute.v1.TargetHttpProxy;

                    /**
                     * Encodes the specified TargetHttpProxy message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpProxy.verify|verify} messages.
                     * @param message TargetHttpProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpProxy.verify|verify} messages.
                     * @param message TargetHttpProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpProxy;

                    /**
                     * Decodes a TargetHttpProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpProxy;

                    /**
                     * Verifies a TargetHttpProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpProxy;

                    /**
                     * Creates a plain object from a TargetHttpProxy message. Also converts values to other types if specified.
                     * @param message TargetHttpProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpProxyAggregatedList. */
                interface ITargetHttpProxyAggregatedList {

                    /** TargetHttpProxyAggregatedList id */
                    id?: (string|null);

                    /** TargetHttpProxyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ITargetHttpProxiesScopedList }|null);

                    /** TargetHttpProxyAggregatedList kind */
                    kind?: (string|null);

                    /** TargetHttpProxyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetHttpProxyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpProxyAggregatedList unreachables */
                    unreachables?: (string[]|null);
                }

                /** Represents a TargetHttpProxyAggregatedList. */
                class TargetHttpProxyAggregatedList implements ITargetHttpProxyAggregatedList {

                    /**
                     * Constructs a new TargetHttpProxyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpProxyAggregatedList);

                    /** TargetHttpProxyAggregatedList id. */
                    public id?: (string|null);

                    /** TargetHttpProxyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ITargetHttpProxiesScopedList };

                    /** TargetHttpProxyAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetHttpProxyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetHttpProxyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpProxyAggregatedList unreachables. */
                    public unreachables: string[];

                    /**
                     * Creates a new TargetHttpProxyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpProxyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpProxyAggregatedList): google.cloud.compute.v1.TargetHttpProxyAggregatedList;

                    /**
                     * Encodes the specified TargetHttpProxyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpProxyAggregatedList.verify|verify} messages.
                     * @param message TargetHttpProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpProxyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpProxyAggregatedList.verify|verify} messages.
                     * @param message TargetHttpProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpProxyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpProxyAggregatedList;

                    /**
                     * Decodes a TargetHttpProxyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpProxyAggregatedList;

                    /**
                     * Verifies a TargetHttpProxyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpProxyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpProxyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpProxyAggregatedList;

                    /**
                     * Creates a plain object from a TargetHttpProxyAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetHttpProxyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpProxyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpProxyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpProxyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpProxyList. */
                interface ITargetHttpProxyList {

                    /** TargetHttpProxyList id */
                    id?: (string|null);

                    /** TargetHttpProxyList items */
                    items?: (google.cloud.compute.v1.ITargetHttpProxy[]|null);

                    /** TargetHttpProxyList kind */
                    kind?: (string|null);

                    /** TargetHttpProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetHttpProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpProxyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetHttpProxyList. */
                class TargetHttpProxyList implements ITargetHttpProxyList {

                    /**
                     * Constructs a new TargetHttpProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpProxyList);

                    /** TargetHttpProxyList id. */
                    public id?: (string|null);

                    /** TargetHttpProxyList items. */
                    public items: google.cloud.compute.v1.ITargetHttpProxy[];

                    /** TargetHttpProxyList kind. */
                    public kind?: (string|null);

                    /** TargetHttpProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetHttpProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpProxyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetHttpProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpProxyList): google.cloud.compute.v1.TargetHttpProxyList;

                    /**
                     * Encodes the specified TargetHttpProxyList message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpProxyList.verify|verify} messages.
                     * @param message TargetHttpProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpProxyList.verify|verify} messages.
                     * @param message TargetHttpProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpProxyList;

                    /**
                     * Decodes a TargetHttpProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpProxyList;

                    /**
                     * Verifies a TargetHttpProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpProxyList;

                    /**
                     * Creates a plain object from a TargetHttpProxyList message. Also converts values to other types if specified.
                     * @param message TargetHttpProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxiesScopedList. */
                interface ITargetHttpsProxiesScopedList {

                    /** TargetHttpsProxiesScopedList targetHttpsProxies */
                    targetHttpsProxies?: (google.cloud.compute.v1.ITargetHttpsProxy[]|null);

                    /** TargetHttpsProxiesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetHttpsProxiesScopedList. */
                class TargetHttpsProxiesScopedList implements ITargetHttpsProxiesScopedList {

                    /**
                     * Constructs a new TargetHttpsProxiesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpsProxiesScopedList);

                    /** TargetHttpsProxiesScopedList targetHttpsProxies. */
                    public targetHttpsProxies: google.cloud.compute.v1.ITargetHttpsProxy[];

                    /** TargetHttpsProxiesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetHttpsProxiesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxiesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpsProxiesScopedList): google.cloud.compute.v1.TargetHttpsProxiesScopedList;

                    /**
                     * Encodes the specified TargetHttpsProxiesScopedList message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxiesScopedList.verify|verify} messages.
                     * @param message TargetHttpsProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpsProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxiesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxiesScopedList.verify|verify} messages.
                     * @param message TargetHttpsProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpsProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxiesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpsProxiesScopedList;

                    /**
                     * Decodes a TargetHttpsProxiesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpsProxiesScopedList;

                    /**
                     * Verifies a TargetHttpsProxiesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxiesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxiesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpsProxiesScopedList;

                    /**
                     * Creates a plain object from a TargetHttpsProxiesScopedList message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxiesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpsProxiesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxiesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxiesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxiesSetCertificateMapRequest. */
                interface ITargetHttpsProxiesSetCertificateMapRequest {

                    /** TargetHttpsProxiesSetCertificateMapRequest certificateMap */
                    certificateMap?: (string|null);
                }

                /** Represents a TargetHttpsProxiesSetCertificateMapRequest. */
                class TargetHttpsProxiesSetCertificateMapRequest implements ITargetHttpsProxiesSetCertificateMapRequest {

                    /**
                     * Constructs a new TargetHttpsProxiesSetCertificateMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpsProxiesSetCertificateMapRequest);

                    /** TargetHttpsProxiesSetCertificateMapRequest certificateMap. */
                    public certificateMap?: (string|null);

                    /**
                     * Creates a new TargetHttpsProxiesSetCertificateMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxiesSetCertificateMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpsProxiesSetCertificateMapRequest): google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequest;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetCertificateMapRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetCertificateMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpsProxiesSetCertificateMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetCertificateMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetCertificateMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpsProxiesSetCertificateMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxiesSetCertificateMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxiesSetCertificateMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequest;

                    /**
                     * Decodes a TargetHttpsProxiesSetCertificateMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxiesSetCertificateMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequest;

                    /**
                     * Verifies a TargetHttpsProxiesSetCertificateMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxiesSetCertificateMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxiesSetCertificateMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequest;

                    /**
                     * Creates a plain object from a TargetHttpsProxiesSetCertificateMapRequest message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxiesSetCertificateMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxiesSetCertificateMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxiesSetCertificateMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxiesSetQuicOverrideRequest. */
                interface ITargetHttpsProxiesSetQuicOverrideRequest {

                    /** TargetHttpsProxiesSetQuicOverrideRequest quicOverride */
                    quicOverride?: (string|null);
                }

                /** Represents a TargetHttpsProxiesSetQuicOverrideRequest. */
                class TargetHttpsProxiesSetQuicOverrideRequest implements ITargetHttpsProxiesSetQuicOverrideRequest {

                    /**
                     * Constructs a new TargetHttpsProxiesSetQuicOverrideRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpsProxiesSetQuicOverrideRequest);

                    /** TargetHttpsProxiesSetQuicOverrideRequest quicOverride. */
                    public quicOverride?: (string|null);

                    /**
                     * Creates a new TargetHttpsProxiesSetQuicOverrideRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxiesSetQuicOverrideRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpsProxiesSetQuicOverrideRequest): google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequest;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetQuicOverrideRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetQuicOverrideRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpsProxiesSetQuicOverrideRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetQuicOverrideRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetQuicOverrideRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpsProxiesSetQuicOverrideRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxiesSetQuicOverrideRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxiesSetQuicOverrideRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequest;

                    /**
                     * Decodes a TargetHttpsProxiesSetQuicOverrideRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxiesSetQuicOverrideRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequest;

                    /**
                     * Verifies a TargetHttpsProxiesSetQuicOverrideRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxiesSetQuicOverrideRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxiesSetQuicOverrideRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequest;

                    /**
                     * Creates a plain object from a TargetHttpsProxiesSetQuicOverrideRequest message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxiesSetQuicOverrideRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxiesSetQuicOverrideRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxiesSetQuicOverrideRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetHttpsProxiesSetQuicOverrideRequest {

                    /** QuicOverride enum. */
                    enum QuicOverride {
                        UNDEFINED_QUIC_OVERRIDE = 0,
                        DISABLE = 241807048,
                        ENABLE = 438835587,
                        NONE = 2402104
                    }
                }

                /** Properties of a TargetHttpsProxiesSetSslCertificatesRequest. */
                interface ITargetHttpsProxiesSetSslCertificatesRequest {

                    /** TargetHttpsProxiesSetSslCertificatesRequest sslCertificates */
                    sslCertificates?: (string[]|null);
                }

                /** Represents a TargetHttpsProxiesSetSslCertificatesRequest. */
                class TargetHttpsProxiesSetSslCertificatesRequest implements ITargetHttpsProxiesSetSslCertificatesRequest {

                    /**
                     * Constructs a new TargetHttpsProxiesSetSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpsProxiesSetSslCertificatesRequest);

                    /** TargetHttpsProxiesSetSslCertificatesRequest sslCertificates. */
                    public sslCertificates: string[];

                    /**
                     * Creates a new TargetHttpsProxiesSetSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxiesSetSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpsProxiesSetSslCertificatesRequest): google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpsProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpsProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxiesSetSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Decodes a TargetHttpsProxiesSetSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Verifies a TargetHttpsProxiesSetSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxiesSetSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxiesSetSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Creates a plain object from a TargetHttpsProxiesSetSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxiesSetSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxiesSetSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxiesSetSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxy. */
                interface ITargetHttpsProxy {

                    /** TargetHttpsProxy authorizationPolicy */
                    authorizationPolicy?: (string|null);

                    /** TargetHttpsProxy certificateMap */
                    certificateMap?: (string|null);

                    /** TargetHttpsProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetHttpsProxy description */
                    description?: (string|null);

                    /** TargetHttpsProxy fingerprint */
                    fingerprint?: (string|null);

                    /** TargetHttpsProxy httpKeepAliveTimeoutSec */
                    httpKeepAliveTimeoutSec?: (number|null);

                    /** TargetHttpsProxy id */
                    id?: (number|Long|string|null);

                    /** TargetHttpsProxy kind */
                    kind?: (string|null);

                    /** TargetHttpsProxy name */
                    name?: (string|null);

                    /** TargetHttpsProxy proxyBind */
                    proxyBind?: (boolean|null);

                    /** TargetHttpsProxy quicOverride */
                    quicOverride?: (string|null);

                    /** TargetHttpsProxy region */
                    region?: (string|null);

                    /** TargetHttpsProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpsProxy serverTlsPolicy */
                    serverTlsPolicy?: (string|null);

                    /** TargetHttpsProxy sslCertificates */
                    sslCertificates?: (string[]|null);

                    /** TargetHttpsProxy sslPolicy */
                    sslPolicy?: (string|null);

                    /** TargetHttpsProxy tlsEarlyData */
                    tlsEarlyData?: (string|null);

                    /** TargetHttpsProxy urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a TargetHttpsProxy. */
                class TargetHttpsProxy implements ITargetHttpsProxy {

                    /**
                     * Constructs a new TargetHttpsProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpsProxy);

                    /** TargetHttpsProxy authorizationPolicy. */
                    public authorizationPolicy?: (string|null);

                    /** TargetHttpsProxy certificateMap. */
                    public certificateMap?: (string|null);

                    /** TargetHttpsProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetHttpsProxy description. */
                    public description?: (string|null);

                    /** TargetHttpsProxy fingerprint. */
                    public fingerprint?: (string|null);

                    /** TargetHttpsProxy httpKeepAliveTimeoutSec. */
                    public httpKeepAliveTimeoutSec?: (number|null);

                    /** TargetHttpsProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetHttpsProxy kind. */
                    public kind?: (string|null);

                    /** TargetHttpsProxy name. */
                    public name?: (string|null);

                    /** TargetHttpsProxy proxyBind. */
                    public proxyBind?: (boolean|null);

                    /** TargetHttpsProxy quicOverride. */
                    public quicOverride?: (string|null);

                    /** TargetHttpsProxy region. */
                    public region?: (string|null);

                    /** TargetHttpsProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpsProxy serverTlsPolicy. */
                    public serverTlsPolicy?: (string|null);

                    /** TargetHttpsProxy sslCertificates. */
                    public sslCertificates: string[];

                    /** TargetHttpsProxy sslPolicy. */
                    public sslPolicy?: (string|null);

                    /** TargetHttpsProxy tlsEarlyData. */
                    public tlsEarlyData?: (string|null);

                    /** TargetHttpsProxy urlMap. */
                    public urlMap?: (string|null);

                    /**
                     * Creates a new TargetHttpsProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpsProxy): google.cloud.compute.v1.TargetHttpsProxy;

                    /**
                     * Encodes the specified TargetHttpsProxy message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxy.verify|verify} messages.
                     * @param message TargetHttpsProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpsProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxy.verify|verify} messages.
                     * @param message TargetHttpsProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpsProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpsProxy;

                    /**
                     * Decodes a TargetHttpsProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpsProxy;

                    /**
                     * Verifies a TargetHttpsProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpsProxy;

                    /**
                     * Creates a plain object from a TargetHttpsProxy message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpsProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetHttpsProxy {

                    /** QuicOverride enum. */
                    enum QuicOverride {
                        UNDEFINED_QUIC_OVERRIDE = 0,
                        DISABLE = 241807048,
                        ENABLE = 438835587,
                        NONE = 2402104
                    }

                    /** TlsEarlyData enum. */
                    enum TlsEarlyData {
                        UNDEFINED_TLS_EARLY_DATA = 0,
                        DISABLED = 516696700,
                        PERMISSIVE = 504345247,
                        STRICT = 308826825,
                        UNRESTRICTED = 457266100
                    }
                }

                /** Properties of a TargetHttpsProxyAggregatedList. */
                interface ITargetHttpsProxyAggregatedList {

                    /** TargetHttpsProxyAggregatedList id */
                    id?: (string|null);

                    /** TargetHttpsProxyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ITargetHttpsProxiesScopedList }|null);

                    /** TargetHttpsProxyAggregatedList kind */
                    kind?: (string|null);

                    /** TargetHttpsProxyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetHttpsProxyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpsProxyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetHttpsProxyAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetHttpsProxyAggregatedList. */
                class TargetHttpsProxyAggregatedList implements ITargetHttpsProxyAggregatedList {

                    /**
                     * Constructs a new TargetHttpsProxyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpsProxyAggregatedList);

                    /** TargetHttpsProxyAggregatedList id. */
                    public id?: (string|null);

                    /** TargetHttpsProxyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ITargetHttpsProxiesScopedList };

                    /** TargetHttpsProxyAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetHttpsProxyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetHttpsProxyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpsProxyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetHttpsProxyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetHttpsProxyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpsProxyAggregatedList): google.cloud.compute.v1.TargetHttpsProxyAggregatedList;

                    /**
                     * Encodes the specified TargetHttpsProxyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxyAggregatedList.verify|verify} messages.
                     * @param message TargetHttpsProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpsProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxyAggregatedList.verify|verify} messages.
                     * @param message TargetHttpsProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpsProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpsProxyAggregatedList;

                    /**
                     * Decodes a TargetHttpsProxyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpsProxyAggregatedList;

                    /**
                     * Verifies a TargetHttpsProxyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpsProxyAggregatedList;

                    /**
                     * Creates a plain object from a TargetHttpsProxyAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpsProxyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxyList. */
                interface ITargetHttpsProxyList {

                    /** TargetHttpsProxyList id */
                    id?: (string|null);

                    /** TargetHttpsProxyList items */
                    items?: (google.cloud.compute.v1.ITargetHttpsProxy[]|null);

                    /** TargetHttpsProxyList kind */
                    kind?: (string|null);

                    /** TargetHttpsProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetHttpsProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpsProxyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetHttpsProxyList. */
                class TargetHttpsProxyList implements ITargetHttpsProxyList {

                    /**
                     * Constructs a new TargetHttpsProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetHttpsProxyList);

                    /** TargetHttpsProxyList id. */
                    public id?: (string|null);

                    /** TargetHttpsProxyList items. */
                    public items: google.cloud.compute.v1.ITargetHttpsProxy[];

                    /** TargetHttpsProxyList kind. */
                    public kind?: (string|null);

                    /** TargetHttpsProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetHttpsProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpsProxyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetHttpsProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetHttpsProxyList): google.cloud.compute.v1.TargetHttpsProxyList;

                    /**
                     * Encodes the specified TargetHttpsProxyList message. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxyList.verify|verify} messages.
                     * @param message TargetHttpsProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetHttpsProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetHttpsProxyList.verify|verify} messages.
                     * @param message TargetHttpsProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetHttpsProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetHttpsProxyList;

                    /**
                     * Decodes a TargetHttpsProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetHttpsProxyList;

                    /**
                     * Verifies a TargetHttpsProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetHttpsProxyList;

                    /**
                     * Creates a plain object from a TargetHttpsProxyList message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetHttpsProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetInstance. */
                interface ITargetInstance {

                    /** TargetInstance creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetInstance description */
                    description?: (string|null);

                    /** TargetInstance id */
                    id?: (number|Long|string|null);

                    /** TargetInstance instance */
                    instance?: (string|null);

                    /** TargetInstance kind */
                    kind?: (string|null);

                    /** TargetInstance name */
                    name?: (string|null);

                    /** TargetInstance natPolicy */
                    natPolicy?: (string|null);

                    /** TargetInstance network */
                    network?: (string|null);

                    /** TargetInstance securityPolicy */
                    securityPolicy?: (string|null);

                    /** TargetInstance selfLink */
                    selfLink?: (string|null);

                    /** TargetInstance zone */
                    zone?: (string|null);
                }

                /** Represents a TargetInstance. */
                class TargetInstance implements ITargetInstance {

                    /**
                     * Constructs a new TargetInstance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetInstance);

                    /** TargetInstance creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetInstance description. */
                    public description?: (string|null);

                    /** TargetInstance id. */
                    public id?: (number|Long|string|null);

                    /** TargetInstance instance. */
                    public instance?: (string|null);

                    /** TargetInstance kind. */
                    public kind?: (string|null);

                    /** TargetInstance name. */
                    public name?: (string|null);

                    /** TargetInstance natPolicy. */
                    public natPolicy?: (string|null);

                    /** TargetInstance network. */
                    public network?: (string|null);

                    /** TargetInstance securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** TargetInstance selfLink. */
                    public selfLink?: (string|null);

                    /** TargetInstance zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new TargetInstance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetInstance instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetInstance): google.cloud.compute.v1.TargetInstance;

                    /**
                     * Encodes the specified TargetInstance message. Does not implicitly {@link google.cloud.compute.v1.TargetInstance.verify|verify} messages.
                     * @param message TargetInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetInstance message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetInstance.verify|verify} messages.
                     * @param message TargetInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetInstance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetInstance;

                    /**
                     * Decodes a TargetInstance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetInstance;

                    /**
                     * Verifies a TargetInstance message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetInstance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetInstance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetInstance;

                    /**
                     * Creates a plain object from a TargetInstance message. Also converts values to other types if specified.
                     * @param message TargetInstance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetInstance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetInstance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetInstance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetInstance {

                    /** NatPolicy enum. */
                    enum NatPolicy {
                        UNDEFINED_NAT_POLICY = 0,
                        NO_NAT = 161455491
                    }
                }

                /** Properties of a TargetInstanceAggregatedList. */
                interface ITargetInstanceAggregatedList {

                    /** TargetInstanceAggregatedList id */
                    id?: (string|null);

                    /** TargetInstanceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ITargetInstancesScopedList }|null);

                    /** TargetInstanceAggregatedList kind */
                    kind?: (string|null);

                    /** TargetInstanceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetInstanceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetInstanceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetInstanceAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetInstanceAggregatedList. */
                class TargetInstanceAggregatedList implements ITargetInstanceAggregatedList {

                    /**
                     * Constructs a new TargetInstanceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetInstanceAggregatedList);

                    /** TargetInstanceAggregatedList id. */
                    public id?: (string|null);

                    /** TargetInstanceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ITargetInstancesScopedList };

                    /** TargetInstanceAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetInstanceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetInstanceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetInstanceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetInstanceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetInstanceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetInstanceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetInstanceAggregatedList): google.cloud.compute.v1.TargetInstanceAggregatedList;

                    /**
                     * Encodes the specified TargetInstanceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.TargetInstanceAggregatedList.verify|verify} messages.
                     * @param message TargetInstanceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetInstanceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetInstanceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetInstanceAggregatedList.verify|verify} messages.
                     * @param message TargetInstanceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetInstanceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetInstanceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetInstanceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetInstanceAggregatedList;

                    /**
                     * Decodes a TargetInstanceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetInstanceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetInstanceAggregatedList;

                    /**
                     * Verifies a TargetInstanceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetInstanceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetInstanceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetInstanceAggregatedList;

                    /**
                     * Creates a plain object from a TargetInstanceAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetInstanceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetInstanceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetInstanceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetInstanceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetInstanceList. */
                interface ITargetInstanceList {

                    /** TargetInstanceList id */
                    id?: (string|null);

                    /** TargetInstanceList items */
                    items?: (google.cloud.compute.v1.ITargetInstance[]|null);

                    /** TargetInstanceList kind */
                    kind?: (string|null);

                    /** TargetInstanceList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetInstanceList selfLink */
                    selfLink?: (string|null);

                    /** TargetInstanceList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetInstanceList. */
                class TargetInstanceList implements ITargetInstanceList {

                    /**
                     * Constructs a new TargetInstanceList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetInstanceList);

                    /** TargetInstanceList id. */
                    public id?: (string|null);

                    /** TargetInstanceList items. */
                    public items: google.cloud.compute.v1.ITargetInstance[];

                    /** TargetInstanceList kind. */
                    public kind?: (string|null);

                    /** TargetInstanceList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetInstanceList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetInstanceList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetInstanceList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetInstanceList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetInstanceList): google.cloud.compute.v1.TargetInstanceList;

                    /**
                     * Encodes the specified TargetInstanceList message. Does not implicitly {@link google.cloud.compute.v1.TargetInstanceList.verify|verify} messages.
                     * @param message TargetInstanceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetInstanceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetInstanceList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetInstanceList.verify|verify} messages.
                     * @param message TargetInstanceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetInstanceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetInstanceList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetInstanceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetInstanceList;

                    /**
                     * Decodes a TargetInstanceList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetInstanceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetInstanceList;

                    /**
                     * Verifies a TargetInstanceList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetInstanceList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetInstanceList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetInstanceList;

                    /**
                     * Creates a plain object from a TargetInstanceList message. Also converts values to other types if specified.
                     * @param message TargetInstanceList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetInstanceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetInstanceList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetInstanceList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetInstancesScopedList. */
                interface ITargetInstancesScopedList {

                    /** TargetInstancesScopedList targetInstances */
                    targetInstances?: (google.cloud.compute.v1.ITargetInstance[]|null);

                    /** TargetInstancesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetInstancesScopedList. */
                class TargetInstancesScopedList implements ITargetInstancesScopedList {

                    /**
                     * Constructs a new TargetInstancesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetInstancesScopedList);

                    /** TargetInstancesScopedList targetInstances. */
                    public targetInstances: google.cloud.compute.v1.ITargetInstance[];

                    /** TargetInstancesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetInstancesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetInstancesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetInstancesScopedList): google.cloud.compute.v1.TargetInstancesScopedList;

                    /**
                     * Encodes the specified TargetInstancesScopedList message. Does not implicitly {@link google.cloud.compute.v1.TargetInstancesScopedList.verify|verify} messages.
                     * @param message TargetInstancesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetInstancesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetInstancesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetInstancesScopedList.verify|verify} messages.
                     * @param message TargetInstancesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetInstancesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetInstancesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetInstancesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetInstancesScopedList;

                    /**
                     * Decodes a TargetInstancesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetInstancesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetInstancesScopedList;

                    /**
                     * Verifies a TargetInstancesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetInstancesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetInstancesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetInstancesScopedList;

                    /**
                     * Creates a plain object from a TargetInstancesScopedList message. Also converts values to other types if specified.
                     * @param message TargetInstancesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetInstancesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetInstancesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetInstancesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPool. */
                interface ITargetPool {

                    /** TargetPool backupPool */
                    backupPool?: (string|null);

                    /** TargetPool creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetPool description */
                    description?: (string|null);

                    /** TargetPool failoverRatio */
                    failoverRatio?: (number|null);

                    /** TargetPool healthChecks */
                    healthChecks?: (string[]|null);

                    /** TargetPool id */
                    id?: (number|Long|string|null);

                    /** TargetPool instances */
                    instances?: (string[]|null);

                    /** TargetPool kind */
                    kind?: (string|null);

                    /** TargetPool name */
                    name?: (string|null);

                    /** TargetPool region */
                    region?: (string|null);

                    /** TargetPool securityPolicy */
                    securityPolicy?: (string|null);

                    /** TargetPool selfLink */
                    selfLink?: (string|null);

                    /** TargetPool sessionAffinity */
                    sessionAffinity?: (string|null);
                }

                /** Represents a TargetPool. */
                class TargetPool implements ITargetPool {

                    /**
                     * Constructs a new TargetPool.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPool);

                    /** TargetPool backupPool. */
                    public backupPool?: (string|null);

                    /** TargetPool creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetPool description. */
                    public description?: (string|null);

                    /** TargetPool failoverRatio. */
                    public failoverRatio?: (number|null);

                    /** TargetPool healthChecks. */
                    public healthChecks: string[];

                    /** TargetPool id. */
                    public id?: (number|Long|string|null);

                    /** TargetPool instances. */
                    public instances: string[];

                    /** TargetPool kind. */
                    public kind?: (string|null);

                    /** TargetPool name. */
                    public name?: (string|null);

                    /** TargetPool region. */
                    public region?: (string|null);

                    /** TargetPool securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** TargetPool selfLink. */
                    public selfLink?: (string|null);

                    /** TargetPool sessionAffinity. */
                    public sessionAffinity?: (string|null);

                    /**
                     * Creates a new TargetPool instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPool instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPool): google.cloud.compute.v1.TargetPool;

                    /**
                     * Encodes the specified TargetPool message. Does not implicitly {@link google.cloud.compute.v1.TargetPool.verify|verify} messages.
                     * @param message TargetPool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPool message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPool.verify|verify} messages.
                     * @param message TargetPool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPool message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPool
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPool;

                    /**
                     * Decodes a TargetPool message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPool
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPool;

                    /**
                     * Verifies a TargetPool message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPool message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPool
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPool;

                    /**
                     * Creates a plain object from a TargetPool message. Also converts values to other types if specified.
                     * @param message TargetPool
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPool to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPool
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetPool {

                    /** SessionAffinity enum. */
                    enum SessionAffinity {
                        UNDEFINED_SESSION_AFFINITY = 0,
                        CLIENT_IP = 345665051,
                        CLIENT_IP_NO_DESTINATION = 106122516,
                        CLIENT_IP_PORT_PROTO = 221722926,
                        CLIENT_IP_PROTO = 25322148,
                        GENERATED_COOKIE = 370321204,
                        HEADER_FIELD = 200737960,
                        HTTP_COOKIE = 494981627,
                        NONE = 2402104,
                        STRONG_COOKIE_AFFINITY = 438628091
                    }
                }

                /** Properties of a TargetPoolAggregatedList. */
                interface ITargetPoolAggregatedList {

                    /** TargetPoolAggregatedList id */
                    id?: (string|null);

                    /** TargetPoolAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ITargetPoolsScopedList }|null);

                    /** TargetPoolAggregatedList kind */
                    kind?: (string|null);

                    /** TargetPoolAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetPoolAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetPoolAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetPoolAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetPoolAggregatedList. */
                class TargetPoolAggregatedList implements ITargetPoolAggregatedList {

                    /**
                     * Constructs a new TargetPoolAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPoolAggregatedList);

                    /** TargetPoolAggregatedList id. */
                    public id?: (string|null);

                    /** TargetPoolAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ITargetPoolsScopedList };

                    /** TargetPoolAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetPoolAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetPoolAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetPoolAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetPoolAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetPoolAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPoolAggregatedList): google.cloud.compute.v1.TargetPoolAggregatedList;

                    /**
                     * Encodes the specified TargetPoolAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.TargetPoolAggregatedList.verify|verify} messages.
                     * @param message TargetPoolAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPoolAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPoolAggregatedList.verify|verify} messages.
                     * @param message TargetPoolAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPoolAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPoolAggregatedList;

                    /**
                     * Decodes a TargetPoolAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPoolAggregatedList;

                    /**
                     * Verifies a TargetPoolAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPoolAggregatedList;

                    /**
                     * Creates a plain object from a TargetPoolAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetPoolAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPoolAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolInstanceHealth. */
                interface ITargetPoolInstanceHealth {

                    /** TargetPoolInstanceHealth healthStatus */
                    healthStatus?: (google.cloud.compute.v1.IHealthStatus[]|null);

                    /** TargetPoolInstanceHealth kind */
                    kind?: (string|null);
                }

                /** Represents a TargetPoolInstanceHealth. */
                class TargetPoolInstanceHealth implements ITargetPoolInstanceHealth {

                    /**
                     * Constructs a new TargetPoolInstanceHealth.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPoolInstanceHealth);

                    /** TargetPoolInstanceHealth healthStatus. */
                    public healthStatus: google.cloud.compute.v1.IHealthStatus[];

                    /** TargetPoolInstanceHealth kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new TargetPoolInstanceHealth instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolInstanceHealth instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPoolInstanceHealth): google.cloud.compute.v1.TargetPoolInstanceHealth;

                    /**
                     * Encodes the specified TargetPoolInstanceHealth message. Does not implicitly {@link google.cloud.compute.v1.TargetPoolInstanceHealth.verify|verify} messages.
                     * @param message TargetPoolInstanceHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPoolInstanceHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolInstanceHealth message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPoolInstanceHealth.verify|verify} messages.
                     * @param message TargetPoolInstanceHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPoolInstanceHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolInstanceHealth message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolInstanceHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPoolInstanceHealth;

                    /**
                     * Decodes a TargetPoolInstanceHealth message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolInstanceHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPoolInstanceHealth;

                    /**
                     * Verifies a TargetPoolInstanceHealth message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolInstanceHealth message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolInstanceHealth
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPoolInstanceHealth;

                    /**
                     * Creates a plain object from a TargetPoolInstanceHealth message. Also converts values to other types if specified.
                     * @param message TargetPoolInstanceHealth
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPoolInstanceHealth, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolInstanceHealth to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolInstanceHealth
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolList. */
                interface ITargetPoolList {

                    /** TargetPoolList id */
                    id?: (string|null);

                    /** TargetPoolList items */
                    items?: (google.cloud.compute.v1.ITargetPool[]|null);

                    /** TargetPoolList kind */
                    kind?: (string|null);

                    /** TargetPoolList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetPoolList selfLink */
                    selfLink?: (string|null);

                    /** TargetPoolList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetPoolList. */
                class TargetPoolList implements ITargetPoolList {

                    /**
                     * Constructs a new TargetPoolList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPoolList);

                    /** TargetPoolList id. */
                    public id?: (string|null);

                    /** TargetPoolList items. */
                    public items: google.cloud.compute.v1.ITargetPool[];

                    /** TargetPoolList kind. */
                    public kind?: (string|null);

                    /** TargetPoolList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetPoolList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetPoolList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetPoolList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPoolList): google.cloud.compute.v1.TargetPoolList;

                    /**
                     * Encodes the specified TargetPoolList message. Does not implicitly {@link google.cloud.compute.v1.TargetPoolList.verify|verify} messages.
                     * @param message TargetPoolList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPoolList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPoolList.verify|verify} messages.
                     * @param message TargetPoolList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPoolList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPoolList;

                    /**
                     * Decodes a TargetPoolList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPoolList;

                    /**
                     * Verifies a TargetPoolList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPoolList;

                    /**
                     * Creates a plain object from a TargetPoolList message. Also converts values to other types if specified.
                     * @param message TargetPoolList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPoolList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsAddHealthCheckRequest. */
                interface ITargetPoolsAddHealthCheckRequest {

                    /** TargetPoolsAddHealthCheckRequest healthChecks */
                    healthChecks?: (google.cloud.compute.v1.IHealthCheckReference[]|null);
                }

                /** Represents a TargetPoolsAddHealthCheckRequest. */
                class TargetPoolsAddHealthCheckRequest implements ITargetPoolsAddHealthCheckRequest {

                    /**
                     * Constructs a new TargetPoolsAddHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPoolsAddHealthCheckRequest);

                    /** TargetPoolsAddHealthCheckRequest healthChecks. */
                    public healthChecks: google.cloud.compute.v1.IHealthCheckReference[];

                    /**
                     * Creates a new TargetPoolsAddHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsAddHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPoolsAddHealthCheckRequest): google.cloud.compute.v1.TargetPoolsAddHealthCheckRequest;

                    /**
                     * Encodes the specified TargetPoolsAddHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsAddHealthCheckRequest.verify|verify} messages.
                     * @param message TargetPoolsAddHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPoolsAddHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsAddHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsAddHealthCheckRequest.verify|verify} messages.
                     * @param message TargetPoolsAddHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPoolsAddHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsAddHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsAddHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPoolsAddHealthCheckRequest;

                    /**
                     * Decodes a TargetPoolsAddHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsAddHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPoolsAddHealthCheckRequest;

                    /**
                     * Verifies a TargetPoolsAddHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsAddHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsAddHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPoolsAddHealthCheckRequest;

                    /**
                     * Creates a plain object from a TargetPoolsAddHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TargetPoolsAddHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPoolsAddHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsAddHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsAddHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsAddInstanceRequest. */
                interface ITargetPoolsAddInstanceRequest {

                    /** TargetPoolsAddInstanceRequest instances */
                    instances?: (google.cloud.compute.v1.IInstanceReference[]|null);
                }

                /** Represents a TargetPoolsAddInstanceRequest. */
                class TargetPoolsAddInstanceRequest implements ITargetPoolsAddInstanceRequest {

                    /**
                     * Constructs a new TargetPoolsAddInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPoolsAddInstanceRequest);

                    /** TargetPoolsAddInstanceRequest instances. */
                    public instances: google.cloud.compute.v1.IInstanceReference[];

                    /**
                     * Creates a new TargetPoolsAddInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsAddInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPoolsAddInstanceRequest): google.cloud.compute.v1.TargetPoolsAddInstanceRequest;

                    /**
                     * Encodes the specified TargetPoolsAddInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsAddInstanceRequest.verify|verify} messages.
                     * @param message TargetPoolsAddInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPoolsAddInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsAddInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsAddInstanceRequest.verify|verify} messages.
                     * @param message TargetPoolsAddInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPoolsAddInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsAddInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsAddInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPoolsAddInstanceRequest;

                    /**
                     * Decodes a TargetPoolsAddInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsAddInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPoolsAddInstanceRequest;

                    /**
                     * Verifies a TargetPoolsAddInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsAddInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsAddInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPoolsAddInstanceRequest;

                    /**
                     * Creates a plain object from a TargetPoolsAddInstanceRequest message. Also converts values to other types if specified.
                     * @param message TargetPoolsAddInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPoolsAddInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsAddInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsAddInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsRemoveHealthCheckRequest. */
                interface ITargetPoolsRemoveHealthCheckRequest {

                    /** TargetPoolsRemoveHealthCheckRequest healthChecks */
                    healthChecks?: (google.cloud.compute.v1.IHealthCheckReference[]|null);
                }

                /** Represents a TargetPoolsRemoveHealthCheckRequest. */
                class TargetPoolsRemoveHealthCheckRequest implements ITargetPoolsRemoveHealthCheckRequest {

                    /**
                     * Constructs a new TargetPoolsRemoveHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPoolsRemoveHealthCheckRequest);

                    /** TargetPoolsRemoveHealthCheckRequest healthChecks. */
                    public healthChecks: google.cloud.compute.v1.IHealthCheckReference[];

                    /**
                     * Creates a new TargetPoolsRemoveHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsRemoveHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPoolsRemoveHealthCheckRequest): google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequest;

                    /**
                     * Encodes the specified TargetPoolsRemoveHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequest.verify|verify} messages.
                     * @param message TargetPoolsRemoveHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPoolsRemoveHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsRemoveHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequest.verify|verify} messages.
                     * @param message TargetPoolsRemoveHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPoolsRemoveHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsRemoveHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsRemoveHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequest;

                    /**
                     * Decodes a TargetPoolsRemoveHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsRemoveHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequest;

                    /**
                     * Verifies a TargetPoolsRemoveHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsRemoveHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsRemoveHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequest;

                    /**
                     * Creates a plain object from a TargetPoolsRemoveHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TargetPoolsRemoveHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsRemoveHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsRemoveHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsRemoveInstanceRequest. */
                interface ITargetPoolsRemoveInstanceRequest {

                    /** TargetPoolsRemoveInstanceRequest instances */
                    instances?: (google.cloud.compute.v1.IInstanceReference[]|null);
                }

                /** Represents a TargetPoolsRemoveInstanceRequest. */
                class TargetPoolsRemoveInstanceRequest implements ITargetPoolsRemoveInstanceRequest {

                    /**
                     * Constructs a new TargetPoolsRemoveInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPoolsRemoveInstanceRequest);

                    /** TargetPoolsRemoveInstanceRequest instances. */
                    public instances: google.cloud.compute.v1.IInstanceReference[];

                    /**
                     * Creates a new TargetPoolsRemoveInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsRemoveInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPoolsRemoveInstanceRequest): google.cloud.compute.v1.TargetPoolsRemoveInstanceRequest;

                    /**
                     * Encodes the specified TargetPoolsRemoveInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsRemoveInstanceRequest.verify|verify} messages.
                     * @param message TargetPoolsRemoveInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPoolsRemoveInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsRemoveInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsRemoveInstanceRequest.verify|verify} messages.
                     * @param message TargetPoolsRemoveInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPoolsRemoveInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsRemoveInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsRemoveInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPoolsRemoveInstanceRequest;

                    /**
                     * Decodes a TargetPoolsRemoveInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsRemoveInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPoolsRemoveInstanceRequest;

                    /**
                     * Verifies a TargetPoolsRemoveInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsRemoveInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsRemoveInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPoolsRemoveInstanceRequest;

                    /**
                     * Creates a plain object from a TargetPoolsRemoveInstanceRequest message. Also converts values to other types if specified.
                     * @param message TargetPoolsRemoveInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPoolsRemoveInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsRemoveInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsRemoveInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsScopedList. */
                interface ITargetPoolsScopedList {

                    /** TargetPoolsScopedList targetPools */
                    targetPools?: (google.cloud.compute.v1.ITargetPool[]|null);

                    /** TargetPoolsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetPoolsScopedList. */
                class TargetPoolsScopedList implements ITargetPoolsScopedList {

                    /**
                     * Constructs a new TargetPoolsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetPoolsScopedList);

                    /** TargetPoolsScopedList targetPools. */
                    public targetPools: google.cloud.compute.v1.ITargetPool[];

                    /** TargetPoolsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetPoolsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetPoolsScopedList): google.cloud.compute.v1.TargetPoolsScopedList;

                    /**
                     * Encodes the specified TargetPoolsScopedList message. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsScopedList.verify|verify} messages.
                     * @param message TargetPoolsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetPoolsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetPoolsScopedList.verify|verify} messages.
                     * @param message TargetPoolsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetPoolsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetPoolsScopedList;

                    /**
                     * Decodes a TargetPoolsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetPoolsScopedList;

                    /**
                     * Verifies a TargetPoolsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetPoolsScopedList;

                    /**
                     * Creates a plain object from a TargetPoolsScopedList message. Also converts values to other types if specified.
                     * @param message TargetPoolsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetPoolsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetReference. */
                interface ITargetReference {

                    /** TargetReference target */
                    target?: (string|null);
                }

                /** Represents a TargetReference. */
                class TargetReference implements ITargetReference {

                    /**
                     * Constructs a new TargetReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetReference);

                    /** TargetReference target. */
                    public target?: (string|null);

                    /**
                     * Creates a new TargetReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetReference): google.cloud.compute.v1.TargetReference;

                    /**
                     * Encodes the specified TargetReference message. Does not implicitly {@link google.cloud.compute.v1.TargetReference.verify|verify} messages.
                     * @param message TargetReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetReference.verify|verify} messages.
                     * @param message TargetReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetReference;

                    /**
                     * Decodes a TargetReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetReference;

                    /**
                     * Verifies a TargetReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetReference;

                    /**
                     * Creates a plain object from a TargetReference message. Also converts values to other types if specified.
                     * @param message TargetReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetSslProxiesSetBackendServiceRequest. */
                interface ITargetSslProxiesSetBackendServiceRequest {

                    /** TargetSslProxiesSetBackendServiceRequest service */
                    service?: (string|null);
                }

                /** Represents a TargetSslProxiesSetBackendServiceRequest. */
                class TargetSslProxiesSetBackendServiceRequest implements ITargetSslProxiesSetBackendServiceRequest {

                    /**
                     * Constructs a new TargetSslProxiesSetBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetSslProxiesSetBackendServiceRequest);

                    /** TargetSslProxiesSetBackendServiceRequest service. */
                    public service?: (string|null);

                    /**
                     * Creates a new TargetSslProxiesSetBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxiesSetBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetSslProxiesSetBackendServiceRequest): google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequest;

                    /**
                     * Encodes the specified TargetSslProxiesSetBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetSslProxiesSetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxiesSetBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetSslProxiesSetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxiesSetBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxiesSetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequest;

                    /**
                     * Decodes a TargetSslProxiesSetBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxiesSetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequest;

                    /**
                     * Verifies a TargetSslProxiesSetBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxiesSetBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxiesSetBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequest;

                    /**
                     * Creates a plain object from a TargetSslProxiesSetBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message TargetSslProxiesSetBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxiesSetBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxiesSetBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetSslProxiesSetCertificateMapRequest. */
                interface ITargetSslProxiesSetCertificateMapRequest {

                    /** TargetSslProxiesSetCertificateMapRequest certificateMap */
                    certificateMap?: (string|null);
                }

                /** Represents a TargetSslProxiesSetCertificateMapRequest. */
                class TargetSslProxiesSetCertificateMapRequest implements ITargetSslProxiesSetCertificateMapRequest {

                    /**
                     * Constructs a new TargetSslProxiesSetCertificateMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetSslProxiesSetCertificateMapRequest);

                    /** TargetSslProxiesSetCertificateMapRequest certificateMap. */
                    public certificateMap?: (string|null);

                    /**
                     * Creates a new TargetSslProxiesSetCertificateMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxiesSetCertificateMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetSslProxiesSetCertificateMapRequest): google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequest;

                    /**
                     * Encodes the specified TargetSslProxiesSetCertificateMapRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetCertificateMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetSslProxiesSetCertificateMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxiesSetCertificateMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetCertificateMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetSslProxiesSetCertificateMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxiesSetCertificateMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxiesSetCertificateMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequest;

                    /**
                     * Decodes a TargetSslProxiesSetCertificateMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxiesSetCertificateMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequest;

                    /**
                     * Verifies a TargetSslProxiesSetCertificateMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxiesSetCertificateMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxiesSetCertificateMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequest;

                    /**
                     * Creates a plain object from a TargetSslProxiesSetCertificateMapRequest message. Also converts values to other types if specified.
                     * @param message TargetSslProxiesSetCertificateMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxiesSetCertificateMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxiesSetCertificateMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetSslProxiesSetProxyHeaderRequest. */
                interface ITargetSslProxiesSetProxyHeaderRequest {

                    /** TargetSslProxiesSetProxyHeaderRequest proxyHeader */
                    proxyHeader?: (string|null);
                }

                /** Represents a TargetSslProxiesSetProxyHeaderRequest. */
                class TargetSslProxiesSetProxyHeaderRequest implements ITargetSslProxiesSetProxyHeaderRequest {

                    /**
                     * Constructs a new TargetSslProxiesSetProxyHeaderRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetSslProxiesSetProxyHeaderRequest);

                    /** TargetSslProxiesSetProxyHeaderRequest proxyHeader. */
                    public proxyHeader?: (string|null);

                    /**
                     * Creates a new TargetSslProxiesSetProxyHeaderRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxiesSetProxyHeaderRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetSslProxiesSetProxyHeaderRequest): google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequest;

                    /**
                     * Encodes the specified TargetSslProxiesSetProxyHeaderRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetProxyHeaderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetSslProxiesSetProxyHeaderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxiesSetProxyHeaderRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetProxyHeaderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetSslProxiesSetProxyHeaderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxiesSetProxyHeaderRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxiesSetProxyHeaderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequest;

                    /**
                     * Decodes a TargetSslProxiesSetProxyHeaderRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxiesSetProxyHeaderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequest;

                    /**
                     * Verifies a TargetSslProxiesSetProxyHeaderRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxiesSetProxyHeaderRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxiesSetProxyHeaderRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequest;

                    /**
                     * Creates a plain object from a TargetSslProxiesSetProxyHeaderRequest message. Also converts values to other types if specified.
                     * @param message TargetSslProxiesSetProxyHeaderRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxiesSetProxyHeaderRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxiesSetProxyHeaderRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetSslProxiesSetProxyHeaderRequest {

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a TargetSslProxiesSetSslCertificatesRequest. */
                interface ITargetSslProxiesSetSslCertificatesRequest {

                    /** TargetSslProxiesSetSslCertificatesRequest sslCertificates */
                    sslCertificates?: (string[]|null);
                }

                /** Represents a TargetSslProxiesSetSslCertificatesRequest. */
                class TargetSslProxiesSetSslCertificatesRequest implements ITargetSslProxiesSetSslCertificatesRequest {

                    /**
                     * Constructs a new TargetSslProxiesSetSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetSslProxiesSetSslCertificatesRequest);

                    /** TargetSslProxiesSetSslCertificatesRequest sslCertificates. */
                    public sslCertificates: string[];

                    /**
                     * Creates a new TargetSslProxiesSetSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxiesSetSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetSslProxiesSetSslCertificatesRequest): google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequest;

                    /**
                     * Encodes the specified TargetSslProxiesSetSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetSslProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxiesSetSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetSslProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxiesSetSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequest;

                    /**
                     * Decodes a TargetSslProxiesSetSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequest;

                    /**
                     * Verifies a TargetSslProxiesSetSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxiesSetSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxiesSetSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequest;

                    /**
                     * Creates a plain object from a TargetSslProxiesSetSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message TargetSslProxiesSetSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxiesSetSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxiesSetSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetSslProxy. */
                interface ITargetSslProxy {

                    /** TargetSslProxy certificateMap */
                    certificateMap?: (string|null);

                    /** TargetSslProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetSslProxy description */
                    description?: (string|null);

                    /** TargetSslProxy id */
                    id?: (number|Long|string|null);

                    /** TargetSslProxy kind */
                    kind?: (string|null);

                    /** TargetSslProxy name */
                    name?: (string|null);

                    /** TargetSslProxy proxyHeader */
                    proxyHeader?: (string|null);

                    /** TargetSslProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetSslProxy service */
                    service?: (string|null);

                    /** TargetSslProxy sslCertificates */
                    sslCertificates?: (string[]|null);

                    /** TargetSslProxy sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a TargetSslProxy. */
                class TargetSslProxy implements ITargetSslProxy {

                    /**
                     * Constructs a new TargetSslProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetSslProxy);

                    /** TargetSslProxy certificateMap. */
                    public certificateMap?: (string|null);

                    /** TargetSslProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetSslProxy description. */
                    public description?: (string|null);

                    /** TargetSslProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetSslProxy kind. */
                    public kind?: (string|null);

                    /** TargetSslProxy name. */
                    public name?: (string|null);

                    /** TargetSslProxy proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** TargetSslProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetSslProxy service. */
                    public service?: (string|null);

                    /** TargetSslProxy sslCertificates. */
                    public sslCertificates: string[];

                    /** TargetSslProxy sslPolicy. */
                    public sslPolicy?: (string|null);

                    /**
                     * Creates a new TargetSslProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetSslProxy): google.cloud.compute.v1.TargetSslProxy;

                    /**
                     * Encodes the specified TargetSslProxy message. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxy.verify|verify} messages.
                     * @param message TargetSslProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetSslProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxy.verify|verify} messages.
                     * @param message TargetSslProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetSslProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetSslProxy;

                    /**
                     * Decodes a TargetSslProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetSslProxy;

                    /**
                     * Verifies a TargetSslProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetSslProxy;

                    /**
                     * Creates a plain object from a TargetSslProxy message. Also converts values to other types if specified.
                     * @param message TargetSslProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetSslProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetSslProxy {

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a TargetSslProxyList. */
                interface ITargetSslProxyList {

                    /** TargetSslProxyList id */
                    id?: (string|null);

                    /** TargetSslProxyList items */
                    items?: (google.cloud.compute.v1.ITargetSslProxy[]|null);

                    /** TargetSslProxyList kind */
                    kind?: (string|null);

                    /** TargetSslProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetSslProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetSslProxyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetSslProxyList. */
                class TargetSslProxyList implements ITargetSslProxyList {

                    /**
                     * Constructs a new TargetSslProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetSslProxyList);

                    /** TargetSslProxyList id. */
                    public id?: (string|null);

                    /** TargetSslProxyList items. */
                    public items: google.cloud.compute.v1.ITargetSslProxy[];

                    /** TargetSslProxyList kind. */
                    public kind?: (string|null);

                    /** TargetSslProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetSslProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetSslProxyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetSslProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetSslProxyList): google.cloud.compute.v1.TargetSslProxyList;

                    /**
                     * Encodes the specified TargetSslProxyList message. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxyList.verify|verify} messages.
                     * @param message TargetSslProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetSslProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetSslProxyList.verify|verify} messages.
                     * @param message TargetSslProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetSslProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetSslProxyList;

                    /**
                     * Decodes a TargetSslProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetSslProxyList;

                    /**
                     * Verifies a TargetSslProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetSslProxyList;

                    /**
                     * Creates a plain object from a TargetSslProxyList message. Also converts values to other types if specified.
                     * @param message TargetSslProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetSslProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetTcpProxiesScopedList. */
                interface ITargetTcpProxiesScopedList {

                    /** TargetTcpProxiesScopedList targetTcpProxies */
                    targetTcpProxies?: (google.cloud.compute.v1.ITargetTcpProxy[]|null);

                    /** TargetTcpProxiesScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetTcpProxiesScopedList. */
                class TargetTcpProxiesScopedList implements ITargetTcpProxiesScopedList {

                    /**
                     * Constructs a new TargetTcpProxiesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetTcpProxiesScopedList);

                    /** TargetTcpProxiesScopedList targetTcpProxies. */
                    public targetTcpProxies: google.cloud.compute.v1.ITargetTcpProxy[];

                    /** TargetTcpProxiesScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetTcpProxiesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxiesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetTcpProxiesScopedList): google.cloud.compute.v1.TargetTcpProxiesScopedList;

                    /**
                     * Encodes the specified TargetTcpProxiesScopedList message. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxiesScopedList.verify|verify} messages.
                     * @param message TargetTcpProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetTcpProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxiesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxiesScopedList.verify|verify} messages.
                     * @param message TargetTcpProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetTcpProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxiesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetTcpProxiesScopedList;

                    /**
                     * Decodes a TargetTcpProxiesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetTcpProxiesScopedList;

                    /**
                     * Verifies a TargetTcpProxiesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxiesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxiesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetTcpProxiesScopedList;

                    /**
                     * Creates a plain object from a TargetTcpProxiesScopedList message. Also converts values to other types if specified.
                     * @param message TargetTcpProxiesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetTcpProxiesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxiesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxiesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetTcpProxiesSetBackendServiceRequest. */
                interface ITargetTcpProxiesSetBackendServiceRequest {

                    /** TargetTcpProxiesSetBackendServiceRequest service */
                    service?: (string|null);
                }

                /** Represents a TargetTcpProxiesSetBackendServiceRequest. */
                class TargetTcpProxiesSetBackendServiceRequest implements ITargetTcpProxiesSetBackendServiceRequest {

                    /**
                     * Constructs a new TargetTcpProxiesSetBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetTcpProxiesSetBackendServiceRequest);

                    /** TargetTcpProxiesSetBackendServiceRequest service. */
                    public service?: (string|null);

                    /**
                     * Creates a new TargetTcpProxiesSetBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxiesSetBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetTcpProxiesSetBackendServiceRequest): google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequest;

                    /**
                     * Encodes the specified TargetTcpProxiesSetBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequest.verify|verify} messages.
                     * @param message TargetTcpProxiesSetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetTcpProxiesSetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxiesSetBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequest.verify|verify} messages.
                     * @param message TargetTcpProxiesSetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetTcpProxiesSetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxiesSetBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxiesSetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequest;

                    /**
                     * Decodes a TargetTcpProxiesSetBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxiesSetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequest;

                    /**
                     * Verifies a TargetTcpProxiesSetBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxiesSetBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxiesSetBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequest;

                    /**
                     * Creates a plain object from a TargetTcpProxiesSetBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message TargetTcpProxiesSetBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxiesSetBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxiesSetBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetTcpProxiesSetProxyHeaderRequest. */
                interface ITargetTcpProxiesSetProxyHeaderRequest {

                    /** TargetTcpProxiesSetProxyHeaderRequest proxyHeader */
                    proxyHeader?: (string|null);
                }

                /** Represents a TargetTcpProxiesSetProxyHeaderRequest. */
                class TargetTcpProxiesSetProxyHeaderRequest implements ITargetTcpProxiesSetProxyHeaderRequest {

                    /**
                     * Constructs a new TargetTcpProxiesSetProxyHeaderRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetTcpProxiesSetProxyHeaderRequest);

                    /** TargetTcpProxiesSetProxyHeaderRequest proxyHeader. */
                    public proxyHeader?: (string|null);

                    /**
                     * Creates a new TargetTcpProxiesSetProxyHeaderRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxiesSetProxyHeaderRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetTcpProxiesSetProxyHeaderRequest): google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequest;

                    /**
                     * Encodes the specified TargetTcpProxiesSetProxyHeaderRequest message. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequest.verify|verify} messages.
                     * @param message TargetTcpProxiesSetProxyHeaderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetTcpProxiesSetProxyHeaderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxiesSetProxyHeaderRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequest.verify|verify} messages.
                     * @param message TargetTcpProxiesSetProxyHeaderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetTcpProxiesSetProxyHeaderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxiesSetProxyHeaderRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxiesSetProxyHeaderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequest;

                    /**
                     * Decodes a TargetTcpProxiesSetProxyHeaderRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxiesSetProxyHeaderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequest;

                    /**
                     * Verifies a TargetTcpProxiesSetProxyHeaderRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxiesSetProxyHeaderRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxiesSetProxyHeaderRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequest;

                    /**
                     * Creates a plain object from a TargetTcpProxiesSetProxyHeaderRequest message. Also converts values to other types if specified.
                     * @param message TargetTcpProxiesSetProxyHeaderRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxiesSetProxyHeaderRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxiesSetProxyHeaderRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetTcpProxiesSetProxyHeaderRequest {

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a TargetTcpProxy. */
                interface ITargetTcpProxy {

                    /** TargetTcpProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetTcpProxy description */
                    description?: (string|null);

                    /** TargetTcpProxy id */
                    id?: (number|Long|string|null);

                    /** TargetTcpProxy kind */
                    kind?: (string|null);

                    /** TargetTcpProxy name */
                    name?: (string|null);

                    /** TargetTcpProxy proxyBind */
                    proxyBind?: (boolean|null);

                    /** TargetTcpProxy proxyHeader */
                    proxyHeader?: (string|null);

                    /** TargetTcpProxy region */
                    region?: (string|null);

                    /** TargetTcpProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetTcpProxy service */
                    service?: (string|null);
                }

                /** Represents a TargetTcpProxy. */
                class TargetTcpProxy implements ITargetTcpProxy {

                    /**
                     * Constructs a new TargetTcpProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetTcpProxy);

                    /** TargetTcpProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetTcpProxy description. */
                    public description?: (string|null);

                    /** TargetTcpProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetTcpProxy kind. */
                    public kind?: (string|null);

                    /** TargetTcpProxy name. */
                    public name?: (string|null);

                    /** TargetTcpProxy proxyBind. */
                    public proxyBind?: (boolean|null);

                    /** TargetTcpProxy proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** TargetTcpProxy region. */
                    public region?: (string|null);

                    /** TargetTcpProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetTcpProxy service. */
                    public service?: (string|null);

                    /**
                     * Creates a new TargetTcpProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetTcpProxy): google.cloud.compute.v1.TargetTcpProxy;

                    /**
                     * Encodes the specified TargetTcpProxy message. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxy.verify|verify} messages.
                     * @param message TargetTcpProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetTcpProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxy.verify|verify} messages.
                     * @param message TargetTcpProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetTcpProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetTcpProxy;

                    /**
                     * Decodes a TargetTcpProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetTcpProxy;

                    /**
                     * Verifies a TargetTcpProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetTcpProxy;

                    /**
                     * Creates a plain object from a TargetTcpProxy message. Also converts values to other types if specified.
                     * @param message TargetTcpProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetTcpProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetTcpProxy {

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a TargetTcpProxyAggregatedList. */
                interface ITargetTcpProxyAggregatedList {

                    /** TargetTcpProxyAggregatedList id */
                    id?: (string|null);

                    /** TargetTcpProxyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ITargetTcpProxiesScopedList }|null);

                    /** TargetTcpProxyAggregatedList kind */
                    kind?: (string|null);

                    /** TargetTcpProxyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetTcpProxyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetTcpProxyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetTcpProxyAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetTcpProxyAggregatedList. */
                class TargetTcpProxyAggregatedList implements ITargetTcpProxyAggregatedList {

                    /**
                     * Constructs a new TargetTcpProxyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetTcpProxyAggregatedList);

                    /** TargetTcpProxyAggregatedList id. */
                    public id?: (string|null);

                    /** TargetTcpProxyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ITargetTcpProxiesScopedList };

                    /** TargetTcpProxyAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetTcpProxyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetTcpProxyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetTcpProxyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetTcpProxyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetTcpProxyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetTcpProxyAggregatedList): google.cloud.compute.v1.TargetTcpProxyAggregatedList;

                    /**
                     * Encodes the specified TargetTcpProxyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxyAggregatedList.verify|verify} messages.
                     * @param message TargetTcpProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetTcpProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxyAggregatedList.verify|verify} messages.
                     * @param message TargetTcpProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetTcpProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetTcpProxyAggregatedList;

                    /**
                     * Decodes a TargetTcpProxyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetTcpProxyAggregatedList;

                    /**
                     * Verifies a TargetTcpProxyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetTcpProxyAggregatedList;

                    /**
                     * Creates a plain object from a TargetTcpProxyAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetTcpProxyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetTcpProxyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetTcpProxyList. */
                interface ITargetTcpProxyList {

                    /** TargetTcpProxyList id */
                    id?: (string|null);

                    /** TargetTcpProxyList items */
                    items?: (google.cloud.compute.v1.ITargetTcpProxy[]|null);

                    /** TargetTcpProxyList kind */
                    kind?: (string|null);

                    /** TargetTcpProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetTcpProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetTcpProxyList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetTcpProxyList. */
                class TargetTcpProxyList implements ITargetTcpProxyList {

                    /**
                     * Constructs a new TargetTcpProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetTcpProxyList);

                    /** TargetTcpProxyList id. */
                    public id?: (string|null);

                    /** TargetTcpProxyList items. */
                    public items: google.cloud.compute.v1.ITargetTcpProxy[];

                    /** TargetTcpProxyList kind. */
                    public kind?: (string|null);

                    /** TargetTcpProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetTcpProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetTcpProxyList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetTcpProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetTcpProxyList): google.cloud.compute.v1.TargetTcpProxyList;

                    /**
                     * Encodes the specified TargetTcpProxyList message. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxyList.verify|verify} messages.
                     * @param message TargetTcpProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetTcpProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetTcpProxyList.verify|verify} messages.
                     * @param message TargetTcpProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetTcpProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetTcpProxyList;

                    /**
                     * Decodes a TargetTcpProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetTcpProxyList;

                    /**
                     * Verifies a TargetTcpProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetTcpProxyList;

                    /**
                     * Creates a plain object from a TargetTcpProxyList message. Also converts values to other types if specified.
                     * @param message TargetTcpProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetTcpProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetVpnGateway. */
                interface ITargetVpnGateway {

                    /** TargetVpnGateway creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetVpnGateway description */
                    description?: (string|null);

                    /** TargetVpnGateway forwardingRules */
                    forwardingRules?: (string[]|null);

                    /** TargetVpnGateway id */
                    id?: (number|Long|string|null);

                    /** TargetVpnGateway kind */
                    kind?: (string|null);

                    /** TargetVpnGateway labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** TargetVpnGateway labels */
                    labels?: ({ [k: string]: string }|null);

                    /** TargetVpnGateway name */
                    name?: (string|null);

                    /** TargetVpnGateway network */
                    network?: (string|null);

                    /** TargetVpnGateway params */
                    params?: (google.cloud.compute.v1.ITargetVpnGatewayParams|null);

                    /** TargetVpnGateway region */
                    region?: (string|null);

                    /** TargetVpnGateway selfLink */
                    selfLink?: (string|null);

                    /** TargetVpnGateway status */
                    status?: (string|null);

                    /** TargetVpnGateway tunnels */
                    tunnels?: (string[]|null);
                }

                /** Represents a TargetVpnGateway. */
                class TargetVpnGateway implements ITargetVpnGateway {

                    /**
                     * Constructs a new TargetVpnGateway.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetVpnGateway);

                    /** TargetVpnGateway creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetVpnGateway description. */
                    public description?: (string|null);

                    /** TargetVpnGateway forwardingRules. */
                    public forwardingRules: string[];

                    /** TargetVpnGateway id. */
                    public id?: (number|Long|string|null);

                    /** TargetVpnGateway kind. */
                    public kind?: (string|null);

                    /** TargetVpnGateway labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** TargetVpnGateway labels. */
                    public labels: { [k: string]: string };

                    /** TargetVpnGateway name. */
                    public name?: (string|null);

                    /** TargetVpnGateway network. */
                    public network?: (string|null);

                    /** TargetVpnGateway params. */
                    public params?: (google.cloud.compute.v1.ITargetVpnGatewayParams|null);

                    /** TargetVpnGateway region. */
                    public region?: (string|null);

                    /** TargetVpnGateway selfLink. */
                    public selfLink?: (string|null);

                    /** TargetVpnGateway status. */
                    public status?: (string|null);

                    /** TargetVpnGateway tunnels. */
                    public tunnels: string[];

                    /**
                     * Creates a new TargetVpnGateway instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGateway instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetVpnGateway): google.cloud.compute.v1.TargetVpnGateway;

                    /**
                     * Encodes the specified TargetVpnGateway message. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGateway.verify|verify} messages.
                     * @param message TargetVpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGateway message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGateway.verify|verify} messages.
                     * @param message TargetVpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGateway message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetVpnGateway;

                    /**
                     * Decodes a TargetVpnGateway message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetVpnGateway;

                    /**
                     * Verifies a TargetVpnGateway message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGateway message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGateway
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetVpnGateway;

                    /**
                     * Creates a plain object from a TargetVpnGateway message. Also converts values to other types if specified.
                     * @param message TargetVpnGateway
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetVpnGateway, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGateway to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGateway
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetVpnGateway {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963
                    }
                }

                /** Properties of a TargetVpnGatewayAggregatedList. */
                interface ITargetVpnGatewayAggregatedList {

                    /** TargetVpnGatewayAggregatedList id */
                    id?: (string|null);

                    /** TargetVpnGatewayAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.ITargetVpnGatewaysScopedList }|null);

                    /** TargetVpnGatewayAggregatedList kind */
                    kind?: (string|null);

                    /** TargetVpnGatewayAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetVpnGatewayAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetVpnGatewayAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetVpnGatewayAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetVpnGatewayAggregatedList. */
                class TargetVpnGatewayAggregatedList implements ITargetVpnGatewayAggregatedList {

                    /**
                     * Constructs a new TargetVpnGatewayAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetVpnGatewayAggregatedList);

                    /** TargetVpnGatewayAggregatedList id. */
                    public id?: (string|null);

                    /** TargetVpnGatewayAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.ITargetVpnGatewaysScopedList };

                    /** TargetVpnGatewayAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetVpnGatewayAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetVpnGatewayAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetVpnGatewayAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetVpnGatewayAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetVpnGatewayAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGatewayAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetVpnGatewayAggregatedList): google.cloud.compute.v1.TargetVpnGatewayAggregatedList;

                    /**
                     * Encodes the specified TargetVpnGatewayAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGatewayAggregatedList.verify|verify} messages.
                     * @param message TargetVpnGatewayAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetVpnGatewayAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGatewayAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGatewayAggregatedList.verify|verify} messages.
                     * @param message TargetVpnGatewayAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetVpnGatewayAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGatewayAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGatewayAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetVpnGatewayAggregatedList;

                    /**
                     * Decodes a TargetVpnGatewayAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGatewayAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetVpnGatewayAggregatedList;

                    /**
                     * Verifies a TargetVpnGatewayAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGatewayAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGatewayAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetVpnGatewayAggregatedList;

                    /**
                     * Creates a plain object from a TargetVpnGatewayAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetVpnGatewayAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetVpnGatewayAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGatewayAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGatewayAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetVpnGatewayList. */
                interface ITargetVpnGatewayList {

                    /** TargetVpnGatewayList id */
                    id?: (string|null);

                    /** TargetVpnGatewayList items */
                    items?: (google.cloud.compute.v1.ITargetVpnGateway[]|null);

                    /** TargetVpnGatewayList kind */
                    kind?: (string|null);

                    /** TargetVpnGatewayList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetVpnGatewayList selfLink */
                    selfLink?: (string|null);

                    /** TargetVpnGatewayList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetVpnGatewayList. */
                class TargetVpnGatewayList implements ITargetVpnGatewayList {

                    /**
                     * Constructs a new TargetVpnGatewayList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetVpnGatewayList);

                    /** TargetVpnGatewayList id. */
                    public id?: (string|null);

                    /** TargetVpnGatewayList items. */
                    public items: google.cloud.compute.v1.ITargetVpnGateway[];

                    /** TargetVpnGatewayList kind. */
                    public kind?: (string|null);

                    /** TargetVpnGatewayList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetVpnGatewayList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetVpnGatewayList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetVpnGatewayList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGatewayList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetVpnGatewayList): google.cloud.compute.v1.TargetVpnGatewayList;

                    /**
                     * Encodes the specified TargetVpnGatewayList message. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGatewayList.verify|verify} messages.
                     * @param message TargetVpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGatewayList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGatewayList.verify|verify} messages.
                     * @param message TargetVpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGatewayList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetVpnGatewayList;

                    /**
                     * Decodes a TargetVpnGatewayList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetVpnGatewayList;

                    /**
                     * Verifies a TargetVpnGatewayList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGatewayList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGatewayList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetVpnGatewayList;

                    /**
                     * Creates a plain object from a TargetVpnGatewayList message. Also converts values to other types if specified.
                     * @param message TargetVpnGatewayList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetVpnGatewayList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGatewayList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGatewayList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetVpnGatewayParams. */
                interface ITargetVpnGatewayParams {

                    /** TargetVpnGatewayParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a TargetVpnGatewayParams. */
                class TargetVpnGatewayParams implements ITargetVpnGatewayParams {

                    /**
                     * Constructs a new TargetVpnGatewayParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetVpnGatewayParams);

                    /** TargetVpnGatewayParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new TargetVpnGatewayParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGatewayParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetVpnGatewayParams): google.cloud.compute.v1.TargetVpnGatewayParams;

                    /**
                     * Encodes the specified TargetVpnGatewayParams message. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGatewayParams.verify|verify} messages.
                     * @param message TargetVpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGatewayParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGatewayParams.verify|verify} messages.
                     * @param message TargetVpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGatewayParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetVpnGatewayParams;

                    /**
                     * Decodes a TargetVpnGatewayParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetVpnGatewayParams;

                    /**
                     * Verifies a TargetVpnGatewayParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGatewayParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGatewayParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetVpnGatewayParams;

                    /**
                     * Creates a plain object from a TargetVpnGatewayParams message. Also converts values to other types if specified.
                     * @param message TargetVpnGatewayParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetVpnGatewayParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGatewayParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGatewayParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetVpnGatewaysScopedList. */
                interface ITargetVpnGatewaysScopedList {

                    /** TargetVpnGatewaysScopedList targetVpnGateways */
                    targetVpnGateways?: (google.cloud.compute.v1.ITargetVpnGateway[]|null);

                    /** TargetVpnGatewaysScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a TargetVpnGatewaysScopedList. */
                class TargetVpnGatewaysScopedList implements ITargetVpnGatewaysScopedList {

                    /**
                     * Constructs a new TargetVpnGatewaysScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITargetVpnGatewaysScopedList);

                    /** TargetVpnGatewaysScopedList targetVpnGateways. */
                    public targetVpnGateways: google.cloud.compute.v1.ITargetVpnGateway[];

                    /** TargetVpnGatewaysScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new TargetVpnGatewaysScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGatewaysScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITargetVpnGatewaysScopedList): google.cloud.compute.v1.TargetVpnGatewaysScopedList;

                    /**
                     * Encodes the specified TargetVpnGatewaysScopedList message. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGatewaysScopedList.verify|verify} messages.
                     * @param message TargetVpnGatewaysScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITargetVpnGatewaysScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGatewaysScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TargetVpnGatewaysScopedList.verify|verify} messages.
                     * @param message TargetVpnGatewaysScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITargetVpnGatewaysScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGatewaysScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGatewaysScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TargetVpnGatewaysScopedList;

                    /**
                     * Decodes a TargetVpnGatewaysScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGatewaysScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TargetVpnGatewaysScopedList;

                    /**
                     * Verifies a TargetVpnGatewaysScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGatewaysScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGatewaysScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TargetVpnGatewaysScopedList;

                    /**
                     * Creates a plain object from a TargetVpnGatewaysScopedList message. Also converts values to other types if specified.
                     * @param message TargetVpnGatewaysScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TargetVpnGatewaysScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGatewaysScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGatewaysScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestFailure. */
                interface ITestFailure {

                    /** TestFailure actualOutputUrl */
                    actualOutputUrl?: (string|null);

                    /** TestFailure actualRedirectResponseCode */
                    actualRedirectResponseCode?: (number|null);

                    /** TestFailure actualService */
                    actualService?: (string|null);

                    /** TestFailure expectedOutputUrl */
                    expectedOutputUrl?: (string|null);

                    /** TestFailure expectedRedirectResponseCode */
                    expectedRedirectResponseCode?: (number|null);

                    /** TestFailure expectedService */
                    expectedService?: (string|null);

                    /** TestFailure headers */
                    headers?: (google.cloud.compute.v1.IUrlMapTestHeader[]|null);

                    /** TestFailure host */
                    host?: (string|null);

                    /** TestFailure path */
                    path?: (string|null);
                }

                /** Represents a TestFailure. */
                class TestFailure implements ITestFailure {

                    /**
                     * Constructs a new TestFailure.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestFailure);

                    /** TestFailure actualOutputUrl. */
                    public actualOutputUrl?: (string|null);

                    /** TestFailure actualRedirectResponseCode. */
                    public actualRedirectResponseCode?: (number|null);

                    /** TestFailure actualService. */
                    public actualService?: (string|null);

                    /** TestFailure expectedOutputUrl. */
                    public expectedOutputUrl?: (string|null);

                    /** TestFailure expectedRedirectResponseCode. */
                    public expectedRedirectResponseCode?: (number|null);

                    /** TestFailure expectedService. */
                    public expectedService?: (string|null);

                    /** TestFailure headers. */
                    public headers: google.cloud.compute.v1.IUrlMapTestHeader[];

                    /** TestFailure host. */
                    public host?: (string|null);

                    /** TestFailure path. */
                    public path?: (string|null);

                    /**
                     * Creates a new TestFailure instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestFailure instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestFailure): google.cloud.compute.v1.TestFailure;

                    /**
                     * Encodes the specified TestFailure message. Does not implicitly {@link google.cloud.compute.v1.TestFailure.verify|verify} messages.
                     * @param message TestFailure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestFailure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestFailure message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestFailure.verify|verify} messages.
                     * @param message TestFailure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestFailure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestFailure message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestFailure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestFailure;

                    /**
                     * Decodes a TestFailure message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestFailure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestFailure;

                    /**
                     * Verifies a TestFailure message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestFailure message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestFailure
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestFailure;

                    /**
                     * Creates a plain object from a TestFailure message. Also converts values to other types if specified.
                     * @param message TestFailure
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestFailure, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestFailure to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestFailure
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsAddressRequest. */
                interface ITestIamPermissionsAddressRequest {

                    /** TestIamPermissionsAddressRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsAddressRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsAddressRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsAddressRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsAddressRequest. */
                class TestIamPermissionsAddressRequest implements ITestIamPermissionsAddressRequest {

                    /**
                     * Constructs a new TestIamPermissionsAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsAddressRequest);

                    /** TestIamPermissionsAddressRequest project. */
                    public project: string;

                    /** TestIamPermissionsAddressRequest region. */
                    public region: string;

                    /** TestIamPermissionsAddressRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsAddressRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsAddressRequest): google.cloud.compute.v1.TestIamPermissionsAddressRequest;

                    /**
                     * Encodes the specified TestIamPermissionsAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsAddressRequest.verify|verify} messages.
                     * @param message TestIamPermissionsAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsAddressRequest.verify|verify} messages.
                     * @param message TestIamPermissionsAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsAddressRequest;

                    /**
                     * Decodes a TestIamPermissionsAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsAddressRequest;

                    /**
                     * Verifies a TestIamPermissionsAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsAddressRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsAddressRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsAutoscalerRequest. */
                interface ITestIamPermissionsAutoscalerRequest {

                    /** TestIamPermissionsAutoscalerRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsAutoscalerRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsAutoscalerRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsAutoscalerRequest. */
                class TestIamPermissionsAutoscalerRequest implements ITestIamPermissionsAutoscalerRequest {

                    /**
                     * Constructs a new TestIamPermissionsAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsAutoscalerRequest);

                    /** TestIamPermissionsAutoscalerRequest project. */
                    public project: string;

                    /** TestIamPermissionsAutoscalerRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsAutoscalerRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsAutoscalerRequest): google.cloud.compute.v1.TestIamPermissionsAutoscalerRequest;

                    /**
                     * Encodes the specified TestIamPermissionsAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsAutoscalerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsAutoscalerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsAutoscalerRequest;

                    /**
                     * Decodes a TestIamPermissionsAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsAutoscalerRequest;

                    /**
                     * Verifies a TestIamPermissionsAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsAutoscalerRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsBackendBucketRequest. */
                interface ITestIamPermissionsBackendBucketRequest {

                    /** TestIamPermissionsBackendBucketRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsBackendBucketRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsBackendBucketRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsBackendBucketRequest. */
                class TestIamPermissionsBackendBucketRequest implements ITestIamPermissionsBackendBucketRequest {

                    /**
                     * Constructs a new TestIamPermissionsBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsBackendBucketRequest);

                    /** TestIamPermissionsBackendBucketRequest project. */
                    public project: string;

                    /** TestIamPermissionsBackendBucketRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsBackendBucketRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsBackendBucketRequest): google.cloud.compute.v1.TestIamPermissionsBackendBucketRequest;

                    /**
                     * Encodes the specified TestIamPermissionsBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsBackendBucketRequest.verify|verify} messages.
                     * @param message TestIamPermissionsBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsBackendBucketRequest.verify|verify} messages.
                     * @param message TestIamPermissionsBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsBackendBucketRequest;

                    /**
                     * Decodes a TestIamPermissionsBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsBackendBucketRequest;

                    /**
                     * Verifies a TestIamPermissionsBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsBackendBucketRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsBackendServiceRequest. */
                interface ITestIamPermissionsBackendServiceRequest {

                    /** TestIamPermissionsBackendServiceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsBackendServiceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsBackendServiceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsBackendServiceRequest. */
                class TestIamPermissionsBackendServiceRequest implements ITestIamPermissionsBackendServiceRequest {

                    /**
                     * Constructs a new TestIamPermissionsBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsBackendServiceRequest);

                    /** TestIamPermissionsBackendServiceRequest project. */
                    public project: string;

                    /** TestIamPermissionsBackendServiceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsBackendServiceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsBackendServiceRequest): google.cloud.compute.v1.TestIamPermissionsBackendServiceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsBackendServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsBackendServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsBackendServiceRequest;

                    /**
                     * Decodes a TestIamPermissionsBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsBackendServiceRequest;

                    /**
                     * Verifies a TestIamPermissionsBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsBackendServiceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsDiskRequest. */
                interface ITestIamPermissionsDiskRequest {

                    /** TestIamPermissionsDiskRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsDiskRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsDiskRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsDiskRequest. */
                class TestIamPermissionsDiskRequest implements ITestIamPermissionsDiskRequest {

                    /**
                     * Constructs a new TestIamPermissionsDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsDiskRequest);

                    /** TestIamPermissionsDiskRequest project. */
                    public project: string;

                    /** TestIamPermissionsDiskRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsDiskRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsDiskRequest): google.cloud.compute.v1.TestIamPermissionsDiskRequest;

                    /**
                     * Encodes the specified TestIamPermissionsDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsDiskRequest.verify|verify} messages.
                     * @param message TestIamPermissionsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsDiskRequest.verify|verify} messages.
                     * @param message TestIamPermissionsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsDiskRequest;

                    /**
                     * Decodes a TestIamPermissionsDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsDiskRequest;

                    /**
                     * Verifies a TestIamPermissionsDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsDiskRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsDiskRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsExternalVpnGatewayRequest. */
                interface ITestIamPermissionsExternalVpnGatewayRequest {

                    /** TestIamPermissionsExternalVpnGatewayRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsExternalVpnGatewayRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsExternalVpnGatewayRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsExternalVpnGatewayRequest. */
                class TestIamPermissionsExternalVpnGatewayRequest implements ITestIamPermissionsExternalVpnGatewayRequest {

                    /**
                     * Constructs a new TestIamPermissionsExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsExternalVpnGatewayRequest);

                    /** TestIamPermissionsExternalVpnGatewayRequest project. */
                    public project: string;

                    /** TestIamPermissionsExternalVpnGatewayRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsExternalVpnGatewayRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsExternalVpnGatewayRequest): google.cloud.compute.v1.TestIamPermissionsExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified TestIamPermissionsExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsExternalVpnGatewayRequest;

                    /**
                     * Decodes a TestIamPermissionsExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsExternalVpnGatewayRequest;

                    /**
                     * Verifies a TestIamPermissionsExternalVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsFirewallPolicyRequest. */
                interface ITestIamPermissionsFirewallPolicyRequest {

                    /** TestIamPermissionsFirewallPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsFirewallPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsFirewallPolicyRequest. */
                class TestIamPermissionsFirewallPolicyRequest implements ITestIamPermissionsFirewallPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsFirewallPolicyRequest);

                    /** TestIamPermissionsFirewallPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsFirewallPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsFirewallPolicyRequest): google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsFirewallRequest. */
                interface ITestIamPermissionsFirewallRequest {

                    /** TestIamPermissionsFirewallRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsFirewallRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsFirewallRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsFirewallRequest. */
                class TestIamPermissionsFirewallRequest implements ITestIamPermissionsFirewallRequest {

                    /**
                     * Constructs a new TestIamPermissionsFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsFirewallRequest);

                    /** TestIamPermissionsFirewallRequest project. */
                    public project: string;

                    /** TestIamPermissionsFirewallRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsFirewallRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsFirewallRequest): google.cloud.compute.v1.TestIamPermissionsFirewallRequest;

                    /**
                     * Encodes the specified TestIamPermissionsFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsFirewallRequest.verify|verify} messages.
                     * @param message TestIamPermissionsFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsFirewallRequest.verify|verify} messages.
                     * @param message TestIamPermissionsFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsFirewallRequest;

                    /**
                     * Decodes a TestIamPermissionsFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsFirewallRequest;

                    /**
                     * Verifies a TestIamPermissionsFirewallRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsFirewallRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsFirewallRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsGlobalAddressRequest. */
                interface ITestIamPermissionsGlobalAddressRequest {

                    /** TestIamPermissionsGlobalAddressRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsGlobalAddressRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsGlobalAddressRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsGlobalAddressRequest. */
                class TestIamPermissionsGlobalAddressRequest implements ITestIamPermissionsGlobalAddressRequest {

                    /**
                     * Constructs a new TestIamPermissionsGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsGlobalAddressRequest);

                    /** TestIamPermissionsGlobalAddressRequest project. */
                    public project: string;

                    /** TestIamPermissionsGlobalAddressRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsGlobalAddressRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsGlobalAddressRequest): google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest;

                    /**
                     * Encodes the specified TestIamPermissionsGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest.verify|verify} messages.
                     * @param message TestIamPermissionsGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest.verify|verify} messages.
                     * @param message TestIamPermissionsGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest;

                    /**
                     * Decodes a TestIamPermissionsGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest;

                    /**
                     * Verifies a TestIamPermissionsGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsHealthCheckRequest. */
                interface ITestIamPermissionsHealthCheckRequest {

                    /** TestIamPermissionsHealthCheckRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsHealthCheckRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsHealthCheckRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsHealthCheckRequest. */
                class TestIamPermissionsHealthCheckRequest implements ITestIamPermissionsHealthCheckRequest {

                    /**
                     * Constructs a new TestIamPermissionsHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsHealthCheckRequest);

                    /** TestIamPermissionsHealthCheckRequest project. */
                    public project: string;

                    /** TestIamPermissionsHealthCheckRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsHealthCheckRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsHealthCheckRequest): google.cloud.compute.v1.TestIamPermissionsHealthCheckRequest;

                    /**
                     * Encodes the specified TestIamPermissionsHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsHealthCheckRequest;

                    /**
                     * Decodes a TestIamPermissionsHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsHealthCheckRequest;

                    /**
                     * Verifies a TestIamPermissionsHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsHealthCheckRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsImageRequest. */
                interface ITestIamPermissionsImageRequest {

                    /** TestIamPermissionsImageRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsImageRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsImageRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsImageRequest. */
                class TestIamPermissionsImageRequest implements ITestIamPermissionsImageRequest {

                    /**
                     * Constructs a new TestIamPermissionsImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsImageRequest);

                    /** TestIamPermissionsImageRequest project. */
                    public project: string;

                    /** TestIamPermissionsImageRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsImageRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsImageRequest): google.cloud.compute.v1.TestIamPermissionsImageRequest;

                    /**
                     * Encodes the specified TestIamPermissionsImageRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsImageRequest.verify|verify} messages.
                     * @param message TestIamPermissionsImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsImageRequest.verify|verify} messages.
                     * @param message TestIamPermissionsImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsImageRequest;

                    /**
                     * Decodes a TestIamPermissionsImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsImageRequest;

                    /**
                     * Verifies a TestIamPermissionsImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsImageRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsImageRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstanceGroupRequest. */
                interface ITestIamPermissionsInstanceGroupRequest {

                    /** TestIamPermissionsInstanceGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstanceGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstanceGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsInstanceGroupRequest. */
                class TestIamPermissionsInstanceGroupRequest implements ITestIamPermissionsInstanceGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsInstanceGroupRequest);

                    /** TestIamPermissionsInstanceGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstanceGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstanceGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsInstanceGroupRequest): google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstanceRequest. */
                interface ITestIamPermissionsInstanceRequest {

                    /** TestIamPermissionsInstanceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstanceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstanceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsInstanceRequest. */
                class TestIamPermissionsInstanceRequest implements ITestIamPermissionsInstanceRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsInstanceRequest);

                    /** TestIamPermissionsInstanceRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstanceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstanceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsInstanceRequest): google.cloud.compute.v1.TestIamPermissionsInstanceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInstanceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInstanceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsInstanceRequest;

                    /**
                     * Decodes a TestIamPermissionsInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsInstanceRequest;

                    /**
                     * Verifies a TestIamPermissionsInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsInstanceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstanceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstanceTemplateRequest. */
                interface ITestIamPermissionsInstanceTemplateRequest {

                    /** TestIamPermissionsInstanceTemplateRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstanceTemplateRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstanceTemplateRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsInstanceTemplateRequest. */
                class TestIamPermissionsInstanceTemplateRequest implements ITestIamPermissionsInstanceTemplateRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsInstanceTemplateRequest);

                    /** TestIamPermissionsInstanceTemplateRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstanceTemplateRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstanceTemplateRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsInstanceTemplateRequest): google.cloud.compute.v1.TestIamPermissionsInstanceTemplateRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInstanceTemplateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInstanceTemplateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsInstanceTemplateRequest;

                    /**
                     * Decodes a TestIamPermissionsInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsInstanceTemplateRequest;

                    /**
                     * Verifies a TestIamPermissionsInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstantSnapshotRequest. */
                interface ITestIamPermissionsInstantSnapshotRequest {

                    /** TestIamPermissionsInstantSnapshotRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstantSnapshotRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsInstantSnapshotRequest. */
                class TestIamPermissionsInstantSnapshotRequest implements ITestIamPermissionsInstantSnapshotRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsInstantSnapshotRequest);

                    /** TestIamPermissionsInstantSnapshotRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstantSnapshotRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstantSnapshotRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsInstantSnapshotRequest): google.cloud.compute.v1.TestIamPermissionsInstantSnapshotRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInstantSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInstantSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsInstantSnapshotRequest;

                    /**
                     * Decodes a TestIamPermissionsInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsInstantSnapshotRequest;

                    /**
                     * Verifies a TestIamPermissionsInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInterconnectAttachmentGroupRequest. */
                interface ITestIamPermissionsInterconnectAttachmentGroupRequest {

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsInterconnectAttachmentGroupRequest. */
                class TestIamPermissionsInterconnectAttachmentGroupRequest implements ITestIamPermissionsInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsInterconnectAttachmentGroupRequest);

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsInterconnectAttachmentGroupRequest): google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInterconnectGroupRequest. */
                interface ITestIamPermissionsInterconnectGroupRequest {

                    /** TestIamPermissionsInterconnectGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInterconnectGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInterconnectGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsInterconnectGroupRequest. */
                class TestIamPermissionsInterconnectGroupRequest implements ITestIamPermissionsInterconnectGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsInterconnectGroupRequest);

                    /** TestIamPermissionsInterconnectGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsInterconnectGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInterconnectGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsInterconnectGroupRequest): google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsLicenseCodeRequest. */
                interface ITestIamPermissionsLicenseCodeRequest {

                    /** TestIamPermissionsLicenseCodeRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsLicenseCodeRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsLicenseCodeRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsLicenseCodeRequest. */
                class TestIamPermissionsLicenseCodeRequest implements ITestIamPermissionsLicenseCodeRequest {

                    /**
                     * Constructs a new TestIamPermissionsLicenseCodeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsLicenseCodeRequest);

                    /** TestIamPermissionsLicenseCodeRequest project. */
                    public project: string;

                    /** TestIamPermissionsLicenseCodeRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsLicenseCodeRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsLicenseCodeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsLicenseCodeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsLicenseCodeRequest): google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest;

                    /**
                     * Encodes the specified TestIamPermissionsLicenseCodeRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest.verify|verify} messages.
                     * @param message TestIamPermissionsLicenseCodeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsLicenseCodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsLicenseCodeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest.verify|verify} messages.
                     * @param message TestIamPermissionsLicenseCodeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsLicenseCodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsLicenseCodeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsLicenseCodeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest;

                    /**
                     * Decodes a TestIamPermissionsLicenseCodeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsLicenseCodeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest;

                    /**
                     * Verifies a TestIamPermissionsLicenseCodeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsLicenseCodeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsLicenseCodeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsLicenseCodeRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsLicenseCodeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsLicenseCodeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsLicenseCodeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsLicenseRequest. */
                interface ITestIamPermissionsLicenseRequest {

                    /** TestIamPermissionsLicenseRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsLicenseRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsLicenseRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsLicenseRequest. */
                class TestIamPermissionsLicenseRequest implements ITestIamPermissionsLicenseRequest {

                    /**
                     * Constructs a new TestIamPermissionsLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsLicenseRequest);

                    /** TestIamPermissionsLicenseRequest project. */
                    public project: string;

                    /** TestIamPermissionsLicenseRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsLicenseRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsLicenseRequest): google.cloud.compute.v1.TestIamPermissionsLicenseRequest;

                    /**
                     * Encodes the specified TestIamPermissionsLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsLicenseRequest.verify|verify} messages.
                     * @param message TestIamPermissionsLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsLicenseRequest.verify|verify} messages.
                     * @param message TestIamPermissionsLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsLicenseRequest;

                    /**
                     * Decodes a TestIamPermissionsLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsLicenseRequest;

                    /**
                     * Verifies a TestIamPermissionsLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsLicenseRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsLicenseRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsMachineImageRequest. */
                interface ITestIamPermissionsMachineImageRequest {

                    /** TestIamPermissionsMachineImageRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsMachineImageRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsMachineImageRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsMachineImageRequest. */
                class TestIamPermissionsMachineImageRequest implements ITestIamPermissionsMachineImageRequest {

                    /**
                     * Constructs a new TestIamPermissionsMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsMachineImageRequest);

                    /** TestIamPermissionsMachineImageRequest project. */
                    public project: string;

                    /** TestIamPermissionsMachineImageRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsMachineImageRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsMachineImageRequest): google.cloud.compute.v1.TestIamPermissionsMachineImageRequest;

                    /**
                     * Encodes the specified TestIamPermissionsMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsMachineImageRequest.verify|verify} messages.
                     * @param message TestIamPermissionsMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsMachineImageRequest.verify|verify} messages.
                     * @param message TestIamPermissionsMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsMachineImageRequest;

                    /**
                     * Decodes a TestIamPermissionsMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsMachineImageRequest;

                    /**
                     * Verifies a TestIamPermissionsMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsMachineImageRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsMachineImageRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNetworkAttachmentRequest. */
                interface ITestIamPermissionsNetworkAttachmentRequest {

                    /** TestIamPermissionsNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsNetworkAttachmentRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNetworkAttachmentRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsNetworkAttachmentRequest. */
                class TestIamPermissionsNetworkAttachmentRequest implements ITestIamPermissionsNetworkAttachmentRequest {

                    /**
                     * Constructs a new TestIamPermissionsNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsNetworkAttachmentRequest);

                    /** TestIamPermissionsNetworkAttachmentRequest project. */
                    public project: string;

                    /** TestIamPermissionsNetworkAttachmentRequest region. */
                    public region: string;

                    /** TestIamPermissionsNetworkAttachmentRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNetworkAttachmentRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsNetworkAttachmentRequest): google.cloud.compute.v1.TestIamPermissionsNetworkAttachmentRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNetworkAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNetworkAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsNetworkAttachmentRequest;

                    /**
                     * Decodes a TestIamPermissionsNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsNetworkAttachmentRequest;

                    /**
                     * Verifies a TestIamPermissionsNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNetworkEndpointGroupRequest. */
                interface ITestIamPermissionsNetworkEndpointGroupRequest {

                    /** TestIamPermissionsNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNetworkEndpointGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNetworkEndpointGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsNetworkEndpointGroupRequest. */
                class TestIamPermissionsNetworkEndpointGroupRequest implements ITestIamPermissionsNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsNetworkEndpointGroupRequest);

                    /** TestIamPermissionsNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsNetworkEndpointGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNetworkEndpointGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsNetworkEndpointGroupRequest): google.cloud.compute.v1.TestIamPermissionsNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsNetworkEndpointGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsNetworkEndpointGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNetworkFirewallPolicyRequest. */
                interface ITestIamPermissionsNetworkFirewallPolicyRequest {

                    /** TestIamPermissionsNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNetworkFirewallPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsNetworkFirewallPolicyRequest. */
                class TestIamPermissionsNetworkFirewallPolicyRequest implements ITestIamPermissionsNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsNetworkFirewallPolicyRequest);

                    /** TestIamPermissionsNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNetworkFirewallPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsNetworkFirewallPolicyRequest): google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNodeGroupRequest. */
                interface ITestIamPermissionsNodeGroupRequest {

                    /** TestIamPermissionsNodeGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNodeGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNodeGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsNodeGroupRequest. */
                class TestIamPermissionsNodeGroupRequest implements ITestIamPermissionsNodeGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsNodeGroupRequest);

                    /** TestIamPermissionsNodeGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsNodeGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNodeGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsNodeGroupRequest): google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNodeTemplateRequest. */
                interface ITestIamPermissionsNodeTemplateRequest {

                    /** TestIamPermissionsNodeTemplateRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNodeTemplateRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsNodeTemplateRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNodeTemplateRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsNodeTemplateRequest. */
                class TestIamPermissionsNodeTemplateRequest implements ITestIamPermissionsNodeTemplateRequest {

                    /**
                     * Constructs a new TestIamPermissionsNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsNodeTemplateRequest);

                    /** TestIamPermissionsNodeTemplateRequest project. */
                    public project: string;

                    /** TestIamPermissionsNodeTemplateRequest region. */
                    public region: string;

                    /** TestIamPermissionsNodeTemplateRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNodeTemplateRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsNodeTemplateRequest): google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest;

                    /**
                     * Decodes a TestIamPermissionsNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest;

                    /**
                     * Verifies a TestIamPermissionsNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsPacketMirroringRequest. */
                interface ITestIamPermissionsPacketMirroringRequest {

                    /** TestIamPermissionsPacketMirroringRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsPacketMirroringRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsPacketMirroringRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsPacketMirroringRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsPacketMirroringRequest. */
                class TestIamPermissionsPacketMirroringRequest implements ITestIamPermissionsPacketMirroringRequest {

                    /**
                     * Constructs a new TestIamPermissionsPacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsPacketMirroringRequest);

                    /** TestIamPermissionsPacketMirroringRequest project. */
                    public project: string;

                    /** TestIamPermissionsPacketMirroringRequest region. */
                    public region: string;

                    /** TestIamPermissionsPacketMirroringRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsPacketMirroringRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsPacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsPacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsPacketMirroringRequest): google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest;

                    /**
                     * Encodes the specified TestIamPermissionsPacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest.verify|verify} messages.
                     * @param message TestIamPermissionsPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsPacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest.verify|verify} messages.
                     * @param message TestIamPermissionsPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsPacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest;

                    /**
                     * Decodes a TestIamPermissionsPacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest;

                    /**
                     * Verifies a TestIamPermissionsPacketMirroringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsPacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsPacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsPacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsPacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsPacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsPacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionAutoscalerRequest. */
                interface ITestIamPermissionsRegionAutoscalerRequest {

                    /** TestIamPermissionsRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionAutoscalerRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionAutoscalerRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionAutoscalerRequest. */
                class TestIamPermissionsRegionAutoscalerRequest implements ITestIamPermissionsRegionAutoscalerRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionAutoscalerRequest);

                    /** TestIamPermissionsRegionAutoscalerRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionAutoscalerRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionAutoscalerRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionAutoscalerRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionAutoscalerRequest): google.cloud.compute.v1.TestIamPermissionsRegionAutoscalerRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionAutoscalerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionAutoscalerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionAutoscalerRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionAutoscalerRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionBackendServiceRequest. */
                interface ITestIamPermissionsRegionBackendServiceRequest {

                    /** TestIamPermissionsRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionBackendServiceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionBackendServiceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionBackendServiceRequest. */
                class TestIamPermissionsRegionBackendServiceRequest implements ITestIamPermissionsRegionBackendServiceRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionBackendServiceRequest);

                    /** TestIamPermissionsRegionBackendServiceRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionBackendServiceRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionBackendServiceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionBackendServiceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionBackendServiceRequest): google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionCompositeHealthCheckRequest. */
                interface ITestIamPermissionsRegionCompositeHealthCheckRequest {

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionCompositeHealthCheckRequest. */
                class TestIamPermissionsRegionCompositeHealthCheckRequest implements ITestIamPermissionsRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionCompositeHealthCheckRequest);

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionCompositeHealthCheckRequest): google.cloud.compute.v1.TestIamPermissionsRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionCompositeHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionDiskRequest. */
                interface ITestIamPermissionsRegionDiskRequest {

                    /** TestIamPermissionsRegionDiskRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionDiskRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionDiskRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionDiskRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionDiskRequest. */
                class TestIamPermissionsRegionDiskRequest implements ITestIamPermissionsRegionDiskRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionDiskRequest);

                    /** TestIamPermissionsRegionDiskRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionDiskRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionDiskRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionDiskRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionDiskRequest): google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionHealthAggregationPolicyRequest. */
                interface ITestIamPermissionsRegionHealthAggregationPolicyRequest {

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionHealthAggregationPolicyRequest. */
                class TestIamPermissionsRegionHealthAggregationPolicyRequest implements ITestIamPermissionsRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionHealthAggregationPolicyRequest);

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionHealthAggregationPolicyRequest): google.cloud.compute.v1.TestIamPermissionsRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionHealthAggregationPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionHealthCheckRequest. */
                interface ITestIamPermissionsRegionHealthCheckRequest {

                    /** TestIamPermissionsRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionHealthCheckRequest. */
                class TestIamPermissionsRegionHealthCheckRequest implements ITestIamPermissionsRegionHealthCheckRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckRequest);

                    /** TestIamPermissionsRegionHealthCheckRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionHealthCheckRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionHealthCheckRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionHealthCheckRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckRequest): google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionHealthCheckServiceRequest. */
                interface ITestIamPermissionsRegionHealthCheckServiceRequest {

                    /** TestIamPermissionsRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckServiceRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckServiceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckServiceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionHealthCheckServiceRequest. */
                class TestIamPermissionsRegionHealthCheckServiceRequest implements ITestIamPermissionsRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckServiceRequest);

                    /** TestIamPermissionsRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionHealthCheckServiceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionHealthCheckServiceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckServiceRequest): google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckServiceRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckServiceRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionHealthCheckServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionHealthSourceRequest. */
                interface ITestIamPermissionsRegionHealthSourceRequest {

                    /** TestIamPermissionsRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionHealthSourceRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionHealthSourceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionHealthSourceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionHealthSourceRequest. */
                class TestIamPermissionsRegionHealthSourceRequest implements ITestIamPermissionsRegionHealthSourceRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionHealthSourceRequest);

                    /** TestIamPermissionsRegionHealthSourceRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionHealthSourceRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionHealthSourceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionHealthSourceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionHealthSourceRequest): google.cloud.compute.v1.TestIamPermissionsRegionHealthSourceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionHealthSourceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionHealthSourceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionHealthSourceRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionHealthSourceRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionHealthSourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionInstanceGroupRequest. */
                interface ITestIamPermissionsRegionInstanceGroupRequest {

                    /** TestIamPermissionsRegionInstanceGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionInstanceGroupRequest. */
                class TestIamPermissionsRegionInstanceGroupRequest implements ITestIamPermissionsRegionInstanceGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionInstanceGroupRequest);

                    /** TestIamPermissionsRegionInstanceGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionInstanceGroupRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionInstanceGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionInstanceGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionInstanceGroupRequest): google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionInstantSnapshotRequest. */
                interface ITestIamPermissionsRegionInstantSnapshotRequest {

                    /** TestIamPermissionsRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionInstantSnapshotRequest. */
                class TestIamPermissionsRegionInstantSnapshotRequest implements ITestIamPermissionsRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionInstantSnapshotRequest);

                    /** TestIamPermissionsRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionInstantSnapshotRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionInstantSnapshotRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionInstantSnapshotRequest): google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionNetworkFirewallPolicyRequest. */
                interface ITestIamPermissionsRegionNetworkFirewallPolicyRequest {

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionNetworkFirewallPolicyRequest. */
                class TestIamPermissionsRegionNetworkFirewallPolicyRequest implements ITestIamPermissionsRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionNetworkFirewallPolicyRequest);

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1.TestIamPermissionsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionNotificationEndpointRequest. */
                interface ITestIamPermissionsRegionNotificationEndpointRequest {

                    /** TestIamPermissionsRegionNotificationEndpointRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionNotificationEndpointRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionNotificationEndpointRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionNotificationEndpointRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionNotificationEndpointRequest. */
                class TestIamPermissionsRegionNotificationEndpointRequest implements ITestIamPermissionsRegionNotificationEndpointRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionNotificationEndpointRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionNotificationEndpointRequest);

                    /** TestIamPermissionsRegionNotificationEndpointRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionNotificationEndpointRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionNotificationEndpointRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionNotificationEndpointRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionNotificationEndpointRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionNotificationEndpointRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRegionNotificationEndpointRequest): google.cloud.compute.v1.TestIamPermissionsRegionNotificationEndpointRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionNotificationEndpointRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionNotificationEndpointRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionNotificationEndpointRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRegionNotificationEndpointRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionNotificationEndpointRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRegionNotificationEndpointRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionNotificationEndpointRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionNotificationEndpointRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionNotificationEndpointRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRegionNotificationEndpointRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionNotificationEndpointRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionNotificationEndpointRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRegionNotificationEndpointRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionNotificationEndpointRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionNotificationEndpointRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsReservationBlockRequest. */
                interface ITestIamPermissionsReservationBlockRequest {

                    /** TestIamPermissionsReservationBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** TestIamPermissionsReservationBlockRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsReservationBlockRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsReservationBlockRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsReservationBlockRequest. */
                class TestIamPermissionsReservationBlockRequest implements ITestIamPermissionsReservationBlockRequest {

                    /**
                     * Constructs a new TestIamPermissionsReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsReservationBlockRequest);

                    /** TestIamPermissionsReservationBlockRequest parentResource. */
                    public parentResource: string;

                    /** TestIamPermissionsReservationBlockRequest project. */
                    public project: string;

                    /** TestIamPermissionsReservationBlockRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsReservationBlockRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsReservationBlockRequest): google.cloud.compute.v1.TestIamPermissionsReservationBlockRequest;

                    /**
                     * Encodes the specified TestIamPermissionsReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsReservationBlockRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsReservationBlockRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsReservationBlockRequest;

                    /**
                     * Decodes a TestIamPermissionsReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsReservationBlockRequest;

                    /**
                     * Verifies a TestIamPermissionsReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsReservationBlockRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsReservationRequest. */
                interface ITestIamPermissionsReservationRequest {

                    /** TestIamPermissionsReservationRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsReservationRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsReservationRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsReservationRequest. */
                class TestIamPermissionsReservationRequest implements ITestIamPermissionsReservationRequest {

                    /**
                     * Constructs a new TestIamPermissionsReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsReservationRequest);

                    /** TestIamPermissionsReservationRequest project. */
                    public project: string;

                    /** TestIamPermissionsReservationRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsReservationRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsReservationRequest): google.cloud.compute.v1.TestIamPermissionsReservationRequest;

                    /**
                     * Encodes the specified TestIamPermissionsReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsReservationRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsReservationRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsReservationRequest;

                    /**
                     * Decodes a TestIamPermissionsReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsReservationRequest;

                    /**
                     * Verifies a TestIamPermissionsReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsReservationRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsReservationRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsReservationSubBlockRequest. */
                interface ITestIamPermissionsReservationSubBlockRequest {

                    /** TestIamPermissionsReservationSubBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** TestIamPermissionsReservationSubBlockRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsReservationSubBlockRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsReservationSubBlockRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsReservationSubBlockRequest. */
                class TestIamPermissionsReservationSubBlockRequest implements ITestIamPermissionsReservationSubBlockRequest {

                    /**
                     * Constructs a new TestIamPermissionsReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsReservationSubBlockRequest);

                    /** TestIamPermissionsReservationSubBlockRequest parentResource. */
                    public parentResource: string;

                    /** TestIamPermissionsReservationSubBlockRequest project. */
                    public project: string;

                    /** TestIamPermissionsReservationSubBlockRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsReservationSubBlockRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsReservationSubBlockRequest): google.cloud.compute.v1.TestIamPermissionsReservationSubBlockRequest;

                    /**
                     * Encodes the specified TestIamPermissionsReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsReservationSubBlockRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsReservationSubBlockRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsReservationSubBlockRequest;

                    /**
                     * Decodes a TestIamPermissionsReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsReservationSubBlockRequest;

                    /**
                     * Verifies a TestIamPermissionsReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsResourcePolicyRequest. */
                interface ITestIamPermissionsResourcePolicyRequest {

                    /** TestIamPermissionsResourcePolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsResourcePolicyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsResourcePolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsResourcePolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsResourcePolicyRequest. */
                class TestIamPermissionsResourcePolicyRequest implements ITestIamPermissionsResourcePolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsResourcePolicyRequest);

                    /** TestIamPermissionsResourcePolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsResourcePolicyRequest region. */
                    public region: string;

                    /** TestIamPermissionsResourcePolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsResourcePolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsResourcePolicyRequest): google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRouteRequest. */
                interface ITestIamPermissionsRouteRequest {

                    /** TestIamPermissionsRouteRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRouteRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRouteRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRouteRequest. */
                class TestIamPermissionsRouteRequest implements ITestIamPermissionsRouteRequest {

                    /**
                     * Constructs a new TestIamPermissionsRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsRouteRequest);

                    /** TestIamPermissionsRouteRequest project. */
                    public project: string;

                    /** TestIamPermissionsRouteRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRouteRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRouteRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsRouteRequest): google.cloud.compute.v1.TestIamPermissionsRouteRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRouteRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRouteRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRouteRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsRouteRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsRouteRequest;

                    /**
                     * Decodes a TestIamPermissionsRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsRouteRequest;

                    /**
                     * Verifies a TestIamPermissionsRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsRouteRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRouteRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsServiceAttachmentRequest. */
                interface ITestIamPermissionsServiceAttachmentRequest {

                    /** TestIamPermissionsServiceAttachmentRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsServiceAttachmentRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsServiceAttachmentRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsServiceAttachmentRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsServiceAttachmentRequest. */
                class TestIamPermissionsServiceAttachmentRequest implements ITestIamPermissionsServiceAttachmentRequest {

                    /**
                     * Constructs a new TestIamPermissionsServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsServiceAttachmentRequest);

                    /** TestIamPermissionsServiceAttachmentRequest project. */
                    public project: string;

                    /** TestIamPermissionsServiceAttachmentRequest region. */
                    public region: string;

                    /** TestIamPermissionsServiceAttachmentRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsServiceAttachmentRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsServiceAttachmentRequest): google.cloud.compute.v1.TestIamPermissionsServiceAttachmentRequest;

                    /**
                     * Encodes the specified TestIamPermissionsServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsServiceAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsServiceAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsServiceAttachmentRequest;

                    /**
                     * Decodes a TestIamPermissionsServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsServiceAttachmentRequest;

                    /**
                     * Verifies a TestIamPermissionsServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsSnapshotRequest. */
                interface ITestIamPermissionsSnapshotRequest {

                    /** TestIamPermissionsSnapshotRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsSnapshotRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsSnapshotRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsSnapshotRequest. */
                class TestIamPermissionsSnapshotRequest implements ITestIamPermissionsSnapshotRequest {

                    /**
                     * Constructs a new TestIamPermissionsSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsSnapshotRequest);

                    /** TestIamPermissionsSnapshotRequest project. */
                    public project: string;

                    /** TestIamPermissionsSnapshotRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsSnapshotRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsSnapshotRequest): google.cloud.compute.v1.TestIamPermissionsSnapshotRequest;

                    /**
                     * Encodes the specified TestIamPermissionsSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsSnapshotRequest;

                    /**
                     * Decodes a TestIamPermissionsSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsSnapshotRequest;

                    /**
                     * Verifies a TestIamPermissionsSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsSnapshotRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsSnapshotRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsStoragePoolRequest. */
                interface ITestIamPermissionsStoragePoolRequest {

                    /** TestIamPermissionsStoragePoolRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsStoragePoolRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsStoragePoolRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsStoragePoolRequest. */
                class TestIamPermissionsStoragePoolRequest implements ITestIamPermissionsStoragePoolRequest {

                    /**
                     * Constructs a new TestIamPermissionsStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsStoragePoolRequest);

                    /** TestIamPermissionsStoragePoolRequest project. */
                    public project: string;

                    /** TestIamPermissionsStoragePoolRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsStoragePoolRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsStoragePoolRequest): google.cloud.compute.v1.TestIamPermissionsStoragePoolRequest;

                    /**
                     * Encodes the specified TestIamPermissionsStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsStoragePoolRequest.verify|verify} messages.
                     * @param message TestIamPermissionsStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsStoragePoolRequest.verify|verify} messages.
                     * @param message TestIamPermissionsStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsStoragePoolRequest;

                    /**
                     * Decodes a TestIamPermissionsStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsStoragePoolRequest;

                    /**
                     * Verifies a TestIamPermissionsStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsStoragePoolRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsSubnetworkRequest. */
                interface ITestIamPermissionsSubnetworkRequest {

                    /** TestIamPermissionsSubnetworkRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsSubnetworkRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsSubnetworkRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsSubnetworkRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsSubnetworkRequest. */
                class TestIamPermissionsSubnetworkRequest implements ITestIamPermissionsSubnetworkRequest {

                    /**
                     * Constructs a new TestIamPermissionsSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsSubnetworkRequest);

                    /** TestIamPermissionsSubnetworkRequest project. */
                    public project: string;

                    /** TestIamPermissionsSubnetworkRequest region. */
                    public region: string;

                    /** TestIamPermissionsSubnetworkRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsSubnetworkRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsSubnetworkRequest): google.cloud.compute.v1.TestIamPermissionsSubnetworkRequest;

                    /**
                     * Encodes the specified TestIamPermissionsSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsSubnetworkRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsSubnetworkRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsSubnetworkRequest;

                    /**
                     * Decodes a TestIamPermissionsSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsSubnetworkRequest;

                    /**
                     * Verifies a TestIamPermissionsSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsSubnetworkRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetInstanceRequest. */
                interface ITestIamPermissionsTargetInstanceRequest {

                    /** TestIamPermissionsTargetInstanceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetInstanceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetInstanceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsTargetInstanceRequest. */
                class TestIamPermissionsTargetInstanceRequest implements ITestIamPermissionsTargetInstanceRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsTargetInstanceRequest);

                    /** TestIamPermissionsTargetInstanceRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetInstanceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetInstanceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /** TestIamPermissionsTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsTargetInstanceRequest): google.cloud.compute.v1.TestIamPermissionsTargetInstanceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsTargetInstanceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsTargetInstanceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsTargetInstanceRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsTargetInstanceRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsTargetInstanceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetPoolRequest. */
                interface ITestIamPermissionsTargetPoolRequest {

                    /** TestIamPermissionsTargetPoolRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetPoolRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsTargetPoolRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetPoolRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetPoolRequest. */
                class TestIamPermissionsTargetPoolRequest implements ITestIamPermissionsTargetPoolRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsTargetPoolRequest);

                    /** TestIamPermissionsTargetPoolRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetPoolRequest region. */
                    public region: string;

                    /** TestIamPermissionsTargetPoolRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetPoolRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsTargetPoolRequest): google.cloud.compute.v1.TestIamPermissionsTargetPoolRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsTargetPoolRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsTargetPoolRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsTargetPoolRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsTargetPoolRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsTargetPoolRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetSslProxyRequest. */
                interface ITestIamPermissionsTargetSslProxyRequest {

                    /** TestIamPermissionsTargetSslProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetSslProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetSslProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetSslProxyRequest. */
                class TestIamPermissionsTargetSslProxyRequest implements ITestIamPermissionsTargetSslProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsTargetSslProxyRequest);

                    /** TestIamPermissionsTargetSslProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetSslProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetSslProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsTargetSslProxyRequest): google.cloud.compute.v1.TestIamPermissionsTargetSslProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsTargetSslProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsTargetSslProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsTargetSslProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsTargetSslProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetTcpProxyRequest. */
                interface ITestIamPermissionsTargetTcpProxyRequest {

                    /** TestIamPermissionsTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetTcpProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetTcpProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetTcpProxyRequest. */
                class TestIamPermissionsTargetTcpProxyRequest implements ITestIamPermissionsTargetTcpProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsTargetTcpProxyRequest);

                    /** TestIamPermissionsTargetTcpProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetTcpProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetTcpProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsTargetTcpProxyRequest): google.cloud.compute.v1.TestIamPermissionsTargetTcpProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsTargetTcpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsTargetTcpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsTargetTcpProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsTargetTcpProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsUrlMapRequest. */
                interface ITestIamPermissionsUrlMapRequest {

                    /** TestIamPermissionsUrlMapRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsUrlMapRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsUrlMapRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsUrlMapRequest. */
                class TestIamPermissionsUrlMapRequest implements ITestIamPermissionsUrlMapRequest {

                    /**
                     * Constructs a new TestIamPermissionsUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsUrlMapRequest);

                    /** TestIamPermissionsUrlMapRequest project. */
                    public project: string;

                    /** TestIamPermissionsUrlMapRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsUrlMapRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsUrlMapRequest): google.cloud.compute.v1.TestIamPermissionsUrlMapRequest;

                    /**
                     * Encodes the specified TestIamPermissionsUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsUrlMapRequest.verify|verify} messages.
                     * @param message TestIamPermissionsUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsUrlMapRequest.verify|verify} messages.
                     * @param message TestIamPermissionsUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsUrlMapRequest;

                    /**
                     * Decodes a TestIamPermissionsUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsUrlMapRequest;

                    /**
                     * Verifies a TestIamPermissionsUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsUrlMapRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsUrlMapRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsVpnGatewayRequest. */
                interface ITestIamPermissionsVpnGatewayRequest {

                    /** TestIamPermissionsVpnGatewayRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsVpnGatewayRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsVpnGatewayRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsVpnGatewayRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsVpnGatewayRequest. */
                class TestIamPermissionsVpnGatewayRequest implements ITestIamPermissionsVpnGatewayRequest {

                    /**
                     * Constructs a new TestIamPermissionsVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestIamPermissionsVpnGatewayRequest);

                    /** TestIamPermissionsVpnGatewayRequest project. */
                    public project: string;

                    /** TestIamPermissionsVpnGatewayRequest region. */
                    public region: string;

                    /** TestIamPermissionsVpnGatewayRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsVpnGatewayRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestIamPermissionsVpnGatewayRequest): google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest;

                    /**
                     * Encodes the specified TestIamPermissionsVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestIamPermissionsVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestIamPermissionsVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest;

                    /**
                     * Decodes a TestIamPermissionsVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest;

                    /**
                     * Verifies a TestIamPermissionsVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestPermissionsRequest. */
                interface ITestPermissionsRequest {

                    /** TestPermissionsRequest permissions */
                    permissions?: (string[]|null);
                }

                /** Represents a TestPermissionsRequest. */
                class TestPermissionsRequest implements ITestPermissionsRequest {

                    /**
                     * Constructs a new TestPermissionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestPermissionsRequest);

                    /** TestPermissionsRequest permissions. */
                    public permissions: string[];

                    /**
                     * Creates a new TestPermissionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestPermissionsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestPermissionsRequest): google.cloud.compute.v1.TestPermissionsRequest;

                    /**
                     * Encodes the specified TestPermissionsRequest message. Does not implicitly {@link google.cloud.compute.v1.TestPermissionsRequest.verify|verify} messages.
                     * @param message TestPermissionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestPermissionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestPermissionsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestPermissionsRequest.verify|verify} messages.
                     * @param message TestPermissionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestPermissionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestPermissionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestPermissionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestPermissionsRequest;

                    /**
                     * Decodes a TestPermissionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestPermissionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestPermissionsRequest;

                    /**
                     * Verifies a TestPermissionsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestPermissionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestPermissionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestPermissionsRequest;

                    /**
                     * Creates a plain object from a TestPermissionsRequest message. Also converts values to other types if specified.
                     * @param message TestPermissionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestPermissionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestPermissionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestPermissionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestPermissionsResponse. */
                interface ITestPermissionsResponse {

                    /** TestPermissionsResponse permissions */
                    permissions?: (string[]|null);
                }

                /** Represents a TestPermissionsResponse. */
                class TestPermissionsResponse implements ITestPermissionsResponse {

                    /**
                     * Constructs a new TestPermissionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.ITestPermissionsResponse);

                    /** TestPermissionsResponse permissions. */
                    public permissions: string[];

                    /**
                     * Creates a new TestPermissionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestPermissionsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.ITestPermissionsResponse): google.cloud.compute.v1.TestPermissionsResponse;

                    /**
                     * Encodes the specified TestPermissionsResponse message. Does not implicitly {@link google.cloud.compute.v1.TestPermissionsResponse.verify|verify} messages.
                     * @param message TestPermissionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.ITestPermissionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestPermissionsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.TestPermissionsResponse.verify|verify} messages.
                     * @param message TestPermissionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.ITestPermissionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestPermissionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestPermissionsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.TestPermissionsResponse;

                    /**
                     * Decodes a TestPermissionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestPermissionsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.TestPermissionsResponse;

                    /**
                     * Verifies a TestPermissionsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestPermissionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestPermissionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.TestPermissionsResponse;

                    /**
                     * Creates a plain object from a TestPermissionsResponse message. Also converts values to other types if specified.
                     * @param message TestPermissionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.TestPermissionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestPermissionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestPermissionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Uint128. */
                interface IUint128 {

                    /** Uint128 high */
                    high?: (number|Long|string|null);

                    /** Uint128 low */
                    low?: (number|Long|string|null);
                }

                /** Represents an Uint128. */
                class Uint128 implements IUint128 {

                    /**
                     * Constructs a new Uint128.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUint128);

                    /** Uint128 high. */
                    public high?: (number|Long|string|null);

                    /** Uint128 low. */
                    public low?: (number|Long|string|null);

                    /**
                     * Creates a new Uint128 instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Uint128 instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUint128): google.cloud.compute.v1.Uint128;

                    /**
                     * Encodes the specified Uint128 message. Does not implicitly {@link google.cloud.compute.v1.Uint128.verify|verify} messages.
                     * @param message Uint128 message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUint128, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Uint128 message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Uint128.verify|verify} messages.
                     * @param message Uint128 message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUint128, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Uint128 message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Uint128
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Uint128;

                    /**
                     * Decodes an Uint128 message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Uint128
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Uint128;

                    /**
                     * Verifies an Uint128 message.
                     * @param message Plain 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 Uint128 message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Uint128
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Uint128;

                    /**
                     * Creates a plain object from an Uint128 message. Also converts values to other types if specified.
                     * @param message Uint128
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Uint128, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Uint128 to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Uint128
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpcomingMaintenance. */
                interface IUpcomingMaintenance {

                    /** UpcomingMaintenance canReschedule */
                    canReschedule?: (boolean|null);

                    /** UpcomingMaintenance latestWindowStartTime */
                    latestWindowStartTime?: (string|null);

                    /** UpcomingMaintenance maintenanceOnShutdown */
                    maintenanceOnShutdown?: (boolean|null);

                    /** UpcomingMaintenance maintenanceReasons */
                    maintenanceReasons?: (string[]|null);

                    /** UpcomingMaintenance maintenanceStatus */
                    maintenanceStatus?: (string|null);

                    /** UpcomingMaintenance type */
                    type?: (string|null);

                    /** UpcomingMaintenance windowEndTime */
                    windowEndTime?: (string|null);

                    /** UpcomingMaintenance windowStartTime */
                    windowStartTime?: (string|null);
                }

                /** Represents an UpcomingMaintenance. */
                class UpcomingMaintenance implements IUpcomingMaintenance {

                    /**
                     * Constructs a new UpcomingMaintenance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpcomingMaintenance);

                    /** UpcomingMaintenance canReschedule. */
                    public canReschedule?: (boolean|null);

                    /** UpcomingMaintenance latestWindowStartTime. */
                    public latestWindowStartTime?: (string|null);

                    /** UpcomingMaintenance maintenanceOnShutdown. */
                    public maintenanceOnShutdown?: (boolean|null);

                    /** UpcomingMaintenance maintenanceReasons. */
                    public maintenanceReasons: string[];

                    /** UpcomingMaintenance maintenanceStatus. */
                    public maintenanceStatus?: (string|null);

                    /** UpcomingMaintenance type. */
                    public type?: (string|null);

                    /** UpcomingMaintenance windowEndTime. */
                    public windowEndTime?: (string|null);

                    /** UpcomingMaintenance windowStartTime. */
                    public windowStartTime?: (string|null);

                    /**
                     * Creates a new UpcomingMaintenance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpcomingMaintenance instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpcomingMaintenance): google.cloud.compute.v1.UpcomingMaintenance;

                    /**
                     * Encodes the specified UpcomingMaintenance message. Does not implicitly {@link google.cloud.compute.v1.UpcomingMaintenance.verify|verify} messages.
                     * @param message UpcomingMaintenance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpcomingMaintenance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpcomingMaintenance message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpcomingMaintenance.verify|verify} messages.
                     * @param message UpcomingMaintenance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpcomingMaintenance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpcomingMaintenance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpcomingMaintenance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpcomingMaintenance;

                    /**
                     * Decodes an UpcomingMaintenance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpcomingMaintenance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpcomingMaintenance;

                    /**
                     * Verifies an UpcomingMaintenance message.
                     * @param message Plain 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 UpcomingMaintenance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpcomingMaintenance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpcomingMaintenance;

                    /**
                     * Creates a plain object from an UpcomingMaintenance message. Also converts values to other types if specified.
                     * @param message UpcomingMaintenance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpcomingMaintenance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpcomingMaintenance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpcomingMaintenance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace UpcomingMaintenance {

                    /** MaintenanceReasons enum. */
                    enum MaintenanceReasons {
                        UNDEFINED_MAINTENANCE_REASONS = 0,
                        FAILURE_DISK = 8573778,
                        FAILURE_GPU = 467876919,
                        FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED = 223284959,
                        FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED = 88487838,
                        FAILURE_GPU_TEMPERATURE = 24926540,
                        FAILURE_GPU_XID = 51956587,
                        FAILURE_INFRA = 270541467,
                        FAILURE_INTERFACE = 390068356,
                        FAILURE_MEMORY = 440132982,
                        FAILURE_NETWORK = 42811449,
                        FAILURE_NVLINK = 484426295,
                        FAILURE_REDUNDANT_HARDWARE_FAULT = 31000530,
                        FAILURE_TPU = 467889412,
                        INFRASTRUCTURE_RELOCATION = 359845636,
                        MAINTENANCE_REASON_UNKNOWN = 50570235,
                        PLANNED_NETWORK_UPDATE = 135494677,
                        PLANNED_UPDATE = 161733572
                    }

                    /** MaintenanceStatus enum. */
                    enum MaintenanceStatus {
                        UNDEFINED_MAINTENANCE_STATUS = 0,
                        ONGOING = 473158491,
                        PENDING = 35394935,
                        UNKNOWN = 433141802
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        MULTIPLE = 362714640,
                        SCHEDULED = 478400653,
                        UNKNOWN_TYPE = 490705455,
                        UNSCHEDULED = 450077204
                    }
                }

                /** Properties of an UpdateAccessConfigInstanceRequest. */
                interface IUpdateAccessConfigInstanceRequest {

                    /** UpdateAccessConfigInstanceRequest accessConfigResource */
                    accessConfigResource?: (google.cloud.compute.v1.IAccessConfig|null);

                    /** UpdateAccessConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateAccessConfigInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** UpdateAccessConfigInstanceRequest project */
                    project?: (string|null);

                    /** UpdateAccessConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateAccessConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateAccessConfigInstanceRequest. */
                class UpdateAccessConfigInstanceRequest implements IUpdateAccessConfigInstanceRequest {

                    /**
                     * Constructs a new UpdateAccessConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateAccessConfigInstanceRequest);

                    /** UpdateAccessConfigInstanceRequest accessConfigResource. */
                    public accessConfigResource?: (google.cloud.compute.v1.IAccessConfig|null);

                    /** UpdateAccessConfigInstanceRequest instance. */
                    public instance: string;

                    /** UpdateAccessConfigInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** UpdateAccessConfigInstanceRequest project. */
                    public project: string;

                    /** UpdateAccessConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateAccessConfigInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateAccessConfigInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateAccessConfigInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateAccessConfigInstanceRequest): google.cloud.compute.v1.UpdateAccessConfigInstanceRequest;

                    /**
                     * Encodes the specified UpdateAccessConfigInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateAccessConfigInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateAccessConfigInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateAccessConfigInstanceRequest;

                    /**
                     * Decodes an UpdateAccessConfigInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateAccessConfigInstanceRequest;

                    /**
                     * Verifies an UpdateAccessConfigInstanceRequest message.
                     * @param message Plain 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 UpdateAccessConfigInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateAccessConfigInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateAccessConfigInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateAccessConfigInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateAccessConfigInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateAccessConfigInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateAccessConfigInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateAccessConfigInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateAutoscalerRequest. */
                interface IUpdateAutoscalerRequest {

                    /** UpdateAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** UpdateAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** UpdateAutoscalerRequest project */
                    project?: (string|null);

                    /** UpdateAutoscalerRequest requestId */
                    requestId?: (string|null);

                    /** UpdateAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateAutoscalerRequest. */
                class UpdateAutoscalerRequest implements IUpdateAutoscalerRequest {

                    /**
                     * Constructs a new UpdateAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateAutoscalerRequest);

                    /** UpdateAutoscalerRequest autoscaler. */
                    public autoscaler?: (string|null);

                    /** UpdateAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** UpdateAutoscalerRequest project. */
                    public project: string;

                    /** UpdateAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateAutoscalerRequest): google.cloud.compute.v1.UpdateAutoscalerRequest;

                    /**
                     * Encodes the specified UpdateAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateAutoscalerRequest.verify|verify} messages.
                     * @param message UpdateAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateAutoscalerRequest.verify|verify} messages.
                     * @param message UpdateAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateAutoscalerRequest;

                    /**
                     * Decodes an UpdateAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateAutoscalerRequest;

                    /**
                     * Verifies an UpdateAutoscalerRequest message.
                     * @param message Plain 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 UpdateAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateAutoscalerRequest;

                    /**
                     * Creates a plain object from an UpdateAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message UpdateAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateBackendBucketRequest. */
                interface IUpdateBackendBucketRequest {

                    /** UpdateBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** UpdateBackendBucketRequest backendBucketResource */
                    backendBucketResource?: (google.cloud.compute.v1.IBackendBucket|null);

                    /** UpdateBackendBucketRequest project */
                    project?: (string|null);

                    /** UpdateBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateBackendBucketRequest. */
                class UpdateBackendBucketRequest implements IUpdateBackendBucketRequest {

                    /**
                     * Constructs a new UpdateBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateBackendBucketRequest);

                    /** UpdateBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** UpdateBackendBucketRequest backendBucketResource. */
                    public backendBucketResource?: (google.cloud.compute.v1.IBackendBucket|null);

                    /** UpdateBackendBucketRequest project. */
                    public project: string;

                    /** UpdateBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateBackendBucketRequest): google.cloud.compute.v1.UpdateBackendBucketRequest;

                    /**
                     * Encodes the specified UpdateBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateBackendBucketRequest.verify|verify} messages.
                     * @param message UpdateBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateBackendBucketRequest.verify|verify} messages.
                     * @param message UpdateBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateBackendBucketRequest;

                    /**
                     * Decodes an UpdateBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateBackendBucketRequest;

                    /**
                     * Verifies an UpdateBackendBucketRequest message.
                     * @param message Plain 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 UpdateBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateBackendBucketRequest;

                    /**
                     * Creates a plain object from an UpdateBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message UpdateBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateBackendServiceRequest. */
                interface IUpdateBackendServiceRequest {

                    /** UpdateBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** UpdateBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** UpdateBackendServiceRequest project */
                    project?: (string|null);

                    /** UpdateBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateBackendServiceRequest. */
                class UpdateBackendServiceRequest implements IUpdateBackendServiceRequest {

                    /**
                     * Constructs a new UpdateBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateBackendServiceRequest);

                    /** UpdateBackendServiceRequest backendService. */
                    public backendService: string;

                    /** UpdateBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** UpdateBackendServiceRequest project. */
                    public project: string;

                    /** UpdateBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateBackendServiceRequest): google.cloud.compute.v1.UpdateBackendServiceRequest;

                    /**
                     * Encodes the specified UpdateBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateBackendServiceRequest.verify|verify} messages.
                     * @param message UpdateBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateBackendServiceRequest.verify|verify} messages.
                     * @param message UpdateBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateBackendServiceRequest;

                    /**
                     * Decodes an UpdateBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateBackendServiceRequest;

                    /**
                     * Verifies an UpdateBackendServiceRequest message.
                     * @param message Plain 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 UpdateBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateBackendServiceRequest;

                    /**
                     * Creates a plain object from an UpdateBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message UpdateBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateDiskRequest. */
                interface IUpdateDiskRequest {

                    /** UpdateDiskRequest disk */
                    disk?: (string|null);

                    /** UpdateDiskRequest diskResource */
                    diskResource?: (google.cloud.compute.v1.IDisk|null);

                    /** UpdateDiskRequest paths */
                    paths?: (string|null);

                    /** UpdateDiskRequest project */
                    project?: (string|null);

                    /** UpdateDiskRequest requestId */
                    requestId?: (string|null);

                    /** UpdateDiskRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateDiskRequest. */
                class UpdateDiskRequest implements IUpdateDiskRequest {

                    /**
                     * Constructs a new UpdateDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateDiskRequest);

                    /** UpdateDiskRequest disk. */
                    public disk: string;

                    /** UpdateDiskRequest diskResource. */
                    public diskResource?: (google.cloud.compute.v1.IDisk|null);

                    /** UpdateDiskRequest paths. */
                    public paths?: (string|null);

                    /** UpdateDiskRequest project. */
                    public project: string;

                    /** UpdateDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateDiskRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateDiskRequest): google.cloud.compute.v1.UpdateDiskRequest;

                    /**
                     * Encodes the specified UpdateDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateDiskRequest.verify|verify} messages.
                     * @param message UpdateDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateDiskRequest.verify|verify} messages.
                     * @param message UpdateDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateDiskRequest;

                    /**
                     * Decodes an UpdateDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateDiskRequest;

                    /**
                     * Verifies an UpdateDiskRequest message.
                     * @param message Plain 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 UpdateDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateDiskRequest;

                    /**
                     * Creates a plain object from an UpdateDiskRequest message. Also converts values to other types if specified.
                     * @param message UpdateDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateDisplayDeviceInstanceRequest. */
                interface IUpdateDisplayDeviceInstanceRequest {

                    /** UpdateDisplayDeviceInstanceRequest displayDeviceResource */
                    displayDeviceResource?: (google.cloud.compute.v1.IDisplayDevice|null);

                    /** UpdateDisplayDeviceInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateDisplayDeviceInstanceRequest project */
                    project?: (string|null);

                    /** UpdateDisplayDeviceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateDisplayDeviceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateDisplayDeviceInstanceRequest. */
                class UpdateDisplayDeviceInstanceRequest implements IUpdateDisplayDeviceInstanceRequest {

                    /**
                     * Constructs a new UpdateDisplayDeviceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateDisplayDeviceInstanceRequest);

                    /** UpdateDisplayDeviceInstanceRequest displayDeviceResource. */
                    public displayDeviceResource?: (google.cloud.compute.v1.IDisplayDevice|null);

                    /** UpdateDisplayDeviceInstanceRequest instance. */
                    public instance: string;

                    /** UpdateDisplayDeviceInstanceRequest project. */
                    public project: string;

                    /** UpdateDisplayDeviceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateDisplayDeviceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateDisplayDeviceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateDisplayDeviceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateDisplayDeviceInstanceRequest): google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest;

                    /**
                     * Encodes the specified UpdateDisplayDeviceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest.verify|verify} messages.
                     * @param message UpdateDisplayDeviceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateDisplayDeviceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateDisplayDeviceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest.verify|verify} messages.
                     * @param message UpdateDisplayDeviceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateDisplayDeviceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateDisplayDeviceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateDisplayDeviceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest;

                    /**
                     * Decodes an UpdateDisplayDeviceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateDisplayDeviceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest;

                    /**
                     * Verifies an UpdateDisplayDeviceInstanceRequest message.
                     * @param message Plain 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 UpdateDisplayDeviceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateDisplayDeviceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateDisplayDeviceInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateDisplayDeviceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateDisplayDeviceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateDisplayDeviceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateFirewallRequest. */
                interface IUpdateFirewallRequest {

                    /** UpdateFirewallRequest firewall */
                    firewall?: (string|null);

                    /** UpdateFirewallRequest firewallResource */
                    firewallResource?: (google.cloud.compute.v1.IFirewall|null);

                    /** UpdateFirewallRequest project */
                    project?: (string|null);

                    /** UpdateFirewallRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateFirewallRequest. */
                class UpdateFirewallRequest implements IUpdateFirewallRequest {

                    /**
                     * Constructs a new UpdateFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateFirewallRequest);

                    /** UpdateFirewallRequest firewall. */
                    public firewall: string;

                    /** UpdateFirewallRequest firewallResource. */
                    public firewallResource?: (google.cloud.compute.v1.IFirewall|null);

                    /** UpdateFirewallRequest project. */
                    public project: string;

                    /** UpdateFirewallRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateFirewallRequest): google.cloud.compute.v1.UpdateFirewallRequest;

                    /**
                     * Encodes the specified UpdateFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateFirewallRequest.verify|verify} messages.
                     * @param message UpdateFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateFirewallRequest.verify|verify} messages.
                     * @param message UpdateFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateFirewallRequest;

                    /**
                     * Decodes an UpdateFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateFirewallRequest;

                    /**
                     * Verifies an UpdateFirewallRequest message.
                     * @param message Plain 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 UpdateFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateFirewallRequest;

                    /**
                     * Creates a plain object from an UpdateFirewallRequest message. Also converts values to other types if specified.
                     * @param message UpdateFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateFutureReservationRequest. */
                interface IUpdateFutureReservationRequest {

                    /** UpdateFutureReservationRequest futureReservation */
                    futureReservation?: (string|null);

                    /** UpdateFutureReservationRequest futureReservationResource */
                    futureReservationResource?: (google.cloud.compute.v1.IFutureReservation|null);

                    /** UpdateFutureReservationRequest project */
                    project?: (string|null);

                    /** UpdateFutureReservationRequest requestId */
                    requestId?: (string|null);

                    /** UpdateFutureReservationRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateFutureReservationRequest. */
                class UpdateFutureReservationRequest implements IUpdateFutureReservationRequest {

                    /**
                     * Constructs a new UpdateFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateFutureReservationRequest);

                    /** UpdateFutureReservationRequest futureReservation. */
                    public futureReservation: string;

                    /** UpdateFutureReservationRequest futureReservationResource. */
                    public futureReservationResource?: (google.cloud.compute.v1.IFutureReservation|null);

                    /** UpdateFutureReservationRequest project. */
                    public project: string;

                    /** UpdateFutureReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateFutureReservationRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateFutureReservationRequest): google.cloud.compute.v1.UpdateFutureReservationRequest;

                    /**
                     * Encodes the specified UpdateFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateFutureReservationRequest.verify|verify} messages.
                     * @param message UpdateFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateFutureReservationRequest.verify|verify} messages.
                     * @param message UpdateFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateFutureReservationRequest;

                    /**
                     * Decodes an UpdateFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateFutureReservationRequest;

                    /**
                     * Verifies an UpdateFutureReservationRequest message.
                     * @param message Plain 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 UpdateFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateFutureReservationRequest;

                    /**
                     * Creates a plain object from an UpdateFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message UpdateFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateHealthCheckRequest. */
                interface IUpdateHealthCheckRequest {

                    /** UpdateHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** UpdateHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** UpdateHealthCheckRequest project */
                    project?: (string|null);

                    /** UpdateHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateHealthCheckRequest. */
                class UpdateHealthCheckRequest implements IUpdateHealthCheckRequest {

                    /**
                     * Constructs a new UpdateHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateHealthCheckRequest);

                    /** UpdateHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** UpdateHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** UpdateHealthCheckRequest project. */
                    public project: string;

                    /** UpdateHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateHealthCheckRequest): google.cloud.compute.v1.UpdateHealthCheckRequest;

                    /**
                     * Encodes the specified UpdateHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateHealthCheckRequest.verify|verify} messages.
                     * @param message UpdateHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateHealthCheckRequest.verify|verify} messages.
                     * @param message UpdateHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateHealthCheckRequest;

                    /**
                     * Decodes an UpdateHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateHealthCheckRequest;

                    /**
                     * Verifies an UpdateHealthCheckRequest message.
                     * @param message Plain 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 UpdateHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateHealthCheckRequest;

                    /**
                     * Creates a plain object from an UpdateHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message UpdateHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateInstanceRequest. */
                interface IUpdateInstanceRequest {

                    /** UpdateInstanceRequest discardLocalSsd */
                    discardLocalSsd?: (boolean|null);

                    /** UpdateInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateInstanceRequest instanceResource */
                    instanceResource?: (google.cloud.compute.v1.IInstance|null);

                    /** UpdateInstanceRequest minimalAction */
                    minimalAction?: (string|null);

                    /** UpdateInstanceRequest mostDisruptiveAllowedAction */
                    mostDisruptiveAllowedAction?: (string|null);

                    /** UpdateInstanceRequest project */
                    project?: (string|null);

                    /** UpdateInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateInstanceRequest. */
                class UpdateInstanceRequest implements IUpdateInstanceRequest {

                    /**
                     * Constructs a new UpdateInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateInstanceRequest);

                    /** UpdateInstanceRequest discardLocalSsd. */
                    public discardLocalSsd?: (boolean|null);

                    /** UpdateInstanceRequest instance. */
                    public instance: string;

                    /** UpdateInstanceRequest instanceResource. */
                    public instanceResource?: (google.cloud.compute.v1.IInstance|null);

                    /** UpdateInstanceRequest minimalAction. */
                    public minimalAction?: (string|null);

                    /** UpdateInstanceRequest mostDisruptiveAllowedAction. */
                    public mostDisruptiveAllowedAction?: (string|null);

                    /** UpdateInstanceRequest project. */
                    public project: string;

                    /** UpdateInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateInstanceRequest): google.cloud.compute.v1.UpdateInstanceRequest;

                    /**
                     * Encodes the specified UpdateInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateInstanceRequest.verify|verify} messages.
                     * @param message UpdateInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateInstanceRequest.verify|verify} messages.
                     * @param message UpdateInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateInstanceRequest;

                    /**
                     * Decodes an UpdateInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateInstanceRequest;

                    /**
                     * Verifies an UpdateInstanceRequest message.
                     * @param message Plain 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 UpdateInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace UpdateInstanceRequest {

                    /** MinimalAction enum. */
                    enum MinimalAction {
                        UNDEFINED_MINIMAL_ACTION = 0
                    }

                    /** MostDisruptiveAllowedAction enum. */
                    enum MostDisruptiveAllowedAction {
                        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0
                    }
                }

                /** Properties of an UpdateLicenseRequest. */
                interface IUpdateLicenseRequest {

                    /** UpdateLicenseRequest license */
                    license?: (string|null);

                    /** UpdateLicenseRequest licenseResource */
                    licenseResource?: (google.cloud.compute.v1.ILicense|null);

                    /** UpdateLicenseRequest project */
                    project?: (string|null);

                    /** UpdateLicenseRequest requestId */
                    requestId?: (string|null);

                    /** UpdateLicenseRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents an UpdateLicenseRequest. */
                class UpdateLicenseRequest implements IUpdateLicenseRequest {

                    /**
                     * Constructs a new UpdateLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateLicenseRequest);

                    /** UpdateLicenseRequest license. */
                    public license: string;

                    /** UpdateLicenseRequest licenseResource. */
                    public licenseResource?: (google.cloud.compute.v1.ILicense|null);

                    /** UpdateLicenseRequest project. */
                    public project: string;

                    /** UpdateLicenseRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateLicenseRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new UpdateLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateLicenseRequest): google.cloud.compute.v1.UpdateLicenseRequest;

                    /**
                     * Encodes the specified UpdateLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateLicenseRequest.verify|verify} messages.
                     * @param message UpdateLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateLicenseRequest.verify|verify} messages.
                     * @param message UpdateLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateLicenseRequest;

                    /**
                     * Decodes an UpdateLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateLicenseRequest;

                    /**
                     * Verifies an UpdateLicenseRequest message.
                     * @param message Plain 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 UpdateLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateLicenseRequest;

                    /**
                     * Creates a plain object from an UpdateLicenseRequest message. Also converts values to other types if specified.
                     * @param message UpdateLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateNetworkInterfaceInstanceRequest. */
                interface IUpdateNetworkInterfaceInstanceRequest {

                    /** UpdateNetworkInterfaceInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest networkInterfaceResource */
                    networkInterfaceResource?: (google.cloud.compute.v1.INetworkInterface|null);

                    /** UpdateNetworkInterfaceInstanceRequest project */
                    project?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateNetworkInterfaceInstanceRequest. */
                class UpdateNetworkInterfaceInstanceRequest implements IUpdateNetworkInterfaceInstanceRequest {

                    /**
                     * Constructs a new UpdateNetworkInterfaceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateNetworkInterfaceInstanceRequest);

                    /** UpdateNetworkInterfaceInstanceRequest instance. */
                    public instance: string;

                    /** UpdateNetworkInterfaceInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** UpdateNetworkInterfaceInstanceRequest networkInterfaceResource. */
                    public networkInterfaceResource?: (google.cloud.compute.v1.INetworkInterface|null);

                    /** UpdateNetworkInterfaceInstanceRequest project. */
                    public project: string;

                    /** UpdateNetworkInterfaceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateNetworkInterfaceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateNetworkInterfaceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateNetworkInterfaceInstanceRequest): google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest;

                    /**
                     * Encodes the specified UpdateNetworkInterfaceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message UpdateNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateNetworkInterfaceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message UpdateNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateNetworkInterfaceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest;

                    /**
                     * Decodes an UpdateNetworkInterfaceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest;

                    /**
                     * Verifies an UpdateNetworkInterfaceInstanceRequest message.
                     * @param message Plain 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 UpdateNetworkInterfaceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateNetworkInterfaceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateNetworkInterfaceInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateNetworkInterfaceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateNetworkInterfaceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateNetworkInterfaceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePeeringNetworkRequest. */
                interface IUpdatePeeringNetworkRequest {

                    /** UpdatePeeringNetworkRequest network */
                    network?: (string|null);

                    /** UpdatePeeringNetworkRequest networksUpdatePeeringRequestResource */
                    networksUpdatePeeringRequestResource?: (google.cloud.compute.v1.INetworksUpdatePeeringRequest|null);

                    /** UpdatePeeringNetworkRequest project */
                    project?: (string|null);

                    /** UpdatePeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdatePeeringNetworkRequest. */
                class UpdatePeeringNetworkRequest implements IUpdatePeeringNetworkRequest {

                    /**
                     * Constructs a new UpdatePeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdatePeeringNetworkRequest);

                    /** UpdatePeeringNetworkRequest network. */
                    public network: string;

                    /** UpdatePeeringNetworkRequest networksUpdatePeeringRequestResource. */
                    public networksUpdatePeeringRequestResource?: (google.cloud.compute.v1.INetworksUpdatePeeringRequest|null);

                    /** UpdatePeeringNetworkRequest project. */
                    public project: string;

                    /** UpdatePeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdatePeeringNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePeeringNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdatePeeringNetworkRequest): google.cloud.compute.v1.UpdatePeeringNetworkRequest;

                    /**
                     * Encodes the specified UpdatePeeringNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdatePeeringNetworkRequest.verify|verify} messages.
                     * @param message UpdatePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdatePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePeeringNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdatePeeringNetworkRequest.verify|verify} messages.
                     * @param message UpdatePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdatePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePeeringNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdatePeeringNetworkRequest;

                    /**
                     * Decodes an UpdatePeeringNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdatePeeringNetworkRequest;

                    /**
                     * Verifies an UpdatePeeringNetworkRequest message.
                     * @param message Plain 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 UpdatePeeringNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePeeringNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdatePeeringNetworkRequest;

                    /**
                     * Creates a plain object from an UpdatePeeringNetworkRequest message. Also converts values to other types if specified.
                     * @param message UpdatePeeringNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdatePeeringNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePeeringNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePeeringNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePerInstanceConfigsInstanceGroupManagerRequest. */
                interface IUpdatePerInstanceConfigsInstanceGroupManagerRequest {

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersUpdatePerInstanceConfigsReqResource */
                    instanceGroupManagersUpdatePerInstanceConfigsReqResource?: (google.cloud.compute.v1.IInstanceGroupManagersUpdatePerInstanceConfigsReq|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdatePerInstanceConfigsInstanceGroupManagerRequest. */
                class UpdatePerInstanceConfigsInstanceGroupManagerRequest implements IUpdatePerInstanceConfigsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new UpdatePerInstanceConfigsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdatePerInstanceConfigsInstanceGroupManagerRequest);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersUpdatePerInstanceConfigsReqResource. */
                    public instanceGroupManagersUpdatePerInstanceConfigsReqResource?: (google.cloud.compute.v1.IInstanceGroupManagersUpdatePerInstanceConfigsReq|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdatePerInstanceConfigsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePerInstanceConfigsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdatePerInstanceConfigsInstanceGroupManagerRequest): google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified UpdatePerInstanceConfigsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdatePerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdatePerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePerInstanceConfigsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdatePerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdatePerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Decodes an UpdatePerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Verifies an UpdatePerInstanceConfigsInstanceGroupManagerRequest message.
                     * @param message Plain 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 UpdatePerInstanceConfigsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an UpdatePerInstanceConfigsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePerInstanceConfigsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest. */
                interface IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerUpdateInstanceConfigReqResource */
                    regionInstanceGroupManagerUpdateInstanceConfigReqResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagerUpdateInstanceConfigReq|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest. */
                class UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest implements IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerUpdateInstanceConfigReqResource. */
                    public regionInstanceGroupManagerUpdateInstanceConfigReqResource?: (google.cloud.compute.v1.IRegionInstanceGroupManagerUpdateInstanceConfigReq|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest): google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePreviewFeatureRequest. */
                interface IUpdatePreviewFeatureRequest {

                    /** UpdatePreviewFeatureRequest previewFeature */
                    previewFeature?: (string|null);

                    /** UpdatePreviewFeatureRequest previewFeatureResource */
                    previewFeatureResource?: (google.cloud.compute.v1.IPreviewFeature|null);

                    /** UpdatePreviewFeatureRequest project */
                    project?: (string|null);

                    /** UpdatePreviewFeatureRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdatePreviewFeatureRequest. */
                class UpdatePreviewFeatureRequest implements IUpdatePreviewFeatureRequest {

                    /**
                     * Constructs a new UpdatePreviewFeatureRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdatePreviewFeatureRequest);

                    /** UpdatePreviewFeatureRequest previewFeature. */
                    public previewFeature: string;

                    /** UpdatePreviewFeatureRequest previewFeatureResource. */
                    public previewFeatureResource?: (google.cloud.compute.v1.IPreviewFeature|null);

                    /** UpdatePreviewFeatureRequest project. */
                    public project: string;

                    /** UpdatePreviewFeatureRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdatePreviewFeatureRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePreviewFeatureRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdatePreviewFeatureRequest): google.cloud.compute.v1.UpdatePreviewFeatureRequest;

                    /**
                     * Encodes the specified UpdatePreviewFeatureRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdatePreviewFeatureRequest.verify|verify} messages.
                     * @param message UpdatePreviewFeatureRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdatePreviewFeatureRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePreviewFeatureRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdatePreviewFeatureRequest.verify|verify} messages.
                     * @param message UpdatePreviewFeatureRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdatePreviewFeatureRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePreviewFeatureRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePreviewFeatureRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdatePreviewFeatureRequest;

                    /**
                     * Decodes an UpdatePreviewFeatureRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePreviewFeatureRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdatePreviewFeatureRequest;

                    /**
                     * Verifies an UpdatePreviewFeatureRequest message.
                     * @param message Plain 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 UpdatePreviewFeatureRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePreviewFeatureRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdatePreviewFeatureRequest;

                    /**
                     * Creates a plain object from an UpdatePreviewFeatureRequest message. Also converts values to other types if specified.
                     * @param message UpdatePreviewFeatureRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdatePreviewFeatureRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePreviewFeatureRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePreviewFeatureRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionAutoscalerRequest. */
                interface IUpdateRegionAutoscalerRequest {

                    /** UpdateRegionAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** UpdateRegionAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** UpdateRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** UpdateRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** UpdateRegionAutoscalerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateRegionAutoscalerRequest. */
                class UpdateRegionAutoscalerRequest implements IUpdateRegionAutoscalerRequest {

                    /**
                     * Constructs a new UpdateRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateRegionAutoscalerRequest);

                    /** UpdateRegionAutoscalerRequest autoscaler. */
                    public autoscaler?: (string|null);

                    /** UpdateRegionAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1.IAutoscaler|null);

                    /** UpdateRegionAutoscalerRequest project. */
                    public project: string;

                    /** UpdateRegionAutoscalerRequest region. */
                    public region: string;

                    /** UpdateRegionAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateRegionAutoscalerRequest): google.cloud.compute.v1.UpdateRegionAutoscalerRequest;

                    /**
                     * Encodes the specified UpdateRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionAutoscalerRequest.verify|verify} messages.
                     * @param message UpdateRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionAutoscalerRequest.verify|verify} messages.
                     * @param message UpdateRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateRegionAutoscalerRequest;

                    /**
                     * Decodes an UpdateRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateRegionAutoscalerRequest;

                    /**
                     * Verifies an UpdateRegionAutoscalerRequest message.
                     * @param message Plain 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 UpdateRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from an UpdateRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionBackendServiceRequest. */
                interface IUpdateRegionBackendServiceRequest {

                    /** UpdateRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** UpdateRegionBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** UpdateRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** UpdateRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** UpdateRegionBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateRegionBackendServiceRequest. */
                class UpdateRegionBackendServiceRequest implements IUpdateRegionBackendServiceRequest {

                    /**
                     * Constructs a new UpdateRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateRegionBackendServiceRequest);

                    /** UpdateRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** UpdateRegionBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1.IBackendService|null);

                    /** UpdateRegionBackendServiceRequest project. */
                    public project: string;

                    /** UpdateRegionBackendServiceRequest region. */
                    public region: string;

                    /** UpdateRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateRegionBackendServiceRequest): google.cloud.compute.v1.UpdateRegionBackendServiceRequest;

                    /**
                     * Encodes the specified UpdateRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionBackendServiceRequest.verify|verify} messages.
                     * @param message UpdateRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionBackendServiceRequest.verify|verify} messages.
                     * @param message UpdateRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateRegionBackendServiceRequest;

                    /**
                     * Decodes an UpdateRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateRegionBackendServiceRequest;

                    /**
                     * Verifies an UpdateRegionBackendServiceRequest message.
                     * @param message Plain 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 UpdateRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from an UpdateRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionCommitmentRequest. */
                interface IUpdateRegionCommitmentRequest {

                    /** UpdateRegionCommitmentRequest commitment */
                    commitment?: (string|null);

                    /** UpdateRegionCommitmentRequest commitmentResource */
                    commitmentResource?: (google.cloud.compute.v1.ICommitment|null);

                    /** UpdateRegionCommitmentRequest paths */
                    paths?: (string|null);

                    /** UpdateRegionCommitmentRequest project */
                    project?: (string|null);

                    /** UpdateRegionCommitmentRequest region */
                    region?: (string|null);

                    /** UpdateRegionCommitmentRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRegionCommitmentRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents an UpdateRegionCommitmentRequest. */
                class UpdateRegionCommitmentRequest implements IUpdateRegionCommitmentRequest {

                    /**
                     * Constructs a new UpdateRegionCommitmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateRegionCommitmentRequest);

                    /** UpdateRegionCommitmentRequest commitment. */
                    public commitment: string;

                    /** UpdateRegionCommitmentRequest commitmentResource. */
                    public commitmentResource?: (google.cloud.compute.v1.ICommitment|null);

                    /** UpdateRegionCommitmentRequest paths. */
                    public paths?: (string|null);

                    /** UpdateRegionCommitmentRequest project. */
                    public project: string;

                    /** UpdateRegionCommitmentRequest region. */
                    public region: string;

                    /** UpdateRegionCommitmentRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRegionCommitmentRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new UpdateRegionCommitmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionCommitmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateRegionCommitmentRequest): google.cloud.compute.v1.UpdateRegionCommitmentRequest;

                    /**
                     * Encodes the specified UpdateRegionCommitmentRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionCommitmentRequest.verify|verify} messages.
                     * @param message UpdateRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionCommitmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionCommitmentRequest.verify|verify} messages.
                     * @param message UpdateRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionCommitmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateRegionCommitmentRequest;

                    /**
                     * Decodes an UpdateRegionCommitmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateRegionCommitmentRequest;

                    /**
                     * Verifies an UpdateRegionCommitmentRequest message.
                     * @param message Plain 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 UpdateRegionCommitmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionCommitmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateRegionCommitmentRequest;

                    /**
                     * Creates a plain object from an UpdateRegionCommitmentRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionCommitmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateRegionCommitmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionCommitmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionCommitmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionDiskRequest. */
                interface IUpdateRegionDiskRequest {

                    /** UpdateRegionDiskRequest disk */
                    disk?: (string|null);

                    /** UpdateRegionDiskRequest diskResource */
                    diskResource?: (google.cloud.compute.v1.IDisk|null);

                    /** UpdateRegionDiskRequest paths */
                    paths?: (string|null);

                    /** UpdateRegionDiskRequest project */
                    project?: (string|null);

                    /** UpdateRegionDiskRequest region */
                    region?: (string|null);

                    /** UpdateRegionDiskRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRegionDiskRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents an UpdateRegionDiskRequest. */
                class UpdateRegionDiskRequest implements IUpdateRegionDiskRequest {

                    /**
                     * Constructs a new UpdateRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateRegionDiskRequest);

                    /** UpdateRegionDiskRequest disk. */
                    public disk: string;

                    /** UpdateRegionDiskRequest diskResource. */
                    public diskResource?: (google.cloud.compute.v1.IDisk|null);

                    /** UpdateRegionDiskRequest paths. */
                    public paths?: (string|null);

                    /** UpdateRegionDiskRequest project. */
                    public project: string;

                    /** UpdateRegionDiskRequest region. */
                    public region: string;

                    /** UpdateRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRegionDiskRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new UpdateRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateRegionDiskRequest): google.cloud.compute.v1.UpdateRegionDiskRequest;

                    /**
                     * Encodes the specified UpdateRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionDiskRequest.verify|verify} messages.
                     * @param message UpdateRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionDiskRequest.verify|verify} messages.
                     * @param message UpdateRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateRegionDiskRequest;

                    /**
                     * Decodes an UpdateRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateRegionDiskRequest;

                    /**
                     * Verifies an UpdateRegionDiskRequest message.
                     * @param message Plain 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 UpdateRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateRegionDiskRequest;

                    /**
                     * Creates a plain object from an UpdateRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionHealthCheckRequest. */
                interface IUpdateRegionHealthCheckRequest {

                    /** UpdateRegionHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** UpdateRegionHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** UpdateRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** UpdateRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** UpdateRegionHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateRegionHealthCheckRequest. */
                class UpdateRegionHealthCheckRequest implements IUpdateRegionHealthCheckRequest {

                    /**
                     * Constructs a new UpdateRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateRegionHealthCheckRequest);

                    /** UpdateRegionHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** UpdateRegionHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1.IHealthCheck|null);

                    /** UpdateRegionHealthCheckRequest project. */
                    public project: string;

                    /** UpdateRegionHealthCheckRequest region. */
                    public region: string;

                    /** UpdateRegionHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateRegionHealthCheckRequest): google.cloud.compute.v1.UpdateRegionHealthCheckRequest;

                    /**
                     * Encodes the specified UpdateRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionHealthCheckRequest.verify|verify} messages.
                     * @param message UpdateRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionHealthCheckRequest.verify|verify} messages.
                     * @param message UpdateRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateRegionHealthCheckRequest;

                    /**
                     * Decodes an UpdateRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateRegionHealthCheckRequest;

                    /**
                     * Verifies an UpdateRegionHealthCheckRequest message.
                     * @param message Plain 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 UpdateRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from an UpdateRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionUrlMapRequest. */
                interface IUpdateRegionUrlMapRequest {

                    /** UpdateRegionUrlMapRequest project */
                    project?: (string|null);

                    /** UpdateRegionUrlMapRequest region */
                    region?: (string|null);

                    /** UpdateRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** UpdateRegionUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);
                }

                /** Represents an UpdateRegionUrlMapRequest. */
                class UpdateRegionUrlMapRequest implements IUpdateRegionUrlMapRequest {

                    /**
                     * Constructs a new UpdateRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateRegionUrlMapRequest);

                    /** UpdateRegionUrlMapRequest project. */
                    public project: string;

                    /** UpdateRegionUrlMapRequest region. */
                    public region: string;

                    /** UpdateRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** UpdateRegionUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);

                    /**
                     * Creates a new UpdateRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateRegionUrlMapRequest): google.cloud.compute.v1.UpdateRegionUrlMapRequest;

                    /**
                     * Encodes the specified UpdateRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionUrlMapRequest.verify|verify} messages.
                     * @param message UpdateRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateRegionUrlMapRequest.verify|verify} messages.
                     * @param message UpdateRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateRegionUrlMapRequest;

                    /**
                     * Decodes an UpdateRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateRegionUrlMapRequest;

                    /**
                     * Verifies an UpdateRegionUrlMapRequest message.
                     * @param message Plain 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 UpdateRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateRegionUrlMapRequest;

                    /**
                     * Creates a plain object from an UpdateRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateReservationRequest. */
                interface IUpdateReservationRequest {

                    /** UpdateReservationRequest paths */
                    paths?: (string|null);

                    /** UpdateReservationRequest project */
                    project?: (string|null);

                    /** UpdateReservationRequest requestId */
                    requestId?: (string|null);

                    /** UpdateReservationRequest reservation */
                    reservation?: (string|null);

                    /** UpdateReservationRequest reservationResource */
                    reservationResource?: (google.cloud.compute.v1.IReservation|null);

                    /** UpdateReservationRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateReservationRequest. */
                class UpdateReservationRequest implements IUpdateReservationRequest {

                    /**
                     * Constructs a new UpdateReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateReservationRequest);

                    /** UpdateReservationRequest paths. */
                    public paths?: (string|null);

                    /** UpdateReservationRequest project. */
                    public project: string;

                    /** UpdateReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateReservationRequest reservation. */
                    public reservation: string;

                    /** UpdateReservationRequest reservationResource. */
                    public reservationResource?: (google.cloud.compute.v1.IReservation|null);

                    /** UpdateReservationRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateReservationRequest): google.cloud.compute.v1.UpdateReservationRequest;

                    /**
                     * Encodes the specified UpdateReservationRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateReservationRequest.verify|verify} messages.
                     * @param message UpdateReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateReservationRequest.verify|verify} messages.
                     * @param message UpdateReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateReservationRequest;

                    /**
                     * Decodes an UpdateReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateReservationRequest;

                    /**
                     * Verifies an UpdateReservationRequest message.
                     * @param message Plain 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 UpdateReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateReservationRequest;

                    /**
                     * Creates a plain object from an UpdateReservationRequest message. Also converts values to other types if specified.
                     * @param message UpdateReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateReservationSlotRequest. */
                interface IUpdateReservationSlotRequest {

                    /** UpdateReservationSlotRequest parentName */
                    parentName?: (string|null);

                    /** UpdateReservationSlotRequest project */
                    project?: (string|null);

                    /** UpdateReservationSlotRequest reservationSlot */
                    reservationSlot?: (string|null);

                    /** UpdateReservationSlotRequest reservationSlotResource */
                    reservationSlotResource?: (google.cloud.compute.v1.IReservationSlot|null);

                    /** UpdateReservationSlotRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateReservationSlotRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateReservationSlotRequest. */
                class UpdateReservationSlotRequest implements IUpdateReservationSlotRequest {

                    /**
                     * Constructs a new UpdateReservationSlotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateReservationSlotRequest);

                    /** UpdateReservationSlotRequest parentName. */
                    public parentName: string;

                    /** UpdateReservationSlotRequest project. */
                    public project: string;

                    /** UpdateReservationSlotRequest reservationSlot. */
                    public reservationSlot: string;

                    /** UpdateReservationSlotRequest reservationSlotResource. */
                    public reservationSlotResource?: (google.cloud.compute.v1.IReservationSlot|null);

                    /** UpdateReservationSlotRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateReservationSlotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateReservationSlotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateReservationSlotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateReservationSlotRequest): google.cloud.compute.v1.UpdateReservationSlotRequest;

                    /**
                     * Encodes the specified UpdateReservationSlotRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateReservationSlotRequest.verify|verify} messages.
                     * @param message UpdateReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateReservationSlotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateReservationSlotRequest.verify|verify} messages.
                     * @param message UpdateReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateReservationSlotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateReservationSlotRequest;

                    /**
                     * Decodes an UpdateReservationSlotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateReservationSlotRequest;

                    /**
                     * Verifies an UpdateReservationSlotRequest message.
                     * @param message Plain 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 UpdateReservationSlotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateReservationSlotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateReservationSlotRequest;

                    /**
                     * Creates a plain object from an UpdateReservationSlotRequest message. Also converts values to other types if specified.
                     * @param message UpdateReservationSlotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateReservationSlotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateReservationSlotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateReservationSlotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRoutePolicyRouterRequest. */
                interface IUpdateRoutePolicyRouterRequest {

                    /** UpdateRoutePolicyRouterRequest project */
                    project?: (string|null);

                    /** UpdateRoutePolicyRouterRequest region */
                    region?: (string|null);

                    /** UpdateRoutePolicyRouterRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRoutePolicyRouterRequest routePolicyResource */
                    routePolicyResource?: (google.cloud.compute.v1.IRoutePolicy|null);

                    /** UpdateRoutePolicyRouterRequest router */
                    router?: (string|null);
                }

                /** Represents an UpdateRoutePolicyRouterRequest. */
                class UpdateRoutePolicyRouterRequest implements IUpdateRoutePolicyRouterRequest {

                    /**
                     * Constructs a new UpdateRoutePolicyRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateRoutePolicyRouterRequest);

                    /** UpdateRoutePolicyRouterRequest project. */
                    public project: string;

                    /** UpdateRoutePolicyRouterRequest region. */
                    public region: string;

                    /** UpdateRoutePolicyRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRoutePolicyRouterRequest routePolicyResource. */
                    public routePolicyResource?: (google.cloud.compute.v1.IRoutePolicy|null);

                    /** UpdateRoutePolicyRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new UpdateRoutePolicyRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRoutePolicyRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateRoutePolicyRouterRequest): google.cloud.compute.v1.UpdateRoutePolicyRouterRequest;

                    /**
                     * Encodes the specified UpdateRoutePolicyRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message UpdateRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRoutePolicyRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message UpdateRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRoutePolicyRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateRoutePolicyRouterRequest;

                    /**
                     * Decodes an UpdateRoutePolicyRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateRoutePolicyRouterRequest;

                    /**
                     * Verifies an UpdateRoutePolicyRouterRequest message.
                     * @param message Plain 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 UpdateRoutePolicyRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRoutePolicyRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateRoutePolicyRouterRequest;

                    /**
                     * Creates a plain object from an UpdateRoutePolicyRouterRequest message. Also converts values to other types if specified.
                     * @param message UpdateRoutePolicyRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateRoutePolicyRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRoutePolicyRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRoutePolicyRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRouterRequest. */
                interface IUpdateRouterRequest {

                    /** UpdateRouterRequest project */
                    project?: (string|null);

                    /** UpdateRouterRequest region */
                    region?: (string|null);

                    /** UpdateRouterRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRouterRequest router */
                    router?: (string|null);

                    /** UpdateRouterRequest routerResource */
                    routerResource?: (google.cloud.compute.v1.IRouter|null);
                }

                /** Represents an UpdateRouterRequest. */
                class UpdateRouterRequest implements IUpdateRouterRequest {

                    /**
                     * Constructs a new UpdateRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateRouterRequest);

                    /** UpdateRouterRequest project. */
                    public project: string;

                    /** UpdateRouterRequest region. */
                    public region: string;

                    /** UpdateRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRouterRequest router. */
                    public router: string;

                    /** UpdateRouterRequest routerResource. */
                    public routerResource?: (google.cloud.compute.v1.IRouter|null);

                    /**
                     * Creates a new UpdateRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateRouterRequest): google.cloud.compute.v1.UpdateRouterRequest;

                    /**
                     * Encodes the specified UpdateRouterRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateRouterRequest.verify|verify} messages.
                     * @param message UpdateRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateRouterRequest.verify|verify} messages.
                     * @param message UpdateRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateRouterRequest;

                    /**
                     * Decodes an UpdateRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateRouterRequest;

                    /**
                     * Verifies an UpdateRouterRequest message.
                     * @param message Plain 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 UpdateRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateRouterRequest;

                    /**
                     * Creates a plain object from an UpdateRouterRequest message. Also converts values to other types if specified.
                     * @param message UpdateRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateShieldedInstanceConfigInstanceRequest. */
                interface IUpdateShieldedInstanceConfigInstanceRequest {

                    /** UpdateShieldedInstanceConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest project */
                    project?: (string|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest shieldedInstanceConfigResource */
                    shieldedInstanceConfigResource?: (google.cloud.compute.v1.IShieldedInstanceConfig|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateShieldedInstanceConfigInstanceRequest. */
                class UpdateShieldedInstanceConfigInstanceRequest implements IUpdateShieldedInstanceConfigInstanceRequest {

                    /**
                     * Constructs a new UpdateShieldedInstanceConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateShieldedInstanceConfigInstanceRequest);

                    /** UpdateShieldedInstanceConfigInstanceRequest instance. */
                    public instance: string;

                    /** UpdateShieldedInstanceConfigInstanceRequest project. */
                    public project: string;

                    /** UpdateShieldedInstanceConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest shieldedInstanceConfigResource. */
                    public shieldedInstanceConfigResource?: (google.cloud.compute.v1.IShieldedInstanceConfig|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateShieldedInstanceConfigInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateShieldedInstanceConfigInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateShieldedInstanceConfigInstanceRequest): google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest;

                    /**
                     * Encodes the specified UpdateShieldedInstanceConfigInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateShieldedInstanceConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateShieldedInstanceConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateShieldedInstanceConfigInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateShieldedInstanceConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateShieldedInstanceConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateShieldedInstanceConfigInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateShieldedInstanceConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest;

                    /**
                     * Decodes an UpdateShieldedInstanceConfigInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateShieldedInstanceConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest;

                    /**
                     * Verifies an UpdateShieldedInstanceConfigInstanceRequest message.
                     * @param message Plain 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 UpdateShieldedInstanceConfigInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateShieldedInstanceConfigInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateShieldedInstanceConfigInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateShieldedInstanceConfigInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateShieldedInstanceConfigInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateShieldedInstanceConfigInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateStoragePoolRequest. */
                interface IUpdateStoragePoolRequest {

                    /** UpdateStoragePoolRequest project */
                    project?: (string|null);

                    /** UpdateStoragePoolRequest requestId */
                    requestId?: (string|null);

                    /** UpdateStoragePoolRequest storagePool */
                    storagePool?: (string|null);

                    /** UpdateStoragePoolRequest storagePoolResource */
                    storagePoolResource?: (google.cloud.compute.v1.IStoragePool|null);

                    /** UpdateStoragePoolRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateStoragePoolRequest. */
                class UpdateStoragePoolRequest implements IUpdateStoragePoolRequest {

                    /**
                     * Constructs a new UpdateStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateStoragePoolRequest);

                    /** UpdateStoragePoolRequest project. */
                    public project: string;

                    /** UpdateStoragePoolRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateStoragePoolRequest storagePool. */
                    public storagePool: string;

                    /** UpdateStoragePoolRequest storagePoolResource. */
                    public storagePoolResource?: (google.cloud.compute.v1.IStoragePool|null);

                    /** UpdateStoragePoolRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateStoragePoolRequest): google.cloud.compute.v1.UpdateStoragePoolRequest;

                    /**
                     * Encodes the specified UpdateStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateStoragePoolRequest.verify|verify} messages.
                     * @param message UpdateStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateStoragePoolRequest.verify|verify} messages.
                     * @param message UpdateStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateStoragePoolRequest;

                    /**
                     * Decodes an UpdateStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateStoragePoolRequest;

                    /**
                     * Verifies an UpdateStoragePoolRequest message.
                     * @param message Plain 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 UpdateStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateStoragePoolRequest;

                    /**
                     * Creates a plain object from an UpdateStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message UpdateStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateUrlMapRequest. */
                interface IUpdateUrlMapRequest {

                    /** UpdateUrlMapRequest project */
                    project?: (string|null);

                    /** UpdateUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** UpdateUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** UpdateUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);
                }

                /** Represents an UpdateUrlMapRequest. */
                class UpdateUrlMapRequest implements IUpdateUrlMapRequest {

                    /**
                     * Constructs a new UpdateUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUpdateUrlMapRequest);

                    /** UpdateUrlMapRequest project. */
                    public project: string;

                    /** UpdateUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** UpdateUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1.IUrlMap|null);

                    /**
                     * Creates a new UpdateUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUpdateUrlMapRequest): google.cloud.compute.v1.UpdateUrlMapRequest;

                    /**
                     * Encodes the specified UpdateUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.UpdateUrlMapRequest.verify|verify} messages.
                     * @param message UpdateUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUpdateUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UpdateUrlMapRequest.verify|verify} messages.
                     * @param message UpdateUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUpdateUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UpdateUrlMapRequest;

                    /**
                     * Decodes an UpdateUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UpdateUrlMapRequest;

                    /**
                     * Verifies an UpdateUrlMapRequest message.
                     * @param message Plain 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 UpdateUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UpdateUrlMapRequest;

                    /**
                     * Creates a plain object from an UpdateUrlMapRequest message. Also converts values to other types if specified.
                     * @param message UpdateUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UpdateUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMap. */
                interface IUrlMap {

                    /** UrlMap creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** UrlMap defaultCustomErrorResponsePolicy */
                    defaultCustomErrorResponsePolicy?: (google.cloud.compute.v1.ICustomErrorResponsePolicy|null);

                    /** UrlMap defaultRouteAction */
                    defaultRouteAction?: (google.cloud.compute.v1.IHttpRouteAction|null);

                    /** UrlMap defaultService */
                    defaultService?: (string|null);

                    /** UrlMap defaultUrlRedirect */
                    defaultUrlRedirect?: (google.cloud.compute.v1.IHttpRedirectAction|null);

                    /** UrlMap description */
                    description?: (string|null);

                    /** UrlMap fingerprint */
                    fingerprint?: (string|null);

                    /** UrlMap headerAction */
                    headerAction?: (google.cloud.compute.v1.IHttpHeaderAction|null);

                    /** UrlMap hostRules */
                    hostRules?: (google.cloud.compute.v1.IHostRule[]|null);

                    /** UrlMap id */
                    id?: (number|Long|string|null);

                    /** UrlMap kind */
                    kind?: (string|null);

                    /** UrlMap name */
                    name?: (string|null);

                    /** UrlMap pathMatchers */
                    pathMatchers?: (google.cloud.compute.v1.IPathMatcher[]|null);

                    /** UrlMap region */
                    region?: (string|null);

                    /** UrlMap selfLink */
                    selfLink?: (string|null);

                    /** UrlMap tests */
                    tests?: (google.cloud.compute.v1.IUrlMapTest[]|null);
                }

                /** Represents an UrlMap. */
                class UrlMap implements IUrlMap {

                    /**
                     * Constructs a new UrlMap.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMap);

                    /** UrlMap creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** UrlMap defaultCustomErrorResponsePolicy. */
                    public defaultCustomErrorResponsePolicy?: (google.cloud.compute.v1.ICustomErrorResponsePolicy|null);

                    /** UrlMap defaultRouteAction. */
                    public defaultRouteAction?: (google.cloud.compute.v1.IHttpRouteAction|null);

                    /** UrlMap defaultService. */
                    public defaultService?: (string|null);

                    /** UrlMap defaultUrlRedirect. */
                    public defaultUrlRedirect?: (google.cloud.compute.v1.IHttpRedirectAction|null);

                    /** UrlMap description. */
                    public description?: (string|null);

                    /** UrlMap fingerprint. */
                    public fingerprint?: (string|null);

                    /** UrlMap headerAction. */
                    public headerAction?: (google.cloud.compute.v1.IHttpHeaderAction|null);

                    /** UrlMap hostRules. */
                    public hostRules: google.cloud.compute.v1.IHostRule[];

                    /** UrlMap id. */
                    public id?: (number|Long|string|null);

                    /** UrlMap kind. */
                    public kind?: (string|null);

                    /** UrlMap name. */
                    public name?: (string|null);

                    /** UrlMap pathMatchers. */
                    public pathMatchers: google.cloud.compute.v1.IPathMatcher[];

                    /** UrlMap region. */
                    public region?: (string|null);

                    /** UrlMap selfLink. */
                    public selfLink?: (string|null);

                    /** UrlMap tests. */
                    public tests: google.cloud.compute.v1.IUrlMapTest[];

                    /**
                     * Creates a new UrlMap instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMap instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMap): google.cloud.compute.v1.UrlMap;

                    /**
                     * Encodes the specified UrlMap message. Does not implicitly {@link google.cloud.compute.v1.UrlMap.verify|verify} messages.
                     * @param message UrlMap message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMap, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMap message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMap.verify|verify} messages.
                     * @param message UrlMap message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMap, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMap message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMap
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMap;

                    /**
                     * Decodes an UrlMap message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMap
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMap;

                    /**
                     * Verifies an UrlMap message.
                     * @param message Plain 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 UrlMap message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMap
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMap;

                    /**
                     * Creates a plain object from an UrlMap message. Also converts values to other types if specified.
                     * @param message UrlMap
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMap, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMap to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMap
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapList. */
                interface IUrlMapList {

                    /** UrlMapList id */
                    id?: (string|null);

                    /** UrlMapList items */
                    items?: (google.cloud.compute.v1.IUrlMap[]|null);

                    /** UrlMapList kind */
                    kind?: (string|null);

                    /** UrlMapList nextPageToken */
                    nextPageToken?: (string|null);

                    /** UrlMapList selfLink */
                    selfLink?: (string|null);

                    /** UrlMapList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an UrlMapList. */
                class UrlMapList implements IUrlMapList {

                    /**
                     * Constructs a new UrlMapList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapList);

                    /** UrlMapList id. */
                    public id?: (string|null);

                    /** UrlMapList items. */
                    public items: google.cloud.compute.v1.IUrlMap[];

                    /** UrlMapList kind. */
                    public kind?: (string|null);

                    /** UrlMapList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** UrlMapList selfLink. */
                    public selfLink?: (string|null);

                    /** UrlMapList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new UrlMapList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapList): google.cloud.compute.v1.UrlMapList;

                    /**
                     * Encodes the specified UrlMapList message. Does not implicitly {@link google.cloud.compute.v1.UrlMapList.verify|verify} messages.
                     * @param message UrlMapList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapList.verify|verify} messages.
                     * @param message UrlMapList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapList;

                    /**
                     * Decodes an UrlMapList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapList;

                    /**
                     * Verifies an UrlMapList message.
                     * @param message Plain 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 UrlMapList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapList;

                    /**
                     * Creates a plain object from an UrlMapList message. Also converts values to other types if specified.
                     * @param message UrlMapList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapReference. */
                interface IUrlMapReference {

                    /** UrlMapReference urlMap */
                    urlMap?: (string|null);
                }

                /** Represents an UrlMapReference. */
                class UrlMapReference implements IUrlMapReference {

                    /**
                     * Constructs a new UrlMapReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapReference);

                    /** UrlMapReference urlMap. */
                    public urlMap?: (string|null);

                    /**
                     * Creates a new UrlMapReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapReference): google.cloud.compute.v1.UrlMapReference;

                    /**
                     * Encodes the specified UrlMapReference message. Does not implicitly {@link google.cloud.compute.v1.UrlMapReference.verify|verify} messages.
                     * @param message UrlMapReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapReference.verify|verify} messages.
                     * @param message UrlMapReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapReference;

                    /**
                     * Decodes an UrlMapReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapReference;

                    /**
                     * Verifies an UrlMapReference message.
                     * @param message Plain 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 UrlMapReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapReference;

                    /**
                     * Creates a plain object from an UrlMapReference message. Also converts values to other types if specified.
                     * @param message UrlMapReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapTest. */
                interface IUrlMapTest {

                    /** UrlMapTest description */
                    description?: (string|null);

                    /** UrlMapTest expectedOutputUrl */
                    expectedOutputUrl?: (string|null);

                    /** UrlMapTest expectedRedirectResponseCode */
                    expectedRedirectResponseCode?: (number|null);

                    /** UrlMapTest headers */
                    headers?: (google.cloud.compute.v1.IUrlMapTestHeader[]|null);

                    /** UrlMapTest host */
                    host?: (string|null);

                    /** UrlMapTest path */
                    path?: (string|null);

                    /** UrlMapTest service */
                    service?: (string|null);
                }

                /** Represents an UrlMapTest. */
                class UrlMapTest implements IUrlMapTest {

                    /**
                     * Constructs a new UrlMapTest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapTest);

                    /** UrlMapTest description. */
                    public description?: (string|null);

                    /** UrlMapTest expectedOutputUrl. */
                    public expectedOutputUrl?: (string|null);

                    /** UrlMapTest expectedRedirectResponseCode. */
                    public expectedRedirectResponseCode?: (number|null);

                    /** UrlMapTest headers. */
                    public headers: google.cloud.compute.v1.IUrlMapTestHeader[];

                    /** UrlMapTest host. */
                    public host?: (string|null);

                    /** UrlMapTest path. */
                    public path?: (string|null);

                    /** UrlMapTest service. */
                    public service?: (string|null);

                    /**
                     * Creates a new UrlMapTest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapTest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapTest): google.cloud.compute.v1.UrlMapTest;

                    /**
                     * Encodes the specified UrlMapTest message. Does not implicitly {@link google.cloud.compute.v1.UrlMapTest.verify|verify} messages.
                     * @param message UrlMapTest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapTest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapTest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapTest.verify|verify} messages.
                     * @param message UrlMapTest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapTest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapTest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapTest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapTest;

                    /**
                     * Decodes an UrlMapTest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapTest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapTest;

                    /**
                     * Verifies an UrlMapTest message.
                     * @param message Plain 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 UrlMapTest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapTest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapTest;

                    /**
                     * Creates a plain object from an UrlMapTest message. Also converts values to other types if specified.
                     * @param message UrlMapTest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapTest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapTest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapTest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapTestHeader. */
                interface IUrlMapTestHeader {

                    /** UrlMapTestHeader name */
                    name?: (string|null);

                    /** UrlMapTestHeader value */
                    value?: (string|null);
                }

                /** Represents an UrlMapTestHeader. */
                class UrlMapTestHeader implements IUrlMapTestHeader {

                    /**
                     * Constructs a new UrlMapTestHeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapTestHeader);

                    /** UrlMapTestHeader name. */
                    public name?: (string|null);

                    /** UrlMapTestHeader value. */
                    public value?: (string|null);

                    /**
                     * Creates a new UrlMapTestHeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapTestHeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapTestHeader): google.cloud.compute.v1.UrlMapTestHeader;

                    /**
                     * Encodes the specified UrlMapTestHeader message. Does not implicitly {@link google.cloud.compute.v1.UrlMapTestHeader.verify|verify} messages.
                     * @param message UrlMapTestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapTestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapTestHeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapTestHeader.verify|verify} messages.
                     * @param message UrlMapTestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapTestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapTestHeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapTestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapTestHeader;

                    /**
                     * Decodes an UrlMapTestHeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapTestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapTestHeader;

                    /**
                     * Verifies an UrlMapTestHeader message.
                     * @param message Plain 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 UrlMapTestHeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapTestHeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapTestHeader;

                    /**
                     * Creates a plain object from an UrlMapTestHeader message. Also converts values to other types if specified.
                     * @param message UrlMapTestHeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapTestHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapTestHeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapTestHeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapValidationResult. */
                interface IUrlMapValidationResult {

                    /** UrlMapValidationResult loadErrors */
                    loadErrors?: (string[]|null);

                    /** UrlMapValidationResult loadSucceeded */
                    loadSucceeded?: (boolean|null);

                    /** UrlMapValidationResult testFailures */
                    testFailures?: (google.cloud.compute.v1.ITestFailure[]|null);

                    /** UrlMapValidationResult testPassed */
                    testPassed?: (boolean|null);
                }

                /** Represents an UrlMapValidationResult. */
                class UrlMapValidationResult implements IUrlMapValidationResult {

                    /**
                     * Constructs a new UrlMapValidationResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapValidationResult);

                    /** UrlMapValidationResult loadErrors. */
                    public loadErrors: string[];

                    /** UrlMapValidationResult loadSucceeded. */
                    public loadSucceeded?: (boolean|null);

                    /** UrlMapValidationResult testFailures. */
                    public testFailures: google.cloud.compute.v1.ITestFailure[];

                    /** UrlMapValidationResult testPassed. */
                    public testPassed?: (boolean|null);

                    /**
                     * Creates a new UrlMapValidationResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapValidationResult instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapValidationResult): google.cloud.compute.v1.UrlMapValidationResult;

                    /**
                     * Encodes the specified UrlMapValidationResult message. Does not implicitly {@link google.cloud.compute.v1.UrlMapValidationResult.verify|verify} messages.
                     * @param message UrlMapValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapValidationResult message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapValidationResult.verify|verify} messages.
                     * @param message UrlMapValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapValidationResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapValidationResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapValidationResult;

                    /**
                     * Decodes an UrlMapValidationResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapValidationResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapValidationResult;

                    /**
                     * Verifies an UrlMapValidationResult message.
                     * @param message Plain 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 UrlMapValidationResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapValidationResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapValidationResult;

                    /**
                     * Creates a plain object from an UrlMapValidationResult message. Also converts values to other types if specified.
                     * @param message UrlMapValidationResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapValidationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapValidationResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapValidationResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapsAggregatedList. */
                interface IUrlMapsAggregatedList {

                    /** UrlMapsAggregatedList id */
                    id?: (string|null);

                    /** UrlMapsAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IUrlMapsScopedList }|null);

                    /** UrlMapsAggregatedList kind */
                    kind?: (string|null);

                    /** UrlMapsAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** UrlMapsAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** UrlMapsAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** UrlMapsAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an UrlMapsAggregatedList. */
                class UrlMapsAggregatedList implements IUrlMapsAggregatedList {

                    /**
                     * Constructs a new UrlMapsAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapsAggregatedList);

                    /** UrlMapsAggregatedList id. */
                    public id?: (string|null);

                    /** UrlMapsAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IUrlMapsScopedList };

                    /** UrlMapsAggregatedList kind. */
                    public kind?: (string|null);

                    /** UrlMapsAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** UrlMapsAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** UrlMapsAggregatedList unreachables. */
                    public unreachables: string[];

                    /** UrlMapsAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new UrlMapsAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapsAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapsAggregatedList): google.cloud.compute.v1.UrlMapsAggregatedList;

                    /**
                     * Encodes the specified UrlMapsAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.UrlMapsAggregatedList.verify|verify} messages.
                     * @param message UrlMapsAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapsAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapsAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapsAggregatedList.verify|verify} messages.
                     * @param message UrlMapsAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapsAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapsAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapsAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapsAggregatedList;

                    /**
                     * Decodes an UrlMapsAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapsAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapsAggregatedList;

                    /**
                     * Verifies an UrlMapsAggregatedList message.
                     * @param message Plain 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 UrlMapsAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapsAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapsAggregatedList;

                    /**
                     * Creates a plain object from an UrlMapsAggregatedList message. Also converts values to other types if specified.
                     * @param message UrlMapsAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapsAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapsAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapsAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapsScopedList. */
                interface IUrlMapsScopedList {

                    /** UrlMapsScopedList urlMaps */
                    urlMaps?: (google.cloud.compute.v1.IUrlMap[]|null);

                    /** UrlMapsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents an UrlMapsScopedList. */
                class UrlMapsScopedList implements IUrlMapsScopedList {

                    /**
                     * Constructs a new UrlMapsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapsScopedList);

                    /** UrlMapsScopedList urlMaps. */
                    public urlMaps: google.cloud.compute.v1.IUrlMap[];

                    /** UrlMapsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new UrlMapsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapsScopedList): google.cloud.compute.v1.UrlMapsScopedList;

                    /**
                     * Encodes the specified UrlMapsScopedList message. Does not implicitly {@link google.cloud.compute.v1.UrlMapsScopedList.verify|verify} messages.
                     * @param message UrlMapsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapsScopedList.verify|verify} messages.
                     * @param message UrlMapsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapsScopedList;

                    /**
                     * Decodes an UrlMapsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapsScopedList;

                    /**
                     * Verifies an UrlMapsScopedList message.
                     * @param message Plain 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 UrlMapsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapsScopedList;

                    /**
                     * Creates a plain object from an UrlMapsScopedList message. Also converts values to other types if specified.
                     * @param message UrlMapsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapsValidateRequest. */
                interface IUrlMapsValidateRequest {

                    /** UrlMapsValidateRequest loadBalancingSchemes */
                    loadBalancingSchemes?: (string[]|null);

                    /** UrlMapsValidateRequest resource */
                    resource?: (google.cloud.compute.v1.IUrlMap|null);
                }

                /** Represents an UrlMapsValidateRequest. */
                class UrlMapsValidateRequest implements IUrlMapsValidateRequest {

                    /**
                     * Constructs a new UrlMapsValidateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapsValidateRequest);

                    /** UrlMapsValidateRequest loadBalancingSchemes. */
                    public loadBalancingSchemes: string[];

                    /** UrlMapsValidateRequest resource. */
                    public resource?: (google.cloud.compute.v1.IUrlMap|null);

                    /**
                     * Creates a new UrlMapsValidateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapsValidateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapsValidateRequest): google.cloud.compute.v1.UrlMapsValidateRequest;

                    /**
                     * Encodes the specified UrlMapsValidateRequest message. Does not implicitly {@link google.cloud.compute.v1.UrlMapsValidateRequest.verify|verify} messages.
                     * @param message UrlMapsValidateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapsValidateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapsValidateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapsValidateRequest.verify|verify} messages.
                     * @param message UrlMapsValidateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapsValidateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapsValidateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapsValidateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapsValidateRequest;

                    /**
                     * Decodes an UrlMapsValidateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapsValidateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapsValidateRequest;

                    /**
                     * Verifies an UrlMapsValidateRequest message.
                     * @param message Plain 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 UrlMapsValidateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapsValidateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapsValidateRequest;

                    /**
                     * Creates a plain object from an UrlMapsValidateRequest message. Also converts values to other types if specified.
                     * @param message UrlMapsValidateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapsValidateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapsValidateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapsValidateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace UrlMapsValidateRequest {

                    /** LoadBalancingSchemes enum. */
                    enum LoadBalancingSchemes {
                        UNDEFINED_LOAD_BALANCING_SCHEMES = 0,
                        EXTERNAL = 35607499,
                        EXTERNAL_MANAGED = 512006923,
                        LOAD_BALANCING_SCHEME_UNSPECIFIED = 526507452
                    }
                }

                /** Properties of an UrlMapsValidateResponse. */
                interface IUrlMapsValidateResponse {

                    /** UrlMapsValidateResponse result */
                    result?: (google.cloud.compute.v1.IUrlMapValidationResult|null);
                }

                /** Represents an UrlMapsValidateResponse. */
                class UrlMapsValidateResponse implements IUrlMapsValidateResponse {

                    /**
                     * Constructs a new UrlMapsValidateResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlMapsValidateResponse);

                    /** UrlMapsValidateResponse result. */
                    public result?: (google.cloud.compute.v1.IUrlMapValidationResult|null);

                    /**
                     * Creates a new UrlMapsValidateResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapsValidateResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlMapsValidateResponse): google.cloud.compute.v1.UrlMapsValidateResponse;

                    /**
                     * Encodes the specified UrlMapsValidateResponse message. Does not implicitly {@link google.cloud.compute.v1.UrlMapsValidateResponse.verify|verify} messages.
                     * @param message UrlMapsValidateResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlMapsValidateResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapsValidateResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlMapsValidateResponse.verify|verify} messages.
                     * @param message UrlMapsValidateResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlMapsValidateResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapsValidateResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapsValidateResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlMapsValidateResponse;

                    /**
                     * Decodes an UrlMapsValidateResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapsValidateResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlMapsValidateResponse;

                    /**
                     * Verifies an UrlMapsValidateResponse message.
                     * @param message Plain 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 UrlMapsValidateResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapsValidateResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlMapsValidateResponse;

                    /**
                     * Creates a plain object from an UrlMapsValidateResponse message. Also converts values to other types if specified.
                     * @param message UrlMapsValidateResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlMapsValidateResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapsValidateResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapsValidateResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlRewrite. */
                interface IUrlRewrite {

                    /** UrlRewrite hostRewrite */
                    hostRewrite?: (string|null);

                    /** UrlRewrite pathPrefixRewrite */
                    pathPrefixRewrite?: (string|null);

                    /** UrlRewrite pathTemplateRewrite */
                    pathTemplateRewrite?: (string|null);
                }

                /** Represents an UrlRewrite. */
                class UrlRewrite implements IUrlRewrite {

                    /**
                     * Constructs a new UrlRewrite.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUrlRewrite);

                    /** UrlRewrite hostRewrite. */
                    public hostRewrite?: (string|null);

                    /** UrlRewrite pathPrefixRewrite. */
                    public pathPrefixRewrite?: (string|null);

                    /** UrlRewrite pathTemplateRewrite. */
                    public pathTemplateRewrite?: (string|null);

                    /**
                     * Creates a new UrlRewrite instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlRewrite instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUrlRewrite): google.cloud.compute.v1.UrlRewrite;

                    /**
                     * Encodes the specified UrlRewrite message. Does not implicitly {@link google.cloud.compute.v1.UrlRewrite.verify|verify} messages.
                     * @param message UrlRewrite message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUrlRewrite, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlRewrite message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UrlRewrite.verify|verify} messages.
                     * @param message UrlRewrite message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUrlRewrite, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlRewrite message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlRewrite
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UrlRewrite;

                    /**
                     * Decodes an UrlRewrite message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlRewrite
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UrlRewrite;

                    /**
                     * Verifies an UrlRewrite message.
                     * @param message Plain 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 UrlRewrite message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlRewrite
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UrlRewrite;

                    /**
                     * Creates a plain object from an UrlRewrite message. Also converts values to other types if specified.
                     * @param message UrlRewrite
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UrlRewrite, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlRewrite to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlRewrite
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a UsableSubnetwork. */
                interface IUsableSubnetwork {

                    /** UsableSubnetwork externalIpv6Prefix */
                    externalIpv6Prefix?: (string|null);

                    /** UsableSubnetwork internalIpv6Prefix */
                    internalIpv6Prefix?: (string|null);

                    /** UsableSubnetwork ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** UsableSubnetwork ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** UsableSubnetwork network */
                    network?: (string|null);

                    /** UsableSubnetwork purpose */
                    purpose?: (string|null);

                    /** UsableSubnetwork role */
                    role?: (string|null);

                    /** UsableSubnetwork secondaryIpRanges */
                    secondaryIpRanges?: (google.cloud.compute.v1.IUsableSubnetworkSecondaryRange[]|null);

                    /** UsableSubnetwork stackType */
                    stackType?: (string|null);

                    /** UsableSubnetwork subnetwork */
                    subnetwork?: (string|null);
                }

                /** Represents a UsableSubnetwork. */
                class UsableSubnetwork implements IUsableSubnetwork {

                    /**
                     * Constructs a new UsableSubnetwork.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUsableSubnetwork);

                    /** UsableSubnetwork externalIpv6Prefix. */
                    public externalIpv6Prefix?: (string|null);

                    /** UsableSubnetwork internalIpv6Prefix. */
                    public internalIpv6Prefix?: (string|null);

                    /** UsableSubnetwork ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** UsableSubnetwork ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** UsableSubnetwork network. */
                    public network?: (string|null);

                    /** UsableSubnetwork purpose. */
                    public purpose?: (string|null);

                    /** UsableSubnetwork role. */
                    public role?: (string|null);

                    /** UsableSubnetwork secondaryIpRanges. */
                    public secondaryIpRanges: google.cloud.compute.v1.IUsableSubnetworkSecondaryRange[];

                    /** UsableSubnetwork stackType. */
                    public stackType?: (string|null);

                    /** UsableSubnetwork subnetwork. */
                    public subnetwork?: (string|null);

                    /**
                     * Creates a new UsableSubnetwork instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UsableSubnetwork instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUsableSubnetwork): google.cloud.compute.v1.UsableSubnetwork;

                    /**
                     * Encodes the specified UsableSubnetwork message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IUsableSubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UsableSubnetwork message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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;
                }

                namespace UsableSubnetwork {

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677
                    }

                    /** Purpose enum. */
                    enum Purpose {
                        UNDEFINED_PURPOSE = 0,
                        GLOBAL_MANAGED_PROXY = 236463602,
                        INTERNAL_HTTPS_LOAD_BALANCER = 248748889,
                        PEER_MIGRATION = 491902225,
                        PRIVATE = 403485027,
                        PRIVATE_NAT = 367764517,
                        PRIVATE_RFC_1918 = 254902107,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        REGIONAL_MANAGED_PROXY = 153049966
                    }

                    /** Role enum. */
                    enum Role {
                        UNDEFINED_ROLE = 0,
                        ACTIVE = 314733318,
                        BACKUP = 341010882
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100
                    }
                }

                /** Properties of a UsableSubnetworkSecondaryRange. */
                interface IUsableSubnetworkSecondaryRange {

                    /** UsableSubnetworkSecondaryRange ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** UsableSubnetworkSecondaryRange rangeName */
                    rangeName?: (string|null);
                }

                /** Represents a UsableSubnetworkSecondaryRange. */
                class UsableSubnetworkSecondaryRange implements IUsableSubnetworkSecondaryRange {

                    /**
                     * Constructs a new UsableSubnetworkSecondaryRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUsableSubnetworkSecondaryRange);

                    /** UsableSubnetworkSecondaryRange ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** UsableSubnetworkSecondaryRange rangeName. */
                    public rangeName?: (string|null);

                    /**
                     * Creates a new UsableSubnetworkSecondaryRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UsableSubnetworkSecondaryRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUsableSubnetworkSecondaryRange): google.cloud.compute.v1.UsableSubnetworkSecondaryRange;

                    /**
                     * Encodes the specified UsableSubnetworkSecondaryRange message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IUsableSubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UsableSubnetworkSecondaryRange message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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;
                }

                /** Properties of a UsableSubnetworksAggregatedList. */
                interface IUsableSubnetworksAggregatedList {

                    /** UsableSubnetworksAggregatedList id */
                    id?: (string|null);

                    /** UsableSubnetworksAggregatedList items */
                    items?: (google.cloud.compute.v1.IUsableSubnetwork[]|null);

                    /** UsableSubnetworksAggregatedList kind */
                    kind?: (string|null);

                    /** UsableSubnetworksAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** UsableSubnetworksAggregatedList scopedWarnings */
                    scopedWarnings?: (google.cloud.compute.v1.ISubnetworksScopedWarning[]|null);

                    /** UsableSubnetworksAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** UsableSubnetworksAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** UsableSubnetworksAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a UsableSubnetworksAggregatedList. */
                class UsableSubnetworksAggregatedList implements IUsableSubnetworksAggregatedList {

                    /**
                     * Constructs a new UsableSubnetworksAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUsableSubnetworksAggregatedList);

                    /** UsableSubnetworksAggregatedList id. */
                    public id?: (string|null);

                    /** UsableSubnetworksAggregatedList items. */
                    public items: google.cloud.compute.v1.IUsableSubnetwork[];

                    /** UsableSubnetworksAggregatedList kind. */
                    public kind?: (string|null);

                    /** UsableSubnetworksAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** UsableSubnetworksAggregatedList scopedWarnings. */
                    public scopedWarnings: google.cloud.compute.v1.ISubnetworksScopedWarning[];

                    /** UsableSubnetworksAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** UsableSubnetworksAggregatedList unreachables. */
                    public unreachables: string[];

                    /** UsableSubnetworksAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new UsableSubnetworksAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UsableSubnetworksAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUsableSubnetworksAggregatedList): google.cloud.compute.v1.UsableSubnetworksAggregatedList;

                    /**
                     * Encodes the specified UsableSubnetworksAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.UsableSubnetworksAggregatedList.verify|verify} messages.
                     * @param message UsableSubnetworksAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUsableSubnetworksAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UsableSubnetworksAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UsableSubnetworksAggregatedList.verify|verify} messages.
                     * @param message UsableSubnetworksAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUsableSubnetworksAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a UsableSubnetworksAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UsableSubnetworksAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UsableSubnetworksAggregatedList;

                    /**
                     * Decodes a UsableSubnetworksAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UsableSubnetworksAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UsableSubnetworksAggregatedList;

                    /**
                     * Verifies a UsableSubnetworksAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a UsableSubnetworksAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UsableSubnetworksAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UsableSubnetworksAggregatedList;

                    /**
                     * Creates a plain object from a UsableSubnetworksAggregatedList message. Also converts values to other types if specified.
                     * @param message UsableSubnetworksAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UsableSubnetworksAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UsableSubnetworksAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UsableSubnetworksAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a UsageExportLocation. */
                interface IUsageExportLocation {

                    /** UsageExportLocation bucketName */
                    bucketName?: (string|null);

                    /** UsageExportLocation reportNamePrefix */
                    reportNamePrefix?: (string|null);
                }

                /** Represents a UsageExportLocation. */
                class UsageExportLocation implements IUsageExportLocation {

                    /**
                     * Constructs a new UsageExportLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IUsageExportLocation);

                    /** UsageExportLocation bucketName. */
                    public bucketName?: (string|null);

                    /** UsageExportLocation reportNamePrefix. */
                    public reportNamePrefix?: (string|null);

                    /**
                     * Creates a new UsageExportLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UsageExportLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IUsageExportLocation): google.cloud.compute.v1.UsageExportLocation;

                    /**
                     * Encodes the specified UsageExportLocation message. Does not implicitly {@link google.cloud.compute.v1.UsageExportLocation.verify|verify} messages.
                     * @param message UsageExportLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IUsageExportLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UsageExportLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1.UsageExportLocation.verify|verify} messages.
                     * @param message UsageExportLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IUsageExportLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a UsageExportLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UsageExportLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.UsageExportLocation;

                    /**
                     * Decodes a UsageExportLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UsageExportLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.UsageExportLocation;

                    /**
                     * Verifies a UsageExportLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a UsageExportLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UsageExportLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.UsageExportLocation;

                    /**
                     * Creates a plain object from a UsageExportLocation message. Also converts values to other types if specified.
                     * @param message UsageExportLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.UsageExportLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UsageExportLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UsageExportLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ValidateRegionUrlMapRequest. */
                interface IValidateRegionUrlMapRequest {

                    /** ValidateRegionUrlMapRequest project */
                    project?: (string|null);

                    /** ValidateRegionUrlMapRequest region */
                    region?: (string|null);

                    /** ValidateRegionUrlMapRequest regionUrlMapsValidateRequestResource */
                    regionUrlMapsValidateRequestResource?: (google.cloud.compute.v1.IRegionUrlMapsValidateRequest|null);

                    /** ValidateRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a ValidateRegionUrlMapRequest. */
                class ValidateRegionUrlMapRequest implements IValidateRegionUrlMapRequest {

                    /**
                     * Constructs a new ValidateRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IValidateRegionUrlMapRequest);

                    /** ValidateRegionUrlMapRequest project. */
                    public project: string;

                    /** ValidateRegionUrlMapRequest region. */
                    public region: string;

                    /** ValidateRegionUrlMapRequest regionUrlMapsValidateRequestResource. */
                    public regionUrlMapsValidateRequestResource?: (google.cloud.compute.v1.IRegionUrlMapsValidateRequest|null);

                    /** ValidateRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new ValidateRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidateRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IValidateRegionUrlMapRequest): google.cloud.compute.v1.ValidateRegionUrlMapRequest;

                    /**
                     * Encodes the specified ValidateRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.ValidateRegionUrlMapRequest.verify|verify} messages.
                     * @param message ValidateRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IValidateRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidateRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ValidateRegionUrlMapRequest.verify|verify} messages.
                     * @param message ValidateRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IValidateRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidateRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidateRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ValidateRegionUrlMapRequest;

                    /**
                     * Decodes a ValidateRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidateRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ValidateRegionUrlMapRequest;

                    /**
                     * Verifies a ValidateRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValidateRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidateRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ValidateRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a ValidateRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message ValidateRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ValidateRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidateRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidateRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ValidateUrlMapRequest. */
                interface IValidateUrlMapRequest {

                    /** ValidateUrlMapRequest project */
                    project?: (string|null);

                    /** ValidateUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** ValidateUrlMapRequest urlMapsValidateRequestResource */
                    urlMapsValidateRequestResource?: (google.cloud.compute.v1.IUrlMapsValidateRequest|null);
                }

                /** Represents a ValidateUrlMapRequest. */
                class ValidateUrlMapRequest implements IValidateUrlMapRequest {

                    /**
                     * Constructs a new ValidateUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IValidateUrlMapRequest);

                    /** ValidateUrlMapRequest project. */
                    public project: string;

                    /** ValidateUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** ValidateUrlMapRequest urlMapsValidateRequestResource. */
                    public urlMapsValidateRequestResource?: (google.cloud.compute.v1.IUrlMapsValidateRequest|null);

                    /**
                     * Creates a new ValidateUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidateUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IValidateUrlMapRequest): google.cloud.compute.v1.ValidateUrlMapRequest;

                    /**
                     * Encodes the specified ValidateUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1.ValidateUrlMapRequest.verify|verify} messages.
                     * @param message ValidateUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IValidateUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidateUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ValidateUrlMapRequest.verify|verify} messages.
                     * @param message ValidateUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IValidateUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidateUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidateUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ValidateUrlMapRequest;

                    /**
                     * Decodes a ValidateUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidateUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ValidateUrlMapRequest;

                    /**
                     * Verifies a ValidateUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValidateUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidateUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ValidateUrlMapRequest;

                    /**
                     * Creates a plain object from a ValidateUrlMapRequest message. Also converts values to other types if specified.
                     * @param message ValidateUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ValidateUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidateUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidateUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmEndpointNatMappings. */
                interface IVmEndpointNatMappings {

                    /** VmEndpointNatMappings instanceName */
                    instanceName?: (string|null);

                    /** VmEndpointNatMappings interfaceNatMappings */
                    interfaceNatMappings?: (google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappings[]|null);
                }

                /** Represents a VmEndpointNatMappings. */
                class VmEndpointNatMappings implements IVmEndpointNatMappings {

                    /**
                     * Constructs a new VmEndpointNatMappings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVmEndpointNatMappings);

                    /** VmEndpointNatMappings instanceName. */
                    public instanceName?: (string|null);

                    /** VmEndpointNatMappings interfaceNatMappings. */
                    public interfaceNatMappings: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappings[];

                    /**
                     * Creates a new VmEndpointNatMappings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmEndpointNatMappings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVmEndpointNatMappings): google.cloud.compute.v1.VmEndpointNatMappings;

                    /**
                     * Encodes the specified VmEndpointNatMappings message. Does not implicitly {@link google.cloud.compute.v1.VmEndpointNatMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVmEndpointNatMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmEndpointNatMappings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VmEndpointNatMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVmEndpointNatMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmEndpointNatMappings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmEndpointNatMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VmEndpointNatMappings;

                    /**
                     * Decodes a VmEndpointNatMappings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmEndpointNatMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VmEndpointNatMappings;

                    /**
                     * Verifies a VmEndpointNatMappings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmEndpointNatMappings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmEndpointNatMappings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VmEndpointNatMappings;

                    /**
                     * Creates a plain object from a VmEndpointNatMappings message. Also converts values to other types if specified.
                     * @param message VmEndpointNatMappings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VmEndpointNatMappings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmEndpointNatMappings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmEndpointNatMappings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmEndpointNatMappingsInterfaceNatMappings. */
                interface IVmEndpointNatMappingsInterfaceNatMappings {

                    /** VmEndpointNatMappingsInterfaceNatMappings drainNatIpPortRanges */
                    drainNatIpPortRanges?: (string[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings natIpPortRanges */
                    natIpPortRanges?: (string[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings numTotalDrainNatPorts */
                    numTotalDrainNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings numTotalNatPorts */
                    numTotalNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings ruleMappings */
                    ruleMappings?: (google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings sourceAliasIpRange */
                    sourceAliasIpRange?: (string|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings sourceVirtualIp */
                    sourceVirtualIp?: (string|null);
                }

                /** Represents a VmEndpointNatMappingsInterfaceNatMappings. */
                class VmEndpointNatMappingsInterfaceNatMappings implements IVmEndpointNatMappingsInterfaceNatMappings {

                    /**
                     * Constructs a new VmEndpointNatMappingsInterfaceNatMappings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappings);

                    /** VmEndpointNatMappingsInterfaceNatMappings drainNatIpPortRanges. */
                    public drainNatIpPortRanges: string[];

                    /** VmEndpointNatMappingsInterfaceNatMappings natIpPortRanges. */
                    public natIpPortRanges: string[];

                    /** VmEndpointNatMappingsInterfaceNatMappings numTotalDrainNatPorts. */
                    public numTotalDrainNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings numTotalNatPorts. */
                    public numTotalNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings ruleMappings. */
                    public ruleMappings: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings[];

                    /** VmEndpointNatMappingsInterfaceNatMappings sourceAliasIpRange. */
                    public sourceAliasIpRange?: (string|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings sourceVirtualIp. */
                    public sourceVirtualIp?: (string|null);

                    /**
                     * Creates a new VmEndpointNatMappingsInterfaceNatMappings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmEndpointNatMappingsInterfaceNatMappings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappings): google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappings;

                    /**
                     * Encodes the specified VmEndpointNatMappingsInterfaceNatMappings message. Does not implicitly {@link google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappingsInterfaceNatMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmEndpointNatMappingsInterfaceNatMappings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappingsInterfaceNatMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmEndpointNatMappingsInterfaceNatMappings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmEndpointNatMappingsInterfaceNatMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappings;

                    /**
                     * Decodes a VmEndpointNatMappingsInterfaceNatMappings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmEndpointNatMappingsInterfaceNatMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappings;

                    /**
                     * Verifies a VmEndpointNatMappingsInterfaceNatMappings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmEndpointNatMappingsInterfaceNatMappings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmEndpointNatMappingsInterfaceNatMappings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappings;

                    /**
                     * Creates a plain object from a VmEndpointNatMappingsInterfaceNatMappings message. Also converts values to other types if specified.
                     * @param message VmEndpointNatMappingsInterfaceNatMappings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmEndpointNatMappingsInterfaceNatMappings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmEndpointNatMappingsInterfaceNatMappings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings. */
                interface IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings {

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings drainNatIpPortRanges */
                    drainNatIpPortRanges?: (string[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings natIpPortRanges */
                    natIpPortRanges?: (string[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings numTotalDrainNatPorts */
                    numTotalDrainNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings numTotalNatPorts */
                    numTotalNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings ruleNumber */
                    ruleNumber?: (number|null);
                }

                /** Represents a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings. */
                class VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings implements IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings {

                    /**
                     * Constructs a new VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings drainNatIpPortRanges. */
                    public drainNatIpPortRanges: string[];

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings natIpPortRanges. */
                    public natIpPortRanges: string[];

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings numTotalDrainNatPorts. */
                    public numTotalDrainNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings numTotalNatPorts. */
                    public numTotalNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings ruleNumber. */
                    public ruleNumber?: (number|null);

                    /**
                     * Creates a new VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings): google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings;

                    /**
                     * Encodes the specified VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message. Does not implicitly {@link google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings;

                    /**
                     * Decodes a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings;

                    /**
                     * Verifies a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings;

                    /**
                     * Creates a plain object from a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message. Also converts values to other types if specified.
                     * @param message VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmEndpointNatMappingsList. */
                interface IVmEndpointNatMappingsList {

                    /** VmEndpointNatMappingsList id */
                    id?: (string|null);

                    /** VmEndpointNatMappingsList kind */
                    kind?: (string|null);

                    /** VmEndpointNatMappingsList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VmEndpointNatMappingsList result */
                    result?: (google.cloud.compute.v1.IVmEndpointNatMappings[]|null);

                    /** VmEndpointNatMappingsList selfLink */
                    selfLink?: (string|null);

                    /** VmEndpointNatMappingsList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a VmEndpointNatMappingsList. */
                class VmEndpointNatMappingsList implements IVmEndpointNatMappingsList {

                    /**
                     * Constructs a new VmEndpointNatMappingsList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVmEndpointNatMappingsList);

                    /** VmEndpointNatMappingsList id. */
                    public id?: (string|null);

                    /** VmEndpointNatMappingsList kind. */
                    public kind?: (string|null);

                    /** VmEndpointNatMappingsList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VmEndpointNatMappingsList result. */
                    public result: google.cloud.compute.v1.IVmEndpointNatMappings[];

                    /** VmEndpointNatMappingsList selfLink. */
                    public selfLink?: (string|null);

                    /** VmEndpointNatMappingsList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new VmEndpointNatMappingsList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmEndpointNatMappingsList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVmEndpointNatMappingsList): google.cloud.compute.v1.VmEndpointNatMappingsList;

                    /**
                     * Encodes the specified VmEndpointNatMappingsList message. Does not implicitly {@link google.cloud.compute.v1.VmEndpointNatMappingsList.verify|verify} messages.
                     * @param message VmEndpointNatMappingsList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVmEndpointNatMappingsList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmEndpointNatMappingsList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VmEndpointNatMappingsList.verify|verify} messages.
                     * @param message VmEndpointNatMappingsList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVmEndpointNatMappingsList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmEndpointNatMappingsList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmEndpointNatMappingsList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VmEndpointNatMappingsList;

                    /**
                     * Decodes a VmEndpointNatMappingsList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmEndpointNatMappingsList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VmEndpointNatMappingsList;

                    /**
                     * Verifies a VmEndpointNatMappingsList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmEndpointNatMappingsList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmEndpointNatMappingsList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VmEndpointNatMappingsList;

                    /**
                     * Creates a plain object from a VmEndpointNatMappingsList message. Also converts values to other types if specified.
                     * @param message VmEndpointNatMappingsList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VmEndpointNatMappingsList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmEndpointNatMappingsList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmEndpointNatMappingsList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGateway. */
                interface IVpnGateway {

                    /** VpnGateway creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** VpnGateway description */
                    description?: (string|null);

                    /** VpnGateway gatewayIpVersion */
                    gatewayIpVersion?: (string|null);

                    /** VpnGateway id */
                    id?: (number|Long|string|null);

                    /** VpnGateway kind */
                    kind?: (string|null);

                    /** VpnGateway labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** VpnGateway labels */
                    labels?: ({ [k: string]: string }|null);

                    /** VpnGateway name */
                    name?: (string|null);

                    /** VpnGateway network */
                    network?: (string|null);

                    /** VpnGateway params */
                    params?: (google.cloud.compute.v1.IVpnGatewayParams|null);

                    /** VpnGateway region */
                    region?: (string|null);

                    /** VpnGateway selfLink */
                    selfLink?: (string|null);

                    /** VpnGateway stackType */
                    stackType?: (string|null);

                    /** VpnGateway vpnInterfaces */
                    vpnInterfaces?: (google.cloud.compute.v1.IVpnGatewayVpnGatewayInterface[]|null);
                }

                /** Represents a VpnGateway. */
                class VpnGateway implements IVpnGateway {

                    /**
                     * Constructs a new VpnGateway.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGateway);

                    /** VpnGateway creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** VpnGateway description. */
                    public description?: (string|null);

                    /** VpnGateway gatewayIpVersion. */
                    public gatewayIpVersion?: (string|null);

                    /** VpnGateway id. */
                    public id?: (number|Long|string|null);

                    /** VpnGateway kind. */
                    public kind?: (string|null);

                    /** VpnGateway labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** VpnGateway labels. */
                    public labels: { [k: string]: string };

                    /** VpnGateway name. */
                    public name?: (string|null);

                    /** VpnGateway network. */
                    public network?: (string|null);

                    /** VpnGateway params. */
                    public params?: (google.cloud.compute.v1.IVpnGatewayParams|null);

                    /** VpnGateway region. */
                    public region?: (string|null);

                    /** VpnGateway selfLink. */
                    public selfLink?: (string|null);

                    /** VpnGateway stackType. */
                    public stackType?: (string|null);

                    /** VpnGateway vpnInterfaces. */
                    public vpnInterfaces: google.cloud.compute.v1.IVpnGatewayVpnGatewayInterface[];

                    /**
                     * Creates a new VpnGateway instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGateway instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGateway): google.cloud.compute.v1.VpnGateway;

                    /**
                     * Encodes the specified VpnGateway message. Does not implicitly {@link google.cloud.compute.v1.VpnGateway.verify|verify} messages.
                     * @param message VpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGateway message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGateway.verify|verify} messages.
                     * @param message VpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGateway message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGateway;

                    /**
                     * Decodes a VpnGateway message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGateway;

                    /**
                     * Verifies a VpnGateway message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGateway message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGateway
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGateway;

                    /**
                     * Creates a plain object from a VpnGateway message. Also converts values to other types if specified.
                     * @param message VpnGateway
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGateway, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGateway to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGateway
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace VpnGateway {

                    /** GatewayIpVersion enum. */
                    enum GatewayIpVersion {
                        UNDEFINED_GATEWAY_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100
                    }
                }

                /** Properties of a VpnGatewayAggregatedList. */
                interface IVpnGatewayAggregatedList {

                    /** VpnGatewayAggregatedList id */
                    id?: (string|null);

                    /** VpnGatewayAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IVpnGatewaysScopedList }|null);

                    /** VpnGatewayAggregatedList kind */
                    kind?: (string|null);

                    /** VpnGatewayAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VpnGatewayAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** VpnGatewayAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** VpnGatewayAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a VpnGatewayAggregatedList. */
                class VpnGatewayAggregatedList implements IVpnGatewayAggregatedList {

                    /**
                     * Constructs a new VpnGatewayAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewayAggregatedList);

                    /** VpnGatewayAggregatedList id. */
                    public id?: (string|null);

                    /** VpnGatewayAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IVpnGatewaysScopedList };

                    /** VpnGatewayAggregatedList kind. */
                    public kind?: (string|null);

                    /** VpnGatewayAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VpnGatewayAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** VpnGatewayAggregatedList unreachables. */
                    public unreachables: string[];

                    /** VpnGatewayAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new VpnGatewayAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewayAggregatedList): google.cloud.compute.v1.VpnGatewayAggregatedList;

                    /**
                     * Encodes the specified VpnGatewayAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayAggregatedList.verify|verify} messages.
                     * @param message VpnGatewayAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewayAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayAggregatedList.verify|verify} messages.
                     * @param message VpnGatewayAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewayAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewayAggregatedList;

                    /**
                     * Decodes a VpnGatewayAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewayAggregatedList;

                    /**
                     * Verifies a VpnGatewayAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewayAggregatedList;

                    /**
                     * Creates a plain object from a VpnGatewayAggregatedList message. Also converts values to other types if specified.
                     * @param message VpnGatewayAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewayAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayList. */
                interface IVpnGatewayList {

                    /** VpnGatewayList id */
                    id?: (string|null);

                    /** VpnGatewayList items */
                    items?: (google.cloud.compute.v1.IVpnGateway[]|null);

                    /** VpnGatewayList kind */
                    kind?: (string|null);

                    /** VpnGatewayList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VpnGatewayList selfLink */
                    selfLink?: (string|null);

                    /** VpnGatewayList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a VpnGatewayList. */
                class VpnGatewayList implements IVpnGatewayList {

                    /**
                     * Constructs a new VpnGatewayList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewayList);

                    /** VpnGatewayList id. */
                    public id?: (string|null);

                    /** VpnGatewayList items. */
                    public items: google.cloud.compute.v1.IVpnGateway[];

                    /** VpnGatewayList kind. */
                    public kind?: (string|null);

                    /** VpnGatewayList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VpnGatewayList selfLink. */
                    public selfLink?: (string|null);

                    /** VpnGatewayList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new VpnGatewayList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewayList): google.cloud.compute.v1.VpnGatewayList;

                    /**
                     * Encodes the specified VpnGatewayList message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayList.verify|verify} messages.
                     * @param message VpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayList.verify|verify} messages.
                     * @param message VpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewayList;

                    /**
                     * Decodes a VpnGatewayList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewayList;

                    /**
                     * Verifies a VpnGatewayList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewayList;

                    /**
                     * Creates a plain object from a VpnGatewayList message. Also converts values to other types if specified.
                     * @param message VpnGatewayList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewayList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayParams. */
                interface IVpnGatewayParams {

                    /** VpnGatewayParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a VpnGatewayParams. */
                class VpnGatewayParams implements IVpnGatewayParams {

                    /**
                     * Constructs a new VpnGatewayParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewayParams);

                    /** VpnGatewayParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new VpnGatewayParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewayParams): google.cloud.compute.v1.VpnGatewayParams;

                    /**
                     * Encodes the specified VpnGatewayParams message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayParams.verify|verify} messages.
                     * @param message VpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayParams.verify|verify} messages.
                     * @param message VpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewayParams;

                    /**
                     * Decodes a VpnGatewayParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewayParams;

                    /**
                     * Verifies a VpnGatewayParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewayParams;

                    /**
                     * Creates a plain object from a VpnGatewayParams message. Also converts values to other types if specified.
                     * @param message VpnGatewayParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewayParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayStatus. */
                interface IVpnGatewayStatus {

                    /** VpnGatewayStatus vpnConnections */
                    vpnConnections?: (google.cloud.compute.v1.IVpnGatewayStatusVpnConnection[]|null);
                }

                /** Represents a VpnGatewayStatus. */
                class VpnGatewayStatus implements IVpnGatewayStatus {

                    /**
                     * Constructs a new VpnGatewayStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewayStatus);

                    /** VpnGatewayStatus vpnConnections. */
                    public vpnConnections: google.cloud.compute.v1.IVpnGatewayStatusVpnConnection[];

                    /**
                     * Creates a new VpnGatewayStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewayStatus): google.cloud.compute.v1.VpnGatewayStatus;

                    /**
                     * Encodes the specified VpnGatewayStatus message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayStatus.verify|verify} messages.
                     * @param message VpnGatewayStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewayStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayStatus.verify|verify} messages.
                     * @param message VpnGatewayStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewayStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewayStatus;

                    /**
                     * Decodes a VpnGatewayStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewayStatus;

                    /**
                     * Verifies a VpnGatewayStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewayStatus;

                    /**
                     * Creates a plain object from a VpnGatewayStatus message. Also converts values to other types if specified.
                     * @param message VpnGatewayStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewayStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayStatusHighAvailabilityRequirementState. */
                interface IVpnGatewayStatusHighAvailabilityRequirementState {

                    /** VpnGatewayStatusHighAvailabilityRequirementState state */
                    state?: (string|null);

                    /** VpnGatewayStatusHighAvailabilityRequirementState unsatisfiedReason */
                    unsatisfiedReason?: (string|null);
                }

                /** Represents a VpnGatewayStatusHighAvailabilityRequirementState. */
                class VpnGatewayStatusHighAvailabilityRequirementState implements IVpnGatewayStatusHighAvailabilityRequirementState {

                    /**
                     * Constructs a new VpnGatewayStatusHighAvailabilityRequirementState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewayStatusHighAvailabilityRequirementState);

                    /** VpnGatewayStatusHighAvailabilityRequirementState state. */
                    public state?: (string|null);

                    /** VpnGatewayStatusHighAvailabilityRequirementState unsatisfiedReason. */
                    public unsatisfiedReason?: (string|null);

                    /**
                     * Creates a new VpnGatewayStatusHighAvailabilityRequirementState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayStatusHighAvailabilityRequirementState instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewayStatusHighAvailabilityRequirementState): google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementState;

                    /**
                     * Encodes the specified VpnGatewayStatusHighAvailabilityRequirementState message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementState.verify|verify} messages.
                     * @param message VpnGatewayStatusHighAvailabilityRequirementState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewayStatusHighAvailabilityRequirementState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayStatusHighAvailabilityRequirementState message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementState.verify|verify} messages.
                     * @param message VpnGatewayStatusHighAvailabilityRequirementState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewayStatusHighAvailabilityRequirementState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayStatusHighAvailabilityRequirementState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayStatusHighAvailabilityRequirementState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementState;

                    /**
                     * Decodes a VpnGatewayStatusHighAvailabilityRequirementState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayStatusHighAvailabilityRequirementState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementState;

                    /**
                     * Verifies a VpnGatewayStatusHighAvailabilityRequirementState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayStatusHighAvailabilityRequirementState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayStatusHighAvailabilityRequirementState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementState;

                    /**
                     * Creates a plain object from a VpnGatewayStatusHighAvailabilityRequirementState message. Also converts values to other types if specified.
                     * @param message VpnGatewayStatusHighAvailabilityRequirementState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayStatusHighAvailabilityRequirementState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayStatusHighAvailabilityRequirementState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace VpnGatewayStatusHighAvailabilityRequirementState {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        CONNECTION_REDUNDANCY_MET = 505242907,
                        CONNECTION_REDUNDANCY_NOT_MET = 511863311
                    }

                    /** UnsatisfiedReason enum. */
                    enum UnsatisfiedReason {
                        UNDEFINED_UNSATISFIED_REASON = 0,
                        INCOMPLETE_TUNNELS_COVERAGE = 55917437
                    }
                }

                /** Properties of a VpnGatewayStatusTunnel. */
                interface IVpnGatewayStatusTunnel {

                    /** VpnGatewayStatusTunnel localGatewayInterface */
                    localGatewayInterface?: (number|null);

                    /** VpnGatewayStatusTunnel peerGatewayInterface */
                    peerGatewayInterface?: (number|null);

                    /** VpnGatewayStatusTunnel tunnelUrl */
                    tunnelUrl?: (string|null);
                }

                /** Represents a VpnGatewayStatusTunnel. */
                class VpnGatewayStatusTunnel implements IVpnGatewayStatusTunnel {

                    /**
                     * Constructs a new VpnGatewayStatusTunnel.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewayStatusTunnel);

                    /** VpnGatewayStatusTunnel localGatewayInterface. */
                    public localGatewayInterface?: (number|null);

                    /** VpnGatewayStatusTunnel peerGatewayInterface. */
                    public peerGatewayInterface?: (number|null);

                    /** VpnGatewayStatusTunnel tunnelUrl. */
                    public tunnelUrl?: (string|null);

                    /**
                     * Creates a new VpnGatewayStatusTunnel instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayStatusTunnel instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewayStatusTunnel): google.cloud.compute.v1.VpnGatewayStatusTunnel;

                    /**
                     * Encodes the specified VpnGatewayStatusTunnel message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayStatusTunnel.verify|verify} messages.
                     * @param message VpnGatewayStatusTunnel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewayStatusTunnel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayStatusTunnel message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayStatusTunnel.verify|verify} messages.
                     * @param message VpnGatewayStatusTunnel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewayStatusTunnel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayStatusTunnel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayStatusTunnel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewayStatusTunnel;

                    /**
                     * Decodes a VpnGatewayStatusTunnel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayStatusTunnel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewayStatusTunnel;

                    /**
                     * Verifies a VpnGatewayStatusTunnel message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayStatusTunnel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayStatusTunnel
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewayStatusTunnel;

                    /**
                     * Creates a plain object from a VpnGatewayStatusTunnel message. Also converts values to other types if specified.
                     * @param message VpnGatewayStatusTunnel
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewayStatusTunnel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayStatusTunnel to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayStatusTunnel
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayStatusVpnConnection. */
                interface IVpnGatewayStatusVpnConnection {

                    /** VpnGatewayStatusVpnConnection peerExternalGateway */
                    peerExternalGateway?: (string|null);

                    /** VpnGatewayStatusVpnConnection peerGcpGateway */
                    peerGcpGateway?: (string|null);

                    /** VpnGatewayStatusVpnConnection state */
                    state?: (google.cloud.compute.v1.IVpnGatewayStatusHighAvailabilityRequirementState|null);

                    /** VpnGatewayStatusVpnConnection tunnels */
                    tunnels?: (google.cloud.compute.v1.IVpnGatewayStatusTunnel[]|null);
                }

                /** Represents a VpnGatewayStatusVpnConnection. */
                class VpnGatewayStatusVpnConnection implements IVpnGatewayStatusVpnConnection {

                    /**
                     * Constructs a new VpnGatewayStatusVpnConnection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewayStatusVpnConnection);

                    /** VpnGatewayStatusVpnConnection peerExternalGateway. */
                    public peerExternalGateway?: (string|null);

                    /** VpnGatewayStatusVpnConnection peerGcpGateway. */
                    public peerGcpGateway?: (string|null);

                    /** VpnGatewayStatusVpnConnection state. */
                    public state?: (google.cloud.compute.v1.IVpnGatewayStatusHighAvailabilityRequirementState|null);

                    /** VpnGatewayStatusVpnConnection tunnels. */
                    public tunnels: google.cloud.compute.v1.IVpnGatewayStatusTunnel[];

                    /**
                     * Creates a new VpnGatewayStatusVpnConnection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayStatusVpnConnection instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewayStatusVpnConnection): google.cloud.compute.v1.VpnGatewayStatusVpnConnection;

                    /**
                     * Encodes the specified VpnGatewayStatusVpnConnection message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayStatusVpnConnection.verify|verify} messages.
                     * @param message VpnGatewayStatusVpnConnection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewayStatusVpnConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayStatusVpnConnection message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayStatusVpnConnection.verify|verify} messages.
                     * @param message VpnGatewayStatusVpnConnection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewayStatusVpnConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayStatusVpnConnection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayStatusVpnConnection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewayStatusVpnConnection;

                    /**
                     * Decodes a VpnGatewayStatusVpnConnection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayStatusVpnConnection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewayStatusVpnConnection;

                    /**
                     * Verifies a VpnGatewayStatusVpnConnection message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayStatusVpnConnection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayStatusVpnConnection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewayStatusVpnConnection;

                    /**
                     * Creates a plain object from a VpnGatewayStatusVpnConnection message. Also converts values to other types if specified.
                     * @param message VpnGatewayStatusVpnConnection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewayStatusVpnConnection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayStatusVpnConnection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayStatusVpnConnection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayVpnGatewayInterface. */
                interface IVpnGatewayVpnGatewayInterface {

                    /** VpnGatewayVpnGatewayInterface id */
                    id?: (number|null);

                    /** VpnGatewayVpnGatewayInterface interconnectAttachment */
                    interconnectAttachment?: (string|null);

                    /** VpnGatewayVpnGatewayInterface ipAddress */
                    ipAddress?: (string|null);

                    /** VpnGatewayVpnGatewayInterface ipv6Address */
                    ipv6Address?: (string|null);
                }

                /** Represents a VpnGatewayVpnGatewayInterface. */
                class VpnGatewayVpnGatewayInterface implements IVpnGatewayVpnGatewayInterface {

                    /**
                     * Constructs a new VpnGatewayVpnGatewayInterface.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewayVpnGatewayInterface);

                    /** VpnGatewayVpnGatewayInterface id. */
                    public id?: (number|null);

                    /** VpnGatewayVpnGatewayInterface interconnectAttachment. */
                    public interconnectAttachment?: (string|null);

                    /** VpnGatewayVpnGatewayInterface ipAddress. */
                    public ipAddress?: (string|null);

                    /** VpnGatewayVpnGatewayInterface ipv6Address. */
                    public ipv6Address?: (string|null);

                    /**
                     * Creates a new VpnGatewayVpnGatewayInterface instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayVpnGatewayInterface instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewayVpnGatewayInterface): google.cloud.compute.v1.VpnGatewayVpnGatewayInterface;

                    /**
                     * Encodes the specified VpnGatewayVpnGatewayInterface message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayVpnGatewayInterface.verify|verify} messages.
                     * @param message VpnGatewayVpnGatewayInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewayVpnGatewayInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayVpnGatewayInterface message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewayVpnGatewayInterface.verify|verify} messages.
                     * @param message VpnGatewayVpnGatewayInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewayVpnGatewayInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayVpnGatewayInterface message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayVpnGatewayInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewayVpnGatewayInterface;

                    /**
                     * Decodes a VpnGatewayVpnGatewayInterface message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayVpnGatewayInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewayVpnGatewayInterface;

                    /**
                     * Verifies a VpnGatewayVpnGatewayInterface message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayVpnGatewayInterface message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayVpnGatewayInterface
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewayVpnGatewayInterface;

                    /**
                     * Creates a plain object from a VpnGatewayVpnGatewayInterface message. Also converts values to other types if specified.
                     * @param message VpnGatewayVpnGatewayInterface
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewayVpnGatewayInterface, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayVpnGatewayInterface to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayVpnGatewayInterface
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewaysGetStatusResponse. */
                interface IVpnGatewaysGetStatusResponse {

                    /** VpnGatewaysGetStatusResponse result */
                    result?: (google.cloud.compute.v1.IVpnGatewayStatus|null);
                }

                /** Represents a VpnGatewaysGetStatusResponse. */
                class VpnGatewaysGetStatusResponse implements IVpnGatewaysGetStatusResponse {

                    /**
                     * Constructs a new VpnGatewaysGetStatusResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewaysGetStatusResponse);

                    /** VpnGatewaysGetStatusResponse result. */
                    public result?: (google.cloud.compute.v1.IVpnGatewayStatus|null);

                    /**
                     * Creates a new VpnGatewaysGetStatusResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewaysGetStatusResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewaysGetStatusResponse): google.cloud.compute.v1.VpnGatewaysGetStatusResponse;

                    /**
                     * Encodes the specified VpnGatewaysGetStatusResponse message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewaysGetStatusResponse.verify|verify} messages.
                     * @param message VpnGatewaysGetStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewaysGetStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewaysGetStatusResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewaysGetStatusResponse.verify|verify} messages.
                     * @param message VpnGatewaysGetStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewaysGetStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewaysGetStatusResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewaysGetStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewaysGetStatusResponse;

                    /**
                     * Decodes a VpnGatewaysGetStatusResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewaysGetStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewaysGetStatusResponse;

                    /**
                     * Verifies a VpnGatewaysGetStatusResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewaysGetStatusResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewaysGetStatusResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewaysGetStatusResponse;

                    /**
                     * Creates a plain object from a VpnGatewaysGetStatusResponse message. Also converts values to other types if specified.
                     * @param message VpnGatewaysGetStatusResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewaysGetStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewaysGetStatusResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewaysGetStatusResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewaysScopedList. */
                interface IVpnGatewaysScopedList {

                    /** VpnGatewaysScopedList vpnGateways */
                    vpnGateways?: (google.cloud.compute.v1.IVpnGateway[]|null);

                    /** VpnGatewaysScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a VpnGatewaysScopedList. */
                class VpnGatewaysScopedList implements IVpnGatewaysScopedList {

                    /**
                     * Constructs a new VpnGatewaysScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnGatewaysScopedList);

                    /** VpnGatewaysScopedList vpnGateways. */
                    public vpnGateways: google.cloud.compute.v1.IVpnGateway[];

                    /** VpnGatewaysScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new VpnGatewaysScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewaysScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnGatewaysScopedList): google.cloud.compute.v1.VpnGatewaysScopedList;

                    /**
                     * Encodes the specified VpnGatewaysScopedList message. Does not implicitly {@link google.cloud.compute.v1.VpnGatewaysScopedList.verify|verify} messages.
                     * @param message VpnGatewaysScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnGatewaysScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewaysScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnGatewaysScopedList.verify|verify} messages.
                     * @param message VpnGatewaysScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnGatewaysScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewaysScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewaysScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnGatewaysScopedList;

                    /**
                     * Decodes a VpnGatewaysScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewaysScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnGatewaysScopedList;

                    /**
                     * Verifies a VpnGatewaysScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewaysScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewaysScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnGatewaysScopedList;

                    /**
                     * Creates a plain object from a VpnGatewaysScopedList message. Also converts values to other types if specified.
                     * @param message VpnGatewaysScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnGatewaysScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewaysScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewaysScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnel. */
                interface IVpnTunnel {

                    /** VpnTunnel cipherSuite */
                    cipherSuite?: (google.cloud.compute.v1.IVpnTunnelCipherSuite|null);

                    /** VpnTunnel creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** VpnTunnel description */
                    description?: (string|null);

                    /** VpnTunnel detailedStatus */
                    detailedStatus?: (string|null);

                    /** VpnTunnel id */
                    id?: (number|Long|string|null);

                    /** VpnTunnel ikeVersion */
                    ikeVersion?: (number|null);

                    /** VpnTunnel kind */
                    kind?: (string|null);

                    /** VpnTunnel labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** VpnTunnel labels */
                    labels?: ({ [k: string]: string }|null);

                    /** VpnTunnel localTrafficSelector */
                    localTrafficSelector?: (string[]|null);

                    /** VpnTunnel name */
                    name?: (string|null);

                    /** VpnTunnel params */
                    params?: (google.cloud.compute.v1.IVpnTunnelParams|null);

                    /** VpnTunnel peerExternalGateway */
                    peerExternalGateway?: (string|null);

                    /** VpnTunnel peerExternalGatewayInterface */
                    peerExternalGatewayInterface?: (number|null);

                    /** VpnTunnel peerGcpGateway */
                    peerGcpGateway?: (string|null);

                    /** VpnTunnel peerIp */
                    peerIp?: (string|null);

                    /** VpnTunnel region */
                    region?: (string|null);

                    /** VpnTunnel remoteTrafficSelector */
                    remoteTrafficSelector?: (string[]|null);

                    /** VpnTunnel router */
                    router?: (string|null);

                    /** VpnTunnel selfLink */
                    selfLink?: (string|null);

                    /** VpnTunnel sharedSecret */
                    sharedSecret?: (string|null);

                    /** VpnTunnel sharedSecretHash */
                    sharedSecretHash?: (string|null);

                    /** VpnTunnel status */
                    status?: (string|null);

                    /** VpnTunnel targetVpnGateway */
                    targetVpnGateway?: (string|null);

                    /** VpnTunnel vpnGateway */
                    vpnGateway?: (string|null);

                    /** VpnTunnel vpnGatewayInterface */
                    vpnGatewayInterface?: (number|null);
                }

                /** Represents a VpnTunnel. */
                class VpnTunnel implements IVpnTunnel {

                    /**
                     * Constructs a new VpnTunnel.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnTunnel);

                    /** VpnTunnel cipherSuite. */
                    public cipherSuite?: (google.cloud.compute.v1.IVpnTunnelCipherSuite|null);

                    /** VpnTunnel creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** VpnTunnel description. */
                    public description?: (string|null);

                    /** VpnTunnel detailedStatus. */
                    public detailedStatus?: (string|null);

                    /** VpnTunnel id. */
                    public id?: (number|Long|string|null);

                    /** VpnTunnel ikeVersion. */
                    public ikeVersion?: (number|null);

                    /** VpnTunnel kind. */
                    public kind?: (string|null);

                    /** VpnTunnel labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** VpnTunnel labels. */
                    public labels: { [k: string]: string };

                    /** VpnTunnel localTrafficSelector. */
                    public localTrafficSelector: string[];

                    /** VpnTunnel name. */
                    public name?: (string|null);

                    /** VpnTunnel params. */
                    public params?: (google.cloud.compute.v1.IVpnTunnelParams|null);

                    /** VpnTunnel peerExternalGateway. */
                    public peerExternalGateway?: (string|null);

                    /** VpnTunnel peerExternalGatewayInterface. */
                    public peerExternalGatewayInterface?: (number|null);

                    /** VpnTunnel peerGcpGateway. */
                    public peerGcpGateway?: (string|null);

                    /** VpnTunnel peerIp. */
                    public peerIp?: (string|null);

                    /** VpnTunnel region. */
                    public region?: (string|null);

                    /** VpnTunnel remoteTrafficSelector. */
                    public remoteTrafficSelector: string[];

                    /** VpnTunnel router. */
                    public router?: (string|null);

                    /** VpnTunnel selfLink. */
                    public selfLink?: (string|null);

                    /** VpnTunnel sharedSecret. */
                    public sharedSecret?: (string|null);

                    /** VpnTunnel sharedSecretHash. */
                    public sharedSecretHash?: (string|null);

                    /** VpnTunnel status. */
                    public status?: (string|null);

                    /** VpnTunnel targetVpnGateway. */
                    public targetVpnGateway?: (string|null);

                    /** VpnTunnel vpnGateway. */
                    public vpnGateway?: (string|null);

                    /** VpnTunnel vpnGatewayInterface. */
                    public vpnGatewayInterface?: (number|null);

                    /**
                     * Creates a new VpnTunnel instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnel instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnTunnel): google.cloud.compute.v1.VpnTunnel;

                    /**
                     * Encodes the specified VpnTunnel message. Does not implicitly {@link google.cloud.compute.v1.VpnTunnel.verify|verify} messages.
                     * @param message VpnTunnel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnTunnel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnel message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnTunnel.verify|verify} messages.
                     * @param message VpnTunnel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnTunnel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnTunnel;

                    /**
                     * Decodes a VpnTunnel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnTunnel;

                    /**
                     * Verifies a VpnTunnel message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnel
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnTunnel;

                    /**
                     * Creates a plain object from a VpnTunnel message. Also converts values to other types if specified.
                     * @param message VpnTunnel
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnTunnel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnel to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnel
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace VpnTunnel {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ALLOCATING_RESOURCES = 320922816,
                        AUTHORIZATION_ERROR = 23580290,
                        DEPROVISIONING = 428935662,
                        ESTABLISHED = 88852344,
                        FAILED = 455706685,
                        FIRST_HANDSHAKE = 191393000,
                        NEGOTIATION_FAILURE = 360325868,
                        NETWORK_ERROR = 193912951,
                        NO_INCOMING_PACKETS = 119983216,
                        PROVISIONING = 290896621,
                        REJECTED = 174130302,
                        STOPPED = 444276141,
                        WAITING_FOR_FULL_CONFIG = 41640522
                    }
                }

                /** Properties of a VpnTunnelAggregatedList. */
                interface IVpnTunnelAggregatedList {

                    /** VpnTunnelAggregatedList id */
                    id?: (string|null);

                    /** VpnTunnelAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1.IVpnTunnelsScopedList }|null);

                    /** VpnTunnelAggregatedList kind */
                    kind?: (string|null);

                    /** VpnTunnelAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VpnTunnelAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** VpnTunnelAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** VpnTunnelAggregatedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a VpnTunnelAggregatedList. */
                class VpnTunnelAggregatedList implements IVpnTunnelAggregatedList {

                    /**
                     * Constructs a new VpnTunnelAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnTunnelAggregatedList);

                    /** VpnTunnelAggregatedList id. */
                    public id?: (string|null);

                    /** VpnTunnelAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1.IVpnTunnelsScopedList };

                    /** VpnTunnelAggregatedList kind. */
                    public kind?: (string|null);

                    /** VpnTunnelAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VpnTunnelAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** VpnTunnelAggregatedList unreachables. */
                    public unreachables: string[];

                    /** VpnTunnelAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new VpnTunnelAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnTunnelAggregatedList): google.cloud.compute.v1.VpnTunnelAggregatedList;

                    /**
                     * Encodes the specified VpnTunnelAggregatedList message. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelAggregatedList.verify|verify} messages.
                     * @param message VpnTunnelAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnTunnelAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelAggregatedList.verify|verify} messages.
                     * @param message VpnTunnelAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnTunnelAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnTunnelAggregatedList;

                    /**
                     * Decodes a VpnTunnelAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnTunnelAggregatedList;

                    /**
                     * Verifies a VpnTunnelAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnTunnelAggregatedList;

                    /**
                     * Creates a plain object from a VpnTunnelAggregatedList message. Also converts values to other types if specified.
                     * @param message VpnTunnelAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnTunnelAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelCipherSuite. */
                interface IVpnTunnelCipherSuite {

                    /** VpnTunnelCipherSuite phase1 */
                    phase1?: (google.cloud.compute.v1.IVpnTunnelPhase1Algorithms|null);

                    /** VpnTunnelCipherSuite phase2 */
                    phase2?: (google.cloud.compute.v1.IVpnTunnelPhase2Algorithms|null);
                }

                /** Represents a VpnTunnelCipherSuite. */
                class VpnTunnelCipherSuite implements IVpnTunnelCipherSuite {

                    /**
                     * Constructs a new VpnTunnelCipherSuite.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnTunnelCipherSuite);

                    /** VpnTunnelCipherSuite phase1. */
                    public phase1?: (google.cloud.compute.v1.IVpnTunnelPhase1Algorithms|null);

                    /** VpnTunnelCipherSuite phase2. */
                    public phase2?: (google.cloud.compute.v1.IVpnTunnelPhase2Algorithms|null);

                    /**
                     * Creates a new VpnTunnelCipherSuite instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelCipherSuite instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnTunnelCipherSuite): google.cloud.compute.v1.VpnTunnelCipherSuite;

                    /**
                     * Encodes the specified VpnTunnelCipherSuite message. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelCipherSuite.verify|verify} messages.
                     * @param message VpnTunnelCipherSuite message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnTunnelCipherSuite, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelCipherSuite message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelCipherSuite.verify|verify} messages.
                     * @param message VpnTunnelCipherSuite message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnTunnelCipherSuite, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelCipherSuite message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelCipherSuite
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnTunnelCipherSuite;

                    /**
                     * Decodes a VpnTunnelCipherSuite message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelCipherSuite
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnTunnelCipherSuite;

                    /**
                     * Verifies a VpnTunnelCipherSuite message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelCipherSuite message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelCipherSuite
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnTunnelCipherSuite;

                    /**
                     * Creates a plain object from a VpnTunnelCipherSuite message. Also converts values to other types if specified.
                     * @param message VpnTunnelCipherSuite
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnTunnelCipherSuite, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelCipherSuite to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelCipherSuite
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelList. */
                interface IVpnTunnelList {

                    /** VpnTunnelList id */
                    id?: (string|null);

                    /** VpnTunnelList items */
                    items?: (google.cloud.compute.v1.IVpnTunnel[]|null);

                    /** VpnTunnelList kind */
                    kind?: (string|null);

                    /** VpnTunnelList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VpnTunnelList selfLink */
                    selfLink?: (string|null);

                    /** VpnTunnelList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a VpnTunnelList. */
                class VpnTunnelList implements IVpnTunnelList {

                    /**
                     * Constructs a new VpnTunnelList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnTunnelList);

                    /** VpnTunnelList id. */
                    public id?: (string|null);

                    /** VpnTunnelList items. */
                    public items: google.cloud.compute.v1.IVpnTunnel[];

                    /** VpnTunnelList kind. */
                    public kind?: (string|null);

                    /** VpnTunnelList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VpnTunnelList selfLink. */
                    public selfLink?: (string|null);

                    /** VpnTunnelList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new VpnTunnelList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnTunnelList): google.cloud.compute.v1.VpnTunnelList;

                    /**
                     * Encodes the specified VpnTunnelList message. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelList.verify|verify} messages.
                     * @param message VpnTunnelList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnTunnelList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelList.verify|verify} messages.
                     * @param message VpnTunnelList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnTunnelList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnTunnelList;

                    /**
                     * Decodes a VpnTunnelList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnTunnelList;

                    /**
                     * Verifies a VpnTunnelList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnTunnelList;

                    /**
                     * Creates a plain object from a VpnTunnelList message. Also converts values to other types if specified.
                     * @param message VpnTunnelList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnTunnelList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelParams. */
                interface IVpnTunnelParams {

                    /** VpnTunnelParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a VpnTunnelParams. */
                class VpnTunnelParams implements IVpnTunnelParams {

                    /**
                     * Constructs a new VpnTunnelParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnTunnelParams);

                    /** VpnTunnelParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new VpnTunnelParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnTunnelParams): google.cloud.compute.v1.VpnTunnelParams;

                    /**
                     * Encodes the specified VpnTunnelParams message. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelParams.verify|verify} messages.
                     * @param message VpnTunnelParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnTunnelParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelParams.verify|verify} messages.
                     * @param message VpnTunnelParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnTunnelParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnTunnelParams;

                    /**
                     * Decodes a VpnTunnelParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnTunnelParams;

                    /**
                     * Verifies a VpnTunnelParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnTunnelParams;

                    /**
                     * Creates a plain object from a VpnTunnelParams message. Also converts values to other types if specified.
                     * @param message VpnTunnelParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnTunnelParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelPhase1Algorithms. */
                interface IVpnTunnelPhase1Algorithms {

                    /** VpnTunnelPhase1Algorithms dh */
                    dh?: (string[]|null);

                    /** VpnTunnelPhase1Algorithms encryption */
                    encryption?: (string[]|null);

                    /** VpnTunnelPhase1Algorithms integrity */
                    integrity?: (string[]|null);

                    /** VpnTunnelPhase1Algorithms prf */
                    prf?: (string[]|null);
                }

                /** Represents a VpnTunnelPhase1Algorithms. */
                class VpnTunnelPhase1Algorithms implements IVpnTunnelPhase1Algorithms {

                    /**
                     * Constructs a new VpnTunnelPhase1Algorithms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnTunnelPhase1Algorithms);

                    /** VpnTunnelPhase1Algorithms dh. */
                    public dh: string[];

                    /** VpnTunnelPhase1Algorithms encryption. */
                    public encryption: string[];

                    /** VpnTunnelPhase1Algorithms integrity. */
                    public integrity: string[];

                    /** VpnTunnelPhase1Algorithms prf. */
                    public prf: string[];

                    /**
                     * Creates a new VpnTunnelPhase1Algorithms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelPhase1Algorithms instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnTunnelPhase1Algorithms): google.cloud.compute.v1.VpnTunnelPhase1Algorithms;

                    /**
                     * Encodes the specified VpnTunnelPhase1Algorithms message. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelPhase1Algorithms.verify|verify} messages.
                     * @param message VpnTunnelPhase1Algorithms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnTunnelPhase1Algorithms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelPhase1Algorithms message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelPhase1Algorithms.verify|verify} messages.
                     * @param message VpnTunnelPhase1Algorithms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnTunnelPhase1Algorithms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelPhase1Algorithms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelPhase1Algorithms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnTunnelPhase1Algorithms;

                    /**
                     * Decodes a VpnTunnelPhase1Algorithms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelPhase1Algorithms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnTunnelPhase1Algorithms;

                    /**
                     * Verifies a VpnTunnelPhase1Algorithms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelPhase1Algorithms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelPhase1Algorithms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnTunnelPhase1Algorithms;

                    /**
                     * Creates a plain object from a VpnTunnelPhase1Algorithms message. Also converts values to other types if specified.
                     * @param message VpnTunnelPhase1Algorithms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnTunnelPhase1Algorithms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelPhase1Algorithms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelPhase1Algorithms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelPhase2Algorithms. */
                interface IVpnTunnelPhase2Algorithms {

                    /** VpnTunnelPhase2Algorithms encryption */
                    encryption?: (string[]|null);

                    /** VpnTunnelPhase2Algorithms integrity */
                    integrity?: (string[]|null);

                    /** VpnTunnelPhase2Algorithms pfs */
                    pfs?: (string[]|null);
                }

                /** Represents a VpnTunnelPhase2Algorithms. */
                class VpnTunnelPhase2Algorithms implements IVpnTunnelPhase2Algorithms {

                    /**
                     * Constructs a new VpnTunnelPhase2Algorithms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnTunnelPhase2Algorithms);

                    /** VpnTunnelPhase2Algorithms encryption. */
                    public encryption: string[];

                    /** VpnTunnelPhase2Algorithms integrity. */
                    public integrity: string[];

                    /** VpnTunnelPhase2Algorithms pfs. */
                    public pfs: string[];

                    /**
                     * Creates a new VpnTunnelPhase2Algorithms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelPhase2Algorithms instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnTunnelPhase2Algorithms): google.cloud.compute.v1.VpnTunnelPhase2Algorithms;

                    /**
                     * Encodes the specified VpnTunnelPhase2Algorithms message. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelPhase2Algorithms.verify|verify} messages.
                     * @param message VpnTunnelPhase2Algorithms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnTunnelPhase2Algorithms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelPhase2Algorithms message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelPhase2Algorithms.verify|verify} messages.
                     * @param message VpnTunnelPhase2Algorithms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnTunnelPhase2Algorithms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelPhase2Algorithms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelPhase2Algorithms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnTunnelPhase2Algorithms;

                    /**
                     * Decodes a VpnTunnelPhase2Algorithms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelPhase2Algorithms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnTunnelPhase2Algorithms;

                    /**
                     * Verifies a VpnTunnelPhase2Algorithms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelPhase2Algorithms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelPhase2Algorithms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnTunnelPhase2Algorithms;

                    /**
                     * Creates a plain object from a VpnTunnelPhase2Algorithms message. Also converts values to other types if specified.
                     * @param message VpnTunnelPhase2Algorithms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnTunnelPhase2Algorithms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelPhase2Algorithms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelPhase2Algorithms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelsScopedList. */
                interface IVpnTunnelsScopedList {

                    /** VpnTunnelsScopedList vpnTunnels */
                    vpnTunnels?: (google.cloud.compute.v1.IVpnTunnel[]|null);

                    /** VpnTunnelsScopedList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a VpnTunnelsScopedList. */
                class VpnTunnelsScopedList implements IVpnTunnelsScopedList {

                    /**
                     * Constructs a new VpnTunnelsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IVpnTunnelsScopedList);

                    /** VpnTunnelsScopedList vpnTunnels. */
                    public vpnTunnels: google.cloud.compute.v1.IVpnTunnel[];

                    /** VpnTunnelsScopedList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new VpnTunnelsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IVpnTunnelsScopedList): google.cloud.compute.v1.VpnTunnelsScopedList;

                    /**
                     * Encodes the specified VpnTunnelsScopedList message. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelsScopedList.verify|verify} messages.
                     * @param message VpnTunnelsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IVpnTunnelsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.VpnTunnelsScopedList.verify|verify} messages.
                     * @param message VpnTunnelsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IVpnTunnelsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.VpnTunnelsScopedList;

                    /**
                     * Decodes a VpnTunnelsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.VpnTunnelsScopedList;

                    /**
                     * Verifies a VpnTunnelsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.VpnTunnelsScopedList;

                    /**
                     * Creates a plain object from a VpnTunnelsScopedList message. Also converts values to other types if specified.
                     * @param message VpnTunnelsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.VpnTunnelsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WafExpressionSet. */
                interface IWafExpressionSet {

                    /** WafExpressionSet aliases */
                    aliases?: (string[]|null);

                    /** WafExpressionSet expressions */
                    expressions?: (google.cloud.compute.v1.IWafExpressionSetExpression[]|null);

                    /** WafExpressionSet id */
                    id?: (string|null);
                }

                /** Represents a WafExpressionSet. */
                class WafExpressionSet implements IWafExpressionSet {

                    /**
                     * Constructs a new WafExpressionSet.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWafExpressionSet);

                    /** WafExpressionSet aliases. */
                    public aliases: string[];

                    /** WafExpressionSet expressions. */
                    public expressions: google.cloud.compute.v1.IWafExpressionSetExpression[];

                    /** WafExpressionSet id. */
                    public id?: (string|null);

                    /**
                     * Creates a new WafExpressionSet instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WafExpressionSet instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWafExpressionSet): google.cloud.compute.v1.WafExpressionSet;

                    /**
                     * Encodes the specified WafExpressionSet message. Does not implicitly {@link google.cloud.compute.v1.WafExpressionSet.verify|verify} messages.
                     * @param message WafExpressionSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWafExpressionSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WafExpressionSet message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WafExpressionSet.verify|verify} messages.
                     * @param message WafExpressionSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWafExpressionSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WafExpressionSet message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WafExpressionSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WafExpressionSet;

                    /**
                     * Decodes a WafExpressionSet message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WafExpressionSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WafExpressionSet;

                    /**
                     * Verifies a WafExpressionSet message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WafExpressionSet message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WafExpressionSet
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WafExpressionSet;

                    /**
                     * Creates a plain object from a WafExpressionSet message. Also converts values to other types if specified.
                     * @param message WafExpressionSet
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WafExpressionSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WafExpressionSet to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WafExpressionSet
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WafExpressionSetExpression. */
                interface IWafExpressionSetExpression {

                    /** WafExpressionSetExpression id */
                    id?: (string|null);

                    /** WafExpressionSetExpression sensitivity */
                    sensitivity?: (number|null);
                }

                /** Represents a WafExpressionSetExpression. */
                class WafExpressionSetExpression implements IWafExpressionSetExpression {

                    /**
                     * Constructs a new WafExpressionSetExpression.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWafExpressionSetExpression);

                    /** WafExpressionSetExpression id. */
                    public id?: (string|null);

                    /** WafExpressionSetExpression sensitivity. */
                    public sensitivity?: (number|null);

                    /**
                     * Creates a new WafExpressionSetExpression instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WafExpressionSetExpression instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWafExpressionSetExpression): google.cloud.compute.v1.WafExpressionSetExpression;

                    /**
                     * Encodes the specified WafExpressionSetExpression message. Does not implicitly {@link google.cloud.compute.v1.WafExpressionSetExpression.verify|verify} messages.
                     * @param message WafExpressionSetExpression message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWafExpressionSetExpression, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WafExpressionSetExpression message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WafExpressionSetExpression.verify|verify} messages.
                     * @param message WafExpressionSetExpression message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWafExpressionSetExpression, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WafExpressionSetExpression message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WafExpressionSetExpression
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WafExpressionSetExpression;

                    /**
                     * Decodes a WafExpressionSetExpression message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WafExpressionSetExpression
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WafExpressionSetExpression;

                    /**
                     * Verifies a WafExpressionSetExpression message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WafExpressionSetExpression message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WafExpressionSetExpression
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WafExpressionSetExpression;

                    /**
                     * Creates a plain object from a WafExpressionSetExpression message. Also converts values to other types if specified.
                     * @param message WafExpressionSetExpression
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WafExpressionSetExpression, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WafExpressionSetExpression to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WafExpressionSetExpression
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WaitGlobalOperationRequest. */
                interface IWaitGlobalOperationRequest {

                    /** WaitGlobalOperationRequest operation */
                    operation?: (string|null);

                    /** WaitGlobalOperationRequest project */
                    project?: (string|null);
                }

                /** Represents a WaitGlobalOperationRequest. */
                class WaitGlobalOperationRequest implements IWaitGlobalOperationRequest {

                    /**
                     * Constructs a new WaitGlobalOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWaitGlobalOperationRequest);

                    /** WaitGlobalOperationRequest operation. */
                    public operation: string;

                    /** WaitGlobalOperationRequest project. */
                    public project: string;

                    /**
                     * Creates a new WaitGlobalOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WaitGlobalOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWaitGlobalOperationRequest): google.cloud.compute.v1.WaitGlobalOperationRequest;

                    /**
                     * Encodes the specified WaitGlobalOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.WaitGlobalOperationRequest.verify|verify} messages.
                     * @param message WaitGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWaitGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WaitGlobalOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WaitGlobalOperationRequest.verify|verify} messages.
                     * @param message WaitGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWaitGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WaitGlobalOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WaitGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WaitGlobalOperationRequest;

                    /**
                     * Decodes a WaitGlobalOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WaitGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WaitGlobalOperationRequest;

                    /**
                     * Verifies a WaitGlobalOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WaitGlobalOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WaitGlobalOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WaitGlobalOperationRequest;

                    /**
                     * Creates a plain object from a WaitGlobalOperationRequest message. Also converts values to other types if specified.
                     * @param message WaitGlobalOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WaitGlobalOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WaitGlobalOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WaitGlobalOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WaitRegionOperationRequest. */
                interface IWaitRegionOperationRequest {

                    /** WaitRegionOperationRequest operation */
                    operation?: (string|null);

                    /** WaitRegionOperationRequest project */
                    project?: (string|null);

                    /** WaitRegionOperationRequest region */
                    region?: (string|null);
                }

                /** Represents a WaitRegionOperationRequest. */
                class WaitRegionOperationRequest implements IWaitRegionOperationRequest {

                    /**
                     * Constructs a new WaitRegionOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWaitRegionOperationRequest);

                    /** WaitRegionOperationRequest operation. */
                    public operation: string;

                    /** WaitRegionOperationRequest project. */
                    public project: string;

                    /** WaitRegionOperationRequest region. */
                    public region: string;

                    /**
                     * Creates a new WaitRegionOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WaitRegionOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWaitRegionOperationRequest): google.cloud.compute.v1.WaitRegionOperationRequest;

                    /**
                     * Encodes the specified WaitRegionOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.WaitRegionOperationRequest.verify|verify} messages.
                     * @param message WaitRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWaitRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WaitRegionOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WaitRegionOperationRequest.verify|verify} messages.
                     * @param message WaitRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWaitRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WaitRegionOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WaitRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WaitRegionOperationRequest;

                    /**
                     * Decodes a WaitRegionOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WaitRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WaitRegionOperationRequest;

                    /**
                     * Verifies a WaitRegionOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WaitRegionOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WaitRegionOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WaitRegionOperationRequest;

                    /**
                     * Creates a plain object from a WaitRegionOperationRequest message. Also converts values to other types if specified.
                     * @param message WaitRegionOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WaitRegionOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WaitRegionOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WaitRegionOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WaitZoneOperationRequest. */
                interface IWaitZoneOperationRequest {

                    /** WaitZoneOperationRequest operation */
                    operation?: (string|null);

                    /** WaitZoneOperationRequest project */
                    project?: (string|null);

                    /** WaitZoneOperationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a WaitZoneOperationRequest. */
                class WaitZoneOperationRequest implements IWaitZoneOperationRequest {

                    /**
                     * Constructs a new WaitZoneOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWaitZoneOperationRequest);

                    /** WaitZoneOperationRequest operation. */
                    public operation: string;

                    /** WaitZoneOperationRequest project. */
                    public project: string;

                    /** WaitZoneOperationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new WaitZoneOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WaitZoneOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWaitZoneOperationRequest): google.cloud.compute.v1.WaitZoneOperationRequest;

                    /**
                     * Encodes the specified WaitZoneOperationRequest message. Does not implicitly {@link google.cloud.compute.v1.WaitZoneOperationRequest.verify|verify} messages.
                     * @param message WaitZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWaitZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WaitZoneOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WaitZoneOperationRequest.verify|verify} messages.
                     * @param message WaitZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWaitZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WaitZoneOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WaitZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WaitZoneOperationRequest;

                    /**
                     * Decodes a WaitZoneOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WaitZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WaitZoneOperationRequest;

                    /**
                     * Verifies a WaitZoneOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WaitZoneOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WaitZoneOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WaitZoneOperationRequest;

                    /**
                     * Creates a plain object from a WaitZoneOperationRequest message. Also converts values to other types if specified.
                     * @param message WaitZoneOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WaitZoneOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WaitZoneOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WaitZoneOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Warning. */
                interface IWarning {

                    /** Warning code */
                    code?: (string|null);

                    /** Warning data */
                    data?: (google.cloud.compute.v1.IData[]|null);

                    /** Warning message */
                    message?: (string|null);
                }

                /** Represents a Warning. */
                class Warning implements IWarning {

                    /**
                     * Constructs a new Warning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWarning);

                    /** Warning code. */
                    public code?: (string|null);

                    /** Warning data. */
                    public data: google.cloud.compute.v1.IData[];

                    /** Warning message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Warning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Warning instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWarning): google.cloud.compute.v1.Warning;

                    /**
                     * Encodes the specified Warning message. Does not implicitly {@link google.cloud.compute.v1.Warning.verify|verify} messages.
                     * @param message Warning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Warning message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Warning.verify|verify} messages.
                     * @param message Warning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Warning message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Warning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Warning;

                    /**
                     * Decodes a Warning message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Warning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Warning;

                    /**
                     * Verifies a Warning message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Warning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Warning
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Warning;

                    /**
                     * Creates a plain object from a Warning message. Also converts values to other types if specified.
                     * @param message Warning
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Warning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Warning to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Warning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Warning {

                    /** Code enum. */
                    enum Code {
                        UNDEFINED_CODE = 0,
                        CLEANUP_FAILED = 150308440,
                        DEPRECATED_RESOURCE_USED = 391835586,
                        DEPRECATED_TYPE_USED = 346526230,
                        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967,
                        EXPERIMENTAL_TYPE_USED = 451954443,
                        EXTERNAL_API_WARNING = 175546307,
                        FIELD_VALUE_OVERRIDEN = 329669423,
                        INJECTED_KERNELS_DEPRECATED = 417377419,
                        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606,
                        LARGE_DEPLOYMENT_WARNING = 481440678,
                        LIST_OVERHEAD_QUOTA_EXCEED = 47618117,
                        MISSING_TYPE_DEPENDENCY = 344505463,
                        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999,
                        NEXT_HOP_CANNOT_IP_FORWARD = 383382887,
                        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434,
                        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446,
                        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146,
                        NEXT_HOP_NOT_RUNNING = 417081265,
                        NOT_CRITICAL_ERROR = 105763924,
                        NO_RESULTS_ON_PAGE = 30036744,
                        PARTIAL_SUCCESS = 39966469,
                        QUOTA_INFO_UNAVAILABLE = 304294182,
                        REQUIRED_TOS_AGREEMENT = 3745539,
                        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641,
                        RESOURCE_NOT_DELETED = 168598460,
                        SCHEMA_VALIDATION_IGNORED = 275245642,
                        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617,
                        UNDECLARED_PROPERTIES = 390513439,
                        UNREACHABLE = 13328052
                    }
                }

                /** Properties of a Warnings. */
                interface IWarnings {

                    /** Warnings code */
                    code?: (string|null);

                    /** Warnings data */
                    data?: (google.cloud.compute.v1.IData[]|null);

                    /** Warnings message */
                    message?: (string|null);
                }

                /** Represents a Warnings. */
                class Warnings implements IWarnings {

                    /**
                     * Constructs a new Warnings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWarnings);

                    /** Warnings code. */
                    public code?: (string|null);

                    /** Warnings data. */
                    public data: google.cloud.compute.v1.IData[];

                    /** Warnings message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Warnings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Warnings instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWarnings): google.cloud.compute.v1.Warnings;

                    /**
                     * Encodes the specified Warnings message. Does not implicitly {@link google.cloud.compute.v1.Warnings.verify|verify} messages.
                     * @param message Warnings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWarnings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Warnings message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Warnings.verify|verify} messages.
                     * @param message Warnings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWarnings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Warnings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Warnings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Warnings;

                    /**
                     * Decodes a Warnings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Warnings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Warnings;

                    /**
                     * Verifies a Warnings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Warnings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Warnings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Warnings;

                    /**
                     * Creates a plain object from a Warnings message. Also converts values to other types if specified.
                     * @param message Warnings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Warnings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Warnings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Warnings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Warnings {

                    /** Code enum. */
                    enum Code {
                        UNDEFINED_CODE = 0,
                        CLEANUP_FAILED = 150308440,
                        DEPRECATED_RESOURCE_USED = 391835586,
                        DEPRECATED_TYPE_USED = 346526230,
                        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967,
                        EXPERIMENTAL_TYPE_USED = 451954443,
                        EXTERNAL_API_WARNING = 175546307,
                        FIELD_VALUE_OVERRIDEN = 329669423,
                        INJECTED_KERNELS_DEPRECATED = 417377419,
                        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606,
                        LARGE_DEPLOYMENT_WARNING = 481440678,
                        LIST_OVERHEAD_QUOTA_EXCEED = 47618117,
                        MISSING_TYPE_DEPENDENCY = 344505463,
                        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999,
                        NEXT_HOP_CANNOT_IP_FORWARD = 383382887,
                        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434,
                        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446,
                        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146,
                        NEXT_HOP_NOT_RUNNING = 417081265,
                        NOT_CRITICAL_ERROR = 105763924,
                        NO_RESULTS_ON_PAGE = 30036744,
                        PARTIAL_SUCCESS = 39966469,
                        QUOTA_INFO_UNAVAILABLE = 304294182,
                        REQUIRED_TOS_AGREEMENT = 3745539,
                        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641,
                        RESOURCE_NOT_DELETED = 168598460,
                        SCHEMA_VALIDATION_IGNORED = 275245642,
                        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617,
                        UNDECLARED_PROPERTIES = 390513439,
                        UNREACHABLE = 13328052
                    }
                }

                /** Properties of a WeightedBackendService. */
                interface IWeightedBackendService {

                    /** WeightedBackendService backendService */
                    backendService?: (string|null);

                    /** WeightedBackendService headerAction */
                    headerAction?: (google.cloud.compute.v1.IHttpHeaderAction|null);

                    /** WeightedBackendService weight */
                    weight?: (number|null);
                }

                /** Represents a WeightedBackendService. */
                class WeightedBackendService implements IWeightedBackendService {

                    /**
                     * Constructs a new WeightedBackendService.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWeightedBackendService);

                    /** WeightedBackendService backendService. */
                    public backendService?: (string|null);

                    /** WeightedBackendService headerAction. */
                    public headerAction?: (google.cloud.compute.v1.IHttpHeaderAction|null);

                    /** WeightedBackendService weight. */
                    public weight?: (number|null);

                    /**
                     * Creates a new WeightedBackendService instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WeightedBackendService instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWeightedBackendService): google.cloud.compute.v1.WeightedBackendService;

                    /**
                     * Encodes the specified WeightedBackendService message. Does not implicitly {@link google.cloud.compute.v1.WeightedBackendService.verify|verify} messages.
                     * @param message WeightedBackendService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWeightedBackendService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WeightedBackendService message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WeightedBackendService.verify|verify} messages.
                     * @param message WeightedBackendService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWeightedBackendService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WeightedBackendService message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WeightedBackendService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WeightedBackendService;

                    /**
                     * Decodes a WeightedBackendService message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WeightedBackendService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WeightedBackendService;

                    /**
                     * Verifies a WeightedBackendService message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WeightedBackendService message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WeightedBackendService
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WeightedBackendService;

                    /**
                     * Creates a plain object from a WeightedBackendService message. Also converts values to other types if specified.
                     * @param message WeightedBackendService
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WeightedBackendService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WeightedBackendService to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WeightedBackendService
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Wire. */
                interface IWire {

                    /** Wire adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** Wire endpoints */
                    endpoints?: (google.cloud.compute.v1.IWireEndpoint[]|null);

                    /** Wire label */
                    label?: (string|null);

                    /** Wire wireProperties */
                    wireProperties?: (google.cloud.compute.v1.IWireProperties|null);
                }

                /** Represents a Wire. */
                class Wire implements IWire {

                    /**
                     * Constructs a new Wire.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWire);

                    /** Wire adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** Wire endpoints. */
                    public endpoints: google.cloud.compute.v1.IWireEndpoint[];

                    /** Wire label. */
                    public label?: (string|null);

                    /** Wire wireProperties. */
                    public wireProperties?: (google.cloud.compute.v1.IWireProperties|null);

                    /**
                     * Creates a new Wire instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Wire instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWire): google.cloud.compute.v1.Wire;

                    /**
                     * Encodes the specified Wire message. Does not implicitly {@link google.cloud.compute.v1.Wire.verify|verify} messages.
                     * @param message Wire message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWire, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Wire message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Wire.verify|verify} messages.
                     * @param message Wire message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWire, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Wire message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Wire
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Wire;

                    /**
                     * Decodes a Wire message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Wire
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Wire;

                    /**
                     * Verifies a Wire message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Wire message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Wire
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Wire;

                    /**
                     * Creates a plain object from a Wire message. Also converts values to other types if specified.
                     * @param message Wire
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Wire, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Wire to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Wire
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireEndpoint. */
                interface IWireEndpoint {

                    /** WireEndpoint interconnect */
                    interconnect?: (string|null);

                    /** WireEndpoint vlanTag */
                    vlanTag?: (number|null);
                }

                /** Represents a WireEndpoint. */
                class WireEndpoint implements IWireEndpoint {

                    /**
                     * Constructs a new WireEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWireEndpoint);

                    /** WireEndpoint interconnect. */
                    public interconnect?: (string|null);

                    /** WireEndpoint vlanTag. */
                    public vlanTag?: (number|null);

                    /**
                     * Creates a new WireEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWireEndpoint): google.cloud.compute.v1.WireEndpoint;

                    /**
                     * Encodes the specified WireEndpoint message. Does not implicitly {@link google.cloud.compute.v1.WireEndpoint.verify|verify} messages.
                     * @param message WireEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWireEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WireEndpoint.verify|verify} messages.
                     * @param message WireEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWireEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WireEndpoint;

                    /**
                     * Decodes a WireEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WireEndpoint;

                    /**
                     * Verifies a WireEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WireEndpoint;

                    /**
                     * Creates a plain object from a WireEndpoint message. Also converts values to other types if specified.
                     * @param message WireEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WireEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroup. */
                interface IWireGroup {

                    /** WireGroup adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** WireGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** WireGroup description */
                    description?: (string|null);

                    /** WireGroup endpoints */
                    endpoints?: ({ [k: string]: google.cloud.compute.v1.IWireGroupEndpoint }|null);

                    /** WireGroup id */
                    id?: (number|Long|string|null);

                    /** WireGroup kind */
                    kind?: (string|null);

                    /** WireGroup name */
                    name?: (string|null);

                    /** WireGroup reconciling */
                    reconciling?: (boolean|null);

                    /** WireGroup selfLink */
                    selfLink?: (string|null);

                    /** WireGroup topology */
                    topology?: (google.cloud.compute.v1.IWireGroupTopology|null);

                    /** WireGroup wireProperties */
                    wireProperties?: (google.cloud.compute.v1.IWireProperties|null);

                    /** WireGroup wires */
                    wires?: (google.cloud.compute.v1.IWire[]|null);
                }

                /** Represents a WireGroup. */
                class WireGroup implements IWireGroup {

                    /**
                     * Constructs a new WireGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWireGroup);

                    /** WireGroup adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** WireGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** WireGroup description. */
                    public description?: (string|null);

                    /** WireGroup endpoints. */
                    public endpoints: { [k: string]: google.cloud.compute.v1.IWireGroupEndpoint };

                    /** WireGroup id. */
                    public id?: (number|Long|string|null);

                    /** WireGroup kind. */
                    public kind?: (string|null);

                    /** WireGroup name. */
                    public name?: (string|null);

                    /** WireGroup reconciling. */
                    public reconciling?: (boolean|null);

                    /** WireGroup selfLink. */
                    public selfLink?: (string|null);

                    /** WireGroup topology. */
                    public topology?: (google.cloud.compute.v1.IWireGroupTopology|null);

                    /** WireGroup wireProperties. */
                    public wireProperties?: (google.cloud.compute.v1.IWireProperties|null);

                    /** WireGroup wires. */
                    public wires: google.cloud.compute.v1.IWire[];

                    /**
                     * Creates a new WireGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWireGroup): google.cloud.compute.v1.WireGroup;

                    /**
                     * Encodes the specified WireGroup message. Does not implicitly {@link google.cloud.compute.v1.WireGroup.verify|verify} messages.
                     * @param message WireGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWireGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WireGroup.verify|verify} messages.
                     * @param message WireGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWireGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WireGroup;

                    /**
                     * Decodes a WireGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WireGroup;

                    /**
                     * Verifies a WireGroup message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WireGroup;

                    /**
                     * Creates a plain object from a WireGroup message. Also converts values to other types if specified.
                     * @param message WireGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WireGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupEndpoint. */
                interface IWireGroupEndpoint {

                    /** WireGroupEndpoint interconnects */
                    interconnects?: ({ [k: string]: google.cloud.compute.v1.IWireGroupEndpointInterconnect }|null);
                }

                /** Represents a WireGroupEndpoint. */
                class WireGroupEndpoint implements IWireGroupEndpoint {

                    /**
                     * Constructs a new WireGroupEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWireGroupEndpoint);

                    /** WireGroupEndpoint interconnects. */
                    public interconnects: { [k: string]: google.cloud.compute.v1.IWireGroupEndpointInterconnect };

                    /**
                     * Creates a new WireGroupEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWireGroupEndpoint): google.cloud.compute.v1.WireGroupEndpoint;

                    /**
                     * Encodes the specified WireGroupEndpoint message. Does not implicitly {@link google.cloud.compute.v1.WireGroupEndpoint.verify|verify} messages.
                     * @param message WireGroupEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWireGroupEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WireGroupEndpoint.verify|verify} messages.
                     * @param message WireGroupEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWireGroupEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WireGroupEndpoint;

                    /**
                     * Decodes a WireGroupEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WireGroupEndpoint;

                    /**
                     * Verifies a WireGroupEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WireGroupEndpoint;

                    /**
                     * Creates a plain object from a WireGroupEndpoint message. Also converts values to other types if specified.
                     * @param message WireGroupEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WireGroupEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupEndpointInterconnect. */
                interface IWireGroupEndpointInterconnect {

                    /** WireGroupEndpointInterconnect interconnect */
                    interconnect?: (string|null);

                    /** WireGroupEndpointInterconnect vlanTags */
                    vlanTags?: (number[]|null);
                }

                /** Represents a WireGroupEndpointInterconnect. */
                class WireGroupEndpointInterconnect implements IWireGroupEndpointInterconnect {

                    /**
                     * Constructs a new WireGroupEndpointInterconnect.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWireGroupEndpointInterconnect);

                    /** WireGroupEndpointInterconnect interconnect. */
                    public interconnect?: (string|null);

                    /** WireGroupEndpointInterconnect vlanTags. */
                    public vlanTags: number[];

                    /**
                     * Creates a new WireGroupEndpointInterconnect instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupEndpointInterconnect instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWireGroupEndpointInterconnect): google.cloud.compute.v1.WireGroupEndpointInterconnect;

                    /**
                     * Encodes the specified WireGroupEndpointInterconnect message. Does not implicitly {@link google.cloud.compute.v1.WireGroupEndpointInterconnect.verify|verify} messages.
                     * @param message WireGroupEndpointInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWireGroupEndpointInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupEndpointInterconnect message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WireGroupEndpointInterconnect.verify|verify} messages.
                     * @param message WireGroupEndpointInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWireGroupEndpointInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupEndpointInterconnect message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupEndpointInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WireGroupEndpointInterconnect;

                    /**
                     * Decodes a WireGroupEndpointInterconnect message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupEndpointInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WireGroupEndpointInterconnect;

                    /**
                     * Verifies a WireGroupEndpointInterconnect message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupEndpointInterconnect message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupEndpointInterconnect
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WireGroupEndpointInterconnect;

                    /**
                     * Creates a plain object from a WireGroupEndpointInterconnect message. Also converts values to other types if specified.
                     * @param message WireGroupEndpointInterconnect
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WireGroupEndpointInterconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupEndpointInterconnect to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupEndpointInterconnect
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupList. */
                interface IWireGroupList {

                    /** WireGroupList etag */
                    etag?: (string|null);

                    /** WireGroupList id */
                    id?: (string|null);

                    /** WireGroupList items */
                    items?: (google.cloud.compute.v1.IWireGroup[]|null);

                    /** WireGroupList kind */
                    kind?: (string|null);

                    /** WireGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** WireGroupList selfLink */
                    selfLink?: (string|null);

                    /** WireGroupList unreachables */
                    unreachables?: (string[]|null);

                    /** WireGroupList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a WireGroupList. */
                class WireGroupList implements IWireGroupList {

                    /**
                     * Constructs a new WireGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWireGroupList);

                    /** WireGroupList etag. */
                    public etag?: (string|null);

                    /** WireGroupList id. */
                    public id?: (string|null);

                    /** WireGroupList items. */
                    public items: google.cloud.compute.v1.IWireGroup[];

                    /** WireGroupList kind. */
                    public kind?: (string|null);

                    /** WireGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** WireGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** WireGroupList unreachables. */
                    public unreachables: string[];

                    /** WireGroupList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new WireGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWireGroupList): google.cloud.compute.v1.WireGroupList;

                    /**
                     * Encodes the specified WireGroupList message. Does not implicitly {@link google.cloud.compute.v1.WireGroupList.verify|verify} messages.
                     * @param message WireGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWireGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WireGroupList.verify|verify} messages.
                     * @param message WireGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWireGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WireGroupList;

                    /**
                     * Decodes a WireGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WireGroupList;

                    /**
                     * Verifies a WireGroupList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WireGroupList;

                    /**
                     * Creates a plain object from a WireGroupList message. Also converts values to other types if specified.
                     * @param message WireGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WireGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupTopology. */
                interface IWireGroupTopology {

                    /** WireGroupTopology endpoints */
                    endpoints?: (google.cloud.compute.v1.IWireGroupTopologyEndpoint[]|null);
                }

                /** Represents a WireGroupTopology. */
                class WireGroupTopology implements IWireGroupTopology {

                    /**
                     * Constructs a new WireGroupTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWireGroupTopology);

                    /** WireGroupTopology endpoints. */
                    public endpoints: google.cloud.compute.v1.IWireGroupTopologyEndpoint[];

                    /**
                     * Creates a new WireGroupTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWireGroupTopology): google.cloud.compute.v1.WireGroupTopology;

                    /**
                     * Encodes the specified WireGroupTopology message. Does not implicitly {@link google.cloud.compute.v1.WireGroupTopology.verify|verify} messages.
                     * @param message WireGroupTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWireGroupTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WireGroupTopology.verify|verify} messages.
                     * @param message WireGroupTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWireGroupTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WireGroupTopology;

                    /**
                     * Decodes a WireGroupTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WireGroupTopology;

                    /**
                     * Verifies a WireGroupTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WireGroupTopology;

                    /**
                     * Creates a plain object from a WireGroupTopology message. Also converts values to other types if specified.
                     * @param message WireGroupTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WireGroupTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupTopologyEndpoint. */
                interface IWireGroupTopologyEndpoint {

                    /** WireGroupTopologyEndpoint city */
                    city?: (string|null);

                    /** WireGroupTopologyEndpoint label */
                    label?: (string|null);
                }

                /** Represents a WireGroupTopologyEndpoint. */
                class WireGroupTopologyEndpoint implements IWireGroupTopologyEndpoint {

                    /**
                     * Constructs a new WireGroupTopologyEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWireGroupTopologyEndpoint);

                    /** WireGroupTopologyEndpoint city. */
                    public city?: (string|null);

                    /** WireGroupTopologyEndpoint label. */
                    public label?: (string|null);

                    /**
                     * Creates a new WireGroupTopologyEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupTopologyEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWireGroupTopologyEndpoint): google.cloud.compute.v1.WireGroupTopologyEndpoint;

                    /**
                     * Encodes the specified WireGroupTopologyEndpoint message. Does not implicitly {@link google.cloud.compute.v1.WireGroupTopologyEndpoint.verify|verify} messages.
                     * @param message WireGroupTopologyEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWireGroupTopologyEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupTopologyEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WireGroupTopologyEndpoint.verify|verify} messages.
                     * @param message WireGroupTopologyEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWireGroupTopologyEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupTopologyEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupTopologyEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WireGroupTopologyEndpoint;

                    /**
                     * Decodes a WireGroupTopologyEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupTopologyEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WireGroupTopologyEndpoint;

                    /**
                     * Verifies a WireGroupTopologyEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupTopologyEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupTopologyEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WireGroupTopologyEndpoint;

                    /**
                     * Creates a plain object from a WireGroupTopologyEndpoint message. Also converts values to other types if specified.
                     * @param message WireGroupTopologyEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WireGroupTopologyEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupTopologyEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupTopologyEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireProperties. */
                interface IWireProperties {

                    /** WireProperties bandwidthAllocation */
                    bandwidthAllocation?: (string|null);

                    /** WireProperties bandwidthUnmetered */
                    bandwidthUnmetered?: (number|Long|string|null);

                    /** WireProperties faultResponse */
                    faultResponse?: (string|null);
                }

                /** Represents a WireProperties. */
                class WireProperties implements IWireProperties {

                    /**
                     * Constructs a new WireProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWireProperties);

                    /** WireProperties bandwidthAllocation. */
                    public bandwidthAllocation?: (string|null);

                    /** WireProperties bandwidthUnmetered. */
                    public bandwidthUnmetered?: (number|Long|string|null);

                    /** WireProperties faultResponse. */
                    public faultResponse?: (string|null);

                    /**
                     * Creates a new WireProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWireProperties): google.cloud.compute.v1.WireProperties;

                    /**
                     * Encodes the specified WireProperties message. Does not implicitly {@link google.cloud.compute.v1.WireProperties.verify|verify} messages.
                     * @param message WireProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWireProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WireProperties.verify|verify} messages.
                     * @param message WireProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWireProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WireProperties;

                    /**
                     * Decodes a WireProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WireProperties;

                    /**
                     * Verifies a WireProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WireProperties;

                    /**
                     * Creates a plain object from a WireProperties message. Also converts values to other types if specified.
                     * @param message WireProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WireProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace WireProperties {

                    /** BandwidthAllocation enum. */
                    enum BandwidthAllocation {
                        UNDEFINED_BANDWIDTH_ALLOCATION = 0,
                        ALLOCATE_PER_WIRE = 358730057,
                        SHARED_WITH_WIRE_GROUP = 286454628
                    }

                    /** FaultResponse enum. */
                    enum FaultResponse {
                        UNDEFINED_FAULT_RESPONSE = 0,
                        DISABLE_PORT = 287086488,
                        NONE = 2402104
                    }
                }

                /** Properties of a WithdrawPublicAdvertisedPrefixeRequest. */
                interface IWithdrawPublicAdvertisedPrefixeRequest {

                    /** WithdrawPublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** WithdrawPublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);

                    /** WithdrawPublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a WithdrawPublicAdvertisedPrefixeRequest. */
                class WithdrawPublicAdvertisedPrefixeRequest implements IWithdrawPublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new WithdrawPublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWithdrawPublicAdvertisedPrefixeRequest);

                    /** WithdrawPublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** WithdrawPublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /** WithdrawPublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new WithdrawPublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WithdrawPublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWithdrawPublicAdvertisedPrefixeRequest): google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified WithdrawPublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message WithdrawPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWithdrawPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WithdrawPublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message WithdrawPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWithdrawPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WithdrawPublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WithdrawPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes a WithdrawPublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WithdrawPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies a WithdrawPublicAdvertisedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WithdrawPublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WithdrawPublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from a WithdrawPublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message WithdrawPublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WithdrawPublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WithdrawPublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WithdrawPublicDelegatedPrefixeRequest. */
                interface IWithdrawPublicDelegatedPrefixeRequest {

                    /** WithdrawPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** WithdrawPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** WithdrawPublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** WithdrawPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a WithdrawPublicDelegatedPrefixeRequest. */
                class WithdrawPublicDelegatedPrefixeRequest implements IWithdrawPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new WithdrawPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWithdrawPublicDelegatedPrefixeRequest);

                    /** WithdrawPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** WithdrawPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** WithdrawPublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** WithdrawPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new WithdrawPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WithdrawPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWithdrawPublicDelegatedPrefixeRequest): google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified WithdrawPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message WithdrawPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IWithdrawPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WithdrawPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message WithdrawPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IWithdrawPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WithdrawPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WithdrawPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a WithdrawPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WithdrawPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a WithdrawPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WithdrawPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WithdrawPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a WithdrawPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message WithdrawPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WithdrawPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WithdrawPublicDelegatedPrefixeRequest
                     * @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 identity */
                    identity?: (string|null);

                    /** WorkloadIdentityConfig identityCertificateEnabled */
                    identityCertificateEnabled?: (boolean|null);
                }

                /** Represents a WorkloadIdentityConfig. */
                class WorkloadIdentityConfig implements IWorkloadIdentityConfig {

                    /**
                     * Constructs a new WorkloadIdentityConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IWorkloadIdentityConfig);

                    /** WorkloadIdentityConfig identity. */
                    public identity?: (string|null);

                    /** WorkloadIdentityConfig identityCertificateEnabled. */
                    public identityCertificateEnabled?: (boolean|null);

                    /**
                     * Creates a new WorkloadIdentityConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WorkloadIdentityConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IWorkloadIdentityConfig): google.cloud.compute.v1.WorkloadIdentityConfig;

                    /**
                     * Encodes the specified WorkloadIdentityConfig message. Does not implicitly {@link google.cloud.compute.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.cloud.compute.v1.IWorkloadIdentityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WorkloadIdentityConfig message, length delimited. Does not implicitly {@link google.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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.cloud.compute.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 a XpnHostList. */
                interface IXpnHostList {

                    /** XpnHostList id */
                    id?: (string|null);

                    /** XpnHostList items */
                    items?: (google.cloud.compute.v1.IProject[]|null);

                    /** XpnHostList kind */
                    kind?: (string|null);

                    /** XpnHostList nextPageToken */
                    nextPageToken?: (string|null);

                    /** XpnHostList selfLink */
                    selfLink?: (string|null);

                    /** XpnHostList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a XpnHostList. */
                class XpnHostList implements IXpnHostList {

                    /**
                     * Constructs a new XpnHostList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IXpnHostList);

                    /** XpnHostList id. */
                    public id?: (string|null);

                    /** XpnHostList items. */
                    public items: google.cloud.compute.v1.IProject[];

                    /** XpnHostList kind. */
                    public kind?: (string|null);

                    /** XpnHostList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** XpnHostList selfLink. */
                    public selfLink?: (string|null);

                    /** XpnHostList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new XpnHostList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns XpnHostList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IXpnHostList): google.cloud.compute.v1.XpnHostList;

                    /**
                     * Encodes the specified XpnHostList message. Does not implicitly {@link google.cloud.compute.v1.XpnHostList.verify|verify} messages.
                     * @param message XpnHostList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IXpnHostList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified XpnHostList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.XpnHostList.verify|verify} messages.
                     * @param message XpnHostList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IXpnHostList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a XpnHostList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns XpnHostList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.XpnHostList;

                    /**
                     * Decodes a XpnHostList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns XpnHostList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.XpnHostList;

                    /**
                     * Verifies a XpnHostList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a XpnHostList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns XpnHostList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.XpnHostList;

                    /**
                     * Creates a plain object from a XpnHostList message. Also converts values to other types if specified.
                     * @param message XpnHostList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.XpnHostList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this XpnHostList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for XpnHostList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a XpnResourceId. */
                interface IXpnResourceId {

                    /** XpnResourceId id */
                    id?: (string|null);

                    /** XpnResourceId type */
                    type?: (string|null);
                }

                /** Represents a XpnResourceId. */
                class XpnResourceId implements IXpnResourceId {

                    /**
                     * Constructs a new XpnResourceId.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IXpnResourceId);

                    /** XpnResourceId id. */
                    public id?: (string|null);

                    /** XpnResourceId type. */
                    public type?: (string|null);

                    /**
                     * Creates a new XpnResourceId instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns XpnResourceId instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IXpnResourceId): google.cloud.compute.v1.XpnResourceId;

                    /**
                     * Encodes the specified XpnResourceId message. Does not implicitly {@link google.cloud.compute.v1.XpnResourceId.verify|verify} messages.
                     * @param message XpnResourceId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IXpnResourceId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified XpnResourceId message, length delimited. Does not implicitly {@link google.cloud.compute.v1.XpnResourceId.verify|verify} messages.
                     * @param message XpnResourceId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IXpnResourceId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a XpnResourceId message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns XpnResourceId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.XpnResourceId;

                    /**
                     * Decodes a XpnResourceId message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns XpnResourceId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.XpnResourceId;

                    /**
                     * Verifies a XpnResourceId message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a XpnResourceId message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns XpnResourceId
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.XpnResourceId;

                    /**
                     * Creates a plain object from a XpnResourceId message. Also converts values to other types if specified.
                     * @param message XpnResourceId
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.XpnResourceId, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this XpnResourceId to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for XpnResourceId
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace XpnResourceId {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        PROJECT = 408671993,
                        XPN_RESOURCE_TYPE_UNSPECIFIED = 151607034
                    }
                }

                /** Properties of a Zone. */
                interface IZone {

                    /** Zone availableCpuPlatforms */
                    availableCpuPlatforms?: (string[]|null);

                    /** Zone creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Zone deprecated */
                    deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** Zone description */
                    description?: (string|null);

                    /** Zone id */
                    id?: (number|Long|string|null);

                    /** Zone kind */
                    kind?: (string|null);

                    /** Zone name */
                    name?: (string|null);

                    /** Zone region */
                    region?: (string|null);

                    /** Zone selfLink */
                    selfLink?: (string|null);

                    /** Zone status */
                    status?: (string|null);

                    /** Zone supportsPzs */
                    supportsPzs?: (boolean|null);
                }

                /** Represents a Zone. */
                class Zone implements IZone {

                    /**
                     * Constructs a new Zone.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IZone);

                    /** Zone availableCpuPlatforms. */
                    public availableCpuPlatforms: string[];

                    /** Zone creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Zone deprecated. */
                    public deprecated?: (google.cloud.compute.v1.IDeprecationStatus|null);

                    /** Zone description. */
                    public description?: (string|null);

                    /** Zone id. */
                    public id?: (number|Long|string|null);

                    /** Zone kind. */
                    public kind?: (string|null);

                    /** Zone name. */
                    public name?: (string|null);

                    /** Zone region. */
                    public region?: (string|null);

                    /** Zone selfLink. */
                    public selfLink?: (string|null);

                    /** Zone status. */
                    public status?: (string|null);

                    /** Zone supportsPzs. */
                    public supportsPzs?: (boolean|null);

                    /**
                     * Creates a new Zone instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Zone instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IZone): google.cloud.compute.v1.Zone;

                    /**
                     * Encodes the specified Zone message. Does not implicitly {@link google.cloud.compute.v1.Zone.verify|verify} messages.
                     * @param message Zone message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IZone, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Zone message, length delimited. Does not implicitly {@link google.cloud.compute.v1.Zone.verify|verify} messages.
                     * @param message Zone message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IZone, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Zone message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Zone
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.Zone;

                    /**
                     * Decodes a Zone message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Zone
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.Zone;

                    /**
                     * Verifies a Zone message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Zone message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Zone
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.Zone;

                    /**
                     * Creates a plain object from a Zone message. Also converts values to other types if specified.
                     * @param message Zone
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.Zone, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Zone to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Zone
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Zone {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DOWN = 2104482,
                        UP = 2715
                    }
                }

                /** Properties of a ZoneList. */
                interface IZoneList {

                    /** ZoneList id */
                    id?: (string|null);

                    /** ZoneList items */
                    items?: (google.cloud.compute.v1.IZone[]|null);

                    /** ZoneList kind */
                    kind?: (string|null);

                    /** ZoneList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ZoneList selfLink */
                    selfLink?: (string|null);

                    /** ZoneList warning */
                    warning?: (google.cloud.compute.v1.IWarning|null);
                }

                /** Represents a ZoneList. */
                class ZoneList implements IZoneList {

                    /**
                     * Constructs a new ZoneList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IZoneList);

                    /** ZoneList id. */
                    public id?: (string|null);

                    /** ZoneList items. */
                    public items: google.cloud.compute.v1.IZone[];

                    /** ZoneList kind. */
                    public kind?: (string|null);

                    /** ZoneList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ZoneList selfLink. */
                    public selfLink?: (string|null);

                    /** ZoneList warning. */
                    public warning?: (google.cloud.compute.v1.IWarning|null);

                    /**
                     * Creates a new ZoneList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ZoneList instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IZoneList): google.cloud.compute.v1.ZoneList;

                    /**
                     * Encodes the specified ZoneList message. Does not implicitly {@link google.cloud.compute.v1.ZoneList.verify|verify} messages.
                     * @param message ZoneList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IZoneList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ZoneList message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ZoneList.verify|verify} messages.
                     * @param message ZoneList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IZoneList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ZoneList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ZoneList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ZoneList;

                    /**
                     * Decodes a ZoneList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ZoneList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ZoneList;

                    /**
                     * Verifies a ZoneList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ZoneList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ZoneList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ZoneList;

                    /**
                     * Creates a plain object from a ZoneList message. Also converts values to other types if specified.
                     * @param message ZoneList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ZoneList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ZoneList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ZoneList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ZoneSetLabelsRequest. */
                interface IZoneSetLabelsRequest {

                    /** ZoneSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** ZoneSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a ZoneSetLabelsRequest. */
                class ZoneSetLabelsRequest implements IZoneSetLabelsRequest {

                    /**
                     * Constructs a new ZoneSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IZoneSetLabelsRequest);

                    /** ZoneSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** ZoneSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new ZoneSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ZoneSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IZoneSetLabelsRequest): google.cloud.compute.v1.ZoneSetLabelsRequest;

                    /**
                     * Encodes the specified ZoneSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1.ZoneSetLabelsRequest.verify|verify} messages.
                     * @param message ZoneSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IZoneSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ZoneSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ZoneSetLabelsRequest.verify|verify} messages.
                     * @param message ZoneSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IZoneSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ZoneSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ZoneSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ZoneSetLabelsRequest;

                    /**
                     * Decodes a ZoneSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ZoneSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ZoneSetLabelsRequest;

                    /**
                     * Verifies a ZoneSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ZoneSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ZoneSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ZoneSetLabelsRequest;

                    /**
                     * Creates a plain object from a ZoneSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message ZoneSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ZoneSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ZoneSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ZoneSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ZoneSetNestedPolicyRequest. */
                interface IZoneSetNestedPolicyRequest {

                    /** ZoneSetNestedPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1.IBinding[]|null);

                    /** ZoneSetNestedPolicyRequest etag */
                    etag?: (string|null);

                    /** ZoneSetNestedPolicyRequest policy */
                    policy?: (google.cloud.compute.v1.IPolicy|null);
                }

                /** Represents a ZoneSetNestedPolicyRequest. */
                class ZoneSetNestedPolicyRequest implements IZoneSetNestedPolicyRequest {

                    /**
                     * Constructs a new ZoneSetNestedPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IZoneSetNestedPolicyRequest);

                    /** ZoneSetNestedPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1.IBinding[];

                    /** ZoneSetNestedPolicyRequest etag. */
                    public etag?: (string|null);

                    /** ZoneSetNestedPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1.IPolicy|null);

                    /**
                     * Creates a new ZoneSetNestedPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ZoneSetNestedPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IZoneSetNestedPolicyRequest): google.cloud.compute.v1.ZoneSetNestedPolicyRequest;

                    /**
                     * Encodes the specified ZoneSetNestedPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.ZoneSetNestedPolicyRequest.verify|verify} messages.
                     * @param message ZoneSetNestedPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IZoneSetNestedPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ZoneSetNestedPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ZoneSetNestedPolicyRequest.verify|verify} messages.
                     * @param message ZoneSetNestedPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IZoneSetNestedPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ZoneSetNestedPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ZoneSetNestedPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ZoneSetNestedPolicyRequest;

                    /**
                     * Decodes a ZoneSetNestedPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ZoneSetNestedPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ZoneSetNestedPolicyRequest;

                    /**
                     * Verifies a ZoneSetNestedPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ZoneSetNestedPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ZoneSetNestedPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ZoneSetNestedPolicyRequest;

                    /**
                     * Creates a plain object from a ZoneSetNestedPolicyRequest message. Also converts values to other types if specified.
                     * @param message ZoneSetNestedPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ZoneSetNestedPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ZoneSetNestedPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ZoneSetNestedPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ZoneSetPolicyRequest. */
                interface IZoneSetPolicyRequest {

                    /** ZoneSetPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1.IBinding[]|null);

                    /** ZoneSetPolicyRequest etag */
                    etag?: (string|null);

                    /** ZoneSetPolicyRequest policy */
                    policy?: (google.cloud.compute.v1.IPolicy|null);
                }

                /** Represents a ZoneSetPolicyRequest. */
                class ZoneSetPolicyRequest implements IZoneSetPolicyRequest {

                    /**
                     * Constructs a new ZoneSetPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1.IZoneSetPolicyRequest);

                    /** ZoneSetPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1.IBinding[];

                    /** ZoneSetPolicyRequest etag. */
                    public etag?: (string|null);

                    /** ZoneSetPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1.IPolicy|null);

                    /**
                     * Creates a new ZoneSetPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ZoneSetPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1.IZoneSetPolicyRequest): google.cloud.compute.v1.ZoneSetPolicyRequest;

                    /**
                     * Encodes the specified ZoneSetPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1.ZoneSetPolicyRequest.verify|verify} messages.
                     * @param message ZoneSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1.IZoneSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ZoneSetPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1.ZoneSetPolicyRequest.verify|verify} messages.
                     * @param message ZoneSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1.IZoneSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ZoneSetPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ZoneSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1.ZoneSetPolicyRequest;

                    /**
                     * Decodes a ZoneSetPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ZoneSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1.ZoneSetPolicyRequest;

                    /**
                     * Verifies a ZoneSetPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ZoneSetPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ZoneSetPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1.ZoneSetPolicyRequest;

                    /**
                     * Creates a plain object from a ZoneSetPolicyRequest message. Also converts values to other types if specified.
                     * @param message ZoneSetPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1.ZoneSetPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ZoneSetPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ZoneSetPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an AcceleratorTypes */
                class AcceleratorTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new AcceleratorTypes 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 AcceleratorTypes 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): AcceleratorTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAcceleratorTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AcceleratorTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListAcceleratorTypesRequest, callback: google.cloud.compute.v1.AcceleratorTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAcceleratorTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListAcceleratorTypesRequest): Promise<google.cloud.compute.v1.AcceleratorTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetAcceleratorTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AcceleratorType
                     */
                    public get(request: google.cloud.compute.v1.IGetAcceleratorTypeRequest, callback: google.cloud.compute.v1.AcceleratorTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetAcceleratorTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetAcceleratorTypeRequest): Promise<google.cloud.compute.v1.AcceleratorType>;

                    /**
                     * Calls List.
                     * @param request ListAcceleratorTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AcceleratorTypeList
                     */
                    public list(request: google.cloud.compute.v1.IListAcceleratorTypesRequest, callback: google.cloud.compute.v1.AcceleratorTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListAcceleratorTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListAcceleratorTypesRequest): Promise<google.cloud.compute.v1.AcceleratorTypeList>;
                }

                namespace AcceleratorTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.AcceleratorTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] AcceleratorTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.AcceleratorTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.AcceleratorTypes|get}.
                     * @param error Error, if any
                     * @param [response] AcceleratorType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.AcceleratorType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.AcceleratorTypes|list}.
                     * @param error Error, if any
                     * @param [response] AcceleratorTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.AcceleratorTypeList) => void;
                }

                /** Represents an Addresses */
                class Addresses extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Addresses 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 Addresses 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): Addresses;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAddressesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AddressAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListAddressesRequest, callback: google.cloud.compute.v1.Addresses.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAddressesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListAddressesRequest): Promise<google.cloud.compute.v1.AddressAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteAddressRequest, callback: google.cloud.compute.v1.Addresses.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteAddressRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteAddressRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Address
                     */
                    public get(request: google.cloud.compute.v1.IGetAddressRequest, callback: google.cloud.compute.v1.Addresses.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetAddressRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetAddressRequest): Promise<google.cloud.compute.v1.Address>;

                    /**
                     * Calls Insert.
                     * @param request InsertAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertAddressRequest, callback: google.cloud.compute.v1.Addresses.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertAddressRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertAddressRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListAddressesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AddressList
                     */
                    public list(request: google.cloud.compute.v1.IListAddressesRequest, callback: google.cloud.compute.v1.Addresses.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListAddressesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListAddressesRequest): Promise<google.cloud.compute.v1.AddressList>;

                    /**
                     * Calls Move.
                     * @param request MoveAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public move(request: google.cloud.compute.v1.IMoveAddressRequest, callback: google.cloud.compute.v1.Addresses.MoveCallback): void;

                    /**
                     * Calls Move.
                     * @param request MoveAddressRequest message or plain object
                     * @returns Promise
                     */
                    public move(request: google.cloud.compute.v1.IMoveAddressRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsAddressRequest, callback: google.cloud.compute.v1.Addresses.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsAddressRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsAddressRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsAddressRequest, callback: google.cloud.compute.v1.Addresses.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsAddressRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsAddressRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace Addresses {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Addresses|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] AddressAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.AddressAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Addresses|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Addresses|get}.
                     * @param error Error, if any
                     * @param [response] Address
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Address) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Addresses|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Addresses|list}.
                     * @param error Error, if any
                     * @param [response] AddressList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.AddressList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Addresses|move}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Addresses|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Addresses|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents an Advice */
                class Advice extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Advice 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 Advice 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): Advice;

                    /**
                     * Calls CalendarMode.
                     * @param request CalendarModeAdviceRpcRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CalendarModeAdviceResponse
                     */
                    public calendarMode(request: google.cloud.compute.v1.ICalendarModeAdviceRpcRequest, callback: google.cloud.compute.v1.Advice.CalendarModeCallback): void;

                    /**
                     * Calls CalendarMode.
                     * @param request CalendarModeAdviceRpcRequest message or plain object
                     * @returns Promise
                     */
                    public calendarMode(request: google.cloud.compute.v1.ICalendarModeAdviceRpcRequest): Promise<google.cloud.compute.v1.CalendarModeAdviceResponse>;
                }

                namespace Advice {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Advice|calendarMode}.
                     * @param error Error, if any
                     * @param [response] CalendarModeAdviceResponse
                     */
                    type CalendarModeCallback = (error: (Error|null), response?: google.cloud.compute.v1.CalendarModeAdviceResponse) => void;
                }

                /** Represents an Autoscalers */
                class Autoscalers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Autoscalers 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 Autoscalers 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): Autoscalers;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAutoscalersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AutoscalerAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListAutoscalersRequest, callback: google.cloud.compute.v1.Autoscalers.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAutoscalersRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListAutoscalersRequest): Promise<google.cloud.compute.v1.AutoscalerAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteAutoscalerRequest, callback: google.cloud.compute.v1.Autoscalers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteAutoscalerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Autoscaler
                     */
                    public get(request: google.cloud.compute.v1.IGetAutoscalerRequest, callback: google.cloud.compute.v1.Autoscalers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetAutoscalerRequest): Promise<google.cloud.compute.v1.Autoscaler>;

                    /**
                     * Calls Insert.
                     * @param request InsertAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertAutoscalerRequest, callback: google.cloud.compute.v1.Autoscalers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertAutoscalerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListAutoscalersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AutoscalerList
                     */
                    public list(request: google.cloud.compute.v1.IListAutoscalersRequest, callback: google.cloud.compute.v1.Autoscalers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListAutoscalersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListAutoscalersRequest): Promise<google.cloud.compute.v1.AutoscalerList>;

                    /**
                     * Calls Patch.
                     * @param request PatchAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchAutoscalerRequest, callback: google.cloud.compute.v1.Autoscalers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchAutoscalerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsAutoscalerRequest, callback: google.cloud.compute.v1.Autoscalers.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsAutoscalerRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateAutoscalerRequest, callback: google.cloud.compute.v1.Autoscalers.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateAutoscalerRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Autoscalers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Autoscalers|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] AutoscalerAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.AutoscalerAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Autoscalers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Autoscalers|get}.
                     * @param error Error, if any
                     * @param [response] Autoscaler
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Autoscaler) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Autoscalers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Autoscalers|list}.
                     * @param error Error, if any
                     * @param [response] AutoscalerList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.AutoscalerList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Autoscalers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Autoscalers|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Autoscalers|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a BackendBuckets */
                class BackendBuckets extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new BackendBuckets 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 BackendBuckets 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): BackendBuckets;

                    /**
                     * Calls AddSignedUrlKey.
                     * @param request AddSignedUrlKeyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addSignedUrlKey(request: google.cloud.compute.v1.IAddSignedUrlKeyBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.AddSignedUrlKeyCallback): void;

                    /**
                     * Calls AddSignedUrlKey.
                     * @param request AddSignedUrlKeyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public addSignedUrlKey(request: google.cloud.compute.v1.IAddSignedUrlKeyBackendBucketRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteBackendBucketRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeleteSignedUrlKey.
                     * @param request DeleteSignedUrlKeyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteSignedUrlKey(request: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.DeleteSignedUrlKeyCallback): void;

                    /**
                     * Calls DeleteSignedUrlKey.
                     * @param request DeleteSignedUrlKeyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public deleteSignedUrlKey(request: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendBucketRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucket
                     */
                    public get(request: google.cloud.compute.v1.IGetBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetBackendBucketRequest): Promise<google.cloud.compute.v1.BackendBucket>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyBackendBucketRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertBackendBucketRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListBackendBucketsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucketList
                     */
                    public list(request: google.cloud.compute.v1.IListBackendBucketsRequest, callback: google.cloud.compute.v1.BackendBuckets.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListBackendBucketsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListBackendBucketsRequest): Promise<google.cloud.compute.v1.BackendBucketList>;

                    /**
                     * Calls Patch.
                     * @param request PatchBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchBackendBucketRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetEdgeSecurityPolicy.
                     * @param request SetEdgeSecurityPolicyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setEdgeSecurityPolicy(request: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.SetEdgeSecurityPolicyCallback): void;

                    /**
                     * Calls SetEdgeSecurityPolicy.
                     * @param request SetEdgeSecurityPolicyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public setEdgeSecurityPolicy(request: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendBucketRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyBackendBucketRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsBackendBucketRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateBackendBucketRequest, callback: google.cloud.compute.v1.BackendBuckets.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateBackendBucketRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace BackendBuckets {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|addSignedUrlKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddSignedUrlKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|deleteSignedUrlKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteSignedUrlKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|get}.
                     * @param error Error, if any
                     * @param [response] BackendBucket
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendBucket) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|list}.
                     * @param error Error, if any
                     * @param [response] BackendBucketList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendBucketList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|setEdgeSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetEdgeSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendBuckets|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a BackendServices */
                class BackendServices extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new BackendServices 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 BackendServices 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): BackendServices;

                    /**
                     * Calls AddSignedUrlKey.
                     * @param request AddSignedUrlKeyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addSignedUrlKey(request: google.cloud.compute.v1.IAddSignedUrlKeyBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.AddSignedUrlKeyCallback): void;

                    /**
                     * Calls AddSignedUrlKey.
                     * @param request AddSignedUrlKeyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public addSignedUrlKey(request: google.cloud.compute.v1.IAddSignedUrlKeyBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListBackendServicesRequest, callback: google.cloud.compute.v1.BackendServices.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListBackendServicesRequest): Promise<google.cloud.compute.v1.BackendServiceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeleteSignedUrlKey.
                     * @param request DeleteSignedUrlKeyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteSignedUrlKey(request: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.DeleteSignedUrlKeyCallback): void;

                    /**
                     * Calls DeleteSignedUrlKey.
                     * @param request DeleteSignedUrlKeyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public deleteSignedUrlKey(request: google.cloud.compute.v1.IDeleteSignedUrlKeyBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendService
                     */
                    public get(request: google.cloud.compute.v1.IGetBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetBackendServiceRequest): Promise<google.cloud.compute.v1.BackendService>;

                    /**
                     * Calls GetEffectiveSecurityPolicies.
                     * @param request GetEffectiveSecurityPoliciesBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GetEffectiveSecurityPoliciesBackendServiceResponse
                     */
                    public getEffectiveSecurityPolicies(request: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.GetEffectiveSecurityPoliciesCallback): void;

                    /**
                     * Calls GetEffectiveSecurityPolicies.
                     * @param request GetEffectiveSecurityPoliciesBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getEffectiveSecurityPolicies(request: google.cloud.compute.v1.IGetEffectiveSecurityPoliciesBackendServiceRequest): Promise<google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse>;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceGroupHealth
                     */
                    public getHealth(request: google.cloud.compute.v1.IGetHealthBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.GetHealthCallback): void;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getHealth(request: google.cloud.compute.v1.IGetHealthBackendServiceRequest): Promise<google.cloud.compute.v1.BackendServiceGroupHealth>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyBackendServiceRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceList
                     */
                    public list(request: google.cloud.compute.v1.IListBackendServicesRequest, callback: google.cloud.compute.v1.BackendServices.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListBackendServicesRequest): Promise<google.cloud.compute.v1.BackendServiceList>;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceListUsable
                     */
                    public listUsable(request: google.cloud.compute.v1.IListUsableBackendServicesRequest, callback: google.cloud.compute.v1.BackendServices.ListUsableCallback): void;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public listUsable(request: google.cloud.compute.v1.IListUsableBackendServicesRequest): Promise<google.cloud.compute.v1.BackendServiceListUsable>;

                    /**
                     * Calls Patch.
                     * @param request PatchBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetEdgeSecurityPolicy.
                     * @param request SetEdgeSecurityPolicyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setEdgeSecurityPolicy(request: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.SetEdgeSecurityPolicyCallback): void;

                    /**
                     * Calls SetEdgeSecurityPolicy.
                     * @param request SetEdgeSecurityPolicyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setEdgeSecurityPolicy(request: google.cloud.compute.v1.ISetEdgeSecurityPolicyBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyBackendServiceRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsBackendServiceRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateBackendServiceRequest, callback: google.cloud.compute.v1.BackendServices.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace BackendServices {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|addSignedUrlKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddSignedUrlKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] BackendServiceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendServiceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|deleteSignedUrlKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteSignedUrlKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|get}.
                     * @param error Error, if any
                     * @param [response] BackendService
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendService) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|getEffectiveSecurityPolicies}.
                     * @param error Error, if any
                     * @param [response] GetEffectiveSecurityPoliciesBackendServiceResponse
                     */
                    type GetEffectiveSecurityPoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1.GetEffectiveSecurityPoliciesBackendServiceResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|getHealth}.
                     * @param error Error, if any
                     * @param [response] BackendServiceGroupHealth
                     */
                    type GetHealthCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendServiceGroupHealth) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|list}.
                     * @param error Error, if any
                     * @param [response] BackendServiceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendServiceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|listUsable}.
                     * @param error Error, if any
                     * @param [response] BackendServiceListUsable
                     */
                    type ListUsableCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendServiceListUsable) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|setEdgeSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetEdgeSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.BackendServices|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a CrossSiteNetworks */
                class CrossSiteNetworks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new CrossSiteNetworks 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 CrossSiteNetworks 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): CrossSiteNetworks;

                    /**
                     * Calls Delete.
                     * @param request DeleteCrossSiteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteCrossSiteNetworkRequest, callback: google.cloud.compute.v1.CrossSiteNetworks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteCrossSiteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteCrossSiteNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetCrossSiteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CrossSiteNetwork
                     */
                    public get(request: google.cloud.compute.v1.IGetCrossSiteNetworkRequest, callback: google.cloud.compute.v1.CrossSiteNetworks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetCrossSiteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetCrossSiteNetworkRequest): Promise<google.cloud.compute.v1.CrossSiteNetwork>;

                    /**
                     * Calls Insert.
                     * @param request InsertCrossSiteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertCrossSiteNetworkRequest, callback: google.cloud.compute.v1.CrossSiteNetworks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertCrossSiteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertCrossSiteNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListCrossSiteNetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CrossSiteNetworkList
                     */
                    public list(request: google.cloud.compute.v1.IListCrossSiteNetworksRequest, callback: google.cloud.compute.v1.CrossSiteNetworks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListCrossSiteNetworksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListCrossSiteNetworksRequest): Promise<google.cloud.compute.v1.CrossSiteNetworkList>;

                    /**
                     * Calls Patch.
                     * @param request PatchCrossSiteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchCrossSiteNetworkRequest, callback: google.cloud.compute.v1.CrossSiteNetworks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchCrossSiteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchCrossSiteNetworkRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace CrossSiteNetworks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.CrossSiteNetworks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.CrossSiteNetworks|get}.
                     * @param error Error, if any
                     * @param [response] CrossSiteNetwork
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.CrossSiteNetwork) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.CrossSiteNetworks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.CrossSiteNetworks|list}.
                     * @param error Error, if any
                     * @param [response] CrossSiteNetworkList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.CrossSiteNetworkList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.CrossSiteNetworks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a DiskTypes */
                class DiskTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new DiskTypes 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 DiskTypes 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): DiskTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListDiskTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListDiskTypesRequest, callback: google.cloud.compute.v1.DiskTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListDiskTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListDiskTypesRequest): Promise<google.cloud.compute.v1.DiskTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetDiskTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskType
                     */
                    public get(request: google.cloud.compute.v1.IGetDiskTypeRequest, callback: google.cloud.compute.v1.DiskTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetDiskTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetDiskTypeRequest): Promise<google.cloud.compute.v1.DiskType>;

                    /**
                     * Calls List.
                     * @param request ListDiskTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskTypeList
                     */
                    public list(request: google.cloud.compute.v1.IListDiskTypesRequest, callback: google.cloud.compute.v1.DiskTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListDiskTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListDiskTypesRequest): Promise<google.cloud.compute.v1.DiskTypeList>;
                }

                namespace DiskTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.DiskTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] DiskTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.DiskTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.DiskTypes|get}.
                     * @param error Error, if any
                     * @param [response] DiskType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.DiskType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.DiskTypes|list}.
                     * @param error Error, if any
                     * @param [response] DiskTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.DiskTypeList) => void;
                }

                /** Represents a Disks */
                class Disks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Disks 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 Disks 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): Disks;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1.IAddResourcePoliciesDiskRequest, callback: google.cloud.compute.v1.Disks.AddResourcePoliciesCallback): void;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesDiskRequest message or plain object
                     * @returns Promise
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1.IAddResourcePoliciesDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListDisksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListDisksRequest, callback: google.cloud.compute.v1.Disks.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListDisksRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListDisksRequest): Promise<google.cloud.compute.v1.DiskAggregatedList>;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkInsert(request: google.cloud.compute.v1.IBulkInsertDiskRequest, callback: google.cloud.compute.v1.Disks.BulkInsertCallback): void;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertDiskRequest message or plain object
                     * @returns Promise
                     */
                    public bulkInsert(request: google.cloud.compute.v1.IBulkInsertDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls BulkSetLabels.
                     * @param request BulkSetLabelsDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkSetLabels(request: google.cloud.compute.v1.IBulkSetLabelsDiskRequest, callback: google.cloud.compute.v1.Disks.BulkSetLabelsCallback): void;

                    /**
                     * Calls BulkSetLabels.
                     * @param request BulkSetLabelsDiskRequest message or plain object
                     * @returns Promise
                     */
                    public bulkSetLabels(request: google.cloud.compute.v1.IBulkSetLabelsDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls CreateSnapshot.
                     * @param request CreateSnapshotDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createSnapshot(request: google.cloud.compute.v1.ICreateSnapshotDiskRequest, callback: google.cloud.compute.v1.Disks.CreateSnapshotCallback): void;

                    /**
                     * Calls CreateSnapshot.
                     * @param request CreateSnapshotDiskRequest message or plain object
                     * @returns Promise
                     */
                    public createSnapshot(request: google.cloud.compute.v1.ICreateSnapshotDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteDiskRequest, callback: google.cloud.compute.v1.Disks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteDiskRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Disk
                     */
                    public get(request: google.cloud.compute.v1.IGetDiskRequest, callback: google.cloud.compute.v1.Disks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetDiskRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetDiskRequest): Promise<google.cloud.compute.v1.Disk>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyDiskRequest, callback: google.cloud.compute.v1.Disks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyDiskRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyDiskRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertDiskRequest, callback: google.cloud.compute.v1.Disks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertDiskRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListDisksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskList
                     */
                    public list(request: google.cloud.compute.v1.IListDisksRequest, callback: google.cloud.compute.v1.Disks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListDisksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListDisksRequest): Promise<google.cloud.compute.v1.DiskList>;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1.IRemoveResourcePoliciesDiskRequest, callback: google.cloud.compute.v1.Disks.RemoveResourcePoliciesCallback): void;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesDiskRequest message or plain object
                     * @returns Promise
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1.IRemoveResourcePoliciesDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1.IResizeDiskRequest, callback: google.cloud.compute.v1.Disks.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeDiskRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1.IResizeDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyDiskRequest, callback: google.cloud.compute.v1.Disks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyDiskRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyDiskRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsDiskRequest, callback: google.cloud.compute.v1.Disks.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsDiskRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StartAsyncReplication.
                     * @param request StartAsyncReplicationDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startAsyncReplication(request: google.cloud.compute.v1.IStartAsyncReplicationDiskRequest, callback: google.cloud.compute.v1.Disks.StartAsyncReplicationCallback): void;

                    /**
                     * Calls StartAsyncReplication.
                     * @param request StartAsyncReplicationDiskRequest message or plain object
                     * @returns Promise
                     */
                    public startAsyncReplication(request: google.cloud.compute.v1.IStartAsyncReplicationDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StopAsyncReplication.
                     * @param request StopAsyncReplicationDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopAsyncReplication(request: google.cloud.compute.v1.IStopAsyncReplicationDiskRequest, callback: google.cloud.compute.v1.Disks.StopAsyncReplicationCallback): void;

                    /**
                     * Calls StopAsyncReplication.
                     * @param request StopAsyncReplicationDiskRequest message or plain object
                     * @returns Promise
                     */
                    public stopAsyncReplication(request: google.cloud.compute.v1.IStopAsyncReplicationDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StopGroupAsyncReplication.
                     * @param request StopGroupAsyncReplicationDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopGroupAsyncReplication(request: google.cloud.compute.v1.IStopGroupAsyncReplicationDiskRequest, callback: google.cloud.compute.v1.Disks.StopGroupAsyncReplicationCallback): void;

                    /**
                     * Calls StopGroupAsyncReplication.
                     * @param request StopGroupAsyncReplicationDiskRequest message or plain object
                     * @returns Promise
                     */
                    public stopGroupAsyncReplication(request: google.cloud.compute.v1.IStopGroupAsyncReplicationDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsDiskRequest, callback: google.cloud.compute.v1.Disks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsDiskRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsDiskRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateDiskRequest, callback: google.cloud.compute.v1.Disks.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateDiskRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateDiskRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Disks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|addResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] DiskAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.DiskAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|bulkInsert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkInsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|bulkSetLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkSetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|createSnapshot}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateSnapshotCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|get}.
                     * @param error Error, if any
                     * @param [response] Disk
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Disk) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|list}.
                     * @param error Error, if any
                     * @param [response] DiskList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.DiskList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|removeResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|startAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|stopAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|stopGroupAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopGroupAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Disks|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents an ExternalVpnGateways */
                class ExternalVpnGateways extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ExternalVpnGateways 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 ExternalVpnGateways 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): ExternalVpnGateways;

                    /**
                     * Calls Delete.
                     * @param request DeleteExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteExternalVpnGatewayRequest, callback: google.cloud.compute.v1.ExternalVpnGateways.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteExternalVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ExternalVpnGateway
                     */
                    public get(request: google.cloud.compute.v1.IGetExternalVpnGatewayRequest, callback: google.cloud.compute.v1.ExternalVpnGateways.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetExternalVpnGatewayRequest): Promise<google.cloud.compute.v1.ExternalVpnGateway>;

                    /**
                     * Calls Insert.
                     * @param request InsertExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertExternalVpnGatewayRequest, callback: google.cloud.compute.v1.ExternalVpnGateways.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertExternalVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListExternalVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ExternalVpnGatewayList
                     */
                    public list(request: google.cloud.compute.v1.IListExternalVpnGatewaysRequest, callback: google.cloud.compute.v1.ExternalVpnGateways.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListExternalVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListExternalVpnGatewaysRequest): Promise<google.cloud.compute.v1.ExternalVpnGatewayList>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsExternalVpnGatewayRequest, callback: google.cloud.compute.v1.ExternalVpnGateways.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsExternalVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsExternalVpnGatewayRequest, callback: google.cloud.compute.v1.ExternalVpnGateways.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsExternalVpnGatewayRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace ExternalVpnGateways {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ExternalVpnGateways|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ExternalVpnGateways|get}.
                     * @param error Error, if any
                     * @param [response] ExternalVpnGateway
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ExternalVpnGateway) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ExternalVpnGateways|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ExternalVpnGateways|list}.
                     * @param error Error, if any
                     * @param [response] ExternalVpnGatewayList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ExternalVpnGatewayList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ExternalVpnGateways|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ExternalVpnGateways|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a FirewallPolicies */
                class FirewallPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new FirewallPolicies 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 FirewallPolicies 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): FirewallPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1.IAddAssociationFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1.IAddAssociationFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cloneRules(request: google.cloud.compute.v1.ICloneRulesFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.CloneRulesCallback): void;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public cloneRules(request: google.cloud.compute.v1.ICloneRulesFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1.IGetAssociationFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1.IGetAssociationFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicyAssociation>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyFirewallPolicyRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListFirewallPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyList
                     */
                    public list(request: google.cloud.compute.v1.IListFirewallPoliciesRequest, callback: google.cloud.compute.v1.FirewallPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListFirewallPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListFirewallPoliciesRequest): Promise<google.cloud.compute.v1.FirewallPolicyList>;

                    /**
                     * Calls ListAssociations.
                     * @param request ListAssociationsFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPoliciesListAssociationsResponse
                     */
                    public listAssociations(request: google.cloud.compute.v1.IListAssociationsFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.ListAssociationsCallback): void;

                    /**
                     * Calls ListAssociations.
                     * @param request ListAssociationsFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public listAssociations(request: google.cloud.compute.v1.IListAssociationsFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse>;

                    /**
                     * Calls Move.
                     * @param request MoveFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public move(request: google.cloud.compute.v1.IMoveFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.MoveCallback): void;

                    /**
                     * Calls Move.
                     * @param request MoveFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public move(request: google.cloud.compute.v1.IMoveFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Patch.
                     * @param request PatchFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1.IRemoveAssociationFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1.IRemoveAssociationFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyFirewallPolicyRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsFirewallPolicyRequest, callback: google.cloud.compute.v1.FirewallPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsFirewallPolicyRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace FirewallPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|cloneRules}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CloneRulesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|get}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|list}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|listAssociations}.
                     * @param error Error, if any
                     * @param [response] FirewallPoliciesListAssociationsResponse
                     */
                    type ListAssociationsCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|move}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FirewallPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a Firewalls */
                class Firewalls extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Firewalls 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 Firewalls 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): Firewalls;

                    /**
                     * Calls Delete.
                     * @param request DeleteFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteFirewallRequest, callback: google.cloud.compute.v1.Firewalls.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteFirewallRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Firewall
                     */
                    public get(request: google.cloud.compute.v1.IGetFirewallRequest, callback: google.cloud.compute.v1.Firewalls.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetFirewallRequest): Promise<google.cloud.compute.v1.Firewall>;

                    /**
                     * Calls Insert.
                     * @param request InsertFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertFirewallRequest, callback: google.cloud.compute.v1.Firewalls.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertFirewallRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListFirewallsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallList
                     */
                    public list(request: google.cloud.compute.v1.IListFirewallsRequest, callback: google.cloud.compute.v1.Firewalls.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListFirewallsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListFirewallsRequest): Promise<google.cloud.compute.v1.FirewallList>;

                    /**
                     * Calls Patch.
                     * @param request PatchFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchFirewallRequest, callback: google.cloud.compute.v1.Firewalls.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchFirewallRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsFirewallRequest, callback: google.cloud.compute.v1.Firewalls.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsFirewallRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateFirewallRequest, callback: google.cloud.compute.v1.Firewalls.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateFirewallRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Firewalls {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Firewalls|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Firewalls|get}.
                     * @param error Error, if any
                     * @param [response] Firewall
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Firewall) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Firewalls|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Firewalls|list}.
                     * @param error Error, if any
                     * @param [response] FirewallList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Firewalls|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Firewalls|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Firewalls|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a ForwardingRules */
                class ForwardingRules extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ForwardingRules 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 ForwardingRules 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): ForwardingRules;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListForwardingRulesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRuleAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListForwardingRulesRequest, callback: google.cloud.compute.v1.ForwardingRules.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListForwardingRulesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListForwardingRulesRequest): Promise<google.cloud.compute.v1.ForwardingRuleAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteForwardingRuleRequest, callback: google.cloud.compute.v1.ForwardingRules.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRule
                     */
                    public get(request: google.cloud.compute.v1.IGetForwardingRuleRequest, callback: google.cloud.compute.v1.ForwardingRules.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetForwardingRuleRequest): Promise<google.cloud.compute.v1.ForwardingRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertForwardingRuleRequest, callback: google.cloud.compute.v1.ForwardingRules.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListForwardingRulesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRuleList
                     */
                    public list(request: google.cloud.compute.v1.IListForwardingRulesRequest, callback: google.cloud.compute.v1.ForwardingRules.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListForwardingRulesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListForwardingRulesRequest): Promise<google.cloud.compute.v1.ForwardingRuleList>;

                    /**
                     * Calls Patch.
                     * @param request PatchForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchForwardingRuleRequest, callback: google.cloud.compute.v1.ForwardingRules.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsForwardingRuleRequest, callback: google.cloud.compute.v1.ForwardingRules.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetTarget.
                     * @param request SetTargetForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTarget(request: google.cloud.compute.v1.ISetTargetForwardingRuleRequest, callback: google.cloud.compute.v1.ForwardingRules.SetTargetCallback): void;

                    /**
                     * Calls SetTarget.
                     * @param request SetTargetForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public setTarget(request: google.cloud.compute.v1.ISetTargetForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace ForwardingRules {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ForwardingRules|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] ForwardingRuleAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ForwardingRuleAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ForwardingRules|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ForwardingRules|get}.
                     * @param error Error, if any
                     * @param [response] ForwardingRule
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ForwardingRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ForwardingRules|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ForwardingRules|list}.
                     * @param error Error, if any
                     * @param [response] ForwardingRuleList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ForwardingRuleList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ForwardingRules|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ForwardingRules|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ForwardingRules|setTarget}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTargetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a FutureReservations */
                class FutureReservations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new FutureReservations 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 FutureReservations 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): FutureReservations;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListFutureReservationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FutureReservationsAggregatedListResponse
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListFutureReservationsRequest, callback: google.cloud.compute.v1.FutureReservations.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListFutureReservationsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListFutureReservationsRequest): Promise<google.cloud.compute.v1.FutureReservationsAggregatedListResponse>;

                    /**
                     * Calls Cancel.
                     * @param request CancelFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cancel(request: google.cloud.compute.v1.ICancelFutureReservationRequest, callback: google.cloud.compute.v1.FutureReservations.CancelCallback): void;

                    /**
                     * Calls Cancel.
                     * @param request CancelFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public cancel(request: google.cloud.compute.v1.ICancelFutureReservationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteFutureReservationRequest, callback: google.cloud.compute.v1.FutureReservations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteFutureReservationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FutureReservation
                     */
                    public get(request: google.cloud.compute.v1.IGetFutureReservationRequest, callback: google.cloud.compute.v1.FutureReservations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetFutureReservationRequest): Promise<google.cloud.compute.v1.FutureReservation>;

                    /**
                     * Calls Insert.
                     * @param request InsertFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertFutureReservationRequest, callback: google.cloud.compute.v1.FutureReservations.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertFutureReservationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListFutureReservationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FutureReservationsListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListFutureReservationsRequest, callback: google.cloud.compute.v1.FutureReservations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListFutureReservationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListFutureReservationsRequest): Promise<google.cloud.compute.v1.FutureReservationsListResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateFutureReservationRequest, callback: google.cloud.compute.v1.FutureReservations.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateFutureReservationRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace FutureReservations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FutureReservations|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] FutureReservationsAggregatedListResponse
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.FutureReservationsAggregatedListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FutureReservations|cancel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CancelCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FutureReservations|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FutureReservations|get}.
                     * @param error Error, if any
                     * @param [response] FutureReservation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.FutureReservation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FutureReservations|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FutureReservations|list}.
                     * @param error Error, if any
                     * @param [response] FutureReservationsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.FutureReservationsListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.FutureReservations|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a GlobalAddresses */
                class GlobalAddresses extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalAddresses 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 GlobalAddresses 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): GlobalAddresses;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalAddressRequest, callback: google.cloud.compute.v1.GlobalAddresses.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalAddressRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Address
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalAddressRequest, callback: google.cloud.compute.v1.GlobalAddresses.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalAddressRequest): Promise<google.cloud.compute.v1.Address>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertGlobalAddressRequest, callback: google.cloud.compute.v1.GlobalAddresses.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertGlobalAddressRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalAddressesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AddressList
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalAddressesRequest, callback: google.cloud.compute.v1.GlobalAddresses.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalAddressesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalAddressesRequest): Promise<google.cloud.compute.v1.AddressList>;

                    /**
                     * Calls Move.
                     * @param request MoveGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public move(request: google.cloud.compute.v1.IMoveGlobalAddressRequest, callback: google.cloud.compute.v1.GlobalAddresses.MoveCallback): void;

                    /**
                     * Calls Move.
                     * @param request MoveGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public move(request: google.cloud.compute.v1.IMoveGlobalAddressRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsGlobalAddressRequest, callback: google.cloud.compute.v1.GlobalAddresses.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsGlobalAddressRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsGlobalAddressRequest, callback: google.cloud.compute.v1.GlobalAddresses.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsGlobalAddressRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace GlobalAddresses {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalAddresses|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalAddresses|get}.
                     * @param error Error, if any
                     * @param [response] Address
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Address) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalAddresses|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalAddresses|list}.
                     * @param error Error, if any
                     * @param [response] AddressList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.AddressList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalAddresses|move}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalAddresses|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalAddresses|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a GlobalForwardingRules */
                class GlobalForwardingRules extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalForwardingRules 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 GlobalForwardingRules 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): GlobalForwardingRules;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalForwardingRuleRequest, callback: google.cloud.compute.v1.GlobalForwardingRules.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRule
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalForwardingRuleRequest, callback: google.cloud.compute.v1.GlobalForwardingRules.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1.ForwardingRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertGlobalForwardingRuleRequest, callback: google.cloud.compute.v1.GlobalForwardingRules.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalForwardingRulesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRuleList
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalForwardingRulesRequest, callback: google.cloud.compute.v1.GlobalForwardingRules.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalForwardingRulesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalForwardingRulesRequest): Promise<google.cloud.compute.v1.ForwardingRuleList>;

                    /**
                     * Calls Patch.
                     * @param request PatchGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchGlobalForwardingRuleRequest, callback: google.cloud.compute.v1.GlobalForwardingRules.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsGlobalForwardingRuleRequest, callback: google.cloud.compute.v1.GlobalForwardingRules.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetTarget.
                     * @param request SetTargetGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTarget(request: google.cloud.compute.v1.ISetTargetGlobalForwardingRuleRequest, callback: google.cloud.compute.v1.GlobalForwardingRules.SetTargetCallback): void;

                    /**
                     * Calls SetTarget.
                     * @param request SetTargetGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public setTarget(request: google.cloud.compute.v1.ISetTargetGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace GlobalForwardingRules {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalForwardingRules|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalForwardingRules|get}.
                     * @param error Error, if any
                     * @param [response] ForwardingRule
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ForwardingRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalForwardingRules|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalForwardingRules|list}.
                     * @param error Error, if any
                     * @param [response] ForwardingRuleList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ForwardingRuleList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalForwardingRules|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalForwardingRules|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalForwardingRules|setTarget}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTargetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a GlobalNetworkEndpointGroups */
                class GlobalNetworkEndpointGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalNetworkEndpointGroups 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 GlobalNetworkEndpointGroups 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): GlobalNetworkEndpointGroups;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.GlobalNetworkEndpointGroups.AttachNetworkEndpointsCallback): void;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.GlobalNetworkEndpointGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.GlobalNetworkEndpointGroups.DetachNetworkEndpointsCallback): void;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.GlobalNetworkEndpointGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.GlobalNetworkEndpointGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupList
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1.GlobalNetworkEndpointGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroupList>;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupsListNetworkEndpoints
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1.GlobalNetworkEndpointGroups.ListNetworkEndpointsCallback): void;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints>;
                }

                namespace GlobalNetworkEndpointGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalNetworkEndpointGroups|attachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AttachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalNetworkEndpointGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalNetworkEndpointGroups|detachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DetachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalNetworkEndpointGroups|get}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalNetworkEndpointGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalNetworkEndpointGroups|list}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalNetworkEndpointGroups|listNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupsListNetworkEndpoints
                     */
                    type ListNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints) => void;
                }

                /** Represents a GlobalOperations */
                class GlobalOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalOperations 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 GlobalOperations 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): GlobalOperations;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListGlobalOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListGlobalOperationsRequest, callback: google.cloud.compute.v1.GlobalOperations.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListGlobalOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListGlobalOperationsRequest): Promise<google.cloud.compute.v1.OperationAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeleteGlobalOperationResponse
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalOperationRequest, callback: google.cloud.compute.v1.GlobalOperations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalOperationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalOperationRequest): Promise<google.cloud.compute.v1.DeleteGlobalOperationResponse>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalOperationRequest, callback: google.cloud.compute.v1.GlobalOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalOperationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationList
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalOperationsRequest, callback: google.cloud.compute.v1.GlobalOperations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalOperationsRequest): Promise<google.cloud.compute.v1.OperationList>;

                    /**
                     * Calls Wait.
                     * @param request WaitGlobalOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public wait(request: google.cloud.compute.v1.IWaitGlobalOperationRequest, callback: google.cloud.compute.v1.GlobalOperations.WaitCallback): void;

                    /**
                     * Calls Wait.
                     * @param request WaitGlobalOperationRequest message or plain object
                     * @returns Promise
                     */
                    public wait(request: google.cloud.compute.v1.IWaitGlobalOperationRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace GlobalOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalOperations|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] OperationAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.OperationAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalOperations|delete_}.
                     * @param error Error, if any
                     * @param [response] DeleteGlobalOperationResponse
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.DeleteGlobalOperationResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalOperations|list}.
                     * @param error Error, if any
                     * @param [response] OperationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.OperationList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalOperations|wait}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WaitCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a GlobalOrganizationOperations */
                class GlobalOrganizationOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalOrganizationOperations 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 GlobalOrganizationOperations 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): GlobalOrganizationOperations;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalOrganizationOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeleteGlobalOrganizationOperationResponse
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationRequest, callback: google.cloud.compute.v1.GlobalOrganizationOperations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalOrganizationOperationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalOrganizationOperationRequest): Promise<google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalOrganizationOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalOrganizationOperationRequest, callback: google.cloud.compute.v1.GlobalOrganizationOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalOrganizationOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalOrganizationOperationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalOrganizationOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationList
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalOrganizationOperationsRequest, callback: google.cloud.compute.v1.GlobalOrganizationOperations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalOrganizationOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalOrganizationOperationsRequest): Promise<google.cloud.compute.v1.OperationList>;
                }

                namespace GlobalOrganizationOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalOrganizationOperations|delete_}.
                     * @param error Error, if any
                     * @param [response] DeleteGlobalOrganizationOperationResponse
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.DeleteGlobalOrganizationOperationResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalOrganizationOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalOrganizationOperations|list}.
                     * @param error Error, if any
                     * @param [response] OperationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.OperationList) => void;
                }

                /** Represents a GlobalPublicDelegatedPrefixes */
                class GlobalPublicDelegatedPrefixes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalPublicDelegatedPrefixes 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 GlobalPublicDelegatedPrefixes 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): GlobalPublicDelegatedPrefixes;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteGlobalPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefix
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetGlobalPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.PublicDelegatedPrefix>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertGlobalPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertGlobalPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalPublicDelegatedPrefixesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefixList
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalPublicDelegatedPrefixesRequest, callback: google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalPublicDelegatedPrefixesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListGlobalPublicDelegatedPrefixesRequest): Promise<google.cloud.compute.v1.PublicDelegatedPrefixList>;

                    /**
                     * Calls Patch.
                     * @param request PatchGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchGlobalPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.GlobalPublicDelegatedPrefixes.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchGlobalPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace GlobalPublicDelegatedPrefixes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalPublicDelegatedPrefixes|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalPublicDelegatedPrefixes|get}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefix
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.PublicDelegatedPrefix) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalPublicDelegatedPrefixes|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalPublicDelegatedPrefixes|list}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefixList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.PublicDelegatedPrefixList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.GlobalPublicDelegatedPrefixes|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a HealthChecks */
                class HealthChecks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new HealthChecks 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 HealthChecks 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): HealthChecks;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthChecksAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListHealthChecksRequest, callback: google.cloud.compute.v1.HealthChecks.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListHealthChecksRequest): Promise<google.cloud.compute.v1.HealthChecksAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteHealthCheckRequest, callback: google.cloud.compute.v1.HealthChecks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheck
                     */
                    public get(request: google.cloud.compute.v1.IGetHealthCheckRequest, callback: google.cloud.compute.v1.HealthChecks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetHealthCheckRequest): Promise<google.cloud.compute.v1.HealthCheck>;

                    /**
                     * Calls Insert.
                     * @param request InsertHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertHealthCheckRequest, callback: google.cloud.compute.v1.HealthChecks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckList
                     */
                    public list(request: google.cloud.compute.v1.IListHealthChecksRequest, callback: google.cloud.compute.v1.HealthChecks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListHealthChecksRequest): Promise<google.cloud.compute.v1.HealthCheckList>;

                    /**
                     * Calls Patch.
                     * @param request PatchHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchHealthCheckRequest, callback: google.cloud.compute.v1.HealthChecks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsHealthCheckRequest, callback: google.cloud.compute.v1.HealthChecks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsHealthCheckRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateHealthCheckRequest, callback: google.cloud.compute.v1.HealthChecks.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace HealthChecks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.HealthChecks|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] HealthChecksAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthChecksAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.HealthChecks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.HealthChecks|get}.
                     * @param error Error, if any
                     * @param [response] HealthCheck
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthCheck) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.HealthChecks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.HealthChecks|list}.
                     * @param error Error, if any
                     * @param [response] HealthCheckList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthCheckList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.HealthChecks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.HealthChecks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.HealthChecks|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents an ImageFamilyViews */
                class ImageFamilyViews extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ImageFamilyViews 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 ImageFamilyViews 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): ImageFamilyViews;

                    /**
                     * Calls Get.
                     * @param request GetImageFamilyViewRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ImageFamilyView
                     */
                    public get(request: google.cloud.compute.v1.IGetImageFamilyViewRequest, callback: google.cloud.compute.v1.ImageFamilyViews.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetImageFamilyViewRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetImageFamilyViewRequest): Promise<google.cloud.compute.v1.ImageFamilyView>;
                }

                namespace ImageFamilyViews {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ImageFamilyViews|get}.
                     * @param error Error, if any
                     * @param [response] ImageFamilyView
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ImageFamilyView) => void;
                }

                /** Represents an Images */
                class Images extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Images 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 Images 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): Images;

                    /**
                     * Calls Delete.
                     * @param request DeleteImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteImageRequest, callback: google.cloud.compute.v1.Images.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteImageRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteImageRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Deprecate.
                     * @param request DeprecateImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deprecate(request: google.cloud.compute.v1.IDeprecateImageRequest, callback: google.cloud.compute.v1.Images.DeprecateCallback): void;

                    /**
                     * Calls Deprecate.
                     * @param request DeprecateImageRequest message or plain object
                     * @returns Promise
                     */
                    public deprecate(request: google.cloud.compute.v1.IDeprecateImageRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Image
                     */
                    public get(request: google.cloud.compute.v1.IGetImageRequest, callback: google.cloud.compute.v1.Images.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetImageRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetImageRequest): Promise<google.cloud.compute.v1.Image>;

                    /**
                     * Calls GetFromFamily.
                     * @param request GetFromFamilyImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Image
                     */
                    public getFromFamily(request: google.cloud.compute.v1.IGetFromFamilyImageRequest, callback: google.cloud.compute.v1.Images.GetFromFamilyCallback): void;

                    /**
                     * Calls GetFromFamily.
                     * @param request GetFromFamilyImageRequest message or plain object
                     * @returns Promise
                     */
                    public getFromFamily(request: google.cloud.compute.v1.IGetFromFamilyImageRequest): Promise<google.cloud.compute.v1.Image>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyImageRequest, callback: google.cloud.compute.v1.Images.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyImageRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyImageRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertImageRequest, callback: google.cloud.compute.v1.Images.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertImageRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertImageRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListImagesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ImageList
                     */
                    public list(request: google.cloud.compute.v1.IListImagesRequest, callback: google.cloud.compute.v1.Images.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListImagesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListImagesRequest): Promise<google.cloud.compute.v1.ImageList>;

                    /**
                     * Calls Patch.
                     * @param request PatchImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchImageRequest, callback: google.cloud.compute.v1.Images.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchImageRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchImageRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyImageRequest, callback: google.cloud.compute.v1.Images.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyImageRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyImageRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsImageRequest, callback: google.cloud.compute.v1.Images.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsImageRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsImageRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsImageRequest, callback: google.cloud.compute.v1.Images.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsImageRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsImageRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace Images {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|deprecate}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeprecateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|get}.
                     * @param error Error, if any
                     * @param [response] Image
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Image) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|getFromFamily}.
                     * @param error Error, if any
                     * @param [response] Image
                     */
                    type GetFromFamilyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Image) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|list}.
                     * @param error Error, if any
                     * @param [response] ImageList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ImageList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Images|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents an InstanceGroupManagerResizeRequests */
                class InstanceGroupManagerResizeRequests extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequests 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 InstanceGroupManagerResizeRequests 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): InstanceGroupManagerResizeRequests;

                    /**
                     * Calls Cancel.
                     * @param request CancelInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cancel(request: google.cloud.compute.v1.ICancelInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1.InstanceGroupManagerResizeRequests.CancelCallback): void;

                    /**
                     * Calls Cancel.
                     * @param request CancelInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public cancel(request: google.cloud.compute.v1.ICancelInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1.InstanceGroupManagerResizeRequests.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerResizeRequest
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1.InstanceGroupManagerResizeRequests.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1.InstanceGroupManagerResizeRequest>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1.InstanceGroupManagerResizeRequests.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupManagerResizeRequestsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerResizeRequestsListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListInstanceGroupManagerResizeRequestsRequest, callback: google.cloud.compute.v1.InstanceGroupManagerResizeRequests.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupManagerResizeRequestsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInstanceGroupManagerResizeRequestsRequest): Promise<google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse>;
                }

                namespace InstanceGroupManagerResizeRequests {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequests|cancel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CancelCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequests|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequests|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerResizeRequest
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManagerResizeRequest) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequests|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagerResizeRequests|list}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerResizeRequestsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse) => void;
                }

                /** Represents an InstanceGroupManagers */
                class InstanceGroupManagers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceGroupManagers 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 InstanceGroupManagers 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): InstanceGroupManagers;

                    /**
                     * Calls AbandonInstances.
                     * @param request AbandonInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public abandonInstances(request: google.cloud.compute.v1.IAbandonInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.AbandonInstancesCallback): void;

                    /**
                     * Calls AbandonInstances.
                     * @param request AbandonInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public abandonInstances(request: google.cloud.compute.v1.IAbandonInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstanceGroupManagersRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.InstanceGroupManagerAggregatedList>;

                    /**
                     * Calls ApplyUpdatesToInstances.
                     * @param request ApplyUpdatesToInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public applyUpdatesToInstances(request: google.cloud.compute.v1.IApplyUpdatesToInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.ApplyUpdatesToInstancesCallback): void;

                    /**
                     * Calls ApplyUpdatesToInstances.
                     * @param request ApplyUpdatesToInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public applyUpdatesToInstances(request: google.cloud.compute.v1.IApplyUpdatesToInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls CreateInstances.
                     * @param request CreateInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createInstances(request: google.cloud.compute.v1.ICreateInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.CreateInstancesCallback): void;

                    /**
                     * Calls CreateInstances.
                     * @param request CreateInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public createInstances(request: google.cloud.compute.v1.ICreateInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeleteInstances.
                     * @param request DeleteInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteInstances(request: google.cloud.compute.v1.IDeleteInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.DeleteInstancesCallback): void;

                    /**
                     * Calls DeleteInstances.
                     * @param request DeleteInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public deleteInstances(request: google.cloud.compute.v1.IDeleteInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeletePerInstanceConfigs.
                     * @param request DeletePerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deletePerInstanceConfigs(request: google.cloud.compute.v1.IDeletePerInstanceConfigsInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.DeletePerInstanceConfigsCallback): void;

                    /**
                     * Calls DeletePerInstanceConfigs.
                     * @param request DeletePerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public deletePerInstanceConfigs(request: google.cloud.compute.v1.IDeletePerInstanceConfigsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManager
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.InstanceGroupManager>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerList
                     */
                    public list(request: google.cloud.compute.v1.IListInstanceGroupManagersRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.InstanceGroupManagerList>;

                    /**
                     * Calls ListErrors.
                     * @param request ListErrorsInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagersListErrorsResponse
                     */
                    public listErrors(request: google.cloud.compute.v1.IListErrorsInstanceGroupManagersRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.ListErrorsCallback): void;

                    /**
                     * Calls ListErrors.
                     * @param request ListErrorsInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listErrors(request: google.cloud.compute.v1.IListErrorsInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse>;

                    /**
                     * Calls ListManagedInstances.
                     * @param request ListManagedInstancesInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagersListManagedInstancesResponse
                     */
                    public listManagedInstances(request: google.cloud.compute.v1.IListManagedInstancesInstanceGroupManagersRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.ListManagedInstancesCallback): void;

                    /**
                     * Calls ListManagedInstances.
                     * @param request ListManagedInstancesInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listManagedInstances(request: google.cloud.compute.v1.IListManagedInstancesInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse>;

                    /**
                     * Calls ListPerInstanceConfigs.
                     * @param request ListPerInstanceConfigsInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagersListPerInstanceConfigsResp
                     */
                    public listPerInstanceConfigs(request: google.cloud.compute.v1.IListPerInstanceConfigsInstanceGroupManagersRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.ListPerInstanceConfigsCallback): void;

                    /**
                     * Calls ListPerInstanceConfigs.
                     * @param request ListPerInstanceConfigsInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listPerInstanceConfigs(request: google.cloud.compute.v1.IListPerInstanceConfigsInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp>;

                    /**
                     * Calls Patch.
                     * @param request PatchInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchPerInstanceConfigs.
                     * @param request PatchPerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchPerInstanceConfigs(request: google.cloud.compute.v1.IPatchPerInstanceConfigsInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.PatchPerInstanceConfigsCallback): void;

                    /**
                     * Calls PatchPerInstanceConfigs.
                     * @param request PatchPerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public patchPerInstanceConfigs(request: google.cloud.compute.v1.IPatchPerInstanceConfigsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RecreateInstances.
                     * @param request RecreateInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public recreateInstances(request: google.cloud.compute.v1.IRecreateInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.RecreateInstancesCallback): void;

                    /**
                     * Calls RecreateInstances.
                     * @param request RecreateInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public recreateInstances(request: google.cloud.compute.v1.IRecreateInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1.IResizeInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1.IResizeInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls ResumeInstances.
                     * @param request ResumeInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resumeInstances(request: google.cloud.compute.v1.IResumeInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.ResumeInstancesCallback): void;

                    /**
                     * Calls ResumeInstances.
                     * @param request ResumeInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resumeInstances(request: google.cloud.compute.v1.IResumeInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetInstanceTemplate.
                     * @param request SetInstanceTemplateInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setInstanceTemplate(request: google.cloud.compute.v1.ISetInstanceTemplateInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.SetInstanceTemplateCallback): void;

                    /**
                     * Calls SetInstanceTemplate.
                     * @param request SetInstanceTemplateInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setInstanceTemplate(request: google.cloud.compute.v1.ISetInstanceTemplateInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetTargetPools.
                     * @param request SetTargetPoolsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTargetPools(request: google.cloud.compute.v1.ISetTargetPoolsInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.SetTargetPoolsCallback): void;

                    /**
                     * Calls SetTargetPools.
                     * @param request SetTargetPoolsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setTargetPools(request: google.cloud.compute.v1.ISetTargetPoolsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StartInstances.
                     * @param request StartInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startInstances(request: google.cloud.compute.v1.IStartInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.StartInstancesCallback): void;

                    /**
                     * Calls StartInstances.
                     * @param request StartInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public startInstances(request: google.cloud.compute.v1.IStartInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StopInstances.
                     * @param request StopInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopInstances(request: google.cloud.compute.v1.IStopInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.StopInstancesCallback): void;

                    /**
                     * Calls StopInstances.
                     * @param request StopInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public stopInstances(request: google.cloud.compute.v1.IStopInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SuspendInstances.
                     * @param request SuspendInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public suspendInstances(request: google.cloud.compute.v1.ISuspendInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.SuspendInstancesCallback): void;

                    /**
                     * Calls SuspendInstances.
                     * @param request SuspendInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public suspendInstances(request: google.cloud.compute.v1.ISuspendInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls UpdatePerInstanceConfigs.
                     * @param request UpdatePerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updatePerInstanceConfigs(request: google.cloud.compute.v1.IUpdatePerInstanceConfigsInstanceGroupManagerRequest, callback: google.cloud.compute.v1.InstanceGroupManagers.UpdatePerInstanceConfigsCallback): void;

                    /**
                     * Calls UpdatePerInstanceConfigs.
                     * @param request UpdatePerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public updatePerInstanceConfigs(request: google.cloud.compute.v1.IUpdatePerInstanceConfigsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace InstanceGroupManagers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|abandonInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AbandonInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManagerAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|applyUpdatesToInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ApplyUpdatesToInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|createInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|deleteInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|deletePerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeletePerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManager
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManager) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|list}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManagerList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|listErrors}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagersListErrorsResponse
                     */
                    type ListErrorsCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|listManagedInstances}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagersListManagedInstancesResponse
                     */
                    type ListManagedInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|listPerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagersListPerInstanceConfigsResp
                     */
                    type ListPerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|patchPerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchPerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|recreateInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RecreateInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|resumeInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResumeInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|setInstanceTemplate}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetInstanceTemplateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|setTargetPools}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTargetPoolsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|startInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|stopInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|suspendInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SuspendInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroupManagers|updatePerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdatePerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents an InstanceGroups */
                class InstanceGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceGroups 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 InstanceGroups 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): InstanceGroups;

                    /**
                     * Calls AddInstances.
                     * @param request AddInstancesInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addInstances(request: google.cloud.compute.v1.IAddInstancesInstanceGroupRequest, callback: google.cloud.compute.v1.InstanceGroups.AddInstancesCallback): void;

                    /**
                     * Calls AddInstances.
                     * @param request AddInstancesInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public addInstances(request: google.cloud.compute.v1.IAddInstancesInstanceGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstanceGroupsRequest, callback: google.cloud.compute.v1.InstanceGroups.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstanceGroupsRequest): Promise<google.cloud.compute.v1.InstanceGroupAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceGroupRequest, callback: google.cloud.compute.v1.InstanceGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceGroupRequest, callback: google.cloud.compute.v1.InstanceGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceGroupRequest): Promise<google.cloud.compute.v1.InstanceGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceGroupRequest, callback: google.cloud.compute.v1.InstanceGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupList
                     */
                    public list(request: google.cloud.compute.v1.IListInstanceGroupsRequest, callback: google.cloud.compute.v1.InstanceGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInstanceGroupsRequest): Promise<google.cloud.compute.v1.InstanceGroupList>;

                    /**
                     * Calls ListInstances.
                     * @param request ListInstancesInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupsListInstances
                     */
                    public listInstances(request: google.cloud.compute.v1.IListInstancesInstanceGroupsRequest, callback: google.cloud.compute.v1.InstanceGroups.ListInstancesCallback): void;

                    /**
                     * Calls ListInstances.
                     * @param request ListInstancesInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listInstances(request: google.cloud.compute.v1.IListInstancesInstanceGroupsRequest): Promise<google.cloud.compute.v1.InstanceGroupsListInstances>;

                    /**
                     * Calls RemoveInstances.
                     * @param request RemoveInstancesInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeInstances(request: google.cloud.compute.v1.IRemoveInstancesInstanceGroupRequest, callback: google.cloud.compute.v1.InstanceGroups.RemoveInstancesCallback): void;

                    /**
                     * Calls RemoveInstances.
                     * @param request RemoveInstancesInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public removeInstances(request: google.cloud.compute.v1.IRemoveInstancesInstanceGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetNamedPorts.
                     * @param request SetNamedPortsInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setNamedPorts(request: google.cloud.compute.v1.ISetNamedPortsInstanceGroupRequest, callback: google.cloud.compute.v1.InstanceGroups.SetNamedPortsCallback): void;

                    /**
                     * Calls SetNamedPorts.
                     * @param request SetNamedPortsInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setNamedPorts(request: google.cloud.compute.v1.ISetNamedPortsInstanceGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInstanceGroupRequest, callback: google.cloud.compute.v1.InstanceGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInstanceGroupRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace InstanceGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|addInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|list}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|listInstances}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupsListInstances
                     */
                    type ListInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupsListInstances) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|removeInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|setNamedPorts}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetNamedPortsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents an InstanceSettingsService */
                class InstanceSettingsService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceSettingsService 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 InstanceSettingsService 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): InstanceSettingsService;

                    /**
                     * Calls Get.
                     * @param request GetInstanceSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceSettings
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceSettingRequest, callback: google.cloud.compute.v1.InstanceSettingsService.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceSettingRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceSettingRequest): Promise<google.cloud.compute.v1.InstanceSettings>;

                    /**
                     * Calls Patch.
                     * @param request PatchInstanceSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInstanceSettingRequest, callback: google.cloud.compute.v1.InstanceSettingsService.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInstanceSettingRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInstanceSettingRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace InstanceSettingsService {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceSettingsService|get}.
                     * @param error Error, if any
                     * @param [response] InstanceSettings
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceSettings) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceSettingsService|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents an InstanceTemplates */
                class InstanceTemplates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceTemplates 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 InstanceTemplates 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): InstanceTemplates;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplateAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstanceTemplatesRequest, callback: google.cloud.compute.v1.InstanceTemplates.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstanceTemplatesRequest): Promise<google.cloud.compute.v1.InstanceTemplateAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceTemplateRequest, callback: google.cloud.compute.v1.InstanceTemplates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceTemplateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplate
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceTemplateRequest, callback: google.cloud.compute.v1.InstanceTemplates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceTemplateRequest): Promise<google.cloud.compute.v1.InstanceTemplate>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInstanceTemplateRequest, callback: google.cloud.compute.v1.InstanceTemplates.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInstanceTemplateRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceTemplateRequest, callback: google.cloud.compute.v1.InstanceTemplates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceTemplateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstanceTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplateList
                     */
                    public list(request: google.cloud.compute.v1.IListInstanceTemplatesRequest, callback: google.cloud.compute.v1.InstanceTemplates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstanceTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInstanceTemplatesRequest): Promise<google.cloud.compute.v1.InstanceTemplateList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInstanceTemplateRequest, callback: google.cloud.compute.v1.InstanceTemplates.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInstanceTemplateRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInstanceTemplateRequest, callback: google.cloud.compute.v1.InstanceTemplates.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInstanceTemplateRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace InstanceTemplates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceTemplates|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplateAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceTemplateAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceTemplates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceTemplates|get}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceTemplate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceTemplates|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceTemplates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceTemplates|list}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceTemplateList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceTemplates|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstanceTemplates|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents an Instances */
                class Instances extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Instances 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 Instances 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): Instances;

                    /**
                     * Calls AddAccessConfig.
                     * @param request AddAccessConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAccessConfig(request: google.cloud.compute.v1.IAddAccessConfigInstanceRequest, callback: google.cloud.compute.v1.Instances.AddAccessConfigCallback): void;

                    /**
                     * Calls AddAccessConfig.
                     * @param request AddAccessConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public addAccessConfig(request: google.cloud.compute.v1.IAddAccessConfigInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AddNetworkInterface.
                     * @param request AddNetworkInterfaceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addNetworkInterface(request: google.cloud.compute.v1.IAddNetworkInterfaceInstanceRequest, callback: google.cloud.compute.v1.Instances.AddNetworkInterfaceCallback): void;

                    /**
                     * Calls AddNetworkInterface.
                     * @param request AddNetworkInterfaceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public addNetworkInterface(request: google.cloud.compute.v1.IAddNetworkInterfaceInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1.IAddResourcePoliciesInstanceRequest, callback: google.cloud.compute.v1.Instances.AddResourcePoliciesCallback): void;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1.IAddResourcePoliciesInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstancesRequest, callback: google.cloud.compute.v1.Instances.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstancesRequest): Promise<google.cloud.compute.v1.InstanceAggregatedList>;

                    /**
                     * Calls AttachDisk.
                     * @param request AttachDiskInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public attachDisk(request: google.cloud.compute.v1.IAttachDiskInstanceRequest, callback: google.cloud.compute.v1.Instances.AttachDiskCallback): void;

                    /**
                     * Calls AttachDisk.
                     * @param request AttachDiskInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public attachDisk(request: google.cloud.compute.v1.IAttachDiskInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkInsert(request: google.cloud.compute.v1.IBulkInsertInstanceRequest, callback: google.cloud.compute.v1.Instances.BulkInsertCallback): void;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public bulkInsert(request: google.cloud.compute.v1.IBulkInsertInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceRequest, callback: google.cloud.compute.v1.Instances.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeleteAccessConfig.
                     * @param request DeleteAccessConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteAccessConfig(request: google.cloud.compute.v1.IDeleteAccessConfigInstanceRequest, callback: google.cloud.compute.v1.Instances.DeleteAccessConfigCallback): void;

                    /**
                     * Calls DeleteAccessConfig.
                     * @param request DeleteAccessConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public deleteAccessConfig(request: google.cloud.compute.v1.IDeleteAccessConfigInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeleteNetworkInterface.
                     * @param request DeleteNetworkInterfaceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteNetworkInterface(request: google.cloud.compute.v1.IDeleteNetworkInterfaceInstanceRequest, callback: google.cloud.compute.v1.Instances.DeleteNetworkInterfaceCallback): void;

                    /**
                     * Calls DeleteNetworkInterface.
                     * @param request DeleteNetworkInterfaceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public deleteNetworkInterface(request: google.cloud.compute.v1.IDeleteNetworkInterfaceInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DetachDisk.
                     * @param request DetachDiskInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public detachDisk(request: google.cloud.compute.v1.IDetachDiskInstanceRequest, callback: google.cloud.compute.v1.Instances.DetachDiskCallback): void;

                    /**
                     * Calls DetachDisk.
                     * @param request DetachDiskInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public detachDisk(request: google.cloud.compute.v1.IDetachDiskInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Instance
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceRequest, callback: google.cloud.compute.v1.Instances.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInstanceRequest): Promise<google.cloud.compute.v1.Instance>;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstancesGetEffectiveFirewallsResponse
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1.IGetEffectiveFirewallsInstanceRequest, callback: google.cloud.compute.v1.Instances.GetEffectiveFirewallsCallback): void;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1.IGetEffectiveFirewallsInstanceRequest): Promise<google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse>;

                    /**
                     * Calls GetGuestAttributes.
                     * @param request GetGuestAttributesInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GuestAttributes
                     */
                    public getGuestAttributes(request: google.cloud.compute.v1.IGetGuestAttributesInstanceRequest, callback: google.cloud.compute.v1.Instances.GetGuestAttributesCallback): void;

                    /**
                     * Calls GetGuestAttributes.
                     * @param request GetGuestAttributesInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getGuestAttributes(request: google.cloud.compute.v1.IGetGuestAttributesInstanceRequest): Promise<google.cloud.compute.v1.GuestAttributes>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInstanceRequest, callback: google.cloud.compute.v1.Instances.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInstanceRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls GetScreenshot.
                     * @param request GetScreenshotInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Screenshot
                     */
                    public getScreenshot(request: google.cloud.compute.v1.IGetScreenshotInstanceRequest, callback: google.cloud.compute.v1.Instances.GetScreenshotCallback): void;

                    /**
                     * Calls GetScreenshot.
                     * @param request GetScreenshotInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getScreenshot(request: google.cloud.compute.v1.IGetScreenshotInstanceRequest): Promise<google.cloud.compute.v1.Screenshot>;

                    /**
                     * Calls GetSerialPortOutput.
                     * @param request GetSerialPortOutputInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SerialPortOutput
                     */
                    public getSerialPortOutput(request: google.cloud.compute.v1.IGetSerialPortOutputInstanceRequest, callback: google.cloud.compute.v1.Instances.GetSerialPortOutputCallback): void;

                    /**
                     * Calls GetSerialPortOutput.
                     * @param request GetSerialPortOutputInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getSerialPortOutput(request: google.cloud.compute.v1.IGetSerialPortOutputInstanceRequest): Promise<google.cloud.compute.v1.SerialPortOutput>;

                    /**
                     * Calls GetShieldedInstanceIdentity.
                     * @param request GetShieldedInstanceIdentityInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ShieldedInstanceIdentity
                     */
                    public getShieldedInstanceIdentity(request: google.cloud.compute.v1.IGetShieldedInstanceIdentityInstanceRequest, callback: google.cloud.compute.v1.Instances.GetShieldedInstanceIdentityCallback): void;

                    /**
                     * Calls GetShieldedInstanceIdentity.
                     * @param request GetShieldedInstanceIdentityInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getShieldedInstanceIdentity(request: google.cloud.compute.v1.IGetShieldedInstanceIdentityInstanceRequest): Promise<google.cloud.compute.v1.ShieldedInstanceIdentity>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceRequest, callback: google.cloud.compute.v1.Instances.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceList
                     */
                    public list(request: google.cloud.compute.v1.IListInstancesRequest, callback: google.cloud.compute.v1.Instances.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInstancesRequest): Promise<google.cloud.compute.v1.InstanceList>;

                    /**
                     * Calls ListReferrers.
                     * @param request ListReferrersInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceListReferrers
                     */
                    public listReferrers(request: google.cloud.compute.v1.IListReferrersInstancesRequest, callback: google.cloud.compute.v1.Instances.ListReferrersCallback): void;

                    /**
                     * Calls ListReferrers.
                     * @param request ListReferrersInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public listReferrers(request: google.cloud.compute.v1.IListReferrersInstancesRequest): Promise<google.cloud.compute.v1.InstanceListReferrers>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceInstanceRequest, callback: google.cloud.compute.v1.Instances.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1.IRemoveResourcePoliciesInstanceRequest, callback: google.cloud.compute.v1.Instances.RemoveResourcePoliciesCallback): void;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1.IRemoveResourcePoliciesInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls ReportHostAsFaulty.
                     * @param request ReportHostAsFaultyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public reportHostAsFaulty(request: google.cloud.compute.v1.IReportHostAsFaultyInstanceRequest, callback: google.cloud.compute.v1.Instances.ReportHostAsFaultyCallback): void;

                    /**
                     * Calls ReportHostAsFaulty.
                     * @param request ReportHostAsFaultyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public reportHostAsFaulty(request: google.cloud.compute.v1.IReportHostAsFaultyInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Reset.
                     * @param request ResetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public reset(request: google.cloud.compute.v1.IResetInstanceRequest, callback: google.cloud.compute.v1.Instances.ResetCallback): void;

                    /**
                     * Calls Reset.
                     * @param request ResetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public reset(request: google.cloud.compute.v1.IResetInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Resume.
                     * @param request ResumeInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resume(request: google.cloud.compute.v1.IResumeInstanceRequest, callback: google.cloud.compute.v1.Instances.ResumeCallback): void;

                    /**
                     * Calls Resume.
                     * @param request ResumeInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public resume(request: google.cloud.compute.v1.IResumeInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SendDiagnosticInterrupt.
                     * @param request SendDiagnosticInterruptInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SendDiagnosticInterruptInstanceResponse
                     */
                    public sendDiagnosticInterrupt(request: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceRequest, callback: google.cloud.compute.v1.Instances.SendDiagnosticInterruptCallback): void;

                    /**
                     * Calls SendDiagnosticInterrupt.
                     * @param request SendDiagnosticInterruptInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public sendDiagnosticInterrupt(request: google.cloud.compute.v1.ISendDiagnosticInterruptInstanceRequest): Promise<google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse>;

                    /**
                     * Calls SetDeletionProtection.
                     * @param request SetDeletionProtectionInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setDeletionProtection(request: google.cloud.compute.v1.ISetDeletionProtectionInstanceRequest, callback: google.cloud.compute.v1.Instances.SetDeletionProtectionCallback): void;

                    /**
                     * Calls SetDeletionProtection.
                     * @param request SetDeletionProtectionInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setDeletionProtection(request: google.cloud.compute.v1.ISetDeletionProtectionInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetDiskAutoDelete.
                     * @param request SetDiskAutoDeleteInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setDiskAutoDelete(request: google.cloud.compute.v1.ISetDiskAutoDeleteInstanceRequest, callback: google.cloud.compute.v1.Instances.SetDiskAutoDeleteCallback): void;

                    /**
                     * Calls SetDiskAutoDelete.
                     * @param request SetDiskAutoDeleteInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setDiskAutoDelete(request: google.cloud.compute.v1.ISetDiskAutoDeleteInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInstanceRequest, callback: google.cloud.compute.v1.Instances.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInstanceRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsInstanceRequest, callback: google.cloud.compute.v1.Instances.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetMachineResources.
                     * @param request SetMachineResourcesInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setMachineResources(request: google.cloud.compute.v1.ISetMachineResourcesInstanceRequest, callback: google.cloud.compute.v1.Instances.SetMachineResourcesCallback): void;

                    /**
                     * Calls SetMachineResources.
                     * @param request SetMachineResourcesInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setMachineResources(request: google.cloud.compute.v1.ISetMachineResourcesInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetMachineType.
                     * @param request SetMachineTypeInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setMachineType(request: google.cloud.compute.v1.ISetMachineTypeInstanceRequest, callback: google.cloud.compute.v1.Instances.SetMachineTypeCallback): void;

                    /**
                     * Calls SetMachineType.
                     * @param request SetMachineTypeInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setMachineType(request: google.cloud.compute.v1.ISetMachineTypeInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetMetadata.
                     * @param request SetMetadataInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setMetadata(request: google.cloud.compute.v1.ISetMetadataInstanceRequest, callback: google.cloud.compute.v1.Instances.SetMetadataCallback): void;

                    /**
                     * Calls SetMetadata.
                     * @param request SetMetadataInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setMetadata(request: google.cloud.compute.v1.ISetMetadataInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetMinCpuPlatform.
                     * @param request SetMinCpuPlatformInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setMinCpuPlatform(request: google.cloud.compute.v1.ISetMinCpuPlatformInstanceRequest, callback: google.cloud.compute.v1.Instances.SetMinCpuPlatformCallback): void;

                    /**
                     * Calls SetMinCpuPlatform.
                     * @param request SetMinCpuPlatformInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setMinCpuPlatform(request: google.cloud.compute.v1.ISetMinCpuPlatformInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetName.
                     * @param request SetNameInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setName(request: google.cloud.compute.v1.ISetNameInstanceRequest, callback: google.cloud.compute.v1.Instances.SetNameCallback): void;

                    /**
                     * Calls SetName.
                     * @param request SetNameInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setName(request: google.cloud.compute.v1.ISetNameInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetScheduling.
                     * @param request SetSchedulingInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setScheduling(request: google.cloud.compute.v1.ISetSchedulingInstanceRequest, callback: google.cloud.compute.v1.Instances.SetSchedulingCallback): void;

                    /**
                     * Calls SetScheduling.
                     * @param request SetSchedulingInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setScheduling(request: google.cloud.compute.v1.ISetSchedulingInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyInstanceRequest, callback: google.cloud.compute.v1.Instances.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetServiceAccount.
                     * @param request SetServiceAccountInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setServiceAccount(request: google.cloud.compute.v1.ISetServiceAccountInstanceRequest, callback: google.cloud.compute.v1.Instances.SetServiceAccountCallback): void;

                    /**
                     * Calls SetServiceAccount.
                     * @param request SetServiceAccountInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setServiceAccount(request: google.cloud.compute.v1.ISetServiceAccountInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetShieldedInstanceIntegrityPolicy.
                     * @param request SetShieldedInstanceIntegrityPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setShieldedInstanceIntegrityPolicy(request: google.cloud.compute.v1.ISetShieldedInstanceIntegrityPolicyInstanceRequest, callback: google.cloud.compute.v1.Instances.SetShieldedInstanceIntegrityPolicyCallback): void;

                    /**
                     * Calls SetShieldedInstanceIntegrityPolicy.
                     * @param request SetShieldedInstanceIntegrityPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setShieldedInstanceIntegrityPolicy(request: google.cloud.compute.v1.ISetShieldedInstanceIntegrityPolicyInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetTags.
                     * @param request SetTagsInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTags(request: google.cloud.compute.v1.ISetTagsInstanceRequest, callback: google.cloud.compute.v1.Instances.SetTagsCallback): void;

                    /**
                     * Calls SetTags.
                     * @param request SetTagsInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setTags(request: google.cloud.compute.v1.ISetTagsInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SimulateMaintenanceEvent.
                     * @param request SimulateMaintenanceEventInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public simulateMaintenanceEvent(request: google.cloud.compute.v1.ISimulateMaintenanceEventInstanceRequest, callback: google.cloud.compute.v1.Instances.SimulateMaintenanceEventCallback): void;

                    /**
                     * Calls SimulateMaintenanceEvent.
                     * @param request SimulateMaintenanceEventInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public simulateMaintenanceEvent(request: google.cloud.compute.v1.ISimulateMaintenanceEventInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Start.
                     * @param request StartInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public start(request: google.cloud.compute.v1.IStartInstanceRequest, callback: google.cloud.compute.v1.Instances.StartCallback): void;

                    /**
                     * Calls Start.
                     * @param request StartInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public start(request: google.cloud.compute.v1.IStartInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StartWithEncryptionKey.
                     * @param request StartWithEncryptionKeyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startWithEncryptionKey(request: google.cloud.compute.v1.IStartWithEncryptionKeyInstanceRequest, callback: google.cloud.compute.v1.Instances.StartWithEncryptionKeyCallback): void;

                    /**
                     * Calls StartWithEncryptionKey.
                     * @param request StartWithEncryptionKeyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public startWithEncryptionKey(request: google.cloud.compute.v1.IStartWithEncryptionKeyInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Stop.
                     * @param request StopInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stop(request: google.cloud.compute.v1.IStopInstanceRequest, callback: google.cloud.compute.v1.Instances.StopCallback): void;

                    /**
                     * Calls Stop.
                     * @param request StopInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public stop(request: google.cloud.compute.v1.IStopInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Suspend.
                     * @param request SuspendInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public suspend(request: google.cloud.compute.v1.ISuspendInstanceRequest, callback: google.cloud.compute.v1.Instances.SuspendCallback): void;

                    /**
                     * Calls Suspend.
                     * @param request SuspendInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public suspend(request: google.cloud.compute.v1.ISuspendInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInstanceRequest, callback: google.cloud.compute.v1.Instances.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInstanceRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateInstanceRequest, callback: google.cloud.compute.v1.Instances.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls UpdateAccessConfig.
                     * @param request UpdateAccessConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateAccessConfig(request: google.cloud.compute.v1.IUpdateAccessConfigInstanceRequest, callback: google.cloud.compute.v1.Instances.UpdateAccessConfigCallback): void;

                    /**
                     * Calls UpdateAccessConfig.
                     * @param request UpdateAccessConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateAccessConfig(request: google.cloud.compute.v1.IUpdateAccessConfigInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls UpdateDisplayDevice.
                     * @param request UpdateDisplayDeviceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateDisplayDevice(request: google.cloud.compute.v1.IUpdateDisplayDeviceInstanceRequest, callback: google.cloud.compute.v1.Instances.UpdateDisplayDeviceCallback): void;

                    /**
                     * Calls UpdateDisplayDevice.
                     * @param request UpdateDisplayDeviceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateDisplayDevice(request: google.cloud.compute.v1.IUpdateDisplayDeviceInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls UpdateNetworkInterface.
                     * @param request UpdateNetworkInterfaceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateNetworkInterface(request: google.cloud.compute.v1.IUpdateNetworkInterfaceInstanceRequest, callback: google.cloud.compute.v1.Instances.UpdateNetworkInterfaceCallback): void;

                    /**
                     * Calls UpdateNetworkInterface.
                     * @param request UpdateNetworkInterfaceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateNetworkInterface(request: google.cloud.compute.v1.IUpdateNetworkInterfaceInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls UpdateShieldedInstanceConfig.
                     * @param request UpdateShieldedInstanceConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateShieldedInstanceConfig(request: google.cloud.compute.v1.IUpdateShieldedInstanceConfigInstanceRequest, callback: google.cloud.compute.v1.Instances.UpdateShieldedInstanceConfigCallback): void;

                    /**
                     * Calls UpdateShieldedInstanceConfig.
                     * @param request UpdateShieldedInstanceConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateShieldedInstanceConfig(request: google.cloud.compute.v1.IUpdateShieldedInstanceConfigInstanceRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Instances {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|addAccessConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAccessConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|addNetworkInterface}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddNetworkInterfaceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|addResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstanceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|attachDisk}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AttachDiskCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|bulkInsert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkInsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|deleteAccessConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteAccessConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|deleteNetworkInterface}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteNetworkInterfaceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|detachDisk}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DetachDiskCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|get}.
                     * @param error Error, if any
                     * @param [response] Instance
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Instance) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|getEffectiveFirewalls}.
                     * @param error Error, if any
                     * @param [response] InstancesGetEffectiveFirewallsResponse
                     */
                    type GetEffectiveFirewallsCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|getGuestAttributes}.
                     * @param error Error, if any
                     * @param [response] GuestAttributes
                     */
                    type GetGuestAttributesCallback = (error: (Error|null), response?: google.cloud.compute.v1.GuestAttributes) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|getScreenshot}.
                     * @param error Error, if any
                     * @param [response] Screenshot
                     */
                    type GetScreenshotCallback = (error: (Error|null), response?: google.cloud.compute.v1.Screenshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|getSerialPortOutput}.
                     * @param error Error, if any
                     * @param [response] SerialPortOutput
                     */
                    type GetSerialPortOutputCallback = (error: (Error|null), response?: google.cloud.compute.v1.SerialPortOutput) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|getShieldedInstanceIdentity}.
                     * @param error Error, if any
                     * @param [response] ShieldedInstanceIdentity
                     */
                    type GetShieldedInstanceIdentityCallback = (error: (Error|null), response?: google.cloud.compute.v1.ShieldedInstanceIdentity) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|list}.
                     * @param error Error, if any
                     * @param [response] InstanceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|listReferrers}.
                     * @param error Error, if any
                     * @param [response] InstanceListReferrers
                     */
                    type ListReferrersCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceListReferrers) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|removeResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|reportHostAsFaulty}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ReportHostAsFaultyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|reset}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|resume}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResumeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|sendDiagnosticInterrupt}.
                     * @param error Error, if any
                     * @param [response] SendDiagnosticInterruptInstanceResponse
                     */
                    type SendDiagnosticInterruptCallback = (error: (Error|null), response?: google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setDeletionProtection}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetDeletionProtectionCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setDiskAutoDelete}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetDiskAutoDeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setMachineResources}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetMachineResourcesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setMachineType}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetMachineTypeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setMetadata}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetMetadataCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setMinCpuPlatform}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetMinCpuPlatformCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setName}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetNameCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setScheduling}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSchedulingCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setServiceAccount}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetServiceAccountCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setShieldedInstanceIntegrityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetShieldedInstanceIntegrityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|setTags}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTagsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|simulateMaintenanceEvent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SimulateMaintenanceEventCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|start}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|startWithEncryptionKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartWithEncryptionKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|stop}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|suspend}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SuspendCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|updateAccessConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateAccessConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|updateDisplayDevice}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateDisplayDeviceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|updateNetworkInterface}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateNetworkInterfaceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Instances|updateShieldedInstanceConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateShieldedInstanceConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents an InstantSnapshots */
                class InstantSnapshots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstantSnapshots 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 InstantSnapshots 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): InstantSnapshots;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstantSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshotAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstantSnapshotsRequest, callback: google.cloud.compute.v1.InstantSnapshots.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstantSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInstantSnapshotsRequest): Promise<google.cloud.compute.v1.InstantSnapshotAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstantSnapshotRequest, callback: google.cloud.compute.v1.InstantSnapshots.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInstantSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshot
                     */
                    public get(request: google.cloud.compute.v1.IGetInstantSnapshotRequest, callback: google.cloud.compute.v1.InstantSnapshots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInstantSnapshotRequest): Promise<google.cloud.compute.v1.InstantSnapshot>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInstantSnapshotRequest, callback: google.cloud.compute.v1.InstantSnapshots.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInstantSnapshotRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstantSnapshotRequest, callback: google.cloud.compute.v1.InstantSnapshots.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInstantSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstantSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshotList
                     */
                    public list(request: google.cloud.compute.v1.IListInstantSnapshotsRequest, callback: google.cloud.compute.v1.InstantSnapshots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstantSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInstantSnapshotsRequest): Promise<google.cloud.compute.v1.InstantSnapshotList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInstantSnapshotRequest, callback: google.cloud.compute.v1.InstantSnapshots.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInstantSnapshotRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsInstantSnapshotRequest, callback: google.cloud.compute.v1.InstantSnapshots.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsInstantSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInstantSnapshotRequest, callback: google.cloud.compute.v1.InstantSnapshots.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInstantSnapshotRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace InstantSnapshots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshotAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstantSnapshotAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|get}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshot
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstantSnapshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|list}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshotList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstantSnapshotList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InstantSnapshots|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents an InterconnectAttachmentGroups */
                class InterconnectAttachmentGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectAttachmentGroups 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 InterconnectAttachmentGroups 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): InterconnectAttachmentGroups;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1.InterconnectAttachmentGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls GetOperationalStatus.
                     * @param request GetOperationalStatusInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentGroupsGetOperationalStatusResponse
                     */
                    public getOperationalStatus(request: google.cloud.compute.v1.IGetOperationalStatusInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.GetOperationalStatusCallback): void;

                    /**
                     * Calls GetOperationalStatus.
                     * @param request GetOperationalStatusInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getOperationalStatus(request: google.cloud.compute.v1.IGetOperationalStatusInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectAttachmentGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentGroupsListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectAttachmentGroupsRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectAttachmentGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectAttachmentGroupsRequest): Promise<google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1.InterconnectAttachmentGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace InterconnectAttachmentGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectAttachmentGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|getOperationalStatus}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentGroupsGetOperationalStatusResponse
                     */
                    type GetOperationalStatusCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentGroupsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachmentGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents an InterconnectAttachments */
                class InterconnectAttachments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectAttachments 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 InterconnectAttachments 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): InterconnectAttachments;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInterconnectAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInterconnectAttachmentsRequest, callback: google.cloud.compute.v1.InterconnectAttachments.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInterconnectAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListInterconnectAttachmentsRequest): Promise<google.cloud.compute.v1.InterconnectAttachmentAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInterconnectAttachmentRequest, callback: google.cloud.compute.v1.InterconnectAttachments.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInterconnectAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachment
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectAttachmentRequest, callback: google.cloud.compute.v1.InterconnectAttachments.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectAttachmentRequest): Promise<google.cloud.compute.v1.InterconnectAttachment>;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInterconnectAttachmentRequest, callback: google.cloud.compute.v1.InterconnectAttachments.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInterconnectAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentList
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectAttachmentsRequest, callback: google.cloud.compute.v1.InterconnectAttachments.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectAttachmentsRequest): Promise<google.cloud.compute.v1.InterconnectAttachmentList>;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInterconnectAttachmentRequest, callback: google.cloud.compute.v1.InterconnectAttachments.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInterconnectAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsInterconnectAttachmentRequest, callback: google.cloud.compute.v1.InterconnectAttachments.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsInterconnectAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace InterconnectAttachments {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachments|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectAttachmentAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachments|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachments|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachment
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectAttachment) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachments|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachments|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectAttachmentList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachments|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectAttachments|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents an InterconnectGroups */
                class InterconnectGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectGroups 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 InterconnectGroups 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): InterconnectGroups;

                    /**
                     * Calls CreateMembers.
                     * @param request CreateMembersInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createMembers(request: google.cloud.compute.v1.ICreateMembersInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.CreateMembersCallback): void;

                    /**
                     * Calls CreateMembers.
                     * @param request CreateMembersInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public createMembers(request: google.cloud.compute.v1.ICreateMembersInterconnectGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInterconnectGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectGroupRequest): Promise<google.cloud.compute.v1.InterconnectGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyInterconnectGroupRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls GetOperationalStatus.
                     * @param request GetOperationalStatusInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectGroupsGetOperationalStatusResponse
                     */
                    public getOperationalStatus(request: google.cloud.compute.v1.IGetOperationalStatusInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.GetOperationalStatusCallback): void;

                    /**
                     * Calls GetOperationalStatus.
                     * @param request GetOperationalStatusInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getOperationalStatus(request: google.cloud.compute.v1.IGetOperationalStatusInterconnectGroupRequest): Promise<google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInterconnectGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectGroupsListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectGroupsRequest, callback: google.cloud.compute.v1.InterconnectGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectGroupsRequest): Promise<google.cloud.compute.v1.InterconnectGroupsListResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInterconnectGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyInterconnectGroupRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInterconnectGroupRequest, callback: google.cloud.compute.v1.InterconnectGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsInterconnectGroupRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace InterconnectGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|createMembers}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateMembersCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|getOperationalStatus}.
                     * @param error Error, if any
                     * @param [response] InterconnectGroupsGetOperationalStatusResponse
                     */
                    type GetOperationalStatusCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectGroupsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectGroupsListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents an InterconnectLocations */
                class InterconnectLocations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectLocations 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 InterconnectLocations 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): InterconnectLocations;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectLocationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectLocation
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectLocationRequest, callback: google.cloud.compute.v1.InterconnectLocations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectLocationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectLocationRequest): Promise<google.cloud.compute.v1.InterconnectLocation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectLocationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectLocationList
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectLocationsRequest, callback: google.cloud.compute.v1.InterconnectLocations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectLocationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectLocationsRequest): Promise<google.cloud.compute.v1.InterconnectLocationList>;
                }

                namespace InterconnectLocations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectLocations|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectLocation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectLocation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectLocations|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectLocationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectLocationList) => void;
                }

                /** Represents an InterconnectRemoteLocations */
                class InterconnectRemoteLocations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectRemoteLocations 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 InterconnectRemoteLocations 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): InterconnectRemoteLocations;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectRemoteLocationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectRemoteLocation
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectRemoteLocationRequest, callback: google.cloud.compute.v1.InterconnectRemoteLocations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectRemoteLocationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectRemoteLocationRequest): Promise<google.cloud.compute.v1.InterconnectRemoteLocation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectRemoteLocationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectRemoteLocationList
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectRemoteLocationsRequest, callback: google.cloud.compute.v1.InterconnectRemoteLocations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectRemoteLocationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectRemoteLocationsRequest): Promise<google.cloud.compute.v1.InterconnectRemoteLocationList>;
                }

                namespace InterconnectRemoteLocations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectRemoteLocations|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectRemoteLocation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectRemoteLocation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.InterconnectRemoteLocations|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectRemoteLocationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectRemoteLocationList) => void;
                }

                /** Represents an Interconnects */
                class Interconnects extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Interconnects 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 Interconnects 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): Interconnects;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInterconnectRequest, callback: google.cloud.compute.v1.Interconnects.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteInterconnectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Interconnect
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectRequest, callback: google.cloud.compute.v1.Interconnects.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetInterconnectRequest): Promise<google.cloud.compute.v1.Interconnect>;

                    /**
                     * Calls GetDiagnostics.
                     * @param request GetDiagnosticsInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectsGetDiagnosticsResponse
                     */
                    public getDiagnostics(request: google.cloud.compute.v1.IGetDiagnosticsInterconnectRequest, callback: google.cloud.compute.v1.Interconnects.GetDiagnosticsCallback): void;

                    /**
                     * Calls GetDiagnostics.
                     * @param request GetDiagnosticsInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public getDiagnostics(request: google.cloud.compute.v1.IGetDiagnosticsInterconnectRequest): Promise<google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse>;

                    /**
                     * Calls GetMacsecConfig.
                     * @param request GetMacsecConfigInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectsGetMacsecConfigResponse
                     */
                    public getMacsecConfig(request: google.cloud.compute.v1.IGetMacsecConfigInterconnectRequest, callback: google.cloud.compute.v1.Interconnects.GetMacsecConfigCallback): void;

                    /**
                     * Calls GetMacsecConfig.
                     * @param request GetMacsecConfigInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public getMacsecConfig(request: google.cloud.compute.v1.IGetMacsecConfigInterconnectRequest): Promise<google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInterconnectRequest, callback: google.cloud.compute.v1.Interconnects.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertInterconnectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectList
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectsRequest, callback: google.cloud.compute.v1.Interconnects.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListInterconnectsRequest): Promise<google.cloud.compute.v1.InterconnectList>;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInterconnectRequest, callback: google.cloud.compute.v1.Interconnects.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchInterconnectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsInterconnectRequest, callback: google.cloud.compute.v1.Interconnects.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsInterconnectRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Interconnects {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Interconnects|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Interconnects|get}.
                     * @param error Error, if any
                     * @param [response] Interconnect
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Interconnect) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Interconnects|getDiagnostics}.
                     * @param error Error, if any
                     * @param [response] InterconnectsGetDiagnosticsResponse
                     */
                    type GetDiagnosticsCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Interconnects|getMacsecConfig}.
                     * @param error Error, if any
                     * @param [response] InterconnectsGetMacsecConfigResponse
                     */
                    type GetMacsecConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Interconnects|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Interconnects|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InterconnectList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Interconnects|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Interconnects|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a LicenseCodes */
                class LicenseCodes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new LicenseCodes 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 LicenseCodes 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): LicenseCodes;

                    /**
                     * Calls Get.
                     * @param request GetLicenseCodeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and LicenseCode
                     */
                    public get(request: google.cloud.compute.v1.IGetLicenseCodeRequest, callback: google.cloud.compute.v1.LicenseCodes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetLicenseCodeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetLicenseCodeRequest): Promise<google.cloud.compute.v1.LicenseCode>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsLicenseCodeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsLicenseCodeRequest, callback: google.cloud.compute.v1.LicenseCodes.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsLicenseCodeRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsLicenseCodeRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace LicenseCodes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.LicenseCodes|get}.
                     * @param error Error, if any
                     * @param [response] LicenseCode
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.LicenseCode) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.LicenseCodes|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a Licenses */
                class Licenses extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Licenses 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 Licenses 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): Licenses;

                    /**
                     * Calls Delete.
                     * @param request DeleteLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteLicenseRequest, callback: google.cloud.compute.v1.Licenses.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteLicenseRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and License
                     */
                    public get(request: google.cloud.compute.v1.IGetLicenseRequest, callback: google.cloud.compute.v1.Licenses.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetLicenseRequest): Promise<google.cloud.compute.v1.License>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyLicenseRequest, callback: google.cloud.compute.v1.Licenses.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyLicenseRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertLicenseRequest, callback: google.cloud.compute.v1.Licenses.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertLicenseRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListLicensesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and LicensesListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListLicensesRequest, callback: google.cloud.compute.v1.Licenses.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListLicensesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListLicensesRequest): Promise<google.cloud.compute.v1.LicensesListResponse>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyLicenseRequest, callback: google.cloud.compute.v1.Licenses.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyLicenseRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsLicenseRequest, callback: google.cloud.compute.v1.Licenses.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsLicenseRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateLicenseRequest, callback: google.cloud.compute.v1.Licenses.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateLicenseRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Licenses {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Licenses|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Licenses|get}.
                     * @param error Error, if any
                     * @param [response] License
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.License) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Licenses|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Licenses|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Licenses|list}.
                     * @param error Error, if any
                     * @param [response] LicensesListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.LicensesListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Licenses|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Licenses|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Licenses|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a MachineImages */
                class MachineImages extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new MachineImages 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 MachineImages 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): MachineImages;

                    /**
                     * Calls Delete.
                     * @param request DeleteMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteMachineImageRequest, callback: google.cloud.compute.v1.MachineImages.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteMachineImageRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineImage
                     */
                    public get(request: google.cloud.compute.v1.IGetMachineImageRequest, callback: google.cloud.compute.v1.MachineImages.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetMachineImageRequest): Promise<google.cloud.compute.v1.MachineImage>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyMachineImageRequest, callback: google.cloud.compute.v1.MachineImages.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyMachineImageRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertMachineImageRequest, callback: google.cloud.compute.v1.MachineImages.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertMachineImageRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListMachineImagesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineImageList
                     */
                    public list(request: google.cloud.compute.v1.IListMachineImagesRequest, callback: google.cloud.compute.v1.MachineImages.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListMachineImagesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListMachineImagesRequest): Promise<google.cloud.compute.v1.MachineImageList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyMachineImageRequest, callback: google.cloud.compute.v1.MachineImages.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyMachineImageRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsMachineImageRequest, callback: google.cloud.compute.v1.MachineImages.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsMachineImageRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsMachineImageRequest, callback: google.cloud.compute.v1.MachineImages.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsMachineImageRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace MachineImages {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineImages|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineImages|get}.
                     * @param error Error, if any
                     * @param [response] MachineImage
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.MachineImage) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineImages|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineImages|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineImages|list}.
                     * @param error Error, if any
                     * @param [response] MachineImageList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.MachineImageList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineImages|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineImages|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineImages|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a MachineTypes */
                class MachineTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new MachineTypes 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 MachineTypes 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): MachineTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListMachineTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListMachineTypesRequest, callback: google.cloud.compute.v1.MachineTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListMachineTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListMachineTypesRequest): Promise<google.cloud.compute.v1.MachineTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetMachineTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineType
                     */
                    public get(request: google.cloud.compute.v1.IGetMachineTypeRequest, callback: google.cloud.compute.v1.MachineTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetMachineTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetMachineTypeRequest): Promise<google.cloud.compute.v1.MachineType>;

                    /**
                     * Calls List.
                     * @param request ListMachineTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineTypeList
                     */
                    public list(request: google.cloud.compute.v1.IListMachineTypesRequest, callback: google.cloud.compute.v1.MachineTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListMachineTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListMachineTypesRequest): Promise<google.cloud.compute.v1.MachineTypeList>;
                }

                namespace MachineTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] MachineTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.MachineTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineTypes|get}.
                     * @param error Error, if any
                     * @param [response] MachineType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.MachineType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.MachineTypes|list}.
                     * @param error Error, if any
                     * @param [response] MachineTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.MachineTypeList) => void;
                }

                /** Represents a NetworkAttachments */
                class NetworkAttachments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkAttachments 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 NetworkAttachments 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): NetworkAttachments;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkAttachmentAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNetworkAttachmentsRequest, callback: google.cloud.compute.v1.NetworkAttachments.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNetworkAttachmentsRequest): Promise<google.cloud.compute.v1.NetworkAttachmentAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkAttachmentRequest, callback: google.cloud.compute.v1.NetworkAttachments.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkAttachment
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkAttachmentRequest, callback: google.cloud.compute.v1.NetworkAttachments.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkAttachmentRequest): Promise<google.cloud.compute.v1.NetworkAttachment>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyNetworkAttachmentRequest, callback: google.cloud.compute.v1.NetworkAttachments.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyNetworkAttachmentRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkAttachmentRequest, callback: google.cloud.compute.v1.NetworkAttachments.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNetworkAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkAttachmentList
                     */
                    public list(request: google.cloud.compute.v1.IListNetworkAttachmentsRequest, callback: google.cloud.compute.v1.NetworkAttachments.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworkAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListNetworkAttachmentsRequest): Promise<google.cloud.compute.v1.NetworkAttachmentList>;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNetworkAttachmentRequest, callback: google.cloud.compute.v1.NetworkAttachments.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNetworkAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyNetworkAttachmentRequest, callback: google.cloud.compute.v1.NetworkAttachments.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyNetworkAttachmentRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNetworkAttachmentRequest, callback: google.cloud.compute.v1.NetworkAttachments.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNetworkAttachmentRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace NetworkAttachments {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkAttachmentAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkAttachmentAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|get}.
                     * @param error Error, if any
                     * @param [response] NetworkAttachment
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkAttachment) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|list}.
                     * @param error Error, if any
                     * @param [response] NetworkAttachmentList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkAttachmentList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkAttachments|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a NetworkEdgeSecurityServices */
                class NetworkEdgeSecurityServices extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkEdgeSecurityServices 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 NetworkEdgeSecurityServices 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): NetworkEdgeSecurityServices;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkEdgeSecurityServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEdgeSecurityServiceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNetworkEdgeSecurityServicesRequest, callback: google.cloud.compute.v1.NetworkEdgeSecurityServices.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkEdgeSecurityServicesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNetworkEdgeSecurityServicesRequest): Promise<google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkEdgeSecurityServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkEdgeSecurityServiceRequest, callback: google.cloud.compute.v1.NetworkEdgeSecurityServices.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkEdgeSecurityServiceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkEdgeSecurityServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkEdgeSecurityServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEdgeSecurityService
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkEdgeSecurityServiceRequest, callback: google.cloud.compute.v1.NetworkEdgeSecurityServices.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkEdgeSecurityServiceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkEdgeSecurityServiceRequest): Promise<google.cloud.compute.v1.NetworkEdgeSecurityService>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkEdgeSecurityServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkEdgeSecurityServiceRequest, callback: google.cloud.compute.v1.NetworkEdgeSecurityServices.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkEdgeSecurityServiceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkEdgeSecurityServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkEdgeSecurityServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNetworkEdgeSecurityServiceRequest, callback: google.cloud.compute.v1.NetworkEdgeSecurityServices.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkEdgeSecurityServiceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNetworkEdgeSecurityServiceRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace NetworkEdgeSecurityServices {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEdgeSecurityServices|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkEdgeSecurityServiceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEdgeSecurityServices|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEdgeSecurityServices|get}.
                     * @param error Error, if any
                     * @param [response] NetworkEdgeSecurityService
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEdgeSecurityService) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEdgeSecurityServices|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEdgeSecurityServices|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a NetworkEndpointGroups */
                class NetworkEndpointGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkEndpointGroups 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 NetworkEndpointGroups 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): NetworkEndpointGroups;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroupAggregatedList>;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1.IAttachNetworkEndpointsNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.AttachNetworkEndpointsCallback): void;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1.IAttachNetworkEndpointsNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1.IDetachNetworkEndpointsNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.DetachNetworkEndpointsCallback): void;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1.IDetachNetworkEndpointsNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupList
                     */
                    public list(request: google.cloud.compute.v1.IListNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroupList>;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupsListNetworkEndpoints
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1.IListNetworkEndpointsNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.ListNetworkEndpointsCallback): void;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1.IListNetworkEndpointsNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.NetworkEndpointGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace NetworkEndpointGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroupAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|attachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AttachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|detachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DetachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|get}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|list}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|listNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupsListNetworkEndpoints
                     */
                    type ListNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkEndpointGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a NetworkFirewallPolicies */
                class NetworkFirewallPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkFirewallPolicies 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 NetworkFirewallPolicies 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): NetworkFirewallPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1.IAddAssociationNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1.IAddAssociationNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AddPacketMirroringRule.
                     * @param request AddPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addPacketMirroringRule(request: google.cloud.compute.v1.IAddPacketMirroringRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.AddPacketMirroringRuleCallback): void;

                    /**
                     * Calls AddPacketMirroringRule.
                     * @param request AddPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addPacketMirroringRule(request: google.cloud.compute.v1.IAddPacketMirroringRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkFirewallPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkFirewallPolicyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNetworkFirewallPoliciesRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkFirewallPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNetworkFirewallPoliciesRequest): Promise<google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList>;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cloneRules(request: google.cloud.compute.v1.ICloneRulesNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.CloneRulesCallback): void;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public cloneRules(request: google.cloud.compute.v1.ICloneRulesNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1.IGetAssociationNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1.IGetAssociationNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicyAssociation>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls GetPacketMirroringRule.
                     * @param request GetPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getPacketMirroringRule(request: google.cloud.compute.v1.IGetPacketMirroringRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.GetPacketMirroringRuleCallback): void;

                    /**
                     * Calls GetPacketMirroringRule.
                     * @param request GetPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getPacketMirroringRule(request: google.cloud.compute.v1.IGetPacketMirroringRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicyRule>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNetworkFirewallPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyList
                     */
                    public list(request: google.cloud.compute.v1.IListNetworkFirewallPoliciesRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworkFirewallPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListNetworkFirewallPoliciesRequest): Promise<google.cloud.compute.v1.FirewallPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchPacketMirroringRule.
                     * @param request PatchPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchPacketMirroringRule(request: google.cloud.compute.v1.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.PatchPacketMirroringRuleCallback): void;

                    /**
                     * Calls PatchPacketMirroringRule.
                     * @param request PatchPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchPacketMirroringRule(request: google.cloud.compute.v1.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1.IRemoveAssociationNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1.IRemoveAssociationNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemovePacketMirroringRule.
                     * @param request RemovePacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removePacketMirroringRule(request: google.cloud.compute.v1.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.RemovePacketMirroringRuleCallback): void;

                    /**
                     * Calls RemovePacketMirroringRule.
                     * @param request RemovePacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removePacketMirroringRule(request: google.cloud.compute.v1.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.NetworkFirewallPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace NetworkFirewallPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|addPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkFirewallPolicyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|cloneRules}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CloneRulesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|get}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|getPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|list}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|patchPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|removePacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemovePacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkFirewallPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a NetworkProfiles */
                class NetworkProfiles extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkProfiles 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 NetworkProfiles 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): NetworkProfiles;

                    /**
                     * Calls Get.
                     * @param request GetNetworkProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkProfile
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkProfileRequest, callback: google.cloud.compute.v1.NetworkProfiles.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkProfileRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkProfileRequest): Promise<google.cloud.compute.v1.NetworkProfile>;

                    /**
                     * Calls List.
                     * @param request ListNetworkProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkProfilesListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListNetworkProfilesRequest, callback: google.cloud.compute.v1.NetworkProfiles.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworkProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListNetworkProfilesRequest): Promise<google.cloud.compute.v1.NetworkProfilesListResponse>;
                }

                namespace NetworkProfiles {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkProfiles|get}.
                     * @param error Error, if any
                     * @param [response] NetworkProfile
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NetworkProfiles|list}.
                     * @param error Error, if any
                     * @param [response] NetworkProfilesListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkProfilesListResponse) => void;
                }

                /** Represents a Networks */
                class Networks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Networks 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 Networks 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): Networks;

                    /**
                     * Calls AddPeering.
                     * @param request AddPeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addPeering(request: google.cloud.compute.v1.IAddPeeringNetworkRequest, callback: google.cloud.compute.v1.Networks.AddPeeringCallback): void;

                    /**
                     * Calls AddPeering.
                     * @param request AddPeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public addPeering(request: google.cloud.compute.v1.IAddPeeringNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkRequest, callback: google.cloud.compute.v1.Networks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Network
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkRequest, callback: google.cloud.compute.v1.Networks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNetworkRequest): Promise<google.cloud.compute.v1.Network>;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworksGetEffectiveFirewallsResponse
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1.IGetEffectiveFirewallsNetworkRequest, callback: google.cloud.compute.v1.Networks.GetEffectiveFirewallsCallback): void;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1.IGetEffectiveFirewallsNetworkRequest): Promise<google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkRequest, callback: google.cloud.compute.v1.Networks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkList
                     */
                    public list(request: google.cloud.compute.v1.IListNetworksRequest, callback: google.cloud.compute.v1.Networks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListNetworksRequest): Promise<google.cloud.compute.v1.NetworkList>;

                    /**
                     * Calls ListPeeringRoutes.
                     * @param request ListPeeringRoutesNetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ExchangedPeeringRoutesList
                     */
                    public listPeeringRoutes(request: google.cloud.compute.v1.IListPeeringRoutesNetworksRequest, callback: google.cloud.compute.v1.Networks.ListPeeringRoutesCallback): void;

                    /**
                     * Calls ListPeeringRoutes.
                     * @param request ListPeeringRoutesNetworksRequest message or plain object
                     * @returns Promise
                     */
                    public listPeeringRoutes(request: google.cloud.compute.v1.IListPeeringRoutesNetworksRequest): Promise<google.cloud.compute.v1.ExchangedPeeringRoutesList>;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNetworkRequest, callback: google.cloud.compute.v1.Networks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemovePeering.
                     * @param request RemovePeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removePeering(request: google.cloud.compute.v1.IRemovePeeringNetworkRequest, callback: google.cloud.compute.v1.Networks.RemovePeeringCallback): void;

                    /**
                     * Calls RemovePeering.
                     * @param request RemovePeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public removePeering(request: google.cloud.compute.v1.IRemovePeeringNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RequestRemovePeering.
                     * @param request RequestRemovePeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public requestRemovePeering(request: google.cloud.compute.v1.IRequestRemovePeeringNetworkRequest, callback: google.cloud.compute.v1.Networks.RequestRemovePeeringCallback): void;

                    /**
                     * Calls RequestRemovePeering.
                     * @param request RequestRemovePeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public requestRemovePeering(request: google.cloud.compute.v1.IRequestRemovePeeringNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SwitchToCustomMode.
                     * @param request SwitchToCustomModeNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public switchToCustomMode(request: google.cloud.compute.v1.ISwitchToCustomModeNetworkRequest, callback: google.cloud.compute.v1.Networks.SwitchToCustomModeCallback): void;

                    /**
                     * Calls SwitchToCustomMode.
                     * @param request SwitchToCustomModeNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public switchToCustomMode(request: google.cloud.compute.v1.ISwitchToCustomModeNetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls UpdatePeering.
                     * @param request UpdatePeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updatePeering(request: google.cloud.compute.v1.IUpdatePeeringNetworkRequest, callback: google.cloud.compute.v1.Networks.UpdatePeeringCallback): void;

                    /**
                     * Calls UpdatePeering.
                     * @param request UpdatePeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public updatePeering(request: google.cloud.compute.v1.IUpdatePeeringNetworkRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Networks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|addPeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddPeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|get}.
                     * @param error Error, if any
                     * @param [response] Network
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Network) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|getEffectiveFirewalls}.
                     * @param error Error, if any
                     * @param [response] NetworksGetEffectiveFirewallsResponse
                     */
                    type GetEffectiveFirewallsCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|list}.
                     * @param error Error, if any
                     * @param [response] NetworkList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|listPeeringRoutes}.
                     * @param error Error, if any
                     * @param [response] ExchangedPeeringRoutesList
                     */
                    type ListPeeringRoutesCallback = (error: (Error|null), response?: google.cloud.compute.v1.ExchangedPeeringRoutesList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|removePeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemovePeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|requestRemovePeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RequestRemovePeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|switchToCustomMode}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SwitchToCustomModeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Networks|updatePeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdatePeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a NodeGroups */
                class NodeGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NodeGroups 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 NodeGroups 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): NodeGroups;

                    /**
                     * Calls AddNodes.
                     * @param request AddNodesNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addNodes(request: google.cloud.compute.v1.IAddNodesNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.AddNodesCallback): void;

                    /**
                     * Calls AddNodes.
                     * @param request AddNodesNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public addNodes(request: google.cloud.compute.v1.IAddNodesNodeGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeGroupAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNodeGroupsRequest, callback: google.cloud.compute.v1.NodeGroups.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNodeGroupsRequest): Promise<google.cloud.compute.v1.NodeGroupAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNodeGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeleteNodes.
                     * @param request DeleteNodesNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteNodes(request: google.cloud.compute.v1.IDeleteNodesNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.DeleteNodesCallback): void;

                    /**
                     * Calls DeleteNodes.
                     * @param request DeleteNodesNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public deleteNodes(request: google.cloud.compute.v1.IDeleteNodesNodeGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNodeGroupRequest): Promise<google.cloud.compute.v1.NodeGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyNodeGroupRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNodeGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNodeGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeGroupList
                     */
                    public list(request: google.cloud.compute.v1.IListNodeGroupsRequest, callback: google.cloud.compute.v1.NodeGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNodeGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListNodeGroupsRequest): Promise<google.cloud.compute.v1.NodeGroupList>;

                    /**
                     * Calls ListNodes.
                     * @param request ListNodesNodeGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeGroupsListNodes
                     */
                    public listNodes(request: google.cloud.compute.v1.IListNodesNodeGroupsRequest, callback: google.cloud.compute.v1.NodeGroups.ListNodesCallback): void;

                    /**
                     * Calls ListNodes.
                     * @param request ListNodesNodeGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listNodes(request: google.cloud.compute.v1.IListNodesNodeGroupsRequest): Promise<google.cloud.compute.v1.NodeGroupsListNodes>;

                    /**
                     * Calls Patch.
                     * @param request PatchNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchNodeGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceNodeGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyNodeGroupRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetNodeTemplate.
                     * @param request SetNodeTemplateNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setNodeTemplate(request: google.cloud.compute.v1.ISetNodeTemplateNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.SetNodeTemplateCallback): void;

                    /**
                     * Calls SetNodeTemplate.
                     * @param request SetNodeTemplateNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setNodeTemplate(request: google.cloud.compute.v1.ISetNodeTemplateNodeGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SimulateMaintenanceEvent.
                     * @param request SimulateMaintenanceEventNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public simulateMaintenanceEvent(request: google.cloud.compute.v1.ISimulateMaintenanceEventNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.SimulateMaintenanceEventCallback): void;

                    /**
                     * Calls SimulateMaintenanceEvent.
                     * @param request SimulateMaintenanceEventNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public simulateMaintenanceEvent(request: google.cloud.compute.v1.ISimulateMaintenanceEventNodeGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNodeGroupRequest, callback: google.cloud.compute.v1.NodeGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNodeGroupRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace NodeGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|addNodes}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddNodesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NodeGroupAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeGroupAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|deleteNodes}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteNodesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|get}.
                     * @param error Error, if any
                     * @param [response] NodeGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|list}.
                     * @param error Error, if any
                     * @param [response] NodeGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|listNodes}.
                     * @param error Error, if any
                     * @param [response] NodeGroupsListNodes
                     */
                    type ListNodesCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeGroupsListNodes) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|setNodeTemplate}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetNodeTemplateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|simulateMaintenanceEvent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SimulateMaintenanceEventCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a NodeTemplates */
                class NodeTemplates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NodeTemplates 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 NodeTemplates 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): NodeTemplates;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTemplateAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNodeTemplatesRequest, callback: google.cloud.compute.v1.NodeTemplates.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNodeTemplatesRequest): Promise<google.cloud.compute.v1.NodeTemplateAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNodeTemplateRequest, callback: google.cloud.compute.v1.NodeTemplates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteNodeTemplateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTemplate
                     */
                    public get(request: google.cloud.compute.v1.IGetNodeTemplateRequest, callback: google.cloud.compute.v1.NodeTemplates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNodeTemplateRequest): Promise<google.cloud.compute.v1.NodeTemplate>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyNodeTemplateRequest, callback: google.cloud.compute.v1.NodeTemplates.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyNodeTemplateRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNodeTemplateRequest, callback: google.cloud.compute.v1.NodeTemplates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertNodeTemplateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNodeTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTemplateList
                     */
                    public list(request: google.cloud.compute.v1.IListNodeTemplatesRequest, callback: google.cloud.compute.v1.NodeTemplates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNodeTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListNodeTemplatesRequest): Promise<google.cloud.compute.v1.NodeTemplateList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyNodeTemplateRequest, callback: google.cloud.compute.v1.NodeTemplates.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyNodeTemplateRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNodeTemplateRequest, callback: google.cloud.compute.v1.NodeTemplates.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsNodeTemplateRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace NodeTemplates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTemplates|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NodeTemplateAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeTemplateAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTemplates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTemplates|get}.
                     * @param error Error, if any
                     * @param [response] NodeTemplate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeTemplate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTemplates|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTemplates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTemplates|list}.
                     * @param error Error, if any
                     * @param [response] NodeTemplateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeTemplateList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTemplates|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTemplates|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a NodeTypes */
                class NodeTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NodeTypes 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 NodeTypes 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): NodeTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNodeTypesRequest, callback: google.cloud.compute.v1.NodeTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListNodeTypesRequest): Promise<google.cloud.compute.v1.NodeTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetNodeTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeType
                     */
                    public get(request: google.cloud.compute.v1.IGetNodeTypeRequest, callback: google.cloud.compute.v1.NodeTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNodeTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetNodeTypeRequest): Promise<google.cloud.compute.v1.NodeType>;

                    /**
                     * Calls List.
                     * @param request ListNodeTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTypeList
                     */
                    public list(request: google.cloud.compute.v1.IListNodeTypesRequest, callback: google.cloud.compute.v1.NodeTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNodeTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListNodeTypesRequest): Promise<google.cloud.compute.v1.NodeTypeList>;
                }

                namespace NodeTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NodeTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTypes|get}.
                     * @param error Error, if any
                     * @param [response] NodeType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.NodeTypes|list}.
                     * @param error Error, if any
                     * @param [response] NodeTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NodeTypeList) => void;
                }

                /** Represents an OrganizationSecurityPolicies */
                class OrganizationSecurityPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new OrganizationSecurityPolicies 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 OrganizationSecurityPolicies 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): OrganizationSecurityPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1.IAddAssociationOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1.IAddAssociationOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls CopyRules.
                     * @param request CopyRulesOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public copyRules(request: google.cloud.compute.v1.ICopyRulesOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.CopyRulesCallback): void;

                    /**
                     * Calls CopyRules.
                     * @param request CopyRulesOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public copyRules(request: google.cloud.compute.v1.ICopyRulesOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.SecurityPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1.IGetAssociationOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1.IGetAssociationOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.SecurityPolicyAssociation>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.SecurityPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListOrganizationSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyList
                     */
                    public list(request: google.cloud.compute.v1.IListOrganizationSecurityPoliciesRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListOrganizationSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListOrganizationSecurityPoliciesRequest): Promise<google.cloud.compute.v1.SecurityPolicyList>;

                    /**
                     * Calls ListAssociations.
                     * @param request ListAssociationsOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OrganizationSecurityPoliciesListAssociationsResponse
                     */
                    public listAssociations(request: google.cloud.compute.v1.IListAssociationsOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.ListAssociationsCallback): void;

                    /**
                     * Calls ListAssociations.
                     * @param request ListAssociationsOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public listAssociations(request: google.cloud.compute.v1.IListAssociationsOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse>;

                    /**
                     * Calls ListPreconfiguredExpressionSets.
                     * @param request ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    public listPreconfiguredExpressionSets(request: google.cloud.compute.v1.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.ListPreconfiguredExpressionSetsCallback): void;

                    /**
                     * Calls ListPreconfiguredExpressionSets.
                     * @param request ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public listPreconfiguredExpressionSets(request: google.cloud.compute.v1.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest): Promise<google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse>;

                    /**
                     * Calls Move.
                     * @param request MoveOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public move(request: google.cloud.compute.v1.IMoveOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.MoveCallback): void;

                    /**
                     * Calls Move.
                     * @param request MoveOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public move(request: google.cloud.compute.v1.IMoveOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Patch.
                     * @param request PatchOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1.IRemoveAssociationOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1.IRemoveAssociationOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1.OrganizationSecurityPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace OrganizationSecurityPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|copyRules}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CopyRulesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|listAssociations}.
                     * @param error Error, if any
                     * @param [response] OrganizationSecurityPoliciesListAssociationsResponse
                     */
                    type ListAssociationsCallback = (error: (Error|null), response?: google.cloud.compute.v1.OrganizationSecurityPoliciesListAssociationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|listPreconfiguredExpressionSets}.
                     * @param error Error, if any
                     * @param [response] SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    type ListPreconfiguredExpressionSetsCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|move}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.OrganizationSecurityPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a PacketMirrorings */
                class PacketMirrorings extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PacketMirrorings 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 PacketMirrorings 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): PacketMirrorings;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListPacketMirroringsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PacketMirroringAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListPacketMirroringsRequest, callback: google.cloud.compute.v1.PacketMirrorings.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListPacketMirroringsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListPacketMirroringsRequest): Promise<google.cloud.compute.v1.PacketMirroringAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeletePacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeletePacketMirroringRequest, callback: google.cloud.compute.v1.PacketMirrorings.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeletePacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeletePacketMirroringRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetPacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PacketMirroring
                     */
                    public get(request: google.cloud.compute.v1.IGetPacketMirroringRequest, callback: google.cloud.compute.v1.PacketMirrorings.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetPacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetPacketMirroringRequest): Promise<google.cloud.compute.v1.PacketMirroring>;

                    /**
                     * Calls Insert.
                     * @param request InsertPacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertPacketMirroringRequest, callback: google.cloud.compute.v1.PacketMirrorings.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertPacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertPacketMirroringRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListPacketMirroringsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PacketMirroringList
                     */
                    public list(request: google.cloud.compute.v1.IListPacketMirroringsRequest, callback: google.cloud.compute.v1.PacketMirrorings.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListPacketMirroringsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListPacketMirroringsRequest): Promise<google.cloud.compute.v1.PacketMirroringList>;

                    /**
                     * Calls Patch.
                     * @param request PatchPacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchPacketMirroringRequest, callback: google.cloud.compute.v1.PacketMirrorings.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchPacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchPacketMirroringRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsPacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsPacketMirroringRequest, callback: google.cloud.compute.v1.PacketMirrorings.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsPacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsPacketMirroringRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace PacketMirrorings {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PacketMirrorings|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] PacketMirroringAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.PacketMirroringAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PacketMirrorings|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PacketMirrorings|get}.
                     * @param error Error, if any
                     * @param [response] PacketMirroring
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.PacketMirroring) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PacketMirrorings|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PacketMirrorings|list}.
                     * @param error Error, if any
                     * @param [response] PacketMirroringList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.PacketMirroringList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PacketMirrorings|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PacketMirrorings|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a PreviewFeatures */
                class PreviewFeatures extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PreviewFeatures 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 PreviewFeatures 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): PreviewFeatures;

                    /**
                     * Calls Get.
                     * @param request GetPreviewFeatureRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PreviewFeature
                     */
                    public get(request: google.cloud.compute.v1.IGetPreviewFeatureRequest, callback: google.cloud.compute.v1.PreviewFeatures.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetPreviewFeatureRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetPreviewFeatureRequest): Promise<google.cloud.compute.v1.PreviewFeature>;

                    /**
                     * Calls List.
                     * @param request ListPreviewFeaturesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PreviewFeatureList
                     */
                    public list(request: google.cloud.compute.v1.IListPreviewFeaturesRequest, callback: google.cloud.compute.v1.PreviewFeatures.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListPreviewFeaturesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListPreviewFeaturesRequest): Promise<google.cloud.compute.v1.PreviewFeatureList>;

                    /**
                     * Calls Update.
                     * @param request UpdatePreviewFeatureRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdatePreviewFeatureRequest, callback: google.cloud.compute.v1.PreviewFeatures.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdatePreviewFeatureRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdatePreviewFeatureRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace PreviewFeatures {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PreviewFeatures|get}.
                     * @param error Error, if any
                     * @param [response] PreviewFeature
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.PreviewFeature) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PreviewFeatures|list}.
                     * @param error Error, if any
                     * @param [response] PreviewFeatureList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.PreviewFeatureList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PreviewFeatures|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a Projects */
                class Projects extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Projects 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 Projects 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): Projects;

                    /**
                     * Calls DisableXpnHost.
                     * @param request DisableXpnHostProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public disableXpnHost(request: google.cloud.compute.v1.IDisableXpnHostProjectRequest, callback: google.cloud.compute.v1.Projects.DisableXpnHostCallback): void;

                    /**
                     * Calls DisableXpnHost.
                     * @param request DisableXpnHostProjectRequest message or plain object
                     * @returns Promise
                     */
                    public disableXpnHost(request: google.cloud.compute.v1.IDisableXpnHostProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DisableXpnResource.
                     * @param request DisableXpnResourceProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public disableXpnResource(request: google.cloud.compute.v1.IDisableXpnResourceProjectRequest, callback: google.cloud.compute.v1.Projects.DisableXpnResourceCallback): void;

                    /**
                     * Calls DisableXpnResource.
                     * @param request DisableXpnResourceProjectRequest message or plain object
                     * @returns Promise
                     */
                    public disableXpnResource(request: google.cloud.compute.v1.IDisableXpnResourceProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls EnableXpnHost.
                     * @param request EnableXpnHostProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public enableXpnHost(request: google.cloud.compute.v1.IEnableXpnHostProjectRequest, callback: google.cloud.compute.v1.Projects.EnableXpnHostCallback): void;

                    /**
                     * Calls EnableXpnHost.
                     * @param request EnableXpnHostProjectRequest message or plain object
                     * @returns Promise
                     */
                    public enableXpnHost(request: google.cloud.compute.v1.IEnableXpnHostProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls EnableXpnResource.
                     * @param request EnableXpnResourceProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public enableXpnResource(request: google.cloud.compute.v1.IEnableXpnResourceProjectRequest, callback: google.cloud.compute.v1.Projects.EnableXpnResourceCallback): void;

                    /**
                     * Calls EnableXpnResource.
                     * @param request EnableXpnResourceProjectRequest message or plain object
                     * @returns Promise
                     */
                    public enableXpnResource(request: google.cloud.compute.v1.IEnableXpnResourceProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Project
                     */
                    public get(request: google.cloud.compute.v1.IGetProjectRequest, callback: google.cloud.compute.v1.Projects.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetProjectRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetProjectRequest): Promise<google.cloud.compute.v1.Project>;

                    /**
                     * Calls GetXpnHost.
                     * @param request GetXpnHostProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Project
                     */
                    public getXpnHost(request: google.cloud.compute.v1.IGetXpnHostProjectRequest, callback: google.cloud.compute.v1.Projects.GetXpnHostCallback): void;

                    /**
                     * Calls GetXpnHost.
                     * @param request GetXpnHostProjectRequest message or plain object
                     * @returns Promise
                     */
                    public getXpnHost(request: google.cloud.compute.v1.IGetXpnHostProjectRequest): Promise<google.cloud.compute.v1.Project>;

                    /**
                     * Calls GetXpnResources.
                     * @param request GetXpnResourcesProjectsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ProjectsGetXpnResources
                     */
                    public getXpnResources(request: google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, callback: google.cloud.compute.v1.Projects.GetXpnResourcesCallback): void;

                    /**
                     * Calls GetXpnResources.
                     * @param request GetXpnResourcesProjectsRequest message or plain object
                     * @returns Promise
                     */
                    public getXpnResources(request: google.cloud.compute.v1.IGetXpnResourcesProjectsRequest): Promise<google.cloud.compute.v1.ProjectsGetXpnResources>;

                    /**
                     * Calls ListXpnHosts.
                     * @param request ListXpnHostsProjectsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and XpnHostList
                     */
                    public listXpnHosts(request: google.cloud.compute.v1.IListXpnHostsProjectsRequest, callback: google.cloud.compute.v1.Projects.ListXpnHostsCallback): void;

                    /**
                     * Calls ListXpnHosts.
                     * @param request ListXpnHostsProjectsRequest message or plain object
                     * @returns Promise
                     */
                    public listXpnHosts(request: google.cloud.compute.v1.IListXpnHostsProjectsRequest): Promise<google.cloud.compute.v1.XpnHostList>;

                    /**
                     * Calls MoveDisk.
                     * @param request MoveDiskProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public moveDisk(request: google.cloud.compute.v1.IMoveDiskProjectRequest, callback: google.cloud.compute.v1.Projects.MoveDiskCallback): void;

                    /**
                     * Calls MoveDisk.
                     * @param request MoveDiskProjectRequest message or plain object
                     * @returns Promise
                     */
                    public moveDisk(request: google.cloud.compute.v1.IMoveDiskProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls MoveInstance.
                     * @param request MoveInstanceProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public moveInstance(request: google.cloud.compute.v1.IMoveInstanceProjectRequest, callback: google.cloud.compute.v1.Projects.MoveInstanceCallback): void;

                    /**
                     * Calls MoveInstance.
                     * @param request MoveInstanceProjectRequest message or plain object
                     * @returns Promise
                     */
                    public moveInstance(request: google.cloud.compute.v1.IMoveInstanceProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetCloudArmorTier.
                     * @param request SetCloudArmorTierProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setCloudArmorTier(request: google.cloud.compute.v1.ISetCloudArmorTierProjectRequest, callback: google.cloud.compute.v1.Projects.SetCloudArmorTierCallback): void;

                    /**
                     * Calls SetCloudArmorTier.
                     * @param request SetCloudArmorTierProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setCloudArmorTier(request: google.cloud.compute.v1.ISetCloudArmorTierProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetCommonInstanceMetadata.
                     * @param request SetCommonInstanceMetadataProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setCommonInstanceMetadata(request: google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest, callback: google.cloud.compute.v1.Projects.SetCommonInstanceMetadataCallback): void;

                    /**
                     * Calls SetCommonInstanceMetadata.
                     * @param request SetCommonInstanceMetadataProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setCommonInstanceMetadata(request: google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetDefaultNetworkTier.
                     * @param request SetDefaultNetworkTierProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setDefaultNetworkTier(request: google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest, callback: google.cloud.compute.v1.Projects.SetDefaultNetworkTierCallback): void;

                    /**
                     * Calls SetDefaultNetworkTier.
                     * @param request SetDefaultNetworkTierProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setDefaultNetworkTier(request: google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetUsageExportBucket.
                     * @param request SetUsageExportBucketProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUsageExportBucket(request: google.cloud.compute.v1.ISetUsageExportBucketProjectRequest, callback: google.cloud.compute.v1.Projects.SetUsageExportBucketCallback): void;

                    /**
                     * Calls SetUsageExportBucket.
                     * @param request SetUsageExportBucketProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setUsageExportBucket(request: google.cloud.compute.v1.ISetUsageExportBucketProjectRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Projects {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|disableXpnHost}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DisableXpnHostCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|disableXpnResource}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DisableXpnResourceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|enableXpnHost}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type EnableXpnHostCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|enableXpnResource}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type EnableXpnResourceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|get}.
                     * @param error Error, if any
                     * @param [response] Project
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Project) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|getXpnHost}.
                     * @param error Error, if any
                     * @param [response] Project
                     */
                    type GetXpnHostCallback = (error: (Error|null), response?: google.cloud.compute.v1.Project) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|getXpnResources}.
                     * @param error Error, if any
                     * @param [response] ProjectsGetXpnResources
                     */
                    type GetXpnResourcesCallback = (error: (Error|null), response?: google.cloud.compute.v1.ProjectsGetXpnResources) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|listXpnHosts}.
                     * @param error Error, if any
                     * @param [response] XpnHostList
                     */
                    type ListXpnHostsCallback = (error: (Error|null), response?: google.cloud.compute.v1.XpnHostList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|moveDisk}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveDiskCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|moveInstance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveInstanceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|setCloudArmorTier}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetCloudArmorTierCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|setCommonInstanceMetadata}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetCommonInstanceMetadataCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|setDefaultNetworkTier}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetDefaultNetworkTierCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Projects|setUsageExportBucket}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUsageExportBucketCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a PublicAdvertisedPrefixes */
                class PublicAdvertisedPrefixes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PublicAdvertisedPrefixes 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 PublicAdvertisedPrefixes 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): PublicAdvertisedPrefixes;

                    /**
                     * Calls Announce.
                     * @param request AnnouncePublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public announce(request: google.cloud.compute.v1.IAnnouncePublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1.PublicAdvertisedPrefixes.AnnounceCallback): void;

                    /**
                     * Calls Announce.
                     * @param request AnnouncePublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public announce(request: google.cloud.compute.v1.IAnnouncePublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeletePublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeletePublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1.PublicAdvertisedPrefixes.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeletePublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeletePublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetPublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicAdvertisedPrefix
                     */
                    public get(request: google.cloud.compute.v1.IGetPublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1.PublicAdvertisedPrefixes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetPublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetPublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1.PublicAdvertisedPrefix>;

                    /**
                     * Calls Insert.
                     * @param request InsertPublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertPublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1.PublicAdvertisedPrefixes.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertPublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertPublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListPublicAdvertisedPrefixesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicAdvertisedPrefixList
                     */
                    public list(request: google.cloud.compute.v1.IListPublicAdvertisedPrefixesRequest, callback: google.cloud.compute.v1.PublicAdvertisedPrefixes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListPublicAdvertisedPrefixesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListPublicAdvertisedPrefixesRequest): Promise<google.cloud.compute.v1.PublicAdvertisedPrefixList>;

                    /**
                     * Calls Patch.
                     * @param request PatchPublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchPublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1.PublicAdvertisedPrefixes.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchPublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchPublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Withdraw.
                     * @param request WithdrawPublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public withdraw(request: google.cloud.compute.v1.IWithdrawPublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1.PublicAdvertisedPrefixes.WithdrawCallback): void;

                    /**
                     * Calls Withdraw.
                     * @param request WithdrawPublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public withdraw(request: google.cloud.compute.v1.IWithdrawPublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace PublicAdvertisedPrefixes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicAdvertisedPrefixes|announce}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AnnounceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicAdvertisedPrefixes|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicAdvertisedPrefixes|get}.
                     * @param error Error, if any
                     * @param [response] PublicAdvertisedPrefix
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.PublicAdvertisedPrefix) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicAdvertisedPrefixes|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicAdvertisedPrefixes|list}.
                     * @param error Error, if any
                     * @param [response] PublicAdvertisedPrefixList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.PublicAdvertisedPrefixList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicAdvertisedPrefixes|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicAdvertisedPrefixes|withdraw}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WithdrawCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a PublicDelegatedPrefixes */
                class PublicDelegatedPrefixes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PublicDelegatedPrefixes 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 PublicDelegatedPrefixes 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): PublicDelegatedPrefixes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListPublicDelegatedPrefixesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefixAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListPublicDelegatedPrefixesRequest, callback: google.cloud.compute.v1.PublicDelegatedPrefixes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListPublicDelegatedPrefixesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListPublicDelegatedPrefixesRequest): Promise<google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList>;

                    /**
                     * Calls Announce.
                     * @param request AnnouncePublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public announce(request: google.cloud.compute.v1.IAnnouncePublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.PublicDelegatedPrefixes.AnnounceCallback): void;

                    /**
                     * Calls Announce.
                     * @param request AnnouncePublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public announce(request: google.cloud.compute.v1.IAnnouncePublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeletePublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeletePublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.PublicDelegatedPrefixes.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeletePublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeletePublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefix
                     */
                    public get(request: google.cloud.compute.v1.IGetPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.PublicDelegatedPrefixes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.PublicDelegatedPrefix>;

                    /**
                     * Calls Insert.
                     * @param request InsertPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.PublicDelegatedPrefixes.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListPublicDelegatedPrefixesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefixList
                     */
                    public list(request: google.cloud.compute.v1.IListPublicDelegatedPrefixesRequest, callback: google.cloud.compute.v1.PublicDelegatedPrefixes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListPublicDelegatedPrefixesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListPublicDelegatedPrefixesRequest): Promise<google.cloud.compute.v1.PublicDelegatedPrefixList>;

                    /**
                     * Calls Patch.
                     * @param request PatchPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.PublicDelegatedPrefixes.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Withdraw.
                     * @param request WithdrawPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public withdraw(request: google.cloud.compute.v1.IWithdrawPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1.PublicDelegatedPrefixes.WithdrawCallback): void;

                    /**
                     * Calls Withdraw.
                     * @param request WithdrawPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public withdraw(request: google.cloud.compute.v1.IWithdrawPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace PublicDelegatedPrefixes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicDelegatedPrefixes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefixAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicDelegatedPrefixes|announce}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AnnounceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicDelegatedPrefixes|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicDelegatedPrefixes|get}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefix
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.PublicDelegatedPrefix) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicDelegatedPrefixes|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicDelegatedPrefixes|list}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefixList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.PublicDelegatedPrefixList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicDelegatedPrefixes|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.PublicDelegatedPrefixes|withdraw}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WithdrawCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionAutoscalers */
                class RegionAutoscalers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionAutoscalers 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 RegionAutoscalers 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): RegionAutoscalers;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionAutoscalerRequest, callback: google.cloud.compute.v1.RegionAutoscalers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionAutoscalerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Autoscaler
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionAutoscalerRequest, callback: google.cloud.compute.v1.RegionAutoscalers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionAutoscalerRequest): Promise<google.cloud.compute.v1.Autoscaler>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionAutoscalerRequest, callback: google.cloud.compute.v1.RegionAutoscalers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionAutoscalerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionAutoscalersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionAutoscalerList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionAutoscalersRequest, callback: google.cloud.compute.v1.RegionAutoscalers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionAutoscalersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionAutoscalersRequest): Promise<google.cloud.compute.v1.RegionAutoscalerList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionAutoscalerRequest, callback: google.cloud.compute.v1.RegionAutoscalers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionAutoscalerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionAutoscalerRequest, callback: google.cloud.compute.v1.RegionAutoscalers.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionAutoscalerRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionAutoscalerRequest, callback: google.cloud.compute.v1.RegionAutoscalers.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionAutoscalerRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionAutoscalers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionAutoscalers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionAutoscalers|get}.
                     * @param error Error, if any
                     * @param [response] Autoscaler
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Autoscaler) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionAutoscalers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionAutoscalers|list}.
                     * @param error Error, if any
                     * @param [response] RegionAutoscalerList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionAutoscalerList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionAutoscalers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionAutoscalers|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionAutoscalers|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionBackendServices */
                class RegionBackendServices extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionBackendServices 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 RegionBackendServices 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): RegionBackendServices;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendService
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionBackendServiceRequest): Promise<google.cloud.compute.v1.BackendService>;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceGroupHealth
                     */
                    public getHealth(request: google.cloud.compute.v1.IGetHealthRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.GetHealthCallback): void;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getHealth(request: google.cloud.compute.v1.IGetHealthRegionBackendServiceRequest): Promise<google.cloud.compute.v1.BackendServiceGroupHealth>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyRegionBackendServiceRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionBackendServicesRequest, callback: google.cloud.compute.v1.RegionBackendServices.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionBackendServicesRequest): Promise<google.cloud.compute.v1.BackendServiceList>;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableRegionBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceListUsable
                     */
                    public listUsable(request: google.cloud.compute.v1.IListUsableRegionBackendServicesRequest, callback: google.cloud.compute.v1.RegionBackendServices.ListUsableCallback): void;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableRegionBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public listUsable(request: google.cloud.compute.v1.IListUsableRegionBackendServicesRequest): Promise<google.cloud.compute.v1.BackendServiceListUsable>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyRegionBackendServiceRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyRegionBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionBackendServiceRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionBackendServiceRequest, callback: google.cloud.compute.v1.RegionBackendServices.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionBackendServiceRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionBackendServices {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|get}.
                     * @param error Error, if any
                     * @param [response] BackendService
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendService) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|getHealth}.
                     * @param error Error, if any
                     * @param [response] BackendServiceGroupHealth
                     */
                    type GetHealthCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendServiceGroupHealth) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|list}.
                     * @param error Error, if any
                     * @param [response] BackendServiceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendServiceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|listUsable}.
                     * @param error Error, if any
                     * @param [response] BackendServiceListUsable
                     */
                    type ListUsableCallback = (error: (Error|null), response?: google.cloud.compute.v1.BackendServiceListUsable) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionBackendServices|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionCommitments */
                class RegionCommitments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionCommitments 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 RegionCommitments 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): RegionCommitments;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionCommitmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CommitmentAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionCommitmentsRequest, callback: google.cloud.compute.v1.RegionCommitments.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionCommitmentsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionCommitmentsRequest): Promise<google.cloud.compute.v1.CommitmentAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetRegionCommitmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Commitment
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionCommitmentRequest, callback: google.cloud.compute.v1.RegionCommitments.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionCommitmentRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionCommitmentRequest): Promise<google.cloud.compute.v1.Commitment>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionCommitmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionCommitmentRequest, callback: google.cloud.compute.v1.RegionCommitments.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionCommitmentRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionCommitmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionCommitmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CommitmentList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionCommitmentsRequest, callback: google.cloud.compute.v1.RegionCommitments.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionCommitmentsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionCommitmentsRequest): Promise<google.cloud.compute.v1.CommitmentList>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionCommitmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionCommitmentRequest, callback: google.cloud.compute.v1.RegionCommitments.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionCommitmentRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionCommitmentRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionCommitments {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCommitments|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] CommitmentAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.CommitmentAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCommitments|get}.
                     * @param error Error, if any
                     * @param [response] Commitment
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Commitment) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCommitments|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCommitments|list}.
                     * @param error Error, if any
                     * @param [response] CommitmentList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.CommitmentList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCommitments|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionCompositeHealthChecks */
                class RegionCompositeHealthChecks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionCompositeHealthChecks 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 RegionCompositeHealthChecks 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): RegionCompositeHealthChecks;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionCompositeHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CompositeHealthCheckAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionCompositeHealthChecksRequest, callback: google.cloud.compute.v1.RegionCompositeHealthChecks.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionCompositeHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionCompositeHealthChecksRequest): Promise<google.cloud.compute.v1.CompositeHealthCheckAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1.RegionCompositeHealthChecks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CompositeHealthCheck
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1.RegionCompositeHealthChecks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1.CompositeHealthCheck>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1.RegionCompositeHealthChecks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionCompositeHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CompositeHealthCheckList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionCompositeHealthChecksRequest, callback: google.cloud.compute.v1.RegionCompositeHealthChecks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionCompositeHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionCompositeHealthChecksRequest): Promise<google.cloud.compute.v1.CompositeHealthCheckList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1.RegionCompositeHealthChecks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1.RegionCompositeHealthChecks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace RegionCompositeHealthChecks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCompositeHealthChecks|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] CompositeHealthCheckAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.CompositeHealthCheckAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCompositeHealthChecks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCompositeHealthChecks|get}.
                     * @param error Error, if any
                     * @param [response] CompositeHealthCheck
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.CompositeHealthCheck) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCompositeHealthChecks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCompositeHealthChecks|list}.
                     * @param error Error, if any
                     * @param [response] CompositeHealthCheckList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.CompositeHealthCheckList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCompositeHealthChecks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionCompositeHealthChecks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a RegionDiskTypes */
                class RegionDiskTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionDiskTypes 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 RegionDiskTypes 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): RegionDiskTypes;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskType
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionDiskTypeRequest, callback: google.cloud.compute.v1.RegionDiskTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionDiskTypeRequest): Promise<google.cloud.compute.v1.DiskType>;

                    /**
                     * Calls List.
                     * @param request ListRegionDiskTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionDiskTypeList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionDiskTypesRequest, callback: google.cloud.compute.v1.RegionDiskTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionDiskTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionDiskTypesRequest): Promise<google.cloud.compute.v1.RegionDiskTypeList>;
                }

                namespace RegionDiskTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDiskTypes|get}.
                     * @param error Error, if any
                     * @param [response] DiskType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.DiskType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDiskTypes|list}.
                     * @param error Error, if any
                     * @param [response] RegionDiskTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionDiskTypeList) => void;
                }

                /** Represents a RegionDisks */
                class RegionDisks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionDisks 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 RegionDisks 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): RegionDisks;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1.IAddResourcePoliciesRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.AddResourcePoliciesCallback): void;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1.IAddResourcePoliciesRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkInsert(request: google.cloud.compute.v1.IBulkInsertRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.BulkInsertCallback): void;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public bulkInsert(request: google.cloud.compute.v1.IBulkInsertRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls CreateSnapshot.
                     * @param request CreateSnapshotRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createSnapshot(request: google.cloud.compute.v1.ICreateSnapshotRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.CreateSnapshotCallback): void;

                    /**
                     * Calls CreateSnapshot.
                     * @param request CreateSnapshotRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public createSnapshot(request: google.cloud.compute.v1.ICreateSnapshotRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Disk
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionDiskRequest): Promise<google.cloud.compute.v1.Disk>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyRegionDiskRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionDisksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionDisksRequest, callback: google.cloud.compute.v1.RegionDisks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionDisksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionDisksRequest): Promise<google.cloud.compute.v1.DiskList>;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1.IRemoveResourcePoliciesRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.RemoveResourcePoliciesCallback): void;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1.IRemoveResourcePoliciesRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1.IResizeRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1.IResizeRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyRegionDiskRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StartAsyncReplication.
                     * @param request StartAsyncReplicationRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startAsyncReplication(request: google.cloud.compute.v1.IStartAsyncReplicationRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.StartAsyncReplicationCallback): void;

                    /**
                     * Calls StartAsyncReplication.
                     * @param request StartAsyncReplicationRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public startAsyncReplication(request: google.cloud.compute.v1.IStartAsyncReplicationRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StopAsyncReplication.
                     * @param request StopAsyncReplicationRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopAsyncReplication(request: google.cloud.compute.v1.IStopAsyncReplicationRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.StopAsyncReplicationCallback): void;

                    /**
                     * Calls StopAsyncReplication.
                     * @param request StopAsyncReplicationRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public stopAsyncReplication(request: google.cloud.compute.v1.IStopAsyncReplicationRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StopGroupAsyncReplication.
                     * @param request StopGroupAsyncReplicationRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopGroupAsyncReplication(request: google.cloud.compute.v1.IStopGroupAsyncReplicationRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.StopGroupAsyncReplicationCallback): void;

                    /**
                     * Calls StopGroupAsyncReplication.
                     * @param request StopGroupAsyncReplicationRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public stopGroupAsyncReplication(request: google.cloud.compute.v1.IStopGroupAsyncReplicationRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionDiskRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionDiskRequest, callback: google.cloud.compute.v1.RegionDisks.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionDiskRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionDisks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|addResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|bulkInsert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkInsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|createSnapshot}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateSnapshotCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|get}.
                     * @param error Error, if any
                     * @param [response] Disk
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Disk) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|list}.
                     * @param error Error, if any
                     * @param [response] DiskList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.DiskList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|removeResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|startAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|stopAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|stopGroupAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopGroupAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionDisks|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionHealthAggregationPolicies */
                class RegionHealthAggregationPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionHealthAggregationPolicies 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 RegionHealthAggregationPolicies 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): RegionHealthAggregationPolicies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthAggregationPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthAggregationPolicyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionHealthAggregationPoliciesRequest, callback: google.cloud.compute.v1.RegionHealthAggregationPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthAggregationPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionHealthAggregationPoliciesRequest): Promise<google.cloud.compute.v1.HealthAggregationPolicyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1.RegionHealthAggregationPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthAggregationPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1.RegionHealthAggregationPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1.HealthAggregationPolicy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1.RegionHealthAggregationPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthAggregationPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthAggregationPolicyList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionHealthAggregationPoliciesRequest, callback: google.cloud.compute.v1.RegionHealthAggregationPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthAggregationPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionHealthAggregationPoliciesRequest): Promise<google.cloud.compute.v1.HealthAggregationPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1.RegionHealthAggregationPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1.RegionHealthAggregationPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace RegionHealthAggregationPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthAggregationPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] HealthAggregationPolicyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthAggregationPolicyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthAggregationPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthAggregationPolicies|get}.
                     * @param error Error, if any
                     * @param [response] HealthAggregationPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthAggregationPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthAggregationPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthAggregationPolicies|list}.
                     * @param error Error, if any
                     * @param [response] HealthAggregationPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthAggregationPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthAggregationPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthAggregationPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a RegionHealthCheckServices */
                class RegionHealthCheckServices extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionHealthCheckServices 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 RegionHealthCheckServices 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): RegionHealthCheckServices;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthCheckServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckServiceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionHealthCheckServicesRequest, callback: google.cloud.compute.v1.RegionHealthCheckServices.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthCheckServicesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionHealthCheckServicesRequest): Promise<google.cloud.compute.v1.HealthCheckServiceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1.RegionHealthCheckServices.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckService
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1.RegionHealthCheckServices.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1.HealthCheckService>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1.RegionHealthCheckServices.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthCheckServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckServicesList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionHealthCheckServicesRequest, callback: google.cloud.compute.v1.RegionHealthCheckServices.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthCheckServicesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionHealthCheckServicesRequest): Promise<google.cloud.compute.v1.HealthCheckServicesList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1.RegionHealthCheckServices.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1.RegionHealthCheckServices.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace RegionHealthCheckServices {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthCheckServices|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] HealthCheckServiceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthCheckServiceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthCheckServices|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthCheckServices|get}.
                     * @param error Error, if any
                     * @param [response] HealthCheckService
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthCheckService) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthCheckServices|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthCheckServices|list}.
                     * @param error Error, if any
                     * @param [response] HealthCheckServicesList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthCheckServicesList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthCheckServices|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthCheckServices|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a RegionHealthChecks */
                class RegionHealthChecks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionHealthChecks 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 RegionHealthChecks 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): RegionHealthChecks;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionHealthCheckRequest, callback: google.cloud.compute.v1.RegionHealthChecks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheck
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionHealthCheckRequest, callback: google.cloud.compute.v1.RegionHealthChecks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionHealthCheckRequest): Promise<google.cloud.compute.v1.HealthCheck>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionHealthCheckRequest, callback: google.cloud.compute.v1.RegionHealthChecks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionHealthChecksRequest, callback: google.cloud.compute.v1.RegionHealthChecks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionHealthChecksRequest): Promise<google.cloud.compute.v1.HealthCheckList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionHealthCheckRequest, callback: google.cloud.compute.v1.RegionHealthChecks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckRequest, callback: google.cloud.compute.v1.RegionHealthChecks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionHealthCheckRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionHealthCheckRequest, callback: google.cloud.compute.v1.RegionHealthChecks.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionHealthCheckRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionHealthChecks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthChecks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthChecks|get}.
                     * @param error Error, if any
                     * @param [response] HealthCheck
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthCheck) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthChecks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthChecks|list}.
                     * @param error Error, if any
                     * @param [response] HealthCheckList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthCheckList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthChecks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthChecks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthChecks|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionHealthSources */
                class RegionHealthSources extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionHealthSources 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 RegionHealthSources 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): RegionHealthSources;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthSourcesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthSourceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionHealthSourcesRequest, callback: google.cloud.compute.v1.RegionHealthSources.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthSourcesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionHealthSourcesRequest): Promise<google.cloud.compute.v1.HealthSourceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionHealthSourceRequest, callback: google.cloud.compute.v1.RegionHealthSources.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionHealthSourceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthSource
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionHealthSourceRequest, callback: google.cloud.compute.v1.RegionHealthSources.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionHealthSourceRequest): Promise<google.cloud.compute.v1.HealthSource>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionHealthSourceRequest, callback: google.cloud.compute.v1.RegionHealthSources.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionHealthSourceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthSourcesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthSourceList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionHealthSourcesRequest, callback: google.cloud.compute.v1.RegionHealthSources.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthSourcesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionHealthSourcesRequest): Promise<google.cloud.compute.v1.HealthSourceList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionHealthSourceRequest, callback: google.cloud.compute.v1.RegionHealthSources.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionHealthSourceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionHealthSourceRequest, callback: google.cloud.compute.v1.RegionHealthSources.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionHealthSourceRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace RegionHealthSources {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthSources|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] HealthSourceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthSourceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthSources|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthSources|get}.
                     * @param error Error, if any
                     * @param [response] HealthSource
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthSource) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthSources|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthSources|list}.
                     * @param error Error, if any
                     * @param [response] HealthSourceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.HealthSourceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthSources|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionHealthSources|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a RegionInstanceGroupManagers */
                class RegionInstanceGroupManagers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstanceGroupManagers 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 RegionInstanceGroupManagers 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): RegionInstanceGroupManagers;

                    /**
                     * Calls AbandonInstances.
                     * @param request AbandonInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public abandonInstances(request: google.cloud.compute.v1.IAbandonInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.AbandonInstancesCallback): void;

                    /**
                     * Calls AbandonInstances.
                     * @param request AbandonInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public abandonInstances(request: google.cloud.compute.v1.IAbandonInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls ApplyUpdatesToInstances.
                     * @param request ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public applyUpdatesToInstances(request: google.cloud.compute.v1.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.ApplyUpdatesToInstancesCallback): void;

                    /**
                     * Calls ApplyUpdatesToInstances.
                     * @param request ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public applyUpdatesToInstances(request: google.cloud.compute.v1.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls CreateInstances.
                     * @param request CreateInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createInstances(request: google.cloud.compute.v1.ICreateInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.CreateInstancesCallback): void;

                    /**
                     * Calls CreateInstances.
                     * @param request CreateInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public createInstances(request: google.cloud.compute.v1.ICreateInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeleteInstances.
                     * @param request DeleteInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteInstances(request: google.cloud.compute.v1.IDeleteInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.DeleteInstancesCallback): void;

                    /**
                     * Calls DeleteInstances.
                     * @param request DeleteInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public deleteInstances(request: google.cloud.compute.v1.IDeleteInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeletePerInstanceConfigs.
                     * @param request DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deletePerInstanceConfigs(request: google.cloud.compute.v1.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.DeletePerInstanceConfigsCallback): void;

                    /**
                     * Calls DeletePerInstanceConfigs.
                     * @param request DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public deletePerInstanceConfigs(request: google.cloud.compute.v1.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManager
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.InstanceGroupManager>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagerList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionInstanceGroupManagersRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.RegionInstanceGroupManagerList>;

                    /**
                     * Calls ListErrors.
                     * @param request ListErrorsRegionInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagersListErrorsResponse
                     */
                    public listErrors(request: google.cloud.compute.v1.IListErrorsRegionInstanceGroupManagersRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.ListErrorsCallback): void;

                    /**
                     * Calls ListErrors.
                     * @param request ListErrorsRegionInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listErrors(request: google.cloud.compute.v1.IListErrorsRegionInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse>;

                    /**
                     * Calls ListManagedInstances.
                     * @param request ListManagedInstancesRegionInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagersListInstancesResponse
                     */
                    public listManagedInstances(request: google.cloud.compute.v1.IListManagedInstancesRegionInstanceGroupManagersRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.ListManagedInstancesCallback): void;

                    /**
                     * Calls ListManagedInstances.
                     * @param request ListManagedInstancesRegionInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listManagedInstances(request: google.cloud.compute.v1.IListManagedInstancesRegionInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse>;

                    /**
                     * Calls ListPerInstanceConfigs.
                     * @param request ListPerInstanceConfigsRegionInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagersListInstanceConfigsResp
                     */
                    public listPerInstanceConfigs(request: google.cloud.compute.v1.IListPerInstanceConfigsRegionInstanceGroupManagersRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.ListPerInstanceConfigsCallback): void;

                    /**
                     * Calls ListPerInstanceConfigs.
                     * @param request ListPerInstanceConfigsRegionInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listPerInstanceConfigs(request: google.cloud.compute.v1.IListPerInstanceConfigsRegionInstanceGroupManagersRequest): Promise<google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchPerInstanceConfigs.
                     * @param request PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchPerInstanceConfigs(request: google.cloud.compute.v1.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.PatchPerInstanceConfigsCallback): void;

                    /**
                     * Calls PatchPerInstanceConfigs.
                     * @param request PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public patchPerInstanceConfigs(request: google.cloud.compute.v1.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RecreateInstances.
                     * @param request RecreateInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public recreateInstances(request: google.cloud.compute.v1.IRecreateInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.RecreateInstancesCallback): void;

                    /**
                     * Calls RecreateInstances.
                     * @param request RecreateInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public recreateInstances(request: google.cloud.compute.v1.IRecreateInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1.IResizeRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1.IResizeRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls ResumeInstances.
                     * @param request ResumeInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resumeInstances(request: google.cloud.compute.v1.IResumeInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.ResumeInstancesCallback): void;

                    /**
                     * Calls ResumeInstances.
                     * @param request ResumeInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resumeInstances(request: google.cloud.compute.v1.IResumeInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetInstanceTemplate.
                     * @param request SetInstanceTemplateRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setInstanceTemplate(request: google.cloud.compute.v1.ISetInstanceTemplateRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.SetInstanceTemplateCallback): void;

                    /**
                     * Calls SetInstanceTemplate.
                     * @param request SetInstanceTemplateRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setInstanceTemplate(request: google.cloud.compute.v1.ISetInstanceTemplateRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetTargetPools.
                     * @param request SetTargetPoolsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTargetPools(request: google.cloud.compute.v1.ISetTargetPoolsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.SetTargetPoolsCallback): void;

                    /**
                     * Calls SetTargetPools.
                     * @param request SetTargetPoolsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setTargetPools(request: google.cloud.compute.v1.ISetTargetPoolsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StartInstances.
                     * @param request StartInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startInstances(request: google.cloud.compute.v1.IStartInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.StartInstancesCallback): void;

                    /**
                     * Calls StartInstances.
                     * @param request StartInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public startInstances(request: google.cloud.compute.v1.IStartInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls StopInstances.
                     * @param request StopInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopInstances(request: google.cloud.compute.v1.IStopInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.StopInstancesCallback): void;

                    /**
                     * Calls StopInstances.
                     * @param request StopInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public stopInstances(request: google.cloud.compute.v1.IStopInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SuspendInstances.
                     * @param request SuspendInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public suspendInstances(request: google.cloud.compute.v1.ISuspendInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.SuspendInstancesCallback): void;

                    /**
                     * Calls SuspendInstances.
                     * @param request SuspendInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public suspendInstances(request: google.cloud.compute.v1.ISuspendInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls UpdatePerInstanceConfigs.
                     * @param request UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updatePerInstanceConfigs(request: google.cloud.compute.v1.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1.RegionInstanceGroupManagers.UpdatePerInstanceConfigsCallback): void;

                    /**
                     * Calls UpdatePerInstanceConfigs.
                     * @param request UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public updatePerInstanceConfigs(request: google.cloud.compute.v1.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionInstanceGroupManagers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|abandonInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AbandonInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|applyUpdatesToInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ApplyUpdatesToInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|createInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|deleteInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|deletePerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeletePerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManager
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroupManager) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|list}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagerList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionInstanceGroupManagerList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|listErrors}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagersListErrorsResponse
                     */
                    type ListErrorsCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionInstanceGroupManagersListErrorsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|listManagedInstances}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagersListInstancesResponse
                     */
                    type ListManagedInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionInstanceGroupManagersListInstancesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|listPerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagersListInstanceConfigsResp
                     */
                    type ListPerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionInstanceGroupManagersListInstanceConfigsResp) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|patchPerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchPerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|recreateInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RecreateInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|resumeInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResumeInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|setInstanceTemplate}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetInstanceTemplateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|setTargetPools}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTargetPoolsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|startInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|stopInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|suspendInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SuspendInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroupManagers|updatePerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdatePerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionInstanceGroups */
                class RegionInstanceGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstanceGroups 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 RegionInstanceGroups 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): RegionInstanceGroups;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionInstanceGroupRequest, callback: google.cloud.compute.v1.RegionInstanceGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionInstanceGroupRequest): Promise<google.cloud.compute.v1.InstanceGroup>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionInstanceGroupsRequest, callback: google.cloud.compute.v1.RegionInstanceGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionInstanceGroupsRequest): Promise<google.cloud.compute.v1.RegionInstanceGroupList>;

                    /**
                     * Calls ListInstances.
                     * @param request ListInstancesRegionInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupsListInstances
                     */
                    public listInstances(request: google.cloud.compute.v1.IListInstancesRegionInstanceGroupsRequest, callback: google.cloud.compute.v1.RegionInstanceGroups.ListInstancesCallback): void;

                    /**
                     * Calls ListInstances.
                     * @param request ListInstancesRegionInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listInstances(request: google.cloud.compute.v1.IListInstancesRegionInstanceGroupsRequest): Promise<google.cloud.compute.v1.RegionInstanceGroupsListInstances>;

                    /**
                     * Calls SetNamedPorts.
                     * @param request SetNamedPortsRegionInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setNamedPorts(request: google.cloud.compute.v1.ISetNamedPortsRegionInstanceGroupRequest, callback: google.cloud.compute.v1.RegionInstanceGroups.SetNamedPortsCallback): void;

                    /**
                     * Calls SetNamedPorts.
                     * @param request SetNamedPortsRegionInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setNamedPorts(request: google.cloud.compute.v1.ISetNamedPortsRegionInstanceGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionInstanceGroupRequest, callback: google.cloud.compute.v1.RegionInstanceGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionInstanceGroupRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace RegionInstanceGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroups|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroups|list}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionInstanceGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroups|listInstances}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupsListInstances
                     */
                    type ListInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionInstanceGroupsListInstances) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroups|setNamedPorts}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetNamedPortsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a RegionInstanceTemplates */
                class RegionInstanceTemplates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstanceTemplates 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 RegionInstanceTemplates 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): RegionInstanceTemplates;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionInstanceTemplateRequest, callback: google.cloud.compute.v1.RegionInstanceTemplates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionInstanceTemplateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplate
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionInstanceTemplateRequest, callback: google.cloud.compute.v1.RegionInstanceTemplates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionInstanceTemplateRequest): Promise<google.cloud.compute.v1.InstanceTemplate>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionInstanceTemplateRequest, callback: google.cloud.compute.v1.RegionInstanceTemplates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionInstanceTemplateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplateList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionInstanceTemplatesRequest, callback: google.cloud.compute.v1.RegionInstanceTemplates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionInstanceTemplatesRequest): Promise<google.cloud.compute.v1.InstanceTemplateList>;
                }

                namespace RegionInstanceTemplates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceTemplates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceTemplates|get}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceTemplate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceTemplates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstanceTemplates|list}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstanceTemplateList) => void;
                }

                /** Represents a RegionInstances */
                class RegionInstances extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstances 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 RegionInstances 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): RegionInstances;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertRegionInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkInsert(request: google.cloud.compute.v1.IBulkInsertRegionInstanceRequest, callback: google.cloud.compute.v1.RegionInstances.BulkInsertCallback): void;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertRegionInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public bulkInsert(request: google.cloud.compute.v1.IBulkInsertRegionInstanceRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionInstances {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstances|bulkInsert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkInsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionInstantSnapshots */
                class RegionInstantSnapshots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstantSnapshots 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 RegionInstantSnapshots 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): RegionInstantSnapshots;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionInstantSnapshotRequest, callback: google.cloud.compute.v1.RegionInstantSnapshots.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshot
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionInstantSnapshotRequest, callback: google.cloud.compute.v1.RegionInstantSnapshots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1.InstantSnapshot>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyRegionInstantSnapshotRequest, callback: google.cloud.compute.v1.RegionInstantSnapshots.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionInstantSnapshotRequest, callback: google.cloud.compute.v1.RegionInstantSnapshots.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstantSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshotList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionInstantSnapshotsRequest, callback: google.cloud.compute.v1.RegionInstantSnapshots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstantSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionInstantSnapshotsRequest): Promise<google.cloud.compute.v1.InstantSnapshotList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyRegionInstantSnapshotRequest, callback: google.cloud.compute.v1.RegionInstantSnapshots.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsRegionInstantSnapshotRequest, callback: google.cloud.compute.v1.RegionInstantSnapshots.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionInstantSnapshotRequest, callback: google.cloud.compute.v1.RegionInstantSnapshots.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace RegionInstantSnapshots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstantSnapshots|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstantSnapshots|get}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshot
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstantSnapshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstantSnapshots|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstantSnapshots|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstantSnapshots|list}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshotList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.InstantSnapshotList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstantSnapshots|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstantSnapshots|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionInstantSnapshots|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a RegionNetworkEndpointGroups */
                class RegionNetworkEndpointGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionNetworkEndpointGroups 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 RegionNetworkEndpointGroups 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): RegionNetworkEndpointGroups;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.RegionNetworkEndpointGroups.AttachNetworkEndpointsCallback): void;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.RegionNetworkEndpointGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.RegionNetworkEndpointGroups.DetachNetworkEndpointsCallback): void;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.RegionNetworkEndpointGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1.RegionNetworkEndpointGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1.RegionNetworkEndpointGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroupList>;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupsListNetworkEndpoints
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1.RegionNetworkEndpointGroups.ListNetworkEndpointsCallback): void;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints>;
                }

                namespace RegionNetworkEndpointGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkEndpointGroups|attachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AttachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkEndpointGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkEndpointGroups|detachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DetachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkEndpointGroups|get}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkEndpointGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkEndpointGroups|list}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkEndpointGroups|listNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupsListNetworkEndpoints
                     */
                    type ListNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints) => void;
                }

                /** Represents a RegionNetworkFirewallPolicies */
                class RegionNetworkFirewallPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionNetworkFirewallPolicies 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 RegionNetworkFirewallPolicies 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): RegionNetworkFirewallPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1.IAddAssociationRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1.IAddAssociationRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cloneRules(request: google.cloud.compute.v1.ICloneRulesRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.CloneRulesCallback): void;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public cloneRules(request: google.cloud.compute.v1.ICloneRulesRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1.IGetAssociationRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1.IGetAssociationRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicyAssociation>;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetEffectiveFirewallsCallback): void;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.FirewallPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkFirewallPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionNetworkFirewallPoliciesRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkFirewallPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionNetworkFirewallPoliciesRequest): Promise<google.cloud.compute.v1.FirewallPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1.IRemoveAssociationRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1.IRemoveAssociationRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1.RegionNetworkFirewallPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace RegionNetworkFirewallPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|cloneRules}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CloneRulesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|get}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|getEffectiveFirewalls}.
                     * @param error Error, if any
                     * @param [response] RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     */
                    type GetEffectiveFirewallsCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|list}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.FirewallPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNetworkFirewallPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a RegionNotificationEndpoints */
                class RegionNotificationEndpoints extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionNotificationEndpoints 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 RegionNotificationEndpoints 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): RegionNotificationEndpoints;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionNotificationEndpointsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NotificationEndpointAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionNotificationEndpointsRequest, callback: google.cloud.compute.v1.RegionNotificationEndpoints.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionNotificationEndpointsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRegionNotificationEndpointsRequest): Promise<google.cloud.compute.v1.NotificationEndpointAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNotificationEndpointRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionNotificationEndpointRequest, callback: google.cloud.compute.v1.RegionNotificationEndpoints.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNotificationEndpointRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionNotificationEndpointRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionNotificationEndpointRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NotificationEndpoint
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionNotificationEndpointRequest, callback: google.cloud.compute.v1.RegionNotificationEndpoints.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionNotificationEndpointRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionNotificationEndpointRequest): Promise<google.cloud.compute.v1.NotificationEndpoint>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNotificationEndpointRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionNotificationEndpointRequest, callback: google.cloud.compute.v1.RegionNotificationEndpoints.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNotificationEndpointRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionNotificationEndpointRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionNotificationEndpointsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NotificationEndpointList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionNotificationEndpointsRequest, callback: google.cloud.compute.v1.RegionNotificationEndpoints.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionNotificationEndpointsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionNotificationEndpointsRequest): Promise<google.cloud.compute.v1.NotificationEndpointList>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionNotificationEndpointRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionNotificationEndpointRequest, callback: google.cloud.compute.v1.RegionNotificationEndpoints.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionNotificationEndpointRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRegionNotificationEndpointRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace RegionNotificationEndpoints {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNotificationEndpoints|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NotificationEndpointAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NotificationEndpointAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNotificationEndpoints|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNotificationEndpoints|get}.
                     * @param error Error, if any
                     * @param [response] NotificationEndpoint
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.NotificationEndpoint) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNotificationEndpoints|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNotificationEndpoints|list}.
                     * @param error Error, if any
                     * @param [response] NotificationEndpointList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.NotificationEndpointList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionNotificationEndpoints|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a RegionOperations */
                class RegionOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionOperations 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 RegionOperations 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): RegionOperations;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeleteRegionOperationResponse
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionOperationRequest, callback: google.cloud.compute.v1.RegionOperations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionOperationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionOperationRequest): Promise<google.cloud.compute.v1.DeleteRegionOperationResponse>;

                    /**
                     * Calls Get.
                     * @param request GetRegionOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionOperationRequest, callback: google.cloud.compute.v1.RegionOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionOperationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionOperationsRequest, callback: google.cloud.compute.v1.RegionOperations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionOperationsRequest): Promise<google.cloud.compute.v1.OperationList>;

                    /**
                     * Calls Wait.
                     * @param request WaitRegionOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public wait(request: google.cloud.compute.v1.IWaitRegionOperationRequest, callback: google.cloud.compute.v1.RegionOperations.WaitCallback): void;

                    /**
                     * Calls Wait.
                     * @param request WaitRegionOperationRequest message or plain object
                     * @returns Promise
                     */
                    public wait(request: google.cloud.compute.v1.IWaitRegionOperationRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionOperations|delete_}.
                     * @param error Error, if any
                     * @param [response] DeleteRegionOperationResponse
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.DeleteRegionOperationResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionOperations|list}.
                     * @param error Error, if any
                     * @param [response] OperationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.OperationList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionOperations|wait}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WaitCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionSecurityPolicies */
                class RegionSecurityPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionSecurityPolicies 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 RegionSecurityPolicies 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): RegionSecurityPolicies;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.SecurityPolicy>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.SecurityPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionSecurityPoliciesRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionSecurityPoliciesRequest): Promise<google.cloud.compute.v1.SecurityPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsRegionSecurityPolicyRequest, callback: google.cloud.compute.v1.RegionSecurityPolicies.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionSecurityPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSecurityPolicies|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionSslCertificates */
                class RegionSslCertificates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionSslCertificates 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 RegionSslCertificates 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): RegionSslCertificates;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionSslCertificateRequest, callback: google.cloud.compute.v1.RegionSslCertificates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionSslCertificateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificate
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionSslCertificateRequest, callback: google.cloud.compute.v1.RegionSslCertificates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionSslCertificateRequest): Promise<google.cloud.compute.v1.SslCertificate>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionSslCertificateRequest, callback: google.cloud.compute.v1.RegionSslCertificates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionSslCertificateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionSslCertificatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificateList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionSslCertificatesRequest, callback: google.cloud.compute.v1.RegionSslCertificates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionSslCertificatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionSslCertificatesRequest): Promise<google.cloud.compute.v1.SslCertificateList>;
                }

                namespace RegionSslCertificates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslCertificates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslCertificates|get}.
                     * @param error Error, if any
                     * @param [response] SslCertificate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslCertificate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslCertificates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslCertificates|list}.
                     * @param error Error, if any
                     * @param [response] SslCertificateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslCertificateList) => void;
                }

                /** Represents a RegionSslPolicies */
                class RegionSslPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionSslPolicies 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 RegionSslPolicies 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): RegionSslPolicies;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionSslPolicyRequest, callback: google.cloud.compute.v1.RegionSslPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionSslPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionSslPolicyRequest, callback: google.cloud.compute.v1.RegionSslPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionSslPolicyRequest): Promise<google.cloud.compute.v1.SslPolicy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionSslPolicyRequest, callback: google.cloud.compute.v1.RegionSslPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionSslPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionSslPoliciesRequest, callback: google.cloud.compute.v1.RegionSslPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionSslPoliciesRequest): Promise<google.cloud.compute.v1.SslPoliciesList>;

                    /**
                     * Calls ListAvailableFeatures.
                     * @param request ListAvailableFeaturesRegionSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesListAvailableFeaturesResponse
                     */
                    public listAvailableFeatures(request: google.cloud.compute.v1.IListAvailableFeaturesRegionSslPoliciesRequest, callback: google.cloud.compute.v1.RegionSslPolicies.ListAvailableFeaturesCallback): void;

                    /**
                     * Calls ListAvailableFeatures.
                     * @param request ListAvailableFeaturesRegionSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public listAvailableFeatures(request: google.cloud.compute.v1.IListAvailableFeaturesRegionSslPoliciesRequest): Promise<google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionSslPolicyRequest, callback: google.cloud.compute.v1.RegionSslPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionSslPolicyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionSslPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SslPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslPoliciesList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslPolicies|listAvailableFeatures}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesListAvailableFeaturesResponse
                     */
                    type ListAvailableFeaturesCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionSslPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionTargetHttpProxies */
                class RegionTargetHttpProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionTargetHttpProxies 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 RegionTargetHttpProxies 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): RegionTargetHttpProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxy
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1.TargetHttpProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetHttpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxyList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionTargetHttpProxiesRequest, callback: google.cloud.compute.v1.RegionTargetHttpProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetHttpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionTargetHttpProxiesRequest): Promise<google.cloud.compute.v1.TargetHttpProxyList>;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUrlMap(request: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpProxies.SetUrlMapCallback): void;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setUrlMap(request: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionTargetHttpProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpProxies|setUrlMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUrlMapCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionTargetHttpsProxies */
                class RegionTargetHttpsProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionTargetHttpsProxies 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 RegionTargetHttpsProxies 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): RegionTargetHttpsProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpsProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxy
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpsProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.TargetHttpsProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpsProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetHttpsProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxyList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionTargetHttpsProxiesRequest, callback: google.cloud.compute.v1.RegionTargetHttpsProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetHttpsProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionTargetHttpsProxiesRequest): Promise<google.cloud.compute.v1.TargetHttpsProxyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpsProxies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslCertificates(request: google.cloud.compute.v1.ISetSslCertificatesRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpsProxies.SetSslCertificatesCallback): void;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslCertificates(request: google.cloud.compute.v1.ISetSslCertificatesRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUrlMap(request: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1.RegionTargetHttpsProxies.SetUrlMapCallback): void;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setUrlMap(request: google.cloud.compute.v1.ISetUrlMapRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace RegionTargetHttpsProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpsProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpsProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpsProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpsProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpsProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpsProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpsProxies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpsProxies|setSslCertificates}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslCertificatesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetHttpsProxies|setUrlMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUrlMapCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a RegionTargetTcpProxies */
                class RegionTargetTcpProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionTargetTcpProxies 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 RegionTargetTcpProxies 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): RegionTargetTcpProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionTargetTcpProxyRequest, callback: google.cloud.compute.v1.RegionTargetTcpProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionTargetTcpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxy
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionTargetTcpProxyRequest, callback: google.cloud.compute.v1.RegionTargetTcpProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionTargetTcpProxyRequest): Promise<google.cloud.compute.v1.TargetTcpProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionTargetTcpProxyRequest, callback: google.cloud.compute.v1.RegionTargetTcpProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionTargetTcpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetTcpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxyList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionTargetTcpProxiesRequest, callback: google.cloud.compute.v1.RegionTargetTcpProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetTcpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionTargetTcpProxiesRequest): Promise<google.cloud.compute.v1.TargetTcpProxyList>;
                }

                namespace RegionTargetTcpProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetTcpProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetTcpProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetTcpProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetTcpProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionTargetTcpProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetTcpProxyList) => void;
                }

                /** Represents a RegionUrlMaps */
                class RegionUrlMaps extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionUrlMaps 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 RegionUrlMaps 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): RegionUrlMaps;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionUrlMapRequest, callback: google.cloud.compute.v1.RegionUrlMaps.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRegionUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMap
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionUrlMapRequest, callback: google.cloud.compute.v1.RegionUrlMaps.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionUrlMapRequest): Promise<google.cloud.compute.v1.UrlMap>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionUrlMapRequest, callback: google.cloud.compute.v1.RegionUrlMaps.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRegionUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionUrlMapsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionUrlMapsRequest, callback: google.cloud.compute.v1.RegionUrlMaps.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionUrlMapsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionUrlMapsRequest): Promise<google.cloud.compute.v1.UrlMapList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionUrlMapRequest, callback: google.cloud.compute.v1.RegionUrlMaps.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRegionUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionUrlMapRequest, callback: google.cloud.compute.v1.RegionUrlMaps.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRegionUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Validate.
                     * @param request ValidateRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapsValidateResponse
                     */
                    public validate(request: google.cloud.compute.v1.IValidateRegionUrlMapRequest, callback: google.cloud.compute.v1.RegionUrlMaps.ValidateCallback): void;

                    /**
                     * Calls Validate.
                     * @param request ValidateRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public validate(request: google.cloud.compute.v1.IValidateRegionUrlMapRequest): Promise<google.cloud.compute.v1.UrlMapsValidateResponse>;
                }

                namespace RegionUrlMaps {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionUrlMaps|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionUrlMaps|get}.
                     * @param error Error, if any
                     * @param [response] UrlMap
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.UrlMap) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionUrlMaps|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionUrlMaps|list}.
                     * @param error Error, if any
                     * @param [response] UrlMapList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.UrlMapList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionUrlMaps|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionUrlMaps|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionUrlMaps|validate}.
                     * @param error Error, if any
                     * @param [response] UrlMapsValidateResponse
                     */
                    type ValidateCallback = (error: (Error|null), response?: google.cloud.compute.v1.UrlMapsValidateResponse) => void;
                }

                /** Represents a RegionZones */
                class RegionZones extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionZones 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 RegionZones 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): RegionZones;

                    /**
                     * Calls List.
                     * @param request ListRegionZonesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ZoneList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionZonesRequest, callback: google.cloud.compute.v1.RegionZones.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionZonesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionZonesRequest): Promise<google.cloud.compute.v1.ZoneList>;
                }

                namespace RegionZones {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.RegionZones|list}.
                     * @param error Error, if any
                     * @param [response] ZoneList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ZoneList) => void;
                }

                /** Represents a Regions */
                class Regions extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Regions 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 Regions 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): Regions;

                    /**
                     * Calls Get.
                     * @param request GetRegionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Region
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionRequest, callback: google.cloud.compute.v1.Regions.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRegionRequest): Promise<google.cloud.compute.v1.Region>;

                    /**
                     * Calls List.
                     * @param request ListRegionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionList
                     */
                    public list(request: google.cloud.compute.v1.IListRegionsRequest, callback: google.cloud.compute.v1.Regions.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRegionsRequest): Promise<google.cloud.compute.v1.RegionList>;
                }

                namespace Regions {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Regions|get}.
                     * @param error Error, if any
                     * @param [response] Region
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Region) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Regions|list}.
                     * @param error Error, if any
                     * @param [response] RegionList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.RegionList) => void;
                }

                /** Represents a ReservationBlocks */
                class ReservationBlocks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ReservationBlocks 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 ReservationBlocks 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): ReservationBlocks;

                    /**
                     * Calls Get.
                     * @param request GetReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationBlocksGetResponse
                     */
                    public get(request: google.cloud.compute.v1.IGetReservationBlockRequest, callback: google.cloud.compute.v1.ReservationBlocks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetReservationBlockRequest): Promise<google.cloud.compute.v1.ReservationBlocksGetResponse>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyReservationBlockRequest, callback: google.cloud.compute.v1.ReservationBlocks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyReservationBlockRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls List.
                     * @param request ListReservationBlocksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationBlocksListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListReservationBlocksRequest, callback: google.cloud.compute.v1.ReservationBlocks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListReservationBlocksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListReservationBlocksRequest): Promise<google.cloud.compute.v1.ReservationBlocksListResponse>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceReservationBlockRequest, callback: google.cloud.compute.v1.ReservationBlocks.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceReservationBlockRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyReservationBlockRequest, callback: google.cloud.compute.v1.ReservationBlocks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyReservationBlockRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsReservationBlockRequest, callback: google.cloud.compute.v1.ReservationBlocks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsReservationBlockRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace ReservationBlocks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationBlocks|get}.
                     * @param error Error, if any
                     * @param [response] ReservationBlocksGetResponse
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ReservationBlocksGetResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationBlocks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationBlocks|list}.
                     * @param error Error, if any
                     * @param [response] ReservationBlocksListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ReservationBlocksListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationBlocks|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationBlocks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationBlocks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a ReservationSlots */
                class ReservationSlots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ReservationSlots 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 ReservationSlots 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): ReservationSlots;

                    /**
                     * Calls Get.
                     * @param request GetReservationSlotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationSlotsGetResponse
                     */
                    public get(request: google.cloud.compute.v1.IGetReservationSlotRequest, callback: google.cloud.compute.v1.ReservationSlots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetReservationSlotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetReservationSlotRequest): Promise<google.cloud.compute.v1.ReservationSlotsGetResponse>;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionReservationSlotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public getVersion(request: google.cloud.compute.v1.IGetVersionReservationSlotRequest, callback: google.cloud.compute.v1.ReservationSlots.GetVersionCallback): void;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionReservationSlotRequest message or plain object
                     * @returns Promise
                     */
                    public getVersion(request: google.cloud.compute.v1.IGetVersionReservationSlotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListReservationSlotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationSlotsListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListReservationSlotsRequest, callback: google.cloud.compute.v1.ReservationSlots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListReservationSlotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListReservationSlotsRequest): Promise<google.cloud.compute.v1.ReservationSlotsListResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateReservationSlotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateReservationSlotRequest, callback: google.cloud.compute.v1.ReservationSlots.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateReservationSlotRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateReservationSlotRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace ReservationSlots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSlots|get}.
                     * @param error Error, if any
                     * @param [response] ReservationSlotsGetResponse
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ReservationSlotsGetResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSlots|getVersion}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetVersionCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSlots|list}.
                     * @param error Error, if any
                     * @param [response] ReservationSlotsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ReservationSlotsListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSlots|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a ReservationSubBlocks */
                class ReservationSubBlocks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ReservationSubBlocks 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 ReservationSubBlocks 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): ReservationSubBlocks;

                    /**
                     * Calls Get.
                     * @param request GetReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationSubBlocksGetResponse
                     */
                    public get(request: google.cloud.compute.v1.IGetReservationSubBlockRequest, callback: google.cloud.compute.v1.ReservationSubBlocks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetReservationSubBlockRequest): Promise<google.cloud.compute.v1.ReservationSubBlocksGetResponse>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyReservationSubBlockRequest, callback: google.cloud.compute.v1.ReservationSubBlocks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyReservationSubBlockRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public getVersion(request: google.cloud.compute.v1.IGetVersionReservationSubBlockRequest, callback: google.cloud.compute.v1.ReservationSubBlocks.GetVersionCallback): void;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public getVersion(request: google.cloud.compute.v1.IGetVersionReservationSubBlockRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListReservationSubBlocksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationSubBlocksListResponse
                     */
                    public list(request: google.cloud.compute.v1.IListReservationSubBlocksRequest, callback: google.cloud.compute.v1.ReservationSubBlocks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListReservationSubBlocksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListReservationSubBlocksRequest): Promise<google.cloud.compute.v1.ReservationSubBlocksListResponse>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceReservationSubBlockRequest, callback: google.cloud.compute.v1.ReservationSubBlocks.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceReservationSubBlockRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls ReportFaulty.
                     * @param request ReportFaultyReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public reportFaulty(request: google.cloud.compute.v1.IReportFaultyReservationSubBlockRequest, callback: google.cloud.compute.v1.ReservationSubBlocks.ReportFaultyCallback): void;

                    /**
                     * Calls ReportFaulty.
                     * @param request ReportFaultyReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public reportFaulty(request: google.cloud.compute.v1.IReportFaultyReservationSubBlockRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyReservationSubBlockRequest, callback: google.cloud.compute.v1.ReservationSubBlocks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyReservationSubBlockRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsReservationSubBlockRequest, callback: google.cloud.compute.v1.ReservationSubBlocks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsReservationSubBlockRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace ReservationSubBlocks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSubBlocks|get}.
                     * @param error Error, if any
                     * @param [response] ReservationSubBlocksGetResponse
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ReservationSubBlocksGetResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSubBlocks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSubBlocks|getVersion}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetVersionCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSubBlocks|list}.
                     * @param error Error, if any
                     * @param [response] ReservationSubBlocksListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ReservationSubBlocksListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSubBlocks|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSubBlocks|reportFaulty}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ReportFaultyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSubBlocks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ReservationSubBlocks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a Reservations */
                class Reservations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Reservations 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 Reservations 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): Reservations;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListReservationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListReservationsRequest, callback: google.cloud.compute.v1.Reservations.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListReservationsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListReservationsRequest): Promise<google.cloud.compute.v1.ReservationAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteReservationRequest, callback: google.cloud.compute.v1.Reservations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteReservationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteReservationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Reservation
                     */
                    public get(request: google.cloud.compute.v1.IGetReservationRequest, callback: google.cloud.compute.v1.Reservations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetReservationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetReservationRequest): Promise<google.cloud.compute.v1.Reservation>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyReservationRequest, callback: google.cloud.compute.v1.Reservations.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyReservationRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertReservationRequest, callback: google.cloud.compute.v1.Reservations.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertReservationRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertReservationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListReservationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationList
                     */
                    public list(request: google.cloud.compute.v1.IListReservationsRequest, callback: google.cloud.compute.v1.Reservations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListReservationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListReservationsRequest): Promise<google.cloud.compute.v1.ReservationList>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceReservationRequest, callback: google.cloud.compute.v1.Reservations.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1.IPerformMaintenanceReservationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1.IResizeReservationRequest, callback: google.cloud.compute.v1.Reservations.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeReservationRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1.IResizeReservationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyReservationRequest, callback: google.cloud.compute.v1.Reservations.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyReservationRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsReservationRequest, callback: google.cloud.compute.v1.Reservations.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsReservationRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateReservationRequest, callback: google.cloud.compute.v1.Reservations.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateReservationRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateReservationRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Reservations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] ReservationAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ReservationAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|get}.
                     * @param error Error, if any
                     * @param [response] Reservation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Reservation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|list}.
                     * @param error Error, if any
                     * @param [response] ReservationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ReservationList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Reservations|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a ResourcePolicies */
                class ResourcePolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ResourcePolicies 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 ResourcePolicies 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): ResourcePolicies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListResourcePoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ResourcePolicyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListResourcePoliciesRequest, callback: google.cloud.compute.v1.ResourcePolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListResourcePoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListResourcePoliciesRequest): Promise<google.cloud.compute.v1.ResourcePolicyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteResourcePolicyRequest, callback: google.cloud.compute.v1.ResourcePolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteResourcePolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ResourcePolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetResourcePolicyRequest, callback: google.cloud.compute.v1.ResourcePolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetResourcePolicyRequest): Promise<google.cloud.compute.v1.ResourcePolicy>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyResourcePolicyRequest, callback: google.cloud.compute.v1.ResourcePolicies.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyResourcePolicyRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertResourcePolicyRequest, callback: google.cloud.compute.v1.ResourcePolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertResourcePolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListResourcePoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ResourcePolicyList
                     */
                    public list(request: google.cloud.compute.v1.IListResourcePoliciesRequest, callback: google.cloud.compute.v1.ResourcePolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListResourcePoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListResourcePoliciesRequest): Promise<google.cloud.compute.v1.ResourcePolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchResourcePolicyRequest, callback: google.cloud.compute.v1.ResourcePolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchResourcePolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyResourcePolicyRequest, callback: google.cloud.compute.v1.ResourcePolicies.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyResourcePolicyRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsResourcePolicyRequest, callback: google.cloud.compute.v1.ResourcePolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsResourcePolicyRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace ResourcePolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] ResourcePolicyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ResourcePolicyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|get}.
                     * @param error Error, if any
                     * @param [response] ResourcePolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ResourcePolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|list}.
                     * @param error Error, if any
                     * @param [response] ResourcePolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ResourcePolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ResourcePolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a Routers */
                class Routers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Routers 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 Routers 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): Routers;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RouterAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRoutersRequest, callback: google.cloud.compute.v1.Routers.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListRoutersRequest): Promise<google.cloud.compute.v1.RouterAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRouterRequest, callback: google.cloud.compute.v1.Routers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRouterRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRouterRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls DeleteRoutePolicy.
                     * @param request DeleteRoutePolicyRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteRoutePolicy(request: google.cloud.compute.v1.IDeleteRoutePolicyRouterRequest, callback: google.cloud.compute.v1.Routers.DeleteRoutePolicyCallback): void;

                    /**
                     * Calls DeleteRoutePolicy.
                     * @param request DeleteRoutePolicyRouterRequest message or plain object
                     * @returns Promise
                     */
                    public deleteRoutePolicy(request: google.cloud.compute.v1.IDeleteRoutePolicyRouterRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Router
                     */
                    public get(request: google.cloud.compute.v1.IGetRouterRequest, callback: google.cloud.compute.v1.Routers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRouterRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRouterRequest): Promise<google.cloud.compute.v1.Router>;

                    /**
                     * Calls GetNatIpInfo.
                     * @param request GetNatIpInfoRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NatIpInfoResponse
                     */
                    public getNatIpInfo(request: google.cloud.compute.v1.IGetNatIpInfoRouterRequest, callback: google.cloud.compute.v1.Routers.GetNatIpInfoCallback): void;

                    /**
                     * Calls GetNatIpInfo.
                     * @param request GetNatIpInfoRouterRequest message or plain object
                     * @returns Promise
                     */
                    public getNatIpInfo(request: google.cloud.compute.v1.IGetNatIpInfoRouterRequest): Promise<google.cloud.compute.v1.NatIpInfoResponse>;

                    /**
                     * Calls GetNatMappingInfo.
                     * @param request GetNatMappingInfoRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VmEndpointNatMappingsList
                     */
                    public getNatMappingInfo(request: google.cloud.compute.v1.IGetNatMappingInfoRoutersRequest, callback: google.cloud.compute.v1.Routers.GetNatMappingInfoCallback): void;

                    /**
                     * Calls GetNatMappingInfo.
                     * @param request GetNatMappingInfoRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public getNatMappingInfo(request: google.cloud.compute.v1.IGetNatMappingInfoRoutersRequest): Promise<google.cloud.compute.v1.VmEndpointNatMappingsList>;

                    /**
                     * Calls GetRoutePolicy.
                     * @param request GetRoutePolicyRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersGetRoutePolicyResponse
                     */
                    public getRoutePolicy(request: google.cloud.compute.v1.IGetRoutePolicyRouterRequest, callback: google.cloud.compute.v1.Routers.GetRoutePolicyCallback): void;

                    /**
                     * Calls GetRoutePolicy.
                     * @param request GetRoutePolicyRouterRequest message or plain object
                     * @returns Promise
                     */
                    public getRoutePolicy(request: google.cloud.compute.v1.IGetRoutePolicyRouterRequest): Promise<google.cloud.compute.v1.RoutersGetRoutePolicyResponse>;

                    /**
                     * Calls GetRouterStatus.
                     * @param request GetRouterStatusRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RouterStatusResponse
                     */
                    public getRouterStatus(request: google.cloud.compute.v1.IGetRouterStatusRouterRequest, callback: google.cloud.compute.v1.Routers.GetRouterStatusCallback): void;

                    /**
                     * Calls GetRouterStatus.
                     * @param request GetRouterStatusRouterRequest message or plain object
                     * @returns Promise
                     */
                    public getRouterStatus(request: google.cloud.compute.v1.IGetRouterStatusRouterRequest): Promise<google.cloud.compute.v1.RouterStatusResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRouterRequest, callback: google.cloud.compute.v1.Routers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRouterRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRouterRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RouterList
                     */
                    public list(request: google.cloud.compute.v1.IListRoutersRequest, callback: google.cloud.compute.v1.Routers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRoutersRequest): Promise<google.cloud.compute.v1.RouterList>;

                    /**
                     * Calls ListBgpRoutes.
                     * @param request ListBgpRoutesRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersListBgpRoutes
                     */
                    public listBgpRoutes(request: google.cloud.compute.v1.IListBgpRoutesRoutersRequest, callback: google.cloud.compute.v1.Routers.ListBgpRoutesCallback): void;

                    /**
                     * Calls ListBgpRoutes.
                     * @param request ListBgpRoutesRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public listBgpRoutes(request: google.cloud.compute.v1.IListBgpRoutesRoutersRequest): Promise<google.cloud.compute.v1.RoutersListBgpRoutes>;

                    /**
                     * Calls ListRoutePolicies.
                     * @param request ListRoutePoliciesRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersListRoutePolicies
                     */
                    public listRoutePolicies(request: google.cloud.compute.v1.IListRoutePoliciesRoutersRequest, callback: google.cloud.compute.v1.Routers.ListRoutePoliciesCallback): void;

                    /**
                     * Calls ListRoutePolicies.
                     * @param request ListRoutePoliciesRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public listRoutePolicies(request: google.cloud.compute.v1.IListRoutePoliciesRoutersRequest): Promise<google.cloud.compute.v1.RoutersListRoutePolicies>;

                    /**
                     * Calls Patch.
                     * @param request PatchRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRouterRequest, callback: google.cloud.compute.v1.Routers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRouterRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchRouterRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchRoutePolicy.
                     * @param request PatchRoutePolicyRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRoutePolicy(request: google.cloud.compute.v1.IPatchRoutePolicyRouterRequest, callback: google.cloud.compute.v1.Routers.PatchRoutePolicyCallback): void;

                    /**
                     * Calls PatchRoutePolicy.
                     * @param request PatchRoutePolicyRouterRequest message or plain object
                     * @returns Promise
                     */
                    public patchRoutePolicy(request: google.cloud.compute.v1.IPatchRoutePolicyRouterRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Preview.
                     * @param request PreviewRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersPreviewResponse
                     */
                    public preview(request: google.cloud.compute.v1.IPreviewRouterRequest, callback: google.cloud.compute.v1.Routers.PreviewCallback): void;

                    /**
                     * Calls Preview.
                     * @param request PreviewRouterRequest message or plain object
                     * @returns Promise
                     */
                    public preview(request: google.cloud.compute.v1.IPreviewRouterRequest): Promise<google.cloud.compute.v1.RoutersPreviewResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRouterRequest, callback: google.cloud.compute.v1.Routers.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRouterRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateRouterRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls UpdateRoutePolicy.
                     * @param request UpdateRoutePolicyRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateRoutePolicy(request: google.cloud.compute.v1.IUpdateRoutePolicyRouterRequest, callback: google.cloud.compute.v1.Routers.UpdateRoutePolicyCallback): void;

                    /**
                     * Calls UpdateRoutePolicy.
                     * @param request UpdateRoutePolicyRouterRequest message or plain object
                     * @returns Promise
                     */
                    public updateRoutePolicy(request: google.cloud.compute.v1.IUpdateRoutePolicyRouterRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace Routers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] RouterAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.RouterAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|deleteRoutePolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteRoutePolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|get}.
                     * @param error Error, if any
                     * @param [response] Router
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Router) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|getNatIpInfo}.
                     * @param error Error, if any
                     * @param [response] NatIpInfoResponse
                     */
                    type GetNatIpInfoCallback = (error: (Error|null), response?: google.cloud.compute.v1.NatIpInfoResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|getNatMappingInfo}.
                     * @param error Error, if any
                     * @param [response] VmEndpointNatMappingsList
                     */
                    type GetNatMappingInfoCallback = (error: (Error|null), response?: google.cloud.compute.v1.VmEndpointNatMappingsList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|getRoutePolicy}.
                     * @param error Error, if any
                     * @param [response] RoutersGetRoutePolicyResponse
                     */
                    type GetRoutePolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.RoutersGetRoutePolicyResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|getRouterStatus}.
                     * @param error Error, if any
                     * @param [response] RouterStatusResponse
                     */
                    type GetRouterStatusCallback = (error: (Error|null), response?: google.cloud.compute.v1.RouterStatusResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|list}.
                     * @param error Error, if any
                     * @param [response] RouterList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.RouterList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|listBgpRoutes}.
                     * @param error Error, if any
                     * @param [response] RoutersListBgpRoutes
                     */
                    type ListBgpRoutesCallback = (error: (Error|null), response?: google.cloud.compute.v1.RoutersListBgpRoutes) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|listRoutePolicies}.
                     * @param error Error, if any
                     * @param [response] RoutersListRoutePolicies
                     */
                    type ListRoutePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1.RoutersListRoutePolicies) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|patchRoutePolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRoutePolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|preview}.
                     * @param error Error, if any
                     * @param [response] RoutersPreviewResponse
                     */
                    type PreviewCallback = (error: (Error|null), response?: google.cloud.compute.v1.RoutersPreviewResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routers|updateRoutePolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateRoutePolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a Routes */
                class Routes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Routes 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 Routes 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): Routes;

                    /**
                     * Calls Delete.
                     * @param request DeleteRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRouteRequest, callback: google.cloud.compute.v1.Routes.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRouteRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteRouteRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Route
                     */
                    public get(request: google.cloud.compute.v1.IGetRouteRequest, callback: google.cloud.compute.v1.Routes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRouteRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetRouteRequest): Promise<google.cloud.compute.v1.Route>;

                    /**
                     * Calls Insert.
                     * @param request InsertRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRouteRequest, callback: google.cloud.compute.v1.Routes.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRouteRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertRouteRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRoutesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RouteList
                     */
                    public list(request: google.cloud.compute.v1.IListRoutesRequest, callback: google.cloud.compute.v1.Routes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRoutesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListRoutesRequest): Promise<google.cloud.compute.v1.RouteList>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRouteRequest, callback: google.cloud.compute.v1.Routes.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRouteRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsRouteRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace Routes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routes|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routes|get}.
                     * @param error Error, if any
                     * @param [response] Route
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Route) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routes|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routes|list}.
                     * @param error Error, if any
                     * @param [response] RouteList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.RouteList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Routes|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a SecurityPolicies */
                class SecurityPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SecurityPolicies 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 SecurityPolicies 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): SecurityPolicies;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1.IAddRuleSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPoliciesAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListSecurityPoliciesRequest, callback: google.cloud.compute.v1.SecurityPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListSecurityPoliciesRequest): Promise<google.cloud.compute.v1.SecurityPoliciesAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetSecurityPolicyRequest): Promise<google.cloud.compute.v1.SecurityPolicy>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1.IGetRuleSecurityPolicyRequest): Promise<google.cloud.compute.v1.SecurityPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyList
                     */
                    public list(request: google.cloud.compute.v1.IListSecurityPoliciesRequest, callback: google.cloud.compute.v1.SecurityPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListSecurityPoliciesRequest): Promise<google.cloud.compute.v1.SecurityPolicyList>;

                    /**
                     * Calls ListPreconfiguredExpressionSets.
                     * @param request ListPreconfiguredExpressionSetsSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    public listPreconfiguredExpressionSets(request: google.cloud.compute.v1.IListPreconfiguredExpressionSetsSecurityPoliciesRequest, callback: google.cloud.compute.v1.SecurityPolicies.ListPreconfiguredExpressionSetsCallback): void;

                    /**
                     * Calls ListPreconfiguredExpressionSets.
                     * @param request ListPreconfiguredExpressionSetsSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public listPreconfiguredExpressionSets(request: google.cloud.compute.v1.IListPreconfiguredExpressionSetsSecurityPoliciesRequest): Promise<google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1.IPatchRuleSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1.IRemoveRuleSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsSecurityPolicyRequest, callback: google.cloud.compute.v1.SecurityPolicies.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsSecurityPolicyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace SecurityPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SecurityPoliciesAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPoliciesAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|listPreconfiguredExpressionSets}.
                     * @param error Error, if any
                     * @param [response] SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    type ListPreconfiguredExpressionSetsCallback = (error: (Error|null), response?: google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SecurityPolicies|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a ServiceAttachments */
                class ServiceAttachments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ServiceAttachments 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 ServiceAttachments 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): ServiceAttachments;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListServiceAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ServiceAttachmentAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListServiceAttachmentsRequest, callback: google.cloud.compute.v1.ServiceAttachments.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListServiceAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListServiceAttachmentsRequest): Promise<google.cloud.compute.v1.ServiceAttachmentAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteServiceAttachmentRequest, callback: google.cloud.compute.v1.ServiceAttachments.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteServiceAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ServiceAttachment
                     */
                    public get(request: google.cloud.compute.v1.IGetServiceAttachmentRequest, callback: google.cloud.compute.v1.ServiceAttachments.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetServiceAttachmentRequest): Promise<google.cloud.compute.v1.ServiceAttachment>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyServiceAttachmentRequest, callback: google.cloud.compute.v1.ServiceAttachments.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyServiceAttachmentRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertServiceAttachmentRequest, callback: google.cloud.compute.v1.ServiceAttachments.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertServiceAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListServiceAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ServiceAttachmentList
                     */
                    public list(request: google.cloud.compute.v1.IListServiceAttachmentsRequest, callback: google.cloud.compute.v1.ServiceAttachments.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListServiceAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListServiceAttachmentsRequest): Promise<google.cloud.compute.v1.ServiceAttachmentList>;

                    /**
                     * Calls Patch.
                     * @param request PatchServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchServiceAttachmentRequest, callback: google.cloud.compute.v1.ServiceAttachments.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchServiceAttachmentRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyServiceAttachmentRequest, callback: google.cloud.compute.v1.ServiceAttachments.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyServiceAttachmentRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsServiceAttachmentRequest, callback: google.cloud.compute.v1.ServiceAttachments.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsServiceAttachmentRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace ServiceAttachments {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] ServiceAttachmentAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ServiceAttachmentAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|get}.
                     * @param error Error, if any
                     * @param [response] ServiceAttachment
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.ServiceAttachment) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|list}.
                     * @param error Error, if any
                     * @param [response] ServiceAttachmentList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ServiceAttachmentList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ServiceAttachments|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a SnapshotSettingsService */
                class SnapshotSettingsService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SnapshotSettingsService 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 SnapshotSettingsService 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): SnapshotSettingsService;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SnapshotSettings
                     */
                    public get(request: google.cloud.compute.v1.IGetSnapshotSettingRequest, callback: google.cloud.compute.v1.SnapshotSettingsService.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotSettingRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetSnapshotSettingRequest): Promise<google.cloud.compute.v1.SnapshotSettings>;

                    /**
                     * Calls Patch.
                     * @param request PatchSnapshotSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchSnapshotSettingRequest, callback: google.cloud.compute.v1.SnapshotSettingsService.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchSnapshotSettingRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchSnapshotSettingRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace SnapshotSettingsService {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SnapshotSettingsService|get}.
                     * @param error Error, if any
                     * @param [response] SnapshotSettings
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.SnapshotSettings) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SnapshotSettingsService|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a Snapshots */
                class Snapshots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Snapshots 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 Snapshots 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): Snapshots;

                    /**
                     * Calls Delete.
                     * @param request DeleteSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSnapshotRequest, callback: google.cloud.compute.v1.Snapshots.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Snapshot
                     */
                    public get(request: google.cloud.compute.v1.IGetSnapshotRequest, callback: google.cloud.compute.v1.Snapshots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetSnapshotRequest): Promise<google.cloud.compute.v1.Snapshot>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicySnapshotRequest, callback: google.cloud.compute.v1.Snapshots.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicySnapshotRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSnapshotRequest, callback: google.cloud.compute.v1.Snapshots.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SnapshotList
                     */
                    public list(request: google.cloud.compute.v1.IListSnapshotsRequest, callback: google.cloud.compute.v1.Snapshots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListSnapshotsRequest): Promise<google.cloud.compute.v1.SnapshotList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicySnapshotRequest, callback: google.cloud.compute.v1.Snapshots.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicySnapshotRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsSnapshotRequest, callback: google.cloud.compute.v1.Snapshots.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsSnapshotRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsSnapshotRequest, callback: google.cloud.compute.v1.Snapshots.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsSnapshotRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace Snapshots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Snapshots|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Snapshots|get}.
                     * @param error Error, if any
                     * @param [response] Snapshot
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Snapshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Snapshots|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Snapshots|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Snapshots|list}.
                     * @param error Error, if any
                     * @param [response] SnapshotList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SnapshotList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Snapshots|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Snapshots|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Snapshots|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a SslCertificates */
                class SslCertificates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SslCertificates 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 SslCertificates 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): SslCertificates;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSslCertificatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificateAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListSslCertificatesRequest, callback: google.cloud.compute.v1.SslCertificates.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSslCertificatesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListSslCertificatesRequest): Promise<google.cloud.compute.v1.SslCertificateAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSslCertificateRequest, callback: google.cloud.compute.v1.SslCertificates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSslCertificateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificate
                     */
                    public get(request: google.cloud.compute.v1.IGetSslCertificateRequest, callback: google.cloud.compute.v1.SslCertificates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetSslCertificateRequest): Promise<google.cloud.compute.v1.SslCertificate>;

                    /**
                     * Calls Insert.
                     * @param request InsertSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSslCertificateRequest, callback: google.cloud.compute.v1.SslCertificates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSslCertificateRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSslCertificatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificateList
                     */
                    public list(request: google.cloud.compute.v1.IListSslCertificatesRequest, callback: google.cloud.compute.v1.SslCertificates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSslCertificatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListSslCertificatesRequest): Promise<google.cloud.compute.v1.SslCertificateList>;
                }

                namespace SslCertificates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslCertificates|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SslCertificateAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslCertificateAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslCertificates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslCertificates|get}.
                     * @param error Error, if any
                     * @param [response] SslCertificate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslCertificate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslCertificates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslCertificates|list}.
                     * @param error Error, if any
                     * @param [response] SslCertificateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslCertificateList) => void;
                }

                /** Represents a SslPolicies */
                class SslPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SslPolicies 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 SslPolicies 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): SslPolicies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListSslPoliciesRequest, callback: google.cloud.compute.v1.SslPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListSslPoliciesRequest): Promise<google.cloud.compute.v1.SslPoliciesAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSslPolicyRequest, callback: google.cloud.compute.v1.SslPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSslPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPolicy
                     */
                    public get(request: google.cloud.compute.v1.IGetSslPolicyRequest, callback: google.cloud.compute.v1.SslPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetSslPolicyRequest): Promise<google.cloud.compute.v1.SslPolicy>;

                    /**
                     * Calls Insert.
                     * @param request InsertSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSslPolicyRequest, callback: google.cloud.compute.v1.SslPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSslPolicyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesList
                     */
                    public list(request: google.cloud.compute.v1.IListSslPoliciesRequest, callback: google.cloud.compute.v1.SslPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListSslPoliciesRequest): Promise<google.cloud.compute.v1.SslPoliciesList>;

                    /**
                     * Calls ListAvailableFeatures.
                     * @param request ListAvailableFeaturesSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesListAvailableFeaturesResponse
                     */
                    public listAvailableFeatures(request: google.cloud.compute.v1.IListAvailableFeaturesSslPoliciesRequest, callback: google.cloud.compute.v1.SslPolicies.ListAvailableFeaturesCallback): void;

                    /**
                     * Calls ListAvailableFeatures.
                     * @param request ListAvailableFeaturesSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public listAvailableFeatures(request: google.cloud.compute.v1.IListAvailableFeaturesSslPoliciesRequest): Promise<google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchSslPolicyRequest, callback: google.cloud.compute.v1.SslPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchSslPolicyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace SslPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslPoliciesAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SslPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslPoliciesList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslPolicies|listAvailableFeatures}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesListAvailableFeaturesResponse
                     */
                    type ListAvailableFeaturesCallback = (error: (Error|null), response?: google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.SslPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a StoragePoolTypes */
                class StoragePoolTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new StoragePoolTypes 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 StoragePoolTypes 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): StoragePoolTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListStoragePoolTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListStoragePoolTypesRequest, callback: google.cloud.compute.v1.StoragePoolTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListStoragePoolTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListStoragePoolTypesRequest): Promise<google.cloud.compute.v1.StoragePoolTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetStoragePoolTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolType
                     */
                    public get(request: google.cloud.compute.v1.IGetStoragePoolTypeRequest, callback: google.cloud.compute.v1.StoragePoolTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetStoragePoolTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetStoragePoolTypeRequest): Promise<google.cloud.compute.v1.StoragePoolType>;

                    /**
                     * Calls List.
                     * @param request ListStoragePoolTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolTypeList
                     */
                    public list(request: google.cloud.compute.v1.IListStoragePoolTypesRequest, callback: google.cloud.compute.v1.StoragePoolTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListStoragePoolTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListStoragePoolTypesRequest): Promise<google.cloud.compute.v1.StoragePoolTypeList>;
                }

                namespace StoragePoolTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePoolTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] StoragePoolTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.StoragePoolTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePoolTypes|get}.
                     * @param error Error, if any
                     * @param [response] StoragePoolType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.StoragePoolType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePoolTypes|list}.
                     * @param error Error, if any
                     * @param [response] StoragePoolTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.StoragePoolTypeList) => void;
                }

                /** Represents a StoragePools */
                class StoragePools extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new StoragePools 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 StoragePools 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): StoragePools;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListStoragePoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListStoragePoolsRequest, callback: google.cloud.compute.v1.StoragePools.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListStoragePoolsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListStoragePoolsRequest): Promise<google.cloud.compute.v1.StoragePoolAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteStoragePoolRequest, callback: google.cloud.compute.v1.StoragePools.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteStoragePoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePool
                     */
                    public get(request: google.cloud.compute.v1.IGetStoragePoolRequest, callback: google.cloud.compute.v1.StoragePools.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetStoragePoolRequest): Promise<google.cloud.compute.v1.StoragePool>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyStoragePoolRequest, callback: google.cloud.compute.v1.StoragePools.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicyStoragePoolRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertStoragePoolRequest, callback: google.cloud.compute.v1.StoragePools.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertStoragePoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListStoragePoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolList
                     */
                    public list(request: google.cloud.compute.v1.IListStoragePoolsRequest, callback: google.cloud.compute.v1.StoragePools.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListStoragePoolsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListStoragePoolsRequest): Promise<google.cloud.compute.v1.StoragePoolList>;

                    /**
                     * Calls ListDisks.
                     * @param request ListDisksStoragePoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolListDisks
                     */
                    public listDisks(request: google.cloud.compute.v1.IListDisksStoragePoolsRequest, callback: google.cloud.compute.v1.StoragePools.ListDisksCallback): void;

                    /**
                     * Calls ListDisks.
                     * @param request ListDisksStoragePoolsRequest message or plain object
                     * @returns Promise
                     */
                    public listDisks(request: google.cloud.compute.v1.IListDisksStoragePoolsRequest): Promise<google.cloud.compute.v1.StoragePoolListDisks>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyStoragePoolRequest, callback: google.cloud.compute.v1.StoragePools.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicyStoragePoolRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsStoragePoolRequest, callback: google.cloud.compute.v1.StoragePools.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsStoragePoolRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateStoragePoolRequest, callback: google.cloud.compute.v1.StoragePools.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateStoragePoolRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace StoragePools {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] StoragePoolAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.StoragePoolAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|get}.
                     * @param error Error, if any
                     * @param [response] StoragePool
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.StoragePool) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|list}.
                     * @param error Error, if any
                     * @param [response] StoragePoolList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.StoragePoolList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|listDisks}.
                     * @param error Error, if any
                     * @param [response] StoragePoolListDisks
                     */
                    type ListDisksCallback = (error: (Error|null), response?: google.cloud.compute.v1.StoragePoolListDisks) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.StoragePools|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a Subnetworks */
                class Subnetworks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Subnetworks 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 Subnetworks 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): Subnetworks;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSubnetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SubnetworkAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListSubnetworksRequest, callback: google.cloud.compute.v1.Subnetworks.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSubnetworksRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListSubnetworksRequest): Promise<google.cloud.compute.v1.SubnetworkAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteSubnetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls ExpandIpCidrRange.
                     * @param request ExpandIpCidrRangeSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public expandIpCidrRange(request: google.cloud.compute.v1.IExpandIpCidrRangeSubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.ExpandIpCidrRangeCallback): void;

                    /**
                     * Calls ExpandIpCidrRange.
                     * @param request ExpandIpCidrRangeSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public expandIpCidrRange(request: google.cloud.compute.v1.IExpandIpCidrRangeSubnetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Subnetwork
                     */
                    public get(request: google.cloud.compute.v1.IGetSubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetSubnetworkRequest): Promise<google.cloud.compute.v1.Subnetwork>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicySubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1.IGetIamPolicySubnetworkRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertSubnetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSubnetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SubnetworkList
                     */
                    public list(request: google.cloud.compute.v1.IListSubnetworksRequest, callback: google.cloud.compute.v1.Subnetworks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSubnetworksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListSubnetworksRequest): Promise<google.cloud.compute.v1.SubnetworkList>;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableSubnetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UsableSubnetworksAggregatedList
                     */
                    public listUsable(request: google.cloud.compute.v1.IListUsableSubnetworksRequest, callback: google.cloud.compute.v1.Subnetworks.ListUsableCallback): void;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableSubnetworksRequest message or plain object
                     * @returns Promise
                     */
                    public listUsable(request: google.cloud.compute.v1.IListUsableSubnetworksRequest): Promise<google.cloud.compute.v1.UsableSubnetworksAggregatedList>;

                    /**
                     * Calls Patch.
                     * @param request PatchSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchSubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchSubnetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicySubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1.ISetIamPolicySubnetworkRequest): Promise<google.cloud.compute.v1.Policy>;

                    /**
                     * Calls SetPrivateIpGoogleAccess.
                     * @param request SetPrivateIpGoogleAccessSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setPrivateIpGoogleAccess(request: google.cloud.compute.v1.ISetPrivateIpGoogleAccessSubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.SetPrivateIpGoogleAccessCallback): void;

                    /**
                     * Calls SetPrivateIpGoogleAccess.
                     * @param request SetPrivateIpGoogleAccessSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public setPrivateIpGoogleAccess(request: google.cloud.compute.v1.ISetPrivateIpGoogleAccessSubnetworkRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsSubnetworkRequest, callback: google.cloud.compute.v1.Subnetworks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsSubnetworkRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace Subnetworks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SubnetworkAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SubnetworkAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|expandIpCidrRange}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ExpandIpCidrRangeCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|get}.
                     * @param error Error, if any
                     * @param [response] Subnetwork
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Subnetwork) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|list}.
                     * @param error Error, if any
                     * @param [response] SubnetworkList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.SubnetworkList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|listUsable}.
                     * @param error Error, if any
                     * @param [response] UsableSubnetworksAggregatedList
                     */
                    type ListUsableCallback = (error: (Error|null), response?: google.cloud.compute.v1.UsableSubnetworksAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|setPrivateIpGoogleAccess}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetPrivateIpGoogleAccessCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Subnetworks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a TargetGrpcProxies */
                class TargetGrpcProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetGrpcProxies 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 TargetGrpcProxies 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): TargetGrpcProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetGrpcProxyRequest, callback: google.cloud.compute.v1.TargetGrpcProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetGrpcProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetGrpcProxy
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetGrpcProxyRequest, callback: google.cloud.compute.v1.TargetGrpcProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetGrpcProxyRequest): Promise<google.cloud.compute.v1.TargetGrpcProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetGrpcProxyRequest, callback: google.cloud.compute.v1.TargetGrpcProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetGrpcProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetGrpcProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetGrpcProxyList
                     */
                    public list(request: google.cloud.compute.v1.IListTargetGrpcProxiesRequest, callback: google.cloud.compute.v1.TargetGrpcProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetGrpcProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListTargetGrpcProxiesRequest): Promise<google.cloud.compute.v1.TargetGrpcProxyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchTargetGrpcProxyRequest, callback: google.cloud.compute.v1.TargetGrpcProxies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchTargetGrpcProxyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace TargetGrpcProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetGrpcProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetGrpcProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetGrpcProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetGrpcProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetGrpcProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetGrpcProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetGrpcProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetGrpcProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetGrpcProxies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a TargetHttpProxies */
                class TargetHttpProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetHttpProxies 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 TargetHttpProxies 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): TargetHttpProxies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetHttpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetHttpProxiesRequest, callback: google.cloud.compute.v1.TargetHttpProxies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetHttpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetHttpProxiesRequest): Promise<google.cloud.compute.v1.TargetHttpProxyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetHttpProxyRequest, callback: google.cloud.compute.v1.TargetHttpProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetHttpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxy
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetHttpProxyRequest, callback: google.cloud.compute.v1.TargetHttpProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetHttpProxyRequest): Promise<google.cloud.compute.v1.TargetHttpProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetHttpProxyRequest, callback: google.cloud.compute.v1.TargetHttpProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetHttpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetHttpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxyList
                     */
                    public list(request: google.cloud.compute.v1.IListTargetHttpProxiesRequest, callback: google.cloud.compute.v1.TargetHttpProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetHttpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListTargetHttpProxiesRequest): Promise<google.cloud.compute.v1.TargetHttpProxyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchTargetHttpProxyRequest, callback: google.cloud.compute.v1.TargetHttpProxies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchTargetHttpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUrlMap(request: google.cloud.compute.v1.ISetUrlMapTargetHttpProxyRequest, callback: google.cloud.compute.v1.TargetHttpProxies.SetUrlMapCallback): void;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setUrlMap(request: google.cloud.compute.v1.ISetUrlMapTargetHttpProxyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace TargetHttpProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpProxies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpProxyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpProxies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpProxies|setUrlMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUrlMapCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a TargetHttpsProxies */
                class TargetHttpsProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetHttpsProxies 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 TargetHttpsProxies 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): TargetHttpsProxies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetHttpsProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetHttpsProxiesRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetHttpsProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetHttpsProxiesRequest): Promise<google.cloud.compute.v1.TargetHttpsProxyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxy
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.TargetHttpsProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetHttpsProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxyList
                     */
                    public list(request: google.cloud.compute.v1.IListTargetHttpsProxiesRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetHttpsProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListTargetHttpsProxiesRequest): Promise<google.cloud.compute.v1.TargetHttpsProxyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetCertificateMap.
                     * @param request SetCertificateMapTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setCertificateMap(request: google.cloud.compute.v1.ISetCertificateMapTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.SetCertificateMapCallback): void;

                    /**
                     * Calls SetCertificateMap.
                     * @param request SetCertificateMapTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setCertificateMap(request: google.cloud.compute.v1.ISetCertificateMapTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetQuicOverride.
                     * @param request SetQuicOverrideTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setQuicOverride(request: google.cloud.compute.v1.ISetQuicOverrideTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.SetQuicOverrideCallback): void;

                    /**
                     * Calls SetQuicOverride.
                     * @param request SetQuicOverrideTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setQuicOverride(request: google.cloud.compute.v1.ISetQuicOverrideTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslCertificates(request: google.cloud.compute.v1.ISetSslCertificatesTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.SetSslCertificatesCallback): void;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslCertificates(request: google.cloud.compute.v1.ISetSslCertificatesTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetSslPolicy.
                     * @param request SetSslPolicyTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslPolicy(request: google.cloud.compute.v1.ISetSslPolicyTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.SetSslPolicyCallback): void;

                    /**
                     * Calls SetSslPolicy.
                     * @param request SetSslPolicyTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslPolicy(request: google.cloud.compute.v1.ISetSslPolicyTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUrlMap(request: google.cloud.compute.v1.ISetUrlMapTargetHttpsProxyRequest, callback: google.cloud.compute.v1.TargetHttpsProxies.SetUrlMapCallback): void;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setUrlMap(request: google.cloud.compute.v1.ISetUrlMapTargetHttpsProxyRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace TargetHttpsProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpsProxyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpsProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetHttpsProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|setCertificateMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetCertificateMapCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|setQuicOverride}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetQuicOverrideCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|setSslCertificates}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslCertificatesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|setSslPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetHttpsProxies|setUrlMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUrlMapCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a TargetInstances */
                class TargetInstances extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetInstances 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 TargetInstances 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): TargetInstances;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetInstanceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetInstancesRequest, callback: google.cloud.compute.v1.TargetInstances.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetInstancesRequest): Promise<google.cloud.compute.v1.TargetInstanceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetInstanceRequest, callback: google.cloud.compute.v1.TargetInstances.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetInstance
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetInstanceRequest, callback: google.cloud.compute.v1.TargetInstances.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetInstanceRequest): Promise<google.cloud.compute.v1.TargetInstance>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetInstanceRequest, callback: google.cloud.compute.v1.TargetInstances.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetInstanceList
                     */
                    public list(request: google.cloud.compute.v1.IListTargetInstancesRequest, callback: google.cloud.compute.v1.TargetInstances.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListTargetInstancesRequest): Promise<google.cloud.compute.v1.TargetInstanceList>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyTargetInstanceRequest, callback: google.cloud.compute.v1.TargetInstances.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyTargetInstanceRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsTargetInstanceRequest, callback: google.cloud.compute.v1.TargetInstances.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsTargetInstanceRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace TargetInstances {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetInstances|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetInstanceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetInstanceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetInstances|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetInstances|get}.
                     * @param error Error, if any
                     * @param [response] TargetInstance
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetInstance) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetInstances|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetInstances|list}.
                     * @param error Error, if any
                     * @param [response] TargetInstanceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetInstanceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetInstances|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetInstances|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a TargetPools */
                class TargetPools extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetPools 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 TargetPools 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): TargetPools;

                    /**
                     * Calls AddHealthCheck.
                     * @param request AddHealthCheckTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addHealthCheck(request: google.cloud.compute.v1.IAddHealthCheckTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.AddHealthCheckCallback): void;

                    /**
                     * Calls AddHealthCheck.
                     * @param request AddHealthCheckTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public addHealthCheck(request: google.cloud.compute.v1.IAddHealthCheckTargetPoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AddInstance.
                     * @param request AddInstanceTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addInstance(request: google.cloud.compute.v1.IAddInstanceTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.AddInstanceCallback): void;

                    /**
                     * Calls AddInstance.
                     * @param request AddInstanceTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public addInstance(request: google.cloud.compute.v1.IAddInstanceTargetPoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetPoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetPoolAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetPoolsRequest, callback: google.cloud.compute.v1.TargetPools.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetPoolsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetPoolsRequest): Promise<google.cloud.compute.v1.TargetPoolAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetPoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetPool
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetPoolRequest): Promise<google.cloud.compute.v1.TargetPool>;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetPoolInstanceHealth
                     */
                    public getHealth(request: google.cloud.compute.v1.IGetHealthTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.GetHealthCallback): void;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public getHealth(request: google.cloud.compute.v1.IGetHealthTargetPoolRequest): Promise<google.cloud.compute.v1.TargetPoolInstanceHealth>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetPoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetPoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetPoolList
                     */
                    public list(request: google.cloud.compute.v1.IListTargetPoolsRequest, callback: google.cloud.compute.v1.TargetPools.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetPoolsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListTargetPoolsRequest): Promise<google.cloud.compute.v1.TargetPoolList>;

                    /**
                     * Calls RemoveHealthCheck.
                     * @param request RemoveHealthCheckTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeHealthCheck(request: google.cloud.compute.v1.IRemoveHealthCheckTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.RemoveHealthCheckCallback): void;

                    /**
                     * Calls RemoveHealthCheck.
                     * @param request RemoveHealthCheckTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public removeHealthCheck(request: google.cloud.compute.v1.IRemoveHealthCheckTargetPoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls RemoveInstance.
                     * @param request RemoveInstanceTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeInstance(request: google.cloud.compute.v1.IRemoveInstanceTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.RemoveInstanceCallback): void;

                    /**
                     * Calls RemoveInstance.
                     * @param request RemoveInstanceTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public removeInstance(request: google.cloud.compute.v1.IRemoveInstanceTargetPoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetBackup.
                     * @param request SetBackupTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setBackup(request: google.cloud.compute.v1.ISetBackupTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.SetBackupCallback): void;

                    /**
                     * Calls SetBackup.
                     * @param request SetBackupTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public setBackup(request: google.cloud.compute.v1.ISetBackupTargetPoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1.ISetSecurityPolicyTargetPoolRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsTargetPoolRequest, callback: google.cloud.compute.v1.TargetPools.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsTargetPoolRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace TargetPools {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|addHealthCheck}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddHealthCheckCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|addInstance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddInstanceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetPoolAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetPoolAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|get}.
                     * @param error Error, if any
                     * @param [response] TargetPool
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetPool) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|getHealth}.
                     * @param error Error, if any
                     * @param [response] TargetPoolInstanceHealth
                     */
                    type GetHealthCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetPoolInstanceHealth) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|list}.
                     * @param error Error, if any
                     * @param [response] TargetPoolList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetPoolList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|removeHealthCheck}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveHealthCheckCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|removeInstance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveInstanceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|setBackup}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetBackupCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetPools|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a TargetSslProxies */
                class TargetSslProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetSslProxies 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 TargetSslProxies 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): TargetSslProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetSslProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetSslProxy
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetSslProxyRequest): Promise<google.cloud.compute.v1.TargetSslProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetSslProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetSslProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetSslProxyList
                     */
                    public list(request: google.cloud.compute.v1.IListTargetSslProxiesRequest, callback: google.cloud.compute.v1.TargetSslProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetSslProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListTargetSslProxiesRequest): Promise<google.cloud.compute.v1.TargetSslProxyList>;

                    /**
                     * Calls SetBackendService.
                     * @param request SetBackendServiceTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setBackendService(request: google.cloud.compute.v1.ISetBackendServiceTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.SetBackendServiceCallback): void;

                    /**
                     * Calls SetBackendService.
                     * @param request SetBackendServiceTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setBackendService(request: google.cloud.compute.v1.ISetBackendServiceTargetSslProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetCertificateMap.
                     * @param request SetCertificateMapTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setCertificateMap(request: google.cloud.compute.v1.ISetCertificateMapTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.SetCertificateMapCallback): void;

                    /**
                     * Calls SetCertificateMap.
                     * @param request SetCertificateMapTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setCertificateMap(request: google.cloud.compute.v1.ISetCertificateMapTargetSslProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetProxyHeader.
                     * @param request SetProxyHeaderTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setProxyHeader(request: google.cloud.compute.v1.ISetProxyHeaderTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.SetProxyHeaderCallback): void;

                    /**
                     * Calls SetProxyHeader.
                     * @param request SetProxyHeaderTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setProxyHeader(request: google.cloud.compute.v1.ISetProxyHeaderTargetSslProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslCertificates(request: google.cloud.compute.v1.ISetSslCertificatesTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.SetSslCertificatesCallback): void;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslCertificates(request: google.cloud.compute.v1.ISetSslCertificatesTargetSslProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetSslPolicy.
                     * @param request SetSslPolicyTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslPolicy(request: google.cloud.compute.v1.ISetSslPolicyTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.SetSslPolicyCallback): void;

                    /**
                     * Calls SetSslPolicy.
                     * @param request SetSslPolicyTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslPolicy(request: google.cloud.compute.v1.ISetSslPolicyTargetSslProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsTargetSslProxyRequest, callback: google.cloud.compute.v1.TargetSslProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsTargetSslProxyRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace TargetSslProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetSslProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetSslProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetSslProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetSslProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|setBackendService}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetBackendServiceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|setCertificateMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetCertificateMapCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|setProxyHeader}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetProxyHeaderCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|setSslCertificates}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslCertificatesCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|setSslPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetSslProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a TargetTcpProxies */
                class TargetTcpProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetTcpProxies 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 TargetTcpProxies 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): TargetTcpProxies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetTcpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetTcpProxiesRequest, callback: google.cloud.compute.v1.TargetTcpProxies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetTcpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetTcpProxiesRequest): Promise<google.cloud.compute.v1.TargetTcpProxyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetTcpProxyRequest, callback: google.cloud.compute.v1.TargetTcpProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetTcpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxy
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetTcpProxyRequest, callback: google.cloud.compute.v1.TargetTcpProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetTcpProxyRequest): Promise<google.cloud.compute.v1.TargetTcpProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetTcpProxyRequest, callback: google.cloud.compute.v1.TargetTcpProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetTcpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetTcpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxyList
                     */
                    public list(request: google.cloud.compute.v1.IListTargetTcpProxiesRequest, callback: google.cloud.compute.v1.TargetTcpProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetTcpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListTargetTcpProxiesRequest): Promise<google.cloud.compute.v1.TargetTcpProxyList>;

                    /**
                     * Calls SetBackendService.
                     * @param request SetBackendServiceTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setBackendService(request: google.cloud.compute.v1.ISetBackendServiceTargetTcpProxyRequest, callback: google.cloud.compute.v1.TargetTcpProxies.SetBackendServiceCallback): void;

                    /**
                     * Calls SetBackendService.
                     * @param request SetBackendServiceTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setBackendService(request: google.cloud.compute.v1.ISetBackendServiceTargetTcpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls SetProxyHeader.
                     * @param request SetProxyHeaderTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setProxyHeader(request: google.cloud.compute.v1.ISetProxyHeaderTargetTcpProxyRequest, callback: google.cloud.compute.v1.TargetTcpProxies.SetProxyHeaderCallback): void;

                    /**
                     * Calls SetProxyHeader.
                     * @param request SetProxyHeaderTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setProxyHeader(request: google.cloud.compute.v1.ISetProxyHeaderTargetTcpProxyRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsTargetTcpProxyRequest, callback: google.cloud.compute.v1.TargetTcpProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsTargetTcpProxyRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace TargetTcpProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetTcpProxies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetTcpProxyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetTcpProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetTcpProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetTcpProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetTcpProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetTcpProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetTcpProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetTcpProxies|setBackendService}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetBackendServiceCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetTcpProxies|setProxyHeader}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetProxyHeaderCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetTcpProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a TargetVpnGateways */
                class TargetVpnGateways extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetVpnGateways 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 TargetVpnGateways 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): TargetVpnGateways;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetVpnGatewayAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetVpnGatewaysRequest, callback: google.cloud.compute.v1.TargetVpnGateways.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListTargetVpnGatewaysRequest): Promise<google.cloud.compute.v1.TargetVpnGatewayAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetVpnGatewayRequest, callback: google.cloud.compute.v1.TargetVpnGateways.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteTargetVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetVpnGateway
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetVpnGatewayRequest, callback: google.cloud.compute.v1.TargetVpnGateways.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetTargetVpnGatewayRequest): Promise<google.cloud.compute.v1.TargetVpnGateway>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetVpnGatewayRequest, callback: google.cloud.compute.v1.TargetVpnGateways.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertTargetVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetVpnGatewayList
                     */
                    public list(request: google.cloud.compute.v1.IListTargetVpnGatewaysRequest, callback: google.cloud.compute.v1.TargetVpnGateways.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListTargetVpnGatewaysRequest): Promise<google.cloud.compute.v1.TargetVpnGatewayList>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsTargetVpnGatewayRequest, callback: google.cloud.compute.v1.TargetVpnGateways.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsTargetVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace TargetVpnGateways {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetVpnGateways|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetVpnGatewayAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetVpnGatewayAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetVpnGateways|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetVpnGateways|get}.
                     * @param error Error, if any
                     * @param [response] TargetVpnGateway
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetVpnGateway) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetVpnGateways|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetVpnGateways|list}.
                     * @param error Error, if any
                     * @param [response] TargetVpnGatewayList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.TargetVpnGatewayList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.TargetVpnGateways|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents an UrlMaps */
                class UrlMaps extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new UrlMaps 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 UrlMaps 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): UrlMaps;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListUrlMapsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapsAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListUrlMapsRequest, callback: google.cloud.compute.v1.UrlMaps.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListUrlMapsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListUrlMapsRequest): Promise<google.cloud.compute.v1.UrlMapsAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteUrlMapRequest, callback: google.cloud.compute.v1.UrlMaps.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMap
                     */
                    public get(request: google.cloud.compute.v1.IGetUrlMapRequest, callback: google.cloud.compute.v1.UrlMaps.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetUrlMapRequest): Promise<google.cloud.compute.v1.UrlMap>;

                    /**
                     * Calls Insert.
                     * @param request InsertUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertUrlMapRequest, callback: google.cloud.compute.v1.UrlMaps.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls InvalidateCache.
                     * @param request InvalidateCacheUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public invalidateCache(request: google.cloud.compute.v1.IInvalidateCacheUrlMapRequest, callback: google.cloud.compute.v1.UrlMaps.InvalidateCacheCallback): void;

                    /**
                     * Calls InvalidateCache.
                     * @param request InvalidateCacheUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public invalidateCache(request: google.cloud.compute.v1.IInvalidateCacheUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListUrlMapsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapList
                     */
                    public list(request: google.cloud.compute.v1.IListUrlMapsRequest, callback: google.cloud.compute.v1.UrlMaps.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListUrlMapsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListUrlMapsRequest): Promise<google.cloud.compute.v1.UrlMapList>;

                    /**
                     * Calls Patch.
                     * @param request PatchUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchUrlMapRequest, callback: google.cloud.compute.v1.UrlMaps.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsUrlMapRequest, callback: google.cloud.compute.v1.UrlMaps.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsUrlMapRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1.IUpdateUrlMapRequest, callback: google.cloud.compute.v1.UrlMaps.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1.IUpdateUrlMapRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Validate.
                     * @param request ValidateUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapsValidateResponse
                     */
                    public validate(request: google.cloud.compute.v1.IValidateUrlMapRequest, callback: google.cloud.compute.v1.UrlMaps.ValidateCallback): void;

                    /**
                     * Calls Validate.
                     * @param request ValidateUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public validate(request: google.cloud.compute.v1.IValidateUrlMapRequest): Promise<google.cloud.compute.v1.UrlMapsValidateResponse>;
                }

                namespace UrlMaps {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] UrlMapsAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.UrlMapsAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|get}.
                     * @param error Error, if any
                     * @param [response] UrlMap
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.UrlMap) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|invalidateCache}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InvalidateCacheCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|list}.
                     * @param error Error, if any
                     * @param [response] UrlMapList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.UrlMapList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.UrlMaps|validate}.
                     * @param error Error, if any
                     * @param [response] UrlMapsValidateResponse
                     */
                    type ValidateCallback = (error: (Error|null), response?: google.cloud.compute.v1.UrlMapsValidateResponse) => void;
                }

                /** Represents a VpnGateways */
                class VpnGateways extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new VpnGateways 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 VpnGateways 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): VpnGateways;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnGatewayAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListVpnGatewaysRequest, callback: google.cloud.compute.v1.VpnGateways.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListVpnGatewaysRequest): Promise<google.cloud.compute.v1.VpnGatewayAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteVpnGatewayRequest, callback: google.cloud.compute.v1.VpnGateways.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnGateway
                     */
                    public get(request: google.cloud.compute.v1.IGetVpnGatewayRequest, callback: google.cloud.compute.v1.VpnGateways.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetVpnGatewayRequest): Promise<google.cloud.compute.v1.VpnGateway>;

                    /**
                     * Calls GetStatus.
                     * @param request GetStatusVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnGatewaysGetStatusResponse
                     */
                    public getStatus(request: google.cloud.compute.v1.IGetStatusVpnGatewayRequest, callback: google.cloud.compute.v1.VpnGateways.GetStatusCallback): void;

                    /**
                     * Calls GetStatus.
                     * @param request GetStatusVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public getStatus(request: google.cloud.compute.v1.IGetStatusVpnGatewayRequest): Promise<google.cloud.compute.v1.VpnGatewaysGetStatusResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertVpnGatewayRequest, callback: google.cloud.compute.v1.VpnGateways.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnGatewayList
                     */
                    public list(request: google.cloud.compute.v1.IListVpnGatewaysRequest, callback: google.cloud.compute.v1.VpnGateways.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListVpnGatewaysRequest): Promise<google.cloud.compute.v1.VpnGatewayList>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsVpnGatewayRequest, callback: google.cloud.compute.v1.VpnGateways.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsVpnGatewayRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsVpnGatewayRequest, callback: google.cloud.compute.v1.VpnGateways.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1.ITestIamPermissionsVpnGatewayRequest): Promise<google.cloud.compute.v1.TestPermissionsResponse>;
                }

                namespace VpnGateways {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnGateways|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] VpnGatewayAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.VpnGatewayAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnGateways|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnGateways|get}.
                     * @param error Error, if any
                     * @param [response] VpnGateway
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.VpnGateway) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnGateways|getStatus}.
                     * @param error Error, if any
                     * @param [response] VpnGatewaysGetStatusResponse
                     */
                    type GetStatusCallback = (error: (Error|null), response?: google.cloud.compute.v1.VpnGatewaysGetStatusResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnGateways|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnGateways|list}.
                     * @param error Error, if any
                     * @param [response] VpnGatewayList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.VpnGatewayList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnGateways|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnGateways|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1.TestPermissionsResponse) => void;
                }

                /** Represents a VpnTunnels */
                class VpnTunnels extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new VpnTunnels 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 VpnTunnels 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): VpnTunnels;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListVpnTunnelsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnTunnelAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListVpnTunnelsRequest, callback: google.cloud.compute.v1.VpnTunnels.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListVpnTunnelsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1.IAggregatedListVpnTunnelsRequest): Promise<google.cloud.compute.v1.VpnTunnelAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteVpnTunnelRequest, callback: google.cloud.compute.v1.VpnTunnels.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteVpnTunnelRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnTunnel
                     */
                    public get(request: google.cloud.compute.v1.IGetVpnTunnelRequest, callback: google.cloud.compute.v1.VpnTunnels.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetVpnTunnelRequest): Promise<google.cloud.compute.v1.VpnTunnel>;

                    /**
                     * Calls Insert.
                     * @param request InsertVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertVpnTunnelRequest, callback: google.cloud.compute.v1.VpnTunnels.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertVpnTunnelRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListVpnTunnelsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnTunnelList
                     */
                    public list(request: google.cloud.compute.v1.IListVpnTunnelsRequest, callback: google.cloud.compute.v1.VpnTunnels.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListVpnTunnelsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListVpnTunnelsRequest): Promise<google.cloud.compute.v1.VpnTunnelList>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsVpnTunnelRequest, callback: google.cloud.compute.v1.VpnTunnels.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1.ISetLabelsVpnTunnelRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace VpnTunnels {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnTunnels|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] VpnTunnelAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1.VpnTunnelAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnTunnels|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnTunnels|get}.
                     * @param error Error, if any
                     * @param [response] VpnTunnel
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.VpnTunnel) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnTunnels|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnTunnels|list}.
                     * @param error Error, if any
                     * @param [response] VpnTunnelList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.VpnTunnelList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.VpnTunnels|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a WireGroups */
                class WireGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new WireGroups 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 WireGroups 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): WireGroups;

                    /**
                     * Calls Delete.
                     * @param request DeleteWireGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteWireGroupRequest, callback: google.cloud.compute.v1.WireGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteWireGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteWireGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetWireGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and WireGroup
                     */
                    public get(request: google.cloud.compute.v1.IGetWireGroupRequest, callback: google.cloud.compute.v1.WireGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetWireGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetWireGroupRequest): Promise<google.cloud.compute.v1.WireGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertWireGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1.IInsertWireGroupRequest, callback: google.cloud.compute.v1.WireGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertWireGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1.IInsertWireGroupRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListWireGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and WireGroupList
                     */
                    public list(request: google.cloud.compute.v1.IListWireGroupsRequest, callback: google.cloud.compute.v1.WireGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListWireGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListWireGroupsRequest): Promise<google.cloud.compute.v1.WireGroupList>;

                    /**
                     * Calls Patch.
                     * @param request PatchWireGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1.IPatchWireGroupRequest, callback: google.cloud.compute.v1.WireGroups.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchWireGroupRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1.IPatchWireGroupRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace WireGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.WireGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.WireGroups|get}.
                     * @param error Error, if any
                     * @param [response] WireGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.WireGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.WireGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.WireGroups|list}.
                     * @param error Error, if any
                     * @param [response] WireGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.WireGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.WireGroups|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a ZoneOperations */
                class ZoneOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ZoneOperations 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 ZoneOperations 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): ZoneOperations;

                    /**
                     * Calls Delete.
                     * @param request DeleteZoneOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeleteZoneOperationResponse
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteZoneOperationRequest, callback: google.cloud.compute.v1.ZoneOperations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteZoneOperationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1.IDeleteZoneOperationRequest): Promise<google.cloud.compute.v1.DeleteZoneOperationResponse>;

                    /**
                     * Calls Get.
                     * @param request GetZoneOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1.IGetZoneOperationRequest, callback: google.cloud.compute.v1.ZoneOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetZoneOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetZoneOperationRequest): Promise<google.cloud.compute.v1.Operation>;

                    /**
                     * Calls List.
                     * @param request ListZoneOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationList
                     */
                    public list(request: google.cloud.compute.v1.IListZoneOperationsRequest, callback: google.cloud.compute.v1.ZoneOperations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListZoneOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListZoneOperationsRequest): Promise<google.cloud.compute.v1.OperationList>;

                    /**
                     * Calls Wait.
                     * @param request WaitZoneOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public wait(request: google.cloud.compute.v1.IWaitZoneOperationRequest, callback: google.cloud.compute.v1.ZoneOperations.WaitCallback): void;

                    /**
                     * Calls Wait.
                     * @param request WaitZoneOperationRequest message or plain object
                     * @returns Promise
                     */
                    public wait(request: google.cloud.compute.v1.IWaitZoneOperationRequest): Promise<google.cloud.compute.v1.Operation>;
                }

                namespace ZoneOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ZoneOperations|delete_}.
                     * @param error Error, if any
                     * @param [response] DeleteZoneOperationResponse
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1.DeleteZoneOperationResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ZoneOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ZoneOperations|list}.
                     * @param error Error, if any
                     * @param [response] OperationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.OperationList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.ZoneOperations|wait}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WaitCallback = (error: (Error|null), response?: google.cloud.compute.v1.Operation) => void;
                }

                /** Represents a Zones */
                class Zones extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Zones 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 Zones 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): Zones;

                    /**
                     * Calls Get.
                     * @param request GetZoneRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Zone
                     */
                    public get(request: google.cloud.compute.v1.IGetZoneRequest, callback: google.cloud.compute.v1.Zones.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetZoneRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1.IGetZoneRequest): Promise<google.cloud.compute.v1.Zone>;

                    /**
                     * Calls List.
                     * @param request ListZonesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ZoneList
                     */
                    public list(request: google.cloud.compute.v1.IListZonesRequest, callback: google.cloud.compute.v1.Zones.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListZonesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1.IListZonesRequest): Promise<google.cloud.compute.v1.ZoneList>;
                }

                namespace Zones {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Zones|get}.
                     * @param error Error, if any
                     * @param [response] Zone
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1.Zone) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1.Zones|list}.
                     * @param error Error, if any
                     * @param [response] ZoneList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1.ZoneList) => void;
                }
            }

            /** Namespace v1beta. */
            namespace v1beta {

                /** Properties of a AWSV4Signature. */
                interface IAWSV4Signature {

                    /** AWSV4Signature accessKey */
                    accessKey?: (string|null);

                    /** AWSV4Signature accessKeyId */
                    accessKeyId?: (string|null);

                    /** AWSV4Signature accessKeyVersion */
                    accessKeyVersion?: (string|null);

                    /** AWSV4Signature originRegion */
                    originRegion?: (string|null);
                }

                /** Represents a AWSV4Signature. */
                class AWSV4Signature implements IAWSV4Signature {

                    /**
                     * Constructs a new AWSV4Signature.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAWSV4Signature);

                    /** AWSV4Signature accessKey. */
                    public accessKey?: (string|null);

                    /** AWSV4Signature accessKeyId. */
                    public accessKeyId?: (string|null);

                    /** AWSV4Signature accessKeyVersion. */
                    public accessKeyVersion?: (string|null);

                    /** AWSV4Signature originRegion. */
                    public originRegion?: (string|null);

                    /**
                     * Creates a new AWSV4Signature instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AWSV4Signature instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAWSV4Signature): google.cloud.compute.v1beta.AWSV4Signature;

                    /**
                     * Encodes the specified AWSV4Signature message. Does not implicitly {@link google.cloud.compute.v1beta.AWSV4Signature.verify|verify} messages.
                     * @param message AWSV4Signature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAWSV4Signature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AWSV4Signature message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AWSV4Signature.verify|verify} messages.
                     * @param message AWSV4Signature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAWSV4Signature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a AWSV4Signature message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AWSV4Signature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AWSV4Signature;

                    /**
                     * Decodes a AWSV4Signature message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AWSV4Signature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AWSV4Signature;

                    /**
                     * Verifies a AWSV4Signature message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a AWSV4Signature message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AWSV4Signature
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AWSV4Signature;

                    /**
                     * Creates a plain object from a AWSV4Signature message. Also converts values to other types if specified.
                     * @param message AWSV4Signature
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AWSV4Signature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AWSV4Signature to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AWSV4Signature
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AbandonInstancesInstanceGroupManagerRequest. */
                interface IAbandonInstancesInstanceGroupManagerRequest {

                    /** AbandonInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** AbandonInstancesInstanceGroupManagerRequest instanceGroupManagersAbandonInstancesRequestResource */
                    instanceGroupManagersAbandonInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersAbandonInstancesRequest|null);

                    /** AbandonInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** AbandonInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** AbandonInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AbandonInstancesInstanceGroupManagerRequest. */
                class AbandonInstancesInstanceGroupManagerRequest implements IAbandonInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new AbandonInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAbandonInstancesInstanceGroupManagerRequest);

                    /** AbandonInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** AbandonInstancesInstanceGroupManagerRequest instanceGroupManagersAbandonInstancesRequestResource. */
                    public instanceGroupManagersAbandonInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersAbandonInstancesRequest|null);

                    /** AbandonInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** AbandonInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** AbandonInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AbandonInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AbandonInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAbandonInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.AbandonInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified AbandonInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AbandonInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message AbandonInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAbandonInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AbandonInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AbandonInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message AbandonInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAbandonInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AbandonInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AbandonInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AbandonInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes an AbandonInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AbandonInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AbandonInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies an AbandonInstancesInstanceGroupManagerRequest message.
                     * @param message Plain 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 AbandonInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AbandonInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AbandonInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an AbandonInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message AbandonInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AbandonInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AbandonInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AbandonInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AbandonInstancesRegionInstanceGroupManagerRequest. */
                interface IAbandonInstancesRegionInstanceGroupManagerRequest {

                    /** AbandonInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersAbandonInstancesRequestResource */
                    regionInstanceGroupManagersAbandonInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersAbandonInstancesRequest|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AbandonInstancesRegionInstanceGroupManagerRequest. */
                class AbandonInstancesRegionInstanceGroupManagerRequest implements IAbandonInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new AbandonInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAbandonInstancesRegionInstanceGroupManagerRequest);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** AbandonInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** AbandonInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** AbandonInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersAbandonInstancesRequestResource. */
                    public regionInstanceGroupManagersAbandonInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersAbandonInstancesRequest|null);

                    /** AbandonInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AbandonInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AbandonInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAbandonInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.AbandonInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified AbandonInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AbandonInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message AbandonInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAbandonInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AbandonInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AbandonInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message AbandonInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAbandonInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AbandonInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AbandonInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AbandonInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an AbandonInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AbandonInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AbandonInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an AbandonInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 AbandonInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AbandonInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AbandonInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an AbandonInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message AbandonInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AbandonInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AbandonInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AbandonInstancesRegionInstanceGroupManagerRequest
                     * @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|null);

                    /** AcceleratorConfig acceleratorType */
                    acceleratorType?: (string|null);
                }

                /** Represents an AcceleratorConfig. */
                class AcceleratorConfig implements IAcceleratorConfig {

                    /**
                     * Constructs a new AcceleratorConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAcceleratorConfig);

                    /** AcceleratorConfig acceleratorCount. */
                    public acceleratorCount?: (number|null);

                    /** AcceleratorConfig acceleratorType. */
                    public acceleratorType?: (string|null);

                    /**
                     * Creates a new AcceleratorConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AcceleratorConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAcceleratorConfig): google.cloud.compute.v1beta.AcceleratorConfig;

                    /**
                     * Encodes the specified AcceleratorConfig message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IAcceleratorConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 an AcceleratorTopologiesInfo. */
                interface IAcceleratorTopologiesInfo {

                    /** AcceleratorTopologiesInfo acceleratorTopologyInfos */
                    acceleratorTopologyInfos?: (google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfo[]|null);
                }

                /** Represents an AcceleratorTopologiesInfo. */
                class AcceleratorTopologiesInfo implements IAcceleratorTopologiesInfo {

                    /**
                     * Constructs a new AcceleratorTopologiesInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAcceleratorTopologiesInfo);

                    /** AcceleratorTopologiesInfo acceleratorTopologyInfos. */
                    public acceleratorTopologyInfos: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfo[];

                    /**
                     * Creates a new AcceleratorTopologiesInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AcceleratorTopologiesInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAcceleratorTopologiesInfo): google.cloud.compute.v1beta.AcceleratorTopologiesInfo;

                    /**
                     * Encodes the specified AcceleratorTopologiesInfo message. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTopologiesInfo.verify|verify} messages.
                     * @param message AcceleratorTopologiesInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAcceleratorTopologiesInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorTopologiesInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTopologiesInfo.verify|verify} messages.
                     * @param message AcceleratorTopologiesInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAcceleratorTopologiesInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AcceleratorTopologiesInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AcceleratorTopologiesInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AcceleratorTopologiesInfo;

                    /**
                     * Decodes an AcceleratorTopologiesInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AcceleratorTopologiesInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AcceleratorTopologiesInfo;

                    /**
                     * Verifies an AcceleratorTopologiesInfo message.
                     * @param message Plain 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 AcceleratorTopologiesInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AcceleratorTopologiesInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AcceleratorTopologiesInfo;

                    /**
                     * Creates a plain object from an AcceleratorTopologiesInfo message. Also converts values to other types if specified.
                     * @param message AcceleratorTopologiesInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AcceleratorTopologiesInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AcceleratorTopologiesInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AcceleratorTopologiesInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AcceleratorTopologiesInfoAcceleratorTopologyInfo. */
                interface IAcceleratorTopologiesInfoAcceleratorTopologyInfo {

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfo acceleratorTopology */
                    acceleratorTopology?: (string|null);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfo infoPerTopologyStates */
                    infoPerTopologyStates?: (google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState[]|null);
                }

                /** Represents an AcceleratorTopologiesInfoAcceleratorTopologyInfo. */
                class AcceleratorTopologiesInfoAcceleratorTopologyInfo implements IAcceleratorTopologiesInfoAcceleratorTopologyInfo {

                    /**
                     * Constructs a new AcceleratorTopologiesInfoAcceleratorTopologyInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfo);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfo acceleratorTopology. */
                    public acceleratorTopology?: (string|null);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfo infoPerTopologyStates. */
                    public infoPerTopologyStates: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState[];

                    /**
                     * Creates a new AcceleratorTopologiesInfoAcceleratorTopologyInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AcceleratorTopologiesInfoAcceleratorTopologyInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfo): google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfo;

                    /**
                     * Encodes the specified AcceleratorTopologiesInfoAcceleratorTopologyInfo message. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfo.verify|verify} messages.
                     * @param message AcceleratorTopologiesInfoAcceleratorTopologyInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorTopologiesInfoAcceleratorTopologyInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfo.verify|verify} messages.
                     * @param message AcceleratorTopologiesInfoAcceleratorTopologyInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AcceleratorTopologiesInfoAcceleratorTopologyInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AcceleratorTopologiesInfoAcceleratorTopologyInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfo;

                    /**
                     * Decodes an AcceleratorTopologiesInfoAcceleratorTopologyInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AcceleratorTopologiesInfoAcceleratorTopologyInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfo;

                    /**
                     * Verifies an AcceleratorTopologiesInfoAcceleratorTopologyInfo message.
                     * @param message Plain 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 AcceleratorTopologiesInfoAcceleratorTopologyInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AcceleratorTopologiesInfoAcceleratorTopologyInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfo;

                    /**
                     * Creates a plain object from an AcceleratorTopologiesInfoAcceleratorTopologyInfo message. Also converts values to other types if specified.
                     * @param message AcceleratorTopologiesInfoAcceleratorTopologyInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AcceleratorTopologiesInfoAcceleratorTopologyInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AcceleratorTopologiesInfoAcceleratorTopologyInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState. */
                interface IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState {

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState count */
                    count?: (number|null);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState state */
                    state?: (string|null);
                }

                /** Represents an AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState. */
                class AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState implements IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState {

                    /**
                     * Constructs a new AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState count. */
                    public count?: (number|null);

                    /** AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState state. */
                    public state?: (string|null);

                    /**
                     * Creates a new AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState): google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState;

                    /**
                     * Encodes the specified AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState.verify|verify} messages.
                     * @param message AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState.verify|verify} messages.
                     * @param message AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState;

                    /**
                     * Decodes an AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState;

                    /**
                     * Verifies an AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message.
                     * @param message Plain 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 AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState;

                    /**
                     * Creates a plain object from an AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState message. Also converts values to other types if specified.
                     * @param message AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        AVAILABLE = 442079913,
                        DEGRADED = 396890926,
                        RUNNING = 121282975,
                        TOPOLOGY_STATE_UNSPECIFIED = 188327545,
                        UNHEALTHY = 462118084
                    }
                }

                /** Properties of an AcceleratorType. */
                interface IAcceleratorType {

                    /** AcceleratorType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** AcceleratorType deprecated */
                    deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** AcceleratorType description */
                    description?: (string|null);

                    /** AcceleratorType id */
                    id?: (number|Long|string|null);

                    /** AcceleratorType kind */
                    kind?: (string|null);

                    /** AcceleratorType maximumCardsPerInstance */
                    maximumCardsPerInstance?: (number|null);

                    /** AcceleratorType name */
                    name?: (string|null);

                    /** AcceleratorType selfLink */
                    selfLink?: (string|null);

                    /** AcceleratorType zone */
                    zone?: (string|null);
                }

                /** Represents an AcceleratorType. */
                class AcceleratorType implements IAcceleratorType {

                    /**
                     * Constructs a new AcceleratorType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAcceleratorType);

                    /** AcceleratorType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** AcceleratorType deprecated. */
                    public deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** AcceleratorType description. */
                    public description?: (string|null);

                    /** AcceleratorType id. */
                    public id?: (number|Long|string|null);

                    /** AcceleratorType kind. */
                    public kind?: (string|null);

                    /** AcceleratorType maximumCardsPerInstance. */
                    public maximumCardsPerInstance?: (number|null);

                    /** AcceleratorType name. */
                    public name?: (string|null);

                    /** AcceleratorType selfLink. */
                    public selfLink?: (string|null);

                    /** AcceleratorType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new AcceleratorType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AcceleratorType instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAcceleratorType): google.cloud.compute.v1beta.AcceleratorType;

                    /**
                     * Encodes the specified AcceleratorType message. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorType.verify|verify} messages.
                     * @param message AcceleratorType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAcceleratorType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorType message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorType.verify|verify} messages.
                     * @param message AcceleratorType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAcceleratorType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AcceleratorType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AcceleratorType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AcceleratorType;

                    /**
                     * Decodes an AcceleratorType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AcceleratorType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AcceleratorType;

                    /**
                     * Verifies an AcceleratorType message.
                     * @param message Plain 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 AcceleratorType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AcceleratorType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AcceleratorType;

                    /**
                     * Creates a plain object from an AcceleratorType message. Also converts values to other types if specified.
                     * @param message AcceleratorType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AcceleratorType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AcceleratorType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AcceleratorType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AcceleratorTypeAggregatedList. */
                interface IAcceleratorTypeAggregatedList {

                    /** AcceleratorTypeAggregatedList id */
                    id?: (string|null);

                    /** AcceleratorTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IAcceleratorTypesScopedList }|null);

                    /** AcceleratorTypeAggregatedList kind */
                    kind?: (string|null);

                    /** AcceleratorTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AcceleratorTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** AcceleratorTypeAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** AcceleratorTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AcceleratorTypeAggregatedList. */
                class AcceleratorTypeAggregatedList implements IAcceleratorTypeAggregatedList {

                    /**
                     * Constructs a new AcceleratorTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAcceleratorTypeAggregatedList);

                    /** AcceleratorTypeAggregatedList id. */
                    public id?: (string|null);

                    /** AcceleratorTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IAcceleratorTypesScopedList };

                    /** AcceleratorTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** AcceleratorTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AcceleratorTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** AcceleratorTypeAggregatedList unreachables. */
                    public unreachables: string[];

                    /** AcceleratorTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AcceleratorTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AcceleratorTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAcceleratorTypeAggregatedList): google.cloud.compute.v1beta.AcceleratorTypeAggregatedList;

                    /**
                     * Encodes the specified AcceleratorTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTypeAggregatedList.verify|verify} messages.
                     * @param message AcceleratorTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAcceleratorTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTypeAggregatedList.verify|verify} messages.
                     * @param message AcceleratorTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAcceleratorTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AcceleratorTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AcceleratorTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AcceleratorTypeAggregatedList;

                    /**
                     * Decodes an AcceleratorTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AcceleratorTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AcceleratorTypeAggregatedList;

                    /**
                     * Verifies an AcceleratorTypeAggregatedList message.
                     * @param message Plain 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 AcceleratorTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AcceleratorTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AcceleratorTypeAggregatedList;

                    /**
                     * Creates a plain object from an AcceleratorTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message AcceleratorTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AcceleratorTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AcceleratorTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AcceleratorTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AcceleratorTypeList. */
                interface IAcceleratorTypeList {

                    /** AcceleratorTypeList id */
                    id?: (string|null);

                    /** AcceleratorTypeList items */
                    items?: (google.cloud.compute.v1beta.IAcceleratorType[]|null);

                    /** AcceleratorTypeList kind */
                    kind?: (string|null);

                    /** AcceleratorTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AcceleratorTypeList selfLink */
                    selfLink?: (string|null);

                    /** AcceleratorTypeList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AcceleratorTypeList. */
                class AcceleratorTypeList implements IAcceleratorTypeList {

                    /**
                     * Constructs a new AcceleratorTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAcceleratorTypeList);

                    /** AcceleratorTypeList id. */
                    public id?: (string|null);

                    /** AcceleratorTypeList items. */
                    public items: google.cloud.compute.v1beta.IAcceleratorType[];

                    /** AcceleratorTypeList kind. */
                    public kind?: (string|null);

                    /** AcceleratorTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AcceleratorTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** AcceleratorTypeList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AcceleratorTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AcceleratorTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAcceleratorTypeList): google.cloud.compute.v1beta.AcceleratorTypeList;

                    /**
                     * Encodes the specified AcceleratorTypeList message. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTypeList.verify|verify} messages.
                     * @param message AcceleratorTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAcceleratorTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTypeList.verify|verify} messages.
                     * @param message AcceleratorTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAcceleratorTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AcceleratorTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AcceleratorTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AcceleratorTypeList;

                    /**
                     * Decodes an AcceleratorTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AcceleratorTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AcceleratorTypeList;

                    /**
                     * Verifies an AcceleratorTypeList message.
                     * @param message Plain 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 AcceleratorTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AcceleratorTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AcceleratorTypeList;

                    /**
                     * Creates a plain object from an AcceleratorTypeList message. Also converts values to other types if specified.
                     * @param message AcceleratorTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AcceleratorTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AcceleratorTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AcceleratorTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AcceleratorTypesScopedList. */
                interface IAcceleratorTypesScopedList {

                    /** AcceleratorTypesScopedList acceleratorTypes */
                    acceleratorTypes?: (google.cloud.compute.v1beta.IAcceleratorType[]|null);

                    /** AcceleratorTypesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AcceleratorTypesScopedList. */
                class AcceleratorTypesScopedList implements IAcceleratorTypesScopedList {

                    /**
                     * Constructs a new AcceleratorTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAcceleratorTypesScopedList);

                    /** AcceleratorTypesScopedList acceleratorTypes. */
                    public acceleratorTypes: google.cloud.compute.v1beta.IAcceleratorType[];

                    /** AcceleratorTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AcceleratorTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AcceleratorTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAcceleratorTypesScopedList): google.cloud.compute.v1beta.AcceleratorTypesScopedList;

                    /**
                     * Encodes the specified AcceleratorTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTypesScopedList.verify|verify} messages.
                     * @param message AcceleratorTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAcceleratorTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AcceleratorTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AcceleratorTypesScopedList.verify|verify} messages.
                     * @param message AcceleratorTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAcceleratorTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AcceleratorTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AcceleratorTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AcceleratorTypesScopedList;

                    /**
                     * Decodes an AcceleratorTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AcceleratorTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AcceleratorTypesScopedList;

                    /**
                     * Verifies an AcceleratorTypesScopedList message.
                     * @param message Plain 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 AcceleratorTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AcceleratorTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AcceleratorTypesScopedList;

                    /**
                     * Creates a plain object from an AcceleratorTypesScopedList message. Also converts values to other types if specified.
                     * @param message AcceleratorTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AcceleratorTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AcceleratorTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AcceleratorTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Accelerators. */
                interface IAccelerators {

                    /** Accelerators guestAcceleratorCount */
                    guestAcceleratorCount?: (number|null);

                    /** Accelerators guestAcceleratorType */
                    guestAcceleratorType?: (string|null);
                }

                /** Represents an Accelerators. */
                class Accelerators implements IAccelerators {

                    /**
                     * Constructs a new Accelerators.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAccelerators);

                    /** Accelerators guestAcceleratorCount. */
                    public guestAcceleratorCount?: (number|null);

                    /** Accelerators guestAcceleratorType. */
                    public guestAcceleratorType?: (string|null);

                    /**
                     * Creates a new Accelerators instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Accelerators instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAccelerators): google.cloud.compute.v1beta.Accelerators;

                    /**
                     * Encodes the specified Accelerators message. Does not implicitly {@link google.cloud.compute.v1beta.Accelerators.verify|verify} messages.
                     * @param message Accelerators message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAccelerators, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Accelerators message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Accelerators.verify|verify} messages.
                     * @param message Accelerators message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAccelerators, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Accelerators message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Accelerators
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Accelerators;

                    /**
                     * Decodes an Accelerators message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Accelerators
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Accelerators;

                    /**
                     * Verifies an Accelerators message.
                     * @param message Plain 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 Accelerators message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Accelerators
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Accelerators;

                    /**
                     * Creates a plain object from an Accelerators message. Also converts values to other types if specified.
                     * @param message Accelerators
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Accelerators, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Accelerators to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Accelerators
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AccessConfig. */
                interface IAccessConfig {

                    /** AccessConfig externalIpv6 */
                    externalIpv6?: (string|null);

                    /** AccessConfig externalIpv6PrefixLength */
                    externalIpv6PrefixLength?: (number|null);

                    /** AccessConfig kind */
                    kind?: (string|null);

                    /** AccessConfig name */
                    name?: (string|null);

                    /** AccessConfig natIP */
                    natIP?: (string|null);

                    /** AccessConfig networkTier */
                    networkTier?: (string|null);

                    /** AccessConfig publicPtrDomainName */
                    publicPtrDomainName?: (string|null);

                    /** AccessConfig securityPolicy */
                    securityPolicy?: (string|null);

                    /** AccessConfig setPublicPtr */
                    setPublicPtr?: (boolean|null);

                    /** AccessConfig type */
                    type?: (string|null);
                }

                /** Represents an AccessConfig. */
                class AccessConfig implements IAccessConfig {

                    /**
                     * Constructs a new AccessConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAccessConfig);

                    /** AccessConfig externalIpv6. */
                    public externalIpv6?: (string|null);

                    /** AccessConfig externalIpv6PrefixLength. */
                    public externalIpv6PrefixLength?: (number|null);

                    /** AccessConfig kind. */
                    public kind?: (string|null);

                    /** AccessConfig name. */
                    public name?: (string|null);

                    /** AccessConfig natIP. */
                    public natIP?: (string|null);

                    /** AccessConfig networkTier. */
                    public networkTier?: (string|null);

                    /** AccessConfig publicPtrDomainName. */
                    public publicPtrDomainName?: (string|null);

                    /** AccessConfig securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** AccessConfig setPublicPtr. */
                    public setPublicPtr?: (boolean|null);

                    /** AccessConfig type. */
                    public type?: (string|null);

                    /**
                     * Creates a new AccessConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AccessConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAccessConfig): google.cloud.compute.v1beta.AccessConfig;

                    /**
                     * Encodes the specified AccessConfig message. Does not implicitly {@link google.cloud.compute.v1beta.AccessConfig.verify|verify} messages.
                     * @param message AccessConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AccessConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AccessConfig.verify|verify} messages.
                     * @param message AccessConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAccessConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AccessConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AccessConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AccessConfig;

                    /**
                     * Decodes an AccessConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AccessConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AccessConfig;

                    /**
                     * Verifies an AccessConfig message.
                     * @param message Plain 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 AccessConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AccessConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AccessConfig;

                    /**
                     * Creates a plain object from an AccessConfig message. Also converts values to other types if specified.
                     * @param message AccessConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AccessConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AccessConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AccessConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AccessConfig {

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        DIRECT_IPV6 = 4397213,
                        ONE_TO_ONE_NAT = 84090205
                    }
                }

                /** Properties of an AddAccessConfigInstanceRequest. */
                interface IAddAccessConfigInstanceRequest {

                    /** AddAccessConfigInstanceRequest accessConfigResource */
                    accessConfigResource?: (google.cloud.compute.v1beta.IAccessConfig|null);

                    /** AddAccessConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** AddAccessConfigInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** AddAccessConfigInstanceRequest project */
                    project?: (string|null);

                    /** AddAccessConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** AddAccessConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddAccessConfigInstanceRequest. */
                class AddAccessConfigInstanceRequest implements IAddAccessConfigInstanceRequest {

                    /**
                     * Constructs a new AddAccessConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest);

                    /** AddAccessConfigInstanceRequest accessConfigResource. */
                    public accessConfigResource?: (google.cloud.compute.v1beta.IAccessConfig|null);

                    /** AddAccessConfigInstanceRequest instance. */
                    public instance: string;

                    /** AddAccessConfigInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** AddAccessConfigInstanceRequest project. */
                    public project: string;

                    /** AddAccessConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** AddAccessConfigInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AddAccessConfigInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddAccessConfigInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest): google.cloud.compute.v1beta.AddAccessConfigInstanceRequest;

                    /**
                     * Encodes the specified AddAccessConfigInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message AddAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddAccessConfigInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message AddAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddAccessConfigInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddAccessConfigInstanceRequest;

                    /**
                     * Decodes an AddAccessConfigInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddAccessConfigInstanceRequest;

                    /**
                     * Verifies an AddAccessConfigInstanceRequest message.
                     * @param message Plain 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 AddAccessConfigInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddAccessConfigInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddAccessConfigInstanceRequest;

                    /**
                     * Creates a plain object from an AddAccessConfigInstanceRequest message. Also converts values to other types if specified.
                     * @param message AddAccessConfigInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddAccessConfigInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddAccessConfigInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddAccessConfigInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddAssociationFirewallPolicyRequest. */
                interface IAddAssociationFirewallPolicyRequest {

                    /** AddAssociationFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddAssociationFirewallPolicyRequest firewallPolicyAssociationResource */
                    firewallPolicyAssociationResource?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation|null);

                    /** AddAssociationFirewallPolicyRequest replaceExistingAssociation */
                    replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddAssociationFirewallPolicyRequest. */
                class AddAssociationFirewallPolicyRequest implements IAddAssociationFirewallPolicyRequest {

                    /**
                     * Constructs a new AddAssociationFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddAssociationFirewallPolicyRequest);

                    /** AddAssociationFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddAssociationFirewallPolicyRequest firewallPolicyAssociationResource. */
                    public firewallPolicyAssociationResource?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation|null);

                    /** AddAssociationFirewallPolicyRequest replaceExistingAssociation. */
                    public replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddAssociationFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddAssociationFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddAssociationFirewallPolicyRequest): google.cloud.compute.v1beta.AddAssociationFirewallPolicyRequest;

                    /**
                     * Encodes the specified AddAssociationFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddAssociationFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddAssociationFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddAssociationFirewallPolicyRequest;

                    /**
                     * Decodes an AddAssociationFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddAssociationFirewallPolicyRequest;

                    /**
                     * Verifies an AddAssociationFirewallPolicyRequest message.
                     * @param message Plain 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 AddAssociationFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddAssociationFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddAssociationFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an AddAssociationFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddAssociationFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddAssociationFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddAssociationFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddAssociationFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddAssociationNetworkFirewallPolicyRequest. */
                interface IAddAssociationNetworkFirewallPolicyRequest {

                    /** AddAssociationNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddAssociationNetworkFirewallPolicyRequest firewallPolicyAssociationResource */
                    firewallPolicyAssociationResource?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation|null);

                    /** AddAssociationNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddAssociationNetworkFirewallPolicyRequest replaceExistingAssociation */
                    replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddAssociationNetworkFirewallPolicyRequest. */
                class AddAssociationNetworkFirewallPolicyRequest implements IAddAssociationNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddAssociationNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddAssociationNetworkFirewallPolicyRequest);

                    /** AddAssociationNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddAssociationNetworkFirewallPolicyRequest firewallPolicyAssociationResource. */
                    public firewallPolicyAssociationResource?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation|null);

                    /** AddAssociationNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddAssociationNetworkFirewallPolicyRequest replaceExistingAssociation. */
                    public replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddAssociationNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddAssociationNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddAssociationNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.AddAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified AddAssociationNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddAssociationNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an AddAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an AddAssociationNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 AddAssociationNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddAssociationNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an AddAssociationNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddAssociationNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddAssociationNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddAssociationNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddAssociationNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddAssociationOrganizationSecurityPolicyRequest. */
                interface IAddAssociationOrganizationSecurityPolicyRequest {

                    /** AddAssociationOrganizationSecurityPolicyRequest replaceExistingAssociation */
                    replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest securityPolicyAssociationResource */
                    securityPolicyAssociationResource?: (google.cloud.compute.v1beta.ISecurityPolicyAssociation|null);
                }

                /** Represents an AddAssociationOrganizationSecurityPolicyRequest. */
                class AddAssociationOrganizationSecurityPolicyRequest implements IAddAssociationOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new AddAssociationOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddAssociationOrganizationSecurityPolicyRequest);

                    /** AddAssociationOrganizationSecurityPolicyRequest replaceExistingAssociation. */
                    public replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** AddAssociationOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** AddAssociationOrganizationSecurityPolicyRequest securityPolicyAssociationResource. */
                    public securityPolicyAssociationResource?: (google.cloud.compute.v1beta.ISecurityPolicyAssociation|null);

                    /**
                     * Creates a new AddAssociationOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddAssociationOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddAssociationOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.AddAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified AddAssociationOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddAssociationOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes an AddAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies an AddAssociationOrganizationSecurityPolicyRequest message.
                     * @param message Plain 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 AddAssociationOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddAssociationOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an AddAssociationOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddAssociationOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddAssociationOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddAssociationOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddAssociationOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddAssociationRegionNetworkFirewallPolicyRequest. */
                interface IAddAssociationRegionNetworkFirewallPolicyRequest {

                    /** AddAssociationRegionNetworkFirewallPolicyRequest associatedPolicyToBeReplaced */
                    associatedPolicyToBeReplaced?: (string|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest firewallPolicyAssociationResource */
                    firewallPolicyAssociationResource?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest replaceExistingAssociation */
                    replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddAssociationRegionNetworkFirewallPolicyRequest. */
                class AddAssociationRegionNetworkFirewallPolicyRequest implements IAddAssociationRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddAssociationRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddAssociationRegionNetworkFirewallPolicyRequest);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest associatedPolicyToBeReplaced. */
                    public associatedPolicyToBeReplaced?: (string|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddAssociationRegionNetworkFirewallPolicyRequest firewallPolicyAssociationResource. */
                    public firewallPolicyAssociationResource?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddAssociationRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** AddAssociationRegionNetworkFirewallPolicyRequest replaceExistingAssociation. */
                    public replaceExistingAssociation?: (boolean|null);

                    /** AddAssociationRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddAssociationRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddAssociationRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddAssociationRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.AddAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified AddAssociationRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddAssociationRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an AddAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an AddAssociationRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 AddAssociationRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddAssociationRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an AddAssociationRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddAssociationRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddAssociationRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddAssociationRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddAssociationRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddAssociationRegionNetworkPolicyRequest. */
                interface IAddAssociationRegionNetworkPolicyRequest {

                    /** AddAssociationRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** AddAssociationRegionNetworkPolicyRequest networkPolicyAssociationResource */
                    networkPolicyAssociationResource?: (google.cloud.compute.v1beta.INetworkPolicyAssociation|null);

                    /** AddAssociationRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** AddAssociationRegionNetworkPolicyRequest region */
                    region?: (string|null);

                    /** AddAssociationRegionNetworkPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddAssociationRegionNetworkPolicyRequest. */
                class AddAssociationRegionNetworkPolicyRequest implements IAddAssociationRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new AddAssociationRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddAssociationRegionNetworkPolicyRequest);

                    /** AddAssociationRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** AddAssociationRegionNetworkPolicyRequest networkPolicyAssociationResource. */
                    public networkPolicyAssociationResource?: (google.cloud.compute.v1beta.INetworkPolicyAssociation|null);

                    /** AddAssociationRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** AddAssociationRegionNetworkPolicyRequest region. */
                    public region: string;

                    /** AddAssociationRegionNetworkPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddAssociationRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddAssociationRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddAssociationRegionNetworkPolicyRequest): google.cloud.compute.v1beta.AddAssociationRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified AddAssociationRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddAssociationRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddAssociationRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddAssociationRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message AddAssociationRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddAssociationRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddAssociationRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddAssociationRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddAssociationRegionNetworkPolicyRequest;

                    /**
                     * Decodes an AddAssociationRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddAssociationRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddAssociationRegionNetworkPolicyRequest;

                    /**
                     * Verifies an AddAssociationRegionNetworkPolicyRequest message.
                     * @param message Plain 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 AddAssociationRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddAssociationRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddAssociationRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from an AddAssociationRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddAssociationRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddAssociationRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddAssociationRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddAssociationRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddHealthCheckTargetPoolRequest. */
                interface IAddHealthCheckTargetPoolRequest {

                    /** AddHealthCheckTargetPoolRequest project */
                    project?: (string|null);

                    /** AddHealthCheckTargetPoolRequest region */
                    region?: (string|null);

                    /** AddHealthCheckTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** AddHealthCheckTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** AddHealthCheckTargetPoolRequest targetPoolsAddHealthCheckRequestResource */
                    targetPoolsAddHealthCheckRequestResource?: (google.cloud.compute.v1beta.ITargetPoolsAddHealthCheckRequest|null);
                }

                /** Represents an AddHealthCheckTargetPoolRequest. */
                class AddHealthCheckTargetPoolRequest implements IAddHealthCheckTargetPoolRequest {

                    /**
                     * Constructs a new AddHealthCheckTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddHealthCheckTargetPoolRequest);

                    /** AddHealthCheckTargetPoolRequest project. */
                    public project: string;

                    /** AddHealthCheckTargetPoolRequest region. */
                    public region: string;

                    /** AddHealthCheckTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** AddHealthCheckTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** AddHealthCheckTargetPoolRequest targetPoolsAddHealthCheckRequestResource. */
                    public targetPoolsAddHealthCheckRequestResource?: (google.cloud.compute.v1beta.ITargetPoolsAddHealthCheckRequest|null);

                    /**
                     * Creates a new AddHealthCheckTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddHealthCheckTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddHealthCheckTargetPoolRequest): google.cloud.compute.v1beta.AddHealthCheckTargetPoolRequest;

                    /**
                     * Encodes the specified AddHealthCheckTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddHealthCheckTargetPoolRequest.verify|verify} messages.
                     * @param message AddHealthCheckTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddHealthCheckTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddHealthCheckTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddHealthCheckTargetPoolRequest.verify|verify} messages.
                     * @param message AddHealthCheckTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddHealthCheckTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddHealthCheckTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddHealthCheckTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddHealthCheckTargetPoolRequest;

                    /**
                     * Decodes an AddHealthCheckTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddHealthCheckTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddHealthCheckTargetPoolRequest;

                    /**
                     * Verifies an AddHealthCheckTargetPoolRequest message.
                     * @param message Plain 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 AddHealthCheckTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddHealthCheckTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddHealthCheckTargetPoolRequest;

                    /**
                     * Creates a plain object from an AddHealthCheckTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message AddHealthCheckTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddHealthCheckTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddHealthCheckTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddHealthCheckTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddInstanceTargetPoolRequest. */
                interface IAddInstanceTargetPoolRequest {

                    /** AddInstanceTargetPoolRequest project */
                    project?: (string|null);

                    /** AddInstanceTargetPoolRequest region */
                    region?: (string|null);

                    /** AddInstanceTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** AddInstanceTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** AddInstanceTargetPoolRequest targetPoolsAddInstanceRequestResource */
                    targetPoolsAddInstanceRequestResource?: (google.cloud.compute.v1beta.ITargetPoolsAddInstanceRequest|null);
                }

                /** Represents an AddInstanceTargetPoolRequest. */
                class AddInstanceTargetPoolRequest implements IAddInstanceTargetPoolRequest {

                    /**
                     * Constructs a new AddInstanceTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddInstanceTargetPoolRequest);

                    /** AddInstanceTargetPoolRequest project. */
                    public project: string;

                    /** AddInstanceTargetPoolRequest region. */
                    public region: string;

                    /** AddInstanceTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** AddInstanceTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** AddInstanceTargetPoolRequest targetPoolsAddInstanceRequestResource. */
                    public targetPoolsAddInstanceRequestResource?: (google.cloud.compute.v1beta.ITargetPoolsAddInstanceRequest|null);

                    /**
                     * Creates a new AddInstanceTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddInstanceTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddInstanceTargetPoolRequest): google.cloud.compute.v1beta.AddInstanceTargetPoolRequest;

                    /**
                     * Encodes the specified AddInstanceTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddInstanceTargetPoolRequest.verify|verify} messages.
                     * @param message AddInstanceTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddInstanceTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddInstanceTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddInstanceTargetPoolRequest.verify|verify} messages.
                     * @param message AddInstanceTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddInstanceTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddInstanceTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddInstanceTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddInstanceTargetPoolRequest;

                    /**
                     * Decodes an AddInstanceTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddInstanceTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddInstanceTargetPoolRequest;

                    /**
                     * Verifies an AddInstanceTargetPoolRequest message.
                     * @param message Plain 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 AddInstanceTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddInstanceTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddInstanceTargetPoolRequest;

                    /**
                     * Creates a plain object from an AddInstanceTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message AddInstanceTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddInstanceTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddInstanceTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddInstanceTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddInstancesInstanceGroupRequest. */
                interface IAddInstancesInstanceGroupRequest {

                    /** AddInstancesInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** AddInstancesInstanceGroupRequest instanceGroupsAddInstancesRequestResource */
                    instanceGroupsAddInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupsAddInstancesRequest|null);

                    /** AddInstancesInstanceGroupRequest project */
                    project?: (string|null);

                    /** AddInstancesInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** AddInstancesInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddInstancesInstanceGroupRequest. */
                class AddInstancesInstanceGroupRequest implements IAddInstancesInstanceGroupRequest {

                    /**
                     * Constructs a new AddInstancesInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddInstancesInstanceGroupRequest);

                    /** AddInstancesInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** AddInstancesInstanceGroupRequest instanceGroupsAddInstancesRequestResource. */
                    public instanceGroupsAddInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupsAddInstancesRequest|null);

                    /** AddInstancesInstanceGroupRequest project. */
                    public project: string;

                    /** AddInstancesInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** AddInstancesInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AddInstancesInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddInstancesInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddInstancesInstanceGroupRequest): google.cloud.compute.v1beta.AddInstancesInstanceGroupRequest;

                    /**
                     * Encodes the specified AddInstancesInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddInstancesInstanceGroupRequest.verify|verify} messages.
                     * @param message AddInstancesInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddInstancesInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddInstancesInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddInstancesInstanceGroupRequest.verify|verify} messages.
                     * @param message AddInstancesInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddInstancesInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddInstancesInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddInstancesInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddInstancesInstanceGroupRequest;

                    /**
                     * Decodes an AddInstancesInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddInstancesInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddInstancesInstanceGroupRequest;

                    /**
                     * Verifies an AddInstancesInstanceGroupRequest message.
                     * @param message Plain 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 AddInstancesInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddInstancesInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddInstancesInstanceGroupRequest;

                    /**
                     * Creates a plain object from an AddInstancesInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message AddInstancesInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddInstancesInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddInstancesInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddInstancesInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddNetworkInterfaceInstanceRequest. */
                interface IAddNetworkInterfaceInstanceRequest {

                    /** AddNetworkInterfaceInstanceRequest instance */
                    instance?: (string|null);

                    /** AddNetworkInterfaceInstanceRequest networkInterfaceResource */
                    networkInterfaceResource?: (google.cloud.compute.v1beta.INetworkInterface|null);

                    /** AddNetworkInterfaceInstanceRequest project */
                    project?: (string|null);

                    /** AddNetworkInterfaceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** AddNetworkInterfaceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddNetworkInterfaceInstanceRequest. */
                class AddNetworkInterfaceInstanceRequest implements IAddNetworkInterfaceInstanceRequest {

                    /**
                     * Constructs a new AddNetworkInterfaceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest);

                    /** AddNetworkInterfaceInstanceRequest instance. */
                    public instance: string;

                    /** AddNetworkInterfaceInstanceRequest networkInterfaceResource. */
                    public networkInterfaceResource?: (google.cloud.compute.v1beta.INetworkInterface|null);

                    /** AddNetworkInterfaceInstanceRequest project. */
                    public project: string;

                    /** AddNetworkInterfaceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** AddNetworkInterfaceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AddNetworkInterfaceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddNetworkInterfaceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest): google.cloud.compute.v1beta.AddNetworkInterfaceInstanceRequest;

                    /**
                     * Encodes the specified AddNetworkInterfaceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message AddNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddNetworkInterfaceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message AddNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddNetworkInterfaceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddNetworkInterfaceInstanceRequest;

                    /**
                     * Decodes an AddNetworkInterfaceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddNetworkInterfaceInstanceRequest;

                    /**
                     * Verifies an AddNetworkInterfaceInstanceRequest message.
                     * @param message Plain 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 AddNetworkInterfaceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddNetworkInterfaceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddNetworkInterfaceInstanceRequest;

                    /**
                     * Creates a plain object from an AddNetworkInterfaceInstanceRequest message. Also converts values to other types if specified.
                     * @param message AddNetworkInterfaceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddNetworkInterfaceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddNetworkInterfaceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddNetworkInterfaceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddNodesNodeGroupRequest. */
                interface IAddNodesNodeGroupRequest {

                    /** AddNodesNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** AddNodesNodeGroupRequest nodeGroupsAddNodesRequestResource */
                    nodeGroupsAddNodesRequestResource?: (google.cloud.compute.v1beta.INodeGroupsAddNodesRequest|null);

                    /** AddNodesNodeGroupRequest project */
                    project?: (string|null);

                    /** AddNodesNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** AddNodesNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddNodesNodeGroupRequest. */
                class AddNodesNodeGroupRequest implements IAddNodesNodeGroupRequest {

                    /**
                     * Constructs a new AddNodesNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddNodesNodeGroupRequest);

                    /** AddNodesNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** AddNodesNodeGroupRequest nodeGroupsAddNodesRequestResource. */
                    public nodeGroupsAddNodesRequestResource?: (google.cloud.compute.v1beta.INodeGroupsAddNodesRequest|null);

                    /** AddNodesNodeGroupRequest project. */
                    public project: string;

                    /** AddNodesNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** AddNodesNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AddNodesNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddNodesNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddNodesNodeGroupRequest): google.cloud.compute.v1beta.AddNodesNodeGroupRequest;

                    /**
                     * Encodes the specified AddNodesNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddNodesNodeGroupRequest.verify|verify} messages.
                     * @param message AddNodesNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddNodesNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddNodesNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddNodesNodeGroupRequest.verify|verify} messages.
                     * @param message AddNodesNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddNodesNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddNodesNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddNodesNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddNodesNodeGroupRequest;

                    /**
                     * Decodes an AddNodesNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddNodesNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddNodesNodeGroupRequest;

                    /**
                     * Verifies an AddNodesNodeGroupRequest message.
                     * @param message Plain 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 AddNodesNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddNodesNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddNodesNodeGroupRequest;

                    /**
                     * Creates a plain object from an AddNodesNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message AddNodesNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddNodesNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddNodesNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddNodesNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddPacketMirroringRuleFirewallPolicyRequest. */
                interface IAddPacketMirroringRuleFirewallPolicyRequest {

                    /** AddPacketMirroringRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddPacketMirroringRuleFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddPacketMirroringRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddPacketMirroringRuleFirewallPolicyRequest. */
                class AddPacketMirroringRuleFirewallPolicyRequest implements IAddPacketMirroringRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new AddPacketMirroringRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddPacketMirroringRuleFirewallPolicyRequest);

                    /** AddPacketMirroringRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddPacketMirroringRuleFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddPacketMirroringRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddPacketMirroringRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddPacketMirroringRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddPacketMirroringRuleFirewallPolicyRequest): google.cloud.compute.v1beta.AddPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified AddPacketMirroringRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddPacketMirroringRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddPacketMirroringRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddPacketMirroringRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddPacketMirroringRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddPacketMirroringRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddPacketMirroringRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddPacketMirroringRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddPacketMirroringRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddPacketMirroringRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Decodes an AddPacketMirroringRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddPacketMirroringRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Verifies an AddPacketMirroringRuleFirewallPolicyRequest message.
                     * @param message Plain 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 AddPacketMirroringRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddPacketMirroringRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an AddPacketMirroringRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddPacketMirroringRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddPacketMirroringRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddPacketMirroringRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddPacketMirroringRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddPacketMirroringRuleNetworkFirewallPolicyRequest. */
                interface IAddPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest maxPriority */
                    maxPriority?: (number|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest minPriority */
                    minPriority?: (number|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddPacketMirroringRuleNetworkFirewallPolicyRequest. */
                class AddPacketMirroringRuleNetworkFirewallPolicyRequest implements IAddPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddPacketMirroringRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddPacketMirroringRuleNetworkFirewallPolicyRequest);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest maxPriority. */
                    public maxPriority?: (number|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest minPriority. */
                    public minPriority?: (number|null);

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddPacketMirroringRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddPacketMirroringRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddPacketMirroringRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddPacketMirroringRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.AddPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified AddPacketMirroringRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddPacketMirroringRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an AddPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an AddPacketMirroringRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 AddPacketMirroringRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddPacketMirroringRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an AddPacketMirroringRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddPacketMirroringRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddPacketMirroringRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddPeeringNetworkRequest. */
                interface IAddPeeringNetworkRequest {

                    /** AddPeeringNetworkRequest network */
                    network?: (string|null);

                    /** AddPeeringNetworkRequest networksAddPeeringRequestResource */
                    networksAddPeeringRequestResource?: (google.cloud.compute.v1beta.INetworksAddPeeringRequest|null);

                    /** AddPeeringNetworkRequest project */
                    project?: (string|null);

                    /** AddPeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddPeeringNetworkRequest. */
                class AddPeeringNetworkRequest implements IAddPeeringNetworkRequest {

                    /**
                     * Constructs a new AddPeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddPeeringNetworkRequest);

                    /** AddPeeringNetworkRequest network. */
                    public network: string;

                    /** AddPeeringNetworkRequest networksAddPeeringRequestResource. */
                    public networksAddPeeringRequestResource?: (google.cloud.compute.v1beta.INetworksAddPeeringRequest|null);

                    /** AddPeeringNetworkRequest project. */
                    public project: string;

                    /** AddPeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddPeeringNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddPeeringNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddPeeringNetworkRequest): google.cloud.compute.v1beta.AddPeeringNetworkRequest;

                    /**
                     * Encodes the specified AddPeeringNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddPeeringNetworkRequest.verify|verify} messages.
                     * @param message AddPeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddPeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddPeeringNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddPeeringNetworkRequest.verify|verify} messages.
                     * @param message AddPeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddPeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddPeeringNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddPeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddPeeringNetworkRequest;

                    /**
                     * Decodes an AddPeeringNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddPeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddPeeringNetworkRequest;

                    /**
                     * Verifies an AddPeeringNetworkRequest message.
                     * @param message Plain 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 AddPeeringNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddPeeringNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddPeeringNetworkRequest;

                    /**
                     * Creates a plain object from an AddPeeringNetworkRequest message. Also converts values to other types if specified.
                     * @param message AddPeeringNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddPeeringNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddPeeringNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddPeeringNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddResourcePoliciesDiskRequest. */
                interface IAddResourcePoliciesDiskRequest {

                    /** AddResourcePoliciesDiskRequest disk */
                    disk?: (string|null);

                    /** AddResourcePoliciesDiskRequest disksAddResourcePoliciesRequestResource */
                    disksAddResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IDisksAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesDiskRequest project */
                    project?: (string|null);

                    /** AddResourcePoliciesDiskRequest requestId */
                    requestId?: (string|null);

                    /** AddResourcePoliciesDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddResourcePoliciesDiskRequest. */
                class AddResourcePoliciesDiskRequest implements IAddResourcePoliciesDiskRequest {

                    /**
                     * Constructs a new AddResourcePoliciesDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddResourcePoliciesDiskRequest);

                    /** AddResourcePoliciesDiskRequest disk. */
                    public disk: string;

                    /** AddResourcePoliciesDiskRequest disksAddResourcePoliciesRequestResource. */
                    public disksAddResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IDisksAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesDiskRequest project. */
                    public project: string;

                    /** AddResourcePoliciesDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** AddResourcePoliciesDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AddResourcePoliciesDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddResourcePoliciesDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddResourcePoliciesDiskRequest): google.cloud.compute.v1beta.AddResourcePoliciesDiskRequest;

                    /**
                     * Encodes the specified AddResourcePoliciesDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddResourcePoliciesDiskRequest.verify|verify} messages.
                     * @param message AddResourcePoliciesDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddResourcePoliciesDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddResourcePoliciesDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddResourcePoliciesDiskRequest.verify|verify} messages.
                     * @param message AddResourcePoliciesDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddResourcePoliciesDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddResourcePoliciesDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddResourcePoliciesDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddResourcePoliciesDiskRequest;

                    /**
                     * Decodes an AddResourcePoliciesDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddResourcePoliciesDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddResourcePoliciesDiskRequest;

                    /**
                     * Verifies an AddResourcePoliciesDiskRequest message.
                     * @param message Plain 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 AddResourcePoliciesDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddResourcePoliciesDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddResourcePoliciesDiskRequest;

                    /**
                     * Creates a plain object from an AddResourcePoliciesDiskRequest message. Also converts values to other types if specified.
                     * @param message AddResourcePoliciesDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddResourcePoliciesDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddResourcePoliciesDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddResourcePoliciesDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddResourcePoliciesInstanceRequest. */
                interface IAddResourcePoliciesInstanceRequest {

                    /** AddResourcePoliciesInstanceRequest instance */
                    instance?: (string|null);

                    /** AddResourcePoliciesInstanceRequest instancesAddResourcePoliciesRequestResource */
                    instancesAddResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IInstancesAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesInstanceRequest project */
                    project?: (string|null);

                    /** AddResourcePoliciesInstanceRequest requestId */
                    requestId?: (string|null);

                    /** AddResourcePoliciesInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AddResourcePoliciesInstanceRequest. */
                class AddResourcePoliciesInstanceRequest implements IAddResourcePoliciesInstanceRequest {

                    /**
                     * Constructs a new AddResourcePoliciesInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest);

                    /** AddResourcePoliciesInstanceRequest instance. */
                    public instance: string;

                    /** AddResourcePoliciesInstanceRequest instancesAddResourcePoliciesRequestResource. */
                    public instancesAddResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IInstancesAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesInstanceRequest project. */
                    public project: string;

                    /** AddResourcePoliciesInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** AddResourcePoliciesInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AddResourcePoliciesInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddResourcePoliciesInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest): google.cloud.compute.v1beta.AddResourcePoliciesInstanceRequest;

                    /**
                     * Encodes the specified AddResourcePoliciesInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddResourcePoliciesInstanceRequest.verify|verify} messages.
                     * @param message AddResourcePoliciesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddResourcePoliciesInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddResourcePoliciesInstanceRequest.verify|verify} messages.
                     * @param message AddResourcePoliciesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddResourcePoliciesInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddResourcePoliciesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddResourcePoliciesInstanceRequest;

                    /**
                     * Decodes an AddResourcePoliciesInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddResourcePoliciesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddResourcePoliciesInstanceRequest;

                    /**
                     * Verifies an AddResourcePoliciesInstanceRequest message.
                     * @param message Plain 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 AddResourcePoliciesInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddResourcePoliciesInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddResourcePoliciesInstanceRequest;

                    /**
                     * Creates a plain object from an AddResourcePoliciesInstanceRequest message. Also converts values to other types if specified.
                     * @param message AddResourcePoliciesInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddResourcePoliciesInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddResourcePoliciesInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddResourcePoliciesInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddResourcePoliciesRegionDiskRequest. */
                interface IAddResourcePoliciesRegionDiskRequest {

                    /** AddResourcePoliciesRegionDiskRequest disk */
                    disk?: (string|null);

                    /** AddResourcePoliciesRegionDiskRequest project */
                    project?: (string|null);

                    /** AddResourcePoliciesRegionDiskRequest region */
                    region?: (string|null);

                    /** AddResourcePoliciesRegionDiskRequest regionDisksAddResourcePoliciesRequestResource */
                    regionDisksAddResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IRegionDisksAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddResourcePoliciesRegionDiskRequest. */
                class AddResourcePoliciesRegionDiskRequest implements IAddResourcePoliciesRegionDiskRequest {

                    /**
                     * Constructs a new AddResourcePoliciesRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddResourcePoliciesRegionDiskRequest);

                    /** AddResourcePoliciesRegionDiskRequest disk. */
                    public disk: string;

                    /** AddResourcePoliciesRegionDiskRequest project. */
                    public project: string;

                    /** AddResourcePoliciesRegionDiskRequest region. */
                    public region: string;

                    /** AddResourcePoliciesRegionDiskRequest regionDisksAddResourcePoliciesRequestResource. */
                    public regionDisksAddResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IRegionDisksAddResourcePoliciesRequest|null);

                    /** AddResourcePoliciesRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddResourcePoliciesRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddResourcePoliciesRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddResourcePoliciesRegionDiskRequest): google.cloud.compute.v1beta.AddResourcePoliciesRegionDiskRequest;

                    /**
                     * Encodes the specified AddResourcePoliciesRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddResourcePoliciesRegionDiskRequest.verify|verify} messages.
                     * @param message AddResourcePoliciesRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddResourcePoliciesRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddResourcePoliciesRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddResourcePoliciesRegionDiskRequest.verify|verify} messages.
                     * @param message AddResourcePoliciesRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddResourcePoliciesRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddResourcePoliciesRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddResourcePoliciesRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddResourcePoliciesRegionDiskRequest;

                    /**
                     * Decodes an AddResourcePoliciesRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddResourcePoliciesRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddResourcePoliciesRegionDiskRequest;

                    /**
                     * Verifies an AddResourcePoliciesRegionDiskRequest message.
                     * @param message Plain 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 AddResourcePoliciesRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddResourcePoliciesRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddResourcePoliciesRegionDiskRequest;

                    /**
                     * Creates a plain object from an AddResourcePoliciesRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message AddResourcePoliciesRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddResourcePoliciesRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddResourcePoliciesRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddResourcePoliciesRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddRuleFirewallPolicyRequest. */
                interface IAddRuleFirewallPolicyRequest {

                    /** AddRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddRuleFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddRuleFirewallPolicyRequest. */
                class AddRuleFirewallPolicyRequest implements IAddRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new AddRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddRuleFirewallPolicyRequest);

                    /** AddRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddRuleFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddRuleFirewallPolicyRequest): google.cloud.compute.v1beta.AddRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified AddRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddRuleFirewallPolicyRequest;

                    /**
                     * Decodes an AddRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddRuleFirewallPolicyRequest;

                    /**
                     * Verifies an AddRuleFirewallPolicyRequest message.
                     * @param message Plain 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 AddRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an AddRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddRuleNetworkFirewallPolicyRequest. */
                interface IAddRuleNetworkFirewallPolicyRequest {

                    /** AddRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddRuleNetworkFirewallPolicyRequest maxPriority */
                    maxPriority?: (number|null);

                    /** AddRuleNetworkFirewallPolicyRequest minPriority */
                    minPriority?: (number|null);

                    /** AddRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddRuleNetworkFirewallPolicyRequest. */
                class AddRuleNetworkFirewallPolicyRequest implements IAddRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddRuleNetworkFirewallPolicyRequest);

                    /** AddRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddRuleNetworkFirewallPolicyRequest maxPriority. */
                    public maxPriority?: (number|null);

                    /** AddRuleNetworkFirewallPolicyRequest minPriority. */
                    public minPriority?: (number|null);

                    /** AddRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.AddRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified AddRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an AddRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an AddRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 AddRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an AddRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddRuleOrganizationSecurityPolicyRequest. */
                interface IAddRuleOrganizationSecurityPolicyRequest {

                    /** AddRuleOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** AddRuleOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** AddRuleOrganizationSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);
                }

                /** Represents an AddRuleOrganizationSecurityPolicyRequest. */
                class AddRuleOrganizationSecurityPolicyRequest implements IAddRuleOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new AddRuleOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddRuleOrganizationSecurityPolicyRequest);

                    /** AddRuleOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** AddRuleOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** AddRuleOrganizationSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /**
                     * Creates a new AddRuleOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddRuleOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddRuleOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.AddRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified AddRuleOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message AddRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddRuleOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message AddRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes an AddRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies an AddRuleOrganizationSecurityPolicyRequest message.
                     * @param message Plain 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 AddRuleOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddRuleOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an AddRuleOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddRuleOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddRuleOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddRuleOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddRuleOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddRuleRegionNetworkFirewallPolicyRequest. */
                interface IAddRuleRegionNetworkFirewallPolicyRequest {

                    /** AddRuleRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest maxPriority */
                    maxPriority?: (number|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest minPriority */
                    minPriority?: (number|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddRuleRegionNetworkFirewallPolicyRequest. */
                class AddRuleRegionNetworkFirewallPolicyRequest implements IAddRuleRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new AddRuleRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddRuleRegionNetworkFirewallPolicyRequest);

                    /** AddRuleRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** AddRuleRegionNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest maxPriority. */
                    public maxPriority?: (number|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest minPriority. */
                    public minPriority?: (number|null);

                    /** AddRuleRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** AddRuleRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** AddRuleRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddRuleRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddRuleRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddRuleRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.AddRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified AddRuleRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddRuleRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message AddRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an AddRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an AddRuleRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 AddRuleRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddRuleRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an AddRuleRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddRuleRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddRuleRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddRuleRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddRuleRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddRuleRegionSecurityPolicyRequest. */
                interface IAddRuleRegionSecurityPolicyRequest {

                    /** AddRuleRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** AddRuleRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** AddRuleRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** AddRuleRegionSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** AddRuleRegionSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an AddRuleRegionSecurityPolicyRequest. */
                class AddRuleRegionSecurityPolicyRequest implements IAddRuleRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new AddRuleRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddRuleRegionSecurityPolicyRequest);

                    /** AddRuleRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** AddRuleRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** AddRuleRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** AddRuleRegionSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** AddRuleRegionSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new AddRuleRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddRuleRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddRuleRegionSecurityPolicyRequest): google.cloud.compute.v1beta.AddRuleRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified AddRuleRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message AddRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddRuleRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message AddRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddRuleRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddRuleRegionSecurityPolicyRequest;

                    /**
                     * Decodes an AddRuleRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddRuleRegionSecurityPolicyRequest;

                    /**
                     * Verifies an AddRuleRegionSecurityPolicyRequest message.
                     * @param message Plain 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 AddRuleRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddRuleRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddRuleRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an AddRuleRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddRuleRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddRuleRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddRuleRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddRuleRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddRuleSecurityPolicyRequest. */
                interface IAddRuleSecurityPolicyRequest {

                    /** AddRuleSecurityPolicyRequest project */
                    project?: (string|null);

                    /** AddRuleSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** AddRuleSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** AddRuleSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an AddRuleSecurityPolicyRequest. */
                class AddRuleSecurityPolicyRequest implements IAddRuleSecurityPolicyRequest {

                    /**
                     * Constructs a new AddRuleSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddRuleSecurityPolicyRequest);

                    /** AddRuleSecurityPolicyRequest project. */
                    public project: string;

                    /** AddRuleSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** AddRuleSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** AddRuleSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new AddRuleSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddRuleSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddRuleSecurityPolicyRequest): google.cloud.compute.v1beta.AddRuleSecurityPolicyRequest;

                    /**
                     * Encodes the specified AddRuleSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message AddRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddRuleSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message AddRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddRuleSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddRuleSecurityPolicyRequest;

                    /**
                     * Decodes an AddRuleSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddRuleSecurityPolicyRequest;

                    /**
                     * Verifies an AddRuleSecurityPolicyRequest message.
                     * @param message Plain 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 AddRuleSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddRuleSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddRuleSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an AddRuleSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddRuleSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddRuleSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddRuleSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddRuleSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddSignedUrlKeyBackendBucketRequest. */
                interface IAddSignedUrlKeyBackendBucketRequest {

                    /** AddSignedUrlKeyBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** AddSignedUrlKeyBackendBucketRequest project */
                    project?: (string|null);

                    /** AddSignedUrlKeyBackendBucketRequest requestId */
                    requestId?: (string|null);

                    /** AddSignedUrlKeyBackendBucketRequest signedUrlKeyResource */
                    signedUrlKeyResource?: (google.cloud.compute.v1beta.ISignedUrlKey|null);
                }

                /** Represents an AddSignedUrlKeyBackendBucketRequest. */
                class AddSignedUrlKeyBackendBucketRequest implements IAddSignedUrlKeyBackendBucketRequest {

                    /**
                     * Constructs a new AddSignedUrlKeyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendBucketRequest);

                    /** AddSignedUrlKeyBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** AddSignedUrlKeyBackendBucketRequest project. */
                    public project: string;

                    /** AddSignedUrlKeyBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /** AddSignedUrlKeyBackendBucketRequest signedUrlKeyResource. */
                    public signedUrlKeyResource?: (google.cloud.compute.v1beta.ISignedUrlKey|null);

                    /**
                     * Creates a new AddSignedUrlKeyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddSignedUrlKeyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendBucketRequest): google.cloud.compute.v1beta.AddSignedUrlKeyBackendBucketRequest;

                    /**
                     * Encodes the specified AddSignedUrlKeyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddSignedUrlKeyBackendBucketRequest.verify|verify} messages.
                     * @param message AddSignedUrlKeyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddSignedUrlKeyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddSignedUrlKeyBackendBucketRequest.verify|verify} messages.
                     * @param message AddSignedUrlKeyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddSignedUrlKeyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddSignedUrlKeyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddSignedUrlKeyBackendBucketRequest;

                    /**
                     * Decodes an AddSignedUrlKeyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddSignedUrlKeyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddSignedUrlKeyBackendBucketRequest;

                    /**
                     * Verifies an AddSignedUrlKeyBackendBucketRequest message.
                     * @param message Plain 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 AddSignedUrlKeyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddSignedUrlKeyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddSignedUrlKeyBackendBucketRequest;

                    /**
                     * Creates a plain object from an AddSignedUrlKeyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message AddSignedUrlKeyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddSignedUrlKeyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddSignedUrlKeyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddSignedUrlKeyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddSignedUrlKeyBackendServiceRequest. */
                interface IAddSignedUrlKeyBackendServiceRequest {

                    /** AddSignedUrlKeyBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** AddSignedUrlKeyBackendServiceRequest project */
                    project?: (string|null);

                    /** AddSignedUrlKeyBackendServiceRequest requestId */
                    requestId?: (string|null);

                    /** AddSignedUrlKeyBackendServiceRequest signedUrlKeyResource */
                    signedUrlKeyResource?: (google.cloud.compute.v1beta.ISignedUrlKey|null);
                }

                /** Represents an AddSignedUrlKeyBackendServiceRequest. */
                class AddSignedUrlKeyBackendServiceRequest implements IAddSignedUrlKeyBackendServiceRequest {

                    /**
                     * Constructs a new AddSignedUrlKeyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendServiceRequest);

                    /** AddSignedUrlKeyBackendServiceRequest backendService. */
                    public backendService: string;

                    /** AddSignedUrlKeyBackendServiceRequest project. */
                    public project: string;

                    /** AddSignedUrlKeyBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** AddSignedUrlKeyBackendServiceRequest signedUrlKeyResource. */
                    public signedUrlKeyResource?: (google.cloud.compute.v1beta.ISignedUrlKey|null);

                    /**
                     * Creates a new AddSignedUrlKeyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddSignedUrlKeyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendServiceRequest): google.cloud.compute.v1beta.AddSignedUrlKeyBackendServiceRequest;

                    /**
                     * Encodes the specified AddSignedUrlKeyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddSignedUrlKeyBackendServiceRequest.verify|verify} messages.
                     * @param message AddSignedUrlKeyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddSignedUrlKeyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddSignedUrlKeyBackendServiceRequest.verify|verify} messages.
                     * @param message AddSignedUrlKeyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddSignedUrlKeyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddSignedUrlKeyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddSignedUrlKeyBackendServiceRequest;

                    /**
                     * Decodes an AddSignedUrlKeyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddSignedUrlKeyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddSignedUrlKeyBackendServiceRequest;

                    /**
                     * Verifies an AddSignedUrlKeyBackendServiceRequest message.
                     * @param message Plain 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 AddSignedUrlKeyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddSignedUrlKeyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddSignedUrlKeyBackendServiceRequest;

                    /**
                     * Creates a plain object from an AddSignedUrlKeyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message AddSignedUrlKeyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddSignedUrlKeyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddSignedUrlKeyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddSignedUrlKeyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddTrafficClassificationRuleRegionNetworkPolicyRequest. */
                interface IAddTrafficClassificationRuleRegionNetworkPolicyRequest {

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicyTrafficClassificationRuleResource */
                    networkPolicyTrafficClassificationRuleResource?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule|null);

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest region */
                    region?: (string|null);

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AddTrafficClassificationRuleRegionNetworkPolicyRequest. */
                class AddTrafficClassificationRuleRegionNetworkPolicyRequest implements IAddTrafficClassificationRuleRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new AddTrafficClassificationRuleRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddTrafficClassificationRuleRegionNetworkPolicyRequest);

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicyTrafficClassificationRuleResource. */
                    public networkPolicyTrafficClassificationRuleResource?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule|null);

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest region. */
                    public region: string;

                    /** AddTrafficClassificationRuleRegionNetworkPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AddTrafficClassificationRuleRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddTrafficClassificationRuleRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddTrafficClassificationRuleRegionNetworkPolicyRequest): google.cloud.compute.v1beta.AddTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified AddTrafficClassificationRuleRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AddTrafficClassificationRuleRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message AddTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddTrafficClassificationRuleRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddTrafficClassificationRuleRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddTrafficClassificationRuleRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message AddTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddTrafficClassificationRuleRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddTrafficClassificationRuleRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Decodes an AddTrafficClassificationRuleRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Verifies an AddTrafficClassificationRuleRegionNetworkPolicyRequest message.
                     * @param message Plain 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 AddTrafficClassificationRuleRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddTrafficClassificationRuleRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from an AddTrafficClassificationRuleRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message AddTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddTrafficClassificationRuleRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddTrafficClassificationRuleRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Address. */
                interface IAddress {

                    /** Address address */
                    address?: (string|null);

                    /** Address addressType */
                    addressType?: (string|null);

                    /** Address creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Address description */
                    description?: (string|null);

                    /** Address id */
                    id?: (number|Long|string|null);

                    /** Address ipCollection */
                    ipCollection?: (string|null);

                    /** Address ipVersion */
                    ipVersion?: (string|null);

                    /** Address ipv6EndpointType */
                    ipv6EndpointType?: (string|null);

                    /** Address kind */
                    kind?: (string|null);

                    /** Address labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Address labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Address name */
                    name?: (string|null);

                    /** Address network */
                    network?: (string|null);

                    /** Address networkTier */
                    networkTier?: (string|null);

                    /** Address prefixLength */
                    prefixLength?: (number|null);

                    /** Address purpose */
                    purpose?: (string|null);

                    /** Address region */
                    region?: (string|null);

                    /** Address selfLink */
                    selfLink?: (string|null);

                    /** Address status */
                    status?: (string|null);

                    /** Address subnetwork */
                    subnetwork?: (string|null);

                    /** Address users */
                    users?: (string[]|null);
                }

                /** Represents an Address. */
                class Address implements IAddress {

                    /**
                     * Constructs a new Address.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddress);

                    /** Address address. */
                    public address?: (string|null);

                    /** Address addressType. */
                    public addressType?: (string|null);

                    /** Address creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Address description. */
                    public description?: (string|null);

                    /** Address id. */
                    public id?: (number|Long|string|null);

                    /** Address ipCollection. */
                    public ipCollection?: (string|null);

                    /** Address ipVersion. */
                    public ipVersion?: (string|null);

                    /** Address ipv6EndpointType. */
                    public ipv6EndpointType?: (string|null);

                    /** Address kind. */
                    public kind?: (string|null);

                    /** Address labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Address labels. */
                    public labels: { [k: string]: string };

                    /** Address name. */
                    public name?: (string|null);

                    /** Address network. */
                    public network?: (string|null);

                    /** Address networkTier. */
                    public networkTier?: (string|null);

                    /** Address prefixLength. */
                    public prefixLength?: (number|null);

                    /** Address purpose. */
                    public purpose?: (string|null);

                    /** Address region. */
                    public region?: (string|null);

                    /** Address selfLink. */
                    public selfLink?: (string|null);

                    /** Address status. */
                    public status?: (string|null);

                    /** Address subnetwork. */
                    public subnetwork?: (string|null);

                    /** Address users. */
                    public users: string[];

                    /**
                     * Creates a new Address instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Address instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddress): google.cloud.compute.v1beta.Address;

                    /**
                     * Encodes the specified Address message. Does not implicitly {@link google.cloud.compute.v1beta.Address.verify|verify} messages.
                     * @param message Address message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Address message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Address.verify|verify} messages.
                     * @param message Address message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Address message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Address
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Address;

                    /**
                     * Decodes an Address message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Address
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Address;

                    /**
                     * Verifies an Address message.
                     * @param message Plain 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 Address message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Address
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Address;

                    /**
                     * Creates a plain object from an Address message. Also converts values to other types if specified.
                     * @param message Address
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Address, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Address to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Address
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Address {

                    /** AddressType enum. */
                    enum AddressType {
                        UNDEFINED_ADDRESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677,
                        UNSPECIFIED_TYPE = 53933922
                    }

                    /** IpVersion enum. */
                    enum IpVersion {
                        UNDEFINED_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        UNSPECIFIED_VERSION = 21850000
                    }

                    /** Ipv6EndpointType enum. */
                    enum Ipv6EndpointType {
                        UNDEFINED_IPV6_ENDPOINT_TYPE = 0,
                        NETLB = 74173363,
                        VM = 2743
                    }

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** Purpose enum. */
                    enum Purpose {
                        UNDEFINED_PURPOSE = 0,
                        DNS_RESOLVER = 476114556,
                        GCE_ENDPOINT = 230515243,
                        IPSEC_INTERCONNECT = 340437251,
                        NAT_AUTO = 163666477,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        SERVERLESS = 270492508,
                        SHARED_LOADBALANCER_VIP = 294447572,
                        VPC_PEERING = 400800170
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        IN_USE = 17393485,
                        RESERVED = 432241448,
                        RESERVING = 514587225
                    }
                }

                /** Properties of an AddressAggregatedList. */
                interface IAddressAggregatedList {

                    /** AddressAggregatedList id */
                    id?: (string|null);

                    /** AddressAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IAddressesScopedList }|null);

                    /** AddressAggregatedList kind */
                    kind?: (string|null);

                    /** AddressAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AddressAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** AddressAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** AddressAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AddressAggregatedList. */
                class AddressAggregatedList implements IAddressAggregatedList {

                    /**
                     * Constructs a new AddressAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddressAggregatedList);

                    /** AddressAggregatedList id. */
                    public id?: (string|null);

                    /** AddressAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IAddressesScopedList };

                    /** AddressAggregatedList kind. */
                    public kind?: (string|null);

                    /** AddressAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AddressAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** AddressAggregatedList unreachables. */
                    public unreachables: string[];

                    /** AddressAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AddressAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddressAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddressAggregatedList): google.cloud.compute.v1beta.AddressAggregatedList;

                    /**
                     * Encodes the specified AddressAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.AddressAggregatedList.verify|verify} messages.
                     * @param message AddressAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddressAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddressAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddressAggregatedList.verify|verify} messages.
                     * @param message AddressAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddressAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddressAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddressAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddressAggregatedList;

                    /**
                     * Decodes an AddressAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddressAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddressAggregatedList;

                    /**
                     * Verifies an AddressAggregatedList message.
                     * @param message Plain 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 AddressAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddressAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddressAggregatedList;

                    /**
                     * Creates a plain object from an AddressAggregatedList message. Also converts values to other types if specified.
                     * @param message AddressAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddressAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddressAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddressAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddressList. */
                interface IAddressList {

                    /** AddressList id */
                    id?: (string|null);

                    /** AddressList items */
                    items?: (google.cloud.compute.v1beta.IAddress[]|null);

                    /** AddressList kind */
                    kind?: (string|null);

                    /** AddressList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AddressList selfLink */
                    selfLink?: (string|null);

                    /** AddressList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AddressList. */
                class AddressList implements IAddressList {

                    /**
                     * Constructs a new AddressList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddressList);

                    /** AddressList id. */
                    public id?: (string|null);

                    /** AddressList items. */
                    public items: google.cloud.compute.v1beta.IAddress[];

                    /** AddressList kind. */
                    public kind?: (string|null);

                    /** AddressList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AddressList selfLink. */
                    public selfLink?: (string|null);

                    /** AddressList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AddressList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddressList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddressList): google.cloud.compute.v1beta.AddressList;

                    /**
                     * Encodes the specified AddressList message. Does not implicitly {@link google.cloud.compute.v1beta.AddressList.verify|verify} messages.
                     * @param message AddressList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddressList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddressList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddressList.verify|verify} messages.
                     * @param message AddressList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddressList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddressList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddressList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddressList;

                    /**
                     * Decodes an AddressList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddressList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddressList;

                    /**
                     * Verifies an AddressList message.
                     * @param message Plain 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 AddressList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddressList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddressList;

                    /**
                     * Creates a plain object from an AddressList message. Also converts values to other types if specified.
                     * @param message AddressList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddressList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddressList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddressList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddressesScopedList. */
                interface IAddressesScopedList {

                    /** AddressesScopedList addresses */
                    addresses?: (google.cloud.compute.v1beta.IAddress[]|null);

                    /** AddressesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AddressesScopedList. */
                class AddressesScopedList implements IAddressesScopedList {

                    /**
                     * Constructs a new AddressesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAddressesScopedList);

                    /** AddressesScopedList addresses. */
                    public addresses: google.cloud.compute.v1beta.IAddress[];

                    /** AddressesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AddressesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddressesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAddressesScopedList): google.cloud.compute.v1beta.AddressesScopedList;

                    /**
                     * Encodes the specified AddressesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.AddressesScopedList.verify|verify} messages.
                     * @param message AddressesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAddressesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddressesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AddressesScopedList.verify|verify} messages.
                     * @param message AddressesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAddressesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddressesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddressesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AddressesScopedList;

                    /**
                     * Decodes an AddressesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddressesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AddressesScopedList;

                    /**
                     * Verifies an AddressesScopedList message.
                     * @param message Plain 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 AddressesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddressesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AddressesScopedList;

                    /**
                     * Creates a plain object from an AddressesScopedList message. Also converts values to other types if specified.
                     * @param message AddressesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AddressesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddressesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddressesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AdoptInstancesRegionInstanceGroupManagerRequest. */
                interface IAdoptInstancesRegionInstanceGroupManagerRequest {

                    /** AdoptInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** AdoptInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** AdoptInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** AdoptInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersAdoptInstancesRequestResource */
                    regionInstanceGroupManagersAdoptInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersAdoptInstancesRequest|null);

                    /** AdoptInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AdoptInstancesRegionInstanceGroupManagerRequest. */
                class AdoptInstancesRegionInstanceGroupManagerRequest implements IAdoptInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new AdoptInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAdoptInstancesRegionInstanceGroupManagerRequest);

                    /** AdoptInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** AdoptInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** AdoptInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** AdoptInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersAdoptInstancesRequestResource. */
                    public regionInstanceGroupManagersAdoptInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersAdoptInstancesRequest|null);

                    /** AdoptInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AdoptInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AdoptInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAdoptInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.AdoptInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified AdoptInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AdoptInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message AdoptInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAdoptInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AdoptInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AdoptInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message AdoptInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAdoptInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AdoptInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdoptInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AdoptInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an AdoptInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdoptInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AdoptInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an AdoptInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 AdoptInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdoptInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AdoptInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an AdoptInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message AdoptInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AdoptInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AdoptInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AdoptInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AdvancedMachineFeatures. */
                interface IAdvancedMachineFeatures {

                    /** AdvancedMachineFeatures enableNestedVirtualization */
                    enableNestedVirtualization?: (boolean|null);

                    /** AdvancedMachineFeatures enableUefiNetworking */
                    enableUefiNetworking?: (boolean|null);

                    /** AdvancedMachineFeatures performanceMonitoringUnit */
                    performanceMonitoringUnit?: (string|null);

                    /** AdvancedMachineFeatures threadsPerCore */
                    threadsPerCore?: (number|null);

                    /** AdvancedMachineFeatures turboMode */
                    turboMode?: (string|null);

                    /** AdvancedMachineFeatures visibleCoreCount */
                    visibleCoreCount?: (number|null);
                }

                /** Represents an AdvancedMachineFeatures. */
                class AdvancedMachineFeatures implements IAdvancedMachineFeatures {

                    /**
                     * Constructs a new AdvancedMachineFeatures.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAdvancedMachineFeatures);

                    /** AdvancedMachineFeatures enableNestedVirtualization. */
                    public enableNestedVirtualization?: (boolean|null);

                    /** AdvancedMachineFeatures enableUefiNetworking. */
                    public enableUefiNetworking?: (boolean|null);

                    /** AdvancedMachineFeatures performanceMonitoringUnit. */
                    public performanceMonitoringUnit?: (string|null);

                    /** AdvancedMachineFeatures threadsPerCore. */
                    public threadsPerCore?: (number|null);

                    /** AdvancedMachineFeatures turboMode. */
                    public turboMode?: (string|null);

                    /** AdvancedMachineFeatures visibleCoreCount. */
                    public visibleCoreCount?: (number|null);

                    /**
                     * Creates a new AdvancedMachineFeatures instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AdvancedMachineFeatures instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAdvancedMachineFeatures): google.cloud.compute.v1beta.AdvancedMachineFeatures;

                    /**
                     * Encodes the specified AdvancedMachineFeatures message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IAdvancedMachineFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AdvancedMachineFeatures message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 {
                        UNDEFINED_PERFORMANCE_MONITORING_UNIT = 0,
                        ARCHITECTURAL = 155113693,
                        ENHANCED = 476873590,
                        PERFORMANCE_MONITORING_UNIT_UNSPECIFIED = 429210692,
                        STANDARD = 484642493
                    }
                }

                /** Properties of an AggregatedListAcceleratorTypesRequest. */
                interface IAggregatedListAcceleratorTypesRequest {

                    /** AggregatedListAcceleratorTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListAcceleratorTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListAcceleratorTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAcceleratorTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListAcceleratorTypesRequest. */
                class AggregatedListAcceleratorTypesRequest implements IAggregatedListAcceleratorTypesRequest {

                    /**
                     * Constructs a new AggregatedListAcceleratorTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListAcceleratorTypesRequest);

                    /** AggregatedListAcceleratorTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListAcceleratorTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListAcceleratorTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListAcceleratorTypesRequest project. */
                    public project: string;

                    /** AggregatedListAcceleratorTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAcceleratorTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListAcceleratorTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListAcceleratorTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListAcceleratorTypesRequest): google.cloud.compute.v1beta.AggregatedListAcceleratorTypesRequest;

                    /**
                     * Encodes the specified AggregatedListAcceleratorTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListAcceleratorTypesRequest.verify|verify} messages.
                     * @param message AggregatedListAcceleratorTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListAcceleratorTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListAcceleratorTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListAcceleratorTypesRequest.verify|verify} messages.
                     * @param message AggregatedListAcceleratorTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListAcceleratorTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListAcceleratorTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListAcceleratorTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListAcceleratorTypesRequest;

                    /**
                     * Decodes an AggregatedListAcceleratorTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListAcceleratorTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListAcceleratorTypesRequest;

                    /**
                     * Verifies an AggregatedListAcceleratorTypesRequest message.
                     * @param message Plain 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 AggregatedListAcceleratorTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListAcceleratorTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListAcceleratorTypesRequest;

                    /**
                     * Creates a plain object from an AggregatedListAcceleratorTypesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListAcceleratorTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListAcceleratorTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListAcceleratorTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListAcceleratorTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListAddressesRequest. */
                interface IAggregatedListAddressesRequest {

                    /** AggregatedListAddressesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListAddressesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListAddressesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListAddressesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListAddressesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListAddressesRequest project */
                    project?: (string|null);

                    /** AggregatedListAddressesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAddressesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListAddressesRequest. */
                class AggregatedListAddressesRequest implements IAggregatedListAddressesRequest {

                    /**
                     * Constructs a new AggregatedListAddressesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListAddressesRequest);

                    /** AggregatedListAddressesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListAddressesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListAddressesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListAddressesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListAddressesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListAddressesRequest project. */
                    public project: string;

                    /** AggregatedListAddressesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAddressesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListAddressesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListAddressesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListAddressesRequest): google.cloud.compute.v1beta.AggregatedListAddressesRequest;

                    /**
                     * Encodes the specified AggregatedListAddressesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListAddressesRequest.verify|verify} messages.
                     * @param message AggregatedListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListAddressesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListAddressesRequest.verify|verify} messages.
                     * @param message AggregatedListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListAddressesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListAddressesRequest;

                    /**
                     * Decodes an AggregatedListAddressesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListAddressesRequest;

                    /**
                     * Verifies an AggregatedListAddressesRequest message.
                     * @param message Plain 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 AggregatedListAddressesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListAddressesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListAddressesRequest;

                    /**
                     * Creates a plain object from an AggregatedListAddressesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListAddressesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListAddressesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListAddressesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListAddressesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListAutoscalersRequest. */
                interface IAggregatedListAutoscalersRequest {

                    /** AggregatedListAutoscalersRequest filter */
                    filter?: (string|null);

                    /** AggregatedListAutoscalersRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListAutoscalersRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListAutoscalersRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListAutoscalersRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListAutoscalersRequest project */
                    project?: (string|null);

                    /** AggregatedListAutoscalersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAutoscalersRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListAutoscalersRequest. */
                class AggregatedListAutoscalersRequest implements IAggregatedListAutoscalersRequest {

                    /**
                     * Constructs a new AggregatedListAutoscalersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListAutoscalersRequest);

                    /** AggregatedListAutoscalersRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListAutoscalersRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListAutoscalersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListAutoscalersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListAutoscalersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListAutoscalersRequest project. */
                    public project: string;

                    /** AggregatedListAutoscalersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListAutoscalersRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListAutoscalersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListAutoscalersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListAutoscalersRequest): google.cloud.compute.v1beta.AggregatedListAutoscalersRequest;

                    /**
                     * Encodes the specified AggregatedListAutoscalersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListAutoscalersRequest.verify|verify} messages.
                     * @param message AggregatedListAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListAutoscalersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListAutoscalersRequest.verify|verify} messages.
                     * @param message AggregatedListAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListAutoscalersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListAutoscalersRequest;

                    /**
                     * Decodes an AggregatedListAutoscalersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListAutoscalersRequest;

                    /**
                     * Verifies an AggregatedListAutoscalersRequest message.
                     * @param message Plain 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 AggregatedListAutoscalersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListAutoscalersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListAutoscalersRequest;

                    /**
                     * Creates a plain object from an AggregatedListAutoscalersRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListAutoscalersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListAutoscalersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListAutoscalersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListAutoscalersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListBackendBucketsRequest. */
                interface IAggregatedListBackendBucketsRequest {

                    /** AggregatedListBackendBucketsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListBackendBucketsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListBackendBucketsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListBackendBucketsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListBackendBucketsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListBackendBucketsRequest project */
                    project?: (string|null);

                    /** AggregatedListBackendBucketsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListBackendBucketsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListBackendBucketsRequest. */
                class AggregatedListBackendBucketsRequest implements IAggregatedListBackendBucketsRequest {

                    /**
                     * Constructs a new AggregatedListBackendBucketsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListBackendBucketsRequest);

                    /** AggregatedListBackendBucketsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListBackendBucketsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListBackendBucketsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListBackendBucketsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListBackendBucketsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListBackendBucketsRequest project. */
                    public project: string;

                    /** AggregatedListBackendBucketsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListBackendBucketsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListBackendBucketsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListBackendBucketsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListBackendBucketsRequest): google.cloud.compute.v1beta.AggregatedListBackendBucketsRequest;

                    /**
                     * Encodes the specified AggregatedListBackendBucketsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListBackendBucketsRequest.verify|verify} messages.
                     * @param message AggregatedListBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListBackendBucketsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListBackendBucketsRequest.verify|verify} messages.
                     * @param message AggregatedListBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListBackendBucketsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListBackendBucketsRequest;

                    /**
                     * Decodes an AggregatedListBackendBucketsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListBackendBucketsRequest;

                    /**
                     * Verifies an AggregatedListBackendBucketsRequest message.
                     * @param message Plain 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 AggregatedListBackendBucketsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListBackendBucketsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListBackendBucketsRequest;

                    /**
                     * Creates a plain object from an AggregatedListBackendBucketsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListBackendBucketsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListBackendBucketsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListBackendBucketsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListBackendBucketsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListBackendServicesRequest. */
                interface IAggregatedListBackendServicesRequest {

                    /** AggregatedListBackendServicesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListBackendServicesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListBackendServicesRequest project */
                    project?: (string|null);

                    /** AggregatedListBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListBackendServicesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListBackendServicesRequest. */
                class AggregatedListBackendServicesRequest implements IAggregatedListBackendServicesRequest {

                    /**
                     * Constructs a new AggregatedListBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListBackendServicesRequest);

                    /** AggregatedListBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListBackendServicesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListBackendServicesRequest project. */
                    public project: string;

                    /** AggregatedListBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListBackendServicesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListBackendServicesRequest): google.cloud.compute.v1beta.AggregatedListBackendServicesRequest;

                    /**
                     * Encodes the specified AggregatedListBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListBackendServicesRequest.verify|verify} messages.
                     * @param message AggregatedListBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListBackendServicesRequest.verify|verify} messages.
                     * @param message AggregatedListBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListBackendServicesRequest;

                    /**
                     * Decodes an AggregatedListBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListBackendServicesRequest;

                    /**
                     * Verifies an AggregatedListBackendServicesRequest message.
                     * @param message Plain 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 AggregatedListBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListBackendServicesRequest;

                    /**
                     * Creates a plain object from an AggregatedListBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListBackendServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListDiskTypesRequest. */
                interface IAggregatedListDiskTypesRequest {

                    /** AggregatedListDiskTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListDiskTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListDiskTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListDiskTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListDiskTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListDiskTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListDiskTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListDiskTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListDiskTypesRequest. */
                class AggregatedListDiskTypesRequest implements IAggregatedListDiskTypesRequest {

                    /**
                     * Constructs a new AggregatedListDiskTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListDiskTypesRequest);

                    /** AggregatedListDiskTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListDiskTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListDiskTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListDiskTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListDiskTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListDiskTypesRequest project. */
                    public project: string;

                    /** AggregatedListDiskTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListDiskTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListDiskTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListDiskTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListDiskTypesRequest): google.cloud.compute.v1beta.AggregatedListDiskTypesRequest;

                    /**
                     * Encodes the specified AggregatedListDiskTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListDiskTypesRequest.verify|verify} messages.
                     * @param message AggregatedListDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListDiskTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListDiskTypesRequest.verify|verify} messages.
                     * @param message AggregatedListDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListDiskTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListDiskTypesRequest;

                    /**
                     * Decodes an AggregatedListDiskTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListDiskTypesRequest;

                    /**
                     * Verifies an AggregatedListDiskTypesRequest message.
                     * @param message Plain 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 AggregatedListDiskTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListDiskTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListDiskTypesRequest;

                    /**
                     * Creates a plain object from an AggregatedListDiskTypesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListDiskTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListDiskTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListDiskTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListDiskTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListDisksRequest. */
                interface IAggregatedListDisksRequest {

                    /** AggregatedListDisksRequest filter */
                    filter?: (string|null);

                    /** AggregatedListDisksRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListDisksRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListDisksRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListDisksRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListDisksRequest project */
                    project?: (string|null);

                    /** AggregatedListDisksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListDisksRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListDisksRequest. */
                class AggregatedListDisksRequest implements IAggregatedListDisksRequest {

                    /**
                     * Constructs a new AggregatedListDisksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListDisksRequest);

                    /** AggregatedListDisksRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListDisksRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListDisksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListDisksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListDisksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListDisksRequest project. */
                    public project: string;

                    /** AggregatedListDisksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListDisksRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListDisksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListDisksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListDisksRequest): google.cloud.compute.v1beta.AggregatedListDisksRequest;

                    /**
                     * Encodes the specified AggregatedListDisksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListDisksRequest.verify|verify} messages.
                     * @param message AggregatedListDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListDisksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListDisksRequest.verify|verify} messages.
                     * @param message AggregatedListDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListDisksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListDisksRequest;

                    /**
                     * Decodes an AggregatedListDisksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListDisksRequest;

                    /**
                     * Verifies an AggregatedListDisksRequest message.
                     * @param message Plain 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 AggregatedListDisksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListDisksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListDisksRequest;

                    /**
                     * Creates a plain object from an AggregatedListDisksRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListDisksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListDisksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListDisksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListDisksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListForwardingRulesRequest. */
                interface IAggregatedListForwardingRulesRequest {

                    /** AggregatedListForwardingRulesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListForwardingRulesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListForwardingRulesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListForwardingRulesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListForwardingRulesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListForwardingRulesRequest project */
                    project?: (string|null);

                    /** AggregatedListForwardingRulesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListForwardingRulesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListForwardingRulesRequest. */
                class AggregatedListForwardingRulesRequest implements IAggregatedListForwardingRulesRequest {

                    /**
                     * Constructs a new AggregatedListForwardingRulesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListForwardingRulesRequest);

                    /** AggregatedListForwardingRulesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListForwardingRulesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListForwardingRulesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListForwardingRulesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListForwardingRulesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListForwardingRulesRequest project. */
                    public project: string;

                    /** AggregatedListForwardingRulesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListForwardingRulesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListForwardingRulesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListForwardingRulesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListForwardingRulesRequest): google.cloud.compute.v1beta.AggregatedListForwardingRulesRequest;

                    /**
                     * Encodes the specified AggregatedListForwardingRulesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListForwardingRulesRequest.verify|verify} messages.
                     * @param message AggregatedListForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListForwardingRulesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListForwardingRulesRequest.verify|verify} messages.
                     * @param message AggregatedListForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListForwardingRulesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListForwardingRulesRequest;

                    /**
                     * Decodes an AggregatedListForwardingRulesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListForwardingRulesRequest;

                    /**
                     * Verifies an AggregatedListForwardingRulesRequest message.
                     * @param message Plain 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 AggregatedListForwardingRulesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListForwardingRulesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListForwardingRulesRequest;

                    /**
                     * Creates a plain object from an AggregatedListForwardingRulesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListForwardingRulesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListForwardingRulesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListForwardingRulesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListForwardingRulesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListFutureReservationsRequest. */
                interface IAggregatedListFutureReservationsRequest {

                    /** AggregatedListFutureReservationsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListFutureReservationsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListFutureReservationsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListFutureReservationsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListFutureReservationsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListFutureReservationsRequest project */
                    project?: (string|null);

                    /** AggregatedListFutureReservationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListFutureReservationsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListFutureReservationsRequest. */
                class AggregatedListFutureReservationsRequest implements IAggregatedListFutureReservationsRequest {

                    /**
                     * Constructs a new AggregatedListFutureReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListFutureReservationsRequest);

                    /** AggregatedListFutureReservationsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListFutureReservationsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListFutureReservationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListFutureReservationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListFutureReservationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListFutureReservationsRequest project. */
                    public project: string;

                    /** AggregatedListFutureReservationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListFutureReservationsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListFutureReservationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListFutureReservationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListFutureReservationsRequest): google.cloud.compute.v1beta.AggregatedListFutureReservationsRequest;

                    /**
                     * Encodes the specified AggregatedListFutureReservationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListFutureReservationsRequest.verify|verify} messages.
                     * @param message AggregatedListFutureReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListFutureReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListFutureReservationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListFutureReservationsRequest.verify|verify} messages.
                     * @param message AggregatedListFutureReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListFutureReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListFutureReservationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListFutureReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListFutureReservationsRequest;

                    /**
                     * Decodes an AggregatedListFutureReservationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListFutureReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListFutureReservationsRequest;

                    /**
                     * Verifies an AggregatedListFutureReservationsRequest message.
                     * @param message Plain 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 AggregatedListFutureReservationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListFutureReservationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListFutureReservationsRequest;

                    /**
                     * Creates a plain object from an AggregatedListFutureReservationsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListFutureReservationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListFutureReservationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListFutureReservationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListFutureReservationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListGlobalOperationsRequest. */
                interface IAggregatedListGlobalOperationsRequest {

                    /** AggregatedListGlobalOperationsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListGlobalOperationsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListGlobalOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListGlobalOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListGlobalOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListGlobalOperationsRequest project */
                    project?: (string|null);

                    /** AggregatedListGlobalOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListGlobalOperationsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListGlobalOperationsRequest. */
                class AggregatedListGlobalOperationsRequest implements IAggregatedListGlobalOperationsRequest {

                    /**
                     * Constructs a new AggregatedListGlobalOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListGlobalOperationsRequest);

                    /** AggregatedListGlobalOperationsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListGlobalOperationsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListGlobalOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListGlobalOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListGlobalOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListGlobalOperationsRequest project. */
                    public project: string;

                    /** AggregatedListGlobalOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListGlobalOperationsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListGlobalOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListGlobalOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListGlobalOperationsRequest): google.cloud.compute.v1beta.AggregatedListGlobalOperationsRequest;

                    /**
                     * Encodes the specified AggregatedListGlobalOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListGlobalOperationsRequest.verify|verify} messages.
                     * @param message AggregatedListGlobalOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListGlobalOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListGlobalOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListGlobalOperationsRequest.verify|verify} messages.
                     * @param message AggregatedListGlobalOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListGlobalOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListGlobalOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListGlobalOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListGlobalOperationsRequest;

                    /**
                     * Decodes an AggregatedListGlobalOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListGlobalOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListGlobalOperationsRequest;

                    /**
                     * Verifies an AggregatedListGlobalOperationsRequest message.
                     * @param message Plain 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 AggregatedListGlobalOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListGlobalOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListGlobalOperationsRequest;

                    /**
                     * Creates a plain object from an AggregatedListGlobalOperationsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListGlobalOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListGlobalOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListGlobalOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListGlobalOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListGlobalVmExtensionPoliciesRequest. */
                interface IAggregatedListGlobalVmExtensionPoliciesRequest {

                    /** AggregatedListGlobalVmExtensionPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListGlobalVmExtensionPoliciesRequest. */
                class AggregatedListGlobalVmExtensionPoliciesRequest implements IAggregatedListGlobalVmExtensionPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListGlobalVmExtensionPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListGlobalVmExtensionPoliciesRequest);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListGlobalVmExtensionPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListGlobalVmExtensionPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListGlobalVmExtensionPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListGlobalVmExtensionPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListGlobalVmExtensionPoliciesRequest): google.cloud.compute.v1beta.AggregatedListGlobalVmExtensionPoliciesRequest;

                    /**
                     * Encodes the specified AggregatedListGlobalVmExtensionPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListGlobalVmExtensionPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListGlobalVmExtensionPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListGlobalVmExtensionPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListGlobalVmExtensionPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListGlobalVmExtensionPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListGlobalVmExtensionPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListGlobalVmExtensionPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListGlobalVmExtensionPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListGlobalVmExtensionPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListGlobalVmExtensionPoliciesRequest;

                    /**
                     * Decodes an AggregatedListGlobalVmExtensionPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListGlobalVmExtensionPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListGlobalVmExtensionPoliciesRequest;

                    /**
                     * Verifies an AggregatedListGlobalVmExtensionPoliciesRequest message.
                     * @param message Plain 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 AggregatedListGlobalVmExtensionPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListGlobalVmExtensionPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListGlobalVmExtensionPoliciesRequest;

                    /**
                     * Creates a plain object from an AggregatedListGlobalVmExtensionPoliciesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListGlobalVmExtensionPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListGlobalVmExtensionPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListGlobalVmExtensionPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListGlobalVmExtensionPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListHealthChecksRequest. */
                interface IAggregatedListHealthChecksRequest {

                    /** AggregatedListHealthChecksRequest filter */
                    filter?: (string|null);

                    /** AggregatedListHealthChecksRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListHealthChecksRequest project */
                    project?: (string|null);

                    /** AggregatedListHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListHealthChecksRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListHealthChecksRequest. */
                class AggregatedListHealthChecksRequest implements IAggregatedListHealthChecksRequest {

                    /**
                     * Constructs a new AggregatedListHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListHealthChecksRequest);

                    /** AggregatedListHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListHealthChecksRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListHealthChecksRequest project. */
                    public project: string;

                    /** AggregatedListHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListHealthChecksRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListHealthChecksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListHealthChecksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListHealthChecksRequest): google.cloud.compute.v1beta.AggregatedListHealthChecksRequest;

                    /**
                     * Encodes the specified AggregatedListHealthChecksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListHealthChecksRequest.verify|verify} messages.
                     * @param message AggregatedListHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListHealthChecksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListHealthChecksRequest.verify|verify} messages.
                     * @param message AggregatedListHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListHealthChecksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListHealthChecksRequest;

                    /**
                     * Decodes an AggregatedListHealthChecksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListHealthChecksRequest;

                    /**
                     * Verifies an AggregatedListHealthChecksRequest message.
                     * @param message Plain 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 AggregatedListHealthChecksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListHealthChecksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListHealthChecksRequest;

                    /**
                     * Creates a plain object from an AggregatedListHealthChecksRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListHealthChecksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListHealthChecksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListHealthChecksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListHealthChecksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListInstanceGroupManagersRequest. */
                interface IAggregatedListInstanceGroupManagersRequest {

                    /** AggregatedListInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceGroupManagersRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstanceGroupManagersRequest. */
                class AggregatedListInstanceGroupManagersRequest implements IAggregatedListInstanceGroupManagersRequest {

                    /**
                     * Constructs a new AggregatedListInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListInstanceGroupManagersRequest);

                    /** AggregatedListInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstanceGroupManagersRequest project. */
                    public project: string;

                    /** AggregatedListInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceGroupManagersRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListInstanceGroupManagersRequest): google.cloud.compute.v1beta.AggregatedListInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified AggregatedListInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message AggregatedListInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message AggregatedListInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListInstanceGroupManagersRequest;

                    /**
                     * Decodes an AggregatedListInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListInstanceGroupManagersRequest;

                    /**
                     * Verifies an AggregatedListInstanceGroupManagersRequest message.
                     * @param message Plain 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 AggregatedListInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from an AggregatedListInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListInstanceGroupsRequest. */
                interface IAggregatedListInstanceGroupsRequest {

                    /** AggregatedListInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstanceGroupsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstanceGroupsRequest project */
                    project?: (string|null);

                    /** AggregatedListInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceGroupsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstanceGroupsRequest. */
                class AggregatedListInstanceGroupsRequest implements IAggregatedListInstanceGroupsRequest {

                    /**
                     * Constructs a new AggregatedListInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListInstanceGroupsRequest);

                    /** AggregatedListInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstanceGroupsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstanceGroupsRequest project. */
                    public project: string;

                    /** AggregatedListInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceGroupsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListInstanceGroupsRequest): google.cloud.compute.v1beta.AggregatedListInstanceGroupsRequest;

                    /**
                     * Encodes the specified AggregatedListInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstanceGroupsRequest.verify|verify} messages.
                     * @param message AggregatedListInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstanceGroupsRequest.verify|verify} messages.
                     * @param message AggregatedListInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListInstanceGroupsRequest;

                    /**
                     * Decodes an AggregatedListInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListInstanceGroupsRequest;

                    /**
                     * Verifies an AggregatedListInstanceGroupsRequest message.
                     * @param message Plain 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 AggregatedListInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListInstanceGroupsRequest;

                    /**
                     * Creates a plain object from an AggregatedListInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListInstanceTemplatesRequest. */
                interface IAggregatedListInstanceTemplatesRequest {

                    /** AggregatedListInstanceTemplatesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstanceTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest project */
                    project?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceTemplatesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstanceTemplatesRequest. */
                class AggregatedListInstanceTemplatesRequest implements IAggregatedListInstanceTemplatesRequest {

                    /**
                     * Constructs a new AggregatedListInstanceTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListInstanceTemplatesRequest);

                    /** AggregatedListInstanceTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstanceTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstanceTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstanceTemplatesRequest project. */
                    public project: string;

                    /** AggregatedListInstanceTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstanceTemplatesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListInstanceTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListInstanceTemplatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListInstanceTemplatesRequest): google.cloud.compute.v1beta.AggregatedListInstanceTemplatesRequest;

                    /**
                     * Encodes the specified AggregatedListInstanceTemplatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstanceTemplatesRequest.verify|verify} messages.
                     * @param message AggregatedListInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListInstanceTemplatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstanceTemplatesRequest.verify|verify} messages.
                     * @param message AggregatedListInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListInstanceTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListInstanceTemplatesRequest;

                    /**
                     * Decodes an AggregatedListInstanceTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListInstanceTemplatesRequest;

                    /**
                     * Verifies an AggregatedListInstanceTemplatesRequest message.
                     * @param message Plain 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 AggregatedListInstanceTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListInstanceTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListInstanceTemplatesRequest;

                    /**
                     * Creates a plain object from an AggregatedListInstanceTemplatesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListInstanceTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListInstanceTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListInstanceTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListInstanceTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListInstancesRequest. */
                interface IAggregatedListInstancesRequest {

                    /** AggregatedListInstancesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstancesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstancesRequest project */
                    project?: (string|null);

                    /** AggregatedListInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstancesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstancesRequest. */
                class AggregatedListInstancesRequest implements IAggregatedListInstancesRequest {

                    /**
                     * Constructs a new AggregatedListInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListInstancesRequest);

                    /** AggregatedListInstancesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstancesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstancesRequest project. */
                    public project: string;

                    /** AggregatedListInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstancesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListInstancesRequest): google.cloud.compute.v1beta.AggregatedListInstancesRequest;

                    /**
                     * Encodes the specified AggregatedListInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstancesRequest.verify|verify} messages.
                     * @param message AggregatedListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstancesRequest.verify|verify} messages.
                     * @param message AggregatedListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListInstancesRequest;

                    /**
                     * Decodes an AggregatedListInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListInstancesRequest;

                    /**
                     * Verifies an AggregatedListInstancesRequest message.
                     * @param message Plain 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 AggregatedListInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListInstancesRequest;

                    /**
                     * Creates a plain object from an AggregatedListInstancesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListInstantSnapshotsRequest. */
                interface IAggregatedListInstantSnapshotsRequest {

                    /** AggregatedListInstantSnapshotsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInstantSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInstantSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest project */
                    project?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstantSnapshotsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInstantSnapshotsRequest. */
                class AggregatedListInstantSnapshotsRequest implements IAggregatedListInstantSnapshotsRequest {

                    /**
                     * Constructs a new AggregatedListInstantSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListInstantSnapshotsRequest);

                    /** AggregatedListInstantSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInstantSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInstantSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInstantSnapshotsRequest project. */
                    public project: string;

                    /** AggregatedListInstantSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInstantSnapshotsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListInstantSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListInstantSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListInstantSnapshotsRequest): google.cloud.compute.v1beta.AggregatedListInstantSnapshotsRequest;

                    /**
                     * Encodes the specified AggregatedListInstantSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstantSnapshotsRequest.verify|verify} messages.
                     * @param message AggregatedListInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListInstantSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInstantSnapshotsRequest.verify|verify} messages.
                     * @param message AggregatedListInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListInstantSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListInstantSnapshotsRequest;

                    /**
                     * Decodes an AggregatedListInstantSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListInstantSnapshotsRequest;

                    /**
                     * Verifies an AggregatedListInstantSnapshotsRequest message.
                     * @param message Plain 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 AggregatedListInstantSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListInstantSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListInstantSnapshotsRequest;

                    /**
                     * Creates a plain object from an AggregatedListInstantSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListInstantSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListInstantSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListInstantSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListInstantSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListInterconnectAttachmentsRequest. */
                interface IAggregatedListInterconnectAttachmentsRequest {

                    /** AggregatedListInterconnectAttachmentsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListInterconnectAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListInterconnectAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest project */
                    project?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInterconnectAttachmentsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListInterconnectAttachmentsRequest. */
                class AggregatedListInterconnectAttachmentsRequest implements IAggregatedListInterconnectAttachmentsRequest {

                    /**
                     * Constructs a new AggregatedListInterconnectAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListInterconnectAttachmentsRequest);

                    /** AggregatedListInterconnectAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListInterconnectAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListInterconnectAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListInterconnectAttachmentsRequest project. */
                    public project: string;

                    /** AggregatedListInterconnectAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListInterconnectAttachmentsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListInterconnectAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListInterconnectAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListInterconnectAttachmentsRequest): google.cloud.compute.v1beta.AggregatedListInterconnectAttachmentsRequest;

                    /**
                     * Encodes the specified AggregatedListInterconnectAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInterconnectAttachmentsRequest.verify|verify} messages.
                     * @param message AggregatedListInterconnectAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListInterconnectAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListInterconnectAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListInterconnectAttachmentsRequest.verify|verify} messages.
                     * @param message AggregatedListInterconnectAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListInterconnectAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListInterconnectAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListInterconnectAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListInterconnectAttachmentsRequest;

                    /**
                     * Decodes an AggregatedListInterconnectAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListInterconnectAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListInterconnectAttachmentsRequest;

                    /**
                     * Verifies an AggregatedListInterconnectAttachmentsRequest message.
                     * @param message Plain 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 AggregatedListInterconnectAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListInterconnectAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListInterconnectAttachmentsRequest;

                    /**
                     * Creates a plain object from an AggregatedListInterconnectAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListInterconnectAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListInterconnectAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListInterconnectAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListInterconnectAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListMachineTypesRequest. */
                interface IAggregatedListMachineTypesRequest {

                    /** AggregatedListMachineTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListMachineTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListMachineTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListMachineTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListMachineTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListMachineTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListMachineTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListMachineTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListMachineTypesRequest. */
                class AggregatedListMachineTypesRequest implements IAggregatedListMachineTypesRequest {

                    /**
                     * Constructs a new AggregatedListMachineTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListMachineTypesRequest);

                    /** AggregatedListMachineTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListMachineTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListMachineTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListMachineTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListMachineTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListMachineTypesRequest project. */
                    public project: string;

                    /** AggregatedListMachineTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListMachineTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListMachineTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListMachineTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListMachineTypesRequest): google.cloud.compute.v1beta.AggregatedListMachineTypesRequest;

                    /**
                     * Encodes the specified AggregatedListMachineTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListMachineTypesRequest.verify|verify} messages.
                     * @param message AggregatedListMachineTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListMachineTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListMachineTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListMachineTypesRequest.verify|verify} messages.
                     * @param message AggregatedListMachineTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListMachineTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListMachineTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListMachineTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListMachineTypesRequest;

                    /**
                     * Decodes an AggregatedListMachineTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListMachineTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListMachineTypesRequest;

                    /**
                     * Verifies an AggregatedListMachineTypesRequest message.
                     * @param message Plain 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 AggregatedListMachineTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListMachineTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListMachineTypesRequest;

                    /**
                     * Creates a plain object from an AggregatedListMachineTypesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListMachineTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListMachineTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListMachineTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListMachineTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListNetworkAttachmentsRequest. */
                interface IAggregatedListNetworkAttachmentsRequest {

                    /** AggregatedListNetworkAttachmentsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNetworkAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest project */
                    project?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkAttachmentsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNetworkAttachmentsRequest. */
                class AggregatedListNetworkAttachmentsRequest implements IAggregatedListNetworkAttachmentsRequest {

                    /**
                     * Constructs a new AggregatedListNetworkAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListNetworkAttachmentsRequest);

                    /** AggregatedListNetworkAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNetworkAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNetworkAttachmentsRequest project. */
                    public project: string;

                    /** AggregatedListNetworkAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkAttachmentsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListNetworkAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListNetworkAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListNetworkAttachmentsRequest): google.cloud.compute.v1beta.AggregatedListNetworkAttachmentsRequest;

                    /**
                     * Encodes the specified AggregatedListNetworkAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNetworkAttachmentsRequest.verify|verify} messages.
                     * @param message AggregatedListNetworkAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListNetworkAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListNetworkAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNetworkAttachmentsRequest.verify|verify} messages.
                     * @param message AggregatedListNetworkAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListNetworkAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListNetworkAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListNetworkAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListNetworkAttachmentsRequest;

                    /**
                     * Decodes an AggregatedListNetworkAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListNetworkAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListNetworkAttachmentsRequest;

                    /**
                     * Verifies an AggregatedListNetworkAttachmentsRequest message.
                     * @param message Plain 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 AggregatedListNetworkAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListNetworkAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListNetworkAttachmentsRequest;

                    /**
                     * Creates a plain object from an AggregatedListNetworkAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListNetworkAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListNetworkAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListNetworkAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListNetworkAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListNetworkEdgeSecurityServicesRequest. */
                interface IAggregatedListNetworkEdgeSecurityServicesRequest {

                    /** AggregatedListNetworkEdgeSecurityServicesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest project */
                    project?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNetworkEdgeSecurityServicesRequest. */
                class AggregatedListNetworkEdgeSecurityServicesRequest implements IAggregatedListNetworkEdgeSecurityServicesRequest {

                    /**
                     * Constructs a new AggregatedListNetworkEdgeSecurityServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListNetworkEdgeSecurityServicesRequest);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest project. */
                    public project: string;

                    /** AggregatedListNetworkEdgeSecurityServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkEdgeSecurityServicesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListNetworkEdgeSecurityServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListNetworkEdgeSecurityServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListNetworkEdgeSecurityServicesRequest): google.cloud.compute.v1beta.AggregatedListNetworkEdgeSecurityServicesRequest;

                    /**
                     * Encodes the specified AggregatedListNetworkEdgeSecurityServicesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNetworkEdgeSecurityServicesRequest.verify|verify} messages.
                     * @param message AggregatedListNetworkEdgeSecurityServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListNetworkEdgeSecurityServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListNetworkEdgeSecurityServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNetworkEdgeSecurityServicesRequest.verify|verify} messages.
                     * @param message AggregatedListNetworkEdgeSecurityServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListNetworkEdgeSecurityServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListNetworkEdgeSecurityServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListNetworkEdgeSecurityServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListNetworkEdgeSecurityServicesRequest;

                    /**
                     * Decodes an AggregatedListNetworkEdgeSecurityServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListNetworkEdgeSecurityServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListNetworkEdgeSecurityServicesRequest;

                    /**
                     * Verifies an AggregatedListNetworkEdgeSecurityServicesRequest message.
                     * @param message Plain 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 AggregatedListNetworkEdgeSecurityServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListNetworkEdgeSecurityServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListNetworkEdgeSecurityServicesRequest;

                    /**
                     * Creates a plain object from an AggregatedListNetworkEdgeSecurityServicesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListNetworkEdgeSecurityServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListNetworkEdgeSecurityServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListNetworkEdgeSecurityServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListNetworkEdgeSecurityServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListNetworkEndpointGroupsRequest. */
                interface IAggregatedListNetworkEndpointGroupsRequest {

                    /** AggregatedListNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkEndpointGroupsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNetworkEndpointGroupsRequest. */
                class AggregatedListNetworkEndpointGroupsRequest implements IAggregatedListNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new AggregatedListNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListNetworkEndpointGroupsRequest);

                    /** AggregatedListNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** AggregatedListNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkEndpointGroupsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListNetworkEndpointGroupsRequest): google.cloud.compute.v1beta.AggregatedListNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified AggregatedListNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message AggregatedListNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message AggregatedListNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListNetworkEndpointGroupsRequest;

                    /**
                     * Decodes an AggregatedListNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListNetworkEndpointGroupsRequest;

                    /**
                     * Verifies an AggregatedListNetworkEndpointGroupsRequest message.
                     * @param message Plain 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 AggregatedListNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from an AggregatedListNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListNetworkFirewallPoliciesRequest. */
                interface IAggregatedListNetworkFirewallPoliciesRequest {

                    /** AggregatedListNetworkFirewallPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNetworkFirewallPoliciesRequest. */
                class AggregatedListNetworkFirewallPoliciesRequest implements IAggregatedListNetworkFirewallPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListNetworkFirewallPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListNetworkFirewallPoliciesRequest);

                    /** AggregatedListNetworkFirewallPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListNetworkFirewallPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNetworkFirewallPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListNetworkFirewallPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListNetworkFirewallPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListNetworkFirewallPoliciesRequest): google.cloud.compute.v1beta.AggregatedListNetworkFirewallPoliciesRequest;

                    /**
                     * Encodes the specified AggregatedListNetworkFirewallPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListNetworkFirewallPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListNetworkFirewallPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListNetworkFirewallPoliciesRequest;

                    /**
                     * Decodes an AggregatedListNetworkFirewallPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListNetworkFirewallPoliciesRequest;

                    /**
                     * Verifies an AggregatedListNetworkFirewallPoliciesRequest message.
                     * @param message Plain 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 AggregatedListNetworkFirewallPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListNetworkFirewallPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListNetworkFirewallPoliciesRequest;

                    /**
                     * Creates a plain object from an AggregatedListNetworkFirewallPoliciesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListNetworkFirewallPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListNetworkFirewallPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListNetworkFirewallPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListNetworkFirewallPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListNodeGroupsRequest. */
                interface IAggregatedListNodeGroupsRequest {

                    /** AggregatedListNodeGroupsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNodeGroupsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNodeGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNodeGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNodeGroupsRequest project */
                    project?: (string|null);

                    /** AggregatedListNodeGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeGroupsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNodeGroupsRequest. */
                class AggregatedListNodeGroupsRequest implements IAggregatedListNodeGroupsRequest {

                    /**
                     * Constructs a new AggregatedListNodeGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListNodeGroupsRequest);

                    /** AggregatedListNodeGroupsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNodeGroupsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNodeGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNodeGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNodeGroupsRequest project. */
                    public project: string;

                    /** AggregatedListNodeGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeGroupsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListNodeGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListNodeGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListNodeGroupsRequest): google.cloud.compute.v1beta.AggregatedListNodeGroupsRequest;

                    /**
                     * Encodes the specified AggregatedListNodeGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNodeGroupsRequest.verify|verify} messages.
                     * @param message AggregatedListNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListNodeGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNodeGroupsRequest.verify|verify} messages.
                     * @param message AggregatedListNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListNodeGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListNodeGroupsRequest;

                    /**
                     * Decodes an AggregatedListNodeGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListNodeGroupsRequest;

                    /**
                     * Verifies an AggregatedListNodeGroupsRequest message.
                     * @param message Plain 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 AggregatedListNodeGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListNodeGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListNodeGroupsRequest;

                    /**
                     * Creates a plain object from an AggregatedListNodeGroupsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListNodeGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListNodeGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListNodeGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListNodeGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListNodeTemplatesRequest. */
                interface IAggregatedListNodeTemplatesRequest {

                    /** AggregatedListNodeTemplatesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNodeTemplatesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNodeTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNodeTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNodeTemplatesRequest project */
                    project?: (string|null);

                    /** AggregatedListNodeTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeTemplatesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNodeTemplatesRequest. */
                class AggregatedListNodeTemplatesRequest implements IAggregatedListNodeTemplatesRequest {

                    /**
                     * Constructs a new AggregatedListNodeTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListNodeTemplatesRequest);

                    /** AggregatedListNodeTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNodeTemplatesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNodeTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNodeTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNodeTemplatesRequest project. */
                    public project: string;

                    /** AggregatedListNodeTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeTemplatesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListNodeTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListNodeTemplatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListNodeTemplatesRequest): google.cloud.compute.v1beta.AggregatedListNodeTemplatesRequest;

                    /**
                     * Encodes the specified AggregatedListNodeTemplatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNodeTemplatesRequest.verify|verify} messages.
                     * @param message AggregatedListNodeTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListNodeTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListNodeTemplatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNodeTemplatesRequest.verify|verify} messages.
                     * @param message AggregatedListNodeTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListNodeTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListNodeTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListNodeTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListNodeTemplatesRequest;

                    /**
                     * Decodes an AggregatedListNodeTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListNodeTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListNodeTemplatesRequest;

                    /**
                     * Verifies an AggregatedListNodeTemplatesRequest message.
                     * @param message Plain 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 AggregatedListNodeTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListNodeTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListNodeTemplatesRequest;

                    /**
                     * Creates a plain object from an AggregatedListNodeTemplatesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListNodeTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListNodeTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListNodeTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListNodeTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListNodeTypesRequest. */
                interface IAggregatedListNodeTypesRequest {

                    /** AggregatedListNodeTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListNodeTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListNodeTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListNodeTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListNodeTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListNodeTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListNodeTypesRequest. */
                class AggregatedListNodeTypesRequest implements IAggregatedListNodeTypesRequest {

                    /**
                     * Constructs a new AggregatedListNodeTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListNodeTypesRequest);

                    /** AggregatedListNodeTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListNodeTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListNodeTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListNodeTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListNodeTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListNodeTypesRequest project. */
                    public project: string;

                    /** AggregatedListNodeTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListNodeTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListNodeTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListNodeTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListNodeTypesRequest): google.cloud.compute.v1beta.AggregatedListNodeTypesRequest;

                    /**
                     * Encodes the specified AggregatedListNodeTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNodeTypesRequest.verify|verify} messages.
                     * @param message AggregatedListNodeTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListNodeTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListNodeTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListNodeTypesRequest.verify|verify} messages.
                     * @param message AggregatedListNodeTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListNodeTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListNodeTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListNodeTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListNodeTypesRequest;

                    /**
                     * Decodes an AggregatedListNodeTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListNodeTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListNodeTypesRequest;

                    /**
                     * Verifies an AggregatedListNodeTypesRequest message.
                     * @param message Plain 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 AggregatedListNodeTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListNodeTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListNodeTypesRequest;

                    /**
                     * Creates a plain object from an AggregatedListNodeTypesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListNodeTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListNodeTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListNodeTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListNodeTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListPacketMirroringsRequest. */
                interface IAggregatedListPacketMirroringsRequest {

                    /** AggregatedListPacketMirroringsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListPacketMirroringsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListPacketMirroringsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListPacketMirroringsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListPacketMirroringsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListPacketMirroringsRequest project */
                    project?: (string|null);

                    /** AggregatedListPacketMirroringsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListPacketMirroringsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListPacketMirroringsRequest. */
                class AggregatedListPacketMirroringsRequest implements IAggregatedListPacketMirroringsRequest {

                    /**
                     * Constructs a new AggregatedListPacketMirroringsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListPacketMirroringsRequest);

                    /** AggregatedListPacketMirroringsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListPacketMirroringsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListPacketMirroringsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListPacketMirroringsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListPacketMirroringsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListPacketMirroringsRequest project. */
                    public project: string;

                    /** AggregatedListPacketMirroringsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListPacketMirroringsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListPacketMirroringsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListPacketMirroringsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListPacketMirroringsRequest): google.cloud.compute.v1beta.AggregatedListPacketMirroringsRequest;

                    /**
                     * Encodes the specified AggregatedListPacketMirroringsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListPacketMirroringsRequest.verify|verify} messages.
                     * @param message AggregatedListPacketMirroringsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListPacketMirroringsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListPacketMirroringsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListPacketMirroringsRequest.verify|verify} messages.
                     * @param message AggregatedListPacketMirroringsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListPacketMirroringsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListPacketMirroringsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListPacketMirroringsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListPacketMirroringsRequest;

                    /**
                     * Decodes an AggregatedListPacketMirroringsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListPacketMirroringsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListPacketMirroringsRequest;

                    /**
                     * Verifies an AggregatedListPacketMirroringsRequest message.
                     * @param message Plain 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 AggregatedListPacketMirroringsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListPacketMirroringsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListPacketMirroringsRequest;

                    /**
                     * Creates a plain object from an AggregatedListPacketMirroringsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListPacketMirroringsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListPacketMirroringsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListPacketMirroringsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListPacketMirroringsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListPublicDelegatedPrefixesRequest. */
                interface IAggregatedListPublicDelegatedPrefixesRequest {

                    /** AggregatedListPublicDelegatedPrefixesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest project */
                    project?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListPublicDelegatedPrefixesRequest. */
                class AggregatedListPublicDelegatedPrefixesRequest implements IAggregatedListPublicDelegatedPrefixesRequest {

                    /**
                     * Constructs a new AggregatedListPublicDelegatedPrefixesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListPublicDelegatedPrefixesRequest);

                    /** AggregatedListPublicDelegatedPrefixesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest project. */
                    public project: string;

                    /** AggregatedListPublicDelegatedPrefixesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListPublicDelegatedPrefixesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListPublicDelegatedPrefixesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListPublicDelegatedPrefixesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListPublicDelegatedPrefixesRequest): google.cloud.compute.v1beta.AggregatedListPublicDelegatedPrefixesRequest;

                    /**
                     * Encodes the specified AggregatedListPublicDelegatedPrefixesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message AggregatedListPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListPublicDelegatedPrefixesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message AggregatedListPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListPublicDelegatedPrefixesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListPublicDelegatedPrefixesRequest;

                    /**
                     * Decodes an AggregatedListPublicDelegatedPrefixesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListPublicDelegatedPrefixesRequest;

                    /**
                     * Verifies an AggregatedListPublicDelegatedPrefixesRequest message.
                     * @param message Plain 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 AggregatedListPublicDelegatedPrefixesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListPublicDelegatedPrefixesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListPublicDelegatedPrefixesRequest;

                    /**
                     * Creates a plain object from an AggregatedListPublicDelegatedPrefixesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListPublicDelegatedPrefixesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListPublicDelegatedPrefixesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListPublicDelegatedPrefixesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListPublicDelegatedPrefixesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListRegionCommitmentsRequest. */
                interface IAggregatedListRegionCommitmentsRequest {

                    /** AggregatedListRegionCommitmentsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionCommitmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionCommitmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionCommitmentsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionCommitmentsRequest. */
                class AggregatedListRegionCommitmentsRequest implements IAggregatedListRegionCommitmentsRequest {

                    /**
                     * Constructs a new AggregatedListRegionCommitmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListRegionCommitmentsRequest);

                    /** AggregatedListRegionCommitmentsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionCommitmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionCommitmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionCommitmentsRequest project. */
                    public project: string;

                    /** AggregatedListRegionCommitmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionCommitmentsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListRegionCommitmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListRegionCommitmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListRegionCommitmentsRequest): google.cloud.compute.v1beta.AggregatedListRegionCommitmentsRequest;

                    /**
                     * Encodes the specified AggregatedListRegionCommitmentsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionCommitmentsRequest.verify|verify} messages.
                     * @param message AggregatedListRegionCommitmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListRegionCommitmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListRegionCommitmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionCommitmentsRequest.verify|verify} messages.
                     * @param message AggregatedListRegionCommitmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListRegionCommitmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListRegionCommitmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListRegionCommitmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListRegionCommitmentsRequest;

                    /**
                     * Decodes an AggregatedListRegionCommitmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListRegionCommitmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListRegionCommitmentsRequest;

                    /**
                     * Verifies an AggregatedListRegionCommitmentsRequest message.
                     * @param message Plain 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 AggregatedListRegionCommitmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListRegionCommitmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListRegionCommitmentsRequest;

                    /**
                     * Creates a plain object from an AggregatedListRegionCommitmentsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListRegionCommitmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListRegionCommitmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListRegionCommitmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListRegionCommitmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListRegionCompositeHealthChecksRequest. */
                interface IAggregatedListRegionCompositeHealthChecksRequest {

                    /** AggregatedListRegionCompositeHealthChecksRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionCompositeHealthChecksRequest. */
                class AggregatedListRegionCompositeHealthChecksRequest implements IAggregatedListRegionCompositeHealthChecksRequest {

                    /**
                     * Constructs a new AggregatedListRegionCompositeHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListRegionCompositeHealthChecksRequest);

                    /** AggregatedListRegionCompositeHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest project. */
                    public project: string;

                    /** AggregatedListRegionCompositeHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionCompositeHealthChecksRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListRegionCompositeHealthChecksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListRegionCompositeHealthChecksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListRegionCompositeHealthChecksRequest): google.cloud.compute.v1beta.AggregatedListRegionCompositeHealthChecksRequest;

                    /**
                     * Encodes the specified AggregatedListRegionCompositeHealthChecksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionCompositeHealthChecksRequest.verify|verify} messages.
                     * @param message AggregatedListRegionCompositeHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListRegionCompositeHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListRegionCompositeHealthChecksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionCompositeHealthChecksRequest.verify|verify} messages.
                     * @param message AggregatedListRegionCompositeHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListRegionCompositeHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListRegionCompositeHealthChecksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListRegionCompositeHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListRegionCompositeHealthChecksRequest;

                    /**
                     * Decodes an AggregatedListRegionCompositeHealthChecksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListRegionCompositeHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListRegionCompositeHealthChecksRequest;

                    /**
                     * Verifies an AggregatedListRegionCompositeHealthChecksRequest message.
                     * @param message Plain 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 AggregatedListRegionCompositeHealthChecksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListRegionCompositeHealthChecksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListRegionCompositeHealthChecksRequest;

                    /**
                     * Creates a plain object from an AggregatedListRegionCompositeHealthChecksRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListRegionCompositeHealthChecksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListRegionCompositeHealthChecksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListRegionCompositeHealthChecksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListRegionCompositeHealthChecksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListRegionHealthAggregationPoliciesRequest. */
                interface IAggregatedListRegionHealthAggregationPoliciesRequest {

                    /** AggregatedListRegionHealthAggregationPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionHealthAggregationPoliciesRequest. */
                class AggregatedListRegionHealthAggregationPoliciesRequest implements IAggregatedListRegionHealthAggregationPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListRegionHealthAggregationPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListRegionHealthAggregationPoliciesRequest);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListRegionHealthAggregationPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthAggregationPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListRegionHealthAggregationPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListRegionHealthAggregationPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListRegionHealthAggregationPoliciesRequest): google.cloud.compute.v1beta.AggregatedListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Encodes the specified AggregatedListRegionHealthAggregationPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionHealthAggregationPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListRegionHealthAggregationPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListRegionHealthAggregationPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListRegionHealthAggregationPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionHealthAggregationPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListRegionHealthAggregationPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListRegionHealthAggregationPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListRegionHealthAggregationPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListRegionHealthAggregationPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Decodes an AggregatedListRegionHealthAggregationPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListRegionHealthAggregationPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Verifies an AggregatedListRegionHealthAggregationPoliciesRequest message.
                     * @param message Plain 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 AggregatedListRegionHealthAggregationPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListRegionHealthAggregationPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Creates a plain object from an AggregatedListRegionHealthAggregationPoliciesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListRegionHealthAggregationPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListRegionHealthAggregationPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListRegionHealthAggregationPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListRegionHealthAggregationPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListRegionHealthCheckServicesRequest. */
                interface IAggregatedListRegionHealthCheckServicesRequest {

                    /** AggregatedListRegionHealthCheckServicesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthCheckServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionHealthCheckServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthCheckServicesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionHealthCheckServicesRequest. */
                class AggregatedListRegionHealthCheckServicesRequest implements IAggregatedListRegionHealthCheckServicesRequest {

                    /**
                     * Constructs a new AggregatedListRegionHealthCheckServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListRegionHealthCheckServicesRequest);

                    /** AggregatedListRegionHealthCheckServicesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthCheckServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionHealthCheckServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionHealthCheckServicesRequest project. */
                    public project: string;

                    /** AggregatedListRegionHealthCheckServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthCheckServicesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListRegionHealthCheckServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListRegionHealthCheckServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListRegionHealthCheckServicesRequest): google.cloud.compute.v1beta.AggregatedListRegionHealthCheckServicesRequest;

                    /**
                     * Encodes the specified AggregatedListRegionHealthCheckServicesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionHealthCheckServicesRequest.verify|verify} messages.
                     * @param message AggregatedListRegionHealthCheckServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListRegionHealthCheckServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListRegionHealthCheckServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionHealthCheckServicesRequest.verify|verify} messages.
                     * @param message AggregatedListRegionHealthCheckServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListRegionHealthCheckServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListRegionHealthCheckServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListRegionHealthCheckServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListRegionHealthCheckServicesRequest;

                    /**
                     * Decodes an AggregatedListRegionHealthCheckServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListRegionHealthCheckServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListRegionHealthCheckServicesRequest;

                    /**
                     * Verifies an AggregatedListRegionHealthCheckServicesRequest message.
                     * @param message Plain 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 AggregatedListRegionHealthCheckServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListRegionHealthCheckServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListRegionHealthCheckServicesRequest;

                    /**
                     * Creates a plain object from an AggregatedListRegionHealthCheckServicesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListRegionHealthCheckServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListRegionHealthCheckServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListRegionHealthCheckServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListRegionHealthCheckServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListRegionHealthSourcesRequest. */
                interface IAggregatedListRegionHealthSourcesRequest {

                    /** AggregatedListRegionHealthSourcesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthSourcesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionHealthSourcesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthSourcesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionHealthSourcesRequest. */
                class AggregatedListRegionHealthSourcesRequest implements IAggregatedListRegionHealthSourcesRequest {

                    /**
                     * Constructs a new AggregatedListRegionHealthSourcesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListRegionHealthSourcesRequest);

                    /** AggregatedListRegionHealthSourcesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionHealthSourcesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionHealthSourcesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionHealthSourcesRequest project. */
                    public project: string;

                    /** AggregatedListRegionHealthSourcesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionHealthSourcesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListRegionHealthSourcesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListRegionHealthSourcesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListRegionHealthSourcesRequest): google.cloud.compute.v1beta.AggregatedListRegionHealthSourcesRequest;

                    /**
                     * Encodes the specified AggregatedListRegionHealthSourcesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionHealthSourcesRequest.verify|verify} messages.
                     * @param message AggregatedListRegionHealthSourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListRegionHealthSourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListRegionHealthSourcesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionHealthSourcesRequest.verify|verify} messages.
                     * @param message AggregatedListRegionHealthSourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListRegionHealthSourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListRegionHealthSourcesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListRegionHealthSourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListRegionHealthSourcesRequest;

                    /**
                     * Decodes an AggregatedListRegionHealthSourcesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListRegionHealthSourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListRegionHealthSourcesRequest;

                    /**
                     * Verifies an AggregatedListRegionHealthSourcesRequest message.
                     * @param message Plain 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 AggregatedListRegionHealthSourcesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListRegionHealthSourcesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListRegionHealthSourcesRequest;

                    /**
                     * Creates a plain object from an AggregatedListRegionHealthSourcesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListRegionHealthSourcesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListRegionHealthSourcesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListRegionHealthSourcesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListRegionHealthSourcesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListRegionNetworkPoliciesRequest. */
                interface IAggregatedListRegionNetworkPoliciesRequest {

                    /** AggregatedListRegionNetworkPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionNetworkPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionNetworkPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionNetworkPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionNetworkPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionNetworkPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionNetworkPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionNetworkPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionNetworkPoliciesRequest. */
                class AggregatedListRegionNetworkPoliciesRequest implements IAggregatedListRegionNetworkPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListRegionNetworkPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListRegionNetworkPoliciesRequest);

                    /** AggregatedListRegionNetworkPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionNetworkPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionNetworkPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionNetworkPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionNetworkPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionNetworkPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListRegionNetworkPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionNetworkPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListRegionNetworkPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListRegionNetworkPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListRegionNetworkPoliciesRequest): google.cloud.compute.v1beta.AggregatedListRegionNetworkPoliciesRequest;

                    /**
                     * Encodes the specified AggregatedListRegionNetworkPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionNetworkPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListRegionNetworkPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListRegionNetworkPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListRegionNetworkPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionNetworkPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListRegionNetworkPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListRegionNetworkPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListRegionNetworkPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListRegionNetworkPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListRegionNetworkPoliciesRequest;

                    /**
                     * Decodes an AggregatedListRegionNetworkPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListRegionNetworkPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListRegionNetworkPoliciesRequest;

                    /**
                     * Verifies an AggregatedListRegionNetworkPoliciesRequest message.
                     * @param message Plain 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 AggregatedListRegionNetworkPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListRegionNetworkPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListRegionNetworkPoliciesRequest;

                    /**
                     * Creates a plain object from an AggregatedListRegionNetworkPoliciesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListRegionNetworkPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListRegionNetworkPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListRegionNetworkPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListRegionNetworkPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListRegionNotificationEndpointsRequest. */
                interface IAggregatedListRegionNotificationEndpointsRequest {

                    /** AggregatedListRegionNotificationEndpointsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionNotificationEndpointsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRegionNotificationEndpointsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest project */
                    project?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionNotificationEndpointsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRegionNotificationEndpointsRequest. */
                class AggregatedListRegionNotificationEndpointsRequest implements IAggregatedListRegionNotificationEndpointsRequest {

                    /**
                     * Constructs a new AggregatedListRegionNotificationEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListRegionNotificationEndpointsRequest);

                    /** AggregatedListRegionNotificationEndpointsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRegionNotificationEndpointsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRegionNotificationEndpointsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRegionNotificationEndpointsRequest project. */
                    public project: string;

                    /** AggregatedListRegionNotificationEndpointsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRegionNotificationEndpointsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListRegionNotificationEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListRegionNotificationEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListRegionNotificationEndpointsRequest): google.cloud.compute.v1beta.AggregatedListRegionNotificationEndpointsRequest;

                    /**
                     * Encodes the specified AggregatedListRegionNotificationEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionNotificationEndpointsRequest.verify|verify} messages.
                     * @param message AggregatedListRegionNotificationEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListRegionNotificationEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListRegionNotificationEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRegionNotificationEndpointsRequest.verify|verify} messages.
                     * @param message AggregatedListRegionNotificationEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListRegionNotificationEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListRegionNotificationEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListRegionNotificationEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListRegionNotificationEndpointsRequest;

                    /**
                     * Decodes an AggregatedListRegionNotificationEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListRegionNotificationEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListRegionNotificationEndpointsRequest;

                    /**
                     * Verifies an AggregatedListRegionNotificationEndpointsRequest message.
                     * @param message Plain 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 AggregatedListRegionNotificationEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListRegionNotificationEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListRegionNotificationEndpointsRequest;

                    /**
                     * Creates a plain object from an AggregatedListRegionNotificationEndpointsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListRegionNotificationEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListRegionNotificationEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListRegionNotificationEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListRegionNotificationEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListReservationsRequest. */
                interface IAggregatedListReservationsRequest {

                    /** AggregatedListReservationsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListReservationsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListReservationsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListReservationsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListReservationsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListReservationsRequest project */
                    project?: (string|null);

                    /** AggregatedListReservationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListReservationsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListReservationsRequest. */
                class AggregatedListReservationsRequest implements IAggregatedListReservationsRequest {

                    /**
                     * Constructs a new AggregatedListReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListReservationsRequest);

                    /** AggregatedListReservationsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListReservationsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListReservationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListReservationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListReservationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListReservationsRequest project. */
                    public project: string;

                    /** AggregatedListReservationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListReservationsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListReservationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListReservationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListReservationsRequest): google.cloud.compute.v1beta.AggregatedListReservationsRequest;

                    /**
                     * Encodes the specified AggregatedListReservationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListReservationsRequest.verify|verify} messages.
                     * @param message AggregatedListReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListReservationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListReservationsRequest.verify|verify} messages.
                     * @param message AggregatedListReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListReservationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListReservationsRequest;

                    /**
                     * Decodes an AggregatedListReservationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListReservationsRequest;

                    /**
                     * Verifies an AggregatedListReservationsRequest message.
                     * @param message Plain 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 AggregatedListReservationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListReservationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListReservationsRequest;

                    /**
                     * Creates a plain object from an AggregatedListReservationsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListReservationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListReservationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListReservationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListReservationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListResourcePoliciesRequest. */
                interface IAggregatedListResourcePoliciesRequest {

                    /** AggregatedListResourcePoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListResourcePoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListResourcePoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListResourcePoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListResourcePoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListResourcePoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListResourcePoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListResourcePoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListResourcePoliciesRequest. */
                class AggregatedListResourcePoliciesRequest implements IAggregatedListResourcePoliciesRequest {

                    /**
                     * Constructs a new AggregatedListResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListResourcePoliciesRequest);

                    /** AggregatedListResourcePoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListResourcePoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListResourcePoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListResourcePoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListResourcePoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListResourcePoliciesRequest project. */
                    public project: string;

                    /** AggregatedListResourcePoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListResourcePoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListResourcePoliciesRequest): google.cloud.compute.v1beta.AggregatedListResourcePoliciesRequest;

                    /**
                     * Encodes the specified AggregatedListResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListResourcePoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListResourcePoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListResourcePoliciesRequest;

                    /**
                     * Decodes an AggregatedListResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListResourcePoliciesRequest;

                    /**
                     * Verifies an AggregatedListResourcePoliciesRequest message.
                     * @param message Plain 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 AggregatedListResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListResourcePoliciesRequest;

                    /**
                     * Creates a plain object from an AggregatedListResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListRoutersRequest. */
                interface IAggregatedListRoutersRequest {

                    /** AggregatedListRoutersRequest filter */
                    filter?: (string|null);

                    /** AggregatedListRoutersRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListRoutersRequest project */
                    project?: (string|null);

                    /** AggregatedListRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRoutersRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListRoutersRequest. */
                class AggregatedListRoutersRequest implements IAggregatedListRoutersRequest {

                    /**
                     * Constructs a new AggregatedListRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListRoutersRequest);

                    /** AggregatedListRoutersRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListRoutersRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListRoutersRequest project. */
                    public project: string;

                    /** AggregatedListRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListRoutersRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListRoutersRequest): google.cloud.compute.v1beta.AggregatedListRoutersRequest;

                    /**
                     * Encodes the specified AggregatedListRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRoutersRequest.verify|verify} messages.
                     * @param message AggregatedListRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListRoutersRequest.verify|verify} messages.
                     * @param message AggregatedListRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListRoutersRequest;

                    /**
                     * Decodes an AggregatedListRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListRoutersRequest;

                    /**
                     * Verifies an AggregatedListRoutersRequest message.
                     * @param message Plain 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 AggregatedListRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListRoutersRequest;

                    /**
                     * Creates a plain object from an AggregatedListRoutersRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListSecurityPoliciesRequest. */
                interface IAggregatedListSecurityPoliciesRequest {

                    /** AggregatedListSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSecurityPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListSecurityPoliciesRequest. */
                class AggregatedListSecurityPoliciesRequest implements IAggregatedListSecurityPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListSecurityPoliciesRequest);

                    /** AggregatedListSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSecurityPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSecurityPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListSecurityPoliciesRequest): google.cloud.compute.v1beta.AggregatedListSecurityPoliciesRequest;

                    /**
                     * Encodes the specified AggregatedListSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSecurityPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSecurityPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListSecurityPoliciesRequest;

                    /**
                     * Decodes an AggregatedListSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListSecurityPoliciesRequest;

                    /**
                     * Verifies an AggregatedListSecurityPoliciesRequest message.
                     * @param message Plain 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 AggregatedListSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from an AggregatedListSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListServiceAttachmentsRequest. */
                interface IAggregatedListServiceAttachmentsRequest {

                    /** AggregatedListServiceAttachmentsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListServiceAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListServiceAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest project */
                    project?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListServiceAttachmentsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListServiceAttachmentsRequest. */
                class AggregatedListServiceAttachmentsRequest implements IAggregatedListServiceAttachmentsRequest {

                    /**
                     * Constructs a new AggregatedListServiceAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListServiceAttachmentsRequest);

                    /** AggregatedListServiceAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListServiceAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListServiceAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListServiceAttachmentsRequest project. */
                    public project: string;

                    /** AggregatedListServiceAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListServiceAttachmentsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListServiceAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListServiceAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListServiceAttachmentsRequest): google.cloud.compute.v1beta.AggregatedListServiceAttachmentsRequest;

                    /**
                     * Encodes the specified AggregatedListServiceAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListServiceAttachmentsRequest.verify|verify} messages.
                     * @param message AggregatedListServiceAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListServiceAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListServiceAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListServiceAttachmentsRequest.verify|verify} messages.
                     * @param message AggregatedListServiceAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListServiceAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListServiceAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListServiceAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListServiceAttachmentsRequest;

                    /**
                     * Decodes an AggregatedListServiceAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListServiceAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListServiceAttachmentsRequest;

                    /**
                     * Verifies an AggregatedListServiceAttachmentsRequest message.
                     * @param message Plain 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 AggregatedListServiceAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListServiceAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListServiceAttachmentsRequest;

                    /**
                     * Creates a plain object from an AggregatedListServiceAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListServiceAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListServiceAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListServiceAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListServiceAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListSnapshotsRequest. */
                interface IAggregatedListSnapshotsRequest {

                    /** AggregatedListSnapshotsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSnapshotsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSnapshotsRequest project */
                    project?: (string|null);

                    /** AggregatedListSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSnapshotsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListSnapshotsRequest. */
                class AggregatedListSnapshotsRequest implements IAggregatedListSnapshotsRequest {

                    /**
                     * Constructs a new AggregatedListSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListSnapshotsRequest);

                    /** AggregatedListSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSnapshotsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSnapshotsRequest project. */
                    public project: string;

                    /** AggregatedListSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSnapshotsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListSnapshotsRequest): google.cloud.compute.v1beta.AggregatedListSnapshotsRequest;

                    /**
                     * Encodes the specified AggregatedListSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSnapshotsRequest.verify|verify} messages.
                     * @param message AggregatedListSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSnapshotsRequest.verify|verify} messages.
                     * @param message AggregatedListSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListSnapshotsRequest;

                    /**
                     * Decodes an AggregatedListSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListSnapshotsRequest;

                    /**
                     * Verifies an AggregatedListSnapshotsRequest message.
                     * @param message Plain 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 AggregatedListSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListSnapshotsRequest;

                    /**
                     * Creates a plain object from an AggregatedListSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListSslCertificatesRequest. */
                interface IAggregatedListSslCertificatesRequest {

                    /** AggregatedListSslCertificatesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSslCertificatesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSslCertificatesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSslCertificatesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSslCertificatesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSslCertificatesRequest project */
                    project?: (string|null);

                    /** AggregatedListSslCertificatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSslCertificatesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListSslCertificatesRequest. */
                class AggregatedListSslCertificatesRequest implements IAggregatedListSslCertificatesRequest {

                    /**
                     * Constructs a new AggregatedListSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListSslCertificatesRequest);

                    /** AggregatedListSslCertificatesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSslCertificatesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSslCertificatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSslCertificatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSslCertificatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSslCertificatesRequest project. */
                    public project: string;

                    /** AggregatedListSslCertificatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSslCertificatesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListSslCertificatesRequest): google.cloud.compute.v1beta.AggregatedListSslCertificatesRequest;

                    /**
                     * Encodes the specified AggregatedListSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSslCertificatesRequest.verify|verify} messages.
                     * @param message AggregatedListSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSslCertificatesRequest.verify|verify} messages.
                     * @param message AggregatedListSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListSslCertificatesRequest;

                    /**
                     * Decodes an AggregatedListSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListSslCertificatesRequest;

                    /**
                     * Verifies an AggregatedListSslCertificatesRequest message.
                     * @param message Plain 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 AggregatedListSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListSslCertificatesRequest;

                    /**
                     * Creates a plain object from an AggregatedListSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListSslPoliciesRequest. */
                interface IAggregatedListSslPoliciesRequest {

                    /** AggregatedListSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSslPoliciesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSslPoliciesRequest project */
                    project?: (string|null);

                    /** AggregatedListSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSslPoliciesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListSslPoliciesRequest. */
                class AggregatedListSslPoliciesRequest implements IAggregatedListSslPoliciesRequest {

                    /**
                     * Constructs a new AggregatedListSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListSslPoliciesRequest);

                    /** AggregatedListSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSslPoliciesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSslPoliciesRequest project. */
                    public project: string;

                    /** AggregatedListSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSslPoliciesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListSslPoliciesRequest): google.cloud.compute.v1beta.AggregatedListSslPoliciesRequest;

                    /**
                     * Encodes the specified AggregatedListSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSslPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSslPoliciesRequest.verify|verify} messages.
                     * @param message AggregatedListSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListSslPoliciesRequest;

                    /**
                     * Decodes an AggregatedListSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListSslPoliciesRequest;

                    /**
                     * Verifies an AggregatedListSslPoliciesRequest message.
                     * @param message Plain 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 AggregatedListSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListSslPoliciesRequest;

                    /**
                     * Creates a plain object from an AggregatedListSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListStoragePoolTypesRequest. */
                interface IAggregatedListStoragePoolTypesRequest {

                    /** AggregatedListStoragePoolTypesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListStoragePoolTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListStoragePoolTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest project */
                    project?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListStoragePoolTypesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListStoragePoolTypesRequest. */
                class AggregatedListStoragePoolTypesRequest implements IAggregatedListStoragePoolTypesRequest {

                    /**
                     * Constructs a new AggregatedListStoragePoolTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListStoragePoolTypesRequest);

                    /** AggregatedListStoragePoolTypesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListStoragePoolTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListStoragePoolTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListStoragePoolTypesRequest project. */
                    public project: string;

                    /** AggregatedListStoragePoolTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListStoragePoolTypesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListStoragePoolTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListStoragePoolTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListStoragePoolTypesRequest): google.cloud.compute.v1beta.AggregatedListStoragePoolTypesRequest;

                    /**
                     * Encodes the specified AggregatedListStoragePoolTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListStoragePoolTypesRequest.verify|verify} messages.
                     * @param message AggregatedListStoragePoolTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListStoragePoolTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListStoragePoolTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListStoragePoolTypesRequest.verify|verify} messages.
                     * @param message AggregatedListStoragePoolTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListStoragePoolTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListStoragePoolTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListStoragePoolTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListStoragePoolTypesRequest;

                    /**
                     * Decodes an AggregatedListStoragePoolTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListStoragePoolTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListStoragePoolTypesRequest;

                    /**
                     * Verifies an AggregatedListStoragePoolTypesRequest message.
                     * @param message Plain 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 AggregatedListStoragePoolTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListStoragePoolTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListStoragePoolTypesRequest;

                    /**
                     * Creates a plain object from an AggregatedListStoragePoolTypesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListStoragePoolTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListStoragePoolTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListStoragePoolTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListStoragePoolTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListStoragePoolsRequest. */
                interface IAggregatedListStoragePoolsRequest {

                    /** AggregatedListStoragePoolsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListStoragePoolsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListStoragePoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListStoragePoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListStoragePoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListStoragePoolsRequest project */
                    project?: (string|null);

                    /** AggregatedListStoragePoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListStoragePoolsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListStoragePoolsRequest. */
                class AggregatedListStoragePoolsRequest implements IAggregatedListStoragePoolsRequest {

                    /**
                     * Constructs a new AggregatedListStoragePoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListStoragePoolsRequest);

                    /** AggregatedListStoragePoolsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListStoragePoolsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListStoragePoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListStoragePoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListStoragePoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListStoragePoolsRequest project. */
                    public project: string;

                    /** AggregatedListStoragePoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListStoragePoolsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListStoragePoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListStoragePoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListStoragePoolsRequest): google.cloud.compute.v1beta.AggregatedListStoragePoolsRequest;

                    /**
                     * Encodes the specified AggregatedListStoragePoolsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListStoragePoolsRequest.verify|verify} messages.
                     * @param message AggregatedListStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListStoragePoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListStoragePoolsRequest.verify|verify} messages.
                     * @param message AggregatedListStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListStoragePoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListStoragePoolsRequest;

                    /**
                     * Decodes an AggregatedListStoragePoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListStoragePoolsRequest;

                    /**
                     * Verifies an AggregatedListStoragePoolsRequest message.
                     * @param message Plain 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 AggregatedListStoragePoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListStoragePoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListStoragePoolsRequest;

                    /**
                     * Creates a plain object from an AggregatedListStoragePoolsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListStoragePoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListStoragePoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListStoragePoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListStoragePoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListSubnetworksRequest. */
                interface IAggregatedListSubnetworksRequest {

                    /** AggregatedListSubnetworksRequest filter */
                    filter?: (string|null);

                    /** AggregatedListSubnetworksRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListSubnetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListSubnetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListSubnetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListSubnetworksRequest project */
                    project?: (string|null);

                    /** AggregatedListSubnetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSubnetworksRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);

                    /** AggregatedListSubnetworksRequest views */
                    views?: (string|null);
                }

                /** Represents an AggregatedListSubnetworksRequest. */
                class AggregatedListSubnetworksRequest implements IAggregatedListSubnetworksRequest {

                    /**
                     * Constructs a new AggregatedListSubnetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListSubnetworksRequest);

                    /** AggregatedListSubnetworksRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListSubnetworksRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListSubnetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListSubnetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListSubnetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListSubnetworksRequest project. */
                    public project: string;

                    /** AggregatedListSubnetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListSubnetworksRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /** AggregatedListSubnetworksRequest views. */
                    public views?: (string|null);

                    /**
                     * Creates a new AggregatedListSubnetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListSubnetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListSubnetworksRequest): google.cloud.compute.v1beta.AggregatedListSubnetworksRequest;

                    /**
                     * Encodes the specified AggregatedListSubnetworksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSubnetworksRequest.verify|verify} messages.
                     * @param message AggregatedListSubnetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListSubnetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListSubnetworksRequest.verify|verify} messages.
                     * @param message AggregatedListSubnetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListSubnetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListSubnetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListSubnetworksRequest;

                    /**
                     * Decodes an AggregatedListSubnetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListSubnetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListSubnetworksRequest;

                    /**
                     * Verifies an AggregatedListSubnetworksRequest message.
                     * @param message Plain 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 AggregatedListSubnetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListSubnetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListSubnetworksRequest;

                    /**
                     * Creates a plain object from an AggregatedListSubnetworksRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListSubnetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListSubnetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListSubnetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListSubnetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AggregatedListSubnetworksRequest {

                    /** Views enum. */
                    enum Views {
                        UNDEFINED_VIEWS = 0,
                        DEFAULT = 115302945,
                        WITH_UTILIZATION = 504090633
                    }
                }

                /** Properties of an AggregatedListTargetHttpProxiesRequest. */
                interface IAggregatedListTargetHttpProxiesRequest {

                    /** AggregatedListTargetHttpProxiesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetHttpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetHttpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetHttpProxiesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetHttpProxiesRequest. */
                class AggregatedListTargetHttpProxiesRequest implements IAggregatedListTargetHttpProxiesRequest {

                    /**
                     * Constructs a new AggregatedListTargetHttpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListTargetHttpProxiesRequest);

                    /** AggregatedListTargetHttpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetHttpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetHttpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetHttpProxiesRequest project. */
                    public project: string;

                    /** AggregatedListTargetHttpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetHttpProxiesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListTargetHttpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListTargetHttpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListTargetHttpProxiesRequest): google.cloud.compute.v1beta.AggregatedListTargetHttpProxiesRequest;

                    /**
                     * Encodes the specified AggregatedListTargetHttpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message AggregatedListTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListTargetHttpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message AggregatedListTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListTargetHttpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListTargetHttpProxiesRequest;

                    /**
                     * Decodes an AggregatedListTargetHttpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListTargetHttpProxiesRequest;

                    /**
                     * Verifies an AggregatedListTargetHttpProxiesRequest message.
                     * @param message Plain 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 AggregatedListTargetHttpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListTargetHttpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListTargetHttpProxiesRequest;

                    /**
                     * Creates a plain object from an AggregatedListTargetHttpProxiesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListTargetHttpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListTargetHttpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListTargetHttpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListTargetHttpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListTargetHttpsProxiesRequest. */
                interface IAggregatedListTargetHttpsProxiesRequest {

                    /** AggregatedListTargetHttpsProxiesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetHttpsProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetHttpsProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetHttpsProxiesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetHttpsProxiesRequest. */
                class AggregatedListTargetHttpsProxiesRequest implements IAggregatedListTargetHttpsProxiesRequest {

                    /**
                     * Constructs a new AggregatedListTargetHttpsProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListTargetHttpsProxiesRequest);

                    /** AggregatedListTargetHttpsProxiesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetHttpsProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetHttpsProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetHttpsProxiesRequest project. */
                    public project: string;

                    /** AggregatedListTargetHttpsProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetHttpsProxiesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListTargetHttpsProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListTargetHttpsProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListTargetHttpsProxiesRequest): google.cloud.compute.v1beta.AggregatedListTargetHttpsProxiesRequest;

                    /**
                     * Encodes the specified AggregatedListTargetHttpsProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message AggregatedListTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListTargetHttpsProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message AggregatedListTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListTargetHttpsProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListTargetHttpsProxiesRequest;

                    /**
                     * Decodes an AggregatedListTargetHttpsProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListTargetHttpsProxiesRequest;

                    /**
                     * Verifies an AggregatedListTargetHttpsProxiesRequest message.
                     * @param message Plain 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 AggregatedListTargetHttpsProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListTargetHttpsProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListTargetHttpsProxiesRequest;

                    /**
                     * Creates a plain object from an AggregatedListTargetHttpsProxiesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListTargetHttpsProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListTargetHttpsProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListTargetHttpsProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListTargetHttpsProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListTargetInstancesRequest. */
                interface IAggregatedListTargetInstancesRequest {

                    /** AggregatedListTargetInstancesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetInstancesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetInstancesRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetInstancesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetInstancesRequest. */
                class AggregatedListTargetInstancesRequest implements IAggregatedListTargetInstancesRequest {

                    /**
                     * Constructs a new AggregatedListTargetInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListTargetInstancesRequest);

                    /** AggregatedListTargetInstancesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetInstancesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetInstancesRequest project. */
                    public project: string;

                    /** AggregatedListTargetInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetInstancesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListTargetInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListTargetInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListTargetInstancesRequest): google.cloud.compute.v1beta.AggregatedListTargetInstancesRequest;

                    /**
                     * Encodes the specified AggregatedListTargetInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetInstancesRequest.verify|verify} messages.
                     * @param message AggregatedListTargetInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListTargetInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListTargetInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetInstancesRequest.verify|verify} messages.
                     * @param message AggregatedListTargetInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListTargetInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListTargetInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListTargetInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListTargetInstancesRequest;

                    /**
                     * Decodes an AggregatedListTargetInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListTargetInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListTargetInstancesRequest;

                    /**
                     * Verifies an AggregatedListTargetInstancesRequest message.
                     * @param message Plain 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 AggregatedListTargetInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListTargetInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListTargetInstancesRequest;

                    /**
                     * Creates a plain object from an AggregatedListTargetInstancesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListTargetInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListTargetInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListTargetInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListTargetInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListTargetPoolsRequest. */
                interface IAggregatedListTargetPoolsRequest {

                    /** AggregatedListTargetPoolsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetPoolsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetPoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetPoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetPoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetPoolsRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetPoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetPoolsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetPoolsRequest. */
                class AggregatedListTargetPoolsRequest implements IAggregatedListTargetPoolsRequest {

                    /**
                     * Constructs a new AggregatedListTargetPoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListTargetPoolsRequest);

                    /** AggregatedListTargetPoolsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetPoolsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetPoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetPoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetPoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetPoolsRequest project. */
                    public project: string;

                    /** AggregatedListTargetPoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetPoolsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListTargetPoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListTargetPoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListTargetPoolsRequest): google.cloud.compute.v1beta.AggregatedListTargetPoolsRequest;

                    /**
                     * Encodes the specified AggregatedListTargetPoolsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetPoolsRequest.verify|verify} messages.
                     * @param message AggregatedListTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListTargetPoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetPoolsRequest.verify|verify} messages.
                     * @param message AggregatedListTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListTargetPoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListTargetPoolsRequest;

                    /**
                     * Decodes an AggregatedListTargetPoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListTargetPoolsRequest;

                    /**
                     * Verifies an AggregatedListTargetPoolsRequest message.
                     * @param message Plain 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 AggregatedListTargetPoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListTargetPoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListTargetPoolsRequest;

                    /**
                     * Creates a plain object from an AggregatedListTargetPoolsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListTargetPoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListTargetPoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListTargetPoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListTargetPoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListTargetTcpProxiesRequest. */
                interface IAggregatedListTargetTcpProxiesRequest {

                    /** AggregatedListTargetTcpProxiesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetTcpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetTcpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetTcpProxiesRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetTcpProxiesRequest. */
                class AggregatedListTargetTcpProxiesRequest implements IAggregatedListTargetTcpProxiesRequest {

                    /**
                     * Constructs a new AggregatedListTargetTcpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListTargetTcpProxiesRequest);

                    /** AggregatedListTargetTcpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetTcpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetTcpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetTcpProxiesRequest project. */
                    public project: string;

                    /** AggregatedListTargetTcpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetTcpProxiesRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListTargetTcpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListTargetTcpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListTargetTcpProxiesRequest): google.cloud.compute.v1beta.AggregatedListTargetTcpProxiesRequest;

                    /**
                     * Encodes the specified AggregatedListTargetTcpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message AggregatedListTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListTargetTcpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message AggregatedListTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListTargetTcpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListTargetTcpProxiesRequest;

                    /**
                     * Decodes an AggregatedListTargetTcpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListTargetTcpProxiesRequest;

                    /**
                     * Verifies an AggregatedListTargetTcpProxiesRequest message.
                     * @param message Plain 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 AggregatedListTargetTcpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListTargetTcpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListTargetTcpProxiesRequest;

                    /**
                     * Creates a plain object from an AggregatedListTargetTcpProxiesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListTargetTcpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListTargetTcpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListTargetTcpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListTargetTcpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListTargetVpnGatewaysRequest. */
                interface IAggregatedListTargetVpnGatewaysRequest {

                    /** AggregatedListTargetVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListTargetVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest project */
                    project?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetVpnGatewaysRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListTargetVpnGatewaysRequest. */
                class AggregatedListTargetVpnGatewaysRequest implements IAggregatedListTargetVpnGatewaysRequest {

                    /**
                     * Constructs a new AggregatedListTargetVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListTargetVpnGatewaysRequest);

                    /** AggregatedListTargetVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListTargetVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListTargetVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListTargetVpnGatewaysRequest project. */
                    public project: string;

                    /** AggregatedListTargetVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListTargetVpnGatewaysRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListTargetVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListTargetVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListTargetVpnGatewaysRequest): google.cloud.compute.v1beta.AggregatedListTargetVpnGatewaysRequest;

                    /**
                     * Encodes the specified AggregatedListTargetVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetVpnGatewaysRequest.verify|verify} messages.
                     * @param message AggregatedListTargetVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListTargetVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListTargetVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListTargetVpnGatewaysRequest.verify|verify} messages.
                     * @param message AggregatedListTargetVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListTargetVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListTargetVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListTargetVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListTargetVpnGatewaysRequest;

                    /**
                     * Decodes an AggregatedListTargetVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListTargetVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListTargetVpnGatewaysRequest;

                    /**
                     * Verifies an AggregatedListTargetVpnGatewaysRequest message.
                     * @param message Plain 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 AggregatedListTargetVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListTargetVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListTargetVpnGatewaysRequest;

                    /**
                     * Creates a plain object from an AggregatedListTargetVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListTargetVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListTargetVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListTargetVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListTargetVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListUrlMapsRequest. */
                interface IAggregatedListUrlMapsRequest {

                    /** AggregatedListUrlMapsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListUrlMapsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListUrlMapsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListUrlMapsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListUrlMapsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListUrlMapsRequest project */
                    project?: (string|null);

                    /** AggregatedListUrlMapsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListUrlMapsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListUrlMapsRequest. */
                class AggregatedListUrlMapsRequest implements IAggregatedListUrlMapsRequest {

                    /**
                     * Constructs a new AggregatedListUrlMapsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListUrlMapsRequest);

                    /** AggregatedListUrlMapsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListUrlMapsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListUrlMapsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListUrlMapsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListUrlMapsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListUrlMapsRequest project. */
                    public project: string;

                    /** AggregatedListUrlMapsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListUrlMapsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListUrlMapsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListUrlMapsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListUrlMapsRequest): google.cloud.compute.v1beta.AggregatedListUrlMapsRequest;

                    /**
                     * Encodes the specified AggregatedListUrlMapsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListUrlMapsRequest.verify|verify} messages.
                     * @param message AggregatedListUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListUrlMapsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListUrlMapsRequest.verify|verify} messages.
                     * @param message AggregatedListUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListUrlMapsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListUrlMapsRequest;

                    /**
                     * Decodes an AggregatedListUrlMapsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListUrlMapsRequest;

                    /**
                     * Verifies an AggregatedListUrlMapsRequest message.
                     * @param message Plain 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 AggregatedListUrlMapsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListUrlMapsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListUrlMapsRequest;

                    /**
                     * Creates a plain object from an AggregatedListUrlMapsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListUrlMapsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListUrlMapsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListUrlMapsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListUrlMapsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListVpnGatewaysRequest. */
                interface IAggregatedListVpnGatewaysRequest {

                    /** AggregatedListVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** AggregatedListVpnGatewaysRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListVpnGatewaysRequest project */
                    project?: (string|null);

                    /** AggregatedListVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListVpnGatewaysRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListVpnGatewaysRequest. */
                class AggregatedListVpnGatewaysRequest implements IAggregatedListVpnGatewaysRequest {

                    /**
                     * Constructs a new AggregatedListVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListVpnGatewaysRequest);

                    /** AggregatedListVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListVpnGatewaysRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListVpnGatewaysRequest project. */
                    public project: string;

                    /** AggregatedListVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListVpnGatewaysRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListVpnGatewaysRequest): google.cloud.compute.v1beta.AggregatedListVpnGatewaysRequest;

                    /**
                     * Encodes the specified AggregatedListVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListVpnGatewaysRequest.verify|verify} messages.
                     * @param message AggregatedListVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListVpnGatewaysRequest.verify|verify} messages.
                     * @param message AggregatedListVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListVpnGatewaysRequest;

                    /**
                     * Decodes an AggregatedListVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListVpnGatewaysRequest;

                    /**
                     * Verifies an AggregatedListVpnGatewaysRequest message.
                     * @param message Plain 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 AggregatedListVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListVpnGatewaysRequest;

                    /**
                     * Creates a plain object from an AggregatedListVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListVpnTunnelsRequest. */
                interface IAggregatedListVpnTunnelsRequest {

                    /** AggregatedListVpnTunnelsRequest filter */
                    filter?: (string|null);

                    /** AggregatedListVpnTunnelsRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListVpnTunnelsRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListVpnTunnelsRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListVpnTunnelsRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListVpnTunnelsRequest project */
                    project?: (string|null);

                    /** AggregatedListVpnTunnelsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** AggregatedListVpnTunnelsRequest serviceProjectNumber */
                    serviceProjectNumber?: (number|Long|string|null);
                }

                /** Represents an AggregatedListVpnTunnelsRequest. */
                class AggregatedListVpnTunnelsRequest implements IAggregatedListVpnTunnelsRequest {

                    /**
                     * Constructs a new AggregatedListVpnTunnelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAggregatedListVpnTunnelsRequest);

                    /** AggregatedListVpnTunnelsRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListVpnTunnelsRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListVpnTunnelsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListVpnTunnelsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListVpnTunnelsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListVpnTunnelsRequest project. */
                    public project: string;

                    /** AggregatedListVpnTunnelsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** AggregatedListVpnTunnelsRequest serviceProjectNumber. */
                    public serviceProjectNumber?: (number|Long|string|null);

                    /**
                     * Creates a new AggregatedListVpnTunnelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListVpnTunnelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAggregatedListVpnTunnelsRequest): google.cloud.compute.v1beta.AggregatedListVpnTunnelsRequest;

                    /**
                     * Encodes the specified AggregatedListVpnTunnelsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListVpnTunnelsRequest.verify|verify} messages.
                     * @param message AggregatedListVpnTunnelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAggregatedListVpnTunnelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListVpnTunnelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AggregatedListVpnTunnelsRequest.verify|verify} messages.
                     * @param message AggregatedListVpnTunnelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAggregatedListVpnTunnelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListVpnTunnelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListVpnTunnelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AggregatedListVpnTunnelsRequest;

                    /**
                     * Decodes an AggregatedListVpnTunnelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListVpnTunnelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AggregatedListVpnTunnelsRequest;

                    /**
                     * Verifies an AggregatedListVpnTunnelsRequest message.
                     * @param message Plain 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 AggregatedListVpnTunnelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListVpnTunnelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AggregatedListVpnTunnelsRequest;

                    /**
                     * Creates a plain object from an AggregatedListVpnTunnelsRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListVpnTunnelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AggregatedListVpnTunnelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListVpnTunnelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListVpnTunnelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AliasIpRange. */
                interface IAliasIpRange {

                    /** AliasIpRange ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** AliasIpRange subnetworkRangeName */
                    subnetworkRangeName?: (string|null);
                }

                /** Represents an AliasIpRange. */
                class AliasIpRange implements IAliasIpRange {

                    /**
                     * Constructs a new AliasIpRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAliasIpRange);

                    /** AliasIpRange ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** AliasIpRange subnetworkRangeName. */
                    public subnetworkRangeName?: (string|null);

                    /**
                     * Creates a new AliasIpRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AliasIpRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAliasIpRange): google.cloud.compute.v1beta.AliasIpRange;

                    /**
                     * Encodes the specified AliasIpRange message. Does not implicitly {@link google.cloud.compute.v1beta.AliasIpRange.verify|verify} messages.
                     * @param message AliasIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAliasIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AliasIpRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AliasIpRange.verify|verify} messages.
                     * @param message AliasIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAliasIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AliasIpRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AliasIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AliasIpRange;

                    /**
                     * Decodes an AliasIpRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AliasIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AliasIpRange;

                    /**
                     * Verifies an AliasIpRange message.
                     * @param message Plain 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 AliasIpRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AliasIpRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AliasIpRange;

                    /**
                     * Creates a plain object from an AliasIpRange message. Also converts values to other types if specified.
                     * @param message AliasIpRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AliasIpRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AliasIpRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AliasIpRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationAggregateReservation. */
                interface IAllocationAggregateReservation {

                    /** AllocationAggregateReservation hostCount */
                    hostCount?: (number|null);

                    /** AllocationAggregateReservation inUseHostCount */
                    inUseHostCount?: (number|null);

                    /** AllocationAggregateReservation inUseInstanceCount */
                    inUseInstanceCount?: (number|null);

                    /** AllocationAggregateReservation inUseResources */
                    inUseResources?: (google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfo[]|null);

                    /** AllocationAggregateReservation reservedResources */
                    reservedResources?: (google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfo[]|null);

                    /** AllocationAggregateReservation vmFamily */
                    vmFamily?: (string|null);

                    /** AllocationAggregateReservation workloadType */
                    workloadType?: (string|null);
                }

                /** Represents an AllocationAggregateReservation. */
                class AllocationAggregateReservation implements IAllocationAggregateReservation {

                    /**
                     * Constructs a new AllocationAggregateReservation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationAggregateReservation);

                    /** AllocationAggregateReservation hostCount. */
                    public hostCount?: (number|null);

                    /** AllocationAggregateReservation inUseHostCount. */
                    public inUseHostCount?: (number|null);

                    /** AllocationAggregateReservation inUseInstanceCount. */
                    public inUseInstanceCount?: (number|null);

                    /** AllocationAggregateReservation inUseResources. */
                    public inUseResources: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfo[];

                    /** AllocationAggregateReservation reservedResources. */
                    public reservedResources: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfo[];

                    /** AllocationAggregateReservation vmFamily. */
                    public vmFamily?: (string|null);

                    /** AllocationAggregateReservation workloadType. */
                    public workloadType?: (string|null);

                    /**
                     * Creates a new AllocationAggregateReservation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationAggregateReservation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationAggregateReservation): google.cloud.compute.v1beta.AllocationAggregateReservation;

                    /**
                     * Encodes the specified AllocationAggregateReservation message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationAggregateReservation.verify|verify} messages.
                     * @param message AllocationAggregateReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationAggregateReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationAggregateReservation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationAggregateReservation.verify|verify} messages.
                     * @param message AllocationAggregateReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationAggregateReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationAggregateReservation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationAggregateReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationAggregateReservation;

                    /**
                     * Decodes an AllocationAggregateReservation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationAggregateReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationAggregateReservation;

                    /**
                     * Verifies an AllocationAggregateReservation message.
                     * @param message Plain 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 AllocationAggregateReservation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationAggregateReservation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationAggregateReservation;

                    /**
                     * Creates a plain object from an AllocationAggregateReservation message. Also converts values to other types if specified.
                     * @param message AllocationAggregateReservation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationAggregateReservation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationAggregateReservation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationAggregateReservation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationAggregateReservation {

                    /** VmFamily enum. */
                    enum VmFamily {
                        UNDEFINED_VM_FAMILY = 0,
                        VM_FAMILY_CLOUD_TPU_DEVICE_CT3 = 42845948,
                        VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L = 108020067,
                        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP = 18705267,
                        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E = 398926997,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P = 517384376,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P = 517384407,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P = 517384438,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X = 485271888
                    }

                    /** WorkloadType enum. */
                    enum WorkloadType {
                        UNDEFINED_WORKLOAD_TYPE = 0,
                        BATCH = 62971674,
                        SERVING = 17781740,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an AllocationAggregateReservationReservedResourceInfo. */
                interface IAllocationAggregateReservationReservedResourceInfo {

                    /** AllocationAggregateReservationReservedResourceInfo accelerator */
                    accelerator?: (google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfoAccelerator|null);
                }

                /** Represents an AllocationAggregateReservationReservedResourceInfo. */
                class AllocationAggregateReservationReservedResourceInfo implements IAllocationAggregateReservationReservedResourceInfo {

                    /**
                     * Constructs a new AllocationAggregateReservationReservedResourceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfo);

                    /** AllocationAggregateReservationReservedResourceInfo accelerator. */
                    public accelerator?: (google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfoAccelerator|null);

                    /**
                     * Creates a new AllocationAggregateReservationReservedResourceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationAggregateReservationReservedResourceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfo): google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfo;

                    /**
                     * Encodes the specified AllocationAggregateReservationReservedResourceInfo message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfo.verify|verify} messages.
                     * @param message AllocationAggregateReservationReservedResourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationAggregateReservationReservedResourceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfo.verify|verify} messages.
                     * @param message AllocationAggregateReservationReservedResourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationAggregateReservationReservedResourceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationAggregateReservationReservedResourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfo;

                    /**
                     * Decodes an AllocationAggregateReservationReservedResourceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationAggregateReservationReservedResourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfo;

                    /**
                     * Verifies an AllocationAggregateReservationReservedResourceInfo message.
                     * @param message Plain 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 AllocationAggregateReservationReservedResourceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationAggregateReservationReservedResourceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfo;

                    /**
                     * Creates a plain object from an AllocationAggregateReservationReservedResourceInfo message. Also converts values to other types if specified.
                     * @param message AllocationAggregateReservationReservedResourceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationAggregateReservationReservedResourceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationAggregateReservationReservedResourceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationAggregateReservationReservedResourceInfoAccelerator. */
                interface IAllocationAggregateReservationReservedResourceInfoAccelerator {

                    /** AllocationAggregateReservationReservedResourceInfoAccelerator acceleratorCount */
                    acceleratorCount?: (number|null);

                    /** AllocationAggregateReservationReservedResourceInfoAccelerator acceleratorType */
                    acceleratorType?: (string|null);
                }

                /** Represents an AllocationAggregateReservationReservedResourceInfoAccelerator. */
                class AllocationAggregateReservationReservedResourceInfoAccelerator implements IAllocationAggregateReservationReservedResourceInfoAccelerator {

                    /**
                     * Constructs a new AllocationAggregateReservationReservedResourceInfoAccelerator.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfoAccelerator);

                    /** AllocationAggregateReservationReservedResourceInfoAccelerator acceleratorCount. */
                    public acceleratorCount?: (number|null);

                    /** AllocationAggregateReservationReservedResourceInfoAccelerator acceleratorType. */
                    public acceleratorType?: (string|null);

                    /**
                     * Creates a new AllocationAggregateReservationReservedResourceInfoAccelerator instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationAggregateReservationReservedResourceInfoAccelerator instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfoAccelerator): google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfoAccelerator;

                    /**
                     * Encodes the specified AllocationAggregateReservationReservedResourceInfoAccelerator message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfoAccelerator.verify|verify} messages.
                     * @param message AllocationAggregateReservationReservedResourceInfoAccelerator message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfoAccelerator, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationAggregateReservationReservedResourceInfoAccelerator message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfoAccelerator.verify|verify} messages.
                     * @param message AllocationAggregateReservationReservedResourceInfoAccelerator message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationAggregateReservationReservedResourceInfoAccelerator, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationAggregateReservationReservedResourceInfoAccelerator message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationAggregateReservationReservedResourceInfoAccelerator
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfoAccelerator;

                    /**
                     * Decodes an AllocationAggregateReservationReservedResourceInfoAccelerator message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationAggregateReservationReservedResourceInfoAccelerator
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfoAccelerator;

                    /**
                     * Verifies an AllocationAggregateReservationReservedResourceInfoAccelerator message.
                     * @param message Plain 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 AllocationAggregateReservationReservedResourceInfoAccelerator message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationAggregateReservationReservedResourceInfoAccelerator
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfoAccelerator;

                    /**
                     * Creates a plain object from an AllocationAggregateReservationReservedResourceInfoAccelerator message. Also converts values to other types if specified.
                     * @param message AllocationAggregateReservationReservedResourceInfoAccelerator
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationAggregateReservationReservedResourceInfoAccelerator, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationAggregateReservationReservedResourceInfoAccelerator to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationAggregateReservationReservedResourceInfoAccelerator
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationReservationSharingPolicy. */
                interface IAllocationReservationSharingPolicy {

                    /** AllocationReservationSharingPolicy serviceShareType */
                    serviceShareType?: (string|null);
                }

                /** Represents an AllocationReservationSharingPolicy. */
                class AllocationReservationSharingPolicy implements IAllocationReservationSharingPolicy {

                    /**
                     * Constructs a new AllocationReservationSharingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationReservationSharingPolicy);

                    /** AllocationReservationSharingPolicy serviceShareType. */
                    public serviceShareType?: (string|null);

                    /**
                     * Creates a new AllocationReservationSharingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationReservationSharingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationReservationSharingPolicy): google.cloud.compute.v1beta.AllocationReservationSharingPolicy;

                    /**
                     * Encodes the specified AllocationReservationSharingPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationReservationSharingPolicy.verify|verify} messages.
                     * @param message AllocationReservationSharingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationReservationSharingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationReservationSharingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationReservationSharingPolicy.verify|verify} messages.
                     * @param message AllocationReservationSharingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationReservationSharingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationReservationSharingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationReservationSharingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationReservationSharingPolicy;

                    /**
                     * Decodes an AllocationReservationSharingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationReservationSharingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationReservationSharingPolicy;

                    /**
                     * Verifies an AllocationReservationSharingPolicy message.
                     * @param message Plain 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 AllocationReservationSharingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationReservationSharingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationReservationSharingPolicy;

                    /**
                     * Creates a plain object from an AllocationReservationSharingPolicy message. Also converts values to other types if specified.
                     * @param message AllocationReservationSharingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationReservationSharingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationReservationSharingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationReservationSharingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationReservationSharingPolicy {

                    /** ServiceShareType enum. */
                    enum ServiceShareType {
                        UNDEFINED_SERVICE_SHARE_TYPE = 0,
                        ALLOW_ALL = 475536235,
                        DISALLOW_ALL = 277786301,
                        SERVICE_SHARE_TYPE_UNSPECIFIED = 279057148
                    }
                }

                /** Properties of an AllocationResourceStatus. */
                interface IAllocationResourceStatus {

                    /** AllocationResourceStatus healthInfo */
                    healthInfo?: (google.cloud.compute.v1beta.IAllocationResourceStatusHealthInfo|null);

                    /** AllocationResourceStatus reservationBlockCount */
                    reservationBlockCount?: (number|null);

                    /** AllocationResourceStatus reservationMaintenance */
                    reservationMaintenance?: (google.cloud.compute.v1beta.IGroupMaintenanceInfo|null);

                    /** AllocationResourceStatus specificSkuAllocation */
                    specificSkuAllocation?: (google.cloud.compute.v1beta.IAllocationResourceStatusSpecificSKUAllocation|null);
                }

                /** Represents an AllocationResourceStatus. */
                class AllocationResourceStatus implements IAllocationResourceStatus {

                    /**
                     * Constructs a new AllocationResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationResourceStatus);

                    /** AllocationResourceStatus healthInfo. */
                    public healthInfo?: (google.cloud.compute.v1beta.IAllocationResourceStatusHealthInfo|null);

                    /** AllocationResourceStatus reservationBlockCount. */
                    public reservationBlockCount?: (number|null);

                    /** AllocationResourceStatus reservationMaintenance. */
                    public reservationMaintenance?: (google.cloud.compute.v1beta.IGroupMaintenanceInfo|null);

                    /** AllocationResourceStatus specificSkuAllocation. */
                    public specificSkuAllocation?: (google.cloud.compute.v1beta.IAllocationResourceStatusSpecificSKUAllocation|null);

                    /**
                     * Creates a new AllocationResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationResourceStatus): google.cloud.compute.v1beta.AllocationResourceStatus;

                    /**
                     * Encodes the specified AllocationResourceStatus message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationResourceStatus.verify|verify} messages.
                     * @param message AllocationResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationResourceStatus.verify|verify} messages.
                     * @param message AllocationResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationResourceStatus;

                    /**
                     * Decodes an AllocationResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationResourceStatus;

                    /**
                     * Verifies an AllocationResourceStatus message.
                     * @param message Plain 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 AllocationResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationResourceStatus;

                    /**
                     * Creates a plain object from an AllocationResourceStatus message. Also converts values to other types if specified.
                     * @param message AllocationResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationResourceStatusHealthInfo. */
                interface IAllocationResourceStatusHealthInfo {

                    /** AllocationResourceStatusHealthInfo degradedBlockCount */
                    degradedBlockCount?: (number|null);

                    /** AllocationResourceStatusHealthInfo healthStatus */
                    healthStatus?: (string|null);

                    /** AllocationResourceStatusHealthInfo healthyBlockCount */
                    healthyBlockCount?: (number|null);
                }

                /** Represents an AllocationResourceStatusHealthInfo. */
                class AllocationResourceStatusHealthInfo implements IAllocationResourceStatusHealthInfo {

                    /**
                     * Constructs a new AllocationResourceStatusHealthInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationResourceStatusHealthInfo);

                    /** AllocationResourceStatusHealthInfo degradedBlockCount. */
                    public degradedBlockCount?: (number|null);

                    /** AllocationResourceStatusHealthInfo healthStatus. */
                    public healthStatus?: (string|null);

                    /** AllocationResourceStatusHealthInfo healthyBlockCount. */
                    public healthyBlockCount?: (number|null);

                    /**
                     * Creates a new AllocationResourceStatusHealthInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationResourceStatusHealthInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationResourceStatusHealthInfo): google.cloud.compute.v1beta.AllocationResourceStatusHealthInfo;

                    /**
                     * Encodes the specified AllocationResourceStatusHealthInfo message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationResourceStatusHealthInfo.verify|verify} messages.
                     * @param message AllocationResourceStatusHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationResourceStatusHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationResourceStatusHealthInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationResourceStatusHealthInfo.verify|verify} messages.
                     * @param message AllocationResourceStatusHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationResourceStatusHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationResourceStatusHealthInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationResourceStatusHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationResourceStatusHealthInfo;

                    /**
                     * Decodes an AllocationResourceStatusHealthInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationResourceStatusHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationResourceStatusHealthInfo;

                    /**
                     * Verifies an AllocationResourceStatusHealthInfo message.
                     * @param message Plain 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 AllocationResourceStatusHealthInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationResourceStatusHealthInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationResourceStatusHealthInfo;

                    /**
                     * Creates a plain object from an AllocationResourceStatusHealthInfo message. Also converts values to other types if specified.
                     * @param message AllocationResourceStatusHealthInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationResourceStatusHealthInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationResourceStatusHealthInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationResourceStatusHealthInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationResourceStatusHealthInfo {

                    /** HealthStatus enum. */
                    enum HealthStatus {
                        UNDEFINED_HEALTH_STATUS = 0,
                        DEGRADED = 396890926,
                        HEALTHY = 439801213,
                        HEALTH_STATUS_UNSPECIFIED = 482246925
                    }
                }

                /** Properties of an AllocationResourceStatusSpecificSKUAllocation. */
                interface IAllocationResourceStatusSpecificSKUAllocation {

                    /** AllocationResourceStatusSpecificSKUAllocation sourceInstanceTemplateId */
                    sourceInstanceTemplateId?: (string|null);

                    /** AllocationResourceStatusSpecificSKUAllocation utilizations */
                    utilizations?: ({ [k: string]: (number|Long|string) }|null);
                }

                /** Represents an AllocationResourceStatusSpecificSKUAllocation. */
                class AllocationResourceStatusSpecificSKUAllocation implements IAllocationResourceStatusSpecificSKUAllocation {

                    /**
                     * Constructs a new AllocationResourceStatusSpecificSKUAllocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationResourceStatusSpecificSKUAllocation);

                    /** AllocationResourceStatusSpecificSKUAllocation sourceInstanceTemplateId. */
                    public sourceInstanceTemplateId?: (string|null);

                    /** AllocationResourceStatusSpecificSKUAllocation utilizations. */
                    public utilizations: { [k: string]: (number|Long|string) };

                    /**
                     * Creates a new AllocationResourceStatusSpecificSKUAllocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationResourceStatusSpecificSKUAllocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationResourceStatusSpecificSKUAllocation): google.cloud.compute.v1beta.AllocationResourceStatusSpecificSKUAllocation;

                    /**
                     * Encodes the specified AllocationResourceStatusSpecificSKUAllocation message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationResourceStatusSpecificSKUAllocation.verify|verify} messages.
                     * @param message AllocationResourceStatusSpecificSKUAllocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationResourceStatusSpecificSKUAllocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationResourceStatusSpecificSKUAllocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationResourceStatusSpecificSKUAllocation.verify|verify} messages.
                     * @param message AllocationResourceStatusSpecificSKUAllocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationResourceStatusSpecificSKUAllocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationResourceStatusSpecificSKUAllocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationResourceStatusSpecificSKUAllocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationResourceStatusSpecificSKUAllocation;

                    /**
                     * Decodes an AllocationResourceStatusSpecificSKUAllocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationResourceStatusSpecificSKUAllocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationResourceStatusSpecificSKUAllocation;

                    /**
                     * Verifies an AllocationResourceStatusSpecificSKUAllocation message.
                     * @param message Plain 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 AllocationResourceStatusSpecificSKUAllocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationResourceStatusSpecificSKUAllocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationResourceStatusSpecificSKUAllocation;

                    /**
                     * Creates a plain object from an AllocationResourceStatusSpecificSKUAllocation message. Also converts values to other types if specified.
                     * @param message AllocationResourceStatusSpecificSKUAllocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationResourceStatusSpecificSKUAllocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationResourceStatusSpecificSKUAllocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationResourceStatusSpecificSKUAllocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk. */
                interface IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk {

                    /** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk interface */
                    "interface"?: (string|null);
                }

                /** Represents an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk. */
                class AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk implements IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk {

                    /**
                     * Constructs a new AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk);

                    /** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk interface. */
                    public interface?: (string|null);

                    /**
                     * Creates a new AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk): google.cloud.compute.v1beta.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk;

                    /**
                     * Encodes the specified AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk.verify|verify} messages.
                     * @param message AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk.verify|verify} messages.
                     * @param message AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk;

                    /**
                     * Decodes an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk;

                    /**
                     * Verifies an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message.
                     * @param message Plain 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 AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk;

                    /**
                     * Creates a plain object from an AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk message. Also converts values to other types if specified.
                     * @param message AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk {

                    /** Interface enum. */
                    enum Interface {
                        UNDEFINED_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686
                    }
                }

                /** Properties of an AllocationSpecificSKUAllocationReservedInstanceProperties. */
                interface IAllocationSpecificSKUAllocationReservedInstanceProperties {

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1beta.IAcceleratorConfig[]|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties localSsds */
                    localSsds?: (google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk[]|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties locationHint */
                    locationHint?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties machineType */
                    machineType?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties maintenanceFreezeDurationHours */
                    maintenanceFreezeDurationHours?: (number|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties maintenanceInterval */
                    maintenanceInterval?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties minCpuPlatform */
                    minCpuPlatform?: (string|null);
                }

                /** Represents an AllocationSpecificSKUAllocationReservedInstanceProperties. */
                class AllocationSpecificSKUAllocationReservedInstanceProperties implements IAllocationSpecificSKUAllocationReservedInstanceProperties {

                    /**
                     * Constructs a new AllocationSpecificSKUAllocationReservedInstanceProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationReservedInstanceProperties);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1beta.IAcceleratorConfig[];

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties localSsds. */
                    public localSsds: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk[];

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties locationHint. */
                    public locationHint?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties machineType. */
                    public machineType?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties maintenanceFreezeDurationHours. */
                    public maintenanceFreezeDurationHours?: (number|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties maintenanceInterval. */
                    public maintenanceInterval?: (string|null);

                    /** AllocationSpecificSKUAllocationReservedInstanceProperties minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /**
                     * Creates a new AllocationSpecificSKUAllocationReservedInstanceProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationSpecificSKUAllocationReservedInstanceProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationReservedInstanceProperties): google.cloud.compute.v1beta.AllocationSpecificSKUAllocationReservedInstanceProperties;

                    /**
                     * Encodes the specified AllocationSpecificSKUAllocationReservedInstanceProperties message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationSpecificSKUAllocationReservedInstanceProperties.verify|verify} messages.
                     * @param message AllocationSpecificSKUAllocationReservedInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationReservedInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationSpecificSKUAllocationReservedInstanceProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationSpecificSKUAllocationReservedInstanceProperties.verify|verify} messages.
                     * @param message AllocationSpecificSKUAllocationReservedInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationReservedInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationSpecificSKUAllocationReservedInstanceProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationSpecificSKUAllocationReservedInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationSpecificSKUAllocationReservedInstanceProperties;

                    /**
                     * Decodes an AllocationSpecificSKUAllocationReservedInstanceProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationSpecificSKUAllocationReservedInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationSpecificSKUAllocationReservedInstanceProperties;

                    /**
                     * Verifies an AllocationSpecificSKUAllocationReservedInstanceProperties message.
                     * @param message Plain 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 AllocationSpecificSKUAllocationReservedInstanceProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationSpecificSKUAllocationReservedInstanceProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationSpecificSKUAllocationReservedInstanceProperties;

                    /**
                     * Creates a plain object from an AllocationSpecificSKUAllocationReservedInstanceProperties message. Also converts values to other types if specified.
                     * @param message AllocationSpecificSKUAllocationReservedInstanceProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationSpecificSKUAllocationReservedInstanceProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationSpecificSKUAllocationReservedInstanceProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationSpecificSKUAllocationReservedInstanceProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AllocationSpecificSKUAllocationReservedInstanceProperties {

                    /** MaintenanceInterval enum. */
                    enum MaintenanceInterval {
                        UNDEFINED_MAINTENANCE_INTERVAL = 0,
                        AS_NEEDED = 500724834,
                        PERIODIC = 142804635,
                        RECURRENT = 194244550
                    }
                }

                /** Properties of an AllocationSpecificSKUReservation. */
                interface IAllocationSpecificSKUReservation {

                    /** AllocationSpecificSKUReservation assuredCount */
                    assuredCount?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation count */
                    count?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation inUseCount */
                    inUseCount?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation instanceProperties */
                    instanceProperties?: (google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationReservedInstanceProperties|null);

                    /** AllocationSpecificSKUReservation sourceInstanceTemplate */
                    sourceInstanceTemplate?: (string|null);
                }

                /** Represents an AllocationSpecificSKUReservation. */
                class AllocationSpecificSKUReservation implements IAllocationSpecificSKUReservation {

                    /**
                     * Constructs a new AllocationSpecificSKUReservation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllocationSpecificSKUReservation);

                    /** AllocationSpecificSKUReservation assuredCount. */
                    public assuredCount?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation count. */
                    public count?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation inUseCount. */
                    public inUseCount?: (number|Long|string|null);

                    /** AllocationSpecificSKUReservation instanceProperties. */
                    public instanceProperties?: (google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationReservedInstanceProperties|null);

                    /** AllocationSpecificSKUReservation sourceInstanceTemplate. */
                    public sourceInstanceTemplate?: (string|null);

                    /**
                     * Creates a new AllocationSpecificSKUReservation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AllocationSpecificSKUReservation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllocationSpecificSKUReservation): google.cloud.compute.v1beta.AllocationSpecificSKUReservation;

                    /**
                     * Encodes the specified AllocationSpecificSKUReservation message. Does not implicitly {@link google.cloud.compute.v1beta.AllocationSpecificSKUReservation.verify|verify} messages.
                     * @param message AllocationSpecificSKUReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllocationSpecificSKUReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AllocationSpecificSKUReservation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AllocationSpecificSKUReservation.verify|verify} messages.
                     * @param message AllocationSpecificSKUReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllocationSpecificSKUReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AllocationSpecificSKUReservation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllocationSpecificSKUReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AllocationSpecificSKUReservation;

                    /**
                     * Decodes an AllocationSpecificSKUReservation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllocationSpecificSKUReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AllocationSpecificSKUReservation;

                    /**
                     * Verifies an AllocationSpecificSKUReservation message.
                     * @param message Plain 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 AllocationSpecificSKUReservation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllocationSpecificSKUReservation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AllocationSpecificSKUReservation;

                    /**
                     * Creates a plain object from an AllocationSpecificSKUReservation message. Also converts values to other types if specified.
                     * @param message AllocationSpecificSKUReservation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AllocationSpecificSKUReservation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AllocationSpecificSKUReservation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AllocationSpecificSKUReservation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Allowed. */
                interface IAllowed {

                    /** Allowed IPProtocol */
                    IPProtocol?: (string|null);

                    /** Allowed ports */
                    ports?: (string[]|null);
                }

                /** Represents an Allowed. */
                class Allowed implements IAllowed {

                    /**
                     * Constructs a new Allowed.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAllowed);

                    /** Allowed IPProtocol. */
                    public IPProtocol?: (string|null);

                    /** Allowed ports. */
                    public ports: string[];

                    /**
                     * Creates a new Allowed instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Allowed instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAllowed): google.cloud.compute.v1beta.Allowed;

                    /**
                     * Encodes the specified Allowed message. Does not implicitly {@link google.cloud.compute.v1beta.Allowed.verify|verify} messages.
                     * @param message Allowed message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAllowed, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Allowed message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Allowed.verify|verify} messages.
                     * @param message Allowed message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAllowed, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Allowed message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Allowed
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Allowed;

                    /**
                     * Decodes an Allowed message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Allowed
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Allowed;

                    /**
                     * Verifies an Allowed message.
                     * @param message Plain 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 Allowed message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Allowed
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Allowed;

                    /**
                     * Creates a plain object from an Allowed message. Also converts values to other types if specified.
                     * @param message Allowed
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Allowed, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Allowed to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Allowed
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AnnouncePublicAdvertisedPrefixeRequest. */
                interface IAnnouncePublicAdvertisedPrefixeRequest {

                    /** AnnouncePublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** AnnouncePublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);

                    /** AnnouncePublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AnnouncePublicAdvertisedPrefixeRequest. */
                class AnnouncePublicAdvertisedPrefixeRequest implements IAnnouncePublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new AnnouncePublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAnnouncePublicAdvertisedPrefixeRequest);

                    /** AnnouncePublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** AnnouncePublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /** AnnouncePublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AnnouncePublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnnouncePublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAnnouncePublicAdvertisedPrefixeRequest): google.cloud.compute.v1beta.AnnouncePublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified AnnouncePublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AnnouncePublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message AnnouncePublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAnnouncePublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnnouncePublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AnnouncePublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message AnnouncePublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAnnouncePublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnnouncePublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnnouncePublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AnnouncePublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes an AnnouncePublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnnouncePublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AnnouncePublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies an AnnouncePublicAdvertisedPrefixeRequest message.
                     * @param message Plain 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 AnnouncePublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnnouncePublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AnnouncePublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from an AnnouncePublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message AnnouncePublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AnnouncePublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnnouncePublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnnouncePublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AnnouncePublicDelegatedPrefixeRequest. */
                interface IAnnouncePublicDelegatedPrefixeRequest {

                    /** AnnouncePublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** AnnouncePublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** AnnouncePublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** AnnouncePublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AnnouncePublicDelegatedPrefixeRequest. */
                class AnnouncePublicDelegatedPrefixeRequest implements IAnnouncePublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new AnnouncePublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAnnouncePublicDelegatedPrefixeRequest);

                    /** AnnouncePublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** AnnouncePublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** AnnouncePublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** AnnouncePublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AnnouncePublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnnouncePublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAnnouncePublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.AnnouncePublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified AnnouncePublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AnnouncePublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message AnnouncePublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAnnouncePublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnnouncePublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AnnouncePublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message AnnouncePublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAnnouncePublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnnouncePublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnnouncePublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AnnouncePublicDelegatedPrefixeRequest;

                    /**
                     * Decodes an AnnouncePublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnnouncePublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AnnouncePublicDelegatedPrefixeRequest;

                    /**
                     * Verifies an AnnouncePublicDelegatedPrefixeRequest message.
                     * @param message Plain 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 AnnouncePublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnnouncePublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AnnouncePublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from an AnnouncePublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message AnnouncePublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AnnouncePublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnnouncePublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnnouncePublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ApplyUpdatesToInstancesInstanceGroupManagerRequest. */
                interface IApplyUpdatesToInstancesInstanceGroupManagerRequest {

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest instanceGroupManagersApplyUpdatesRequestResource */
                    instanceGroupManagersApplyUpdatesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersApplyUpdatesRequest|null);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an ApplyUpdatesToInstancesInstanceGroupManagerRequest. */
                class ApplyUpdatesToInstancesInstanceGroupManagerRequest implements IApplyUpdatesToInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ApplyUpdatesToInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IApplyUpdatesToInstancesInstanceGroupManagerRequest);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest instanceGroupManagersApplyUpdatesRequestResource. */
                    public instanceGroupManagersApplyUpdatesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersApplyUpdatesRequest|null);

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ApplyUpdatesToInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ApplyUpdatesToInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ApplyUpdatesToInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IApplyUpdatesToInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.ApplyUpdatesToInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ApplyUpdatesToInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ApplyUpdatesToInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ApplyUpdatesToInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IApplyUpdatesToInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ApplyUpdatesToInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ApplyUpdatesToInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ApplyUpdatesToInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IApplyUpdatesToInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ApplyUpdatesToInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ApplyUpdatesToInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes an ApplyUpdatesToInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ApplyUpdatesToInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies an ApplyUpdatesToInstancesInstanceGroupManagerRequest message.
                     * @param message Plain 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 ApplyUpdatesToInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ApplyUpdatesToInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an ApplyUpdatesToInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ApplyUpdatesToInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ApplyUpdatesToInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ApplyUpdatesToInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest. */
                interface IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest {

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersApplyUpdatesRequestResource */
                    regionInstanceGroupManagersApplyUpdatesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersApplyUpdatesRequest|null);
                }

                /** Represents an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest. */
                class ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest implements IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest);

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersApplyUpdatesRequestResource. */
                    public regionInstanceGroupManagersApplyUpdatesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersApplyUpdatesRequest|null);

                    /**
                     * Creates a new ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachDiskInstanceRequest. */
                interface IAttachDiskInstanceRequest {

                    /** AttachDiskInstanceRequest attachedDiskResource */
                    attachedDiskResource?: (google.cloud.compute.v1beta.IAttachedDisk|null);

                    /** AttachDiskInstanceRequest forceAttach */
                    forceAttach?: (boolean|null);

                    /** AttachDiskInstanceRequest instance */
                    instance?: (string|null);

                    /** AttachDiskInstanceRequest project */
                    project?: (string|null);

                    /** AttachDiskInstanceRequest requestId */
                    requestId?: (string|null);

                    /** AttachDiskInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AttachDiskInstanceRequest. */
                class AttachDiskInstanceRequest implements IAttachDiskInstanceRequest {

                    /**
                     * Constructs a new AttachDiskInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAttachDiskInstanceRequest);

                    /** AttachDiskInstanceRequest attachedDiskResource. */
                    public attachedDiskResource?: (google.cloud.compute.v1beta.IAttachedDisk|null);

                    /** AttachDiskInstanceRequest forceAttach. */
                    public forceAttach?: (boolean|null);

                    /** AttachDiskInstanceRequest instance. */
                    public instance: string;

                    /** AttachDiskInstanceRequest project. */
                    public project: string;

                    /** AttachDiskInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** AttachDiskInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AttachDiskInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachDiskInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAttachDiskInstanceRequest): google.cloud.compute.v1beta.AttachDiskInstanceRequest;

                    /**
                     * Encodes the specified AttachDiskInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AttachDiskInstanceRequest.verify|verify} messages.
                     * @param message AttachDiskInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAttachDiskInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachDiskInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AttachDiskInstanceRequest.verify|verify} messages.
                     * @param message AttachDiskInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAttachDiskInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachDiskInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachDiskInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AttachDiskInstanceRequest;

                    /**
                     * Decodes an AttachDiskInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachDiskInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AttachDiskInstanceRequest;

                    /**
                     * Verifies an AttachDiskInstanceRequest message.
                     * @param message Plain 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 AttachDiskInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachDiskInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AttachDiskInstanceRequest;

                    /**
                     * Creates a plain object from an AttachDiskInstanceRequest message. Also converts values to other types if specified.
                     * @param message AttachDiskInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AttachDiskInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachDiskInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachDiskInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest. */
                interface IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest {

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest globalNetworkEndpointGroupsAttachEndpointsRequestResource */
                    globalNetworkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest. */
                class AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest implements IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest globalNetworkEndpointGroupsAttachEndpointsRequestResource. */
                    public globalNetworkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1beta.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain 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 AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachNetworkEndpointsNetworkEndpointGroupRequest. */
                interface IAttachNetworkEndpointsNetworkEndpointGroupRequest {

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroupsAttachEndpointsRequestResource */
                    networkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1beta.INetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an AttachNetworkEndpointsNetworkEndpointGroupRequest. */
                class AttachNetworkEndpointsNetworkEndpointGroupRequest implements IAttachNetworkEndpointsNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new AttachNetworkEndpointsNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAttachNetworkEndpointsNetworkEndpointGroupRequest);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroupsAttachEndpointsRequestResource. */
                    public networkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1beta.INetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** AttachNetworkEndpointsNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new AttachNetworkEndpointsNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachNetworkEndpointsNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAttachNetworkEndpointsNetworkEndpointGroupRequest): google.cloud.compute.v1beta.AttachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified AttachNetworkEndpointsNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AttachNetworkEndpointsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAttachNetworkEndpointsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachNetworkEndpointsNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AttachNetworkEndpointsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAttachNetworkEndpointsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachNetworkEndpointsNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachNetworkEndpointsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AttachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Decodes an AttachNetworkEndpointsNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachNetworkEndpointsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AttachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Verifies an AttachNetworkEndpointsNetworkEndpointGroupRequest message.
                     * @param message Plain 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 AttachNetworkEndpointsNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachNetworkEndpointsNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AttachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an AttachNetworkEndpointsNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message AttachNetworkEndpointsNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AttachNetworkEndpointsNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachNetworkEndpointsNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachNetworkEndpointsNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest. */
                interface IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest {

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest regionNetworkEndpointGroupsAttachEndpointsRequestResource */
                    regionNetworkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest. */
                class AttachNetworkEndpointsRegionNetworkEndpointGroupRequest implements IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new AttachNetworkEndpointsRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest regionNetworkEndpointGroupsAttachEndpointsRequestResource. */
                    public regionNetworkEndpointGroupsAttachEndpointsRequestResource?: (google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsAttachEndpointsRequest|null);

                    /** AttachNetworkEndpointsRegionNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new AttachNetworkEndpointsRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachNetworkEndpointsRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest): google.cloud.compute.v1beta.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message.
                     * @param message Plain 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 AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachNetworkEndpointsRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AttachedDisk. */
                interface IAttachedDisk {

                    /** AttachedDisk architecture */
                    architecture?: (string|null);

                    /** AttachedDisk autoDelete */
                    autoDelete?: (boolean|null);

                    /** AttachedDisk boot */
                    boot?: (boolean|null);

                    /** AttachedDisk deviceName */
                    deviceName?: (string|null);

                    /** AttachedDisk diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** AttachedDisk diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** AttachedDisk forceAttach */
                    forceAttach?: (boolean|null);

                    /** AttachedDisk guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1beta.IGuestOsFeature[]|null);

                    /** AttachedDisk index */
                    index?: (number|null);

                    /** AttachedDisk initializeParams */
                    initializeParams?: (google.cloud.compute.v1beta.IAttachedDiskInitializeParams|null);

                    /** AttachedDisk interface */
                    "interface"?: (string|null);

                    /** AttachedDisk kind */
                    kind?: (string|null);

                    /** AttachedDisk licenses */
                    licenses?: (string[]|null);

                    /** AttachedDisk locked */
                    locked?: (boolean|null);

                    /** AttachedDisk mode */
                    mode?: (string|null);

                    /** AttachedDisk savedState */
                    savedState?: (string|null);

                    /** AttachedDisk shieldedInstanceInitialState */
                    shieldedInstanceInitialState?: (google.cloud.compute.v1beta.IInitialStateConfig|null);

                    /** AttachedDisk source */
                    source?: (string|null);

                    /** AttachedDisk type */
                    type?: (string|null);

                    /** AttachedDisk userLicenses */
                    userLicenses?: (string[]|null);
                }

                /** Represents an AttachedDisk. */
                class AttachedDisk implements IAttachedDisk {

                    /**
                     * Constructs a new AttachedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAttachedDisk);

                    /** AttachedDisk architecture. */
                    public architecture?: (string|null);

                    /** AttachedDisk autoDelete. */
                    public autoDelete?: (boolean|null);

                    /** AttachedDisk boot. */
                    public boot?: (boolean|null);

                    /** AttachedDisk deviceName. */
                    public deviceName?: (string|null);

                    /** AttachedDisk diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** AttachedDisk diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** AttachedDisk forceAttach. */
                    public forceAttach?: (boolean|null);

                    /** AttachedDisk guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1beta.IGuestOsFeature[];

                    /** AttachedDisk index. */
                    public index?: (number|null);

                    /** AttachedDisk initializeParams. */
                    public initializeParams?: (google.cloud.compute.v1beta.IAttachedDiskInitializeParams|null);

                    /** AttachedDisk interface. */
                    public interface?: (string|null);

                    /** AttachedDisk kind. */
                    public kind?: (string|null);

                    /** AttachedDisk licenses. */
                    public licenses: string[];

                    /** AttachedDisk locked. */
                    public locked?: (boolean|null);

                    /** AttachedDisk mode. */
                    public mode?: (string|null);

                    /** AttachedDisk savedState. */
                    public savedState?: (string|null);

                    /** AttachedDisk shieldedInstanceInitialState. */
                    public shieldedInstanceInitialState?: (google.cloud.compute.v1beta.IInitialStateConfig|null);

                    /** AttachedDisk source. */
                    public source?: (string|null);

                    /** AttachedDisk type. */
                    public type?: (string|null);

                    /** AttachedDisk userLicenses. */
                    public userLicenses: string[];

                    /**
                     * Creates a new AttachedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAttachedDisk): google.cloud.compute.v1beta.AttachedDisk;

                    /**
                     * Encodes the specified AttachedDisk message. Does not implicitly {@link google.cloud.compute.v1beta.AttachedDisk.verify|verify} messages.
                     * @param message AttachedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAttachedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AttachedDisk.verify|verify} messages.
                     * @param message AttachedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAttachedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AttachedDisk;

                    /**
                     * Decodes an AttachedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AttachedDisk;

                    /**
                     * Verifies an AttachedDisk message.
                     * @param message Plain 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 AttachedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AttachedDisk;

                    /**
                     * Creates a plain object from an AttachedDisk message. Also converts values to other types if specified.
                     * @param message AttachedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AttachedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AttachedDisk {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** Interface enum. */
                    enum Interface {
                        UNDEFINED_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        READ_ONLY = 91950261,
                        READ_WRITE = 173607894
                    }

                    /** SavedState enum. */
                    enum SavedState {
                        UNDEFINED_SAVED_STATE = 0,
                        DISK_SAVED_STATE_UNSPECIFIED = 391290831,
                        PRESERVED = 254159736
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        PERSISTENT = 460683927,
                        SCRATCH = 496778970
                    }
                }

                /** Properties of an AttachedDiskInitializeParams. */
                interface IAttachedDiskInitializeParams {

                    /** AttachedDiskInitializeParams architecture */
                    architecture?: (string|null);

                    /** AttachedDiskInitializeParams description */
                    description?: (string|null);

                    /** AttachedDiskInitializeParams diskName */
                    diskName?: (string|null);

                    /** AttachedDiskInitializeParams diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams diskType */
                    diskType?: (string|null);

                    /** AttachedDiskInitializeParams enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);

                    /** AttachedDiskInitializeParams guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1beta.IGuestOsFeature[]|null);

                    /** AttachedDiskInitializeParams labels */
                    labels?: ({ [k: string]: string }|null);

                    /** AttachedDiskInitializeParams licenses */
                    licenses?: (string[]|null);

                    /** AttachedDiskInitializeParams multiWriter */
                    multiWriter?: (boolean|null);

                    /** AttachedDiskInitializeParams onUpdateAction */
                    onUpdateAction?: (string|null);

                    /** AttachedDiskInitializeParams provisionedIops */
                    provisionedIops?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams provisionedThroughput */
                    provisionedThroughput?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams replicaZones */
                    replicaZones?: (string[]|null);

                    /** AttachedDiskInitializeParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);

                    /** AttachedDiskInitializeParams resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** AttachedDiskInitializeParams sourceImage */
                    sourceImage?: (string|null);

                    /** AttachedDiskInitializeParams sourceImageEncryptionKey */
                    sourceImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** AttachedDiskInitializeParams sourceInstantSnapshot */
                    sourceInstantSnapshot?: (string|null);

                    /** AttachedDiskInitializeParams sourceSnapshot */
                    sourceSnapshot?: (string|null);

                    /** AttachedDiskInitializeParams sourceSnapshotEncryptionKey */
                    sourceSnapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** AttachedDiskInitializeParams storagePool */
                    storagePool?: (string|null);
                }

                /** Represents an AttachedDiskInitializeParams. */
                class AttachedDiskInitializeParams implements IAttachedDiskInitializeParams {

                    /**
                     * Constructs a new AttachedDiskInitializeParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAttachedDiskInitializeParams);

                    /** AttachedDiskInitializeParams architecture. */
                    public architecture?: (string|null);

                    /** AttachedDiskInitializeParams description. */
                    public description?: (string|null);

                    /** AttachedDiskInitializeParams diskName. */
                    public diskName?: (string|null);

                    /** AttachedDiskInitializeParams diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams diskType. */
                    public diskType?: (string|null);

                    /** AttachedDiskInitializeParams enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /** AttachedDiskInitializeParams guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1beta.IGuestOsFeature[];

                    /** AttachedDiskInitializeParams labels. */
                    public labels: { [k: string]: string };

                    /** AttachedDiskInitializeParams licenses. */
                    public licenses: string[];

                    /** AttachedDiskInitializeParams multiWriter. */
                    public multiWriter?: (boolean|null);

                    /** AttachedDiskInitializeParams onUpdateAction. */
                    public onUpdateAction?: (string|null);

                    /** AttachedDiskInitializeParams provisionedIops. */
                    public provisionedIops?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams provisionedThroughput. */
                    public provisionedThroughput?: (number|Long|string|null);

                    /** AttachedDiskInitializeParams replicaZones. */
                    public replicaZones: string[];

                    /** AttachedDiskInitializeParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /** AttachedDiskInitializeParams resourcePolicies. */
                    public resourcePolicies: string[];

                    /** AttachedDiskInitializeParams sourceImage. */
                    public sourceImage?: (string|null);

                    /** AttachedDiskInitializeParams sourceImageEncryptionKey. */
                    public sourceImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** AttachedDiskInitializeParams sourceInstantSnapshot. */
                    public sourceInstantSnapshot?: (string|null);

                    /** AttachedDiskInitializeParams sourceSnapshot. */
                    public sourceSnapshot?: (string|null);

                    /** AttachedDiskInitializeParams sourceSnapshotEncryptionKey. */
                    public sourceSnapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** AttachedDiskInitializeParams storagePool. */
                    public storagePool?: (string|null);

                    /**
                     * Creates a new AttachedDiskInitializeParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AttachedDiskInitializeParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAttachedDiskInitializeParams): google.cloud.compute.v1beta.AttachedDiskInitializeParams;

                    /**
                     * Encodes the specified AttachedDiskInitializeParams message. Does not implicitly {@link google.cloud.compute.v1beta.AttachedDiskInitializeParams.verify|verify} messages.
                     * @param message AttachedDiskInitializeParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAttachedDiskInitializeParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AttachedDiskInitializeParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AttachedDiskInitializeParams.verify|verify} messages.
                     * @param message AttachedDiskInitializeParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAttachedDiskInitializeParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AttachedDiskInitializeParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AttachedDiskInitializeParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AttachedDiskInitializeParams;

                    /**
                     * Decodes an AttachedDiskInitializeParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AttachedDiskInitializeParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AttachedDiskInitializeParams;

                    /**
                     * Verifies an AttachedDiskInitializeParams message.
                     * @param message Plain 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 AttachedDiskInitializeParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AttachedDiskInitializeParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AttachedDiskInitializeParams;

                    /**
                     * Creates a plain object from an AttachedDiskInitializeParams message. Also converts values to other types if specified.
                     * @param message AttachedDiskInitializeParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AttachedDiskInitializeParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AttachedDiskInitializeParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AttachedDiskInitializeParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AttachedDiskInitializeParams {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** OnUpdateAction enum. */
                    enum OnUpdateAction {
                        UNDEFINED_ON_UPDATE_ACTION = 0,
                        RECREATE_DISK = 494767853,
                        RECREATE_DISK_IF_SOURCE_CHANGED = 398099712,
                        USE_EXISTING_DISK = 232682233
                    }
                }

                /** Properties of an AuditConfig. */
                interface IAuditConfig {

                    /** AuditConfig auditLogConfigs */
                    auditLogConfigs?: (google.cloud.compute.v1beta.IAuditLogConfig[]|null);

                    /** AuditConfig exemptedMembers */
                    exemptedMembers?: (string[]|null);

                    /** AuditConfig service */
                    service?: (string|null);
                }

                /** Represents an AuditConfig. */
                class AuditConfig implements IAuditConfig {

                    /**
                     * Constructs a new AuditConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAuditConfig);

                    /** AuditConfig auditLogConfigs. */
                    public auditLogConfigs: google.cloud.compute.v1beta.IAuditLogConfig[];

                    /** AuditConfig exemptedMembers. */
                    public exemptedMembers: string[];

                    /** AuditConfig service. */
                    public service?: (string|null);

                    /**
                     * Creates a new AuditConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AuditConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAuditConfig): google.cloud.compute.v1beta.AuditConfig;

                    /**
                     * Encodes the specified AuditConfig message. Does not implicitly {@link google.cloud.compute.v1beta.AuditConfig.verify|verify} messages.
                     * @param message AuditConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAuditConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AuditConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AuditConfig.verify|verify} messages.
                     * @param message AuditConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAuditConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AuditConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AuditConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AuditConfig;

                    /**
                     * Decodes an AuditConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AuditConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AuditConfig;

                    /**
                     * Verifies an AuditConfig message.
                     * @param message Plain 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 AuditConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AuditConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AuditConfig;

                    /**
                     * Creates a plain object from an AuditConfig message. Also converts values to other types if specified.
                     * @param message AuditConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AuditConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AuditConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AuditConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AuditLogConfig. */
                interface IAuditLogConfig {

                    /** AuditLogConfig exemptedMembers */
                    exemptedMembers?: (string[]|null);

                    /** AuditLogConfig ignoreChildExemptions */
                    ignoreChildExemptions?: (boolean|null);

                    /** AuditLogConfig logType */
                    logType?: (string|null);
                }

                /** Represents an AuditLogConfig. */
                class AuditLogConfig implements IAuditLogConfig {

                    /**
                     * Constructs a new AuditLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAuditLogConfig);

                    /** AuditLogConfig exemptedMembers. */
                    public exemptedMembers: string[];

                    /** AuditLogConfig ignoreChildExemptions. */
                    public ignoreChildExemptions?: (boolean|null);

                    /** AuditLogConfig logType. */
                    public logType?: (string|null);

                    /**
                     * Creates a new AuditLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AuditLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAuditLogConfig): google.cloud.compute.v1beta.AuditLogConfig;

                    /**
                     * Encodes the specified AuditLogConfig message. Does not implicitly {@link google.cloud.compute.v1beta.AuditLogConfig.verify|verify} messages.
                     * @param message AuditLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAuditLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AuditLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AuditLogConfig.verify|verify} messages.
                     * @param message AuditLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAuditLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AuditLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AuditLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AuditLogConfig;

                    /**
                     * Decodes an AuditLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AuditLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AuditLogConfig;

                    /**
                     * Verifies an AuditLogConfig message.
                     * @param message Plain 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 AuditLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AuditLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AuditLogConfig;

                    /**
                     * Creates a plain object from an AuditLogConfig message. Also converts values to other types if specified.
                     * @param message AuditLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AuditLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AuditLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AuditLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AuditLogConfig {

                    /** LogType enum. */
                    enum LogType {
                        UNDEFINED_LOG_TYPE = 0,
                        ADMIN_READ = 128951462,
                        DATA_READ = 305224971,
                        DATA_WRITE = 340181738,
                        LOG_TYPE_UNSPECIFIED = 154527053
                    }
                }

                /** Properties of an Autoscaler. */
                interface IAutoscaler {

                    /** Autoscaler autoscalingPolicy */
                    autoscalingPolicy?: (google.cloud.compute.v1beta.IAutoscalingPolicy|null);

                    /** Autoscaler creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Autoscaler description */
                    description?: (string|null);

                    /** Autoscaler id */
                    id?: (number|Long|string|null);

                    /** Autoscaler kind */
                    kind?: (string|null);

                    /** Autoscaler name */
                    name?: (string|null);

                    /** Autoscaler recommendedSize */
                    recommendedSize?: (number|null);

                    /** Autoscaler region */
                    region?: (string|null);

                    /** Autoscaler scalingScheduleStatus */
                    scalingScheduleStatus?: ({ [k: string]: google.cloud.compute.v1beta.IScalingScheduleStatus }|null);

                    /** Autoscaler selfLink */
                    selfLink?: (string|null);

                    /** Autoscaler status */
                    status?: (string|null);

                    /** Autoscaler statusDetails */
                    statusDetails?: (google.cloud.compute.v1beta.IAutoscalerStatusDetails[]|null);

                    /** Autoscaler target */
                    target?: (string|null);

                    /** Autoscaler zone */
                    zone?: (string|null);
                }

                /** Represents an Autoscaler. */
                class Autoscaler implements IAutoscaler {

                    /**
                     * Constructs a new Autoscaler.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscaler);

                    /** Autoscaler autoscalingPolicy. */
                    public autoscalingPolicy?: (google.cloud.compute.v1beta.IAutoscalingPolicy|null);

                    /** Autoscaler creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Autoscaler description. */
                    public description?: (string|null);

                    /** Autoscaler id. */
                    public id?: (number|Long|string|null);

                    /** Autoscaler kind. */
                    public kind?: (string|null);

                    /** Autoscaler name. */
                    public name?: (string|null);

                    /** Autoscaler recommendedSize. */
                    public recommendedSize?: (number|null);

                    /** Autoscaler region. */
                    public region?: (string|null);

                    /** Autoscaler scalingScheduleStatus. */
                    public scalingScheduleStatus: { [k: string]: google.cloud.compute.v1beta.IScalingScheduleStatus };

                    /** Autoscaler selfLink. */
                    public selfLink?: (string|null);

                    /** Autoscaler status. */
                    public status?: (string|null);

                    /** Autoscaler statusDetails. */
                    public statusDetails: google.cloud.compute.v1beta.IAutoscalerStatusDetails[];

                    /** Autoscaler target. */
                    public target?: (string|null);

                    /** Autoscaler zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Autoscaler instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Autoscaler instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscaler): google.cloud.compute.v1beta.Autoscaler;

                    /**
                     * Encodes the specified Autoscaler message. Does not implicitly {@link google.cloud.compute.v1beta.Autoscaler.verify|verify} messages.
                     * @param message Autoscaler message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscaler, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Autoscaler message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Autoscaler.verify|verify} messages.
                     * @param message Autoscaler message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscaler, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Autoscaler message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Autoscaler
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Autoscaler;

                    /**
                     * Decodes an Autoscaler message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Autoscaler
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Autoscaler;

                    /**
                     * Verifies an Autoscaler message.
                     * @param message Plain 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 Autoscaler message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Autoscaler
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Autoscaler;

                    /**
                     * Creates a plain object from an Autoscaler message. Also converts values to other types if specified.
                     * @param message Autoscaler
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Autoscaler, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Autoscaler to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Autoscaler
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Autoscaler {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        DELETING = 528602024,
                        ERROR = 66247144,
                        PENDING = 35394935
                    }
                }

                /** Properties of an AutoscalerAggregatedList. */
                interface IAutoscalerAggregatedList {

                    /** AutoscalerAggregatedList id */
                    id?: (string|null);

                    /** AutoscalerAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IAutoscalersScopedList }|null);

                    /** AutoscalerAggregatedList kind */
                    kind?: (string|null);

                    /** AutoscalerAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AutoscalerAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** AutoscalerAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** AutoscalerAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AutoscalerAggregatedList. */
                class AutoscalerAggregatedList implements IAutoscalerAggregatedList {

                    /**
                     * Constructs a new AutoscalerAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalerAggregatedList);

                    /** AutoscalerAggregatedList id. */
                    public id?: (string|null);

                    /** AutoscalerAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IAutoscalersScopedList };

                    /** AutoscalerAggregatedList kind. */
                    public kind?: (string|null);

                    /** AutoscalerAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AutoscalerAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** AutoscalerAggregatedList unreachables. */
                    public unreachables: string[];

                    /** AutoscalerAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AutoscalerAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalerAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalerAggregatedList): google.cloud.compute.v1beta.AutoscalerAggregatedList;

                    /**
                     * Encodes the specified AutoscalerAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalerAggregatedList.verify|verify} messages.
                     * @param message AutoscalerAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalerAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalerAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalerAggregatedList.verify|verify} messages.
                     * @param message AutoscalerAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalerAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalerAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalerAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalerAggregatedList;

                    /**
                     * Decodes an AutoscalerAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalerAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalerAggregatedList;

                    /**
                     * Verifies an AutoscalerAggregatedList message.
                     * @param message Plain 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 AutoscalerAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalerAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalerAggregatedList;

                    /**
                     * Creates a plain object from an AutoscalerAggregatedList message. Also converts values to other types if specified.
                     * @param message AutoscalerAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalerAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalerAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalerAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalerList. */
                interface IAutoscalerList {

                    /** AutoscalerList id */
                    id?: (string|null);

                    /** AutoscalerList items */
                    items?: (google.cloud.compute.v1beta.IAutoscaler[]|null);

                    /** AutoscalerList kind */
                    kind?: (string|null);

                    /** AutoscalerList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AutoscalerList selfLink */
                    selfLink?: (string|null);

                    /** AutoscalerList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AutoscalerList. */
                class AutoscalerList implements IAutoscalerList {

                    /**
                     * Constructs a new AutoscalerList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalerList);

                    /** AutoscalerList id. */
                    public id?: (string|null);

                    /** AutoscalerList items. */
                    public items: google.cloud.compute.v1beta.IAutoscaler[];

                    /** AutoscalerList kind. */
                    public kind?: (string|null);

                    /** AutoscalerList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AutoscalerList selfLink. */
                    public selfLink?: (string|null);

                    /** AutoscalerList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AutoscalerList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalerList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalerList): google.cloud.compute.v1beta.AutoscalerList;

                    /**
                     * Encodes the specified AutoscalerList message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalerList.verify|verify} messages.
                     * @param message AutoscalerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalerList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalerList.verify|verify} messages.
                     * @param message AutoscalerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalerList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalerList;

                    /**
                     * Decodes an AutoscalerList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalerList;

                    /**
                     * Verifies an AutoscalerList message.
                     * @param message Plain 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 AutoscalerList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalerList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalerList;

                    /**
                     * Creates a plain object from an AutoscalerList message. Also converts values to other types if specified.
                     * @param message AutoscalerList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalerList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalerList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalerStatusDetails. */
                interface IAutoscalerStatusDetails {

                    /** AutoscalerStatusDetails message */
                    message?: (string|null);

                    /** AutoscalerStatusDetails type */
                    type?: (string|null);
                }

                /** Represents an AutoscalerStatusDetails. */
                class AutoscalerStatusDetails implements IAutoscalerStatusDetails {

                    /**
                     * Constructs a new AutoscalerStatusDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalerStatusDetails);

                    /** AutoscalerStatusDetails message. */
                    public message?: (string|null);

                    /** AutoscalerStatusDetails type. */
                    public type?: (string|null);

                    /**
                     * Creates a new AutoscalerStatusDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalerStatusDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalerStatusDetails): google.cloud.compute.v1beta.AutoscalerStatusDetails;

                    /**
                     * Encodes the specified AutoscalerStatusDetails message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalerStatusDetails.verify|verify} messages.
                     * @param message AutoscalerStatusDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalerStatusDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalerStatusDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalerStatusDetails.verify|verify} messages.
                     * @param message AutoscalerStatusDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalerStatusDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalerStatusDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalerStatusDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalerStatusDetails;

                    /**
                     * Decodes an AutoscalerStatusDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalerStatusDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalerStatusDetails;

                    /**
                     * Verifies an AutoscalerStatusDetails message.
                     * @param message Plain 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 AutoscalerStatusDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalerStatusDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalerStatusDetails;

                    /**
                     * Creates a plain object from an AutoscalerStatusDetails message. Also converts values to other types if specified.
                     * @param message AutoscalerStatusDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalerStatusDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalerStatusDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalerStatusDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutoscalerStatusDetails {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        ALL_INSTANCES_UNHEALTHY = 404965477,
                        BACKEND_SERVICE_DOES_NOT_EXIST = 191417626,
                        CAPPED_AT_MAX_NUM_REPLICAS = 518617,
                        CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE = 328964659,
                        CUSTOM_METRIC_INVALID = 204430550,
                        MIN_EQUALS_MAX = 2821361,
                        MISSING_CUSTOM_METRIC_DATA_POINTS = 94885086,
                        MISSING_LOAD_BALANCING_DATA_POINTS = 509858898,
                        MODE_OFF = 164169907,
                        MODE_ONLY_SCALE_OUT = 3840994,
                        MODE_ONLY_UP = 100969842,
                        MORE_THAN_ONE_BACKEND_SERVICE = 151922141,
                        NOT_ENOUGH_QUOTA_AVAILABLE = 403101631,
                        REGION_RESOURCE_STOCKOUT = 528622846,
                        SCALING_TARGET_DOES_NOT_EXIST = 122636699,
                        SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX = 29275586,
                        SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN = 398287669,
                        UNKNOWN = 433141802,
                        UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION = 330845009,
                        ZONE_RESOURCE_STOCKOUT = 210200502
                    }
                }

                /** Properties of an AutoscalersScopedList. */
                interface IAutoscalersScopedList {

                    /** AutoscalersScopedList autoscalers */
                    autoscalers?: (google.cloud.compute.v1beta.IAutoscaler[]|null);

                    /** AutoscalersScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an AutoscalersScopedList. */
                class AutoscalersScopedList implements IAutoscalersScopedList {

                    /**
                     * Constructs a new AutoscalersScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalersScopedList);

                    /** AutoscalersScopedList autoscalers. */
                    public autoscalers: google.cloud.compute.v1beta.IAutoscaler[];

                    /** AutoscalersScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new AutoscalersScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalersScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalersScopedList): google.cloud.compute.v1beta.AutoscalersScopedList;

                    /**
                     * Encodes the specified AutoscalersScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalersScopedList.verify|verify} messages.
                     * @param message AutoscalersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalersScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalersScopedList.verify|verify} messages.
                     * @param message AutoscalersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalersScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalersScopedList;

                    /**
                     * Decodes an AutoscalersScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalersScopedList;

                    /**
                     * Verifies an AutoscalersScopedList message.
                     * @param message Plain 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 AutoscalersScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalersScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalersScopedList;

                    /**
                     * Creates a plain object from an AutoscalersScopedList message. Also converts values to other types if specified.
                     * @param message AutoscalersScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalersScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalersScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalersScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalingPolicy. */
                interface IAutoscalingPolicy {

                    /** AutoscalingPolicy coolDownPeriodSec */
                    coolDownPeriodSec?: (number|null);

                    /** AutoscalingPolicy cpuUtilization */
                    cpuUtilization?: (google.cloud.compute.v1beta.IAutoscalingPolicyCpuUtilization|null);

                    /** AutoscalingPolicy customMetricUtilizations */
                    customMetricUtilizations?: (google.cloud.compute.v1beta.IAutoscalingPolicyCustomMetricUtilization[]|null);

                    /** AutoscalingPolicy loadBalancingUtilization */
                    loadBalancingUtilization?: (google.cloud.compute.v1beta.IAutoscalingPolicyLoadBalancingUtilization|null);

                    /** AutoscalingPolicy maxNumReplicas */
                    maxNumReplicas?: (number|null);

                    /** AutoscalingPolicy minNumReplicas */
                    minNumReplicas?: (number|null);

                    /** AutoscalingPolicy mode */
                    mode?: (string|null);

                    /** AutoscalingPolicy scaleDownControl */
                    scaleDownControl?: (google.cloud.compute.v1beta.IAutoscalingPolicyScaleDownControl|null);

                    /** AutoscalingPolicy scaleInControl */
                    scaleInControl?: (google.cloud.compute.v1beta.IAutoscalingPolicyScaleInControl|null);

                    /** AutoscalingPolicy scalingSchedules */
                    scalingSchedules?: ({ [k: string]: google.cloud.compute.v1beta.IAutoscalingPolicyScalingSchedule }|null);
                }

                /** Represents an AutoscalingPolicy. */
                class AutoscalingPolicy implements IAutoscalingPolicy {

                    /**
                     * Constructs a new AutoscalingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalingPolicy);

                    /** AutoscalingPolicy coolDownPeriodSec. */
                    public coolDownPeriodSec?: (number|null);

                    /** AutoscalingPolicy cpuUtilization. */
                    public cpuUtilization?: (google.cloud.compute.v1beta.IAutoscalingPolicyCpuUtilization|null);

                    /** AutoscalingPolicy customMetricUtilizations. */
                    public customMetricUtilizations: google.cloud.compute.v1beta.IAutoscalingPolicyCustomMetricUtilization[];

                    /** AutoscalingPolicy loadBalancingUtilization. */
                    public loadBalancingUtilization?: (google.cloud.compute.v1beta.IAutoscalingPolicyLoadBalancingUtilization|null);

                    /** AutoscalingPolicy maxNumReplicas. */
                    public maxNumReplicas?: (number|null);

                    /** AutoscalingPolicy minNumReplicas. */
                    public minNumReplicas?: (number|null);

                    /** AutoscalingPolicy mode. */
                    public mode?: (string|null);

                    /** AutoscalingPolicy scaleDownControl. */
                    public scaleDownControl?: (google.cloud.compute.v1beta.IAutoscalingPolicyScaleDownControl|null);

                    /** AutoscalingPolicy scaleInControl. */
                    public scaleInControl?: (google.cloud.compute.v1beta.IAutoscalingPolicyScaleInControl|null);

                    /** AutoscalingPolicy scalingSchedules. */
                    public scalingSchedules: { [k: string]: google.cloud.compute.v1beta.IAutoscalingPolicyScalingSchedule };

                    /**
                     * Creates a new AutoscalingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalingPolicy): google.cloud.compute.v1beta.AutoscalingPolicy;

                    /**
                     * Encodes the specified AutoscalingPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicy.verify|verify} messages.
                     * @param message AutoscalingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicy.verify|verify} messages.
                     * @param message AutoscalingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalingPolicy;

                    /**
                     * Decodes an AutoscalingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalingPolicy;

                    /**
                     * Verifies an AutoscalingPolicy message.
                     * @param message Plain 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 AutoscalingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalingPolicy;

                    /**
                     * Creates a plain object from an AutoscalingPolicy message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutoscalingPolicy {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        OFF = 78159,
                        ON = 2527,
                        ONLY_SCALE_OUT = 152713670,
                        ONLY_UP = 478095374
                    }
                }

                /** Properties of an AutoscalingPolicyCpuUtilization. */
                interface IAutoscalingPolicyCpuUtilization {

                    /** AutoscalingPolicyCpuUtilization predictiveMethod */
                    predictiveMethod?: (string|null);

                    /** AutoscalingPolicyCpuUtilization utilizationTarget */
                    utilizationTarget?: (number|null);
                }

                /** Represents an AutoscalingPolicyCpuUtilization. */
                class AutoscalingPolicyCpuUtilization implements IAutoscalingPolicyCpuUtilization {

                    /**
                     * Constructs a new AutoscalingPolicyCpuUtilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyCpuUtilization);

                    /** AutoscalingPolicyCpuUtilization predictiveMethod. */
                    public predictiveMethod?: (string|null);

                    /** AutoscalingPolicyCpuUtilization utilizationTarget. */
                    public utilizationTarget?: (number|null);

                    /**
                     * Creates a new AutoscalingPolicyCpuUtilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyCpuUtilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyCpuUtilization): google.cloud.compute.v1beta.AutoscalingPolicyCpuUtilization;

                    /**
                     * Encodes the specified AutoscalingPolicyCpuUtilization message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyCpuUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyCpuUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalingPolicyCpuUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyCpuUtilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyCpuUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyCpuUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalingPolicyCpuUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyCpuUtilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyCpuUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalingPolicyCpuUtilization;

                    /**
                     * Decodes an AutoscalingPolicyCpuUtilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyCpuUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalingPolicyCpuUtilization;

                    /**
                     * Verifies an AutoscalingPolicyCpuUtilization message.
                     * @param message Plain 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 AutoscalingPolicyCpuUtilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyCpuUtilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalingPolicyCpuUtilization;

                    /**
                     * Creates a plain object from an AutoscalingPolicyCpuUtilization message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyCpuUtilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalingPolicyCpuUtilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyCpuUtilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyCpuUtilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutoscalingPolicyCpuUtilization {

                    /** PredictiveMethod enum. */
                    enum PredictiveMethod {
                        UNDEFINED_PREDICTIVE_METHOD = 0,
                        NONE = 2402104,
                        OPTIMIZE_AVAILABILITY = 11629437,
                        PREDICTIVE_METHOD_UNSPECIFIED = 52410265
                    }
                }

                /** Properties of an AutoscalingPolicyCustomMetricUtilization. */
                interface IAutoscalingPolicyCustomMetricUtilization {

                    /** AutoscalingPolicyCustomMetricUtilization filter */
                    filter?: (string|null);

                    /** AutoscalingPolicyCustomMetricUtilization metric */
                    metric?: (string|null);

                    /** AutoscalingPolicyCustomMetricUtilization singleInstanceAssignment */
                    singleInstanceAssignment?: (number|null);

                    /** AutoscalingPolicyCustomMetricUtilization utilizationTarget */
                    utilizationTarget?: (number|null);

                    /** AutoscalingPolicyCustomMetricUtilization utilizationTargetType */
                    utilizationTargetType?: (string|null);
                }

                /** Represents an AutoscalingPolicyCustomMetricUtilization. */
                class AutoscalingPolicyCustomMetricUtilization implements IAutoscalingPolicyCustomMetricUtilization {

                    /**
                     * Constructs a new AutoscalingPolicyCustomMetricUtilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyCustomMetricUtilization);

                    /** AutoscalingPolicyCustomMetricUtilization filter. */
                    public filter?: (string|null);

                    /** AutoscalingPolicyCustomMetricUtilization metric. */
                    public metric?: (string|null);

                    /** AutoscalingPolicyCustomMetricUtilization singleInstanceAssignment. */
                    public singleInstanceAssignment?: (number|null);

                    /** AutoscalingPolicyCustomMetricUtilization utilizationTarget. */
                    public utilizationTarget?: (number|null);

                    /** AutoscalingPolicyCustomMetricUtilization utilizationTargetType. */
                    public utilizationTargetType?: (string|null);

                    /**
                     * Creates a new AutoscalingPolicyCustomMetricUtilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyCustomMetricUtilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyCustomMetricUtilization): google.cloud.compute.v1beta.AutoscalingPolicyCustomMetricUtilization;

                    /**
                     * Encodes the specified AutoscalingPolicyCustomMetricUtilization message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyCustomMetricUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyCustomMetricUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalingPolicyCustomMetricUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyCustomMetricUtilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyCustomMetricUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyCustomMetricUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalingPolicyCustomMetricUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyCustomMetricUtilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyCustomMetricUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalingPolicyCustomMetricUtilization;

                    /**
                     * Decodes an AutoscalingPolicyCustomMetricUtilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyCustomMetricUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalingPolicyCustomMetricUtilization;

                    /**
                     * Verifies an AutoscalingPolicyCustomMetricUtilization message.
                     * @param message Plain 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 AutoscalingPolicyCustomMetricUtilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyCustomMetricUtilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalingPolicyCustomMetricUtilization;

                    /**
                     * Creates a plain object from an AutoscalingPolicyCustomMetricUtilization message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyCustomMetricUtilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalingPolicyCustomMetricUtilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyCustomMetricUtilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyCustomMetricUtilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AutoscalingPolicyCustomMetricUtilization {

                    /** UtilizationTargetType enum. */
                    enum UtilizationTargetType {
                        UNDEFINED_UTILIZATION_TARGET_TYPE = 0,
                        DELTA_PER_MINUTE = 87432861,
                        DELTA_PER_SECOND = 255180029,
                        GAUGE = 67590361
                    }
                }

                /** Properties of an AutoscalingPolicyLoadBalancingUtilization. */
                interface IAutoscalingPolicyLoadBalancingUtilization {

                    /** AutoscalingPolicyLoadBalancingUtilization utilizationTarget */
                    utilizationTarget?: (number|null);
                }

                /** Represents an AutoscalingPolicyLoadBalancingUtilization. */
                class AutoscalingPolicyLoadBalancingUtilization implements IAutoscalingPolicyLoadBalancingUtilization {

                    /**
                     * Constructs a new AutoscalingPolicyLoadBalancingUtilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyLoadBalancingUtilization);

                    /** AutoscalingPolicyLoadBalancingUtilization utilizationTarget. */
                    public utilizationTarget?: (number|null);

                    /**
                     * Creates a new AutoscalingPolicyLoadBalancingUtilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyLoadBalancingUtilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyLoadBalancingUtilization): google.cloud.compute.v1beta.AutoscalingPolicyLoadBalancingUtilization;

                    /**
                     * Encodes the specified AutoscalingPolicyLoadBalancingUtilization message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyLoadBalancingUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyLoadBalancingUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalingPolicyLoadBalancingUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyLoadBalancingUtilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyLoadBalancingUtilization.verify|verify} messages.
                     * @param message AutoscalingPolicyLoadBalancingUtilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalingPolicyLoadBalancingUtilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyLoadBalancingUtilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyLoadBalancingUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalingPolicyLoadBalancingUtilization;

                    /**
                     * Decodes an AutoscalingPolicyLoadBalancingUtilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyLoadBalancingUtilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalingPolicyLoadBalancingUtilization;

                    /**
                     * Verifies an AutoscalingPolicyLoadBalancingUtilization message.
                     * @param message Plain 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 AutoscalingPolicyLoadBalancingUtilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyLoadBalancingUtilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalingPolicyLoadBalancingUtilization;

                    /**
                     * Creates a plain object from an AutoscalingPolicyLoadBalancingUtilization message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyLoadBalancingUtilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalingPolicyLoadBalancingUtilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyLoadBalancingUtilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyLoadBalancingUtilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalingPolicyScaleDownControl. */
                interface IAutoscalingPolicyScaleDownControl {

                    /** AutoscalingPolicyScaleDownControl maxScaledDownReplicas */
                    maxScaledDownReplicas?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /** AutoscalingPolicyScaleDownControl timeWindowSec */
                    timeWindowSec?: (number|null);
                }

                /** Represents an AutoscalingPolicyScaleDownControl. */
                class AutoscalingPolicyScaleDownControl implements IAutoscalingPolicyScaleDownControl {

                    /**
                     * Constructs a new AutoscalingPolicyScaleDownControl.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyScaleDownControl);

                    /** AutoscalingPolicyScaleDownControl maxScaledDownReplicas. */
                    public maxScaledDownReplicas?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /** AutoscalingPolicyScaleDownControl timeWindowSec. */
                    public timeWindowSec?: (number|null);

                    /**
                     * Creates a new AutoscalingPolicyScaleDownControl instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyScaleDownControl instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyScaleDownControl): google.cloud.compute.v1beta.AutoscalingPolicyScaleDownControl;

                    /**
                     * Encodes the specified AutoscalingPolicyScaleDownControl message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyScaleDownControl.verify|verify} messages.
                     * @param message AutoscalingPolicyScaleDownControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalingPolicyScaleDownControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyScaleDownControl message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyScaleDownControl.verify|verify} messages.
                     * @param message AutoscalingPolicyScaleDownControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalingPolicyScaleDownControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyScaleDownControl message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyScaleDownControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalingPolicyScaleDownControl;

                    /**
                     * Decodes an AutoscalingPolicyScaleDownControl message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyScaleDownControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalingPolicyScaleDownControl;

                    /**
                     * Verifies an AutoscalingPolicyScaleDownControl message.
                     * @param message Plain 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 AutoscalingPolicyScaleDownControl message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyScaleDownControl
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalingPolicyScaleDownControl;

                    /**
                     * Creates a plain object from an AutoscalingPolicyScaleDownControl message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyScaleDownControl
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalingPolicyScaleDownControl, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyScaleDownControl to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyScaleDownControl
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalingPolicyScaleInControl. */
                interface IAutoscalingPolicyScaleInControl {

                    /** AutoscalingPolicyScaleInControl maxScaledInReplicas */
                    maxScaledInReplicas?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /** AutoscalingPolicyScaleInControl timeWindowSec */
                    timeWindowSec?: (number|null);
                }

                /** Represents an AutoscalingPolicyScaleInControl. */
                class AutoscalingPolicyScaleInControl implements IAutoscalingPolicyScaleInControl {

                    /**
                     * Constructs a new AutoscalingPolicyScaleInControl.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyScaleInControl);

                    /** AutoscalingPolicyScaleInControl maxScaledInReplicas. */
                    public maxScaledInReplicas?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /** AutoscalingPolicyScaleInControl timeWindowSec. */
                    public timeWindowSec?: (number|null);

                    /**
                     * Creates a new AutoscalingPolicyScaleInControl instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyScaleInControl instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyScaleInControl): google.cloud.compute.v1beta.AutoscalingPolicyScaleInControl;

                    /**
                     * Encodes the specified AutoscalingPolicyScaleInControl message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyScaleInControl.verify|verify} messages.
                     * @param message AutoscalingPolicyScaleInControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalingPolicyScaleInControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyScaleInControl message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyScaleInControl.verify|verify} messages.
                     * @param message AutoscalingPolicyScaleInControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalingPolicyScaleInControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyScaleInControl message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyScaleInControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalingPolicyScaleInControl;

                    /**
                     * Decodes an AutoscalingPolicyScaleInControl message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyScaleInControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalingPolicyScaleInControl;

                    /**
                     * Verifies an AutoscalingPolicyScaleInControl message.
                     * @param message Plain 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 AutoscalingPolicyScaleInControl message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyScaleInControl
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalingPolicyScaleInControl;

                    /**
                     * Creates a plain object from an AutoscalingPolicyScaleInControl message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyScaleInControl
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalingPolicyScaleInControl, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyScaleInControl to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyScaleInControl
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AutoscalingPolicyScalingSchedule. */
                interface IAutoscalingPolicyScalingSchedule {

                    /** AutoscalingPolicyScalingSchedule description */
                    description?: (string|null);

                    /** AutoscalingPolicyScalingSchedule disabled */
                    disabled?: (boolean|null);

                    /** AutoscalingPolicyScalingSchedule durationSec */
                    durationSec?: (number|null);

                    /** AutoscalingPolicyScalingSchedule minRequiredReplicas */
                    minRequiredReplicas?: (number|null);

                    /** AutoscalingPolicyScalingSchedule schedule */
                    schedule?: (string|null);

                    /** AutoscalingPolicyScalingSchedule timeZone */
                    timeZone?: (string|null);
                }

                /** Represents an AutoscalingPolicyScalingSchedule. */
                class AutoscalingPolicyScalingSchedule implements IAutoscalingPolicyScalingSchedule {

                    /**
                     * Constructs a new AutoscalingPolicyScalingSchedule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyScalingSchedule);

                    /** AutoscalingPolicyScalingSchedule description. */
                    public description?: (string|null);

                    /** AutoscalingPolicyScalingSchedule disabled. */
                    public disabled?: (boolean|null);

                    /** AutoscalingPolicyScalingSchedule durationSec. */
                    public durationSec?: (number|null);

                    /** AutoscalingPolicyScalingSchedule minRequiredReplicas. */
                    public minRequiredReplicas?: (number|null);

                    /** AutoscalingPolicyScalingSchedule schedule. */
                    public schedule?: (string|null);

                    /** AutoscalingPolicyScalingSchedule timeZone. */
                    public timeZone?: (string|null);

                    /**
                     * Creates a new AutoscalingPolicyScalingSchedule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AutoscalingPolicyScalingSchedule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IAutoscalingPolicyScalingSchedule): google.cloud.compute.v1beta.AutoscalingPolicyScalingSchedule;

                    /**
                     * Encodes the specified AutoscalingPolicyScalingSchedule message. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyScalingSchedule.verify|verify} messages.
                     * @param message AutoscalingPolicyScalingSchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IAutoscalingPolicyScalingSchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AutoscalingPolicyScalingSchedule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.AutoscalingPolicyScalingSchedule.verify|verify} messages.
                     * @param message AutoscalingPolicyScalingSchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IAutoscalingPolicyScalingSchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AutoscalingPolicyScalingSchedule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AutoscalingPolicyScalingSchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.AutoscalingPolicyScalingSchedule;

                    /**
                     * Decodes an AutoscalingPolicyScalingSchedule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AutoscalingPolicyScalingSchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.AutoscalingPolicyScalingSchedule;

                    /**
                     * Verifies an AutoscalingPolicyScalingSchedule message.
                     * @param message Plain 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 AutoscalingPolicyScalingSchedule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AutoscalingPolicyScalingSchedule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.AutoscalingPolicyScalingSchedule;

                    /**
                     * Creates a plain object from an AutoscalingPolicyScalingSchedule message. Also converts values to other types if specified.
                     * @param message AutoscalingPolicyScalingSchedule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.AutoscalingPolicyScalingSchedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AutoscalingPolicyScalingSchedule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AutoscalingPolicyScalingSchedule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Backend. */
                interface IBackend {

                    /** Backend balancingMode */
                    balancingMode?: (string|null);

                    /** Backend capacityScaler */
                    capacityScaler?: (number|null);

                    /** Backend customMetrics */
                    customMetrics?: (google.cloud.compute.v1beta.IBackendCustomMetric[]|null);

                    /** Backend description */
                    description?: (string|null);

                    /** Backend failover */
                    failover?: (boolean|null);

                    /** Backend group */
                    group?: (string|null);

                    /** Backend maxConnections */
                    maxConnections?: (number|null);

                    /** Backend maxConnectionsPerEndpoint */
                    maxConnectionsPerEndpoint?: (number|null);

                    /** Backend maxConnectionsPerInstance */
                    maxConnectionsPerInstance?: (number|null);

                    /** Backend maxInFlightRequests */
                    maxInFlightRequests?: (number|null);

                    /** Backend maxInFlightRequestsPerEndpoint */
                    maxInFlightRequestsPerEndpoint?: (number|null);

                    /** Backend maxInFlightRequestsPerInstance */
                    maxInFlightRequestsPerInstance?: (number|null);

                    /** Backend maxRate */
                    maxRate?: (number|null);

                    /** Backend maxRatePerEndpoint */
                    maxRatePerEndpoint?: (number|null);

                    /** Backend maxRatePerInstance */
                    maxRatePerInstance?: (number|null);

                    /** Backend maxUtilization */
                    maxUtilization?: (number|null);

                    /** Backend orchestrationInfo */
                    orchestrationInfo?: (google.cloud.compute.v1beta.IBackendBackendOrchestrationInfo|null);

                    /** Backend preference */
                    preference?: (string|null);

                    /** Backend trafficDuration */
                    trafficDuration?: (string|null);
                }

                /** Represents a Backend. */
                class Backend implements IBackend {

                    /**
                     * Constructs a new Backend.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackend);

                    /** Backend balancingMode. */
                    public balancingMode?: (string|null);

                    /** Backend capacityScaler. */
                    public capacityScaler?: (number|null);

                    /** Backend customMetrics. */
                    public customMetrics: google.cloud.compute.v1beta.IBackendCustomMetric[];

                    /** Backend description. */
                    public description?: (string|null);

                    /** Backend failover. */
                    public failover?: (boolean|null);

                    /** Backend group. */
                    public group?: (string|null);

                    /** Backend maxConnections. */
                    public maxConnections?: (number|null);

                    /** Backend maxConnectionsPerEndpoint. */
                    public maxConnectionsPerEndpoint?: (number|null);

                    /** Backend maxConnectionsPerInstance. */
                    public maxConnectionsPerInstance?: (number|null);

                    /** Backend maxInFlightRequests. */
                    public maxInFlightRequests?: (number|null);

                    /** Backend maxInFlightRequestsPerEndpoint. */
                    public maxInFlightRequestsPerEndpoint?: (number|null);

                    /** Backend maxInFlightRequestsPerInstance. */
                    public maxInFlightRequestsPerInstance?: (number|null);

                    /** Backend maxRate. */
                    public maxRate?: (number|null);

                    /** Backend maxRatePerEndpoint. */
                    public maxRatePerEndpoint?: (number|null);

                    /** Backend maxRatePerInstance. */
                    public maxRatePerInstance?: (number|null);

                    /** Backend maxUtilization. */
                    public maxUtilization?: (number|null);

                    /** Backend orchestrationInfo. */
                    public orchestrationInfo?: (google.cloud.compute.v1beta.IBackendBackendOrchestrationInfo|null);

                    /** Backend preference. */
                    public preference?: (string|null);

                    /** Backend trafficDuration. */
                    public trafficDuration?: (string|null);

                    /**
                     * Creates a new Backend instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Backend instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackend): google.cloud.compute.v1beta.Backend;

                    /**
                     * Encodes the specified Backend message. Does not implicitly {@link google.cloud.compute.v1beta.Backend.verify|verify} messages.
                     * @param message Backend message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackend, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Backend message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Backend.verify|verify} messages.
                     * @param message Backend message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackend, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Backend message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Backend
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Backend;

                    /**
                     * Decodes a Backend message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Backend
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Backend;

                    /**
                     * Verifies a Backend message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Backend message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Backend
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Backend;

                    /**
                     * Creates a plain object from a Backend message. Also converts values to other types if specified.
                     * @param message Backend
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Backend, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Backend to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Backend
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Backend {

                    /** BalancingMode enum. */
                    enum BalancingMode {
                        UNDEFINED_BALANCING_MODE = 0,
                        CONNECTION = 246311646,
                        CUSTOM_METRICS = 331575765,
                        IN_FLIGHT = 190040266,
                        RATE = 2508000,
                        UTILIZATION = 157008386
                    }

                    /** Preference enum. */
                    enum Preference {
                        UNDEFINED_PREFERENCE = 0,
                        DEFAULT = 115302945,
                        PREFERENCE_UNSPECIFIED = 496219571,
                        PREFERRED = 418847841
                    }

                    /** TrafficDuration enum. */
                    enum TrafficDuration {
                        UNDEFINED_TRAFFIC_DURATION = 0,
                        LONG = 2342524,
                        SHORT = 78875740,
                        TRAFFIC_DURATION_UNSPECIFIED = 265201166
                    }
                }

                /** Properties of a BackendBackendOrchestrationInfo. */
                interface IBackendBackendOrchestrationInfo {

                    /** BackendBackendOrchestrationInfo resourceUri */
                    resourceUri?: (string|null);
                }

                /** Represents a BackendBackendOrchestrationInfo. */
                class BackendBackendOrchestrationInfo implements IBackendBackendOrchestrationInfo {

                    /**
                     * Constructs a new BackendBackendOrchestrationInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBackendOrchestrationInfo);

                    /** BackendBackendOrchestrationInfo resourceUri. */
                    public resourceUri?: (string|null);

                    /**
                     * Creates a new BackendBackendOrchestrationInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBackendOrchestrationInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBackendOrchestrationInfo): google.cloud.compute.v1beta.BackendBackendOrchestrationInfo;

                    /**
                     * Encodes the specified BackendBackendOrchestrationInfo message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBackendOrchestrationInfo.verify|verify} messages.
                     * @param message BackendBackendOrchestrationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBackendOrchestrationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBackendOrchestrationInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBackendOrchestrationInfo.verify|verify} messages.
                     * @param message BackendBackendOrchestrationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBackendOrchestrationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBackendOrchestrationInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBackendOrchestrationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBackendOrchestrationInfo;

                    /**
                     * Decodes a BackendBackendOrchestrationInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBackendOrchestrationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBackendOrchestrationInfo;

                    /**
                     * Verifies a BackendBackendOrchestrationInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBackendOrchestrationInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBackendOrchestrationInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBackendOrchestrationInfo;

                    /**
                     * Creates a plain object from a BackendBackendOrchestrationInfo message. Also converts values to other types if specified.
                     * @param message BackendBackendOrchestrationInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBackendOrchestrationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBackendOrchestrationInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBackendOrchestrationInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucket. */
                interface IBackendBucket {

                    /** BackendBucket bucketName */
                    bucketName?: (string|null);

                    /** BackendBucket cdnPolicy */
                    cdnPolicy?: (google.cloud.compute.v1beta.IBackendBucketCdnPolicy|null);

                    /** BackendBucket compressionMode */
                    compressionMode?: (string|null);

                    /** BackendBucket creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** BackendBucket customResponseHeaders */
                    customResponseHeaders?: (string[]|null);

                    /** BackendBucket description */
                    description?: (string|null);

                    /** BackendBucket edgeSecurityPolicy */
                    edgeSecurityPolicy?: (string|null);

                    /** BackendBucket enableCdn */
                    enableCdn?: (boolean|null);

                    /** BackendBucket id */
                    id?: (number|Long|string|null);

                    /** BackendBucket kind */
                    kind?: (string|null);

                    /** BackendBucket loadBalancingScheme */
                    loadBalancingScheme?: (string|null);

                    /** BackendBucket name */
                    name?: (string|null);

                    /** BackendBucket params */
                    params?: (google.cloud.compute.v1beta.IBackendBucketParams|null);

                    /** BackendBucket region */
                    region?: (string|null);

                    /** BackendBucket selfLink */
                    selfLink?: (string|null);

                    /** BackendBucket usedBy */
                    usedBy?: (google.cloud.compute.v1beta.IBackendBucketUsedBy[]|null);
                }

                /** Represents a BackendBucket. */
                class BackendBucket implements IBackendBucket {

                    /**
                     * Constructs a new BackendBucket.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucket);

                    /** BackendBucket bucketName. */
                    public bucketName?: (string|null);

                    /** BackendBucket cdnPolicy. */
                    public cdnPolicy?: (google.cloud.compute.v1beta.IBackendBucketCdnPolicy|null);

                    /** BackendBucket compressionMode. */
                    public compressionMode?: (string|null);

                    /** BackendBucket creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** BackendBucket customResponseHeaders. */
                    public customResponseHeaders: string[];

                    /** BackendBucket description. */
                    public description?: (string|null);

                    /** BackendBucket edgeSecurityPolicy. */
                    public edgeSecurityPolicy?: (string|null);

                    /** BackendBucket enableCdn. */
                    public enableCdn?: (boolean|null);

                    /** BackendBucket id. */
                    public id?: (number|Long|string|null);

                    /** BackendBucket kind. */
                    public kind?: (string|null);

                    /** BackendBucket loadBalancingScheme. */
                    public loadBalancingScheme?: (string|null);

                    /** BackendBucket name. */
                    public name?: (string|null);

                    /** BackendBucket params. */
                    public params?: (google.cloud.compute.v1beta.IBackendBucketParams|null);

                    /** BackendBucket region. */
                    public region?: (string|null);

                    /** BackendBucket selfLink. */
                    public selfLink?: (string|null);

                    /** BackendBucket usedBy. */
                    public usedBy: google.cloud.compute.v1beta.IBackendBucketUsedBy[];

                    /**
                     * Creates a new BackendBucket instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucket instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucket): google.cloud.compute.v1beta.BackendBucket;

                    /**
                     * Encodes the specified BackendBucket message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucket.verify|verify} messages.
                     * @param message BackendBucket message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucket message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucket.verify|verify} messages.
                     * @param message BackendBucket message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucket message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucket
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucket;

                    /**
                     * Decodes a BackendBucket message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucket
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucket;

                    /**
                     * Verifies a BackendBucket message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucket message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucket
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucket;

                    /**
                     * Creates a plain object from a BackendBucket message. Also converts values to other types if specified.
                     * @param message BackendBucket
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucket to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucket
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendBucket {

                    /** CompressionMode enum. */
                    enum CompressionMode {
                        UNDEFINED_COMPRESSION_MODE = 0,
                        AUTOMATIC = 165298699,
                        DISABLED = 516696700
                    }

                    /** LoadBalancingScheme enum. */
                    enum LoadBalancingScheme {
                        UNDEFINED_LOAD_BALANCING_SCHEME = 0,
                        EXTERNAL_MANAGED = 512006923,
                        INTERNAL_MANAGED = 37350397
                    }
                }

                /** Properties of a BackendBucketAggregatedList. */
                interface IBackendBucketAggregatedList {

                    /** BackendBucketAggregatedList id */
                    id?: (string|null);

                    /** BackendBucketAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IBackendBucketsScopedList }|null);

                    /** BackendBucketAggregatedList kind */
                    kind?: (string|null);

                    /** BackendBucketAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendBucketAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** BackendBucketAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a BackendBucketAggregatedList. */
                class BackendBucketAggregatedList implements IBackendBucketAggregatedList {

                    /**
                     * Constructs a new BackendBucketAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketAggregatedList);

                    /** BackendBucketAggregatedList id. */
                    public id?: (string|null);

                    /** BackendBucketAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IBackendBucketsScopedList };

                    /** BackendBucketAggregatedList kind. */
                    public kind?: (string|null);

                    /** BackendBucketAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendBucketAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** BackendBucketAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new BackendBucketAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketAggregatedList): google.cloud.compute.v1beta.BackendBucketAggregatedList;

                    /**
                     * Encodes the specified BackendBucketAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketAggregatedList.verify|verify} messages.
                     * @param message BackendBucketAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketAggregatedList.verify|verify} messages.
                     * @param message BackendBucketAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketAggregatedList;

                    /**
                     * Decodes a BackendBucketAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketAggregatedList;

                    /**
                     * Verifies a BackendBucketAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketAggregatedList;

                    /**
                     * Creates a plain object from a BackendBucketAggregatedList message. Also converts values to other types if specified.
                     * @param message BackendBucketAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketCdnPolicy. */
                interface IBackendBucketCdnPolicy {

                    /** BackendBucketCdnPolicy bypassCacheOnRequestHeaders */
                    bypassCacheOnRequestHeaders?: (google.cloud.compute.v1beta.IBackendBucketCdnPolicyBypassCacheOnRequestHeader[]|null);

                    /** BackendBucketCdnPolicy cacheKeyPolicy */
                    cacheKeyPolicy?: (google.cloud.compute.v1beta.IBackendBucketCdnPolicyCacheKeyPolicy|null);

                    /** BackendBucketCdnPolicy cacheMode */
                    cacheMode?: (string|null);

                    /** BackendBucketCdnPolicy clientTtl */
                    clientTtl?: (number|null);

                    /** BackendBucketCdnPolicy defaultTtl */
                    defaultTtl?: (number|null);

                    /** BackendBucketCdnPolicy maxTtl */
                    maxTtl?: (number|null);

                    /** BackendBucketCdnPolicy negativeCaching */
                    negativeCaching?: (boolean|null);

                    /** BackendBucketCdnPolicy negativeCachingPolicy */
                    negativeCachingPolicy?: (google.cloud.compute.v1beta.IBackendBucketCdnPolicyNegativeCachingPolicy[]|null);

                    /** BackendBucketCdnPolicy requestCoalescing */
                    requestCoalescing?: (boolean|null);

                    /** BackendBucketCdnPolicy serveWhileStale */
                    serveWhileStale?: (number|null);

                    /** BackendBucketCdnPolicy signedUrlCacheMaxAgeSec */
                    signedUrlCacheMaxAgeSec?: (number|Long|string|null);

                    /** BackendBucketCdnPolicy signedUrlKeyNames */
                    signedUrlKeyNames?: (string[]|null);
                }

                /** Represents a BackendBucketCdnPolicy. */
                class BackendBucketCdnPolicy implements IBackendBucketCdnPolicy {

                    /**
                     * Constructs a new BackendBucketCdnPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketCdnPolicy);

                    /** BackendBucketCdnPolicy bypassCacheOnRequestHeaders. */
                    public bypassCacheOnRequestHeaders: google.cloud.compute.v1beta.IBackendBucketCdnPolicyBypassCacheOnRequestHeader[];

                    /** BackendBucketCdnPolicy cacheKeyPolicy. */
                    public cacheKeyPolicy?: (google.cloud.compute.v1beta.IBackendBucketCdnPolicyCacheKeyPolicy|null);

                    /** BackendBucketCdnPolicy cacheMode. */
                    public cacheMode?: (string|null);

                    /** BackendBucketCdnPolicy clientTtl. */
                    public clientTtl?: (number|null);

                    /** BackendBucketCdnPolicy defaultTtl. */
                    public defaultTtl?: (number|null);

                    /** BackendBucketCdnPolicy maxTtl. */
                    public maxTtl?: (number|null);

                    /** BackendBucketCdnPolicy negativeCaching. */
                    public negativeCaching?: (boolean|null);

                    /** BackendBucketCdnPolicy negativeCachingPolicy. */
                    public negativeCachingPolicy: google.cloud.compute.v1beta.IBackendBucketCdnPolicyNegativeCachingPolicy[];

                    /** BackendBucketCdnPolicy requestCoalescing. */
                    public requestCoalescing?: (boolean|null);

                    /** BackendBucketCdnPolicy serveWhileStale. */
                    public serveWhileStale?: (number|null);

                    /** BackendBucketCdnPolicy signedUrlCacheMaxAgeSec. */
                    public signedUrlCacheMaxAgeSec?: (number|Long|string|null);

                    /** BackendBucketCdnPolicy signedUrlKeyNames. */
                    public signedUrlKeyNames: string[];

                    /**
                     * Creates a new BackendBucketCdnPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketCdnPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketCdnPolicy): google.cloud.compute.v1beta.BackendBucketCdnPolicy;

                    /**
                     * Encodes the specified BackendBucketCdnPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketCdnPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketCdnPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketCdnPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketCdnPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketCdnPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketCdnPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketCdnPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketCdnPolicy;

                    /**
                     * Decodes a BackendBucketCdnPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketCdnPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketCdnPolicy;

                    /**
                     * Verifies a BackendBucketCdnPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketCdnPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketCdnPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketCdnPolicy;

                    /**
                     * Creates a plain object from a BackendBucketCdnPolicy message. Also converts values to other types if specified.
                     * @param message BackendBucketCdnPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketCdnPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketCdnPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketCdnPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendBucketCdnPolicy {

                    /** CacheMode enum. */
                    enum CacheMode {
                        UNDEFINED_CACHE_MODE = 0,
                        CACHE_ALL_STATIC = 355027945,
                        FORCE_CACHE_ALL = 486026928,
                        INVALID_CACHE_MODE = 381295560,
                        USE_ORIGIN_HEADERS = 55380261
                    }
                }

                /** Properties of a BackendBucketCdnPolicyBypassCacheOnRequestHeader. */
                interface IBackendBucketCdnPolicyBypassCacheOnRequestHeader {

                    /** BackendBucketCdnPolicyBypassCacheOnRequestHeader headerName */
                    headerName?: (string|null);
                }

                /** Represents a BackendBucketCdnPolicyBypassCacheOnRequestHeader. */
                class BackendBucketCdnPolicyBypassCacheOnRequestHeader implements IBackendBucketCdnPolicyBypassCacheOnRequestHeader {

                    /**
                     * Constructs a new BackendBucketCdnPolicyBypassCacheOnRequestHeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketCdnPolicyBypassCacheOnRequestHeader);

                    /** BackendBucketCdnPolicyBypassCacheOnRequestHeader headerName. */
                    public headerName?: (string|null);

                    /**
                     * Creates a new BackendBucketCdnPolicyBypassCacheOnRequestHeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketCdnPolicyBypassCacheOnRequestHeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketCdnPolicyBypassCacheOnRequestHeader): google.cloud.compute.v1beta.BackendBucketCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyBypassCacheOnRequestHeader message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketCdnPolicyBypassCacheOnRequestHeader.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyBypassCacheOnRequestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketCdnPolicyBypassCacheOnRequestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyBypassCacheOnRequestHeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketCdnPolicyBypassCacheOnRequestHeader.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyBypassCacheOnRequestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketCdnPolicyBypassCacheOnRequestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketCdnPolicyBypassCacheOnRequestHeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Decodes a BackendBucketCdnPolicyBypassCacheOnRequestHeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Verifies a BackendBucketCdnPolicyBypassCacheOnRequestHeader message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketCdnPolicyBypassCacheOnRequestHeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Creates a plain object from a BackendBucketCdnPolicyBypassCacheOnRequestHeader message. Also converts values to other types if specified.
                     * @param message BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketCdnPolicyBypassCacheOnRequestHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketCdnPolicyBypassCacheOnRequestHeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketCdnPolicyBypassCacheOnRequestHeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketCdnPolicyCacheKeyPolicy. */
                interface IBackendBucketCdnPolicyCacheKeyPolicy {

                    /** BackendBucketCdnPolicyCacheKeyPolicy includeHttpHeaders */
                    includeHttpHeaders?: (string[]|null);

                    /** BackendBucketCdnPolicyCacheKeyPolicy queryStringWhitelist */
                    queryStringWhitelist?: (string[]|null);
                }

                /** Represents a BackendBucketCdnPolicyCacheKeyPolicy. */
                class BackendBucketCdnPolicyCacheKeyPolicy implements IBackendBucketCdnPolicyCacheKeyPolicy {

                    /**
                     * Constructs a new BackendBucketCdnPolicyCacheKeyPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketCdnPolicyCacheKeyPolicy);

                    /** BackendBucketCdnPolicyCacheKeyPolicy includeHttpHeaders. */
                    public includeHttpHeaders: string[];

                    /** BackendBucketCdnPolicyCacheKeyPolicy queryStringWhitelist. */
                    public queryStringWhitelist: string[];

                    /**
                     * Creates a new BackendBucketCdnPolicyCacheKeyPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketCdnPolicyCacheKeyPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketCdnPolicyCacheKeyPolicy): google.cloud.compute.v1beta.BackendBucketCdnPolicyCacheKeyPolicy;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyCacheKeyPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketCdnPolicyCacheKeyPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyCacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketCdnPolicyCacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyCacheKeyPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketCdnPolicyCacheKeyPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyCacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketCdnPolicyCacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketCdnPolicyCacheKeyPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketCdnPolicyCacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketCdnPolicyCacheKeyPolicy;

                    /**
                     * Decodes a BackendBucketCdnPolicyCacheKeyPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketCdnPolicyCacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketCdnPolicyCacheKeyPolicy;

                    /**
                     * Verifies a BackendBucketCdnPolicyCacheKeyPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketCdnPolicyCacheKeyPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketCdnPolicyCacheKeyPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketCdnPolicyCacheKeyPolicy;

                    /**
                     * Creates a plain object from a BackendBucketCdnPolicyCacheKeyPolicy message. Also converts values to other types if specified.
                     * @param message BackendBucketCdnPolicyCacheKeyPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketCdnPolicyCacheKeyPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketCdnPolicyCacheKeyPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketCdnPolicyCacheKeyPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketCdnPolicyNegativeCachingPolicy. */
                interface IBackendBucketCdnPolicyNegativeCachingPolicy {

                    /** BackendBucketCdnPolicyNegativeCachingPolicy code */
                    code?: (number|null);

                    /** BackendBucketCdnPolicyNegativeCachingPolicy ttl */
                    ttl?: (number|null);
                }

                /** Represents a BackendBucketCdnPolicyNegativeCachingPolicy. */
                class BackendBucketCdnPolicyNegativeCachingPolicy implements IBackendBucketCdnPolicyNegativeCachingPolicy {

                    /**
                     * Constructs a new BackendBucketCdnPolicyNegativeCachingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketCdnPolicyNegativeCachingPolicy);

                    /** BackendBucketCdnPolicyNegativeCachingPolicy code. */
                    public code?: (number|null);

                    /** BackendBucketCdnPolicyNegativeCachingPolicy ttl. */
                    public ttl?: (number|null);

                    /**
                     * Creates a new BackendBucketCdnPolicyNegativeCachingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketCdnPolicyNegativeCachingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketCdnPolicyNegativeCachingPolicy): google.cloud.compute.v1beta.BackendBucketCdnPolicyNegativeCachingPolicy;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyNegativeCachingPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketCdnPolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketCdnPolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketCdnPolicyNegativeCachingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketCdnPolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message BackendBucketCdnPolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketCdnPolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketCdnPolicyNegativeCachingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketCdnPolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketCdnPolicyNegativeCachingPolicy;

                    /**
                     * Decodes a BackendBucketCdnPolicyNegativeCachingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketCdnPolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketCdnPolicyNegativeCachingPolicy;

                    /**
                     * Verifies a BackendBucketCdnPolicyNegativeCachingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketCdnPolicyNegativeCachingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketCdnPolicyNegativeCachingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketCdnPolicyNegativeCachingPolicy;

                    /**
                     * Creates a plain object from a BackendBucketCdnPolicyNegativeCachingPolicy message. Also converts values to other types if specified.
                     * @param message BackendBucketCdnPolicyNegativeCachingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketCdnPolicyNegativeCachingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketCdnPolicyNegativeCachingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketCdnPolicyNegativeCachingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketList. */
                interface IBackendBucketList {

                    /** BackendBucketList id */
                    id?: (string|null);

                    /** BackendBucketList items */
                    items?: (google.cloud.compute.v1beta.IBackendBucket[]|null);

                    /** BackendBucketList kind */
                    kind?: (string|null);

                    /** BackendBucketList nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendBucketList selfLink */
                    selfLink?: (string|null);

                    /** BackendBucketList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a BackendBucketList. */
                class BackendBucketList implements IBackendBucketList {

                    /**
                     * Constructs a new BackendBucketList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketList);

                    /** BackendBucketList id. */
                    public id?: (string|null);

                    /** BackendBucketList items. */
                    public items: google.cloud.compute.v1beta.IBackendBucket[];

                    /** BackendBucketList kind. */
                    public kind?: (string|null);

                    /** BackendBucketList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendBucketList selfLink. */
                    public selfLink?: (string|null);

                    /** BackendBucketList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new BackendBucketList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketList): google.cloud.compute.v1beta.BackendBucketList;

                    /**
                     * Encodes the specified BackendBucketList message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketList.verify|verify} messages.
                     * @param message BackendBucketList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketList.verify|verify} messages.
                     * @param message BackendBucketList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketList;

                    /**
                     * Decodes a BackendBucketList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketList;

                    /**
                     * Verifies a BackendBucketList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketList;

                    /**
                     * Creates a plain object from a BackendBucketList message. Also converts values to other types if specified.
                     * @param message BackendBucketList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketListUsable. */
                interface IBackendBucketListUsable {

                    /** BackendBucketListUsable id */
                    id?: (string|null);

                    /** BackendBucketListUsable items */
                    items?: (google.cloud.compute.v1beta.IBackendBucket[]|null);

                    /** BackendBucketListUsable kind */
                    kind?: (string|null);

                    /** BackendBucketListUsable nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendBucketListUsable selfLink */
                    selfLink?: (string|null);

                    /** BackendBucketListUsable warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a BackendBucketListUsable. */
                class BackendBucketListUsable implements IBackendBucketListUsable {

                    /**
                     * Constructs a new BackendBucketListUsable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketListUsable);

                    /** BackendBucketListUsable id. */
                    public id?: (string|null);

                    /** BackendBucketListUsable items. */
                    public items: google.cloud.compute.v1beta.IBackendBucket[];

                    /** BackendBucketListUsable kind. */
                    public kind?: (string|null);

                    /** BackendBucketListUsable nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendBucketListUsable selfLink. */
                    public selfLink?: (string|null);

                    /** BackendBucketListUsable warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new BackendBucketListUsable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketListUsable instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketListUsable): google.cloud.compute.v1beta.BackendBucketListUsable;

                    /**
                     * Encodes the specified BackendBucketListUsable message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketListUsable.verify|verify} messages.
                     * @param message BackendBucketListUsable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketListUsable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketListUsable message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketListUsable.verify|verify} messages.
                     * @param message BackendBucketListUsable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketListUsable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketListUsable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketListUsable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketListUsable;

                    /**
                     * Decodes a BackendBucketListUsable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketListUsable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketListUsable;

                    /**
                     * Verifies a BackendBucketListUsable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketListUsable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketListUsable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketListUsable;

                    /**
                     * Creates a plain object from a BackendBucketListUsable message. Also converts values to other types if specified.
                     * @param message BackendBucketListUsable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketListUsable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketListUsable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketListUsable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketParams. */
                interface IBackendBucketParams {

                    /** BackendBucketParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a BackendBucketParams. */
                class BackendBucketParams implements IBackendBucketParams {

                    /**
                     * Constructs a new BackendBucketParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketParams);

                    /** BackendBucketParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new BackendBucketParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketParams): google.cloud.compute.v1beta.BackendBucketParams;

                    /**
                     * Encodes the specified BackendBucketParams message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketParams.verify|verify} messages.
                     * @param message BackendBucketParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketParams.verify|verify} messages.
                     * @param message BackendBucketParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketParams;

                    /**
                     * Decodes a BackendBucketParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketParams;

                    /**
                     * Verifies a BackendBucketParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketParams;

                    /**
                     * Creates a plain object from a BackendBucketParams message. Also converts values to other types if specified.
                     * @param message BackendBucketParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketUsedBy. */
                interface IBackendBucketUsedBy {

                    /** BackendBucketUsedBy reference */
                    reference?: (string|null);
                }

                /** Represents a BackendBucketUsedBy. */
                class BackendBucketUsedBy implements IBackendBucketUsedBy {

                    /**
                     * Constructs a new BackendBucketUsedBy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketUsedBy);

                    /** BackendBucketUsedBy reference. */
                    public reference?: (string|null);

                    /**
                     * Creates a new BackendBucketUsedBy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketUsedBy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketUsedBy): google.cloud.compute.v1beta.BackendBucketUsedBy;

                    /**
                     * Encodes the specified BackendBucketUsedBy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketUsedBy.verify|verify} messages.
                     * @param message BackendBucketUsedBy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketUsedBy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketUsedBy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketUsedBy.verify|verify} messages.
                     * @param message BackendBucketUsedBy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketUsedBy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketUsedBy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketUsedBy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketUsedBy;

                    /**
                     * Decodes a BackendBucketUsedBy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketUsedBy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketUsedBy;

                    /**
                     * Verifies a BackendBucketUsedBy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketUsedBy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketUsedBy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketUsedBy;

                    /**
                     * Creates a plain object from a BackendBucketUsedBy message. Also converts values to other types if specified.
                     * @param message BackendBucketUsedBy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketUsedBy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketUsedBy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketUsedBy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendBucketsScopedList. */
                interface IBackendBucketsScopedList {

                    /** BackendBucketsScopedList backendBuckets */
                    backendBuckets?: (google.cloud.compute.v1beta.IBackendBucket[]|null);

                    /** BackendBucketsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a BackendBucketsScopedList. */
                class BackendBucketsScopedList implements IBackendBucketsScopedList {

                    /**
                     * Constructs a new BackendBucketsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendBucketsScopedList);

                    /** BackendBucketsScopedList backendBuckets. */
                    public backendBuckets: google.cloud.compute.v1beta.IBackendBucket[];

                    /** BackendBucketsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new BackendBucketsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendBucketsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendBucketsScopedList): google.cloud.compute.v1beta.BackendBucketsScopedList;

                    /**
                     * Encodes the specified BackendBucketsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketsScopedList.verify|verify} messages.
                     * @param message BackendBucketsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendBucketsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendBucketsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendBucketsScopedList.verify|verify} messages.
                     * @param message BackendBucketsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendBucketsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendBucketsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendBucketsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendBucketsScopedList;

                    /**
                     * Decodes a BackendBucketsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendBucketsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendBucketsScopedList;

                    /**
                     * Verifies a BackendBucketsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendBucketsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendBucketsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendBucketsScopedList;

                    /**
                     * Creates a plain object from a BackendBucketsScopedList message. Also converts values to other types if specified.
                     * @param message BackendBucketsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendBucketsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendBucketsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendBucketsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendCustomMetric. */
                interface IBackendCustomMetric {

                    /** BackendCustomMetric dryRun */
                    dryRun?: (boolean|null);

                    /** BackendCustomMetric maxUtilization */
                    maxUtilization?: (number|null);

                    /** BackendCustomMetric name */
                    name?: (string|null);
                }

                /** Represents a BackendCustomMetric. */
                class BackendCustomMetric implements IBackendCustomMetric {

                    /**
                     * Constructs a new BackendCustomMetric.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendCustomMetric);

                    /** BackendCustomMetric dryRun. */
                    public dryRun?: (boolean|null);

                    /** BackendCustomMetric maxUtilization. */
                    public maxUtilization?: (number|null);

                    /** BackendCustomMetric name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BackendCustomMetric instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendCustomMetric instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendCustomMetric): google.cloud.compute.v1beta.BackendCustomMetric;

                    /**
                     * Encodes the specified BackendCustomMetric message. Does not implicitly {@link google.cloud.compute.v1beta.BackendCustomMetric.verify|verify} messages.
                     * @param message BackendCustomMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendCustomMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendCustomMetric message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendCustomMetric.verify|verify} messages.
                     * @param message BackendCustomMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendCustomMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendCustomMetric message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendCustomMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendCustomMetric;

                    /**
                     * Decodes a BackendCustomMetric message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendCustomMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendCustomMetric;

                    /**
                     * Verifies a BackendCustomMetric message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendCustomMetric message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendCustomMetric
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendCustomMetric;

                    /**
                     * Creates a plain object from a BackendCustomMetric message. Also converts values to other types if specified.
                     * @param message BackendCustomMetric
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendCustomMetric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendCustomMetric to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendCustomMetric
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendService. */
                interface IBackendService {

                    /** BackendService affinityCookieTtlSec */
                    affinityCookieTtlSec?: (number|null);

                    /** BackendService backends */
                    backends?: (google.cloud.compute.v1beta.IBackend[]|null);

                    /** BackendService cdnPolicy */
                    cdnPolicy?: (google.cloud.compute.v1beta.IBackendServiceCdnPolicy|null);

                    /** BackendService circuitBreakers */
                    circuitBreakers?: (google.cloud.compute.v1beta.ICircuitBreakers|null);

                    /** BackendService compressionMode */
                    compressionMode?: (string|null);

                    /** BackendService connectionDraining */
                    connectionDraining?: (google.cloud.compute.v1beta.IConnectionDraining|null);

                    /** BackendService connectionTrackingPolicy */
                    connectionTrackingPolicy?: (google.cloud.compute.v1beta.IBackendServiceConnectionTrackingPolicy|null);

                    /** BackendService consistentHash */
                    consistentHash?: (google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettings|null);

                    /** BackendService creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** BackendService customMetrics */
                    customMetrics?: (google.cloud.compute.v1beta.IBackendServiceCustomMetric[]|null);

                    /** BackendService customRequestHeaders */
                    customRequestHeaders?: (string[]|null);

                    /** BackendService customResponseHeaders */
                    customResponseHeaders?: (string[]|null);

                    /** BackendService description */
                    description?: (string|null);

                    /** BackendService dynamicForwarding */
                    dynamicForwarding?: (google.cloud.compute.v1beta.IBackendServiceDynamicForwarding|null);

                    /** BackendService edgeSecurityPolicy */
                    edgeSecurityPolicy?: (string|null);

                    /** BackendService enableCDN */
                    enableCDN?: (boolean|null);

                    /** BackendService externalManagedMigrationState */
                    externalManagedMigrationState?: (string|null);

                    /** BackendService externalManagedMigrationTestingPercentage */
                    externalManagedMigrationTestingPercentage?: (number|null);

                    /** BackendService failoverPolicy */
                    failoverPolicy?: (google.cloud.compute.v1beta.IBackendServiceFailoverPolicy|null);

                    /** BackendService fingerprint */
                    fingerprint?: (string|null);

                    /** BackendService haPolicy */
                    haPolicy?: (google.cloud.compute.v1beta.IBackendServiceHAPolicy|null);

                    /** BackendService healthChecks */
                    healthChecks?: (string[]|null);

                    /** BackendService iap */
                    iap?: (google.cloud.compute.v1beta.IBackendServiceIAP|null);

                    /** BackendService id */
                    id?: (number|Long|string|null);

                    /** BackendService ipAddressSelectionPolicy */
                    ipAddressSelectionPolicy?: (string|null);

                    /** BackendService kind */
                    kind?: (string|null);

                    /** BackendService loadBalancingScheme */
                    loadBalancingScheme?: (string|null);

                    /** BackendService localityLbPolicies */
                    localityLbPolicies?: (google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfig[]|null);

                    /** BackendService localityLbPolicy */
                    localityLbPolicy?: (string|null);

                    /** BackendService logConfig */
                    logConfig?: (google.cloud.compute.v1beta.IBackendServiceLogConfig|null);

                    /** BackendService maxStreamDuration */
                    maxStreamDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** BackendService metadatas */
                    metadatas?: ({ [k: string]: string }|null);

                    /** BackendService name */
                    name?: (string|null);

                    /** BackendService network */
                    network?: (string|null);

                    /** BackendService networkPassThroughLbTrafficPolicy */
                    networkPassThroughLbTrafficPolicy?: (google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicy|null);

                    /** BackendService orchestrationInfo */
                    orchestrationInfo?: (google.cloud.compute.v1beta.IBackendServiceOrchestrationInfo|null);

                    /** BackendService outlierDetection */
                    outlierDetection?: (google.cloud.compute.v1beta.IOutlierDetection|null);

                    /** BackendService params */
                    params?: (google.cloud.compute.v1beta.IBackendServiceParams|null);

                    /** BackendService port */
                    port?: (number|null);

                    /** BackendService portName */
                    portName?: (string|null);

                    /** BackendService protocol */
                    protocol?: (string|null);

                    /** BackendService region */
                    region?: (string|null);

                    /** BackendService securityPolicy */
                    securityPolicy?: (string|null);

                    /** BackendService securitySettings */
                    securitySettings?: (google.cloud.compute.v1beta.ISecuritySettings|null);

                    /** BackendService selfLink */
                    selfLink?: (string|null);

                    /** BackendService serviceBindings */
                    serviceBindings?: (string[]|null);

                    /** BackendService serviceLbPolicy */
                    serviceLbPolicy?: (string|null);

                    /** BackendService sessionAffinity */
                    sessionAffinity?: (string|null);

                    /** BackendService strongSessionAffinityCookie */
                    strongSessionAffinityCookie?: (google.cloud.compute.v1beta.IBackendServiceHttpCookie|null);

                    /** BackendService subsetting */
                    subsetting?: (google.cloud.compute.v1beta.ISubsetting|null);

                    /** BackendService timeoutSec */
                    timeoutSec?: (number|null);

                    /** BackendService tlsSettings */
                    tlsSettings?: (google.cloud.compute.v1beta.IBackendServiceTlsSettings|null);

                    /** BackendService usedBy */
                    usedBy?: (google.cloud.compute.v1beta.IBackendServiceUsedBy[]|null);
                }

                /** Represents a BackendService. */
                class BackendService implements IBackendService {

                    /**
                     * Constructs a new BackendService.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendService);

                    /** BackendService affinityCookieTtlSec. */
                    public affinityCookieTtlSec?: (number|null);

                    /** BackendService backends. */
                    public backends: google.cloud.compute.v1beta.IBackend[];

                    /** BackendService cdnPolicy. */
                    public cdnPolicy?: (google.cloud.compute.v1beta.IBackendServiceCdnPolicy|null);

                    /** BackendService circuitBreakers. */
                    public circuitBreakers?: (google.cloud.compute.v1beta.ICircuitBreakers|null);

                    /** BackendService compressionMode. */
                    public compressionMode?: (string|null);

                    /** BackendService connectionDraining. */
                    public connectionDraining?: (google.cloud.compute.v1beta.IConnectionDraining|null);

                    /** BackendService connectionTrackingPolicy. */
                    public connectionTrackingPolicy?: (google.cloud.compute.v1beta.IBackendServiceConnectionTrackingPolicy|null);

                    /** BackendService consistentHash. */
                    public consistentHash?: (google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettings|null);

                    /** BackendService creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** BackendService customMetrics. */
                    public customMetrics: google.cloud.compute.v1beta.IBackendServiceCustomMetric[];

                    /** BackendService customRequestHeaders. */
                    public customRequestHeaders: string[];

                    /** BackendService customResponseHeaders. */
                    public customResponseHeaders: string[];

                    /** BackendService description. */
                    public description?: (string|null);

                    /** BackendService dynamicForwarding. */
                    public dynamicForwarding?: (google.cloud.compute.v1beta.IBackendServiceDynamicForwarding|null);

                    /** BackendService edgeSecurityPolicy. */
                    public edgeSecurityPolicy?: (string|null);

                    /** BackendService enableCDN. */
                    public enableCDN?: (boolean|null);

                    /** BackendService externalManagedMigrationState. */
                    public externalManagedMigrationState?: (string|null);

                    /** BackendService externalManagedMigrationTestingPercentage. */
                    public externalManagedMigrationTestingPercentage?: (number|null);

                    /** BackendService failoverPolicy. */
                    public failoverPolicy?: (google.cloud.compute.v1beta.IBackendServiceFailoverPolicy|null);

                    /** BackendService fingerprint. */
                    public fingerprint?: (string|null);

                    /** BackendService haPolicy. */
                    public haPolicy?: (google.cloud.compute.v1beta.IBackendServiceHAPolicy|null);

                    /** BackendService healthChecks. */
                    public healthChecks: string[];

                    /** BackendService iap. */
                    public iap?: (google.cloud.compute.v1beta.IBackendServiceIAP|null);

                    /** BackendService id. */
                    public id?: (number|Long|string|null);

                    /** BackendService ipAddressSelectionPolicy. */
                    public ipAddressSelectionPolicy?: (string|null);

                    /** BackendService kind. */
                    public kind?: (string|null);

                    /** BackendService loadBalancingScheme. */
                    public loadBalancingScheme?: (string|null);

                    /** BackendService localityLbPolicies. */
                    public localityLbPolicies: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfig[];

                    /** BackendService localityLbPolicy. */
                    public localityLbPolicy?: (string|null);

                    /** BackendService logConfig. */
                    public logConfig?: (google.cloud.compute.v1beta.IBackendServiceLogConfig|null);

                    /** BackendService maxStreamDuration. */
                    public maxStreamDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** BackendService metadatas. */
                    public metadatas: { [k: string]: string };

                    /** BackendService name. */
                    public name?: (string|null);

                    /** BackendService network. */
                    public network?: (string|null);

                    /** BackendService networkPassThroughLbTrafficPolicy. */
                    public networkPassThroughLbTrafficPolicy?: (google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicy|null);

                    /** BackendService orchestrationInfo. */
                    public orchestrationInfo?: (google.cloud.compute.v1beta.IBackendServiceOrchestrationInfo|null);

                    /** BackendService outlierDetection. */
                    public outlierDetection?: (google.cloud.compute.v1beta.IOutlierDetection|null);

                    /** BackendService params. */
                    public params?: (google.cloud.compute.v1beta.IBackendServiceParams|null);

                    /** BackendService port. */
                    public port?: (number|null);

                    /** BackendService portName. */
                    public portName?: (string|null);

                    /** BackendService protocol. */
                    public protocol?: (string|null);

                    /** BackendService region. */
                    public region?: (string|null);

                    /** BackendService securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** BackendService securitySettings. */
                    public securitySettings?: (google.cloud.compute.v1beta.ISecuritySettings|null);

                    /** BackendService selfLink. */
                    public selfLink?: (string|null);

                    /** BackendService serviceBindings. */
                    public serviceBindings: string[];

                    /** BackendService serviceLbPolicy. */
                    public serviceLbPolicy?: (string|null);

                    /** BackendService sessionAffinity. */
                    public sessionAffinity?: (string|null);

                    /** BackendService strongSessionAffinityCookie. */
                    public strongSessionAffinityCookie?: (google.cloud.compute.v1beta.IBackendServiceHttpCookie|null);

                    /** BackendService subsetting. */
                    public subsetting?: (google.cloud.compute.v1beta.ISubsetting|null);

                    /** BackendService timeoutSec. */
                    public timeoutSec?: (number|null);

                    /** BackendService tlsSettings. */
                    public tlsSettings?: (google.cloud.compute.v1beta.IBackendServiceTlsSettings|null);

                    /** BackendService usedBy. */
                    public usedBy: google.cloud.compute.v1beta.IBackendServiceUsedBy[];

                    /**
                     * Creates a new BackendService instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendService instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendService): google.cloud.compute.v1beta.BackendService;

                    /**
                     * Encodes the specified BackendService message. Does not implicitly {@link google.cloud.compute.v1beta.BackendService.verify|verify} messages.
                     * @param message BackendService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendService message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendService.verify|verify} messages.
                     * @param message BackendService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendService message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendService;

                    /**
                     * Decodes a BackendService message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendService;

                    /**
                     * Verifies a BackendService message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendService message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendService
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendService;

                    /**
                     * Creates a plain object from a BackendService message. Also converts values to other types if specified.
                     * @param message BackendService
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendService to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendService
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendService {

                    /** CompressionMode enum. */
                    enum CompressionMode {
                        UNDEFINED_COMPRESSION_MODE = 0,
                        AUTOMATIC = 165298699,
                        DISABLED = 516696700
                    }

                    /** ExternalManagedMigrationState enum. */
                    enum ExternalManagedMigrationState {
                        UNDEFINED_EXTERNAL_MANAGED_MIGRATION_STATE = 0,
                        PREPARE = 399612135,
                        TEST_ALL_TRAFFIC = 79728882,
                        TEST_BY_PERCENTAGE = 513738389
                    }

                    /** IpAddressSelectionPolicy enum. */
                    enum IpAddressSelectionPolicy {
                        UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100,
                        IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36210144,
                        PREFER_IPV6 = 408601302
                    }

                    /** LoadBalancingScheme enum. */
                    enum LoadBalancingScheme {
                        UNDEFINED_LOAD_BALANCING_SCHEME = 0,
                        EXTERNAL = 35607499,
                        EXTERNAL_MANAGED = 512006923,
                        INTERNAL = 279295677,
                        INTERNAL_MANAGED = 37350397,
                        INTERNAL_SELF_MANAGED = 236211150,
                        INVALID_LOAD_BALANCING_SCHEME = 275352060
                    }

                    /** LocalityLbPolicy enum. */
                    enum LocalityLbPolicy {
                        UNDEFINED_LOCALITY_LB_POLICY = 0,
                        INVALID_LB_POLICY = 323318707,
                        LEAST_REQUEST = 46604921,
                        MAGLEV = 119180266,
                        ORIGINAL_DESTINATION = 166297216,
                        RANDOM = 262527171,
                        RING_HASH = 432795069,
                        ROUND_ROBIN = 153895801,
                        WEIGHTED_GCP_RENDEZVOUS = 82501640,
                        WEIGHTED_MAGLEV = 254930962,
                        WEIGHTED_ROUND_ROBIN = 5584977
                    }

                    /** Protocol enum. */
                    enum Protocol {
                        UNDEFINED_PROTOCOL = 0,
                        GRPC = 2196510,
                        H2C = 70809,
                        HTTP = 2228360,
                        HTTP2 = 69079210,
                        HTTPS = 69079243,
                        SSL = 82412,
                        TCP = 82881,
                        UDP = 83873,
                        UNSPECIFIED = 526786327
                    }

                    /** SessionAffinity enum. */
                    enum SessionAffinity {
                        UNDEFINED_SESSION_AFFINITY = 0,
                        CLIENT_IP = 345665051,
                        CLIENT_IP_NO_DESTINATION = 106122516,
                        CLIENT_IP_PORT_PROTO = 221722926,
                        CLIENT_IP_PROTO = 25322148,
                        GENERATED_COOKIE = 370321204,
                        HEADER_FIELD = 200737960,
                        HTTP_COOKIE = 494981627,
                        NONE = 2402104,
                        STRONG_COOKIE_AFFINITY = 438628091
                    }
                }

                /** Properties of a BackendServiceAggregatedList. */
                interface IBackendServiceAggregatedList {

                    /** BackendServiceAggregatedList id */
                    id?: (string|null);

                    /** BackendServiceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IBackendServicesScopedList }|null);

                    /** BackendServiceAggregatedList kind */
                    kind?: (string|null);

                    /** BackendServiceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendServiceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** BackendServiceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** BackendServiceAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a BackendServiceAggregatedList. */
                class BackendServiceAggregatedList implements IBackendServiceAggregatedList {

                    /**
                     * Constructs a new BackendServiceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceAggregatedList);

                    /** BackendServiceAggregatedList id. */
                    public id?: (string|null);

                    /** BackendServiceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IBackendServicesScopedList };

                    /** BackendServiceAggregatedList kind. */
                    public kind?: (string|null);

                    /** BackendServiceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendServiceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** BackendServiceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** BackendServiceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new BackendServiceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceAggregatedList): google.cloud.compute.v1beta.BackendServiceAggregatedList;

                    /**
                     * Encodes the specified BackendServiceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceAggregatedList.verify|verify} messages.
                     * @param message BackendServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceAggregatedList.verify|verify} messages.
                     * @param message BackendServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceAggregatedList;

                    /**
                     * Decodes a BackendServiceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceAggregatedList;

                    /**
                     * Verifies a BackendServiceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceAggregatedList;

                    /**
                     * Creates a plain object from a BackendServiceAggregatedList message. Also converts values to other types if specified.
                     * @param message BackendServiceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceCdnPolicy. */
                interface IBackendServiceCdnPolicy {

                    /** BackendServiceCdnPolicy bypassCacheOnRequestHeaders */
                    bypassCacheOnRequestHeaders?: (google.cloud.compute.v1beta.IBackendServiceCdnPolicyBypassCacheOnRequestHeader[]|null);

                    /** BackendServiceCdnPolicy cacheKeyPolicy */
                    cacheKeyPolicy?: (google.cloud.compute.v1beta.ICacheKeyPolicy|null);

                    /** BackendServiceCdnPolicy cacheMode */
                    cacheMode?: (string|null);

                    /** BackendServiceCdnPolicy clientTtl */
                    clientTtl?: (number|null);

                    /** BackendServiceCdnPolicy defaultTtl */
                    defaultTtl?: (number|null);

                    /** BackendServiceCdnPolicy maxTtl */
                    maxTtl?: (number|null);

                    /** BackendServiceCdnPolicy negativeCaching */
                    negativeCaching?: (boolean|null);

                    /** BackendServiceCdnPolicy negativeCachingPolicy */
                    negativeCachingPolicy?: (google.cloud.compute.v1beta.IBackendServiceCdnPolicyNegativeCachingPolicy[]|null);

                    /** BackendServiceCdnPolicy requestCoalescing */
                    requestCoalescing?: (boolean|null);

                    /** BackendServiceCdnPolicy serveWhileStale */
                    serveWhileStale?: (number|null);

                    /** BackendServiceCdnPolicy signedUrlCacheMaxAgeSec */
                    signedUrlCacheMaxAgeSec?: (number|Long|string|null);

                    /** BackendServiceCdnPolicy signedUrlKeyNames */
                    signedUrlKeyNames?: (string[]|null);
                }

                /** Represents a BackendServiceCdnPolicy. */
                class BackendServiceCdnPolicy implements IBackendServiceCdnPolicy {

                    /**
                     * Constructs a new BackendServiceCdnPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceCdnPolicy);

                    /** BackendServiceCdnPolicy bypassCacheOnRequestHeaders. */
                    public bypassCacheOnRequestHeaders: google.cloud.compute.v1beta.IBackendServiceCdnPolicyBypassCacheOnRequestHeader[];

                    /** BackendServiceCdnPolicy cacheKeyPolicy. */
                    public cacheKeyPolicy?: (google.cloud.compute.v1beta.ICacheKeyPolicy|null);

                    /** BackendServiceCdnPolicy cacheMode. */
                    public cacheMode?: (string|null);

                    /** BackendServiceCdnPolicy clientTtl. */
                    public clientTtl?: (number|null);

                    /** BackendServiceCdnPolicy defaultTtl. */
                    public defaultTtl?: (number|null);

                    /** BackendServiceCdnPolicy maxTtl. */
                    public maxTtl?: (number|null);

                    /** BackendServiceCdnPolicy negativeCaching. */
                    public negativeCaching?: (boolean|null);

                    /** BackendServiceCdnPolicy negativeCachingPolicy. */
                    public negativeCachingPolicy: google.cloud.compute.v1beta.IBackendServiceCdnPolicyNegativeCachingPolicy[];

                    /** BackendServiceCdnPolicy requestCoalescing. */
                    public requestCoalescing?: (boolean|null);

                    /** BackendServiceCdnPolicy serveWhileStale. */
                    public serveWhileStale?: (number|null);

                    /** BackendServiceCdnPolicy signedUrlCacheMaxAgeSec. */
                    public signedUrlCacheMaxAgeSec?: (number|Long|string|null);

                    /** BackendServiceCdnPolicy signedUrlKeyNames. */
                    public signedUrlKeyNames: string[];

                    /**
                     * Creates a new BackendServiceCdnPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceCdnPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceCdnPolicy): google.cloud.compute.v1beta.BackendServiceCdnPolicy;

                    /**
                     * Encodes the specified BackendServiceCdnPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceCdnPolicy.verify|verify} messages.
                     * @param message BackendServiceCdnPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceCdnPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceCdnPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceCdnPolicy.verify|verify} messages.
                     * @param message BackendServiceCdnPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceCdnPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceCdnPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceCdnPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceCdnPolicy;

                    /**
                     * Decodes a BackendServiceCdnPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceCdnPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceCdnPolicy;

                    /**
                     * Verifies a BackendServiceCdnPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceCdnPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceCdnPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceCdnPolicy;

                    /**
                     * Creates a plain object from a BackendServiceCdnPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceCdnPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceCdnPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceCdnPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceCdnPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceCdnPolicy {

                    /** CacheMode enum. */
                    enum CacheMode {
                        UNDEFINED_CACHE_MODE = 0,
                        CACHE_ALL_STATIC = 355027945,
                        FORCE_CACHE_ALL = 486026928,
                        INVALID_CACHE_MODE = 381295560,
                        USE_ORIGIN_HEADERS = 55380261
                    }
                }

                /** Properties of a BackendServiceCdnPolicyBypassCacheOnRequestHeader. */
                interface IBackendServiceCdnPolicyBypassCacheOnRequestHeader {

                    /** BackendServiceCdnPolicyBypassCacheOnRequestHeader headerName */
                    headerName?: (string|null);
                }

                /** Represents a BackendServiceCdnPolicyBypassCacheOnRequestHeader. */
                class BackendServiceCdnPolicyBypassCacheOnRequestHeader implements IBackendServiceCdnPolicyBypassCacheOnRequestHeader {

                    /**
                     * Constructs a new BackendServiceCdnPolicyBypassCacheOnRequestHeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceCdnPolicyBypassCacheOnRequestHeader);

                    /** BackendServiceCdnPolicyBypassCacheOnRequestHeader headerName. */
                    public headerName?: (string|null);

                    /**
                     * Creates a new BackendServiceCdnPolicyBypassCacheOnRequestHeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceCdnPolicyBypassCacheOnRequestHeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceCdnPolicyBypassCacheOnRequestHeader): google.cloud.compute.v1beta.BackendServiceCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Encodes the specified BackendServiceCdnPolicyBypassCacheOnRequestHeader message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceCdnPolicyBypassCacheOnRequestHeader.verify|verify} messages.
                     * @param message BackendServiceCdnPolicyBypassCacheOnRequestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceCdnPolicyBypassCacheOnRequestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceCdnPolicyBypassCacheOnRequestHeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceCdnPolicyBypassCacheOnRequestHeader.verify|verify} messages.
                     * @param message BackendServiceCdnPolicyBypassCacheOnRequestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceCdnPolicyBypassCacheOnRequestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceCdnPolicyBypassCacheOnRequestHeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Decodes a BackendServiceCdnPolicyBypassCacheOnRequestHeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Verifies a BackendServiceCdnPolicyBypassCacheOnRequestHeader message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceCdnPolicyBypassCacheOnRequestHeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceCdnPolicyBypassCacheOnRequestHeader;

                    /**
                     * Creates a plain object from a BackendServiceCdnPolicyBypassCacheOnRequestHeader message. Also converts values to other types if specified.
                     * @param message BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceCdnPolicyBypassCacheOnRequestHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceCdnPolicyBypassCacheOnRequestHeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceCdnPolicyBypassCacheOnRequestHeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceCdnPolicyNegativeCachingPolicy. */
                interface IBackendServiceCdnPolicyNegativeCachingPolicy {

                    /** BackendServiceCdnPolicyNegativeCachingPolicy code */
                    code?: (number|null);

                    /** BackendServiceCdnPolicyNegativeCachingPolicy ttl */
                    ttl?: (number|null);
                }

                /** Represents a BackendServiceCdnPolicyNegativeCachingPolicy. */
                class BackendServiceCdnPolicyNegativeCachingPolicy implements IBackendServiceCdnPolicyNegativeCachingPolicy {

                    /**
                     * Constructs a new BackendServiceCdnPolicyNegativeCachingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceCdnPolicyNegativeCachingPolicy);

                    /** BackendServiceCdnPolicyNegativeCachingPolicy code. */
                    public code?: (number|null);

                    /** BackendServiceCdnPolicyNegativeCachingPolicy ttl. */
                    public ttl?: (number|null);

                    /**
                     * Creates a new BackendServiceCdnPolicyNegativeCachingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceCdnPolicyNegativeCachingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceCdnPolicyNegativeCachingPolicy): google.cloud.compute.v1beta.BackendServiceCdnPolicyNegativeCachingPolicy;

                    /**
                     * Encodes the specified BackendServiceCdnPolicyNegativeCachingPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceCdnPolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message BackendServiceCdnPolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceCdnPolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceCdnPolicyNegativeCachingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceCdnPolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message BackendServiceCdnPolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceCdnPolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceCdnPolicyNegativeCachingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceCdnPolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceCdnPolicyNegativeCachingPolicy;

                    /**
                     * Decodes a BackendServiceCdnPolicyNegativeCachingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceCdnPolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceCdnPolicyNegativeCachingPolicy;

                    /**
                     * Verifies a BackendServiceCdnPolicyNegativeCachingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceCdnPolicyNegativeCachingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceCdnPolicyNegativeCachingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceCdnPolicyNegativeCachingPolicy;

                    /**
                     * Creates a plain object from a BackendServiceCdnPolicyNegativeCachingPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceCdnPolicyNegativeCachingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceCdnPolicyNegativeCachingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceCdnPolicyNegativeCachingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceCdnPolicyNegativeCachingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceConnectionTrackingPolicy. */
                interface IBackendServiceConnectionTrackingPolicy {

                    /** BackendServiceConnectionTrackingPolicy connectionPersistenceOnUnhealthyBackends */
                    connectionPersistenceOnUnhealthyBackends?: (string|null);

                    /** BackendServiceConnectionTrackingPolicy enableStrongAffinity */
                    enableStrongAffinity?: (boolean|null);

                    /** BackendServiceConnectionTrackingPolicy idleTimeoutSec */
                    idleTimeoutSec?: (number|null);

                    /** BackendServiceConnectionTrackingPolicy trackingMode */
                    trackingMode?: (string|null);
                }

                /** Represents a BackendServiceConnectionTrackingPolicy. */
                class BackendServiceConnectionTrackingPolicy implements IBackendServiceConnectionTrackingPolicy {

                    /**
                     * Constructs a new BackendServiceConnectionTrackingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceConnectionTrackingPolicy);

                    /** BackendServiceConnectionTrackingPolicy connectionPersistenceOnUnhealthyBackends. */
                    public connectionPersistenceOnUnhealthyBackends?: (string|null);

                    /** BackendServiceConnectionTrackingPolicy enableStrongAffinity. */
                    public enableStrongAffinity?: (boolean|null);

                    /** BackendServiceConnectionTrackingPolicy idleTimeoutSec. */
                    public idleTimeoutSec?: (number|null);

                    /** BackendServiceConnectionTrackingPolicy trackingMode. */
                    public trackingMode?: (string|null);

                    /**
                     * Creates a new BackendServiceConnectionTrackingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceConnectionTrackingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceConnectionTrackingPolicy): google.cloud.compute.v1beta.BackendServiceConnectionTrackingPolicy;

                    /**
                     * Encodes the specified BackendServiceConnectionTrackingPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceConnectionTrackingPolicy.verify|verify} messages.
                     * @param message BackendServiceConnectionTrackingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceConnectionTrackingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceConnectionTrackingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceConnectionTrackingPolicy.verify|verify} messages.
                     * @param message BackendServiceConnectionTrackingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceConnectionTrackingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceConnectionTrackingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceConnectionTrackingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceConnectionTrackingPolicy;

                    /**
                     * Decodes a BackendServiceConnectionTrackingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceConnectionTrackingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceConnectionTrackingPolicy;

                    /**
                     * Verifies a BackendServiceConnectionTrackingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceConnectionTrackingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceConnectionTrackingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceConnectionTrackingPolicy;

                    /**
                     * Creates a plain object from a BackendServiceConnectionTrackingPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceConnectionTrackingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceConnectionTrackingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceConnectionTrackingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceConnectionTrackingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceConnectionTrackingPolicy {

                    /** ConnectionPersistenceOnUnhealthyBackends enum. */
                    enum ConnectionPersistenceOnUnhealthyBackends {
                        UNDEFINED_CONNECTION_PERSISTENCE_ON_UNHEALTHY_BACKENDS = 0,
                        ALWAYS_PERSIST = 38400900,
                        DEFAULT_FOR_PROTOCOL = 145265356,
                        NEVER_PERSIST = 138646241
                    }

                    /** TrackingMode enum. */
                    enum TrackingMode {
                        UNDEFINED_TRACKING_MODE = 0,
                        INVALID_TRACKING_MODE = 49234371,
                        PER_CONNECTION = 85162848,
                        PER_SESSION = 182099252
                    }
                }

                /** Properties of a BackendServiceCustomMetric. */
                interface IBackendServiceCustomMetric {

                    /** BackendServiceCustomMetric dryRun */
                    dryRun?: (boolean|null);

                    /** BackendServiceCustomMetric name */
                    name?: (string|null);
                }

                /** Represents a BackendServiceCustomMetric. */
                class BackendServiceCustomMetric implements IBackendServiceCustomMetric {

                    /**
                     * Constructs a new BackendServiceCustomMetric.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceCustomMetric);

                    /** BackendServiceCustomMetric dryRun. */
                    public dryRun?: (boolean|null);

                    /** BackendServiceCustomMetric name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BackendServiceCustomMetric instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceCustomMetric instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceCustomMetric): google.cloud.compute.v1beta.BackendServiceCustomMetric;

                    /**
                     * Encodes the specified BackendServiceCustomMetric message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceCustomMetric.verify|verify} messages.
                     * @param message BackendServiceCustomMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceCustomMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceCustomMetric message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceCustomMetric.verify|verify} messages.
                     * @param message BackendServiceCustomMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceCustomMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceCustomMetric message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceCustomMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceCustomMetric;

                    /**
                     * Decodes a BackendServiceCustomMetric message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceCustomMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceCustomMetric;

                    /**
                     * Verifies a BackendServiceCustomMetric message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceCustomMetric message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceCustomMetric
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceCustomMetric;

                    /**
                     * Creates a plain object from a BackendServiceCustomMetric message. Also converts values to other types if specified.
                     * @param message BackendServiceCustomMetric
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceCustomMetric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceCustomMetric to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceCustomMetric
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceDynamicForwarding. */
                interface IBackendServiceDynamicForwarding {

                    /** BackendServiceDynamicForwarding forwardProxy */
                    forwardProxy?: (google.cloud.compute.v1beta.IBackendServiceDynamicForwardingForwardProxy|null);

                    /** BackendServiceDynamicForwarding ipPortSelection */
                    ipPortSelection?: (google.cloud.compute.v1beta.IBackendServiceDynamicForwardingIpPortSelection|null);
                }

                /** Represents a BackendServiceDynamicForwarding. */
                class BackendServiceDynamicForwarding implements IBackendServiceDynamicForwarding {

                    /**
                     * Constructs a new BackendServiceDynamicForwarding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceDynamicForwarding);

                    /** BackendServiceDynamicForwarding forwardProxy. */
                    public forwardProxy?: (google.cloud.compute.v1beta.IBackendServiceDynamicForwardingForwardProxy|null);

                    /** BackendServiceDynamicForwarding ipPortSelection. */
                    public ipPortSelection?: (google.cloud.compute.v1beta.IBackendServiceDynamicForwardingIpPortSelection|null);

                    /**
                     * Creates a new BackendServiceDynamicForwarding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceDynamicForwarding instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceDynamicForwarding): google.cloud.compute.v1beta.BackendServiceDynamicForwarding;

                    /**
                     * Encodes the specified BackendServiceDynamicForwarding message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceDynamicForwarding.verify|verify} messages.
                     * @param message BackendServiceDynamicForwarding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceDynamicForwarding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceDynamicForwarding message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceDynamicForwarding.verify|verify} messages.
                     * @param message BackendServiceDynamicForwarding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceDynamicForwarding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceDynamicForwarding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceDynamicForwarding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceDynamicForwarding;

                    /**
                     * Decodes a BackendServiceDynamicForwarding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceDynamicForwarding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceDynamicForwarding;

                    /**
                     * Verifies a BackendServiceDynamicForwarding message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceDynamicForwarding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceDynamicForwarding
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceDynamicForwarding;

                    /**
                     * Creates a plain object from a BackendServiceDynamicForwarding message. Also converts values to other types if specified.
                     * @param message BackendServiceDynamicForwarding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceDynamicForwarding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceDynamicForwarding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceDynamicForwarding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceDynamicForwardingForwardProxy. */
                interface IBackendServiceDynamicForwardingForwardProxy {

                    /** BackendServiceDynamicForwardingForwardProxy enabled */
                    enabled?: (boolean|null);

                    /** BackendServiceDynamicForwardingForwardProxy proxyMode */
                    proxyMode?: (string|null);
                }

                /** Represents a BackendServiceDynamicForwardingForwardProxy. */
                class BackendServiceDynamicForwardingForwardProxy implements IBackendServiceDynamicForwardingForwardProxy {

                    /**
                     * Constructs a new BackendServiceDynamicForwardingForwardProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceDynamicForwardingForwardProxy);

                    /** BackendServiceDynamicForwardingForwardProxy enabled. */
                    public enabled?: (boolean|null);

                    /** BackendServiceDynamicForwardingForwardProxy proxyMode. */
                    public proxyMode?: (string|null);

                    /**
                     * Creates a new BackendServiceDynamicForwardingForwardProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceDynamicForwardingForwardProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceDynamicForwardingForwardProxy): google.cloud.compute.v1beta.BackendServiceDynamicForwardingForwardProxy;

                    /**
                     * Encodes the specified BackendServiceDynamicForwardingForwardProxy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceDynamicForwardingForwardProxy.verify|verify} messages.
                     * @param message BackendServiceDynamicForwardingForwardProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceDynamicForwardingForwardProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceDynamicForwardingForwardProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceDynamicForwardingForwardProxy.verify|verify} messages.
                     * @param message BackendServiceDynamicForwardingForwardProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceDynamicForwardingForwardProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceDynamicForwardingForwardProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceDynamicForwardingForwardProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceDynamicForwardingForwardProxy;

                    /**
                     * Decodes a BackendServiceDynamicForwardingForwardProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceDynamicForwardingForwardProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceDynamicForwardingForwardProxy;

                    /**
                     * Verifies a BackendServiceDynamicForwardingForwardProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceDynamicForwardingForwardProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceDynamicForwardingForwardProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceDynamicForwardingForwardProxy;

                    /**
                     * Creates a plain object from a BackendServiceDynamicForwardingForwardProxy message. Also converts values to other types if specified.
                     * @param message BackendServiceDynamicForwardingForwardProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceDynamicForwardingForwardProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceDynamicForwardingForwardProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceDynamicForwardingForwardProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceDynamicForwardingForwardProxy {

                    /** ProxyMode enum. */
                    enum ProxyMode {
                        UNDEFINED_PROXY_MODE = 0,
                        CLOUD_RUN = 214253889,
                        DIRECT_FORWARDING = 492448019
                    }
                }

                /** Properties of a BackendServiceDynamicForwardingIpPortSelection. */
                interface IBackendServiceDynamicForwardingIpPortSelection {

                    /** BackendServiceDynamicForwardingIpPortSelection enabled */
                    enabled?: (boolean|null);
                }

                /** Represents a BackendServiceDynamicForwardingIpPortSelection. */
                class BackendServiceDynamicForwardingIpPortSelection implements IBackendServiceDynamicForwardingIpPortSelection {

                    /**
                     * Constructs a new BackendServiceDynamicForwardingIpPortSelection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceDynamicForwardingIpPortSelection);

                    /** BackendServiceDynamicForwardingIpPortSelection enabled. */
                    public enabled?: (boolean|null);

                    /**
                     * Creates a new BackendServiceDynamicForwardingIpPortSelection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceDynamicForwardingIpPortSelection instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceDynamicForwardingIpPortSelection): google.cloud.compute.v1beta.BackendServiceDynamicForwardingIpPortSelection;

                    /**
                     * Encodes the specified BackendServiceDynamicForwardingIpPortSelection message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceDynamicForwardingIpPortSelection.verify|verify} messages.
                     * @param message BackendServiceDynamicForwardingIpPortSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceDynamicForwardingIpPortSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceDynamicForwardingIpPortSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceDynamicForwardingIpPortSelection.verify|verify} messages.
                     * @param message BackendServiceDynamicForwardingIpPortSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceDynamicForwardingIpPortSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceDynamicForwardingIpPortSelection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceDynamicForwardingIpPortSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceDynamicForwardingIpPortSelection;

                    /**
                     * Decodes a BackendServiceDynamicForwardingIpPortSelection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceDynamicForwardingIpPortSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceDynamicForwardingIpPortSelection;

                    /**
                     * Verifies a BackendServiceDynamicForwardingIpPortSelection message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceDynamicForwardingIpPortSelection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceDynamicForwardingIpPortSelection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceDynamicForwardingIpPortSelection;

                    /**
                     * Creates a plain object from a BackendServiceDynamicForwardingIpPortSelection message. Also converts values to other types if specified.
                     * @param message BackendServiceDynamicForwardingIpPortSelection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceDynamicForwardingIpPortSelection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceDynamicForwardingIpPortSelection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceDynamicForwardingIpPortSelection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceFailoverPolicy. */
                interface IBackendServiceFailoverPolicy {

                    /** BackendServiceFailoverPolicy disableConnectionDrainOnFailover */
                    disableConnectionDrainOnFailover?: (boolean|null);

                    /** BackendServiceFailoverPolicy dropTrafficIfUnhealthy */
                    dropTrafficIfUnhealthy?: (boolean|null);

                    /** BackendServiceFailoverPolicy failoverRatio */
                    failoverRatio?: (number|null);
                }

                /** Represents a BackendServiceFailoverPolicy. */
                class BackendServiceFailoverPolicy implements IBackendServiceFailoverPolicy {

                    /**
                     * Constructs a new BackendServiceFailoverPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceFailoverPolicy);

                    /** BackendServiceFailoverPolicy disableConnectionDrainOnFailover. */
                    public disableConnectionDrainOnFailover?: (boolean|null);

                    /** BackendServiceFailoverPolicy dropTrafficIfUnhealthy. */
                    public dropTrafficIfUnhealthy?: (boolean|null);

                    /** BackendServiceFailoverPolicy failoverRatio. */
                    public failoverRatio?: (number|null);

                    /**
                     * Creates a new BackendServiceFailoverPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceFailoverPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceFailoverPolicy): google.cloud.compute.v1beta.BackendServiceFailoverPolicy;

                    /**
                     * Encodes the specified BackendServiceFailoverPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceFailoverPolicy.verify|verify} messages.
                     * @param message BackendServiceFailoverPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceFailoverPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceFailoverPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceFailoverPolicy.verify|verify} messages.
                     * @param message BackendServiceFailoverPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceFailoverPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceFailoverPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceFailoverPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceFailoverPolicy;

                    /**
                     * Decodes a BackendServiceFailoverPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceFailoverPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceFailoverPolicy;

                    /**
                     * Verifies a BackendServiceFailoverPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceFailoverPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceFailoverPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceFailoverPolicy;

                    /**
                     * Creates a plain object from a BackendServiceFailoverPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceFailoverPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceFailoverPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceFailoverPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceFailoverPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceGroupHealth. */
                interface IBackendServiceGroupHealth {

                    /** BackendServiceGroupHealth annotations */
                    annotations?: ({ [k: string]: string }|null);

                    /** BackendServiceGroupHealth healthStatus */
                    healthStatus?: (google.cloud.compute.v1beta.IHealthStatus[]|null);

                    /** BackendServiceGroupHealth kind */
                    kind?: (string|null);
                }

                /** Represents a BackendServiceGroupHealth. */
                class BackendServiceGroupHealth implements IBackendServiceGroupHealth {

                    /**
                     * Constructs a new BackendServiceGroupHealth.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceGroupHealth);

                    /** BackendServiceGroupHealth annotations. */
                    public annotations: { [k: string]: string };

                    /** BackendServiceGroupHealth healthStatus. */
                    public healthStatus: google.cloud.compute.v1beta.IHealthStatus[];

                    /** BackendServiceGroupHealth kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new BackendServiceGroupHealth instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceGroupHealth instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceGroupHealth): google.cloud.compute.v1beta.BackendServiceGroupHealth;

                    /**
                     * Encodes the specified BackendServiceGroupHealth message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceGroupHealth.verify|verify} messages.
                     * @param message BackendServiceGroupHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceGroupHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceGroupHealth message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceGroupHealth.verify|verify} messages.
                     * @param message BackendServiceGroupHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceGroupHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceGroupHealth message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceGroupHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceGroupHealth;

                    /**
                     * Decodes a BackendServiceGroupHealth message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceGroupHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceGroupHealth;

                    /**
                     * Verifies a BackendServiceGroupHealth message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceGroupHealth message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceGroupHealth
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceGroupHealth;

                    /**
                     * Creates a plain object from a BackendServiceGroupHealth message. Also converts values to other types if specified.
                     * @param message BackendServiceGroupHealth
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceGroupHealth, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceGroupHealth to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceGroupHealth
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceHAPolicy. */
                interface IBackendServiceHAPolicy {

                    /** BackendServiceHAPolicy fastIPMove */
                    fastIPMove?: (string|null);

                    /** BackendServiceHAPolicy leader */
                    leader?: (google.cloud.compute.v1beta.IBackendServiceHAPolicyLeader|null);
                }

                /** Represents a BackendServiceHAPolicy. */
                class BackendServiceHAPolicy implements IBackendServiceHAPolicy {

                    /**
                     * Constructs a new BackendServiceHAPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceHAPolicy);

                    /** BackendServiceHAPolicy fastIPMove. */
                    public fastIPMove?: (string|null);

                    /** BackendServiceHAPolicy leader. */
                    public leader?: (google.cloud.compute.v1beta.IBackendServiceHAPolicyLeader|null);

                    /**
                     * Creates a new BackendServiceHAPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceHAPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceHAPolicy): google.cloud.compute.v1beta.BackendServiceHAPolicy;

                    /**
                     * Encodes the specified BackendServiceHAPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceHAPolicy.verify|verify} messages.
                     * @param message BackendServiceHAPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceHAPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceHAPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceHAPolicy.verify|verify} messages.
                     * @param message BackendServiceHAPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceHAPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceHAPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceHAPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceHAPolicy;

                    /**
                     * Decodes a BackendServiceHAPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceHAPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceHAPolicy;

                    /**
                     * Verifies a BackendServiceHAPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceHAPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceHAPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceHAPolicy;

                    /**
                     * Creates a plain object from a BackendServiceHAPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceHAPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceHAPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceHAPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceHAPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceHAPolicy {

                    /** FastIPMove enum. */
                    enum FastIPMove {
                        UNDEFINED_FAST_I_P_MOVE = 0,
                        DISABLED = 516696700,
                        GARP_RA = 527352630
                    }
                }

                /** Properties of a BackendServiceHAPolicyLeader. */
                interface IBackendServiceHAPolicyLeader {

                    /** BackendServiceHAPolicyLeader backendGroup */
                    backendGroup?: (string|null);

                    /** BackendServiceHAPolicyLeader networkEndpoint */
                    networkEndpoint?: (google.cloud.compute.v1beta.IBackendServiceHAPolicyLeaderNetworkEndpoint|null);
                }

                /** Represents a BackendServiceHAPolicyLeader. */
                class BackendServiceHAPolicyLeader implements IBackendServiceHAPolicyLeader {

                    /**
                     * Constructs a new BackendServiceHAPolicyLeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceHAPolicyLeader);

                    /** BackendServiceHAPolicyLeader backendGroup. */
                    public backendGroup?: (string|null);

                    /** BackendServiceHAPolicyLeader networkEndpoint. */
                    public networkEndpoint?: (google.cloud.compute.v1beta.IBackendServiceHAPolicyLeaderNetworkEndpoint|null);

                    /**
                     * Creates a new BackendServiceHAPolicyLeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceHAPolicyLeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceHAPolicyLeader): google.cloud.compute.v1beta.BackendServiceHAPolicyLeader;

                    /**
                     * Encodes the specified BackendServiceHAPolicyLeader message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceHAPolicyLeader.verify|verify} messages.
                     * @param message BackendServiceHAPolicyLeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceHAPolicyLeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceHAPolicyLeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceHAPolicyLeader.verify|verify} messages.
                     * @param message BackendServiceHAPolicyLeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceHAPolicyLeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceHAPolicyLeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceHAPolicyLeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceHAPolicyLeader;

                    /**
                     * Decodes a BackendServiceHAPolicyLeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceHAPolicyLeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceHAPolicyLeader;

                    /**
                     * Verifies a BackendServiceHAPolicyLeader message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceHAPolicyLeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceHAPolicyLeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceHAPolicyLeader;

                    /**
                     * Creates a plain object from a BackendServiceHAPolicyLeader message. Also converts values to other types if specified.
                     * @param message BackendServiceHAPolicyLeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceHAPolicyLeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceHAPolicyLeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceHAPolicyLeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceHAPolicyLeaderNetworkEndpoint. */
                interface IBackendServiceHAPolicyLeaderNetworkEndpoint {

                    /** BackendServiceHAPolicyLeaderNetworkEndpoint instance */
                    instance?: (string|null);
                }

                /** Represents a BackendServiceHAPolicyLeaderNetworkEndpoint. */
                class BackendServiceHAPolicyLeaderNetworkEndpoint implements IBackendServiceHAPolicyLeaderNetworkEndpoint {

                    /**
                     * Constructs a new BackendServiceHAPolicyLeaderNetworkEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceHAPolicyLeaderNetworkEndpoint);

                    /** BackendServiceHAPolicyLeaderNetworkEndpoint instance. */
                    public instance?: (string|null);

                    /**
                     * Creates a new BackendServiceHAPolicyLeaderNetworkEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceHAPolicyLeaderNetworkEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceHAPolicyLeaderNetworkEndpoint): google.cloud.compute.v1beta.BackendServiceHAPolicyLeaderNetworkEndpoint;

                    /**
                     * Encodes the specified BackendServiceHAPolicyLeaderNetworkEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceHAPolicyLeaderNetworkEndpoint.verify|verify} messages.
                     * @param message BackendServiceHAPolicyLeaderNetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceHAPolicyLeaderNetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceHAPolicyLeaderNetworkEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceHAPolicyLeaderNetworkEndpoint.verify|verify} messages.
                     * @param message BackendServiceHAPolicyLeaderNetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceHAPolicyLeaderNetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceHAPolicyLeaderNetworkEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceHAPolicyLeaderNetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceHAPolicyLeaderNetworkEndpoint;

                    /**
                     * Decodes a BackendServiceHAPolicyLeaderNetworkEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceHAPolicyLeaderNetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceHAPolicyLeaderNetworkEndpoint;

                    /**
                     * Verifies a BackendServiceHAPolicyLeaderNetworkEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceHAPolicyLeaderNetworkEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceHAPolicyLeaderNetworkEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceHAPolicyLeaderNetworkEndpoint;

                    /**
                     * Creates a plain object from a BackendServiceHAPolicyLeaderNetworkEndpoint message. Also converts values to other types if specified.
                     * @param message BackendServiceHAPolicyLeaderNetworkEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceHAPolicyLeaderNetworkEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceHAPolicyLeaderNetworkEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceHAPolicyLeaderNetworkEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceHttpCookie. */
                interface IBackendServiceHttpCookie {

                    /** BackendServiceHttpCookie name */
                    name?: (string|null);

                    /** BackendServiceHttpCookie path */
                    path?: (string|null);

                    /** BackendServiceHttpCookie ttl */
                    ttl?: (google.cloud.compute.v1beta.IDuration|null);
                }

                /** Represents a BackendServiceHttpCookie. */
                class BackendServiceHttpCookie implements IBackendServiceHttpCookie {

                    /**
                     * Constructs a new BackendServiceHttpCookie.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceHttpCookie);

                    /** BackendServiceHttpCookie name. */
                    public name?: (string|null);

                    /** BackendServiceHttpCookie path. */
                    public path?: (string|null);

                    /** BackendServiceHttpCookie ttl. */
                    public ttl?: (google.cloud.compute.v1beta.IDuration|null);

                    /**
                     * Creates a new BackendServiceHttpCookie instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceHttpCookie instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceHttpCookie): google.cloud.compute.v1beta.BackendServiceHttpCookie;

                    /**
                     * Encodes the specified BackendServiceHttpCookie message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceHttpCookie.verify|verify} messages.
                     * @param message BackendServiceHttpCookie message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceHttpCookie, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceHttpCookie message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceHttpCookie.verify|verify} messages.
                     * @param message BackendServiceHttpCookie message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceHttpCookie, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceHttpCookie message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceHttpCookie
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceHttpCookie;

                    /**
                     * Decodes a BackendServiceHttpCookie message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceHttpCookie
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceHttpCookie;

                    /**
                     * Verifies a BackendServiceHttpCookie message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceHttpCookie message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceHttpCookie
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceHttpCookie;

                    /**
                     * Creates a plain object from a BackendServiceHttpCookie message. Also converts values to other types if specified.
                     * @param message BackendServiceHttpCookie
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceHttpCookie, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceHttpCookie to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceHttpCookie
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceIAP. */
                interface IBackendServiceIAP {

                    /** BackendServiceIAP enabled */
                    enabled?: (boolean|null);

                    /** BackendServiceIAP oauth2ClientId */
                    oauth2ClientId?: (string|null);

                    /** BackendServiceIAP oauth2ClientSecret */
                    oauth2ClientSecret?: (string|null);

                    /** BackendServiceIAP oauth2ClientSecretSha256 */
                    oauth2ClientSecretSha256?: (string|null);
                }

                /** Represents a BackendServiceIAP. */
                class BackendServiceIAP implements IBackendServiceIAP {

                    /**
                     * Constructs a new BackendServiceIAP.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceIAP);

                    /** BackendServiceIAP enabled. */
                    public enabled?: (boolean|null);

                    /** BackendServiceIAP oauth2ClientId. */
                    public oauth2ClientId?: (string|null);

                    /** BackendServiceIAP oauth2ClientSecret. */
                    public oauth2ClientSecret?: (string|null);

                    /** BackendServiceIAP oauth2ClientSecretSha256. */
                    public oauth2ClientSecretSha256?: (string|null);

                    /**
                     * Creates a new BackendServiceIAP instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceIAP instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceIAP): google.cloud.compute.v1beta.BackendServiceIAP;

                    /**
                     * Encodes the specified BackendServiceIAP message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceIAP.verify|verify} messages.
                     * @param message BackendServiceIAP message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceIAP, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceIAP message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceIAP.verify|verify} messages.
                     * @param message BackendServiceIAP message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceIAP, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceIAP message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceIAP
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceIAP;

                    /**
                     * Decodes a BackendServiceIAP message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceIAP
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceIAP;

                    /**
                     * Verifies a BackendServiceIAP message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceIAP message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceIAP
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceIAP;

                    /**
                     * Creates a plain object from a BackendServiceIAP message. Also converts values to other types if specified.
                     * @param message BackendServiceIAP
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceIAP, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceIAP to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceIAP
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceList. */
                interface IBackendServiceList {

                    /** BackendServiceList id */
                    id?: (string|null);

                    /** BackendServiceList items */
                    items?: (google.cloud.compute.v1beta.IBackendService[]|null);

                    /** BackendServiceList kind */
                    kind?: (string|null);

                    /** BackendServiceList nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendServiceList selfLink */
                    selfLink?: (string|null);

                    /** BackendServiceList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a BackendServiceList. */
                class BackendServiceList implements IBackendServiceList {

                    /**
                     * Constructs a new BackendServiceList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceList);

                    /** BackendServiceList id. */
                    public id?: (string|null);

                    /** BackendServiceList items. */
                    public items: google.cloud.compute.v1beta.IBackendService[];

                    /** BackendServiceList kind. */
                    public kind?: (string|null);

                    /** BackendServiceList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendServiceList selfLink. */
                    public selfLink?: (string|null);

                    /** BackendServiceList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new BackendServiceList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceList): google.cloud.compute.v1beta.BackendServiceList;

                    /**
                     * Encodes the specified BackendServiceList message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceList.verify|verify} messages.
                     * @param message BackendServiceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceList.verify|verify} messages.
                     * @param message BackendServiceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceList;

                    /**
                     * Decodes a BackendServiceList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceList;

                    /**
                     * Verifies a BackendServiceList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceList;

                    /**
                     * Creates a plain object from a BackendServiceList message. Also converts values to other types if specified.
                     * @param message BackendServiceList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceListUsable. */
                interface IBackendServiceListUsable {

                    /** BackendServiceListUsable id */
                    id?: (string|null);

                    /** BackendServiceListUsable items */
                    items?: (google.cloud.compute.v1beta.IBackendService[]|null);

                    /** BackendServiceListUsable kind */
                    kind?: (string|null);

                    /** BackendServiceListUsable nextPageToken */
                    nextPageToken?: (string|null);

                    /** BackendServiceListUsable selfLink */
                    selfLink?: (string|null);

                    /** BackendServiceListUsable warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a BackendServiceListUsable. */
                class BackendServiceListUsable implements IBackendServiceListUsable {

                    /**
                     * Constructs a new BackendServiceListUsable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceListUsable);

                    /** BackendServiceListUsable id. */
                    public id?: (string|null);

                    /** BackendServiceListUsable items. */
                    public items: google.cloud.compute.v1beta.IBackendService[];

                    /** BackendServiceListUsable kind. */
                    public kind?: (string|null);

                    /** BackendServiceListUsable nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** BackendServiceListUsable selfLink. */
                    public selfLink?: (string|null);

                    /** BackendServiceListUsable warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new BackendServiceListUsable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceListUsable instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceListUsable): google.cloud.compute.v1beta.BackendServiceListUsable;

                    /**
                     * Encodes the specified BackendServiceListUsable message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceListUsable.verify|verify} messages.
                     * @param message BackendServiceListUsable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceListUsable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceListUsable message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceListUsable.verify|verify} messages.
                     * @param message BackendServiceListUsable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceListUsable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceListUsable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceListUsable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceListUsable;

                    /**
                     * Decodes a BackendServiceListUsable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceListUsable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceListUsable;

                    /**
                     * Verifies a BackendServiceListUsable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceListUsable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceListUsable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceListUsable;

                    /**
                     * Creates a plain object from a BackendServiceListUsable message. Also converts values to other types if specified.
                     * @param message BackendServiceListUsable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceListUsable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceListUsable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceListUsable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceLocalityLoadBalancingPolicyConfig. */
                interface IBackendServiceLocalityLoadBalancingPolicyConfig {

                    /** BackendServiceLocalityLoadBalancingPolicyConfig customPolicy */
                    customPolicy?: (google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy|null);

                    /** BackendServiceLocalityLoadBalancingPolicyConfig policy */
                    policy?: (google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy|null);
                }

                /** Represents a BackendServiceLocalityLoadBalancingPolicyConfig. */
                class BackendServiceLocalityLoadBalancingPolicyConfig implements IBackendServiceLocalityLoadBalancingPolicyConfig {

                    /**
                     * Constructs a new BackendServiceLocalityLoadBalancingPolicyConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfig);

                    /** BackendServiceLocalityLoadBalancingPolicyConfig customPolicy. */
                    public customPolicy?: (google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy|null);

                    /** BackendServiceLocalityLoadBalancingPolicyConfig policy. */
                    public policy?: (google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy|null);

                    /**
                     * Creates a new BackendServiceLocalityLoadBalancingPolicyConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfig): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfig;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfig message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfig.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfig.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfig;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfig;

                    /**
                     * Verifies a BackendServiceLocalityLoadBalancingPolicyConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceLocalityLoadBalancingPolicyConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfig;

                    /**
                     * Creates a plain object from a BackendServiceLocalityLoadBalancingPolicyConfig message. Also converts values to other types if specified.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceLocalityLoadBalancingPolicyConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceLocalityLoadBalancingPolicyConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy. */
                interface IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy {

                    /** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy data */
                    data?: (string|null);

                    /** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy name */
                    name?: (string|null);
                }

                /** Represents a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy. */
                class BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy implements IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy {

                    /**
                     * Constructs a new BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy);

                    /** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy data. */
                    public data?: (string|null);

                    /** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy;

                    /**
                     * Verifies a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy;

                    /**
                     * Creates a plain object from a BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceLocalityLoadBalancingPolicyConfigPolicy. */
                interface IBackendServiceLocalityLoadBalancingPolicyConfigPolicy {

                    /** BackendServiceLocalityLoadBalancingPolicyConfigPolicy name */
                    name?: (string|null);
                }

                /** Represents a BackendServiceLocalityLoadBalancingPolicyConfigPolicy. */
                class BackendServiceLocalityLoadBalancingPolicyConfigPolicy implements IBackendServiceLocalityLoadBalancingPolicyConfigPolicy {

                    /**
                     * Constructs a new BackendServiceLocalityLoadBalancingPolicyConfigPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy);

                    /** BackendServiceLocalityLoadBalancingPolicyConfigPolicy name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BackendServiceLocalityLoadBalancingPolicyConfigPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigPolicy;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfigPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigPolicy.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceLocalityLoadBalancingPolicyConfigPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigPolicy.verify|verify} messages.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceLocalityLoadBalancingPolicyConfigPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigPolicy;

                    /**
                     * Decodes a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigPolicy;

                    /**
                     * Verifies a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigPolicy;

                    /**
                     * Creates a plain object from a BackendServiceLocalityLoadBalancingPolicyConfigPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceLocalityLoadBalancingPolicyConfigPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceLocalityLoadBalancingPolicyConfigPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceLocalityLoadBalancingPolicyConfigPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceLocalityLoadBalancingPolicyConfigPolicy {

                    /** Name enum. */
                    enum Name {
                        UNDEFINED_NAME = 0,
                        INVALID_LB_POLICY = 323318707,
                        LEAST_REQUEST = 46604921,
                        MAGLEV = 119180266,
                        ORIGINAL_DESTINATION = 166297216,
                        RANDOM = 262527171,
                        RING_HASH = 432795069,
                        ROUND_ROBIN = 153895801,
                        WEIGHTED_GCP_RENDEZVOUS = 82501640,
                        WEIGHTED_MAGLEV = 254930962,
                        WEIGHTED_ROUND_ROBIN = 5584977
                    }
                }

                /** Properties of a BackendServiceLogConfig. */
                interface IBackendServiceLogConfig {

                    /** BackendServiceLogConfig enable */
                    enable?: (boolean|null);

                    /** BackendServiceLogConfig optionalFields */
                    optionalFields?: (string[]|null);

                    /** BackendServiceLogConfig optionalMode */
                    optionalMode?: (string|null);

                    /** BackendServiceLogConfig sampleRate */
                    sampleRate?: (number|null);
                }

                /** Represents a BackendServiceLogConfig. */
                class BackendServiceLogConfig implements IBackendServiceLogConfig {

                    /**
                     * Constructs a new BackendServiceLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceLogConfig);

                    /** BackendServiceLogConfig enable. */
                    public enable?: (boolean|null);

                    /** BackendServiceLogConfig optionalFields. */
                    public optionalFields: string[];

                    /** BackendServiceLogConfig optionalMode. */
                    public optionalMode?: (string|null);

                    /** BackendServiceLogConfig sampleRate. */
                    public sampleRate?: (number|null);

                    /**
                     * Creates a new BackendServiceLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceLogConfig): google.cloud.compute.v1beta.BackendServiceLogConfig;

                    /**
                     * Encodes the specified BackendServiceLogConfig message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceLogConfig.verify|verify} messages.
                     * @param message BackendServiceLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceLogConfig.verify|verify} messages.
                     * @param message BackendServiceLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceLogConfig;

                    /**
                     * Decodes a BackendServiceLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceLogConfig;

                    /**
                     * Verifies a BackendServiceLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceLogConfig;

                    /**
                     * Creates a plain object from a BackendServiceLogConfig message. Also converts values to other types if specified.
                     * @param message BackendServiceLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceLogConfig {

                    /** OptionalMode enum. */
                    enum OptionalMode {
                        UNDEFINED_OPTIONAL_MODE = 0,
                        CUSTOM = 388595569,
                        EXCLUDE_ALL_OPTIONAL = 168636099,
                        INCLUDE_ALL_OPTIONAL = 535606965
                    }
                }

                /** Properties of a BackendServiceNetworkPassThroughLbTrafficPolicy. */
                interface IBackendServiceNetworkPassThroughLbTrafficPolicy {

                    /** BackendServiceNetworkPassThroughLbTrafficPolicy zonalAffinity */
                    zonalAffinity?: (google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity|null);
                }

                /** Represents a BackendServiceNetworkPassThroughLbTrafficPolicy. */
                class BackendServiceNetworkPassThroughLbTrafficPolicy implements IBackendServiceNetworkPassThroughLbTrafficPolicy {

                    /**
                     * Constructs a new BackendServiceNetworkPassThroughLbTrafficPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicy);

                    /** BackendServiceNetworkPassThroughLbTrafficPolicy zonalAffinity. */
                    public zonalAffinity?: (google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity|null);

                    /**
                     * Creates a new BackendServiceNetworkPassThroughLbTrafficPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicy): google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicy;

                    /**
                     * Encodes the specified BackendServiceNetworkPassThroughLbTrafficPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicy.verify|verify} messages.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceNetworkPassThroughLbTrafficPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicy.verify|verify} messages.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceNetworkPassThroughLbTrafficPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicy;

                    /**
                     * Decodes a BackendServiceNetworkPassThroughLbTrafficPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicy;

                    /**
                     * Verifies a BackendServiceNetworkPassThroughLbTrafficPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceNetworkPassThroughLbTrafficPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicy;

                    /**
                     * Creates a plain object from a BackendServiceNetworkPassThroughLbTrafficPolicy message. Also converts values to other types if specified.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceNetworkPassThroughLbTrafficPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceNetworkPassThroughLbTrafficPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity. */
                interface IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity {

                    /** BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity spillover */
                    spillover?: (string|null);

                    /** BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity spilloverRatio */
                    spilloverRatio?: (number|null);
                }

                /** Represents a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity. */
                class BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity implements IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity {

                    /**
                     * Constructs a new BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity);

                    /** BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity spillover. */
                    public spillover?: (string|null);

                    /** BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity spilloverRatio. */
                    public spilloverRatio?: (number|null);

                    /**
                     * Creates a new BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity): google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity;

                    /**
                     * Encodes the specified BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity.verify|verify} messages.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity.verify|verify} messages.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity;

                    /**
                     * Decodes a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity;

                    /**
                     * Verifies a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity;

                    /**
                     * Creates a plain object from a BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity message. Also converts values to other types if specified.
                     * @param message BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity {

                    /** Spillover enum. */
                    enum Spillover {
                        UNDEFINED_SPILLOVER = 0,
                        ZONAL_AFFINITY_DISABLED = 230207960,
                        ZONAL_AFFINITY_SPILL_CROSS_ZONE = 251048410,
                        ZONAL_AFFINITY_STAY_WITHIN_ZONE = 12177782
                    }
                }

                /** Properties of a BackendServiceOrchestrationInfo. */
                interface IBackendServiceOrchestrationInfo {

                    /** BackendServiceOrchestrationInfo resourceUri */
                    resourceUri?: (string|null);
                }

                /** Represents a BackendServiceOrchestrationInfo. */
                class BackendServiceOrchestrationInfo implements IBackendServiceOrchestrationInfo {

                    /**
                     * Constructs a new BackendServiceOrchestrationInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceOrchestrationInfo);

                    /** BackendServiceOrchestrationInfo resourceUri. */
                    public resourceUri?: (string|null);

                    /**
                     * Creates a new BackendServiceOrchestrationInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceOrchestrationInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceOrchestrationInfo): google.cloud.compute.v1beta.BackendServiceOrchestrationInfo;

                    /**
                     * Encodes the specified BackendServiceOrchestrationInfo message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceOrchestrationInfo.verify|verify} messages.
                     * @param message BackendServiceOrchestrationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceOrchestrationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceOrchestrationInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceOrchestrationInfo.verify|verify} messages.
                     * @param message BackendServiceOrchestrationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceOrchestrationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceOrchestrationInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceOrchestrationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceOrchestrationInfo;

                    /**
                     * Decodes a BackendServiceOrchestrationInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceOrchestrationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceOrchestrationInfo;

                    /**
                     * Verifies a BackendServiceOrchestrationInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceOrchestrationInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceOrchestrationInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceOrchestrationInfo;

                    /**
                     * Creates a plain object from a BackendServiceOrchestrationInfo message. Also converts values to other types if specified.
                     * @param message BackendServiceOrchestrationInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceOrchestrationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceOrchestrationInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceOrchestrationInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceParams. */
                interface IBackendServiceParams {

                    /** BackendServiceParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a BackendServiceParams. */
                class BackendServiceParams implements IBackendServiceParams {

                    /**
                     * Constructs a new BackendServiceParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceParams);

                    /** BackendServiceParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new BackendServiceParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceParams): google.cloud.compute.v1beta.BackendServiceParams;

                    /**
                     * Encodes the specified BackendServiceParams message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceParams.verify|verify} messages.
                     * @param message BackendServiceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceParams.verify|verify} messages.
                     * @param message BackendServiceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceParams;

                    /**
                     * Decodes a BackendServiceParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceParams;

                    /**
                     * Verifies a BackendServiceParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceParams;

                    /**
                     * Creates a plain object from a BackendServiceParams message. Also converts values to other types if specified.
                     * @param message BackendServiceParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceReference. */
                interface IBackendServiceReference {

                    /** BackendServiceReference backendService */
                    backendService?: (string|null);
                }

                /** Represents a BackendServiceReference. */
                class BackendServiceReference implements IBackendServiceReference {

                    /**
                     * Constructs a new BackendServiceReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceReference);

                    /** BackendServiceReference backendService. */
                    public backendService?: (string|null);

                    /**
                     * Creates a new BackendServiceReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceReference): google.cloud.compute.v1beta.BackendServiceReference;

                    /**
                     * Encodes the specified BackendServiceReference message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceReference.verify|verify} messages.
                     * @param message BackendServiceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceReference.verify|verify} messages.
                     * @param message BackendServiceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceReference;

                    /**
                     * Decodes a BackendServiceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceReference;

                    /**
                     * Verifies a BackendServiceReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceReference;

                    /**
                     * Creates a plain object from a BackendServiceReference message. Also converts values to other types if specified.
                     * @param message BackendServiceReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceTlsSettings. */
                interface IBackendServiceTlsSettings {

                    /** BackendServiceTlsSettings authenticationConfig */
                    authenticationConfig?: (string|null);

                    /** BackendServiceTlsSettings identity */
                    identity?: (string|null);

                    /** BackendServiceTlsSettings sni */
                    sni?: (string|null);

                    /** BackendServiceTlsSettings subjectAltNames */
                    subjectAltNames?: (google.cloud.compute.v1beta.IBackendServiceTlsSettingsSubjectAltName[]|null);
                }

                /** Represents a BackendServiceTlsSettings. */
                class BackendServiceTlsSettings implements IBackendServiceTlsSettings {

                    /**
                     * Constructs a new BackendServiceTlsSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceTlsSettings);

                    /** BackendServiceTlsSettings authenticationConfig. */
                    public authenticationConfig?: (string|null);

                    /** BackendServiceTlsSettings identity. */
                    public identity?: (string|null);

                    /** BackendServiceTlsSettings sni. */
                    public sni?: (string|null);

                    /** BackendServiceTlsSettings subjectAltNames. */
                    public subjectAltNames: google.cloud.compute.v1beta.IBackendServiceTlsSettingsSubjectAltName[];

                    /**
                     * Creates a new BackendServiceTlsSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceTlsSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceTlsSettings): google.cloud.compute.v1beta.BackendServiceTlsSettings;

                    /**
                     * Encodes the specified BackendServiceTlsSettings message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceTlsSettings.verify|verify} messages.
                     * @param message BackendServiceTlsSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceTlsSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceTlsSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceTlsSettings.verify|verify} messages.
                     * @param message BackendServiceTlsSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceTlsSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceTlsSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceTlsSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceTlsSettings;

                    /**
                     * Decodes a BackendServiceTlsSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceTlsSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceTlsSettings;

                    /**
                     * Verifies a BackendServiceTlsSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceTlsSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceTlsSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceTlsSettings;

                    /**
                     * Creates a plain object from a BackendServiceTlsSettings message. Also converts values to other types if specified.
                     * @param message BackendServiceTlsSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceTlsSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceTlsSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceTlsSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceTlsSettingsSubjectAltName. */
                interface IBackendServiceTlsSettingsSubjectAltName {

                    /** BackendServiceTlsSettingsSubjectAltName dnsName */
                    dnsName?: (string|null);

                    /** BackendServiceTlsSettingsSubjectAltName uniformResourceIdentifier */
                    uniformResourceIdentifier?: (string|null);
                }

                /** Represents a BackendServiceTlsSettingsSubjectAltName. */
                class BackendServiceTlsSettingsSubjectAltName implements IBackendServiceTlsSettingsSubjectAltName {

                    /**
                     * Constructs a new BackendServiceTlsSettingsSubjectAltName.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceTlsSettingsSubjectAltName);

                    /** BackendServiceTlsSettingsSubjectAltName dnsName. */
                    public dnsName?: (string|null);

                    /** BackendServiceTlsSettingsSubjectAltName uniformResourceIdentifier. */
                    public uniformResourceIdentifier?: (string|null);

                    /**
                     * Creates a new BackendServiceTlsSettingsSubjectAltName instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceTlsSettingsSubjectAltName instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceTlsSettingsSubjectAltName): google.cloud.compute.v1beta.BackendServiceTlsSettingsSubjectAltName;

                    /**
                     * Encodes the specified BackendServiceTlsSettingsSubjectAltName message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceTlsSettingsSubjectAltName.verify|verify} messages.
                     * @param message BackendServiceTlsSettingsSubjectAltName message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceTlsSettingsSubjectAltName, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceTlsSettingsSubjectAltName message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceTlsSettingsSubjectAltName.verify|verify} messages.
                     * @param message BackendServiceTlsSettingsSubjectAltName message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceTlsSettingsSubjectAltName, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceTlsSettingsSubjectAltName message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceTlsSettingsSubjectAltName
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceTlsSettingsSubjectAltName;

                    /**
                     * Decodes a BackendServiceTlsSettingsSubjectAltName message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceTlsSettingsSubjectAltName
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceTlsSettingsSubjectAltName;

                    /**
                     * Verifies a BackendServiceTlsSettingsSubjectAltName message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceTlsSettingsSubjectAltName message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceTlsSettingsSubjectAltName
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceTlsSettingsSubjectAltName;

                    /**
                     * Creates a plain object from a BackendServiceTlsSettingsSubjectAltName message. Also converts values to other types if specified.
                     * @param message BackendServiceTlsSettingsSubjectAltName
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceTlsSettingsSubjectAltName, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceTlsSettingsSubjectAltName to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceTlsSettingsSubjectAltName
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServiceUsedBy. */
                interface IBackendServiceUsedBy {

                    /** BackendServiceUsedBy reference */
                    reference?: (string|null);
                }

                /** Represents a BackendServiceUsedBy. */
                class BackendServiceUsedBy implements IBackendServiceUsedBy {

                    /**
                     * Constructs a new BackendServiceUsedBy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServiceUsedBy);

                    /** BackendServiceUsedBy reference. */
                    public reference?: (string|null);

                    /**
                     * Creates a new BackendServiceUsedBy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServiceUsedBy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServiceUsedBy): google.cloud.compute.v1beta.BackendServiceUsedBy;

                    /**
                     * Encodes the specified BackendServiceUsedBy message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceUsedBy.verify|verify} messages.
                     * @param message BackendServiceUsedBy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServiceUsedBy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServiceUsedBy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServiceUsedBy.verify|verify} messages.
                     * @param message BackendServiceUsedBy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServiceUsedBy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServiceUsedBy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServiceUsedBy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServiceUsedBy;

                    /**
                     * Decodes a BackendServiceUsedBy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServiceUsedBy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServiceUsedBy;

                    /**
                     * Verifies a BackendServiceUsedBy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServiceUsedBy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServiceUsedBy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServiceUsedBy;

                    /**
                     * Creates a plain object from a BackendServiceUsedBy message. Also converts values to other types if specified.
                     * @param message BackendServiceUsedBy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServiceUsedBy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServiceUsedBy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServiceUsedBy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServicesGetEffectiveSecurityPoliciesResponse. */
                interface IBackendServicesGetEffectiveSecurityPoliciesResponse {

                    /** BackendServicesGetEffectiveSecurityPoliciesResponse securityPolicies */
                    securityPolicies?: (google.cloud.compute.v1beta.ISecurityPolicy[]|null);
                }

                /** Represents a BackendServicesGetEffectiveSecurityPoliciesResponse. */
                class BackendServicesGetEffectiveSecurityPoliciesResponse implements IBackendServicesGetEffectiveSecurityPoliciesResponse {

                    /**
                     * Constructs a new BackendServicesGetEffectiveSecurityPoliciesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServicesGetEffectiveSecurityPoliciesResponse);

                    /** BackendServicesGetEffectiveSecurityPoliciesResponse securityPolicies. */
                    public securityPolicies: google.cloud.compute.v1beta.ISecurityPolicy[];

                    /**
                     * Creates a new BackendServicesGetEffectiveSecurityPoliciesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServicesGetEffectiveSecurityPoliciesResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServicesGetEffectiveSecurityPoliciesResponse): google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse;

                    /**
                     * Encodes the specified BackendServicesGetEffectiveSecurityPoliciesResponse message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse.verify|verify} messages.
                     * @param message BackendServicesGetEffectiveSecurityPoliciesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServicesGetEffectiveSecurityPoliciesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServicesGetEffectiveSecurityPoliciesResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse.verify|verify} messages.
                     * @param message BackendServicesGetEffectiveSecurityPoliciesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServicesGetEffectiveSecurityPoliciesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServicesGetEffectiveSecurityPoliciesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServicesGetEffectiveSecurityPoliciesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse;

                    /**
                     * Decodes a BackendServicesGetEffectiveSecurityPoliciesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServicesGetEffectiveSecurityPoliciesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse;

                    /**
                     * Verifies a BackendServicesGetEffectiveSecurityPoliciesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServicesGetEffectiveSecurityPoliciesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServicesGetEffectiveSecurityPoliciesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse;

                    /**
                     * Creates a plain object from a BackendServicesGetEffectiveSecurityPoliciesResponse message. Also converts values to other types if specified.
                     * @param message BackendServicesGetEffectiveSecurityPoliciesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServicesGetEffectiveSecurityPoliciesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServicesGetEffectiveSecurityPoliciesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BackendServicesScopedList. */
                interface IBackendServicesScopedList {

                    /** BackendServicesScopedList backendServices */
                    backendServices?: (google.cloud.compute.v1beta.IBackendService[]|null);

                    /** BackendServicesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a BackendServicesScopedList. */
                class BackendServicesScopedList implements IBackendServicesScopedList {

                    /**
                     * Constructs a new BackendServicesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBackendServicesScopedList);

                    /** BackendServicesScopedList backendServices. */
                    public backendServices: google.cloud.compute.v1beta.IBackendService[];

                    /** BackendServicesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new BackendServicesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackendServicesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBackendServicesScopedList): google.cloud.compute.v1beta.BackendServicesScopedList;

                    /**
                     * Encodes the specified BackendServicesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.BackendServicesScopedList.verify|verify} messages.
                     * @param message BackendServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBackendServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackendServicesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BackendServicesScopedList.verify|verify} messages.
                     * @param message BackendServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBackendServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackendServicesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackendServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BackendServicesScopedList;

                    /**
                     * Decodes a BackendServicesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackendServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BackendServicesScopedList;

                    /**
                     * Verifies a BackendServicesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackendServicesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackendServicesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BackendServicesScopedList;

                    /**
                     * Creates a plain object from a BackendServicesScopedList message. Also converts values to other types if specified.
                     * @param message BackendServicesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BackendServicesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackendServicesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackendServicesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BfdPacket. */
                interface IBfdPacket {

                    /** BfdPacket authenticationPresent */
                    authenticationPresent?: (boolean|null);

                    /** BfdPacket controlPlaneIndependent */
                    controlPlaneIndependent?: (boolean|null);

                    /** BfdPacket demand */
                    demand?: (boolean|null);

                    /** BfdPacket diagnostic */
                    diagnostic?: (string|null);

                    /** BfdPacket final */
                    final?: (boolean|null);

                    /** BfdPacket length */
                    length?: (number|null);

                    /** BfdPacket minEchoRxIntervalMs */
                    minEchoRxIntervalMs?: (number|null);

                    /** BfdPacket minRxIntervalMs */
                    minRxIntervalMs?: (number|null);

                    /** BfdPacket minTxIntervalMs */
                    minTxIntervalMs?: (number|null);

                    /** BfdPacket multiplier */
                    multiplier?: (number|null);

                    /** BfdPacket multipoint */
                    multipoint?: (boolean|null);

                    /** BfdPacket myDiscriminator */
                    myDiscriminator?: (number|null);

                    /** BfdPacket poll */
                    poll?: (boolean|null);

                    /** BfdPacket state */
                    state?: (string|null);

                    /** BfdPacket version */
                    version?: (number|null);

                    /** BfdPacket yourDiscriminator */
                    yourDiscriminator?: (number|null);
                }

                /** Represents a BfdPacket. */
                class BfdPacket implements IBfdPacket {

                    /**
                     * Constructs a new BfdPacket.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBfdPacket);

                    /** BfdPacket authenticationPresent. */
                    public authenticationPresent?: (boolean|null);

                    /** BfdPacket controlPlaneIndependent. */
                    public controlPlaneIndependent?: (boolean|null);

                    /** BfdPacket demand. */
                    public demand?: (boolean|null);

                    /** BfdPacket diagnostic. */
                    public diagnostic?: (string|null);

                    /** BfdPacket final. */
                    public final?: (boolean|null);

                    /** BfdPacket length. */
                    public length?: (number|null);

                    /** BfdPacket minEchoRxIntervalMs. */
                    public minEchoRxIntervalMs?: (number|null);

                    /** BfdPacket minRxIntervalMs. */
                    public minRxIntervalMs?: (number|null);

                    /** BfdPacket minTxIntervalMs. */
                    public minTxIntervalMs?: (number|null);

                    /** BfdPacket multiplier. */
                    public multiplier?: (number|null);

                    /** BfdPacket multipoint. */
                    public multipoint?: (boolean|null);

                    /** BfdPacket myDiscriminator. */
                    public myDiscriminator?: (number|null);

                    /** BfdPacket poll. */
                    public poll?: (boolean|null);

                    /** BfdPacket state. */
                    public state?: (string|null);

                    /** BfdPacket version. */
                    public version?: (number|null);

                    /** BfdPacket yourDiscriminator. */
                    public yourDiscriminator?: (number|null);

                    /**
                     * Creates a new BfdPacket instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BfdPacket instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBfdPacket): google.cloud.compute.v1beta.BfdPacket;

                    /**
                     * Encodes the specified BfdPacket message. Does not implicitly {@link google.cloud.compute.v1beta.BfdPacket.verify|verify} messages.
                     * @param message BfdPacket message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBfdPacket, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BfdPacket message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BfdPacket.verify|verify} messages.
                     * @param message BfdPacket message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBfdPacket, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BfdPacket message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BfdPacket
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BfdPacket;

                    /**
                     * Decodes a BfdPacket message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BfdPacket
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BfdPacket;

                    /**
                     * Verifies a BfdPacket message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BfdPacket message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BfdPacket
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BfdPacket;

                    /**
                     * Creates a plain object from a BfdPacket message. Also converts values to other types if specified.
                     * @param message BfdPacket
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BfdPacket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BfdPacket to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BfdPacket
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BfdPacket {

                    /** Diagnostic enum. */
                    enum Diagnostic {
                        UNDEFINED_DIAGNOSTIC = 0,
                        ADMINISTRATIVELY_DOWN = 121685798,
                        CONCATENATED_PATH_DOWN = 26186892,
                        CONTROL_DETECTION_TIME_EXPIRED = 135478383,
                        DIAGNOSTIC_UNSPECIFIED = 58720895,
                        ECHO_FUNCTION_FAILED = 220687466,
                        FORWARDING_PLANE_RESET = 19715882,
                        NEIGHBOR_SIGNALED_SESSION_DOWN = 374226742,
                        NO_DIAGNOSTIC = 222503141,
                        PATH_DOWN = 290605180,
                        REVERSE_CONCATENATED_PATH_DOWN = 479337129
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ADMIN_DOWN = 128544690,
                        DOWN = 2104482,
                        INIT = 2252048,
                        STATE_UNSPECIFIED = 470755401,
                        UP = 2715
                    }
                }

                /** Properties of a BfdStatus. */
                interface IBfdStatus {

                    /** BfdStatus bfdSessionInitializationMode */
                    bfdSessionInitializationMode?: (string|null);

                    /** BfdStatus configUpdateTimestampMicros */
                    configUpdateTimestampMicros?: (number|Long|string|null);

                    /** BfdStatus controlPacketCounts */
                    controlPacketCounts?: (google.cloud.compute.v1beta.IBfdStatusPacketCounts|null);

                    /** BfdStatus controlPacketIntervals */
                    controlPacketIntervals?: (google.cloud.compute.v1beta.IPacketIntervals[]|null);

                    /** BfdStatus localDiagnostic */
                    localDiagnostic?: (string|null);

                    /** BfdStatus localState */
                    localState?: (string|null);

                    /** BfdStatus negotiatedLocalControlTxIntervalMs */
                    negotiatedLocalControlTxIntervalMs?: (number|null);

                    /** BfdStatus rxPacket */
                    rxPacket?: (google.cloud.compute.v1beta.IBfdPacket|null);

                    /** BfdStatus txPacket */
                    txPacket?: (google.cloud.compute.v1beta.IBfdPacket|null);

                    /** BfdStatus uptimeMs */
                    uptimeMs?: (number|Long|string|null);
                }

                /** Represents a BfdStatus. */
                class BfdStatus implements IBfdStatus {

                    /**
                     * Constructs a new BfdStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBfdStatus);

                    /** BfdStatus bfdSessionInitializationMode. */
                    public bfdSessionInitializationMode?: (string|null);

                    /** BfdStatus configUpdateTimestampMicros. */
                    public configUpdateTimestampMicros?: (number|Long|string|null);

                    /** BfdStatus controlPacketCounts. */
                    public controlPacketCounts?: (google.cloud.compute.v1beta.IBfdStatusPacketCounts|null);

                    /** BfdStatus controlPacketIntervals. */
                    public controlPacketIntervals: google.cloud.compute.v1beta.IPacketIntervals[];

                    /** BfdStatus localDiagnostic. */
                    public localDiagnostic?: (string|null);

                    /** BfdStatus localState. */
                    public localState?: (string|null);

                    /** BfdStatus negotiatedLocalControlTxIntervalMs. */
                    public negotiatedLocalControlTxIntervalMs?: (number|null);

                    /** BfdStatus rxPacket. */
                    public rxPacket?: (google.cloud.compute.v1beta.IBfdPacket|null);

                    /** BfdStatus txPacket. */
                    public txPacket?: (google.cloud.compute.v1beta.IBfdPacket|null);

                    /** BfdStatus uptimeMs. */
                    public uptimeMs?: (number|Long|string|null);

                    /**
                     * Creates a new BfdStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BfdStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBfdStatus): google.cloud.compute.v1beta.BfdStatus;

                    /**
                     * Encodes the specified BfdStatus message. Does not implicitly {@link google.cloud.compute.v1beta.BfdStatus.verify|verify} messages.
                     * @param message BfdStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBfdStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BfdStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BfdStatus.verify|verify} messages.
                     * @param message BfdStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBfdStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BfdStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BfdStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BfdStatus;

                    /**
                     * Decodes a BfdStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BfdStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BfdStatus;

                    /**
                     * Verifies a BfdStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BfdStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BfdStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BfdStatus;

                    /**
                     * Creates a plain object from a BfdStatus message. Also converts values to other types if specified.
                     * @param message BfdStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BfdStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BfdStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BfdStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BfdStatus {

                    /** BfdSessionInitializationMode enum. */
                    enum BfdSessionInitializationMode {
                        UNDEFINED_BFD_SESSION_INITIALIZATION_MODE = 0,
                        ACTIVE = 314733318,
                        DISABLED = 516696700,
                        PASSIVE = 462813959
                    }

                    /** LocalDiagnostic enum. */
                    enum LocalDiagnostic {
                        UNDEFINED_LOCAL_DIAGNOSTIC = 0,
                        ADMINISTRATIVELY_DOWN = 121685798,
                        CONCATENATED_PATH_DOWN = 26186892,
                        CONTROL_DETECTION_TIME_EXPIRED = 135478383,
                        DIAGNOSTIC_UNSPECIFIED = 58720895,
                        ECHO_FUNCTION_FAILED = 220687466,
                        FORWARDING_PLANE_RESET = 19715882,
                        NEIGHBOR_SIGNALED_SESSION_DOWN = 374226742,
                        NO_DIAGNOSTIC = 222503141,
                        PATH_DOWN = 290605180,
                        REVERSE_CONCATENATED_PATH_DOWN = 479337129
                    }

                    /** LocalState enum. */
                    enum LocalState {
                        UNDEFINED_LOCAL_STATE = 0,
                        ADMIN_DOWN = 128544690,
                        DOWN = 2104482,
                        INIT = 2252048,
                        STATE_UNSPECIFIED = 470755401,
                        UP = 2715
                    }
                }

                /** Properties of a BfdStatusPacketCounts. */
                interface IBfdStatusPacketCounts {

                    /** BfdStatusPacketCounts numRx */
                    numRx?: (number|null);

                    /** BfdStatusPacketCounts numRxRejected */
                    numRxRejected?: (number|null);

                    /** BfdStatusPacketCounts numRxSuccessful */
                    numRxSuccessful?: (number|null);

                    /** BfdStatusPacketCounts numTx */
                    numTx?: (number|null);
                }

                /** Represents a BfdStatusPacketCounts. */
                class BfdStatusPacketCounts implements IBfdStatusPacketCounts {

                    /**
                     * Constructs a new BfdStatusPacketCounts.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBfdStatusPacketCounts);

                    /** BfdStatusPacketCounts numRx. */
                    public numRx?: (number|null);

                    /** BfdStatusPacketCounts numRxRejected. */
                    public numRxRejected?: (number|null);

                    /** BfdStatusPacketCounts numRxSuccessful. */
                    public numRxSuccessful?: (number|null);

                    /** BfdStatusPacketCounts numTx. */
                    public numTx?: (number|null);

                    /**
                     * Creates a new BfdStatusPacketCounts instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BfdStatusPacketCounts instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBfdStatusPacketCounts): google.cloud.compute.v1beta.BfdStatusPacketCounts;

                    /**
                     * Encodes the specified BfdStatusPacketCounts message. Does not implicitly {@link google.cloud.compute.v1beta.BfdStatusPacketCounts.verify|verify} messages.
                     * @param message BfdStatusPacketCounts message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBfdStatusPacketCounts, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BfdStatusPacketCounts message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BfdStatusPacketCounts.verify|verify} messages.
                     * @param message BfdStatusPacketCounts message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBfdStatusPacketCounts, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BfdStatusPacketCounts message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BfdStatusPacketCounts
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BfdStatusPacketCounts;

                    /**
                     * Decodes a BfdStatusPacketCounts message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BfdStatusPacketCounts
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BfdStatusPacketCounts;

                    /**
                     * Verifies a BfdStatusPacketCounts message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BfdStatusPacketCounts message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BfdStatusPacketCounts
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BfdStatusPacketCounts;

                    /**
                     * Creates a plain object from a BfdStatusPacketCounts message. Also converts values to other types if specified.
                     * @param message BfdStatusPacketCounts
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BfdStatusPacketCounts, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BfdStatusPacketCounts to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BfdStatusPacketCounts
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BgpRoute. */
                interface IBgpRoute {

                    /** BgpRoute asPaths */
                    asPaths?: (google.cloud.compute.v1beta.IBgpRouteAsPath[]|null);

                    /** BgpRoute communities */
                    communities?: (string[]|null);

                    /** BgpRoute destination */
                    destination?: (google.cloud.compute.v1beta.IBgpRouteNetworkLayerReachabilityInformation|null);

                    /** BgpRoute med */
                    med?: (number|null);

                    /** BgpRoute origin */
                    origin?: (string|null);
                }

                /** Represents a BgpRoute. */
                class BgpRoute implements IBgpRoute {

                    /**
                     * Constructs a new BgpRoute.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBgpRoute);

                    /** BgpRoute asPaths. */
                    public asPaths: google.cloud.compute.v1beta.IBgpRouteAsPath[];

                    /** BgpRoute communities. */
                    public communities: string[];

                    /** BgpRoute destination. */
                    public destination?: (google.cloud.compute.v1beta.IBgpRouteNetworkLayerReachabilityInformation|null);

                    /** BgpRoute med. */
                    public med?: (number|null);

                    /** BgpRoute origin. */
                    public origin?: (string|null);

                    /**
                     * Creates a new BgpRoute instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BgpRoute instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBgpRoute): google.cloud.compute.v1beta.BgpRoute;

                    /**
                     * Encodes the specified BgpRoute message. Does not implicitly {@link google.cloud.compute.v1beta.BgpRoute.verify|verify} messages.
                     * @param message BgpRoute message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBgpRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BgpRoute message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BgpRoute.verify|verify} messages.
                     * @param message BgpRoute message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBgpRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BgpRoute message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BgpRoute
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BgpRoute;

                    /**
                     * Decodes a BgpRoute message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BgpRoute
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BgpRoute;

                    /**
                     * Verifies a BgpRoute message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BgpRoute message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BgpRoute
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BgpRoute;

                    /**
                     * Creates a plain object from a BgpRoute message. Also converts values to other types if specified.
                     * @param message BgpRoute
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BgpRoute, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BgpRoute to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BgpRoute
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BgpRoute {

                    /** Origin enum. */
                    enum Origin {
                        UNDEFINED_ORIGIN = 0,
                        BGP_ORIGIN_EGP = 378906473,
                        BGP_ORIGIN_IGP = 378910317,
                        BGP_ORIGIN_INCOMPLETE = 452839811
                    }
                }

                /** Properties of a BgpRouteAsPath. */
                interface IBgpRouteAsPath {

                    /** BgpRouteAsPath asns */
                    asns?: (number[]|null);

                    /** BgpRouteAsPath asns32 */
                    asns32?: (number[]|null);

                    /** BgpRouteAsPath type */
                    type?: (string|null);
                }

                /** Represents a BgpRouteAsPath. */
                class BgpRouteAsPath implements IBgpRouteAsPath {

                    /**
                     * Constructs a new BgpRouteAsPath.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBgpRouteAsPath);

                    /** BgpRouteAsPath asns. */
                    public asns: number[];

                    /** BgpRouteAsPath asns32. */
                    public asns32: number[];

                    /** BgpRouteAsPath type. */
                    public type?: (string|null);

                    /**
                     * Creates a new BgpRouteAsPath instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BgpRouteAsPath instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBgpRouteAsPath): google.cloud.compute.v1beta.BgpRouteAsPath;

                    /**
                     * Encodes the specified BgpRouteAsPath message. Does not implicitly {@link google.cloud.compute.v1beta.BgpRouteAsPath.verify|verify} messages.
                     * @param message BgpRouteAsPath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBgpRouteAsPath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BgpRouteAsPath message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BgpRouteAsPath.verify|verify} messages.
                     * @param message BgpRouteAsPath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBgpRouteAsPath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BgpRouteAsPath message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BgpRouteAsPath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BgpRouteAsPath;

                    /**
                     * Decodes a BgpRouteAsPath message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BgpRouteAsPath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BgpRouteAsPath;

                    /**
                     * Verifies a BgpRouteAsPath message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BgpRouteAsPath message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BgpRouteAsPath
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BgpRouteAsPath;

                    /**
                     * Creates a plain object from a BgpRouteAsPath message. Also converts values to other types if specified.
                     * @param message BgpRouteAsPath
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BgpRouteAsPath, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BgpRouteAsPath to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BgpRouteAsPath
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BgpRouteAsPath {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        AS_PATH_TYPE_SEQUENCE = 362887609,
                        AS_PATH_TYPE_SET = 302584650
                    }
                }

                /** Properties of a BgpRouteNetworkLayerReachabilityInformation. */
                interface IBgpRouteNetworkLayerReachabilityInformation {

                    /** BgpRouteNetworkLayerReachabilityInformation pathId */
                    pathId?: (number|null);

                    /** BgpRouteNetworkLayerReachabilityInformation prefix */
                    prefix?: (string|null);
                }

                /** Represents a BgpRouteNetworkLayerReachabilityInformation. */
                class BgpRouteNetworkLayerReachabilityInformation implements IBgpRouteNetworkLayerReachabilityInformation {

                    /**
                     * Constructs a new BgpRouteNetworkLayerReachabilityInformation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBgpRouteNetworkLayerReachabilityInformation);

                    /** BgpRouteNetworkLayerReachabilityInformation pathId. */
                    public pathId?: (number|null);

                    /** BgpRouteNetworkLayerReachabilityInformation prefix. */
                    public prefix?: (string|null);

                    /**
                     * Creates a new BgpRouteNetworkLayerReachabilityInformation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BgpRouteNetworkLayerReachabilityInformation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBgpRouteNetworkLayerReachabilityInformation): google.cloud.compute.v1beta.BgpRouteNetworkLayerReachabilityInformation;

                    /**
                     * Encodes the specified BgpRouteNetworkLayerReachabilityInformation message. Does not implicitly {@link google.cloud.compute.v1beta.BgpRouteNetworkLayerReachabilityInformation.verify|verify} messages.
                     * @param message BgpRouteNetworkLayerReachabilityInformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBgpRouteNetworkLayerReachabilityInformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BgpRouteNetworkLayerReachabilityInformation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BgpRouteNetworkLayerReachabilityInformation.verify|verify} messages.
                     * @param message BgpRouteNetworkLayerReachabilityInformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBgpRouteNetworkLayerReachabilityInformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BgpRouteNetworkLayerReachabilityInformation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BgpRouteNetworkLayerReachabilityInformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BgpRouteNetworkLayerReachabilityInformation;

                    /**
                     * Decodes a BgpRouteNetworkLayerReachabilityInformation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BgpRouteNetworkLayerReachabilityInformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BgpRouteNetworkLayerReachabilityInformation;

                    /**
                     * Verifies a BgpRouteNetworkLayerReachabilityInformation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BgpRouteNetworkLayerReachabilityInformation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BgpRouteNetworkLayerReachabilityInformation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BgpRouteNetworkLayerReachabilityInformation;

                    /**
                     * Creates a plain object from a BgpRouteNetworkLayerReachabilityInformation message. Also converts values to other types if specified.
                     * @param message BgpRouteNetworkLayerReachabilityInformation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BgpRouteNetworkLayerReachabilityInformation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BgpRouteNetworkLayerReachabilityInformation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BgpRouteNetworkLayerReachabilityInformation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Binding. */
                interface IBinding {

                    /** Binding bindingId */
                    bindingId?: (string|null);

                    /** Binding condition */
                    condition?: (google.cloud.compute.v1beta.IExpr|null);

                    /** Binding members */
                    members?: (string[]|null);

                    /** Binding role */
                    role?: (string|null);
                }

                /** Represents a Binding. */
                class Binding implements IBinding {

                    /**
                     * Constructs a new Binding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBinding);

                    /** Binding bindingId. */
                    public bindingId?: (string|null);

                    /** Binding condition. */
                    public condition?: (google.cloud.compute.v1beta.IExpr|null);

                    /** Binding members. */
                    public members: string[];

                    /** Binding role. */
                    public role?: (string|null);

                    /**
                     * Creates a new Binding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Binding instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBinding): google.cloud.compute.v1beta.Binding;

                    /**
                     * Encodes the specified Binding message. Does not implicitly {@link google.cloud.compute.v1beta.Binding.verify|verify} messages.
                     * @param message Binding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Binding message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Binding.verify|verify} messages.
                     * @param message Binding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Binding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Binding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Binding;

                    /**
                     * Decodes a Binding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Binding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Binding;

                    /**
                     * Verifies a Binding message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Binding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Binding
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Binding;

                    /**
                     * Creates a plain object from a Binding message. Also converts values to other types if specified.
                     * @param message Binding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Binding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Binding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Binding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertDiskRequest. */
                interface IBulkInsertDiskRequest {

                    /** BulkInsertDiskRequest bulkInsertDiskResourceResource */
                    bulkInsertDiskResourceResource?: (google.cloud.compute.v1beta.IBulkInsertDiskResource|null);

                    /** BulkInsertDiskRequest project */
                    project?: (string|null);

                    /** BulkInsertDiskRequest requestId */
                    requestId?: (string|null);

                    /** BulkInsertDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a BulkInsertDiskRequest. */
                class BulkInsertDiskRequest implements IBulkInsertDiskRequest {

                    /**
                     * Constructs a new BulkInsertDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkInsertDiskRequest);

                    /** BulkInsertDiskRequest bulkInsertDiskResourceResource. */
                    public bulkInsertDiskResourceResource?: (google.cloud.compute.v1beta.IBulkInsertDiskResource|null);

                    /** BulkInsertDiskRequest project. */
                    public project: string;

                    /** BulkInsertDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** BulkInsertDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new BulkInsertDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkInsertDiskRequest): google.cloud.compute.v1beta.BulkInsertDiskRequest;

                    /**
                     * Encodes the specified BulkInsertDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertDiskRequest.verify|verify} messages.
                     * @param message BulkInsertDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkInsertDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertDiskRequest.verify|verify} messages.
                     * @param message BulkInsertDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkInsertDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkInsertDiskRequest;

                    /**
                     * Decodes a BulkInsertDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkInsertDiskRequest;

                    /**
                     * Verifies a BulkInsertDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkInsertDiskRequest;

                    /**
                     * Creates a plain object from a BulkInsertDiskRequest message. Also converts values to other types if specified.
                     * @param message BulkInsertDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkInsertDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertDiskResource. */
                interface IBulkInsertDiskResource {

                    /** BulkInsertDiskResource instantSnapshotGroupParameters */
                    instantSnapshotGroupParameters?: (google.cloud.compute.v1beta.IInstantSnapshotGroupParameters|null);

                    /** BulkInsertDiskResource snapshotGroupParameters */
                    snapshotGroupParameters?: (google.cloud.compute.v1beta.ISnapshotGroupParameters|null);

                    /** BulkInsertDiskResource sourceConsistencyGroupPolicy */
                    sourceConsistencyGroupPolicy?: (string|null);
                }

                /** Represents a BulkInsertDiskResource. */
                class BulkInsertDiskResource implements IBulkInsertDiskResource {

                    /**
                     * Constructs a new BulkInsertDiskResource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkInsertDiskResource);

                    /** BulkInsertDiskResource instantSnapshotGroupParameters. */
                    public instantSnapshotGroupParameters?: (google.cloud.compute.v1beta.IInstantSnapshotGroupParameters|null);

                    /** BulkInsertDiskResource snapshotGroupParameters. */
                    public snapshotGroupParameters?: (google.cloud.compute.v1beta.ISnapshotGroupParameters|null);

                    /** BulkInsertDiskResource sourceConsistencyGroupPolicy. */
                    public sourceConsistencyGroupPolicy?: (string|null);

                    /**
                     * Creates a new BulkInsertDiskResource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertDiskResource instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkInsertDiskResource): google.cloud.compute.v1beta.BulkInsertDiskResource;

                    /**
                     * Encodes the specified BulkInsertDiskResource message. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertDiskResource.verify|verify} messages.
                     * @param message BulkInsertDiskResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkInsertDiskResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertDiskResource message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertDiskResource.verify|verify} messages.
                     * @param message BulkInsertDiskResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkInsertDiskResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertDiskResource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertDiskResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkInsertDiskResource;

                    /**
                     * Decodes a BulkInsertDiskResource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertDiskResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkInsertDiskResource;

                    /**
                     * Verifies a BulkInsertDiskResource message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertDiskResource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertDiskResource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkInsertDiskResource;

                    /**
                     * Creates a plain object from a BulkInsertDiskResource message. Also converts values to other types if specified.
                     * @param message BulkInsertDiskResource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkInsertDiskResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertDiskResource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertDiskResource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertInstanceRequest. */
                interface IBulkInsertInstanceRequest {

                    /** BulkInsertInstanceRequest bulkInsertInstanceResourceResource */
                    bulkInsertInstanceResourceResource?: (google.cloud.compute.v1beta.IBulkInsertInstanceResource|null);

                    /** BulkInsertInstanceRequest project */
                    project?: (string|null);

                    /** BulkInsertInstanceRequest requestId */
                    requestId?: (string|null);

                    /** BulkInsertInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a BulkInsertInstanceRequest. */
                class BulkInsertInstanceRequest implements IBulkInsertInstanceRequest {

                    /**
                     * Constructs a new BulkInsertInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkInsertInstanceRequest);

                    /** BulkInsertInstanceRequest bulkInsertInstanceResourceResource. */
                    public bulkInsertInstanceResourceResource?: (google.cloud.compute.v1beta.IBulkInsertInstanceResource|null);

                    /** BulkInsertInstanceRequest project. */
                    public project: string;

                    /** BulkInsertInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** BulkInsertInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new BulkInsertInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkInsertInstanceRequest): google.cloud.compute.v1beta.BulkInsertInstanceRequest;

                    /**
                     * Encodes the specified BulkInsertInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertInstanceRequest.verify|verify} messages.
                     * @param message BulkInsertInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkInsertInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertInstanceRequest.verify|verify} messages.
                     * @param message BulkInsertInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkInsertInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkInsertInstanceRequest;

                    /**
                     * Decodes a BulkInsertInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkInsertInstanceRequest;

                    /**
                     * Verifies a BulkInsertInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkInsertInstanceRequest;

                    /**
                     * Creates a plain object from a BulkInsertInstanceRequest message. Also converts values to other types if specified.
                     * @param message BulkInsertInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkInsertInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertInstanceResource. */
                interface IBulkInsertInstanceResource {

                    /** BulkInsertInstanceResource count */
                    count?: (number|Long|string|null);

                    /** BulkInsertInstanceResource instanceFlexibilityPolicy */
                    instanceFlexibilityPolicy?: (google.cloud.compute.v1beta.IInstanceFlexibilityPolicy|null);

                    /** BulkInsertInstanceResource instanceProperties */
                    instanceProperties?: (google.cloud.compute.v1beta.IInstanceProperties|null);

                    /** BulkInsertInstanceResource locationPolicy */
                    locationPolicy?: (google.cloud.compute.v1beta.ILocationPolicy|null);

                    /** BulkInsertInstanceResource minCount */
                    minCount?: (number|Long|string|null);

                    /** BulkInsertInstanceResource namePattern */
                    namePattern?: (string|null);

                    /** BulkInsertInstanceResource perInstanceProperties */
                    perInstanceProperties?: ({ [k: string]: google.cloud.compute.v1beta.IBulkInsertInstanceResourcePerInstanceProperties }|null);

                    /** BulkInsertInstanceResource sourceInstanceTemplate */
                    sourceInstanceTemplate?: (string|null);
                }

                /** Represents a BulkInsertInstanceResource. */
                class BulkInsertInstanceResource implements IBulkInsertInstanceResource {

                    /**
                     * Constructs a new BulkInsertInstanceResource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkInsertInstanceResource);

                    /** BulkInsertInstanceResource count. */
                    public count?: (number|Long|string|null);

                    /** BulkInsertInstanceResource instanceFlexibilityPolicy. */
                    public instanceFlexibilityPolicy?: (google.cloud.compute.v1beta.IInstanceFlexibilityPolicy|null);

                    /** BulkInsertInstanceResource instanceProperties. */
                    public instanceProperties?: (google.cloud.compute.v1beta.IInstanceProperties|null);

                    /** BulkInsertInstanceResource locationPolicy. */
                    public locationPolicy?: (google.cloud.compute.v1beta.ILocationPolicy|null);

                    /** BulkInsertInstanceResource minCount. */
                    public minCount?: (number|Long|string|null);

                    /** BulkInsertInstanceResource namePattern. */
                    public namePattern?: (string|null);

                    /** BulkInsertInstanceResource perInstanceProperties. */
                    public perInstanceProperties: { [k: string]: google.cloud.compute.v1beta.IBulkInsertInstanceResourcePerInstanceProperties };

                    /** BulkInsertInstanceResource sourceInstanceTemplate. */
                    public sourceInstanceTemplate?: (string|null);

                    /**
                     * Creates a new BulkInsertInstanceResource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertInstanceResource instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkInsertInstanceResource): google.cloud.compute.v1beta.BulkInsertInstanceResource;

                    /**
                     * Encodes the specified BulkInsertInstanceResource message. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertInstanceResource.verify|verify} messages.
                     * @param message BulkInsertInstanceResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkInsertInstanceResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertInstanceResource message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertInstanceResource.verify|verify} messages.
                     * @param message BulkInsertInstanceResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkInsertInstanceResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertInstanceResource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertInstanceResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkInsertInstanceResource;

                    /**
                     * Decodes a BulkInsertInstanceResource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertInstanceResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkInsertInstanceResource;

                    /**
                     * Verifies a BulkInsertInstanceResource message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertInstanceResource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertInstanceResource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkInsertInstanceResource;

                    /**
                     * Creates a plain object from a BulkInsertInstanceResource message. Also converts values to other types if specified.
                     * @param message BulkInsertInstanceResource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkInsertInstanceResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertInstanceResource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertInstanceResource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertInstanceResourcePerInstanceProperties. */
                interface IBulkInsertInstanceResourcePerInstanceProperties {

                    /** BulkInsertInstanceResourcePerInstanceProperties hostname */
                    hostname?: (string|null);

                    /** BulkInsertInstanceResourcePerInstanceProperties name */
                    name?: (string|null);
                }

                /** Represents a BulkInsertInstanceResourcePerInstanceProperties. */
                class BulkInsertInstanceResourcePerInstanceProperties implements IBulkInsertInstanceResourcePerInstanceProperties {

                    /**
                     * Constructs a new BulkInsertInstanceResourcePerInstanceProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkInsertInstanceResourcePerInstanceProperties);

                    /** BulkInsertInstanceResourcePerInstanceProperties hostname. */
                    public hostname?: (string|null);

                    /** BulkInsertInstanceResourcePerInstanceProperties name. */
                    public name?: (string|null);

                    /**
                     * Creates a new BulkInsertInstanceResourcePerInstanceProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertInstanceResourcePerInstanceProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkInsertInstanceResourcePerInstanceProperties): google.cloud.compute.v1beta.BulkInsertInstanceResourcePerInstanceProperties;

                    /**
                     * Encodes the specified BulkInsertInstanceResourcePerInstanceProperties message. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertInstanceResourcePerInstanceProperties.verify|verify} messages.
                     * @param message BulkInsertInstanceResourcePerInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkInsertInstanceResourcePerInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertInstanceResourcePerInstanceProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertInstanceResourcePerInstanceProperties.verify|verify} messages.
                     * @param message BulkInsertInstanceResourcePerInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkInsertInstanceResourcePerInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertInstanceResourcePerInstanceProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertInstanceResourcePerInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkInsertInstanceResourcePerInstanceProperties;

                    /**
                     * Decodes a BulkInsertInstanceResourcePerInstanceProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertInstanceResourcePerInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkInsertInstanceResourcePerInstanceProperties;

                    /**
                     * Verifies a BulkInsertInstanceResourcePerInstanceProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertInstanceResourcePerInstanceProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertInstanceResourcePerInstanceProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkInsertInstanceResourcePerInstanceProperties;

                    /**
                     * Creates a plain object from a BulkInsertInstanceResourcePerInstanceProperties message. Also converts values to other types if specified.
                     * @param message BulkInsertInstanceResourcePerInstanceProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkInsertInstanceResourcePerInstanceProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertInstanceResourcePerInstanceProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertInstanceResourcePerInstanceProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertOperationStatus. */
                interface IBulkInsertOperationStatus {

                    /** BulkInsertOperationStatus createdVmCount */
                    createdVmCount?: (number|null);

                    /** BulkInsertOperationStatus deletedVmCount */
                    deletedVmCount?: (number|null);

                    /** BulkInsertOperationStatus failedToCreateVmCount */
                    failedToCreateVmCount?: (number|null);

                    /** BulkInsertOperationStatus status */
                    status?: (string|null);

                    /** BulkInsertOperationStatus targetVmCount */
                    targetVmCount?: (number|null);
                }

                /** Represents a BulkInsertOperationStatus. */
                class BulkInsertOperationStatus implements IBulkInsertOperationStatus {

                    /**
                     * Constructs a new BulkInsertOperationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkInsertOperationStatus);

                    /** BulkInsertOperationStatus createdVmCount. */
                    public createdVmCount?: (number|null);

                    /** BulkInsertOperationStatus deletedVmCount. */
                    public deletedVmCount?: (number|null);

                    /** BulkInsertOperationStatus failedToCreateVmCount. */
                    public failedToCreateVmCount?: (number|null);

                    /** BulkInsertOperationStatus status. */
                    public status?: (string|null);

                    /** BulkInsertOperationStatus targetVmCount. */
                    public targetVmCount?: (number|null);

                    /**
                     * Creates a new BulkInsertOperationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertOperationStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkInsertOperationStatus): google.cloud.compute.v1beta.BulkInsertOperationStatus;

                    /**
                     * Encodes the specified BulkInsertOperationStatus message. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertOperationStatus.verify|verify} messages.
                     * @param message BulkInsertOperationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkInsertOperationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertOperationStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertOperationStatus.verify|verify} messages.
                     * @param message BulkInsertOperationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkInsertOperationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertOperationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertOperationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkInsertOperationStatus;

                    /**
                     * Decodes a BulkInsertOperationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertOperationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkInsertOperationStatus;

                    /**
                     * Verifies a BulkInsertOperationStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertOperationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertOperationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkInsertOperationStatus;

                    /**
                     * Creates a plain object from a BulkInsertOperationStatus message. Also converts values to other types if specified.
                     * @param message BulkInsertOperationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkInsertOperationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertOperationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertOperationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BulkInsertOperationStatus {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DONE = 2104194,
                        ROLLING_BACK = 259411649,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a BulkInsertRegionDiskRequest. */
                interface IBulkInsertRegionDiskRequest {

                    /** BulkInsertRegionDiskRequest bulkInsertDiskResourceResource */
                    bulkInsertDiskResourceResource?: (google.cloud.compute.v1beta.IBulkInsertDiskResource|null);

                    /** BulkInsertRegionDiskRequest project */
                    project?: (string|null);

                    /** BulkInsertRegionDiskRequest region */
                    region?: (string|null);

                    /** BulkInsertRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a BulkInsertRegionDiskRequest. */
                class BulkInsertRegionDiskRequest implements IBulkInsertRegionDiskRequest {

                    /**
                     * Constructs a new BulkInsertRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkInsertRegionDiskRequest);

                    /** BulkInsertRegionDiskRequest bulkInsertDiskResourceResource. */
                    public bulkInsertDiskResourceResource?: (google.cloud.compute.v1beta.IBulkInsertDiskResource|null);

                    /** BulkInsertRegionDiskRequest project. */
                    public project: string;

                    /** BulkInsertRegionDiskRequest region. */
                    public region: string;

                    /** BulkInsertRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new BulkInsertRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkInsertRegionDiskRequest): google.cloud.compute.v1beta.BulkInsertRegionDiskRequest;

                    /**
                     * Encodes the specified BulkInsertRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertRegionDiskRequest.verify|verify} messages.
                     * @param message BulkInsertRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkInsertRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertRegionDiskRequest.verify|verify} messages.
                     * @param message BulkInsertRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkInsertRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkInsertRegionDiskRequest;

                    /**
                     * Decodes a BulkInsertRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkInsertRegionDiskRequest;

                    /**
                     * Verifies a BulkInsertRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkInsertRegionDiskRequest;

                    /**
                     * Creates a plain object from a BulkInsertRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message BulkInsertRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkInsertRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkInsertRegionInstanceRequest. */
                interface IBulkInsertRegionInstanceRequest {

                    /** BulkInsertRegionInstanceRequest bulkInsertInstanceResourceResource */
                    bulkInsertInstanceResourceResource?: (google.cloud.compute.v1beta.IBulkInsertInstanceResource|null);

                    /** BulkInsertRegionInstanceRequest project */
                    project?: (string|null);

                    /** BulkInsertRegionInstanceRequest region */
                    region?: (string|null);

                    /** BulkInsertRegionInstanceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a BulkInsertRegionInstanceRequest. */
                class BulkInsertRegionInstanceRequest implements IBulkInsertRegionInstanceRequest {

                    /**
                     * Constructs a new BulkInsertRegionInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkInsertRegionInstanceRequest);

                    /** BulkInsertRegionInstanceRequest bulkInsertInstanceResourceResource. */
                    public bulkInsertInstanceResourceResource?: (google.cloud.compute.v1beta.IBulkInsertInstanceResource|null);

                    /** BulkInsertRegionInstanceRequest project. */
                    public project: string;

                    /** BulkInsertRegionInstanceRequest region. */
                    public region: string;

                    /** BulkInsertRegionInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new BulkInsertRegionInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkInsertRegionInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkInsertRegionInstanceRequest): google.cloud.compute.v1beta.BulkInsertRegionInstanceRequest;

                    /**
                     * Encodes the specified BulkInsertRegionInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertRegionInstanceRequest.verify|verify} messages.
                     * @param message BulkInsertRegionInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkInsertRegionInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkInsertRegionInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkInsertRegionInstanceRequest.verify|verify} messages.
                     * @param message BulkInsertRegionInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkInsertRegionInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkInsertRegionInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkInsertRegionInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkInsertRegionInstanceRequest;

                    /**
                     * Decodes a BulkInsertRegionInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkInsertRegionInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkInsertRegionInstanceRequest;

                    /**
                     * Verifies a BulkInsertRegionInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkInsertRegionInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkInsertRegionInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkInsertRegionInstanceRequest;

                    /**
                     * Creates a plain object from a BulkInsertRegionInstanceRequest message. Also converts values to other types if specified.
                     * @param message BulkInsertRegionInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkInsertRegionInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkInsertRegionInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkInsertRegionInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkSetLabelsDiskRequest. */
                interface IBulkSetLabelsDiskRequest {

                    /** BulkSetLabelsDiskRequest bulkZoneSetLabelsRequestResource */
                    bulkZoneSetLabelsRequestResource?: (google.cloud.compute.v1beta.IBulkZoneSetLabelsRequest|null);

                    /** BulkSetLabelsDiskRequest project */
                    project?: (string|null);

                    /** BulkSetLabelsDiskRequest requestId */
                    requestId?: (string|null);

                    /** BulkSetLabelsDiskRequest resource */
                    resource?: (string|null);

                    /** BulkSetLabelsDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a BulkSetLabelsDiskRequest. */
                class BulkSetLabelsDiskRequest implements IBulkSetLabelsDiskRequest {

                    /**
                     * Constructs a new BulkSetLabelsDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkSetLabelsDiskRequest);

                    /** BulkSetLabelsDiskRequest bulkZoneSetLabelsRequestResource. */
                    public bulkZoneSetLabelsRequestResource?: (google.cloud.compute.v1beta.IBulkZoneSetLabelsRequest|null);

                    /** BulkSetLabelsDiskRequest project. */
                    public project: string;

                    /** BulkSetLabelsDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** BulkSetLabelsDiskRequest resource. */
                    public resource?: (string|null);

                    /** BulkSetLabelsDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new BulkSetLabelsDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkSetLabelsDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkSetLabelsDiskRequest): google.cloud.compute.v1beta.BulkSetLabelsDiskRequest;

                    /**
                     * Encodes the specified BulkSetLabelsDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.BulkSetLabelsDiskRequest.verify|verify} messages.
                     * @param message BulkSetLabelsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkSetLabelsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkSetLabelsDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkSetLabelsDiskRequest.verify|verify} messages.
                     * @param message BulkSetLabelsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkSetLabelsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkSetLabelsDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkSetLabelsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkSetLabelsDiskRequest;

                    /**
                     * Decodes a BulkSetLabelsDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkSetLabelsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkSetLabelsDiskRequest;

                    /**
                     * Verifies a BulkSetLabelsDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkSetLabelsDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkSetLabelsDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkSetLabelsDiskRequest;

                    /**
                     * Creates a plain object from a BulkSetLabelsDiskRequest message. Also converts values to other types if specified.
                     * @param message BulkSetLabelsDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkSetLabelsDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkSetLabelsDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkSetLabelsDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkSetLabelsRequest. */
                interface IBulkSetLabelsRequest {

                    /** BulkSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** BulkSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a BulkSetLabelsRequest. */
                class BulkSetLabelsRequest implements IBulkSetLabelsRequest {

                    /**
                     * Constructs a new BulkSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkSetLabelsRequest);

                    /** BulkSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** BulkSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new BulkSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkSetLabelsRequest): google.cloud.compute.v1beta.BulkSetLabelsRequest;

                    /**
                     * Encodes the specified BulkSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.BulkSetLabelsRequest.verify|verify} messages.
                     * @param message BulkSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkSetLabelsRequest.verify|verify} messages.
                     * @param message BulkSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkSetLabelsRequest;

                    /**
                     * Decodes a BulkSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkSetLabelsRequest;

                    /**
                     * Verifies a BulkSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkSetLabelsRequest;

                    /**
                     * Creates a plain object from a BulkSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message BulkSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BulkZoneSetLabelsRequest. */
                interface IBulkZoneSetLabelsRequest {

                    /** BulkZoneSetLabelsRequest requests */
                    requests?: (google.cloud.compute.v1beta.IBulkSetLabelsRequest[]|null);
                }

                /** Represents a BulkZoneSetLabelsRequest. */
                class BulkZoneSetLabelsRequest implements IBulkZoneSetLabelsRequest {

                    /**
                     * Constructs a new BulkZoneSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBulkZoneSetLabelsRequest);

                    /** BulkZoneSetLabelsRequest requests. */
                    public requests: google.cloud.compute.v1beta.IBulkSetLabelsRequest[];

                    /**
                     * Creates a new BulkZoneSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BulkZoneSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBulkZoneSetLabelsRequest): google.cloud.compute.v1beta.BulkZoneSetLabelsRequest;

                    /**
                     * Encodes the specified BulkZoneSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.BulkZoneSetLabelsRequest.verify|verify} messages.
                     * @param message BulkZoneSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBulkZoneSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BulkZoneSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BulkZoneSetLabelsRequest.verify|verify} messages.
                     * @param message BulkZoneSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBulkZoneSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BulkZoneSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BulkZoneSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BulkZoneSetLabelsRequest;

                    /**
                     * Decodes a BulkZoneSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BulkZoneSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BulkZoneSetLabelsRequest;

                    /**
                     * Verifies a BulkZoneSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BulkZoneSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BulkZoneSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BulkZoneSetLabelsRequest;

                    /**
                     * Creates a plain object from a BulkZoneSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message BulkZoneSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BulkZoneSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BulkZoneSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BulkZoneSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BundledLocalSsds. */
                interface IBundledLocalSsds {

                    /** BundledLocalSsds defaultInterface */
                    defaultInterface?: (string|null);

                    /** BundledLocalSsds partitionCount */
                    partitionCount?: (number|null);
                }

                /** Represents a BundledLocalSsds. */
                class BundledLocalSsds implements IBundledLocalSsds {

                    /**
                     * Constructs a new BundledLocalSsds.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IBundledLocalSsds);

                    /** BundledLocalSsds defaultInterface. */
                    public defaultInterface?: (string|null);

                    /** BundledLocalSsds partitionCount. */
                    public partitionCount?: (number|null);

                    /**
                     * Creates a new BundledLocalSsds instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BundledLocalSsds instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IBundledLocalSsds): google.cloud.compute.v1beta.BundledLocalSsds;

                    /**
                     * Encodes the specified BundledLocalSsds message. Does not implicitly {@link google.cloud.compute.v1beta.BundledLocalSsds.verify|verify} messages.
                     * @param message BundledLocalSsds message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IBundledLocalSsds, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BundledLocalSsds message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.BundledLocalSsds.verify|verify} messages.
                     * @param message BundledLocalSsds message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IBundledLocalSsds, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BundledLocalSsds message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BundledLocalSsds
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.BundledLocalSsds;

                    /**
                     * Decodes a BundledLocalSsds message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BundledLocalSsds
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.BundledLocalSsds;

                    /**
                     * Verifies a BundledLocalSsds message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BundledLocalSsds message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BundledLocalSsds
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.BundledLocalSsds;

                    /**
                     * Creates a plain object from a BundledLocalSsds message. Also converts values to other types if specified.
                     * @param message BundledLocalSsds
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.BundledLocalSsds, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BundledLocalSsds to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BundledLocalSsds
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CacheInvalidationRule. */
                interface ICacheInvalidationRule {

                    /** CacheInvalidationRule cacheTags */
                    cacheTags?: (string[]|null);

                    /** CacheInvalidationRule host */
                    host?: (string|null);

                    /** CacheInvalidationRule path */
                    path?: (string|null);
                }

                /** Represents a CacheInvalidationRule. */
                class CacheInvalidationRule implements ICacheInvalidationRule {

                    /**
                     * Constructs a new CacheInvalidationRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICacheInvalidationRule);

                    /** CacheInvalidationRule cacheTags. */
                    public cacheTags: string[];

                    /** CacheInvalidationRule host. */
                    public host?: (string|null);

                    /** CacheInvalidationRule path. */
                    public path?: (string|null);

                    /**
                     * Creates a new CacheInvalidationRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CacheInvalidationRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICacheInvalidationRule): google.cloud.compute.v1beta.CacheInvalidationRule;

                    /**
                     * Encodes the specified CacheInvalidationRule message. Does not implicitly {@link google.cloud.compute.v1beta.CacheInvalidationRule.verify|verify} messages.
                     * @param message CacheInvalidationRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICacheInvalidationRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CacheInvalidationRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CacheInvalidationRule.verify|verify} messages.
                     * @param message CacheInvalidationRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICacheInvalidationRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CacheInvalidationRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CacheInvalidationRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CacheInvalidationRule;

                    /**
                     * Decodes a CacheInvalidationRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CacheInvalidationRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CacheInvalidationRule;

                    /**
                     * Verifies a CacheInvalidationRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CacheInvalidationRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CacheInvalidationRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CacheInvalidationRule;

                    /**
                     * Creates a plain object from a CacheInvalidationRule message. Also converts values to other types if specified.
                     * @param message CacheInvalidationRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CacheInvalidationRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CacheInvalidationRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CacheInvalidationRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CacheKeyPolicy. */
                interface ICacheKeyPolicy {

                    /** CacheKeyPolicy includeHost */
                    includeHost?: (boolean|null);

                    /** CacheKeyPolicy includeHttpHeaders */
                    includeHttpHeaders?: (string[]|null);

                    /** CacheKeyPolicy includeNamedCookies */
                    includeNamedCookies?: (string[]|null);

                    /** CacheKeyPolicy includeProtocol */
                    includeProtocol?: (boolean|null);

                    /** CacheKeyPolicy includeQueryString */
                    includeQueryString?: (boolean|null);

                    /** CacheKeyPolicy queryStringBlacklist */
                    queryStringBlacklist?: (string[]|null);

                    /** CacheKeyPolicy queryStringWhitelist */
                    queryStringWhitelist?: (string[]|null);
                }

                /** Represents a CacheKeyPolicy. */
                class CacheKeyPolicy implements ICacheKeyPolicy {

                    /**
                     * Constructs a new CacheKeyPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICacheKeyPolicy);

                    /** CacheKeyPolicy includeHost. */
                    public includeHost?: (boolean|null);

                    /** CacheKeyPolicy includeHttpHeaders. */
                    public includeHttpHeaders: string[];

                    /** CacheKeyPolicy includeNamedCookies. */
                    public includeNamedCookies: string[];

                    /** CacheKeyPolicy includeProtocol. */
                    public includeProtocol?: (boolean|null);

                    /** CacheKeyPolicy includeQueryString. */
                    public includeQueryString?: (boolean|null);

                    /** CacheKeyPolicy queryStringBlacklist. */
                    public queryStringBlacklist: string[];

                    /** CacheKeyPolicy queryStringWhitelist. */
                    public queryStringWhitelist: string[];

                    /**
                     * Creates a new CacheKeyPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CacheKeyPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICacheKeyPolicy): google.cloud.compute.v1beta.CacheKeyPolicy;

                    /**
                     * Encodes the specified CacheKeyPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.CacheKeyPolicy.verify|verify} messages.
                     * @param message CacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CacheKeyPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CacheKeyPolicy.verify|verify} messages.
                     * @param message CacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CacheKeyPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CacheKeyPolicy;

                    /**
                     * Decodes a CacheKeyPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CacheKeyPolicy;

                    /**
                     * Verifies a CacheKeyPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CacheKeyPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CacheKeyPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CacheKeyPolicy;

                    /**
                     * Creates a plain object from a CacheKeyPolicy message. Also converts values to other types if specified.
                     * @param message CacheKeyPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CacheKeyPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CacheKeyPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CacheKeyPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CachePolicy. */
                interface ICachePolicy {

                    /** CachePolicy cacheBypassRequestHeaderNames */
                    cacheBypassRequestHeaderNames?: (string[]|null);

                    /** CachePolicy cacheKeyPolicy */
                    cacheKeyPolicy?: (google.cloud.compute.v1beta.ICachePolicyCacheKeyPolicy|null);

                    /** CachePolicy cacheMode */
                    cacheMode?: (string|null);

                    /** CachePolicy clientTtl */
                    clientTtl?: (google.cloud.compute.v1beta.IDuration|null);

                    /** CachePolicy defaultTtl */
                    defaultTtl?: (google.cloud.compute.v1beta.IDuration|null);

                    /** CachePolicy maxTtl */
                    maxTtl?: (google.cloud.compute.v1beta.IDuration|null);

                    /** CachePolicy negativeCaching */
                    negativeCaching?: (boolean|null);

                    /** CachePolicy negativeCachingPolicy */
                    negativeCachingPolicy?: (google.cloud.compute.v1beta.ICachePolicyNegativeCachingPolicy[]|null);

                    /** CachePolicy requestCoalescing */
                    requestCoalescing?: (boolean|null);

                    /** CachePolicy serveWhileStale */
                    serveWhileStale?: (google.cloud.compute.v1beta.IDuration|null);
                }

                /** Represents a CachePolicy. */
                class CachePolicy implements ICachePolicy {

                    /**
                     * Constructs a new CachePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICachePolicy);

                    /** CachePolicy cacheBypassRequestHeaderNames. */
                    public cacheBypassRequestHeaderNames: string[];

                    /** CachePolicy cacheKeyPolicy. */
                    public cacheKeyPolicy?: (google.cloud.compute.v1beta.ICachePolicyCacheKeyPolicy|null);

                    /** CachePolicy cacheMode. */
                    public cacheMode?: (string|null);

                    /** CachePolicy clientTtl. */
                    public clientTtl?: (google.cloud.compute.v1beta.IDuration|null);

                    /** CachePolicy defaultTtl. */
                    public defaultTtl?: (google.cloud.compute.v1beta.IDuration|null);

                    /** CachePolicy maxTtl. */
                    public maxTtl?: (google.cloud.compute.v1beta.IDuration|null);

                    /** CachePolicy negativeCaching. */
                    public negativeCaching?: (boolean|null);

                    /** CachePolicy negativeCachingPolicy. */
                    public negativeCachingPolicy: google.cloud.compute.v1beta.ICachePolicyNegativeCachingPolicy[];

                    /** CachePolicy requestCoalescing. */
                    public requestCoalescing?: (boolean|null);

                    /** CachePolicy serveWhileStale. */
                    public serveWhileStale?: (google.cloud.compute.v1beta.IDuration|null);

                    /**
                     * Creates a new CachePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CachePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICachePolicy): google.cloud.compute.v1beta.CachePolicy;

                    /**
                     * Encodes the specified CachePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.CachePolicy.verify|verify} messages.
                     * @param message CachePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICachePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CachePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CachePolicy.verify|verify} messages.
                     * @param message CachePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICachePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CachePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CachePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CachePolicy;

                    /**
                     * Decodes a CachePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CachePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CachePolicy;

                    /**
                     * Verifies a CachePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CachePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CachePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CachePolicy;

                    /**
                     * Creates a plain object from a CachePolicy message. Also converts values to other types if specified.
                     * @param message CachePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CachePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CachePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CachePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CachePolicy {

                    /** CacheMode enum. */
                    enum CacheMode {
                        UNDEFINED_CACHE_MODE = 0,
                        CACHE_ALL_STATIC = 355027945,
                        FORCE_CACHE_ALL = 486026928,
                        USE_ORIGIN_HEADERS = 55380261
                    }
                }

                /** Properties of a CachePolicyCacheKeyPolicy. */
                interface ICachePolicyCacheKeyPolicy {

                    /** CachePolicyCacheKeyPolicy excludedQueryParameters */
                    excludedQueryParameters?: (string[]|null);

                    /** CachePolicyCacheKeyPolicy includeHost */
                    includeHost?: (boolean|null);

                    /** CachePolicyCacheKeyPolicy includeProtocol */
                    includeProtocol?: (boolean|null);

                    /** CachePolicyCacheKeyPolicy includeQueryString */
                    includeQueryString?: (boolean|null);

                    /** CachePolicyCacheKeyPolicy includedCookieNames */
                    includedCookieNames?: (string[]|null);

                    /** CachePolicyCacheKeyPolicy includedHeaderNames */
                    includedHeaderNames?: (string[]|null);

                    /** CachePolicyCacheKeyPolicy includedQueryParameters */
                    includedQueryParameters?: (string[]|null);
                }

                /** Represents a CachePolicyCacheKeyPolicy. */
                class CachePolicyCacheKeyPolicy implements ICachePolicyCacheKeyPolicy {

                    /**
                     * Constructs a new CachePolicyCacheKeyPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICachePolicyCacheKeyPolicy);

                    /** CachePolicyCacheKeyPolicy excludedQueryParameters. */
                    public excludedQueryParameters: string[];

                    /** CachePolicyCacheKeyPolicy includeHost. */
                    public includeHost?: (boolean|null);

                    /** CachePolicyCacheKeyPolicy includeProtocol. */
                    public includeProtocol?: (boolean|null);

                    /** CachePolicyCacheKeyPolicy includeQueryString. */
                    public includeQueryString?: (boolean|null);

                    /** CachePolicyCacheKeyPolicy includedCookieNames. */
                    public includedCookieNames: string[];

                    /** CachePolicyCacheKeyPolicy includedHeaderNames. */
                    public includedHeaderNames: string[];

                    /** CachePolicyCacheKeyPolicy includedQueryParameters. */
                    public includedQueryParameters: string[];

                    /**
                     * Creates a new CachePolicyCacheKeyPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CachePolicyCacheKeyPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICachePolicyCacheKeyPolicy): google.cloud.compute.v1beta.CachePolicyCacheKeyPolicy;

                    /**
                     * Encodes the specified CachePolicyCacheKeyPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.CachePolicyCacheKeyPolicy.verify|verify} messages.
                     * @param message CachePolicyCacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICachePolicyCacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CachePolicyCacheKeyPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CachePolicyCacheKeyPolicy.verify|verify} messages.
                     * @param message CachePolicyCacheKeyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICachePolicyCacheKeyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CachePolicyCacheKeyPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CachePolicyCacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CachePolicyCacheKeyPolicy;

                    /**
                     * Decodes a CachePolicyCacheKeyPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CachePolicyCacheKeyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CachePolicyCacheKeyPolicy;

                    /**
                     * Verifies a CachePolicyCacheKeyPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CachePolicyCacheKeyPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CachePolicyCacheKeyPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CachePolicyCacheKeyPolicy;

                    /**
                     * Creates a plain object from a CachePolicyCacheKeyPolicy message. Also converts values to other types if specified.
                     * @param message CachePolicyCacheKeyPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CachePolicyCacheKeyPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CachePolicyCacheKeyPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CachePolicyCacheKeyPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CachePolicyNegativeCachingPolicy. */
                interface ICachePolicyNegativeCachingPolicy {

                    /** CachePolicyNegativeCachingPolicy code */
                    code?: (number|null);

                    /** CachePolicyNegativeCachingPolicy ttl */
                    ttl?: (google.cloud.compute.v1beta.IDuration|null);
                }

                /** Represents a CachePolicyNegativeCachingPolicy. */
                class CachePolicyNegativeCachingPolicy implements ICachePolicyNegativeCachingPolicy {

                    /**
                     * Constructs a new CachePolicyNegativeCachingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICachePolicyNegativeCachingPolicy);

                    /** CachePolicyNegativeCachingPolicy code. */
                    public code?: (number|null);

                    /** CachePolicyNegativeCachingPolicy ttl. */
                    public ttl?: (google.cloud.compute.v1beta.IDuration|null);

                    /**
                     * Creates a new CachePolicyNegativeCachingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CachePolicyNegativeCachingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICachePolicyNegativeCachingPolicy): google.cloud.compute.v1beta.CachePolicyNegativeCachingPolicy;

                    /**
                     * Encodes the specified CachePolicyNegativeCachingPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.CachePolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message CachePolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICachePolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CachePolicyNegativeCachingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CachePolicyNegativeCachingPolicy.verify|verify} messages.
                     * @param message CachePolicyNegativeCachingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICachePolicyNegativeCachingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CachePolicyNegativeCachingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CachePolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CachePolicyNegativeCachingPolicy;

                    /**
                     * Decodes a CachePolicyNegativeCachingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CachePolicyNegativeCachingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CachePolicyNegativeCachingPolicy;

                    /**
                     * Verifies a CachePolicyNegativeCachingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CachePolicyNegativeCachingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CachePolicyNegativeCachingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CachePolicyNegativeCachingPolicy;

                    /**
                     * Creates a plain object from a CachePolicyNegativeCachingPolicy message. Also converts values to other types if specified.
                     * @param message CachePolicyNegativeCachingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CachePolicyNegativeCachingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CachePolicyNegativeCachingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CachePolicyNegativeCachingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CalendarModeAdviceRequest. */
                interface ICalendarModeAdviceRequest {

                    /** CalendarModeAdviceRequest futureResourcesSpecs */
                    futureResourcesSpecs?: ({ [k: string]: google.cloud.compute.v1beta.IFutureResourcesSpec }|null);
                }

                /** Represents a CalendarModeAdviceRequest. */
                class CalendarModeAdviceRequest implements ICalendarModeAdviceRequest {

                    /**
                     * Constructs a new CalendarModeAdviceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICalendarModeAdviceRequest);

                    /** CalendarModeAdviceRequest futureResourcesSpecs. */
                    public futureResourcesSpecs: { [k: string]: google.cloud.compute.v1beta.IFutureResourcesSpec };

                    /**
                     * Creates a new CalendarModeAdviceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CalendarModeAdviceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICalendarModeAdviceRequest): google.cloud.compute.v1beta.CalendarModeAdviceRequest;

                    /**
                     * Encodes the specified CalendarModeAdviceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CalendarModeAdviceRequest.verify|verify} messages.
                     * @param message CalendarModeAdviceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICalendarModeAdviceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CalendarModeAdviceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CalendarModeAdviceRequest.verify|verify} messages.
                     * @param message CalendarModeAdviceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICalendarModeAdviceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CalendarModeAdviceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CalendarModeAdviceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CalendarModeAdviceRequest;

                    /**
                     * Decodes a CalendarModeAdviceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CalendarModeAdviceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CalendarModeAdviceRequest;

                    /**
                     * Verifies a CalendarModeAdviceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CalendarModeAdviceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CalendarModeAdviceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CalendarModeAdviceRequest;

                    /**
                     * Creates a plain object from a CalendarModeAdviceRequest message. Also converts values to other types if specified.
                     * @param message CalendarModeAdviceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CalendarModeAdviceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CalendarModeAdviceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CalendarModeAdviceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CalendarModeAdviceResponse. */
                interface ICalendarModeAdviceResponse {

                    /** CalendarModeAdviceResponse recommendations */
                    recommendations?: (google.cloud.compute.v1beta.ICalendarModeRecommendation[]|null);
                }

                /** Represents a CalendarModeAdviceResponse. */
                class CalendarModeAdviceResponse implements ICalendarModeAdviceResponse {

                    /**
                     * Constructs a new CalendarModeAdviceResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICalendarModeAdviceResponse);

                    /** CalendarModeAdviceResponse recommendations. */
                    public recommendations: google.cloud.compute.v1beta.ICalendarModeRecommendation[];

                    /**
                     * Creates a new CalendarModeAdviceResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CalendarModeAdviceResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICalendarModeAdviceResponse): google.cloud.compute.v1beta.CalendarModeAdviceResponse;

                    /**
                     * Encodes the specified CalendarModeAdviceResponse message. Does not implicitly {@link google.cloud.compute.v1beta.CalendarModeAdviceResponse.verify|verify} messages.
                     * @param message CalendarModeAdviceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICalendarModeAdviceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CalendarModeAdviceResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CalendarModeAdviceResponse.verify|verify} messages.
                     * @param message CalendarModeAdviceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICalendarModeAdviceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CalendarModeAdviceResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CalendarModeAdviceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CalendarModeAdviceResponse;

                    /**
                     * Decodes a CalendarModeAdviceResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CalendarModeAdviceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CalendarModeAdviceResponse;

                    /**
                     * Verifies a CalendarModeAdviceResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CalendarModeAdviceResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CalendarModeAdviceResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CalendarModeAdviceResponse;

                    /**
                     * Creates a plain object from a CalendarModeAdviceResponse message. Also converts values to other types if specified.
                     * @param message CalendarModeAdviceResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CalendarModeAdviceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CalendarModeAdviceResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CalendarModeAdviceResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CalendarModeAdviceRpcRequest. */
                interface ICalendarModeAdviceRpcRequest {

                    /** CalendarModeAdviceRpcRequest calendarModeAdviceRequestResource */
                    calendarModeAdviceRequestResource?: (google.cloud.compute.v1beta.ICalendarModeAdviceRequest|null);

                    /** CalendarModeAdviceRpcRequest project */
                    project?: (string|null);

                    /** CalendarModeAdviceRpcRequest region */
                    region?: (string|null);
                }

                /** Represents a CalendarModeAdviceRpcRequest. */
                class CalendarModeAdviceRpcRequest implements ICalendarModeAdviceRpcRequest {

                    /**
                     * Constructs a new CalendarModeAdviceRpcRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICalendarModeAdviceRpcRequest);

                    /** CalendarModeAdviceRpcRequest calendarModeAdviceRequestResource. */
                    public calendarModeAdviceRequestResource?: (google.cloud.compute.v1beta.ICalendarModeAdviceRequest|null);

                    /** CalendarModeAdviceRpcRequest project. */
                    public project: string;

                    /** CalendarModeAdviceRpcRequest region. */
                    public region: string;

                    /**
                     * Creates a new CalendarModeAdviceRpcRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CalendarModeAdviceRpcRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICalendarModeAdviceRpcRequest): google.cloud.compute.v1beta.CalendarModeAdviceRpcRequest;

                    /**
                     * Encodes the specified CalendarModeAdviceRpcRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CalendarModeAdviceRpcRequest.verify|verify} messages.
                     * @param message CalendarModeAdviceRpcRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICalendarModeAdviceRpcRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CalendarModeAdviceRpcRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CalendarModeAdviceRpcRequest.verify|verify} messages.
                     * @param message CalendarModeAdviceRpcRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICalendarModeAdviceRpcRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CalendarModeAdviceRpcRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CalendarModeAdviceRpcRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CalendarModeAdviceRpcRequest;

                    /**
                     * Decodes a CalendarModeAdviceRpcRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CalendarModeAdviceRpcRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CalendarModeAdviceRpcRequest;

                    /**
                     * Verifies a CalendarModeAdviceRpcRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CalendarModeAdviceRpcRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CalendarModeAdviceRpcRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CalendarModeAdviceRpcRequest;

                    /**
                     * Creates a plain object from a CalendarModeAdviceRpcRequest message. Also converts values to other types if specified.
                     * @param message CalendarModeAdviceRpcRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CalendarModeAdviceRpcRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CalendarModeAdviceRpcRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CalendarModeAdviceRpcRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CalendarModeRecommendation. */
                interface ICalendarModeRecommendation {

                    /** CalendarModeRecommendation recommendationsPerSpec */
                    recommendationsPerSpec?: ({ [k: string]: google.cloud.compute.v1beta.IFutureResourcesRecommendation }|null);
                }

                /** Represents a CalendarModeRecommendation. */
                class CalendarModeRecommendation implements ICalendarModeRecommendation {

                    /**
                     * Constructs a new CalendarModeRecommendation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICalendarModeRecommendation);

                    /** CalendarModeRecommendation recommendationsPerSpec. */
                    public recommendationsPerSpec: { [k: string]: google.cloud.compute.v1beta.IFutureResourcesRecommendation };

                    /**
                     * Creates a new CalendarModeRecommendation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CalendarModeRecommendation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICalendarModeRecommendation): google.cloud.compute.v1beta.CalendarModeRecommendation;

                    /**
                     * Encodes the specified CalendarModeRecommendation message. Does not implicitly {@link google.cloud.compute.v1beta.CalendarModeRecommendation.verify|verify} messages.
                     * @param message CalendarModeRecommendation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICalendarModeRecommendation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CalendarModeRecommendation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CalendarModeRecommendation.verify|verify} messages.
                     * @param message CalendarModeRecommendation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICalendarModeRecommendation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CalendarModeRecommendation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CalendarModeRecommendation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CalendarModeRecommendation;

                    /**
                     * Decodes a CalendarModeRecommendation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CalendarModeRecommendation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CalendarModeRecommendation;

                    /**
                     * Verifies a CalendarModeRecommendation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CalendarModeRecommendation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CalendarModeRecommendation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CalendarModeRecommendation;

                    /**
                     * Creates a plain object from a CalendarModeRecommendation message. Also converts values to other types if specified.
                     * @param message CalendarModeRecommendation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CalendarModeRecommendation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CalendarModeRecommendation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CalendarModeRecommendation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CancelFutureReservationRequest. */
                interface ICancelFutureReservationRequest {

                    /** CancelFutureReservationRequest futureReservation */
                    futureReservation?: (string|null);

                    /** CancelFutureReservationRequest project */
                    project?: (string|null);

                    /** CancelFutureReservationRequest requestId */
                    requestId?: (string|null);

                    /** CancelFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a CancelFutureReservationRequest. */
                class CancelFutureReservationRequest implements ICancelFutureReservationRequest {

                    /**
                     * Constructs a new CancelFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICancelFutureReservationRequest);

                    /** CancelFutureReservationRequest futureReservation. */
                    public futureReservation: string;

                    /** CancelFutureReservationRequest project. */
                    public project: string;

                    /** CancelFutureReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** CancelFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new CancelFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CancelFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICancelFutureReservationRequest): google.cloud.compute.v1beta.CancelFutureReservationRequest;

                    /**
                     * Encodes the specified CancelFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CancelFutureReservationRequest.verify|verify} messages.
                     * @param message CancelFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICancelFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CancelFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CancelFutureReservationRequest.verify|verify} messages.
                     * @param message CancelFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICancelFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CancelFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CancelFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CancelFutureReservationRequest;

                    /**
                     * Decodes a CancelFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CancelFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CancelFutureReservationRequest;

                    /**
                     * Verifies a CancelFutureReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CancelFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CancelFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CancelFutureReservationRequest;

                    /**
                     * Creates a plain object from a CancelFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message CancelFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CancelFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CancelFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CancelFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CancelInstanceGroupManagerResizeRequestRequest. */
                interface ICancelInstanceGroupManagerResizeRequestRequest {

                    /** CancelInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest zone */
                    zone?: (string|null);
                }

                /** Represents a CancelInstanceGroupManagerResizeRequestRequest. */
                class CancelInstanceGroupManagerResizeRequestRequest implements ICancelInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new CancelInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICancelInstanceGroupManagerResizeRequestRequest);

                    /** CancelInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** CancelInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** CancelInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /** CancelInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /** CancelInstanceGroupManagerResizeRequestRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new CancelInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CancelInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICancelInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1beta.CancelInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified CancelInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CancelInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message CancelInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICancelInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CancelInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CancelInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message CancelInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICancelInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CancelInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CancelInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CancelInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a CancelInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CancelInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CancelInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a CancelInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CancelInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CancelInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CancelInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a CancelInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message CancelInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CancelInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CancelInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CancelInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CancelRegionInstanceGroupManagerResizeRequestRequest. */
                interface ICancelRegionInstanceGroupManagerResizeRequestRequest {

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest region */
                    region?: (string|null);

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);
                }

                /** Represents a CancelRegionInstanceGroupManagerResizeRequestRequest. */
                class CancelRegionInstanceGroupManagerResizeRequestRequest implements ICancelRegionInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new CancelRegionInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICancelRegionInstanceGroupManagerResizeRequestRequest);

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest region. */
                    public region: string;

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /** CancelRegionInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /**
                     * Creates a new CancelRegionInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CancelRegionInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICancelRegionInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1beta.CancelRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified CancelRegionInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CancelRegionInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message CancelRegionInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICancelRegionInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CancelRegionInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CancelRegionInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message CancelRegionInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICancelRegionInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CancelRegionInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CancelRegionInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CancelRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a CancelRegionInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CancelRegionInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CancelRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a CancelRegionInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CancelRegionInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CancelRegionInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CancelRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a CancelRegionInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message CancelRegionInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CancelRegionInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CancelRegionInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CancelRegionInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CancelRequestRemovePeeringNetworkRequest. */
                interface ICancelRequestRemovePeeringNetworkRequest {

                    /** CancelRequestRemovePeeringNetworkRequest network */
                    network?: (string|null);

                    /** CancelRequestRemovePeeringNetworkRequest networksCancelRequestRemovePeeringRequestResource */
                    networksCancelRequestRemovePeeringRequestResource?: (google.cloud.compute.v1beta.INetworksCancelRequestRemovePeeringRequest|null);

                    /** CancelRequestRemovePeeringNetworkRequest project */
                    project?: (string|null);

                    /** CancelRequestRemovePeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a CancelRequestRemovePeeringNetworkRequest. */
                class CancelRequestRemovePeeringNetworkRequest implements ICancelRequestRemovePeeringNetworkRequest {

                    /**
                     * Constructs a new CancelRequestRemovePeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICancelRequestRemovePeeringNetworkRequest);

                    /** CancelRequestRemovePeeringNetworkRequest network. */
                    public network: string;

                    /** CancelRequestRemovePeeringNetworkRequest networksCancelRequestRemovePeeringRequestResource. */
                    public networksCancelRequestRemovePeeringRequestResource?: (google.cloud.compute.v1beta.INetworksCancelRequestRemovePeeringRequest|null);

                    /** CancelRequestRemovePeeringNetworkRequest project. */
                    public project: string;

                    /** CancelRequestRemovePeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new CancelRequestRemovePeeringNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CancelRequestRemovePeeringNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICancelRequestRemovePeeringNetworkRequest): google.cloud.compute.v1beta.CancelRequestRemovePeeringNetworkRequest;

                    /**
                     * Encodes the specified CancelRequestRemovePeeringNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CancelRequestRemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message CancelRequestRemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICancelRequestRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CancelRequestRemovePeeringNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CancelRequestRemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message CancelRequestRemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICancelRequestRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CancelRequestRemovePeeringNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CancelRequestRemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CancelRequestRemovePeeringNetworkRequest;

                    /**
                     * Decodes a CancelRequestRemovePeeringNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CancelRequestRemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CancelRequestRemovePeeringNetworkRequest;

                    /**
                     * Verifies a CancelRequestRemovePeeringNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CancelRequestRemovePeeringNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CancelRequestRemovePeeringNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CancelRequestRemovePeeringNetworkRequest;

                    /**
                     * Creates a plain object from a CancelRequestRemovePeeringNetworkRequest message. Also converts values to other types if specified.
                     * @param message CancelRequestRemovePeeringNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CancelRequestRemovePeeringNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CancelRequestRemovePeeringNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CancelRequestRemovePeeringNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CancelRolloutRequest. */
                interface ICancelRolloutRequest {

                    /** CancelRolloutRequest project */
                    project?: (string|null);

                    /** CancelRolloutRequest requestId */
                    requestId?: (string|null);

                    /** CancelRolloutRequest rollback */
                    rollback?: (boolean|null);

                    /** CancelRolloutRequest rollout */
                    rollout?: (string|null);
                }

                /** Represents a CancelRolloutRequest. */
                class CancelRolloutRequest implements ICancelRolloutRequest {

                    /**
                     * Constructs a new CancelRolloutRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICancelRolloutRequest);

                    /** CancelRolloutRequest project. */
                    public project: string;

                    /** CancelRolloutRequest requestId. */
                    public requestId?: (string|null);

                    /** CancelRolloutRequest rollback. */
                    public rollback?: (boolean|null);

                    /** CancelRolloutRequest rollout. */
                    public rollout: string;

                    /**
                     * Creates a new CancelRolloutRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CancelRolloutRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICancelRolloutRequest): google.cloud.compute.v1beta.CancelRolloutRequest;

                    /**
                     * Encodes the specified CancelRolloutRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CancelRolloutRequest.verify|verify} messages.
                     * @param message CancelRolloutRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICancelRolloutRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CancelRolloutRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CancelRolloutRequest.verify|verify} messages.
                     * @param message CancelRolloutRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICancelRolloutRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CancelRolloutRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CancelRolloutRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CancelRolloutRequest;

                    /**
                     * Decodes a CancelRolloutRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CancelRolloutRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CancelRolloutRequest;

                    /**
                     * Verifies a CancelRolloutRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CancelRolloutRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CancelRolloutRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CancelRolloutRequest;

                    /**
                     * Creates a plain object from a CancelRolloutRequest message. Also converts values to other types if specified.
                     * @param message CancelRolloutRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CancelRolloutRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CancelRolloutRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CancelRolloutRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CircuitBreakers. */
                interface ICircuitBreakers {

                    /** CircuitBreakers connectTimeout */
                    connectTimeout?: (google.cloud.compute.v1beta.IDuration|null);

                    /** CircuitBreakers maxConnections */
                    maxConnections?: (number|null);

                    /** CircuitBreakers maxPendingRequests */
                    maxPendingRequests?: (number|null);

                    /** CircuitBreakers maxRequests */
                    maxRequests?: (number|null);

                    /** CircuitBreakers maxRequestsPerConnection */
                    maxRequestsPerConnection?: (number|null);

                    /** CircuitBreakers maxRetries */
                    maxRetries?: (number|null);
                }

                /** Represents a CircuitBreakers. */
                class CircuitBreakers implements ICircuitBreakers {

                    /**
                     * Constructs a new CircuitBreakers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICircuitBreakers);

                    /** CircuitBreakers connectTimeout. */
                    public connectTimeout?: (google.cloud.compute.v1beta.IDuration|null);

                    /** CircuitBreakers maxConnections. */
                    public maxConnections?: (number|null);

                    /** CircuitBreakers maxPendingRequests. */
                    public maxPendingRequests?: (number|null);

                    /** CircuitBreakers maxRequests. */
                    public maxRequests?: (number|null);

                    /** CircuitBreakers maxRequestsPerConnection. */
                    public maxRequestsPerConnection?: (number|null);

                    /** CircuitBreakers maxRetries. */
                    public maxRetries?: (number|null);

                    /**
                     * Creates a new CircuitBreakers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CircuitBreakers instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICircuitBreakers): google.cloud.compute.v1beta.CircuitBreakers;

                    /**
                     * Encodes the specified CircuitBreakers message. Does not implicitly {@link google.cloud.compute.v1beta.CircuitBreakers.verify|verify} messages.
                     * @param message CircuitBreakers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICircuitBreakers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CircuitBreakers message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CircuitBreakers.verify|verify} messages.
                     * @param message CircuitBreakers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICircuitBreakers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CircuitBreakers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CircuitBreakers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CircuitBreakers;

                    /**
                     * Decodes a CircuitBreakers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CircuitBreakers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CircuitBreakers;

                    /**
                     * Verifies a CircuitBreakers message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CircuitBreakers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CircuitBreakers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CircuitBreakers;

                    /**
                     * Creates a plain object from a CircuitBreakers message. Also converts values to other types if specified.
                     * @param message CircuitBreakers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CircuitBreakers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CircuitBreakers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CircuitBreakers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloneRulesFirewallPolicyRequest. */
                interface ICloneRulesFirewallPolicyRequest {

                    /** CloneRulesFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** CloneRulesFirewallPolicyRequest requestId */
                    requestId?: (string|null);

                    /** CloneRulesFirewallPolicyRequest sourceFirewallPolicy */
                    sourceFirewallPolicy?: (string|null);
                }

                /** Represents a CloneRulesFirewallPolicyRequest. */
                class CloneRulesFirewallPolicyRequest implements ICloneRulesFirewallPolicyRequest {

                    /**
                     * Constructs a new CloneRulesFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICloneRulesFirewallPolicyRequest);

                    /** CloneRulesFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** CloneRulesFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** CloneRulesFirewallPolicyRequest sourceFirewallPolicy. */
                    public sourceFirewallPolicy?: (string|null);

                    /**
                     * Creates a new CloneRulesFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloneRulesFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICloneRulesFirewallPolicyRequest): google.cloud.compute.v1beta.CloneRulesFirewallPolicyRequest;

                    /**
                     * Encodes the specified CloneRulesFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CloneRulesFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICloneRulesFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloneRulesFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CloneRulesFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICloneRulesFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloneRulesFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloneRulesFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CloneRulesFirewallPolicyRequest;

                    /**
                     * Decodes a CloneRulesFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloneRulesFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CloneRulesFirewallPolicyRequest;

                    /**
                     * Verifies a CloneRulesFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloneRulesFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloneRulesFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CloneRulesFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a CloneRulesFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message CloneRulesFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CloneRulesFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloneRulesFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloneRulesFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloneRulesNetworkFirewallPolicyRequest. */
                interface ICloneRulesNetworkFirewallPolicyRequest {

                    /** CloneRulesNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** CloneRulesNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** CloneRulesNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);

                    /** CloneRulesNetworkFirewallPolicyRequest sourceFirewallPolicy */
                    sourceFirewallPolicy?: (string|null);
                }

                /** Represents a CloneRulesNetworkFirewallPolicyRequest. */
                class CloneRulesNetworkFirewallPolicyRequest implements ICloneRulesNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new CloneRulesNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICloneRulesNetworkFirewallPolicyRequest);

                    /** CloneRulesNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** CloneRulesNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** CloneRulesNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** CloneRulesNetworkFirewallPolicyRequest sourceFirewallPolicy. */
                    public sourceFirewallPolicy?: (string|null);

                    /**
                     * Creates a new CloneRulesNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloneRulesNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICloneRulesNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.CloneRulesNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified CloneRulesNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CloneRulesNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICloneRulesNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloneRulesNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CloneRulesNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICloneRulesNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloneRulesNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloneRulesNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CloneRulesNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a CloneRulesNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloneRulesNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CloneRulesNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a CloneRulesNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloneRulesNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloneRulesNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CloneRulesNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a CloneRulesNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message CloneRulesNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CloneRulesNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloneRulesNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloneRulesNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloneRulesRegionNetworkFirewallPolicyRequest. */
                interface ICloneRulesRegionNetworkFirewallPolicyRequest {

                    /** CloneRulesRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest sourceFirewallPolicy */
                    sourceFirewallPolicy?: (string|null);
                }

                /** Represents a CloneRulesRegionNetworkFirewallPolicyRequest. */
                class CloneRulesRegionNetworkFirewallPolicyRequest implements ICloneRulesRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new CloneRulesRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICloneRulesRegionNetworkFirewallPolicyRequest);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** CloneRulesRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** CloneRulesRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** CloneRulesRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** CloneRulesRegionNetworkFirewallPolicyRequest sourceFirewallPolicy. */
                    public sourceFirewallPolicy?: (string|null);

                    /**
                     * Creates a new CloneRulesRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloneRulesRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICloneRulesRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.CloneRulesRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified CloneRulesRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CloneRulesRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICloneRulesRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloneRulesRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CloneRulesRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message CloneRulesRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICloneRulesRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloneRulesRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloneRulesRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CloneRulesRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a CloneRulesRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloneRulesRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CloneRulesRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a CloneRulesRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloneRulesRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloneRulesRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CloneRulesRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a CloneRulesRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message CloneRulesRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CloneRulesRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloneRulesRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloneRulesRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Commitment. */
                interface ICommitment {

                    /** Commitment autoRenew */
                    autoRenew?: (boolean|null);

                    /** Commitment category */
                    category?: (string|null);

                    /** Commitment creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Commitment customEndTimestamp */
                    customEndTimestamp?: (string|null);

                    /** Commitment description */
                    description?: (string|null);

                    /** Commitment endTimestamp */
                    endTimestamp?: (string|null);

                    /** Commitment existingReservations */
                    existingReservations?: (string[]|null);

                    /** Commitment id */
                    id?: (number|Long|string|null);

                    /** Commitment kind */
                    kind?: (string|null);

                    /** Commitment licenseResource */
                    licenseResource?: (google.cloud.compute.v1beta.ILicenseResourceCommitment|null);

                    /** Commitment mergeSourceCommitments */
                    mergeSourceCommitments?: (string[]|null);

                    /** Commitment name */
                    name?: (string|null);

                    /** Commitment plan */
                    plan?: (string|null);

                    /** Commitment region */
                    region?: (string|null);

                    /** Commitment reservations */
                    reservations?: (google.cloud.compute.v1beta.IReservation[]|null);

                    /** Commitment resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1beta.ICommitmentResourceStatus|null);

                    /** Commitment resources */
                    resources?: (google.cloud.compute.v1beta.IResourceCommitment[]|null);

                    /** Commitment selfLink */
                    selfLink?: (string|null);

                    /** Commitment splitSourceCommitment */
                    splitSourceCommitment?: (string|null);

                    /** Commitment startTimestamp */
                    startTimestamp?: (string|null);

                    /** Commitment status */
                    status?: (string|null);

                    /** Commitment statusMessage */
                    statusMessage?: (string|null);

                    /** Commitment type */
                    type?: (string|null);
                }

                /** Represents a Commitment. */
                class Commitment implements ICommitment {

                    /**
                     * Constructs a new Commitment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICommitment);

                    /** Commitment autoRenew. */
                    public autoRenew?: (boolean|null);

                    /** Commitment category. */
                    public category?: (string|null);

                    /** Commitment creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Commitment customEndTimestamp. */
                    public customEndTimestamp?: (string|null);

                    /** Commitment description. */
                    public description?: (string|null);

                    /** Commitment endTimestamp. */
                    public endTimestamp?: (string|null);

                    /** Commitment existingReservations. */
                    public existingReservations: string[];

                    /** Commitment id. */
                    public id?: (number|Long|string|null);

                    /** Commitment kind. */
                    public kind?: (string|null);

                    /** Commitment licenseResource. */
                    public licenseResource?: (google.cloud.compute.v1beta.ILicenseResourceCommitment|null);

                    /** Commitment mergeSourceCommitments. */
                    public mergeSourceCommitments: string[];

                    /** Commitment name. */
                    public name?: (string|null);

                    /** Commitment plan. */
                    public plan?: (string|null);

                    /** Commitment region. */
                    public region?: (string|null);

                    /** Commitment reservations. */
                    public reservations: google.cloud.compute.v1beta.IReservation[];

                    /** Commitment resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1beta.ICommitmentResourceStatus|null);

                    /** Commitment resources. */
                    public resources: google.cloud.compute.v1beta.IResourceCommitment[];

                    /** Commitment selfLink. */
                    public selfLink?: (string|null);

                    /** Commitment splitSourceCommitment. */
                    public splitSourceCommitment?: (string|null);

                    /** Commitment startTimestamp. */
                    public startTimestamp?: (string|null);

                    /** Commitment status. */
                    public status?: (string|null);

                    /** Commitment statusMessage. */
                    public statusMessage?: (string|null);

                    /** Commitment type. */
                    public type?: (string|null);

                    /**
                     * Creates a new Commitment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Commitment instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICommitment): google.cloud.compute.v1beta.Commitment;

                    /**
                     * Encodes the specified Commitment message. Does not implicitly {@link google.cloud.compute.v1beta.Commitment.verify|verify} messages.
                     * @param message Commitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Commitment message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Commitment.verify|verify} messages.
                     * @param message Commitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Commitment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Commitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Commitment;

                    /**
                     * Decodes a Commitment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Commitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Commitment;

                    /**
                     * Verifies a Commitment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Commitment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Commitment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Commitment;

                    /**
                     * Creates a plain object from a Commitment message. Also converts values to other types if specified.
                     * @param message Commitment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Commitment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Commitment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Commitment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Commitment {

                    /** Category enum. */
                    enum Category {
                        UNDEFINED_CATEGORY = 0,
                        CATEGORY_UNSPECIFIED = 509189462,
                        LICENSE = 347869217,
                        MACHINE = 469553191
                    }

                    /** Plan enum. */
                    enum Plan {
                        UNDEFINED_PLAN = 0,
                        INVALID = 530283991,
                        THIRTY_SIX_MONTH = 266295942,
                        TWELVE_MONTH = 173083962
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        CANCELLED = 41957681,
                        CREATING = 455564985,
                        EXPIRED = 482489093,
                        NOT_YET_ACTIVE = 20607337
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        ACCELERATOR_OPTIMIZED = 280848403,
                        ACCELERATOR_OPTIMIZED_A3 = 158574526,
                        ACCELERATOR_OPTIMIZED_A3_MEGA = 156517459,
                        ACCELERATOR_OPTIMIZED_A3_ULTRA = 27812811,
                        ACCELERATOR_OPTIMIZED_A4 = 158574527,
                        COMPUTE_OPTIMIZED = 158349023,
                        COMPUTE_OPTIMIZED_C2D = 383246453,
                        COMPUTE_OPTIMIZED_C3 = 428004784,
                        COMPUTE_OPTIMIZED_C3D = 383246484,
                        COMPUTE_OPTIMIZED_H3 = 428004939,
                        COMPUTE_OPTIMIZED_H4D = 383251320,
                        GENERAL_PURPOSE = 299793543,
                        GENERAL_PURPOSE_C4 = 301911817,
                        GENERAL_PURPOSE_C4A = 232460888,
                        GENERAL_PURPOSE_C4D = 232460891,
                        GENERAL_PURPOSE_E2 = 301911877,
                        GENERAL_PURPOSE_N2 = 301912156,
                        GENERAL_PURPOSE_N2D = 232471400,
                        GENERAL_PURPOSE_N4 = 301912158,
                        GENERAL_PURPOSE_N4A = 232471459,
                        GENERAL_PURPOSE_N4D = 232471462,
                        GENERAL_PURPOSE_T2D = 232477166,
                        GRAPHICS_OPTIMIZED = 68500563,
                        GRAPHICS_OPTIMIZED_G4 = 54029369,
                        MEMORY_OPTIMIZED = 281753417,
                        MEMORY_OPTIMIZED_M3 = 276301372,
                        MEMORY_OPTIMIZED_M4 = 276301373,
                        MEMORY_OPTIMIZED_M4_6TB = 210543650,
                        MEMORY_OPTIMIZED_X4_1440_24T = 206669823,
                        MEMORY_OPTIMIZED_X4_16TB = 183089120,
                        MEMORY_OPTIMIZED_X4_1920_32T = 291963529,
                        MEMORY_OPTIMIZED_X4_24TB = 183116989,
                        MEMORY_OPTIMIZED_X4_32TB = 183144858,
                        MEMORY_OPTIMIZED_X4_480_6T = 478547742,
                        MEMORY_OPTIMIZED_X4_480_8T = 478547804,
                        MEMORY_OPTIMIZED_X4_960_12T = 424752410,
                        MEMORY_OPTIMIZED_X4_960_16T = 424752534,
                        STORAGE_OPTIMIZED_Z3 = 316796085,
                        TYPE_UNSPECIFIED = 437714322
                    }
                }

                /** Properties of a CommitmentAggregatedList. */
                interface ICommitmentAggregatedList {

                    /** CommitmentAggregatedList id */
                    id?: (string|null);

                    /** CommitmentAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ICommitmentsScopedList }|null);

                    /** CommitmentAggregatedList kind */
                    kind?: (string|null);

                    /** CommitmentAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CommitmentAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** CommitmentAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** CommitmentAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a CommitmentAggregatedList. */
                class CommitmentAggregatedList implements ICommitmentAggregatedList {

                    /**
                     * Constructs a new CommitmentAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICommitmentAggregatedList);

                    /** CommitmentAggregatedList id. */
                    public id?: (string|null);

                    /** CommitmentAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ICommitmentsScopedList };

                    /** CommitmentAggregatedList kind. */
                    public kind?: (string|null);

                    /** CommitmentAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CommitmentAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** CommitmentAggregatedList unreachables. */
                    public unreachables: string[];

                    /** CommitmentAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new CommitmentAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CommitmentAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICommitmentAggregatedList): google.cloud.compute.v1beta.CommitmentAggregatedList;

                    /**
                     * Encodes the specified CommitmentAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.CommitmentAggregatedList.verify|verify} messages.
                     * @param message CommitmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICommitmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CommitmentAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CommitmentAggregatedList.verify|verify} messages.
                     * @param message CommitmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICommitmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CommitmentAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CommitmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CommitmentAggregatedList;

                    /**
                     * Decodes a CommitmentAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CommitmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CommitmentAggregatedList;

                    /**
                     * Verifies a CommitmentAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CommitmentAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CommitmentAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CommitmentAggregatedList;

                    /**
                     * Creates a plain object from a CommitmentAggregatedList message. Also converts values to other types if specified.
                     * @param message CommitmentAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CommitmentAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CommitmentAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CommitmentAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CommitmentList. */
                interface ICommitmentList {

                    /** CommitmentList id */
                    id?: (string|null);

                    /** CommitmentList items */
                    items?: (google.cloud.compute.v1beta.ICommitment[]|null);

                    /** CommitmentList kind */
                    kind?: (string|null);

                    /** CommitmentList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CommitmentList selfLink */
                    selfLink?: (string|null);

                    /** CommitmentList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a CommitmentList. */
                class CommitmentList implements ICommitmentList {

                    /**
                     * Constructs a new CommitmentList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICommitmentList);

                    /** CommitmentList id. */
                    public id?: (string|null);

                    /** CommitmentList items. */
                    public items: google.cloud.compute.v1beta.ICommitment[];

                    /** CommitmentList kind. */
                    public kind?: (string|null);

                    /** CommitmentList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CommitmentList selfLink. */
                    public selfLink?: (string|null);

                    /** CommitmentList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new CommitmentList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CommitmentList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICommitmentList): google.cloud.compute.v1beta.CommitmentList;

                    /**
                     * Encodes the specified CommitmentList message. Does not implicitly {@link google.cloud.compute.v1beta.CommitmentList.verify|verify} messages.
                     * @param message CommitmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICommitmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CommitmentList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CommitmentList.verify|verify} messages.
                     * @param message CommitmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICommitmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CommitmentList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CommitmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CommitmentList;

                    /**
                     * Decodes a CommitmentList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CommitmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CommitmentList;

                    /**
                     * Verifies a CommitmentList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CommitmentList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CommitmentList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CommitmentList;

                    /**
                     * Creates a plain object from a CommitmentList message. Also converts values to other types if specified.
                     * @param message CommitmentList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CommitmentList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CommitmentList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CommitmentList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CommitmentResourceStatus. */
                interface ICommitmentResourceStatus {

                    /** CommitmentResourceStatus customTermEligibilityEndTimestamp */
                    customTermEligibilityEndTimestamp?: (string|null);
                }

                /** Represents a CommitmentResourceStatus. */
                class CommitmentResourceStatus implements ICommitmentResourceStatus {

                    /**
                     * Constructs a new CommitmentResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICommitmentResourceStatus);

                    /** CommitmentResourceStatus customTermEligibilityEndTimestamp. */
                    public customTermEligibilityEndTimestamp?: (string|null);

                    /**
                     * Creates a new CommitmentResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CommitmentResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICommitmentResourceStatus): google.cloud.compute.v1beta.CommitmentResourceStatus;

                    /**
                     * Encodes the specified CommitmentResourceStatus message. Does not implicitly {@link google.cloud.compute.v1beta.CommitmentResourceStatus.verify|verify} messages.
                     * @param message CommitmentResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICommitmentResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CommitmentResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CommitmentResourceStatus.verify|verify} messages.
                     * @param message CommitmentResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICommitmentResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CommitmentResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CommitmentResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CommitmentResourceStatus;

                    /**
                     * Decodes a CommitmentResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CommitmentResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CommitmentResourceStatus;

                    /**
                     * Verifies a CommitmentResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CommitmentResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CommitmentResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CommitmentResourceStatus;

                    /**
                     * Creates a plain object from a CommitmentResourceStatus message. Also converts values to other types if specified.
                     * @param message CommitmentResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CommitmentResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CommitmentResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CommitmentResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CommitmentsScopedList. */
                interface ICommitmentsScopedList {

                    /** CommitmentsScopedList commitments */
                    commitments?: (google.cloud.compute.v1beta.ICommitment[]|null);

                    /** CommitmentsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a CommitmentsScopedList. */
                class CommitmentsScopedList implements ICommitmentsScopedList {

                    /**
                     * Constructs a new CommitmentsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICommitmentsScopedList);

                    /** CommitmentsScopedList commitments. */
                    public commitments: google.cloud.compute.v1beta.ICommitment[];

                    /** CommitmentsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new CommitmentsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CommitmentsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICommitmentsScopedList): google.cloud.compute.v1beta.CommitmentsScopedList;

                    /**
                     * Encodes the specified CommitmentsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.CommitmentsScopedList.verify|verify} messages.
                     * @param message CommitmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICommitmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CommitmentsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CommitmentsScopedList.verify|verify} messages.
                     * @param message CommitmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICommitmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CommitmentsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CommitmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CommitmentsScopedList;

                    /**
                     * Decodes a CommitmentsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CommitmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CommitmentsScopedList;

                    /**
                     * Verifies a CommitmentsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CommitmentsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CommitmentsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CommitmentsScopedList;

                    /**
                     * Creates a plain object from a CommitmentsScopedList message. Also converts values to other types if specified.
                     * @param message CommitmentsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CommitmentsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CommitmentsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CommitmentsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompositeHealthCheck. */
                interface ICompositeHealthCheck {

                    /** CompositeHealthCheck creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** CompositeHealthCheck description */
                    description?: (string|null);

                    /** CompositeHealthCheck fingerprint */
                    fingerprint?: (string|null);

                    /** CompositeHealthCheck healthDestination */
                    healthDestination?: (string|null);

                    /** CompositeHealthCheck healthSources */
                    healthSources?: (string[]|null);

                    /** CompositeHealthCheck id */
                    id?: (number|Long|string|null);

                    /** CompositeHealthCheck kind */
                    kind?: (string|null);

                    /** CompositeHealthCheck name */
                    name?: (string|null);

                    /** CompositeHealthCheck region */
                    region?: (string|null);

                    /** CompositeHealthCheck selfLink */
                    selfLink?: (string|null);

                    /** CompositeHealthCheck selfLinkWithId */
                    selfLinkWithId?: (string|null);
                }

                /** Represents a CompositeHealthCheck. */
                class CompositeHealthCheck implements ICompositeHealthCheck {

                    /**
                     * Constructs a new CompositeHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICompositeHealthCheck);

                    /** CompositeHealthCheck creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** CompositeHealthCheck description. */
                    public description?: (string|null);

                    /** CompositeHealthCheck fingerprint. */
                    public fingerprint?: (string|null);

                    /** CompositeHealthCheck healthDestination. */
                    public healthDestination?: (string|null);

                    /** CompositeHealthCheck healthSources. */
                    public healthSources: string[];

                    /** CompositeHealthCheck id. */
                    public id?: (number|Long|string|null);

                    /** CompositeHealthCheck kind. */
                    public kind?: (string|null);

                    /** CompositeHealthCheck name. */
                    public name?: (string|null);

                    /** CompositeHealthCheck region. */
                    public region?: (string|null);

                    /** CompositeHealthCheck selfLink. */
                    public selfLink?: (string|null);

                    /** CompositeHealthCheck selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /**
                     * Creates a new CompositeHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompositeHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICompositeHealthCheck): google.cloud.compute.v1beta.CompositeHealthCheck;

                    /**
                     * Encodes the specified CompositeHealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.CompositeHealthCheck.verify|verify} messages.
                     * @param message CompositeHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICompositeHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompositeHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CompositeHealthCheck.verify|verify} messages.
                     * @param message CompositeHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICompositeHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompositeHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompositeHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CompositeHealthCheck;

                    /**
                     * Decodes a CompositeHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompositeHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CompositeHealthCheck;

                    /**
                     * Verifies a CompositeHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompositeHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompositeHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CompositeHealthCheck;

                    /**
                     * Creates a plain object from a CompositeHealthCheck message. Also converts values to other types if specified.
                     * @param message CompositeHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CompositeHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompositeHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompositeHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompositeHealthCheckAggregatedList. */
                interface ICompositeHealthCheckAggregatedList {

                    /** CompositeHealthCheckAggregatedList id */
                    id?: (string|null);

                    /** CompositeHealthCheckAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ICompositeHealthChecksScopedList }|null);

                    /** CompositeHealthCheckAggregatedList kind */
                    kind?: (string|null);

                    /** CompositeHealthCheckAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CompositeHealthCheckAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** CompositeHealthCheckAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** CompositeHealthCheckAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a CompositeHealthCheckAggregatedList. */
                class CompositeHealthCheckAggregatedList implements ICompositeHealthCheckAggregatedList {

                    /**
                     * Constructs a new CompositeHealthCheckAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICompositeHealthCheckAggregatedList);

                    /** CompositeHealthCheckAggregatedList id. */
                    public id?: (string|null);

                    /** CompositeHealthCheckAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ICompositeHealthChecksScopedList };

                    /** CompositeHealthCheckAggregatedList kind. */
                    public kind?: (string|null);

                    /** CompositeHealthCheckAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CompositeHealthCheckAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** CompositeHealthCheckAggregatedList unreachables. */
                    public unreachables: string[];

                    /** CompositeHealthCheckAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new CompositeHealthCheckAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompositeHealthCheckAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICompositeHealthCheckAggregatedList): google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList;

                    /**
                     * Encodes the specified CompositeHealthCheckAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList.verify|verify} messages.
                     * @param message CompositeHealthCheckAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICompositeHealthCheckAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompositeHealthCheckAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList.verify|verify} messages.
                     * @param message CompositeHealthCheckAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICompositeHealthCheckAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompositeHealthCheckAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompositeHealthCheckAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList;

                    /**
                     * Decodes a CompositeHealthCheckAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompositeHealthCheckAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList;

                    /**
                     * Verifies a CompositeHealthCheckAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompositeHealthCheckAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompositeHealthCheckAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList;

                    /**
                     * Creates a plain object from a CompositeHealthCheckAggregatedList message. Also converts values to other types if specified.
                     * @param message CompositeHealthCheckAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompositeHealthCheckAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompositeHealthCheckAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompositeHealthCheckList. */
                interface ICompositeHealthCheckList {

                    /** CompositeHealthCheckList id */
                    id?: (string|null);

                    /** CompositeHealthCheckList items */
                    items?: (google.cloud.compute.v1beta.ICompositeHealthCheck[]|null);

                    /** CompositeHealthCheckList kind */
                    kind?: (string|null);

                    /** CompositeHealthCheckList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CompositeHealthCheckList selfLink */
                    selfLink?: (string|null);

                    /** CompositeHealthCheckList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a CompositeHealthCheckList. */
                class CompositeHealthCheckList implements ICompositeHealthCheckList {

                    /**
                     * Constructs a new CompositeHealthCheckList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICompositeHealthCheckList);

                    /** CompositeHealthCheckList id. */
                    public id?: (string|null);

                    /** CompositeHealthCheckList items. */
                    public items: google.cloud.compute.v1beta.ICompositeHealthCheck[];

                    /** CompositeHealthCheckList kind. */
                    public kind?: (string|null);

                    /** CompositeHealthCheckList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CompositeHealthCheckList selfLink. */
                    public selfLink?: (string|null);

                    /** CompositeHealthCheckList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new CompositeHealthCheckList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompositeHealthCheckList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICompositeHealthCheckList): google.cloud.compute.v1beta.CompositeHealthCheckList;

                    /**
                     * Encodes the specified CompositeHealthCheckList message. Does not implicitly {@link google.cloud.compute.v1beta.CompositeHealthCheckList.verify|verify} messages.
                     * @param message CompositeHealthCheckList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICompositeHealthCheckList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompositeHealthCheckList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CompositeHealthCheckList.verify|verify} messages.
                     * @param message CompositeHealthCheckList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICompositeHealthCheckList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompositeHealthCheckList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompositeHealthCheckList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CompositeHealthCheckList;

                    /**
                     * Decodes a CompositeHealthCheckList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompositeHealthCheckList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CompositeHealthCheckList;

                    /**
                     * Verifies a CompositeHealthCheckList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompositeHealthCheckList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompositeHealthCheckList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CompositeHealthCheckList;

                    /**
                     * Creates a plain object from a CompositeHealthCheckList message. Also converts values to other types if specified.
                     * @param message CompositeHealthCheckList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CompositeHealthCheckList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompositeHealthCheckList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompositeHealthCheckList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompositeHealthChecksScopedList. */
                interface ICompositeHealthChecksScopedList {

                    /** CompositeHealthChecksScopedList compositeHealthChecks */
                    compositeHealthChecks?: (google.cloud.compute.v1beta.ICompositeHealthCheck[]|null);

                    /** CompositeHealthChecksScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a CompositeHealthChecksScopedList. */
                class CompositeHealthChecksScopedList implements ICompositeHealthChecksScopedList {

                    /**
                     * Constructs a new CompositeHealthChecksScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICompositeHealthChecksScopedList);

                    /** CompositeHealthChecksScopedList compositeHealthChecks. */
                    public compositeHealthChecks: google.cloud.compute.v1beta.ICompositeHealthCheck[];

                    /** CompositeHealthChecksScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new CompositeHealthChecksScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompositeHealthChecksScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICompositeHealthChecksScopedList): google.cloud.compute.v1beta.CompositeHealthChecksScopedList;

                    /**
                     * Encodes the specified CompositeHealthChecksScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.CompositeHealthChecksScopedList.verify|verify} messages.
                     * @param message CompositeHealthChecksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICompositeHealthChecksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompositeHealthChecksScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CompositeHealthChecksScopedList.verify|verify} messages.
                     * @param message CompositeHealthChecksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICompositeHealthChecksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompositeHealthChecksScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompositeHealthChecksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CompositeHealthChecksScopedList;

                    /**
                     * Decodes a CompositeHealthChecksScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompositeHealthChecksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CompositeHealthChecksScopedList;

                    /**
                     * Verifies a CompositeHealthChecksScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompositeHealthChecksScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompositeHealthChecksScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CompositeHealthChecksScopedList;

                    /**
                     * Creates a plain object from a CompositeHealthChecksScopedList message. Also converts values to other types if specified.
                     * @param message CompositeHealthChecksScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CompositeHealthChecksScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompositeHealthChecksScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompositeHealthChecksScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConfidentialInstanceConfig. */
                interface IConfidentialInstanceConfig {

                    /** ConfidentialInstanceConfig confidentialInstanceType */
                    confidentialInstanceType?: (string|null);

                    /** ConfidentialInstanceConfig enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);
                }

                /** Represents a ConfidentialInstanceConfig. */
                class ConfidentialInstanceConfig implements IConfidentialInstanceConfig {

                    /**
                     * Constructs a new ConfidentialInstanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IConfidentialInstanceConfig);

                    /** ConfidentialInstanceConfig confidentialInstanceType. */
                    public confidentialInstanceType?: (string|null);

                    /** ConfidentialInstanceConfig enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /**
                     * Creates a new ConfidentialInstanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConfidentialInstanceConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IConfidentialInstanceConfig): google.cloud.compute.v1beta.ConfidentialInstanceConfig;

                    /**
                     * Encodes the specified ConfidentialInstanceConfig message. Does not implicitly {@link google.cloud.compute.v1beta.ConfidentialInstanceConfig.verify|verify} messages.
                     * @param message ConfidentialInstanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IConfidentialInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConfidentialInstanceConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ConfidentialInstanceConfig.verify|verify} messages.
                     * @param message ConfidentialInstanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IConfidentialInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConfidentialInstanceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConfidentialInstanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ConfidentialInstanceConfig;

                    /**
                     * Decodes a ConfidentialInstanceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConfidentialInstanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ConfidentialInstanceConfig;

                    /**
                     * Verifies a ConfidentialInstanceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConfidentialInstanceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConfidentialInstanceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ConfidentialInstanceConfig;

                    /**
                     * Creates a plain object from a ConfidentialInstanceConfig message. Also converts values to other types if specified.
                     * @param message ConfidentialInstanceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ConfidentialInstanceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConfidentialInstanceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConfidentialInstanceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ConfidentialInstanceConfig {

                    /** ConfidentialInstanceType enum. */
                    enum ConfidentialInstanceType {
                        UNDEFINED_CONFIDENTIAL_INSTANCE_TYPE = 0,
                        CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED = 115021829,
                        SEV = 81988,
                        SEV_SNP = 21753562,
                        TDX = 82920
                    }
                }

                /** Properties of a ConfigureAcceleratorTopologiesInstanceGroupManagerRequest. */
                interface IConfigureAcceleratorTopologiesInstanceGroupManagerRequest {

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest instanceGroupManagersConfigureAcceleratorTopologiesRequestResource */
                    instanceGroupManagersConfigureAcceleratorTopologiesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersConfigureAcceleratorTopologiesRequest|null);

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ConfigureAcceleratorTopologiesInstanceGroupManagerRequest. */
                class ConfigureAcceleratorTopologiesInstanceGroupManagerRequest implements IConfigureAcceleratorTopologiesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ConfigureAcceleratorTopologiesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IConfigureAcceleratorTopologiesInstanceGroupManagerRequest);

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest instanceGroupManagersConfigureAcceleratorTopologiesRequestResource. */
                    public instanceGroupManagersConfigureAcceleratorTopologiesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersConfigureAcceleratorTopologiesRequest|null);

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** ConfigureAcceleratorTopologiesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ConfigureAcceleratorTopologiesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConfigureAcceleratorTopologiesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IConfigureAcceleratorTopologiesInstanceGroupManagerRequest): google.cloud.compute.v1beta.ConfigureAcceleratorTopologiesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ConfigureAcceleratorTopologiesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IConfigureAcceleratorTopologiesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ConfigureAcceleratorTopologiesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IConfigureAcceleratorTopologiesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConfigureAcceleratorTopologiesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ConfigureAcceleratorTopologiesInstanceGroupManagerRequest;

                    /**
                     * Decodes a ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConfigureAcceleratorTopologiesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ConfigureAcceleratorTopologiesInstanceGroupManagerRequest;

                    /**
                     * Verifies a ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConfigureAcceleratorTopologiesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ConfigureAcceleratorTopologiesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ConfigureAcceleratorTopologiesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ConfigureAcceleratorTopologiesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConfigureAcceleratorTopologiesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConfigureAcceleratorTopologiesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConnectionDraining. */
                interface IConnectionDraining {

                    /** ConnectionDraining drainingTimeoutSec */
                    drainingTimeoutSec?: (number|null);
                }

                /** Represents a ConnectionDraining. */
                class ConnectionDraining implements IConnectionDraining {

                    /**
                     * Constructs a new ConnectionDraining.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IConnectionDraining);

                    /** ConnectionDraining drainingTimeoutSec. */
                    public drainingTimeoutSec?: (number|null);

                    /**
                     * Creates a new ConnectionDraining instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConnectionDraining instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IConnectionDraining): google.cloud.compute.v1beta.ConnectionDraining;

                    /**
                     * Encodes the specified ConnectionDraining message. Does not implicitly {@link google.cloud.compute.v1beta.ConnectionDraining.verify|verify} messages.
                     * @param message ConnectionDraining message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IConnectionDraining, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConnectionDraining message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ConnectionDraining.verify|verify} messages.
                     * @param message ConnectionDraining message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IConnectionDraining, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConnectionDraining message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConnectionDraining
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ConnectionDraining;

                    /**
                     * Decodes a ConnectionDraining message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConnectionDraining
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ConnectionDraining;

                    /**
                     * Verifies a ConnectionDraining message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConnectionDraining message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConnectionDraining
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ConnectionDraining;

                    /**
                     * Creates a plain object from a ConnectionDraining message. Also converts values to other types if specified.
                     * @param message ConnectionDraining
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ConnectionDraining, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConnectionDraining to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConnectionDraining
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConsistentHashLoadBalancerSettings. */
                interface IConsistentHashLoadBalancerSettings {

                    /** ConsistentHashLoadBalancerSettings httpCookie */
                    httpCookie?: (google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettingsHttpCookie|null);

                    /** ConsistentHashLoadBalancerSettings httpHeaderName */
                    httpHeaderName?: (string|null);

                    /** ConsistentHashLoadBalancerSettings minimumRingSize */
                    minimumRingSize?: (number|Long|string|null);
                }

                /** Represents a ConsistentHashLoadBalancerSettings. */
                class ConsistentHashLoadBalancerSettings implements IConsistentHashLoadBalancerSettings {

                    /**
                     * Constructs a new ConsistentHashLoadBalancerSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettings);

                    /** ConsistentHashLoadBalancerSettings httpCookie. */
                    public httpCookie?: (google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettingsHttpCookie|null);

                    /** ConsistentHashLoadBalancerSettings httpHeaderName. */
                    public httpHeaderName?: (string|null);

                    /** ConsistentHashLoadBalancerSettings minimumRingSize. */
                    public minimumRingSize?: (number|Long|string|null);

                    /**
                     * Creates a new ConsistentHashLoadBalancerSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConsistentHashLoadBalancerSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettings): google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettings;

                    /**
                     * Encodes the specified ConsistentHashLoadBalancerSettings message. Does not implicitly {@link google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettings.verify|verify} messages.
                     * @param message ConsistentHashLoadBalancerSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConsistentHashLoadBalancerSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettings.verify|verify} messages.
                     * @param message ConsistentHashLoadBalancerSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConsistentHashLoadBalancerSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConsistentHashLoadBalancerSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettings;

                    /**
                     * Decodes a ConsistentHashLoadBalancerSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConsistentHashLoadBalancerSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettings;

                    /**
                     * Verifies a ConsistentHashLoadBalancerSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConsistentHashLoadBalancerSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConsistentHashLoadBalancerSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettings;

                    /**
                     * Creates a plain object from a ConsistentHashLoadBalancerSettings message. Also converts values to other types if specified.
                     * @param message ConsistentHashLoadBalancerSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConsistentHashLoadBalancerSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConsistentHashLoadBalancerSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConsistentHashLoadBalancerSettingsHttpCookie. */
                interface IConsistentHashLoadBalancerSettingsHttpCookie {

                    /** ConsistentHashLoadBalancerSettingsHttpCookie name */
                    name?: (string|null);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie path */
                    path?: (string|null);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie ttl */
                    ttl?: (google.cloud.compute.v1beta.IDuration|null);
                }

                /** Represents a ConsistentHashLoadBalancerSettingsHttpCookie. */
                class ConsistentHashLoadBalancerSettingsHttpCookie implements IConsistentHashLoadBalancerSettingsHttpCookie {

                    /**
                     * Constructs a new ConsistentHashLoadBalancerSettingsHttpCookie.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettingsHttpCookie);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie name. */
                    public name?: (string|null);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie path. */
                    public path?: (string|null);

                    /** ConsistentHashLoadBalancerSettingsHttpCookie ttl. */
                    public ttl?: (google.cloud.compute.v1beta.IDuration|null);

                    /**
                     * Creates a new ConsistentHashLoadBalancerSettingsHttpCookie instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConsistentHashLoadBalancerSettingsHttpCookie instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettingsHttpCookie): google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettingsHttpCookie;

                    /**
                     * Encodes the specified ConsistentHashLoadBalancerSettingsHttpCookie message. Does not implicitly {@link google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettingsHttpCookie.verify|verify} messages.
                     * @param message ConsistentHashLoadBalancerSettingsHttpCookie message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettingsHttpCookie, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConsistentHashLoadBalancerSettingsHttpCookie message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettingsHttpCookie.verify|verify} messages.
                     * @param message ConsistentHashLoadBalancerSettingsHttpCookie message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IConsistentHashLoadBalancerSettingsHttpCookie, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConsistentHashLoadBalancerSettingsHttpCookie message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConsistentHashLoadBalancerSettingsHttpCookie
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettingsHttpCookie;

                    /**
                     * Decodes a ConsistentHashLoadBalancerSettingsHttpCookie message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConsistentHashLoadBalancerSettingsHttpCookie
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettingsHttpCookie;

                    /**
                     * Verifies a ConsistentHashLoadBalancerSettingsHttpCookie message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConsistentHashLoadBalancerSettingsHttpCookie message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConsistentHashLoadBalancerSettingsHttpCookie
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettingsHttpCookie;

                    /**
                     * Creates a plain object from a ConsistentHashLoadBalancerSettingsHttpCookie message. Also converts values to other types if specified.
                     * @param message ConsistentHashLoadBalancerSettingsHttpCookie
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ConsistentHashLoadBalancerSettingsHttpCookie, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConsistentHashLoadBalancerSettingsHttpCookie to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConsistentHashLoadBalancerSettingsHttpCookie
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CopyRulesOrganizationSecurityPolicyRequest. */
                interface ICopyRulesOrganizationSecurityPolicyRequest {

                    /** CopyRulesOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** CopyRulesOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** CopyRulesOrganizationSecurityPolicyRequest sourceSecurityPolicy */
                    sourceSecurityPolicy?: (string|null);
                }

                /** Represents a CopyRulesOrganizationSecurityPolicyRequest. */
                class CopyRulesOrganizationSecurityPolicyRequest implements ICopyRulesOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new CopyRulesOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICopyRulesOrganizationSecurityPolicyRequest);

                    /** CopyRulesOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** CopyRulesOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** CopyRulesOrganizationSecurityPolicyRequest sourceSecurityPolicy. */
                    public sourceSecurityPolicy?: (string|null);

                    /**
                     * Creates a new CopyRulesOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CopyRulesOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICopyRulesOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.CopyRulesOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified CopyRulesOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CopyRulesOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message CopyRulesOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICopyRulesOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CopyRulesOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CopyRulesOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message CopyRulesOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICopyRulesOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CopyRulesOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CopyRulesOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CopyRulesOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a CopyRulesOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CopyRulesOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CopyRulesOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a CopyRulesOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CopyRulesOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CopyRulesOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CopyRulesOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a CopyRulesOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message CopyRulesOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CopyRulesOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CopyRulesOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CopyRulesOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CorsPolicy. */
                interface ICorsPolicy {

                    /** CorsPolicy allowCredentials */
                    allowCredentials?: (boolean|null);

                    /** CorsPolicy allowHeaders */
                    allowHeaders?: (string[]|null);

                    /** CorsPolicy allowMethods */
                    allowMethods?: (string[]|null);

                    /** CorsPolicy allowOriginRegexes */
                    allowOriginRegexes?: (string[]|null);

                    /** CorsPolicy allowOrigins */
                    allowOrigins?: (string[]|null);

                    /** CorsPolicy disabled */
                    disabled?: (boolean|null);

                    /** CorsPolicy exposeHeaders */
                    exposeHeaders?: (string[]|null);

                    /** CorsPolicy maxAge */
                    maxAge?: (number|null);
                }

                /** Represents a CorsPolicy. */
                class CorsPolicy implements ICorsPolicy {

                    /**
                     * Constructs a new CorsPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICorsPolicy);

                    /** CorsPolicy allowCredentials. */
                    public allowCredentials?: (boolean|null);

                    /** CorsPolicy allowHeaders. */
                    public allowHeaders: string[];

                    /** CorsPolicy allowMethods. */
                    public allowMethods: string[];

                    /** CorsPolicy allowOriginRegexes. */
                    public allowOriginRegexes: string[];

                    /** CorsPolicy allowOrigins. */
                    public allowOrigins: string[];

                    /** CorsPolicy disabled. */
                    public disabled?: (boolean|null);

                    /** CorsPolicy exposeHeaders. */
                    public exposeHeaders: string[];

                    /** CorsPolicy maxAge. */
                    public maxAge?: (number|null);

                    /**
                     * Creates a new CorsPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CorsPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICorsPolicy): google.cloud.compute.v1beta.CorsPolicy;

                    /**
                     * Encodes the specified CorsPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.CorsPolicy.verify|verify} messages.
                     * @param message CorsPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICorsPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CorsPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CorsPolicy.verify|verify} messages.
                     * @param message CorsPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICorsPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CorsPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CorsPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CorsPolicy;

                    /**
                     * Decodes a CorsPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CorsPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CorsPolicy;

                    /**
                     * Verifies a CorsPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CorsPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CorsPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CorsPolicy;

                    /**
                     * Creates a plain object from a CorsPolicy message. Also converts values to other types if specified.
                     * @param message CorsPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CorsPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CorsPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CorsPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateInstancesInstanceGroupManagerRequest. */
                interface ICreateInstancesInstanceGroupManagerRequest {

                    /** CreateInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** CreateInstancesInstanceGroupManagerRequest instanceGroupManagersCreateInstancesRequestResource */
                    instanceGroupManagersCreateInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersCreateInstancesRequest|null);

                    /** CreateInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** CreateInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** CreateInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a CreateInstancesInstanceGroupManagerRequest. */
                class CreateInstancesInstanceGroupManagerRequest implements ICreateInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new CreateInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICreateInstancesInstanceGroupManagerRequest);

                    /** CreateInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** CreateInstancesInstanceGroupManagerRequest instanceGroupManagersCreateInstancesRequestResource. */
                    public instanceGroupManagersCreateInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersCreateInstancesRequest|null);

                    /** CreateInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** CreateInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** CreateInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new CreateInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICreateInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.CreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified CreateInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CreateInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message CreateInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICreateInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CreateInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message CreateInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICreateInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a CreateInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a CreateInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a CreateInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message CreateInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CreateInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateInstancesRegionInstanceGroupManagerRequest. */
                interface ICreateInstancesRegionInstanceGroupManagerRequest {

                    /** CreateInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersCreateInstancesRequestResource */
                    regionInstanceGroupManagersCreateInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersCreateInstancesRequest|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a CreateInstancesRegionInstanceGroupManagerRequest. */
                class CreateInstancesRegionInstanceGroupManagerRequest implements ICreateInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new CreateInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICreateInstancesRegionInstanceGroupManagerRequest);

                    /** CreateInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** CreateInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** CreateInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** CreateInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersCreateInstancesRequestResource. */
                    public regionInstanceGroupManagersCreateInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersCreateInstancesRequest|null);

                    /** CreateInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new CreateInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICreateInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.CreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified CreateInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CreateInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message CreateInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICreateInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CreateInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message CreateInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICreateInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a CreateInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a CreateInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a CreateInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message CreateInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CreateInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateMembersInterconnectGroupRequest. */
                interface ICreateMembersInterconnectGroupRequest {

                    /** CreateMembersInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** CreateMembersInterconnectGroupRequest interconnectGroupsCreateMembersRequestResource */
                    interconnectGroupsCreateMembersRequestResource?: (google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersRequest|null);

                    /** CreateMembersInterconnectGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a CreateMembersInterconnectGroupRequest. */
                class CreateMembersInterconnectGroupRequest implements ICreateMembersInterconnectGroupRequest {

                    /**
                     * Constructs a new CreateMembersInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICreateMembersInterconnectGroupRequest);

                    /** CreateMembersInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** CreateMembersInterconnectGroupRequest interconnectGroupsCreateMembersRequestResource. */
                    public interconnectGroupsCreateMembersRequestResource?: (google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersRequest|null);

                    /** CreateMembersInterconnectGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new CreateMembersInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateMembersInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICreateMembersInterconnectGroupRequest): google.cloud.compute.v1beta.CreateMembersInterconnectGroupRequest;

                    /**
                     * Encodes the specified CreateMembersInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CreateMembersInterconnectGroupRequest.verify|verify} messages.
                     * @param message CreateMembersInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICreateMembersInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateMembersInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CreateMembersInterconnectGroupRequest.verify|verify} messages.
                     * @param message CreateMembersInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICreateMembersInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateMembersInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateMembersInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CreateMembersInterconnectGroupRequest;

                    /**
                     * Decodes a CreateMembersInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateMembersInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CreateMembersInterconnectGroupRequest;

                    /**
                     * Verifies a CreateMembersInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateMembersInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateMembersInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CreateMembersInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a CreateMembersInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message CreateMembersInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CreateMembersInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateMembersInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateMembersInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateSnapshotDiskRequest. */
                interface ICreateSnapshotDiskRequest {

                    /** CreateSnapshotDiskRequest disk */
                    disk?: (string|null);

                    /** CreateSnapshotDiskRequest guestFlush */
                    guestFlush?: (boolean|null);

                    /** CreateSnapshotDiskRequest project */
                    project?: (string|null);

                    /** CreateSnapshotDiskRequest requestId */
                    requestId?: (string|null);

                    /** CreateSnapshotDiskRequest snapshotResource */
                    snapshotResource?: (google.cloud.compute.v1beta.ISnapshot|null);

                    /** CreateSnapshotDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a CreateSnapshotDiskRequest. */
                class CreateSnapshotDiskRequest implements ICreateSnapshotDiskRequest {

                    /**
                     * Constructs a new CreateSnapshotDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICreateSnapshotDiskRequest);

                    /** CreateSnapshotDiskRequest disk. */
                    public disk: string;

                    /** CreateSnapshotDiskRequest guestFlush. */
                    public guestFlush?: (boolean|null);

                    /** CreateSnapshotDiskRequest project. */
                    public project: string;

                    /** CreateSnapshotDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** CreateSnapshotDiskRequest snapshotResource. */
                    public snapshotResource?: (google.cloud.compute.v1beta.ISnapshot|null);

                    /** CreateSnapshotDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new CreateSnapshotDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateSnapshotDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICreateSnapshotDiskRequest): google.cloud.compute.v1beta.CreateSnapshotDiskRequest;

                    /**
                     * Encodes the specified CreateSnapshotDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CreateSnapshotDiskRequest.verify|verify} messages.
                     * @param message CreateSnapshotDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICreateSnapshotDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateSnapshotDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CreateSnapshotDiskRequest.verify|verify} messages.
                     * @param message CreateSnapshotDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICreateSnapshotDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateSnapshotDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateSnapshotDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CreateSnapshotDiskRequest;

                    /**
                     * Decodes a CreateSnapshotDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateSnapshotDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CreateSnapshotDiskRequest;

                    /**
                     * Verifies a CreateSnapshotDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateSnapshotDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateSnapshotDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CreateSnapshotDiskRequest;

                    /**
                     * Creates a plain object from a CreateSnapshotDiskRequest message. Also converts values to other types if specified.
                     * @param message CreateSnapshotDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CreateSnapshotDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateSnapshotDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateSnapshotDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateSnapshotRegionDiskRequest. */
                interface ICreateSnapshotRegionDiskRequest {

                    /** CreateSnapshotRegionDiskRequest disk */
                    disk?: (string|null);

                    /** CreateSnapshotRegionDiskRequest project */
                    project?: (string|null);

                    /** CreateSnapshotRegionDiskRequest region */
                    region?: (string|null);

                    /** CreateSnapshotRegionDiskRequest requestId */
                    requestId?: (string|null);

                    /** CreateSnapshotRegionDiskRequest snapshotResource */
                    snapshotResource?: (google.cloud.compute.v1beta.ISnapshot|null);
                }

                /** Represents a CreateSnapshotRegionDiskRequest. */
                class CreateSnapshotRegionDiskRequest implements ICreateSnapshotRegionDiskRequest {

                    /**
                     * Constructs a new CreateSnapshotRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICreateSnapshotRegionDiskRequest);

                    /** CreateSnapshotRegionDiskRequest disk. */
                    public disk: string;

                    /** CreateSnapshotRegionDiskRequest project. */
                    public project: string;

                    /** CreateSnapshotRegionDiskRequest region. */
                    public region: string;

                    /** CreateSnapshotRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** CreateSnapshotRegionDiskRequest snapshotResource. */
                    public snapshotResource?: (google.cloud.compute.v1beta.ISnapshot|null);

                    /**
                     * Creates a new CreateSnapshotRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateSnapshotRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICreateSnapshotRegionDiskRequest): google.cloud.compute.v1beta.CreateSnapshotRegionDiskRequest;

                    /**
                     * Encodes the specified CreateSnapshotRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.CreateSnapshotRegionDiskRequest.verify|verify} messages.
                     * @param message CreateSnapshotRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICreateSnapshotRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateSnapshotRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CreateSnapshotRegionDiskRequest.verify|verify} messages.
                     * @param message CreateSnapshotRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICreateSnapshotRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateSnapshotRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateSnapshotRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CreateSnapshotRegionDiskRequest;

                    /**
                     * Decodes a CreateSnapshotRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateSnapshotRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CreateSnapshotRegionDiskRequest;

                    /**
                     * Verifies a CreateSnapshotRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateSnapshotRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateSnapshotRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CreateSnapshotRegionDiskRequest;

                    /**
                     * Creates a plain object from a CreateSnapshotRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message CreateSnapshotRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CreateSnapshotRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateSnapshotRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateSnapshotRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CrossSiteNetwork. */
                interface ICrossSiteNetwork {

                    /** CrossSiteNetwork creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** CrossSiteNetwork description */
                    description?: (string|null);

                    /** CrossSiteNetwork id */
                    id?: (number|Long|string|null);

                    /** CrossSiteNetwork kind */
                    kind?: (string|null);

                    /** CrossSiteNetwork name */
                    name?: (string|null);

                    /** CrossSiteNetwork selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a CrossSiteNetwork. */
                class CrossSiteNetwork implements ICrossSiteNetwork {

                    /**
                     * Constructs a new CrossSiteNetwork.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICrossSiteNetwork);

                    /** CrossSiteNetwork creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** CrossSiteNetwork description. */
                    public description?: (string|null);

                    /** CrossSiteNetwork id. */
                    public id?: (number|Long|string|null);

                    /** CrossSiteNetwork kind. */
                    public kind?: (string|null);

                    /** CrossSiteNetwork name. */
                    public name?: (string|null);

                    /** CrossSiteNetwork selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new CrossSiteNetwork instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CrossSiteNetwork instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICrossSiteNetwork): google.cloud.compute.v1beta.CrossSiteNetwork;

                    /**
                     * Encodes the specified CrossSiteNetwork message. Does not implicitly {@link google.cloud.compute.v1beta.CrossSiteNetwork.verify|verify} messages.
                     * @param message CrossSiteNetwork message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICrossSiteNetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CrossSiteNetwork message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CrossSiteNetwork.verify|verify} messages.
                     * @param message CrossSiteNetwork message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICrossSiteNetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CrossSiteNetwork message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CrossSiteNetwork
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CrossSiteNetwork;

                    /**
                     * Decodes a CrossSiteNetwork message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CrossSiteNetwork
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CrossSiteNetwork;

                    /**
                     * Verifies a CrossSiteNetwork message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CrossSiteNetwork message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CrossSiteNetwork
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CrossSiteNetwork;

                    /**
                     * Creates a plain object from a CrossSiteNetwork message. Also converts values to other types if specified.
                     * @param message CrossSiteNetwork
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CrossSiteNetwork, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CrossSiteNetwork to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CrossSiteNetwork
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CrossSiteNetworkList. */
                interface ICrossSiteNetworkList {

                    /** CrossSiteNetworkList etag */
                    etag?: (string|null);

                    /** CrossSiteNetworkList id */
                    id?: (string|null);

                    /** CrossSiteNetworkList items */
                    items?: (google.cloud.compute.v1beta.ICrossSiteNetwork[]|null);

                    /** CrossSiteNetworkList kind */
                    kind?: (string|null);

                    /** CrossSiteNetworkList nextPageToken */
                    nextPageToken?: (string|null);

                    /** CrossSiteNetworkList selfLink */
                    selfLink?: (string|null);

                    /** CrossSiteNetworkList unreachables */
                    unreachables?: (string[]|null);

                    /** CrossSiteNetworkList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a CrossSiteNetworkList. */
                class CrossSiteNetworkList implements ICrossSiteNetworkList {

                    /**
                     * Constructs a new CrossSiteNetworkList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICrossSiteNetworkList);

                    /** CrossSiteNetworkList etag. */
                    public etag?: (string|null);

                    /** CrossSiteNetworkList id. */
                    public id?: (string|null);

                    /** CrossSiteNetworkList items. */
                    public items: google.cloud.compute.v1beta.ICrossSiteNetwork[];

                    /** CrossSiteNetworkList kind. */
                    public kind?: (string|null);

                    /** CrossSiteNetworkList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** CrossSiteNetworkList selfLink. */
                    public selfLink?: (string|null);

                    /** CrossSiteNetworkList unreachables. */
                    public unreachables: string[];

                    /** CrossSiteNetworkList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new CrossSiteNetworkList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CrossSiteNetworkList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICrossSiteNetworkList): google.cloud.compute.v1beta.CrossSiteNetworkList;

                    /**
                     * Encodes the specified CrossSiteNetworkList message. Does not implicitly {@link google.cloud.compute.v1beta.CrossSiteNetworkList.verify|verify} messages.
                     * @param message CrossSiteNetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICrossSiteNetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CrossSiteNetworkList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CrossSiteNetworkList.verify|verify} messages.
                     * @param message CrossSiteNetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICrossSiteNetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CrossSiteNetworkList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CrossSiteNetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CrossSiteNetworkList;

                    /**
                     * Decodes a CrossSiteNetworkList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CrossSiteNetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CrossSiteNetworkList;

                    /**
                     * Verifies a CrossSiteNetworkList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CrossSiteNetworkList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CrossSiteNetworkList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CrossSiteNetworkList;

                    /**
                     * Creates a plain object from a CrossSiteNetworkList message. Also converts values to other types if specified.
                     * @param message CrossSiteNetworkList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CrossSiteNetworkList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CrossSiteNetworkList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CrossSiteNetworkList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomErrorResponsePolicy. */
                interface ICustomErrorResponsePolicy {

                    /** CustomErrorResponsePolicy errorResponseRules */
                    errorResponseRules?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicyCustomErrorResponseRule[]|null);

                    /** CustomErrorResponsePolicy errorService */
                    errorService?: (string|null);
                }

                /** Represents a CustomErrorResponsePolicy. */
                class CustomErrorResponsePolicy implements ICustomErrorResponsePolicy {

                    /**
                     * Constructs a new CustomErrorResponsePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICustomErrorResponsePolicy);

                    /** CustomErrorResponsePolicy errorResponseRules. */
                    public errorResponseRules: google.cloud.compute.v1beta.ICustomErrorResponsePolicyCustomErrorResponseRule[];

                    /** CustomErrorResponsePolicy errorService. */
                    public errorService?: (string|null);

                    /**
                     * Creates a new CustomErrorResponsePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomErrorResponsePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICustomErrorResponsePolicy): google.cloud.compute.v1beta.CustomErrorResponsePolicy;

                    /**
                     * Encodes the specified CustomErrorResponsePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.CustomErrorResponsePolicy.verify|verify} messages.
                     * @param message CustomErrorResponsePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICustomErrorResponsePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomErrorResponsePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CustomErrorResponsePolicy.verify|verify} messages.
                     * @param message CustomErrorResponsePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICustomErrorResponsePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomErrorResponsePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomErrorResponsePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CustomErrorResponsePolicy;

                    /**
                     * Decodes a CustomErrorResponsePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomErrorResponsePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CustomErrorResponsePolicy;

                    /**
                     * Verifies a CustomErrorResponsePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomErrorResponsePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomErrorResponsePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CustomErrorResponsePolicy;

                    /**
                     * Creates a plain object from a CustomErrorResponsePolicy message. Also converts values to other types if specified.
                     * @param message CustomErrorResponsePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CustomErrorResponsePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomErrorResponsePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomErrorResponsePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomErrorResponsePolicyCustomErrorResponseRule. */
                interface ICustomErrorResponsePolicyCustomErrorResponseRule {

                    /** CustomErrorResponsePolicyCustomErrorResponseRule matchResponseCodes */
                    matchResponseCodes?: (string[]|null);

                    /** CustomErrorResponsePolicyCustomErrorResponseRule overrideResponseCode */
                    overrideResponseCode?: (number|null);

                    /** CustomErrorResponsePolicyCustomErrorResponseRule path */
                    path?: (string|null);
                }

                /** Represents a CustomErrorResponsePolicyCustomErrorResponseRule. */
                class CustomErrorResponsePolicyCustomErrorResponseRule implements ICustomErrorResponsePolicyCustomErrorResponseRule {

                    /**
                     * Constructs a new CustomErrorResponsePolicyCustomErrorResponseRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICustomErrorResponsePolicyCustomErrorResponseRule);

                    /** CustomErrorResponsePolicyCustomErrorResponseRule matchResponseCodes. */
                    public matchResponseCodes: string[];

                    /** CustomErrorResponsePolicyCustomErrorResponseRule overrideResponseCode. */
                    public overrideResponseCode?: (number|null);

                    /** CustomErrorResponsePolicyCustomErrorResponseRule path. */
                    public path?: (string|null);

                    /**
                     * Creates a new CustomErrorResponsePolicyCustomErrorResponseRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomErrorResponsePolicyCustomErrorResponseRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICustomErrorResponsePolicyCustomErrorResponseRule): google.cloud.compute.v1beta.CustomErrorResponsePolicyCustomErrorResponseRule;

                    /**
                     * Encodes the specified CustomErrorResponsePolicyCustomErrorResponseRule message. Does not implicitly {@link google.cloud.compute.v1beta.CustomErrorResponsePolicyCustomErrorResponseRule.verify|verify} messages.
                     * @param message CustomErrorResponsePolicyCustomErrorResponseRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICustomErrorResponsePolicyCustomErrorResponseRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomErrorResponsePolicyCustomErrorResponseRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CustomErrorResponsePolicyCustomErrorResponseRule.verify|verify} messages.
                     * @param message CustomErrorResponsePolicyCustomErrorResponseRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICustomErrorResponsePolicyCustomErrorResponseRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomErrorResponsePolicyCustomErrorResponseRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomErrorResponsePolicyCustomErrorResponseRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CustomErrorResponsePolicyCustomErrorResponseRule;

                    /**
                     * Decodes a CustomErrorResponsePolicyCustomErrorResponseRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomErrorResponsePolicyCustomErrorResponseRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CustomErrorResponsePolicyCustomErrorResponseRule;

                    /**
                     * Verifies a CustomErrorResponsePolicyCustomErrorResponseRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomErrorResponsePolicyCustomErrorResponseRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomErrorResponsePolicyCustomErrorResponseRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CustomErrorResponsePolicyCustomErrorResponseRule;

                    /**
                     * Creates a plain object from a CustomErrorResponsePolicyCustomErrorResponseRule message. Also converts values to other types if specified.
                     * @param message CustomErrorResponsePolicyCustomErrorResponseRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CustomErrorResponsePolicyCustomErrorResponseRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomErrorResponsePolicyCustomErrorResponseRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomErrorResponsePolicyCustomErrorResponseRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomerEncryptionKey. */
                interface ICustomerEncryptionKey {

                    /** CustomerEncryptionKey kmsKeyName */
                    kmsKeyName?: (string|null);

                    /** CustomerEncryptionKey kmsKeyServiceAccount */
                    kmsKeyServiceAccount?: (string|null);

                    /** CustomerEncryptionKey rawKey */
                    rawKey?: (string|null);

                    /** CustomerEncryptionKey rsaEncryptedKey */
                    rsaEncryptedKey?: (string|null);

                    /** CustomerEncryptionKey sha256 */
                    sha256?: (string|null);
                }

                /** Represents a CustomerEncryptionKey. */
                class CustomerEncryptionKey implements ICustomerEncryptionKey {

                    /**
                     * Constructs a new CustomerEncryptionKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICustomerEncryptionKey);

                    /** CustomerEncryptionKey kmsKeyName. */
                    public kmsKeyName?: (string|null);

                    /** CustomerEncryptionKey kmsKeyServiceAccount. */
                    public kmsKeyServiceAccount?: (string|null);

                    /** CustomerEncryptionKey rawKey. */
                    public rawKey?: (string|null);

                    /** CustomerEncryptionKey rsaEncryptedKey. */
                    public rsaEncryptedKey?: (string|null);

                    /** CustomerEncryptionKey sha256. */
                    public sha256?: (string|null);

                    /**
                     * Creates a new CustomerEncryptionKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomerEncryptionKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICustomerEncryptionKey): google.cloud.compute.v1beta.CustomerEncryptionKey;

                    /**
                     * Encodes the specified CustomerEncryptionKey message. Does not implicitly {@link google.cloud.compute.v1beta.CustomerEncryptionKey.verify|verify} messages.
                     * @param message CustomerEncryptionKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICustomerEncryptionKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomerEncryptionKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CustomerEncryptionKey.verify|verify} messages.
                     * @param message CustomerEncryptionKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICustomerEncryptionKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomerEncryptionKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomerEncryptionKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CustomerEncryptionKey;

                    /**
                     * Decodes a CustomerEncryptionKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomerEncryptionKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CustomerEncryptionKey;

                    /**
                     * Verifies a CustomerEncryptionKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomerEncryptionKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomerEncryptionKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CustomerEncryptionKey;

                    /**
                     * Creates a plain object from a CustomerEncryptionKey message. Also converts values to other types if specified.
                     * @param message CustomerEncryptionKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CustomerEncryptionKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomerEncryptionKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomerEncryptionKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomerEncryptionKeyProtectedDisk. */
                interface ICustomerEncryptionKeyProtectedDisk {

                    /** CustomerEncryptionKeyProtectedDisk diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** CustomerEncryptionKeyProtectedDisk source */
                    source?: (string|null);
                }

                /** Represents a CustomerEncryptionKeyProtectedDisk. */
                class CustomerEncryptionKeyProtectedDisk implements ICustomerEncryptionKeyProtectedDisk {

                    /**
                     * Constructs a new CustomerEncryptionKeyProtectedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ICustomerEncryptionKeyProtectedDisk);

                    /** CustomerEncryptionKeyProtectedDisk diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** CustomerEncryptionKeyProtectedDisk source. */
                    public source?: (string|null);

                    /**
                     * Creates a new CustomerEncryptionKeyProtectedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomerEncryptionKeyProtectedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ICustomerEncryptionKeyProtectedDisk): google.cloud.compute.v1beta.CustomerEncryptionKeyProtectedDisk;

                    /**
                     * Encodes the specified CustomerEncryptionKeyProtectedDisk message. Does not implicitly {@link google.cloud.compute.v1beta.CustomerEncryptionKeyProtectedDisk.verify|verify} messages.
                     * @param message CustomerEncryptionKeyProtectedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ICustomerEncryptionKeyProtectedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomerEncryptionKeyProtectedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.CustomerEncryptionKeyProtectedDisk.verify|verify} messages.
                     * @param message CustomerEncryptionKeyProtectedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ICustomerEncryptionKeyProtectedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomerEncryptionKeyProtectedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomerEncryptionKeyProtectedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.CustomerEncryptionKeyProtectedDisk;

                    /**
                     * Decodes a CustomerEncryptionKeyProtectedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomerEncryptionKeyProtectedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.CustomerEncryptionKeyProtectedDisk;

                    /**
                     * Verifies a CustomerEncryptionKeyProtectedDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomerEncryptionKeyProtectedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomerEncryptionKeyProtectedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.CustomerEncryptionKeyProtectedDisk;

                    /**
                     * Creates a plain object from a CustomerEncryptionKeyProtectedDisk message. Also converts values to other types if specified.
                     * @param message CustomerEncryptionKeyProtectedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.CustomerEncryptionKeyProtectedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomerEncryptionKeyProtectedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomerEncryptionKeyProtectedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Data. */
                interface IData {

                    /** Data key */
                    key?: (string|null);

                    /** Data value */
                    value?: (string|null);
                }

                /** Represents a Data. */
                class Data implements IData {

                    /**
                     * Constructs a new Data.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IData);

                    /** Data key. */
                    public key?: (string|null);

                    /** Data value. */
                    public value?: (string|null);

                    /**
                     * Creates a new Data instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Data instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IData): google.cloud.compute.v1beta.Data;

                    /**
                     * Encodes the specified Data message. Does not implicitly {@link google.cloud.compute.v1beta.Data.verify|verify} messages.
                     * @param message Data message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Data message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Data.verify|verify} messages.
                     * @param message Data message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Data message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Data
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Data;

                    /**
                     * Decodes a Data message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Data
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Data;

                    /**
                     * Verifies a Data message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Data message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Data
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Data;

                    /**
                     * Creates a plain object from a Data message. Also converts values to other types if specified.
                     * @param message Data
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Data, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Data to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Data
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Date. */
                interface IDate {

                    /** Date day */
                    day?: (number|null);

                    /** Date month */
                    month?: (number|null);

                    /** Date year */
                    year?: (number|null);
                }

                /** Represents a Date. */
                class Date implements IDate {

                    /**
                     * Constructs a new Date.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDate);

                    /** Date day. */
                    public day?: (number|null);

                    /** Date month. */
                    public month?: (number|null);

                    /** Date year. */
                    public year?: (number|null);

                    /**
                     * Creates a new Date instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Date instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDate): google.cloud.compute.v1beta.Date;

                    /**
                     * Encodes the specified Date message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IDate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Date message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 DeleteAccessConfigInstanceRequest. */
                interface IDeleteAccessConfigInstanceRequest {

                    /** DeleteAccessConfigInstanceRequest accessConfig */
                    accessConfig?: (string|null);

                    /** DeleteAccessConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** DeleteAccessConfigInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** DeleteAccessConfigInstanceRequest project */
                    project?: (string|null);

                    /** DeleteAccessConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DeleteAccessConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteAccessConfigInstanceRequest. */
                class DeleteAccessConfigInstanceRequest implements IDeleteAccessConfigInstanceRequest {

                    /**
                     * Constructs a new DeleteAccessConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest);

                    /** DeleteAccessConfigInstanceRequest accessConfig. */
                    public accessConfig: string;

                    /** DeleteAccessConfigInstanceRequest instance. */
                    public instance: string;

                    /** DeleteAccessConfigInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** DeleteAccessConfigInstanceRequest project. */
                    public project: string;

                    /** DeleteAccessConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteAccessConfigInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteAccessConfigInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAccessConfigInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest): google.cloud.compute.v1beta.DeleteAccessConfigInstanceRequest;

                    /**
                     * Encodes the specified DeleteAccessConfigInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message DeleteAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAccessConfigInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message DeleteAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAccessConfigInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteAccessConfigInstanceRequest;

                    /**
                     * Decodes a DeleteAccessConfigInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteAccessConfigInstanceRequest;

                    /**
                     * Verifies a DeleteAccessConfigInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteAccessConfigInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAccessConfigInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteAccessConfigInstanceRequest;

                    /**
                     * Creates a plain object from a DeleteAccessConfigInstanceRequest message. Also converts values to other types if specified.
                     * @param message DeleteAccessConfigInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteAccessConfigInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAccessConfigInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAccessConfigInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteAddressRequest. */
                interface IDeleteAddressRequest {

                    /** DeleteAddressRequest address */
                    address?: (string|null);

                    /** DeleteAddressRequest project */
                    project?: (string|null);

                    /** DeleteAddressRequest region */
                    region?: (string|null);

                    /** DeleteAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteAddressRequest. */
                class DeleteAddressRequest implements IDeleteAddressRequest {

                    /**
                     * Constructs a new DeleteAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteAddressRequest);

                    /** DeleteAddressRequest address. */
                    public address: string;

                    /** DeleteAddressRequest project. */
                    public project: string;

                    /** DeleteAddressRequest region. */
                    public region: string;

                    /** DeleteAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteAddressRequest): google.cloud.compute.v1beta.DeleteAddressRequest;

                    /**
                     * Encodes the specified DeleteAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteAddressRequest.verify|verify} messages.
                     * @param message DeleteAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteAddressRequest.verify|verify} messages.
                     * @param message DeleteAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteAddressRequest;

                    /**
                     * Decodes a DeleteAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteAddressRequest;

                    /**
                     * Verifies a DeleteAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteAddressRequest;

                    /**
                     * Creates a plain object from a DeleteAddressRequest message. Also converts values to other types if specified.
                     * @param message DeleteAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteAutoscalerRequest. */
                interface IDeleteAutoscalerRequest {

                    /** DeleteAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** DeleteAutoscalerRequest project */
                    project?: (string|null);

                    /** DeleteAutoscalerRequest requestId */
                    requestId?: (string|null);

                    /** DeleteAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteAutoscalerRequest. */
                class DeleteAutoscalerRequest implements IDeleteAutoscalerRequest {

                    /**
                     * Constructs a new DeleteAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteAutoscalerRequest);

                    /** DeleteAutoscalerRequest autoscaler. */
                    public autoscaler: string;

                    /** DeleteAutoscalerRequest project. */
                    public project: string;

                    /** DeleteAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteAutoscalerRequest): google.cloud.compute.v1beta.DeleteAutoscalerRequest;

                    /**
                     * Encodes the specified DeleteAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteAutoscalerRequest.verify|verify} messages.
                     * @param message DeleteAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteAutoscalerRequest.verify|verify} messages.
                     * @param message DeleteAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteAutoscalerRequest;

                    /**
                     * Decodes a DeleteAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteAutoscalerRequest;

                    /**
                     * Verifies a DeleteAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteAutoscalerRequest;

                    /**
                     * Creates a plain object from a DeleteAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message DeleteAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteBackendBucketRequest. */
                interface IDeleteBackendBucketRequest {

                    /** DeleteBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** DeleteBackendBucketRequest project */
                    project?: (string|null);

                    /** DeleteBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteBackendBucketRequest. */
                class DeleteBackendBucketRequest implements IDeleteBackendBucketRequest {

                    /**
                     * Constructs a new DeleteBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteBackendBucketRequest);

                    /** DeleteBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** DeleteBackendBucketRequest project. */
                    public project: string;

                    /** DeleteBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteBackendBucketRequest): google.cloud.compute.v1beta.DeleteBackendBucketRequest;

                    /**
                     * Encodes the specified DeleteBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteBackendBucketRequest;

                    /**
                     * Decodes a DeleteBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteBackendBucketRequest;

                    /**
                     * Verifies a DeleteBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteBackendBucketRequest;

                    /**
                     * Creates a plain object from a DeleteBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message DeleteBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteBackendServiceRequest. */
                interface IDeleteBackendServiceRequest {

                    /** DeleteBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** DeleteBackendServiceRequest project */
                    project?: (string|null);

                    /** DeleteBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteBackendServiceRequest. */
                class DeleteBackendServiceRequest implements IDeleteBackendServiceRequest {

                    /**
                     * Constructs a new DeleteBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteBackendServiceRequest);

                    /** DeleteBackendServiceRequest backendService. */
                    public backendService: string;

                    /** DeleteBackendServiceRequest project. */
                    public project: string;

                    /** DeleteBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteBackendServiceRequest): google.cloud.compute.v1beta.DeleteBackendServiceRequest;

                    /**
                     * Encodes the specified DeleteBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteBackendServiceRequest;

                    /**
                     * Decodes a DeleteBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteBackendServiceRequest;

                    /**
                     * Verifies a DeleteBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteBackendServiceRequest;

                    /**
                     * Creates a plain object from a DeleteBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteCrossSiteNetworkRequest. */
                interface IDeleteCrossSiteNetworkRequest {

                    /** DeleteCrossSiteNetworkRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** DeleteCrossSiteNetworkRequest project */
                    project?: (string|null);

                    /** DeleteCrossSiteNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteCrossSiteNetworkRequest. */
                class DeleteCrossSiteNetworkRequest implements IDeleteCrossSiteNetworkRequest {

                    /**
                     * Constructs a new DeleteCrossSiteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteCrossSiteNetworkRequest);

                    /** DeleteCrossSiteNetworkRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** DeleteCrossSiteNetworkRequest project. */
                    public project: string;

                    /** DeleteCrossSiteNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteCrossSiteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteCrossSiteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteCrossSiteNetworkRequest): google.cloud.compute.v1beta.DeleteCrossSiteNetworkRequest;

                    /**
                     * Encodes the specified DeleteCrossSiteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message DeleteCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteCrossSiteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message DeleteCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteCrossSiteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteCrossSiteNetworkRequest;

                    /**
                     * Decodes a DeleteCrossSiteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteCrossSiteNetworkRequest;

                    /**
                     * Verifies a DeleteCrossSiteNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteCrossSiteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteCrossSiteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteCrossSiteNetworkRequest;

                    /**
                     * Creates a plain object from a DeleteCrossSiteNetworkRequest message. Also converts values to other types if specified.
                     * @param message DeleteCrossSiteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteCrossSiteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteCrossSiteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteCrossSiteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteDiskRequest. */
                interface IDeleteDiskRequest {

                    /** DeleteDiskRequest disk */
                    disk?: (string|null);

                    /** DeleteDiskRequest project */
                    project?: (string|null);

                    /** DeleteDiskRequest requestId */
                    requestId?: (string|null);

                    /** DeleteDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteDiskRequest. */
                class DeleteDiskRequest implements IDeleteDiskRequest {

                    /**
                     * Constructs a new DeleteDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteDiskRequest);

                    /** DeleteDiskRequest disk. */
                    public disk: string;

                    /** DeleteDiskRequest project. */
                    public project: string;

                    /** DeleteDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteDiskRequest): google.cloud.compute.v1beta.DeleteDiskRequest;

                    /**
                     * Encodes the specified DeleteDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteDiskRequest.verify|verify} messages.
                     * @param message DeleteDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteDiskRequest.verify|verify} messages.
                     * @param message DeleteDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteDiskRequest;

                    /**
                     * Decodes a DeleteDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteDiskRequest;

                    /**
                     * Verifies a DeleteDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteDiskRequest;

                    /**
                     * Creates a plain object from a DeleteDiskRequest message. Also converts values to other types if specified.
                     * @param message DeleteDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteExternalVpnGatewayRequest. */
                interface IDeleteExternalVpnGatewayRequest {

                    /** DeleteExternalVpnGatewayRequest externalVpnGateway */
                    externalVpnGateway?: (string|null);

                    /** DeleteExternalVpnGatewayRequest project */
                    project?: (string|null);

                    /** DeleteExternalVpnGatewayRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteExternalVpnGatewayRequest. */
                class DeleteExternalVpnGatewayRequest implements IDeleteExternalVpnGatewayRequest {

                    /**
                     * Constructs a new DeleteExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteExternalVpnGatewayRequest);

                    /** DeleteExternalVpnGatewayRequest externalVpnGateway. */
                    public externalVpnGateway: string;

                    /** DeleteExternalVpnGatewayRequest project. */
                    public project: string;

                    /** DeleteExternalVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteExternalVpnGatewayRequest): google.cloud.compute.v1beta.DeleteExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified DeleteExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteExternalVpnGatewayRequest;

                    /**
                     * Decodes a DeleteExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteExternalVpnGatewayRequest;

                    /**
                     * Verifies a DeleteExternalVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from a DeleteExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message DeleteExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteFirewallPolicyRequest. */
                interface IDeleteFirewallPolicyRequest {

                    /** DeleteFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** DeleteFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteFirewallPolicyRequest. */
                class DeleteFirewallPolicyRequest implements IDeleteFirewallPolicyRequest {

                    /**
                     * Constructs a new DeleteFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteFirewallPolicyRequest);

                    /** DeleteFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** DeleteFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteFirewallPolicyRequest): google.cloud.compute.v1beta.DeleteFirewallPolicyRequest;

                    /**
                     * Encodes the specified DeleteFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteFirewallPolicyRequest;

                    /**
                     * Decodes a DeleteFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteFirewallPolicyRequest;

                    /**
                     * Verifies a DeleteFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteFirewallRequest. */
                interface IDeleteFirewallRequest {

                    /** DeleteFirewallRequest firewall */
                    firewall?: (string|null);

                    /** DeleteFirewallRequest project */
                    project?: (string|null);

                    /** DeleteFirewallRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteFirewallRequest. */
                class DeleteFirewallRequest implements IDeleteFirewallRequest {

                    /**
                     * Constructs a new DeleteFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteFirewallRequest);

                    /** DeleteFirewallRequest firewall. */
                    public firewall: string;

                    /** DeleteFirewallRequest project. */
                    public project: string;

                    /** DeleteFirewallRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteFirewallRequest): google.cloud.compute.v1beta.DeleteFirewallRequest;

                    /**
                     * Encodes the specified DeleteFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteFirewallRequest.verify|verify} messages.
                     * @param message DeleteFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteFirewallRequest.verify|verify} messages.
                     * @param message DeleteFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteFirewallRequest;

                    /**
                     * Decodes a DeleteFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteFirewallRequest;

                    /**
                     * Verifies a DeleteFirewallRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteFirewallRequest;

                    /**
                     * Creates a plain object from a DeleteFirewallRequest message. Also converts values to other types if specified.
                     * @param message DeleteFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteForwardingRuleRequest. */
                interface IDeleteForwardingRuleRequest {

                    /** DeleteForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** DeleteForwardingRuleRequest project */
                    project?: (string|null);

                    /** DeleteForwardingRuleRequest region */
                    region?: (string|null);

                    /** DeleteForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteForwardingRuleRequest. */
                class DeleteForwardingRuleRequest implements IDeleteForwardingRuleRequest {

                    /**
                     * Constructs a new DeleteForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteForwardingRuleRequest);

                    /** DeleteForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** DeleteForwardingRuleRequest project. */
                    public project: string;

                    /** DeleteForwardingRuleRequest region. */
                    public region: string;

                    /** DeleteForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteForwardingRuleRequest): google.cloud.compute.v1beta.DeleteForwardingRuleRequest;

                    /**
                     * Encodes the specified DeleteForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteForwardingRuleRequest.verify|verify} messages.
                     * @param message DeleteForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteForwardingRuleRequest.verify|verify} messages.
                     * @param message DeleteForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteForwardingRuleRequest;

                    /**
                     * Decodes a DeleteForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteForwardingRuleRequest;

                    /**
                     * Verifies a DeleteForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteForwardingRuleRequest;

                    /**
                     * Creates a plain object from a DeleteForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message DeleteForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteFutureReservationRequest. */
                interface IDeleteFutureReservationRequest {

                    /** DeleteFutureReservationRequest futureReservation */
                    futureReservation?: (string|null);

                    /** DeleteFutureReservationRequest project */
                    project?: (string|null);

                    /** DeleteFutureReservationRequest requestId */
                    requestId?: (string|null);

                    /** DeleteFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteFutureReservationRequest. */
                class DeleteFutureReservationRequest implements IDeleteFutureReservationRequest {

                    /**
                     * Constructs a new DeleteFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteFutureReservationRequest);

                    /** DeleteFutureReservationRequest futureReservation. */
                    public futureReservation: string;

                    /** DeleteFutureReservationRequest project. */
                    public project: string;

                    /** DeleteFutureReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteFutureReservationRequest): google.cloud.compute.v1beta.DeleteFutureReservationRequest;

                    /**
                     * Encodes the specified DeleteFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteFutureReservationRequest.verify|verify} messages.
                     * @param message DeleteFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteFutureReservationRequest.verify|verify} messages.
                     * @param message DeleteFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteFutureReservationRequest;

                    /**
                     * Decodes a DeleteFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteFutureReservationRequest;

                    /**
                     * Verifies a DeleteFutureReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteFutureReservationRequest;

                    /**
                     * Creates a plain object from a DeleteFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message DeleteFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalAddressRequest. */
                interface IDeleteGlobalAddressRequest {

                    /** DeleteGlobalAddressRequest address */
                    address?: (string|null);

                    /** DeleteGlobalAddressRequest project */
                    project?: (string|null);

                    /** DeleteGlobalAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalAddressRequest. */
                class DeleteGlobalAddressRequest implements IDeleteGlobalAddressRequest {

                    /**
                     * Constructs a new DeleteGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalAddressRequest);

                    /** DeleteGlobalAddressRequest address. */
                    public address: string;

                    /** DeleteGlobalAddressRequest project. */
                    public project: string;

                    /** DeleteGlobalAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalAddressRequest): google.cloud.compute.v1beta.DeleteGlobalAddressRequest;

                    /**
                     * Encodes the specified DeleteGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalAddressRequest.verify|verify} messages.
                     * @param message DeleteGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalAddressRequest.verify|verify} messages.
                     * @param message DeleteGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalAddressRequest;

                    /**
                     * Decodes a DeleteGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalAddressRequest;

                    /**
                     * Verifies a DeleteGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalAddressRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalForwardingRuleRequest. */
                interface IDeleteGlobalForwardingRuleRequest {

                    /** DeleteGlobalForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** DeleteGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** DeleteGlobalForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalForwardingRuleRequest. */
                class DeleteGlobalForwardingRuleRequest implements IDeleteGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new DeleteGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalForwardingRuleRequest);

                    /** DeleteGlobalForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** DeleteGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** DeleteGlobalForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalForwardingRuleRequest): google.cloud.compute.v1beta.DeleteGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified DeleteGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message DeleteGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message DeleteGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalForwardingRuleRequest;

                    /**
                     * Decodes a DeleteGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalForwardingRuleRequest;

                    /**
                     * Verifies a DeleteGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalNetworkEndpointGroupRequest. */
                interface IDeleteGlobalNetworkEndpointGroupRequest {

                    /** DeleteGlobalNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DeleteGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DeleteGlobalNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalNetworkEndpointGroupRequest. */
                class DeleteGlobalNetworkEndpointGroupRequest implements IDeleteGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DeleteGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalNetworkEndpointGroupRequest);

                    /** DeleteGlobalNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DeleteGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DeleteGlobalNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1beta.DeleteGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DeleteGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DeleteGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DeleteGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalOperationRequest. */
                interface IDeleteGlobalOperationRequest {

                    /** DeleteGlobalOperationRequest operation */
                    operation?: (string|null);

                    /** DeleteGlobalOperationRequest project */
                    project?: (string|null);
                }

                /** Represents a DeleteGlobalOperationRequest. */
                class DeleteGlobalOperationRequest implements IDeleteGlobalOperationRequest {

                    /**
                     * Constructs a new DeleteGlobalOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalOperationRequest);

                    /** DeleteGlobalOperationRequest operation. */
                    public operation: string;

                    /** DeleteGlobalOperationRequest project. */
                    public project: string;

                    /**
                     * Creates a new DeleteGlobalOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalOperationRequest): google.cloud.compute.v1beta.DeleteGlobalOperationRequest;

                    /**
                     * Encodes the specified DeleteGlobalOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalOperationRequest.verify|verify} messages.
                     * @param message DeleteGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalOperationRequest.verify|verify} messages.
                     * @param message DeleteGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalOperationRequest;

                    /**
                     * Decodes a DeleteGlobalOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalOperationRequest;

                    /**
                     * Verifies a DeleteGlobalOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalOperationRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalOperationRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalOperationResponse. */
                interface IDeleteGlobalOperationResponse {
                }

                /** Represents a DeleteGlobalOperationResponse. */
                class DeleteGlobalOperationResponse implements IDeleteGlobalOperationResponse {

                    /**
                     * Constructs a new DeleteGlobalOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalOperationResponse);

                    /**
                     * Creates a new DeleteGlobalOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalOperationResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalOperationResponse): google.cloud.compute.v1beta.DeleteGlobalOperationResponse;

                    /**
                     * Encodes the specified DeleteGlobalOperationResponse message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalOperationResponse.verify|verify} messages.
                     * @param message DeleteGlobalOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalOperationResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalOperationResponse.verify|verify} messages.
                     * @param message DeleteGlobalOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalOperationResponse;

                    /**
                     * Decodes a DeleteGlobalOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalOperationResponse;

                    /**
                     * Verifies a DeleteGlobalOperationResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalOperationResponse;

                    /**
                     * Creates a plain object from a DeleteGlobalOperationResponse message. Also converts values to other types if specified.
                     * @param message DeleteGlobalOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalOrganizationOperationRequest. */
                interface IDeleteGlobalOrganizationOperationRequest {

                    /** DeleteGlobalOrganizationOperationRequest operation */
                    operation?: (string|null);

                    /** DeleteGlobalOrganizationOperationRequest parentId */
                    parentId?: (string|null);
                }

                /** Represents a DeleteGlobalOrganizationOperationRequest. */
                class DeleteGlobalOrganizationOperationRequest implements IDeleteGlobalOrganizationOperationRequest {

                    /**
                     * Constructs a new DeleteGlobalOrganizationOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationRequest);

                    /** DeleteGlobalOrganizationOperationRequest operation. */
                    public operation: string;

                    /** DeleteGlobalOrganizationOperationRequest parentId. */
                    public parentId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalOrganizationOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalOrganizationOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationRequest): google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationRequest;

                    /**
                     * Encodes the specified DeleteGlobalOrganizationOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationRequest.verify|verify} messages.
                     * @param message DeleteGlobalOrganizationOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalOrganizationOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationRequest.verify|verify} messages.
                     * @param message DeleteGlobalOrganizationOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalOrganizationOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalOrganizationOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationRequest;

                    /**
                     * Decodes a DeleteGlobalOrganizationOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalOrganizationOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationRequest;

                    /**
                     * Verifies a DeleteGlobalOrganizationOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalOrganizationOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalOrganizationOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalOrganizationOperationRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalOrganizationOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalOrganizationOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalOrganizationOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalOrganizationOperationResponse. */
                interface IDeleteGlobalOrganizationOperationResponse {
                }

                /** Represents a DeleteGlobalOrganizationOperationResponse. */
                class DeleteGlobalOrganizationOperationResponse implements IDeleteGlobalOrganizationOperationResponse {

                    /**
                     * Constructs a new DeleteGlobalOrganizationOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationResponse);

                    /**
                     * Creates a new DeleteGlobalOrganizationOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalOrganizationOperationResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationResponse): google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse;

                    /**
                     * Encodes the specified DeleteGlobalOrganizationOperationResponse message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse.verify|verify} messages.
                     * @param message DeleteGlobalOrganizationOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalOrganizationOperationResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse.verify|verify} messages.
                     * @param message DeleteGlobalOrganizationOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalOrganizationOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalOrganizationOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse;

                    /**
                     * Decodes a DeleteGlobalOrganizationOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalOrganizationOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse;

                    /**
                     * Verifies a DeleteGlobalOrganizationOperationResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalOrganizationOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalOrganizationOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse;

                    /**
                     * Creates a plain object from a DeleteGlobalOrganizationOperationResponse message. Also converts values to other types if specified.
                     * @param message DeleteGlobalOrganizationOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalOrganizationOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalOrganizationOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalPublicDelegatedPrefixeRequest. */
                interface IDeleteGlobalPublicDelegatedPrefixeRequest {

                    /** DeleteGlobalPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** DeleteGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** DeleteGlobalPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalPublicDelegatedPrefixeRequest. */
                class DeleteGlobalPublicDelegatedPrefixeRequest implements IDeleteGlobalPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new DeleteGlobalPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalPublicDelegatedPrefixeRequest);

                    /** DeleteGlobalPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** DeleteGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** DeleteGlobalPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalPublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.DeleteGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified DeleteGlobalPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message DeleteGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message DeleteGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a DeleteGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a DeleteGlobalPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteGlobalVmExtensionPolicyRequest. */
                interface IDeleteGlobalVmExtensionPolicyRequest {

                    /** DeleteGlobalVmExtensionPolicyRequest globalVmExtensionPolicy */
                    globalVmExtensionPolicy?: (string|null);

                    /** DeleteGlobalVmExtensionPolicyRequest globalVmExtensionPolicyRolloutOperationRolloutInputResource */
                    globalVmExtensionPolicyRolloutOperationRolloutInputResource?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutInput|null);

                    /** DeleteGlobalVmExtensionPolicyRequest project */
                    project?: (string|null);

                    /** DeleteGlobalVmExtensionPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteGlobalVmExtensionPolicyRequest. */
                class DeleteGlobalVmExtensionPolicyRequest implements IDeleteGlobalVmExtensionPolicyRequest {

                    /**
                     * Constructs a new DeleteGlobalVmExtensionPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteGlobalVmExtensionPolicyRequest);

                    /** DeleteGlobalVmExtensionPolicyRequest globalVmExtensionPolicy. */
                    public globalVmExtensionPolicy: string;

                    /** DeleteGlobalVmExtensionPolicyRequest globalVmExtensionPolicyRolloutOperationRolloutInputResource. */
                    public globalVmExtensionPolicyRolloutOperationRolloutInputResource?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutInput|null);

                    /** DeleteGlobalVmExtensionPolicyRequest project. */
                    public project: string;

                    /** DeleteGlobalVmExtensionPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteGlobalVmExtensionPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteGlobalVmExtensionPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteGlobalVmExtensionPolicyRequest): google.cloud.compute.v1beta.DeleteGlobalVmExtensionPolicyRequest;

                    /**
                     * Encodes the specified DeleteGlobalVmExtensionPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message DeleteGlobalVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteGlobalVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteGlobalVmExtensionPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteGlobalVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message DeleteGlobalVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteGlobalVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteGlobalVmExtensionPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteGlobalVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteGlobalVmExtensionPolicyRequest;

                    /**
                     * Decodes a DeleteGlobalVmExtensionPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteGlobalVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteGlobalVmExtensionPolicyRequest;

                    /**
                     * Verifies a DeleteGlobalVmExtensionPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteGlobalVmExtensionPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteGlobalVmExtensionPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteGlobalVmExtensionPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteGlobalVmExtensionPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteGlobalVmExtensionPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteGlobalVmExtensionPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteGlobalVmExtensionPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteGlobalVmExtensionPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteHealthCheckRequest. */
                interface IDeleteHealthCheckRequest {

                    /** DeleteHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** DeleteHealthCheckRequest project */
                    project?: (string|null);

                    /** DeleteHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteHealthCheckRequest. */
                class DeleteHealthCheckRequest implements IDeleteHealthCheckRequest {

                    /**
                     * Constructs a new DeleteHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteHealthCheckRequest);

                    /** DeleteHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** DeleteHealthCheckRequest project. */
                    public project: string;

                    /** DeleteHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteHealthCheckRequest): google.cloud.compute.v1beta.DeleteHealthCheckRequest;

                    /**
                     * Encodes the specified DeleteHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteHealthCheckRequest;

                    /**
                     * Decodes a DeleteHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteHealthCheckRequest;

                    /**
                     * Verifies a DeleteHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteHealthCheckRequest;

                    /**
                     * Creates a plain object from a DeleteHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message DeleteHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteImageRequest. */
                interface IDeleteImageRequest {

                    /** DeleteImageRequest image */
                    image?: (string|null);

                    /** DeleteImageRequest project */
                    project?: (string|null);

                    /** DeleteImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteImageRequest. */
                class DeleteImageRequest implements IDeleteImageRequest {

                    /**
                     * Constructs a new DeleteImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteImageRequest);

                    /** DeleteImageRequest image. */
                    public image: string;

                    /** DeleteImageRequest project. */
                    public project: string;

                    /** DeleteImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteImageRequest): google.cloud.compute.v1beta.DeleteImageRequest;

                    /**
                     * Encodes the specified DeleteImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteImageRequest.verify|verify} messages.
                     * @param message DeleteImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteImageRequest.verify|verify} messages.
                     * @param message DeleteImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteImageRequest;

                    /**
                     * Decodes a DeleteImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteImageRequest;

                    /**
                     * Verifies a DeleteImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteImageRequest;

                    /**
                     * Creates a plain object from a DeleteImageRequest message. Also converts values to other types if specified.
                     * @param message DeleteImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceGroupManagerRequest. */
                interface IDeleteInstanceGroupManagerRequest {

                    /** DeleteInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeleteInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstanceGroupManagerRequest. */
                class DeleteInstanceGroupManagerRequest implements IDeleteInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeleteInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerRequest);

                    /** DeleteInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeleteInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerRequest): google.cloud.compute.v1beta.DeleteInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeleteInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeleteInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeleteInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceGroupManagerResizeRequestRequest. */
                interface IDeleteInstanceGroupManagerResizeRequestRequest {

                    /** DeleteInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstanceGroupManagerResizeRequestRequest. */
                class DeleteInstanceGroupManagerResizeRequestRequest implements IDeleteInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new DeleteInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerResizeRequestRequest);

                    /** DeleteInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** DeleteInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /** DeleteInstanceGroupManagerResizeRequestRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1beta.DeleteInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified DeleteInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a DeleteInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a DeleteInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceGroupRequest. */
                interface IDeleteInstanceGroupRequest {

                    /** DeleteInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** DeleteInstanceGroupRequest project */
                    project?: (string|null);

                    /** DeleteInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstanceGroupRequest. */
                class DeleteInstanceGroupRequest implements IDeleteInstanceGroupRequest {

                    /**
                     * Constructs a new DeleteInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstanceGroupRequest);

                    /** DeleteInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** DeleteInstanceGroupRequest project. */
                    public project: string;

                    /** DeleteInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstanceGroupRequest): google.cloud.compute.v1beta.DeleteInstanceGroupRequest;

                    /**
                     * Encodes the specified DeleteInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceGroupRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceGroupRequest.verify|verify} messages.
                     * @param message DeleteInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstanceGroupRequest;

                    /**
                     * Decodes a DeleteInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstanceGroupRequest;

                    /**
                     * Verifies a DeleteInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstanceGroupRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceRequest. */
                interface IDeleteInstanceRequest {

                    /** DeleteInstanceRequest instance */
                    instance?: (string|null);

                    /** DeleteInstanceRequest noGracefulShutdown */
                    noGracefulShutdown?: (boolean|null);

                    /** DeleteInstanceRequest project */
                    project?: (string|null);

                    /** DeleteInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstanceRequest. */
                class DeleteInstanceRequest implements IDeleteInstanceRequest {

                    /**
                     * Constructs a new DeleteInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstanceRequest);

                    /** DeleteInstanceRequest instance. */
                    public instance: string;

                    /** DeleteInstanceRequest noGracefulShutdown. */
                    public noGracefulShutdown?: (boolean|null);

                    /** DeleteInstanceRequest project. */
                    public project: string;

                    /** DeleteInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstanceRequest): google.cloud.compute.v1beta.DeleteInstanceRequest;

                    /**
                     * Encodes the specified DeleteInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceRequest.verify|verify} messages.
                     * @param message DeleteInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceRequest.verify|verify} messages.
                     * @param message DeleteInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstanceRequest;

                    /**
                     * Decodes a DeleteInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstanceRequest;

                    /**
                     * Verifies a DeleteInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstanceRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstanceTemplateRequest. */
                interface IDeleteInstanceTemplateRequest {

                    /** DeleteInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** DeleteInstanceTemplateRequest project */
                    project?: (string|null);

                    /** DeleteInstanceTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInstanceTemplateRequest. */
                class DeleteInstanceTemplateRequest implements IDeleteInstanceTemplateRequest {

                    /**
                     * Constructs a new DeleteInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstanceTemplateRequest);

                    /** DeleteInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate: string;

                    /** DeleteInstanceTemplateRequest project. */
                    public project: string;

                    /** DeleteInstanceTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstanceTemplateRequest): google.cloud.compute.v1beta.DeleteInstanceTemplateRequest;

                    /**
                     * Encodes the specified DeleteInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceTemplateRequest.verify|verify} messages.
                     * @param message DeleteInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstanceTemplateRequest.verify|verify} messages.
                     * @param message DeleteInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstanceTemplateRequest;

                    /**
                     * Decodes a DeleteInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstanceTemplateRequest;

                    /**
                     * Verifies a DeleteInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a DeleteInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstancesInstanceGroupManagerRequest. */
                interface IDeleteInstancesInstanceGroupManagerRequest {

                    /** DeleteInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteInstancesInstanceGroupManagerRequest instanceGroupManagersDeleteInstancesRequestResource */
                    instanceGroupManagersDeleteInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersDeleteInstancesRequest|null);

                    /** DeleteInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeleteInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstancesInstanceGroupManagerRequest. */
                class DeleteInstancesInstanceGroupManagerRequest implements IDeleteInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeleteInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstancesInstanceGroupManagerRequest);

                    /** DeleteInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteInstancesInstanceGroupManagerRequest instanceGroupManagersDeleteInstancesRequestResource. */
                    public instanceGroupManagersDeleteInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersDeleteInstancesRequest|null);

                    /** DeleteInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeleteInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.DeleteInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeleteInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeleteInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeleteInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeleteInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstancesRegionInstanceGroupManagerRequest. */
                interface IDeleteInstancesRegionInstanceGroupManagerRequest {

                    /** DeleteInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersDeleteInstancesRequestResource */
                    regionInstanceGroupManagersDeleteInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersDeleteInstancesRequest|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInstancesRegionInstanceGroupManagerRequest. */
                class DeleteInstancesRegionInstanceGroupManagerRequest implements IDeleteInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeleteInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstancesRegionInstanceGroupManagerRequest);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeleteInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** DeleteInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersDeleteInstancesRequestResource. */
                    public regionInstanceGroupManagersDeleteInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersDeleteInstancesRequest|null);

                    /** DeleteInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.DeleteInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeleteInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeleteInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeleteInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeleteInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstantSnapshotGroupRequest. */
                interface IDeleteInstantSnapshotGroupRequest {

                    /** DeleteInstantSnapshotGroupRequest instantSnapshotGroup */
                    instantSnapshotGroup?: (string|null);

                    /** DeleteInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** DeleteInstantSnapshotGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstantSnapshotGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstantSnapshotGroupRequest. */
                class DeleteInstantSnapshotGroupRequest implements IDeleteInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new DeleteInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstantSnapshotGroupRequest);

                    /** DeleteInstantSnapshotGroupRequest instantSnapshotGroup. */
                    public instantSnapshotGroup: string;

                    /** DeleteInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** DeleteInstantSnapshotGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstantSnapshotGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstantSnapshotGroupRequest): google.cloud.compute.v1beta.DeleteInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified DeleteInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message DeleteInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message DeleteInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstantSnapshotGroupRequest;

                    /**
                     * Decodes a DeleteInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstantSnapshotGroupRequest;

                    /**
                     * Verifies a DeleteInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a DeleteInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInstantSnapshotRequest. */
                interface IDeleteInstantSnapshotRequest {

                    /** DeleteInstantSnapshotRequest instantSnapshot */
                    instantSnapshot?: (string|null);

                    /** DeleteInstantSnapshotRequest project */
                    project?: (string|null);

                    /** DeleteInstantSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** DeleteInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteInstantSnapshotRequest. */
                class DeleteInstantSnapshotRequest implements IDeleteInstantSnapshotRequest {

                    /**
                     * Constructs a new DeleteInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInstantSnapshotRequest);

                    /** DeleteInstantSnapshotRequest instantSnapshot. */
                    public instantSnapshot: string;

                    /** DeleteInstantSnapshotRequest project. */
                    public project: string;

                    /** DeleteInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInstantSnapshotRequest): google.cloud.compute.v1beta.DeleteInstantSnapshotRequest;

                    /**
                     * Encodes the specified DeleteInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstantSnapshotRequest.verify|verify} messages.
                     * @param message DeleteInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInstantSnapshotRequest.verify|verify} messages.
                     * @param message DeleteInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInstantSnapshotRequest;

                    /**
                     * Decodes a DeleteInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInstantSnapshotRequest;

                    /**
                     * Verifies a DeleteInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a DeleteInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message DeleteInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInterconnectAttachmentGroupRequest. */
                interface IDeleteInterconnectAttachmentGroupRequest {

                    /** DeleteInterconnectAttachmentGroupRequest interconnectAttachmentGroup */
                    interconnectAttachmentGroup?: (string|null);

                    /** DeleteInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** DeleteInterconnectAttachmentGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInterconnectAttachmentGroupRequest. */
                class DeleteInterconnectAttachmentGroupRequest implements IDeleteInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new DeleteInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentGroupRequest);

                    /** DeleteInterconnectAttachmentGroupRequest interconnectAttachmentGroup. */
                    public interconnectAttachmentGroup: string;

                    /** DeleteInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** DeleteInterconnectAttachmentGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentGroupRequest): google.cloud.compute.v1beta.DeleteInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified DeleteInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message DeleteInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message DeleteInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a DeleteInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a DeleteInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a DeleteInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInterconnectAttachmentRequest. */
                interface IDeleteInterconnectAttachmentRequest {

                    /** DeleteInterconnectAttachmentRequest interconnectAttachment */
                    interconnectAttachment?: (string|null);

                    /** DeleteInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** DeleteInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** DeleteInterconnectAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInterconnectAttachmentRequest. */
                class DeleteInterconnectAttachmentRequest implements IDeleteInterconnectAttachmentRequest {

                    /**
                     * Constructs a new DeleteInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentRequest);

                    /** DeleteInterconnectAttachmentRequest interconnectAttachment. */
                    public interconnectAttachment: string;

                    /** DeleteInterconnectAttachmentRequest project. */
                    public project: string;

                    /** DeleteInterconnectAttachmentRequest region. */
                    public region: string;

                    /** DeleteInterconnectAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentRequest): google.cloud.compute.v1beta.DeleteInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified DeleteInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message DeleteInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message DeleteInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInterconnectAttachmentRequest;

                    /**
                     * Decodes a DeleteInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInterconnectAttachmentRequest;

                    /**
                     * Verifies a DeleteInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a DeleteInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message DeleteInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInterconnectGroupRequest. */
                interface IDeleteInterconnectGroupRequest {

                    /** DeleteInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** DeleteInterconnectGroupRequest project */
                    project?: (string|null);

                    /** DeleteInterconnectGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInterconnectGroupRequest. */
                class DeleteInterconnectGroupRequest implements IDeleteInterconnectGroupRequest {

                    /**
                     * Constructs a new DeleteInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInterconnectGroupRequest);

                    /** DeleteInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** DeleteInterconnectGroupRequest project. */
                    public project: string;

                    /** DeleteInterconnectGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInterconnectGroupRequest): google.cloud.compute.v1beta.DeleteInterconnectGroupRequest;

                    /**
                     * Encodes the specified DeleteInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInterconnectGroupRequest.verify|verify} messages.
                     * @param message DeleteInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInterconnectGroupRequest.verify|verify} messages.
                     * @param message DeleteInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInterconnectGroupRequest;

                    /**
                     * Decodes a DeleteInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInterconnectGroupRequest;

                    /**
                     * Verifies a DeleteInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a DeleteInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInterconnectRequest. */
                interface IDeleteInterconnectRequest {

                    /** DeleteInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** DeleteInterconnectRequest project */
                    project?: (string|null);

                    /** DeleteInterconnectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteInterconnectRequest. */
                class DeleteInterconnectRequest implements IDeleteInterconnectRequest {

                    /**
                     * Constructs a new DeleteInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteInterconnectRequest);

                    /** DeleteInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** DeleteInterconnectRequest project. */
                    public project: string;

                    /** DeleteInterconnectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteInterconnectRequest): google.cloud.compute.v1beta.DeleteInterconnectRequest;

                    /**
                     * Encodes the specified DeleteInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInterconnectRequest.verify|verify} messages.
                     * @param message DeleteInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteInterconnectRequest.verify|verify} messages.
                     * @param message DeleteInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteInterconnectRequest;

                    /**
                     * Decodes a DeleteInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteInterconnectRequest;

                    /**
                     * Verifies a DeleteInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteInterconnectRequest;

                    /**
                     * Creates a plain object from a DeleteInterconnectRequest message. Also converts values to other types if specified.
                     * @param message DeleteInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteLicenseRequest. */
                interface IDeleteLicenseRequest {

                    /** DeleteLicenseRequest license */
                    license?: (string|null);

                    /** DeleteLicenseRequest project */
                    project?: (string|null);

                    /** DeleteLicenseRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteLicenseRequest. */
                class DeleteLicenseRequest implements IDeleteLicenseRequest {

                    /**
                     * Constructs a new DeleteLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteLicenseRequest);

                    /** DeleteLicenseRequest license. */
                    public license: string;

                    /** DeleteLicenseRequest project. */
                    public project: string;

                    /** DeleteLicenseRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteLicenseRequest): google.cloud.compute.v1beta.DeleteLicenseRequest;

                    /**
                     * Encodes the specified DeleteLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteLicenseRequest.verify|verify} messages.
                     * @param message DeleteLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteLicenseRequest.verify|verify} messages.
                     * @param message DeleteLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteLicenseRequest;

                    /**
                     * Decodes a DeleteLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteLicenseRequest;

                    /**
                     * Verifies a DeleteLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteLicenseRequest;

                    /**
                     * Creates a plain object from a DeleteLicenseRequest message. Also converts values to other types if specified.
                     * @param message DeleteLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteMachineImageRequest. */
                interface IDeleteMachineImageRequest {

                    /** DeleteMachineImageRequest machineImage */
                    machineImage?: (string|null);

                    /** DeleteMachineImageRequest project */
                    project?: (string|null);

                    /** DeleteMachineImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteMachineImageRequest. */
                class DeleteMachineImageRequest implements IDeleteMachineImageRequest {

                    /**
                     * Constructs a new DeleteMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteMachineImageRequest);

                    /** DeleteMachineImageRequest machineImage. */
                    public machineImage: string;

                    /** DeleteMachineImageRequest project. */
                    public project: string;

                    /** DeleteMachineImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteMachineImageRequest): google.cloud.compute.v1beta.DeleteMachineImageRequest;

                    /**
                     * Encodes the specified DeleteMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteMachineImageRequest.verify|verify} messages.
                     * @param message DeleteMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteMachineImageRequest.verify|verify} messages.
                     * @param message DeleteMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteMachineImageRequest;

                    /**
                     * Decodes a DeleteMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteMachineImageRequest;

                    /**
                     * Verifies a DeleteMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteMachineImageRequest;

                    /**
                     * Creates a plain object from a DeleteMachineImageRequest message. Also converts values to other types if specified.
                     * @param message DeleteMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNamedSetRouterRequest. */
                interface IDeleteNamedSetRouterRequest {

                    /** DeleteNamedSetRouterRequest namedSet */
                    namedSet?: (string|null);

                    /** DeleteNamedSetRouterRequest project */
                    project?: (string|null);

                    /** DeleteNamedSetRouterRequest region */
                    region?: (string|null);

                    /** DeleteNamedSetRouterRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNamedSetRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a DeleteNamedSetRouterRequest. */
                class DeleteNamedSetRouterRequest implements IDeleteNamedSetRouterRequest {

                    /**
                     * Constructs a new DeleteNamedSetRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNamedSetRouterRequest);

                    /** DeleteNamedSetRouterRequest namedSet. */
                    public namedSet?: (string|null);

                    /** DeleteNamedSetRouterRequest project. */
                    public project: string;

                    /** DeleteNamedSetRouterRequest region. */
                    public region: string;

                    /** DeleteNamedSetRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNamedSetRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new DeleteNamedSetRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNamedSetRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNamedSetRouterRequest): google.cloud.compute.v1beta.DeleteNamedSetRouterRequest;

                    /**
                     * Encodes the specified DeleteNamedSetRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNamedSetRouterRequest.verify|verify} messages.
                     * @param message DeleteNamedSetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNamedSetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNamedSetRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNamedSetRouterRequest.verify|verify} messages.
                     * @param message DeleteNamedSetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNamedSetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNamedSetRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNamedSetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNamedSetRouterRequest;

                    /**
                     * Decodes a DeleteNamedSetRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNamedSetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNamedSetRouterRequest;

                    /**
                     * Verifies a DeleteNamedSetRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNamedSetRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNamedSetRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNamedSetRouterRequest;

                    /**
                     * Creates a plain object from a DeleteNamedSetRouterRequest message. Also converts values to other types if specified.
                     * @param message DeleteNamedSetRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNamedSetRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNamedSetRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNamedSetRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkAttachmentRequest. */
                interface IDeleteNetworkAttachmentRequest {

                    /** DeleteNetworkAttachmentRequest networkAttachment */
                    networkAttachment?: (string|null);

                    /** DeleteNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** DeleteNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** DeleteNetworkAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNetworkAttachmentRequest. */
                class DeleteNetworkAttachmentRequest implements IDeleteNetworkAttachmentRequest {

                    /**
                     * Constructs a new DeleteNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNetworkAttachmentRequest);

                    /** DeleteNetworkAttachmentRequest networkAttachment. */
                    public networkAttachment: string;

                    /** DeleteNetworkAttachmentRequest project. */
                    public project: string;

                    /** DeleteNetworkAttachmentRequest region. */
                    public region: string;

                    /** DeleteNetworkAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNetworkAttachmentRequest): google.cloud.compute.v1beta.DeleteNetworkAttachmentRequest;

                    /**
                     * Encodes the specified DeleteNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkAttachmentRequest.verify|verify} messages.
                     * @param message DeleteNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkAttachmentRequest.verify|verify} messages.
                     * @param message DeleteNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNetworkAttachmentRequest;

                    /**
                     * Decodes a DeleteNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNetworkAttachmentRequest;

                    /**
                     * Verifies a DeleteNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkEdgeSecurityServiceRequest. */
                interface IDeleteNetworkEdgeSecurityServiceRequest {

                    /** DeleteNetworkEdgeSecurityServiceRequest networkEdgeSecurityService */
                    networkEdgeSecurityService?: (string|null);

                    /** DeleteNetworkEdgeSecurityServiceRequest project */
                    project?: (string|null);

                    /** DeleteNetworkEdgeSecurityServiceRequest region */
                    region?: (string|null);

                    /** DeleteNetworkEdgeSecurityServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNetworkEdgeSecurityServiceRequest. */
                class DeleteNetworkEdgeSecurityServiceRequest implements IDeleteNetworkEdgeSecurityServiceRequest {

                    /**
                     * Constructs a new DeleteNetworkEdgeSecurityServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNetworkEdgeSecurityServiceRequest);

                    /** DeleteNetworkEdgeSecurityServiceRequest networkEdgeSecurityService. */
                    public networkEdgeSecurityService: string;

                    /** DeleteNetworkEdgeSecurityServiceRequest project. */
                    public project: string;

                    /** DeleteNetworkEdgeSecurityServiceRequest region. */
                    public region: string;

                    /** DeleteNetworkEdgeSecurityServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNetworkEdgeSecurityServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkEdgeSecurityServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNetworkEdgeSecurityServiceRequest): google.cloud.compute.v1beta.DeleteNetworkEdgeSecurityServiceRequest;

                    /**
                     * Encodes the specified DeleteNetworkEdgeSecurityServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message DeleteNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkEdgeSecurityServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message DeleteNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkEdgeSecurityServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNetworkEdgeSecurityServiceRequest;

                    /**
                     * Decodes a DeleteNetworkEdgeSecurityServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNetworkEdgeSecurityServiceRequest;

                    /**
                     * Verifies a DeleteNetworkEdgeSecurityServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkEdgeSecurityServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkEdgeSecurityServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNetworkEdgeSecurityServiceRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkEdgeSecurityServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkEdgeSecurityServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNetworkEdgeSecurityServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkEdgeSecurityServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkEdgeSecurityServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkEndpointGroupRequest. */
                interface IDeleteNetworkEndpointGroupRequest {

                    /** DeleteNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DeleteNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DeleteNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteNetworkEndpointGroupRequest. */
                class DeleteNetworkEndpointGroupRequest implements IDeleteNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DeleteNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNetworkEndpointGroupRequest);

                    /** DeleteNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DeleteNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DeleteNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNetworkEndpointGroupRequest): google.cloud.compute.v1beta.DeleteNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DeleteNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DeleteNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DeleteNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkFirewallPolicyRequest. */
                interface IDeleteNetworkFirewallPolicyRequest {

                    /** DeleteNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** DeleteNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** DeleteNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNetworkFirewallPolicyRequest. */
                class DeleteNetworkFirewallPolicyRequest implements IDeleteNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new DeleteNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNetworkFirewallPolicyRequest);

                    /** DeleteNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** DeleteNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** DeleteNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.DeleteNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified DeleteNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a DeleteNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a DeleteNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkInterfaceInstanceRequest. */
                interface IDeleteNetworkInterfaceInstanceRequest {

                    /** DeleteNetworkInterfaceInstanceRequest instance */
                    instance?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest networkInterfaceName */
                    networkInterfaceName?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest project */
                    project?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteNetworkInterfaceInstanceRequest. */
                class DeleteNetworkInterfaceInstanceRequest implements IDeleteNetworkInterfaceInstanceRequest {

                    /**
                     * Constructs a new DeleteNetworkInterfaceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest);

                    /** DeleteNetworkInterfaceInstanceRequest instance. */
                    public instance: string;

                    /** DeleteNetworkInterfaceInstanceRequest networkInterfaceName. */
                    public networkInterfaceName: string;

                    /** DeleteNetworkInterfaceInstanceRequest project. */
                    public project: string;

                    /** DeleteNetworkInterfaceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNetworkInterfaceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteNetworkInterfaceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkInterfaceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest): google.cloud.compute.v1beta.DeleteNetworkInterfaceInstanceRequest;

                    /**
                     * Encodes the specified DeleteNetworkInterfaceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message DeleteNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkInterfaceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message DeleteNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkInterfaceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNetworkInterfaceInstanceRequest;

                    /**
                     * Decodes a DeleteNetworkInterfaceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNetworkInterfaceInstanceRequest;

                    /**
                     * Verifies a DeleteNetworkInterfaceInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkInterfaceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkInterfaceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNetworkInterfaceInstanceRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkInterfaceInstanceRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkInterfaceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNetworkInterfaceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkInterfaceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkInterfaceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNetworkRequest. */
                interface IDeleteNetworkRequest {

                    /** DeleteNetworkRequest network */
                    network?: (string|null);

                    /** DeleteNetworkRequest project */
                    project?: (string|null);

                    /** DeleteNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNetworkRequest. */
                class DeleteNetworkRequest implements IDeleteNetworkRequest {

                    /**
                     * Constructs a new DeleteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNetworkRequest);

                    /** DeleteNetworkRequest network. */
                    public network: string;

                    /** DeleteNetworkRequest project. */
                    public project: string;

                    /** DeleteNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNetworkRequest): google.cloud.compute.v1beta.DeleteNetworkRequest;

                    /**
                     * Encodes the specified DeleteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkRequest.verify|verify} messages.
                     * @param message DeleteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNetworkRequest.verify|verify} messages.
                     * @param message DeleteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNetworkRequest;

                    /**
                     * Decodes a DeleteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNetworkRequest;

                    /**
                     * Verifies a DeleteNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNetworkRequest;

                    /**
                     * Creates a plain object from a DeleteNetworkRequest message. Also converts values to other types if specified.
                     * @param message DeleteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNodeGroupRequest. */
                interface IDeleteNodeGroupRequest {

                    /** DeleteNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** DeleteNodeGroupRequest project */
                    project?: (string|null);

                    /** DeleteNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteNodeGroupRequest. */
                class DeleteNodeGroupRequest implements IDeleteNodeGroupRequest {

                    /**
                     * Constructs a new DeleteNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNodeGroupRequest);

                    /** DeleteNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** DeleteNodeGroupRequest project. */
                    public project: string;

                    /** DeleteNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNodeGroupRequest): google.cloud.compute.v1beta.DeleteNodeGroupRequest;

                    /**
                     * Encodes the specified DeleteNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNodeGroupRequest.verify|verify} messages.
                     * @param message DeleteNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNodeGroupRequest.verify|verify} messages.
                     * @param message DeleteNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNodeGroupRequest;

                    /**
                     * Decodes a DeleteNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNodeGroupRequest;

                    /**
                     * Verifies a DeleteNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNodeGroupRequest;

                    /**
                     * Creates a plain object from a DeleteNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNodeTemplateRequest. */
                interface IDeleteNodeTemplateRequest {

                    /** DeleteNodeTemplateRequest nodeTemplate */
                    nodeTemplate?: (string|null);

                    /** DeleteNodeTemplateRequest project */
                    project?: (string|null);

                    /** DeleteNodeTemplateRequest region */
                    region?: (string|null);

                    /** DeleteNodeTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteNodeTemplateRequest. */
                class DeleteNodeTemplateRequest implements IDeleteNodeTemplateRequest {

                    /**
                     * Constructs a new DeleteNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNodeTemplateRequest);

                    /** DeleteNodeTemplateRequest nodeTemplate. */
                    public nodeTemplate: string;

                    /** DeleteNodeTemplateRequest project. */
                    public project: string;

                    /** DeleteNodeTemplateRequest region. */
                    public region: string;

                    /** DeleteNodeTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNodeTemplateRequest): google.cloud.compute.v1beta.DeleteNodeTemplateRequest;

                    /**
                     * Encodes the specified DeleteNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNodeTemplateRequest.verify|verify} messages.
                     * @param message DeleteNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNodeTemplateRequest.verify|verify} messages.
                     * @param message DeleteNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNodeTemplateRequest;

                    /**
                     * Decodes a DeleteNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNodeTemplateRequest;

                    /**
                     * Verifies a DeleteNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNodeTemplateRequest;

                    /**
                     * Creates a plain object from a DeleteNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message DeleteNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteNodesNodeGroupRequest. */
                interface IDeleteNodesNodeGroupRequest {

                    /** DeleteNodesNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** DeleteNodesNodeGroupRequest nodeGroupsDeleteNodesRequestResource */
                    nodeGroupsDeleteNodesRequestResource?: (google.cloud.compute.v1beta.INodeGroupsDeleteNodesRequest|null);

                    /** DeleteNodesNodeGroupRequest project */
                    project?: (string|null);

                    /** DeleteNodesNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteNodesNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteNodesNodeGroupRequest. */
                class DeleteNodesNodeGroupRequest implements IDeleteNodesNodeGroupRequest {

                    /**
                     * Constructs a new DeleteNodesNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteNodesNodeGroupRequest);

                    /** DeleteNodesNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** DeleteNodesNodeGroupRequest nodeGroupsDeleteNodesRequestResource. */
                    public nodeGroupsDeleteNodesRequestResource?: (google.cloud.compute.v1beta.INodeGroupsDeleteNodesRequest|null);

                    /** DeleteNodesNodeGroupRequest project. */
                    public project: string;

                    /** DeleteNodesNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteNodesNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteNodesNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteNodesNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteNodesNodeGroupRequest): google.cloud.compute.v1beta.DeleteNodesNodeGroupRequest;

                    /**
                     * Encodes the specified DeleteNodesNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNodesNodeGroupRequest.verify|verify} messages.
                     * @param message DeleteNodesNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteNodesNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteNodesNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteNodesNodeGroupRequest.verify|verify} messages.
                     * @param message DeleteNodesNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteNodesNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteNodesNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteNodesNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteNodesNodeGroupRequest;

                    /**
                     * Decodes a DeleteNodesNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteNodesNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteNodesNodeGroupRequest;

                    /**
                     * Verifies a DeleteNodesNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteNodesNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteNodesNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteNodesNodeGroupRequest;

                    /**
                     * Creates a plain object from a DeleteNodesNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteNodesNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteNodesNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteNodesNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteNodesNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteOrganizationSecurityPolicyRequest. */
                interface IDeleteOrganizationSecurityPolicyRequest {

                    /** DeleteOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a DeleteOrganizationSecurityPolicyRequest. */
                class DeleteOrganizationSecurityPolicyRequest implements IDeleteOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new DeleteOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteOrganizationSecurityPolicyRequest);

                    /** DeleteOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new DeleteOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.DeleteOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified DeleteOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a DeleteOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a DeleteOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePacketMirroringRequest. */
                interface IDeletePacketMirroringRequest {

                    /** DeletePacketMirroringRequest packetMirroring */
                    packetMirroring?: (string|null);

                    /** DeletePacketMirroringRequest project */
                    project?: (string|null);

                    /** DeletePacketMirroringRequest region */
                    region?: (string|null);

                    /** DeletePacketMirroringRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeletePacketMirroringRequest. */
                class DeletePacketMirroringRequest implements IDeletePacketMirroringRequest {

                    /**
                     * Constructs a new DeletePacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeletePacketMirroringRequest);

                    /** DeletePacketMirroringRequest packetMirroring. */
                    public packetMirroring: string;

                    /** DeletePacketMirroringRequest project. */
                    public project: string;

                    /** DeletePacketMirroringRequest region. */
                    public region: string;

                    /** DeletePacketMirroringRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeletePacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeletePacketMirroringRequest): google.cloud.compute.v1beta.DeletePacketMirroringRequest;

                    /**
                     * Encodes the specified DeletePacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeletePacketMirroringRequest.verify|verify} messages.
                     * @param message DeletePacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeletePacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeletePacketMirroringRequest.verify|verify} messages.
                     * @param message DeletePacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeletePacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeletePacketMirroringRequest;

                    /**
                     * Decodes a DeletePacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeletePacketMirroringRequest;

                    /**
                     * Verifies a DeletePacketMirroringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeletePacketMirroringRequest;

                    /**
                     * Creates a plain object from a DeletePacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message DeletePacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeletePacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePerInstanceConfigsInstanceGroupManagerRequest. */
                interface IDeletePerInstanceConfigsInstanceGroupManagerRequest {

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersDeletePerInstanceConfigsReqResource */
                    instanceGroupManagersDeletePerInstanceConfigsReqResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersDeletePerInstanceConfigsReq|null);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeletePerInstanceConfigsInstanceGroupManagerRequest. */
                class DeletePerInstanceConfigsInstanceGroupManagerRequest implements IDeletePerInstanceConfigsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeletePerInstanceConfigsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeletePerInstanceConfigsInstanceGroupManagerRequest);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersDeletePerInstanceConfigsReqResource. */
                    public instanceGroupManagersDeletePerInstanceConfigsReqResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersDeletePerInstanceConfigsReq|null);

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeletePerInstanceConfigsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeletePerInstanceConfigsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePerInstanceConfigsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeletePerInstanceConfigsInstanceGroupManagerRequest): google.cloud.compute.v1beta.DeletePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeletePerInstanceConfigsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeletePerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeletePerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeletePerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePerInstanceConfigsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeletePerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeletePerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeletePerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeletePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeletePerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeletePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeletePerInstanceConfigsInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePerInstanceConfigsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePerInstanceConfigsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeletePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeletePerInstanceConfigsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeletePerInstanceConfigsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeletePerInstanceConfigsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePerInstanceConfigsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePerInstanceConfigsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest. */
                interface IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerDeleteInstanceConfigReqResource */
                    regionInstanceGroupManagerDeleteInstanceConfigReqResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagerDeleteInstanceConfigReq|null);
                }

                /** Represents a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest. */
                class DeletePerInstanceConfigsRegionInstanceGroupManagerRequest implements IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeletePerInstanceConfigsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest);

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** DeletePerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerDeleteInstanceConfigReqResource. */
                    public regionInstanceGroupManagerDeleteInstanceConfigReqResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagerDeleteInstanceConfigReq|null);

                    /**
                     * Creates a new DeletePerInstanceConfigsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePerInstanceConfigsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeletePerInstanceConfigsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePerInstanceConfigsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePublicAdvertisedPrefixeRequest. */
                interface IDeletePublicAdvertisedPrefixeRequest {

                    /** DeletePublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** DeletePublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);

                    /** DeletePublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeletePublicAdvertisedPrefixeRequest. */
                class DeletePublicAdvertisedPrefixeRequest implements IDeletePublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new DeletePublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeletePublicAdvertisedPrefixeRequest);

                    /** DeletePublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** DeletePublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /** DeletePublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeletePublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeletePublicAdvertisedPrefixeRequest): google.cloud.compute.v1beta.DeletePublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified DeletePublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeletePublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message DeletePublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeletePublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeletePublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message DeletePublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeletePublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeletePublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes a DeletePublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeletePublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies a DeletePublicAdvertisedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeletePublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from a DeletePublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message DeletePublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeletePublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePublicDelegatedPrefixeRequest. */
                interface IDeletePublicDelegatedPrefixeRequest {

                    /** DeletePublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** DeletePublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** DeletePublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** DeletePublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeletePublicDelegatedPrefixeRequest. */
                class DeletePublicDelegatedPrefixeRequest implements IDeletePublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new DeletePublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeletePublicDelegatedPrefixeRequest);

                    /** DeletePublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** DeletePublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** DeletePublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** DeletePublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeletePublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeletePublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.DeletePublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified DeletePublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeletePublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message DeletePublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeletePublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeletePublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message DeletePublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeletePublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeletePublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a DeletePublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeletePublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a DeletePublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeletePublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a DeletePublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message DeletePublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeletePublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionAutoscalerRequest. */
                interface IDeleteRegionAutoscalerRequest {

                    /** DeleteRegionAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** DeleteRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** DeleteRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** DeleteRegionAutoscalerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionAutoscalerRequest. */
                class DeleteRegionAutoscalerRequest implements IDeleteRegionAutoscalerRequest {

                    /**
                     * Constructs a new DeleteRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionAutoscalerRequest);

                    /** DeleteRegionAutoscalerRequest autoscaler. */
                    public autoscaler: string;

                    /** DeleteRegionAutoscalerRequest project. */
                    public project: string;

                    /** DeleteRegionAutoscalerRequest region. */
                    public region: string;

                    /** DeleteRegionAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionAutoscalerRequest): google.cloud.compute.v1beta.DeleteRegionAutoscalerRequest;

                    /**
                     * Encodes the specified DeleteRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionAutoscalerRequest.verify|verify} messages.
                     * @param message DeleteRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionAutoscalerRequest.verify|verify} messages.
                     * @param message DeleteRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionAutoscalerRequest;

                    /**
                     * Decodes a DeleteRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionAutoscalerRequest;

                    /**
                     * Verifies a DeleteRegionAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from a DeleteRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionBackendBucketRequest. */
                interface IDeleteRegionBackendBucketRequest {

                    /** DeleteRegionBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** DeleteRegionBackendBucketRequest forceDelete */
                    forceDelete?: (boolean|null);

                    /** DeleteRegionBackendBucketRequest project */
                    project?: (string|null);

                    /** DeleteRegionBackendBucketRequest region */
                    region?: (string|null);

                    /** DeleteRegionBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionBackendBucketRequest. */
                class DeleteRegionBackendBucketRequest implements IDeleteRegionBackendBucketRequest {

                    /**
                     * Constructs a new DeleteRegionBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionBackendBucketRequest);

                    /** DeleteRegionBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** DeleteRegionBackendBucketRequest forceDelete. */
                    public forceDelete?: (boolean|null);

                    /** DeleteRegionBackendBucketRequest project. */
                    public project: string;

                    /** DeleteRegionBackendBucketRequest region. */
                    public region: string;

                    /** DeleteRegionBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionBackendBucketRequest): google.cloud.compute.v1beta.DeleteRegionBackendBucketRequest;

                    /**
                     * Encodes the specified DeleteRegionBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionBackendBucketRequest;

                    /**
                     * Decodes a DeleteRegionBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionBackendBucketRequest;

                    /**
                     * Verifies a DeleteRegionBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionBackendBucketRequest;

                    /**
                     * Creates a plain object from a DeleteRegionBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionBackendServiceRequest. */
                interface IDeleteRegionBackendServiceRequest {

                    /** DeleteRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** DeleteRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** DeleteRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** DeleteRegionBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionBackendServiceRequest. */
                class DeleteRegionBackendServiceRequest implements IDeleteRegionBackendServiceRequest {

                    /**
                     * Constructs a new DeleteRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionBackendServiceRequest);

                    /** DeleteRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** DeleteRegionBackendServiceRequest project. */
                    public project: string;

                    /** DeleteRegionBackendServiceRequest region. */
                    public region: string;

                    /** DeleteRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionBackendServiceRequest): google.cloud.compute.v1beta.DeleteRegionBackendServiceRequest;

                    /**
                     * Encodes the specified DeleteRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionBackendServiceRequest;

                    /**
                     * Decodes a DeleteRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionBackendServiceRequest;

                    /**
                     * Verifies a DeleteRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a DeleteRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionCompositeHealthCheckRequest. */
                interface IDeleteRegionCompositeHealthCheckRequest {

                    /** DeleteRegionCompositeHealthCheckRequest compositeHealthCheck */
                    compositeHealthCheck?: (string|null);

                    /** DeleteRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** DeleteRegionCompositeHealthCheckRequest region */
                    region?: (string|null);

                    /** DeleteRegionCompositeHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionCompositeHealthCheckRequest. */
                class DeleteRegionCompositeHealthCheckRequest implements IDeleteRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new DeleteRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionCompositeHealthCheckRequest);

                    /** DeleteRegionCompositeHealthCheckRequest compositeHealthCheck. */
                    public compositeHealthCheck: string;

                    /** DeleteRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** DeleteRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /** DeleteRegionCompositeHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionCompositeHealthCheckRequest): google.cloud.compute.v1beta.DeleteRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified DeleteRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes a DeleteRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies a DeleteRegionCompositeHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from a DeleteRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionDiskRequest. */
                interface IDeleteRegionDiskRequest {

                    /** DeleteRegionDiskRequest disk */
                    disk?: (string|null);

                    /** DeleteRegionDiskRequest project */
                    project?: (string|null);

                    /** DeleteRegionDiskRequest region */
                    region?: (string|null);

                    /** DeleteRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionDiskRequest. */
                class DeleteRegionDiskRequest implements IDeleteRegionDiskRequest {

                    /**
                     * Constructs a new DeleteRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionDiskRequest);

                    /** DeleteRegionDiskRequest disk. */
                    public disk: string;

                    /** DeleteRegionDiskRequest project. */
                    public project: string;

                    /** DeleteRegionDiskRequest region. */
                    public region: string;

                    /** DeleteRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionDiskRequest): google.cloud.compute.v1beta.DeleteRegionDiskRequest;

                    /**
                     * Encodes the specified DeleteRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionDiskRequest.verify|verify} messages.
                     * @param message DeleteRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionDiskRequest.verify|verify} messages.
                     * @param message DeleteRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionDiskRequest;

                    /**
                     * Decodes a DeleteRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionDiskRequest;

                    /**
                     * Verifies a DeleteRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionDiskRequest;

                    /**
                     * Creates a plain object from a DeleteRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionHealthAggregationPolicyRequest. */
                interface IDeleteRegionHealthAggregationPolicyRequest {

                    /** DeleteRegionHealthAggregationPolicyRequest healthAggregationPolicy */
                    healthAggregationPolicy?: (string|null);

                    /** DeleteRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionHealthAggregationPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionHealthAggregationPolicyRequest. */
                class DeleteRegionHealthAggregationPolicyRequest implements IDeleteRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionHealthAggregationPolicyRequest);

                    /** DeleteRegionHealthAggregationPolicyRequest healthAggregationPolicy. */
                    public healthAggregationPolicy: string;

                    /** DeleteRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionHealthAggregationPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionHealthAggregationPolicyRequest): google.cloud.compute.v1beta.DeleteRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes a DeleteRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies a DeleteRegionHealthAggregationPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionHealthCheckRequest. */
                interface IDeleteRegionHealthCheckRequest {

                    /** DeleteRegionHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** DeleteRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** DeleteRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** DeleteRegionHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionHealthCheckRequest. */
                class DeleteRegionHealthCheckRequest implements IDeleteRegionHealthCheckRequest {

                    /**
                     * Constructs a new DeleteRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionHealthCheckRequest);

                    /** DeleteRegionHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** DeleteRegionHealthCheckRequest project. */
                    public project: string;

                    /** DeleteRegionHealthCheckRequest region. */
                    public region: string;

                    /** DeleteRegionHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionHealthCheckRequest): google.cloud.compute.v1beta.DeleteRegionHealthCheckRequest;

                    /**
                     * Encodes the specified DeleteRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionHealthCheckRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionHealthCheckRequest;

                    /**
                     * Decodes a DeleteRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionHealthCheckRequest;

                    /**
                     * Verifies a DeleteRegionHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from a DeleteRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionHealthCheckServiceRequest. */
                interface IDeleteRegionHealthCheckServiceRequest {

                    /** DeleteRegionHealthCheckServiceRequest healthCheckService */
                    healthCheckService?: (string|null);

                    /** DeleteRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** DeleteRegionHealthCheckServiceRequest region */
                    region?: (string|null);

                    /** DeleteRegionHealthCheckServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionHealthCheckServiceRequest. */
                class DeleteRegionHealthCheckServiceRequest implements IDeleteRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new DeleteRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionHealthCheckServiceRequest);

                    /** DeleteRegionHealthCheckServiceRequest healthCheckService. */
                    public healthCheckService: string;

                    /** DeleteRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** DeleteRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /** DeleteRegionHealthCheckServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionHealthCheckServiceRequest): google.cloud.compute.v1beta.DeleteRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified DeleteRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionHealthCheckServiceRequest;

                    /**
                     * Decodes a DeleteRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionHealthCheckServiceRequest;

                    /**
                     * Verifies a DeleteRegionHealthCheckServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from a DeleteRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionHealthSourceRequest. */
                interface IDeleteRegionHealthSourceRequest {

                    /** DeleteRegionHealthSourceRequest healthSource */
                    healthSource?: (string|null);

                    /** DeleteRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** DeleteRegionHealthSourceRequest region */
                    region?: (string|null);

                    /** DeleteRegionHealthSourceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionHealthSourceRequest. */
                class DeleteRegionHealthSourceRequest implements IDeleteRegionHealthSourceRequest {

                    /**
                     * Constructs a new DeleteRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionHealthSourceRequest);

                    /** DeleteRegionHealthSourceRequest healthSource. */
                    public healthSource: string;

                    /** DeleteRegionHealthSourceRequest project. */
                    public project: string;

                    /** DeleteRegionHealthSourceRequest region. */
                    public region: string;

                    /** DeleteRegionHealthSourceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionHealthSourceRequest): google.cloud.compute.v1beta.DeleteRegionHealthSourceRequest;

                    /**
                     * Encodes the specified DeleteRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionHealthSourceRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionHealthSourceRequest.verify|verify} messages.
                     * @param message DeleteRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionHealthSourceRequest;

                    /**
                     * Decodes a DeleteRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionHealthSourceRequest;

                    /**
                     * Verifies a DeleteRegionHealthSourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from a DeleteRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionInstanceGroupManagerRequest. */
                interface IDeleteRegionInstanceGroupManagerRequest {

                    /** DeleteRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** DeleteRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** DeleteRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionInstanceGroupManagerRequest. */
                class DeleteRegionInstanceGroupManagerRequest implements IDeleteRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new DeleteRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerRequest);

                    /** DeleteRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** DeleteRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** DeleteRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified DeleteRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a DeleteRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a DeleteRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a DeleteRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionInstanceGroupManagerResizeRequestRequest. */
                interface IDeleteRegionInstanceGroupManagerResizeRequestRequest {

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest region */
                    region?: (string|null);

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);
                }

                /** Represents a DeleteRegionInstanceGroupManagerResizeRequestRequest. */
                class DeleteRegionInstanceGroupManagerResizeRequestRequest implements IDeleteRegionInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new DeleteRegionInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerResizeRequestRequest);

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest region. */
                    public region: string;

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /**
                     * Creates a new DeleteRegionInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified DeleteRegionInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a DeleteRegionInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a DeleteRegionInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a DeleteRegionInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionInstanceTemplateRequest. */
                interface IDeleteRegionInstanceTemplateRequest {

                    /** DeleteRegionInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** DeleteRegionInstanceTemplateRequest project */
                    project?: (string|null);

                    /** DeleteRegionInstanceTemplateRequest region */
                    region?: (string|null);

                    /** DeleteRegionInstanceTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionInstanceTemplateRequest. */
                class DeleteRegionInstanceTemplateRequest implements IDeleteRegionInstanceTemplateRequest {

                    /**
                     * Constructs a new DeleteRegionInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionInstanceTemplateRequest);

                    /** DeleteRegionInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate: string;

                    /** DeleteRegionInstanceTemplateRequest project. */
                    public project: string;

                    /** DeleteRegionInstanceTemplateRequest region. */
                    public region: string;

                    /** DeleteRegionInstanceTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionInstanceTemplateRequest): google.cloud.compute.v1beta.DeleteRegionInstanceTemplateRequest;

                    /**
                     * Encodes the specified DeleteRegionInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message DeleteRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionInstanceTemplateRequest;

                    /**
                     * Decodes a DeleteRegionInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionInstanceTemplateRequest;

                    /**
                     * Verifies a DeleteRegionInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a DeleteRegionInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionInstantSnapshotGroupRequest. */
                interface IDeleteRegionInstantSnapshotGroupRequest {

                    /** DeleteRegionInstantSnapshotGroupRequest instantSnapshotGroup */
                    instantSnapshotGroup?: (string|null);

                    /** DeleteRegionInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** DeleteRegionInstantSnapshotGroupRequest region */
                    region?: (string|null);

                    /** DeleteRegionInstantSnapshotGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionInstantSnapshotGroupRequest. */
                class DeleteRegionInstantSnapshotGroupRequest implements IDeleteRegionInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new DeleteRegionInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotGroupRequest);

                    /** DeleteRegionInstantSnapshotGroupRequest instantSnapshotGroup. */
                    public instantSnapshotGroup: string;

                    /** DeleteRegionInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** DeleteRegionInstantSnapshotGroupRequest region. */
                    public region: string;

                    /** DeleteRegionInstantSnapshotGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotGroupRequest): google.cloud.compute.v1beta.DeleteRegionInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified DeleteRegionInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message DeleteRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message DeleteRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionInstantSnapshotGroupRequest;

                    /**
                     * Decodes a DeleteRegionInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionInstantSnapshotGroupRequest;

                    /**
                     * Verifies a DeleteRegionInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a DeleteRegionInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionInstantSnapshotRequest. */
                interface IDeleteRegionInstantSnapshotRequest {

                    /** DeleteRegionInstantSnapshotRequest instantSnapshot */
                    instantSnapshot?: (string|null);

                    /** DeleteRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** DeleteRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** DeleteRegionInstantSnapshotRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionInstantSnapshotRequest. */
                class DeleteRegionInstantSnapshotRequest implements IDeleteRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new DeleteRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotRequest);

                    /** DeleteRegionInstantSnapshotRequest instantSnapshot. */
                    public instantSnapshot: string;

                    /** DeleteRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** DeleteRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** DeleteRegionInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotRequest): google.cloud.compute.v1beta.DeleteRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified DeleteRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message DeleteRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message DeleteRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionInstantSnapshotRequest;

                    /**
                     * Decodes a DeleteRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionInstantSnapshotRequest;

                    /**
                     * Verifies a DeleteRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a DeleteRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionMultiMigRequest. */
                interface IDeleteRegionMultiMigRequest {

                    /** DeleteRegionMultiMigRequest multiMig */
                    multiMig?: (string|null);

                    /** DeleteRegionMultiMigRequest project */
                    project?: (string|null);

                    /** DeleteRegionMultiMigRequest region */
                    region?: (string|null);

                    /** DeleteRegionMultiMigRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionMultiMigRequest. */
                class DeleteRegionMultiMigRequest implements IDeleteRegionMultiMigRequest {

                    /**
                     * Constructs a new DeleteRegionMultiMigRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionMultiMigRequest);

                    /** DeleteRegionMultiMigRequest multiMig. */
                    public multiMig: string;

                    /** DeleteRegionMultiMigRequest project. */
                    public project: string;

                    /** DeleteRegionMultiMigRequest region. */
                    public region: string;

                    /** DeleteRegionMultiMigRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionMultiMigRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionMultiMigRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionMultiMigRequest): google.cloud.compute.v1beta.DeleteRegionMultiMigRequest;

                    /**
                     * Encodes the specified DeleteRegionMultiMigRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionMultiMigRequest.verify|verify} messages.
                     * @param message DeleteRegionMultiMigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionMultiMigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionMultiMigRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionMultiMigRequest.verify|verify} messages.
                     * @param message DeleteRegionMultiMigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionMultiMigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionMultiMigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionMultiMigRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionMultiMigRequest;

                    /**
                     * Decodes a DeleteRegionMultiMigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionMultiMigRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionMultiMigRequest;

                    /**
                     * Verifies a DeleteRegionMultiMigRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionMultiMigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionMultiMigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionMultiMigRequest;

                    /**
                     * Creates a plain object from a DeleteRegionMultiMigRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionMultiMigRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionMultiMigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionMultiMigRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionMultiMigRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionNetworkEndpointGroupRequest. */
                interface IDeleteRegionNetworkEndpointGroupRequest {

                    /** DeleteRegionNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DeleteRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DeleteRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);

                    /** DeleteRegionNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionNetworkEndpointGroupRequest. */
                class DeleteRegionNetworkEndpointGroupRequest implements IDeleteRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DeleteRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionNetworkEndpointGroupRequest);

                    /** DeleteRegionNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DeleteRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DeleteRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /** DeleteRegionNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionNetworkEndpointGroupRequest): google.cloud.compute.v1beta.DeleteRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DeleteRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DeleteRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DeleteRegionNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DeleteRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionNetworkFirewallPolicyRequest. */
                interface IDeleteRegionNetworkFirewallPolicyRequest {

                    /** DeleteRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** DeleteRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionNetworkFirewallPolicyRequest. */
                class DeleteRegionNetworkFirewallPolicyRequest implements IDeleteRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionNetworkFirewallPolicyRequest);

                    /** DeleteRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** DeleteRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.DeleteRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a DeleteRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a DeleteRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionNetworkPolicyRequest. */
                interface IDeleteRegionNetworkPolicyRequest {

                    /** DeleteRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** DeleteRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionNetworkPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionNetworkPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionNetworkPolicyRequest. */
                class DeleteRegionNetworkPolicyRequest implements IDeleteRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionNetworkPolicyRequest);

                    /** DeleteRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** DeleteRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionNetworkPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionNetworkPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionNetworkPolicyRequest): google.cloud.compute.v1beta.DeleteRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionNetworkPolicyRequest;

                    /**
                     * Decodes a DeleteRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionNetworkPolicyRequest;

                    /**
                     * Verifies a DeleteRegionNetworkPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionNotificationEndpointRequest. */
                interface IDeleteRegionNotificationEndpointRequest {

                    /** DeleteRegionNotificationEndpointRequest notificationEndpoint */
                    notificationEndpoint?: (string|null);

                    /** DeleteRegionNotificationEndpointRequest project */
                    project?: (string|null);

                    /** DeleteRegionNotificationEndpointRequest region */
                    region?: (string|null);

                    /** DeleteRegionNotificationEndpointRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRegionNotificationEndpointRequest. */
                class DeleteRegionNotificationEndpointRequest implements IDeleteRegionNotificationEndpointRequest {

                    /**
                     * Constructs a new DeleteRegionNotificationEndpointRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionNotificationEndpointRequest);

                    /** DeleteRegionNotificationEndpointRequest notificationEndpoint. */
                    public notificationEndpoint: string;

                    /** DeleteRegionNotificationEndpointRequest project. */
                    public project: string;

                    /** DeleteRegionNotificationEndpointRequest region. */
                    public region: string;

                    /** DeleteRegionNotificationEndpointRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteRegionNotificationEndpointRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionNotificationEndpointRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionNotificationEndpointRequest): google.cloud.compute.v1beta.DeleteRegionNotificationEndpointRequest;

                    /**
                     * Encodes the specified DeleteRegionNotificationEndpointRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message DeleteRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionNotificationEndpointRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message DeleteRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionNotificationEndpointRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionNotificationEndpointRequest;

                    /**
                     * Decodes a DeleteRegionNotificationEndpointRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionNotificationEndpointRequest;

                    /**
                     * Verifies a DeleteRegionNotificationEndpointRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionNotificationEndpointRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionNotificationEndpointRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionNotificationEndpointRequest;

                    /**
                     * Creates a plain object from a DeleteRegionNotificationEndpointRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionNotificationEndpointRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionNotificationEndpointRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionNotificationEndpointRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionNotificationEndpointRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionOperationRequest. */
                interface IDeleteRegionOperationRequest {

                    /** DeleteRegionOperationRequest operation */
                    operation?: (string|null);

                    /** DeleteRegionOperationRequest project */
                    project?: (string|null);

                    /** DeleteRegionOperationRequest region */
                    region?: (string|null);
                }

                /** Represents a DeleteRegionOperationRequest. */
                class DeleteRegionOperationRequest implements IDeleteRegionOperationRequest {

                    /**
                     * Constructs a new DeleteRegionOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionOperationRequest);

                    /** DeleteRegionOperationRequest operation. */
                    public operation: string;

                    /** DeleteRegionOperationRequest project. */
                    public project: string;

                    /** DeleteRegionOperationRequest region. */
                    public region: string;

                    /**
                     * Creates a new DeleteRegionOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionOperationRequest): google.cloud.compute.v1beta.DeleteRegionOperationRequest;

                    /**
                     * Encodes the specified DeleteRegionOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionOperationRequest.verify|verify} messages.
                     * @param message DeleteRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionOperationRequest.verify|verify} messages.
                     * @param message DeleteRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionOperationRequest;

                    /**
                     * Decodes a DeleteRegionOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionOperationRequest;

                    /**
                     * Verifies a DeleteRegionOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionOperationRequest;

                    /**
                     * Creates a plain object from a DeleteRegionOperationRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionOperationResponse. */
                interface IDeleteRegionOperationResponse {
                }

                /** Represents a DeleteRegionOperationResponse. */
                class DeleteRegionOperationResponse implements IDeleteRegionOperationResponse {

                    /**
                     * Constructs a new DeleteRegionOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionOperationResponse);

                    /**
                     * Creates a new DeleteRegionOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionOperationResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionOperationResponse): google.cloud.compute.v1beta.DeleteRegionOperationResponse;

                    /**
                     * Encodes the specified DeleteRegionOperationResponse message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionOperationResponse.verify|verify} messages.
                     * @param message DeleteRegionOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionOperationResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionOperationResponse.verify|verify} messages.
                     * @param message DeleteRegionOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionOperationResponse;

                    /**
                     * Decodes a DeleteRegionOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionOperationResponse;

                    /**
                     * Verifies a DeleteRegionOperationResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionOperationResponse;

                    /**
                     * Creates a plain object from a DeleteRegionOperationResponse message. Also converts values to other types if specified.
                     * @param message DeleteRegionOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionSecurityPolicyRequest. */
                interface IDeleteRegionSecurityPolicyRequest {

                    /** DeleteRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a DeleteRegionSecurityPolicyRequest. */
                class DeleteRegionSecurityPolicyRequest implements IDeleteRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionSecurityPolicyRequest);

                    /** DeleteRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new DeleteRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionSecurityPolicyRequest): google.cloud.compute.v1beta.DeleteRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionSecurityPolicyRequest;

                    /**
                     * Decodes a DeleteRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionSecurityPolicyRequest;

                    /**
                     * Verifies a DeleteRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionSnapshotRequest. */
                interface IDeleteRegionSnapshotRequest {

                    /** DeleteRegionSnapshotRequest project */
                    project?: (string|null);

                    /** DeleteRegionSnapshotRequest region */
                    region?: (string|null);

                    /** DeleteRegionSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionSnapshotRequest snapshot */
                    snapshot?: (string|null);
                }

                /** Represents a DeleteRegionSnapshotRequest. */
                class DeleteRegionSnapshotRequest implements IDeleteRegionSnapshotRequest {

                    /**
                     * Constructs a new DeleteRegionSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionSnapshotRequest);

                    /** DeleteRegionSnapshotRequest project. */
                    public project: string;

                    /** DeleteRegionSnapshotRequest region. */
                    public region: string;

                    /** DeleteRegionSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionSnapshotRequest snapshot. */
                    public snapshot: string;

                    /**
                     * Creates a new DeleteRegionSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionSnapshotRequest): google.cloud.compute.v1beta.DeleteRegionSnapshotRequest;

                    /**
                     * Encodes the specified DeleteRegionSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionSnapshotRequest.verify|verify} messages.
                     * @param message DeleteRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionSnapshotRequest.verify|verify} messages.
                     * @param message DeleteRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionSnapshotRequest;

                    /**
                     * Decodes a DeleteRegionSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionSnapshotRequest;

                    /**
                     * Verifies a DeleteRegionSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionSnapshotRequest;

                    /**
                     * Creates a plain object from a DeleteRegionSnapshotRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionSslCertificateRequest. */
                interface IDeleteRegionSslCertificateRequest {

                    /** DeleteRegionSslCertificateRequest project */
                    project?: (string|null);

                    /** DeleteRegionSslCertificateRequest region */
                    region?: (string|null);

                    /** DeleteRegionSslCertificateRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionSslCertificateRequest sslCertificate */
                    sslCertificate?: (string|null);
                }

                /** Represents a DeleteRegionSslCertificateRequest. */
                class DeleteRegionSslCertificateRequest implements IDeleteRegionSslCertificateRequest {

                    /**
                     * Constructs a new DeleteRegionSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionSslCertificateRequest);

                    /** DeleteRegionSslCertificateRequest project. */
                    public project: string;

                    /** DeleteRegionSslCertificateRequest region. */
                    public region: string;

                    /** DeleteRegionSslCertificateRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionSslCertificateRequest sslCertificate. */
                    public sslCertificate: string;

                    /**
                     * Creates a new DeleteRegionSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionSslCertificateRequest): google.cloud.compute.v1beta.DeleteRegionSslCertificateRequest;

                    /**
                     * Encodes the specified DeleteRegionSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionSslCertificateRequest.verify|verify} messages.
                     * @param message DeleteRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionSslCertificateRequest.verify|verify} messages.
                     * @param message DeleteRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionSslCertificateRequest;

                    /**
                     * Decodes a DeleteRegionSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionSslCertificateRequest;

                    /**
                     * Verifies a DeleteRegionSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionSslCertificateRequest;

                    /**
                     * Creates a plain object from a DeleteRegionSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionSslPolicyRequest. */
                interface IDeleteRegionSslPolicyRequest {

                    /** DeleteRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** DeleteRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** DeleteRegionSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a DeleteRegionSslPolicyRequest. */
                class DeleteRegionSslPolicyRequest implements IDeleteRegionSslPolicyRequest {

                    /**
                     * Constructs a new DeleteRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionSslPolicyRequest);

                    /** DeleteRegionSslPolicyRequest project. */
                    public project: string;

                    /** DeleteRegionSslPolicyRequest region. */
                    public region: string;

                    /** DeleteRegionSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /**
                     * Creates a new DeleteRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionSslPolicyRequest): google.cloud.compute.v1beta.DeleteRegionSslPolicyRequest;

                    /**
                     * Encodes the specified DeleteRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionSslPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionSslPolicyRequest.verify|verify} messages.
                     * @param message DeleteRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionSslPolicyRequest;

                    /**
                     * Decodes a DeleteRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionSslPolicyRequest;

                    /**
                     * Verifies a DeleteRegionSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionTargetHttpProxyRequest. */
                interface IDeleteRegionTargetHttpProxyRequest {

                    /** DeleteRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** DeleteRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** DeleteRegionTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);
                }

                /** Represents a DeleteRegionTargetHttpProxyRequest. */
                class DeleteRegionTargetHttpProxyRequest implements IDeleteRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new DeleteRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionTargetHttpProxyRequest);

                    /** DeleteRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** DeleteRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** DeleteRegionTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /**
                     * Creates a new DeleteRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionTargetHttpProxyRequest): google.cloud.compute.v1beta.DeleteRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified DeleteRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionTargetHttpProxyRequest;

                    /**
                     * Decodes a DeleteRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionTargetHttpProxyRequest;

                    /**
                     * Verifies a DeleteRegionTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionTargetHttpsProxyRequest. */
                interface IDeleteRegionTargetHttpsProxyRequest {

                    /** DeleteRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** DeleteRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** DeleteRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a DeleteRegionTargetHttpsProxyRequest. */
                class DeleteRegionTargetHttpsProxyRequest implements IDeleteRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new DeleteRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionTargetHttpsProxyRequest);

                    /** DeleteRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** DeleteRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** DeleteRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new DeleteRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionTargetHttpsProxyRequest): google.cloud.compute.v1beta.DeleteRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified DeleteRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a DeleteRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a DeleteRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionTargetTcpProxyRequest. */
                interface IDeleteRegionTargetTcpProxyRequest {

                    /** DeleteRegionTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** DeleteRegionTargetTcpProxyRequest region */
                    region?: (string|null);

                    /** DeleteRegionTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a DeleteRegionTargetTcpProxyRequest. */
                class DeleteRegionTargetTcpProxyRequest implements IDeleteRegionTargetTcpProxyRequest {

                    /**
                     * Constructs a new DeleteRegionTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionTargetTcpProxyRequest);

                    /** DeleteRegionTargetTcpProxyRequest project. */
                    public project: string;

                    /** DeleteRegionTargetTcpProxyRequest region. */
                    public region: string;

                    /** DeleteRegionTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new DeleteRegionTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionTargetTcpProxyRequest): google.cloud.compute.v1beta.DeleteRegionTargetTcpProxyRequest;

                    /**
                     * Encodes the specified DeleteRegionTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message DeleteRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionTargetTcpProxyRequest;

                    /**
                     * Decodes a DeleteRegionTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionTargetTcpProxyRequest;

                    /**
                     * Verifies a DeleteRegionTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a DeleteRegionTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRegionUrlMapRequest. */
                interface IDeleteRegionUrlMapRequest {

                    /** DeleteRegionUrlMapRequest project */
                    project?: (string|null);

                    /** DeleteRegionUrlMapRequest region */
                    region?: (string|null);

                    /** DeleteRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a DeleteRegionUrlMapRequest. */
                class DeleteRegionUrlMapRequest implements IDeleteRegionUrlMapRequest {

                    /**
                     * Constructs a new DeleteRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRegionUrlMapRequest);

                    /** DeleteRegionUrlMapRequest project. */
                    public project: string;

                    /** DeleteRegionUrlMapRequest region. */
                    public region: string;

                    /** DeleteRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new DeleteRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRegionUrlMapRequest): google.cloud.compute.v1beta.DeleteRegionUrlMapRequest;

                    /**
                     * Encodes the specified DeleteRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionUrlMapRequest.verify|verify} messages.
                     * @param message DeleteRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRegionUrlMapRequest.verify|verify} messages.
                     * @param message DeleteRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRegionUrlMapRequest;

                    /**
                     * Decodes a DeleteRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRegionUrlMapRequest;

                    /**
                     * Verifies a DeleteRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a DeleteRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message DeleteRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteReservationRequest. */
                interface IDeleteReservationRequest {

                    /** DeleteReservationRequest project */
                    project?: (string|null);

                    /** DeleteReservationRequest requestId */
                    requestId?: (string|null);

                    /** DeleteReservationRequest reservation */
                    reservation?: (string|null);

                    /** DeleteReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteReservationRequest. */
                class DeleteReservationRequest implements IDeleteReservationRequest {

                    /**
                     * Constructs a new DeleteReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteReservationRequest);

                    /** DeleteReservationRequest project. */
                    public project: string;

                    /** DeleteReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteReservationRequest reservation. */
                    public reservation: string;

                    /** DeleteReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteReservationRequest): google.cloud.compute.v1beta.DeleteReservationRequest;

                    /**
                     * Encodes the specified DeleteReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteReservationRequest.verify|verify} messages.
                     * @param message DeleteReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteReservationRequest.verify|verify} messages.
                     * @param message DeleteReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteReservationRequest;

                    /**
                     * Decodes a DeleteReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteReservationRequest;

                    /**
                     * Verifies a DeleteReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteReservationRequest;

                    /**
                     * Creates a plain object from a DeleteReservationRequest message. Also converts values to other types if specified.
                     * @param message DeleteReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteResourcePolicyRequest. */
                interface IDeleteResourcePolicyRequest {

                    /** DeleteResourcePolicyRequest project */
                    project?: (string|null);

                    /** DeleteResourcePolicyRequest region */
                    region?: (string|null);

                    /** DeleteResourcePolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteResourcePolicyRequest resourcePolicy */
                    resourcePolicy?: (string|null);
                }

                /** Represents a DeleteResourcePolicyRequest. */
                class DeleteResourcePolicyRequest implements IDeleteResourcePolicyRequest {

                    /**
                     * Constructs a new DeleteResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteResourcePolicyRequest);

                    /** DeleteResourcePolicyRequest project. */
                    public project: string;

                    /** DeleteResourcePolicyRequest region. */
                    public region: string;

                    /** DeleteResourcePolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteResourcePolicyRequest resourcePolicy. */
                    public resourcePolicy: string;

                    /**
                     * Creates a new DeleteResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteResourcePolicyRequest): google.cloud.compute.v1beta.DeleteResourcePolicyRequest;

                    /**
                     * Encodes the specified DeleteResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteResourcePolicyRequest.verify|verify} messages.
                     * @param message DeleteResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteResourcePolicyRequest.verify|verify} messages.
                     * @param message DeleteResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteResourcePolicyRequest;

                    /**
                     * Decodes a DeleteResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteResourcePolicyRequest;

                    /**
                     * Verifies a DeleteResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteResourcePolicyRequest;

                    /**
                     * Creates a plain object from a DeleteResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRolloutPlanRequest. */
                interface IDeleteRolloutPlanRequest {

                    /** DeleteRolloutPlanRequest project */
                    project?: (string|null);

                    /** DeleteRolloutPlanRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRolloutPlanRequest rolloutPlan */
                    rolloutPlan?: (string|null);
                }

                /** Represents a DeleteRolloutPlanRequest. */
                class DeleteRolloutPlanRequest implements IDeleteRolloutPlanRequest {

                    /**
                     * Constructs a new DeleteRolloutPlanRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRolloutPlanRequest);

                    /** DeleteRolloutPlanRequest project. */
                    public project: string;

                    /** DeleteRolloutPlanRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRolloutPlanRequest rolloutPlan. */
                    public rolloutPlan: string;

                    /**
                     * Creates a new DeleteRolloutPlanRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRolloutPlanRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRolloutPlanRequest): google.cloud.compute.v1beta.DeleteRolloutPlanRequest;

                    /**
                     * Encodes the specified DeleteRolloutPlanRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRolloutPlanRequest.verify|verify} messages.
                     * @param message DeleteRolloutPlanRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRolloutPlanRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRolloutPlanRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRolloutPlanRequest.verify|verify} messages.
                     * @param message DeleteRolloutPlanRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRolloutPlanRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRolloutPlanRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRolloutPlanRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRolloutPlanRequest;

                    /**
                     * Decodes a DeleteRolloutPlanRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRolloutPlanRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRolloutPlanRequest;

                    /**
                     * Verifies a DeleteRolloutPlanRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRolloutPlanRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRolloutPlanRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRolloutPlanRequest;

                    /**
                     * Creates a plain object from a DeleteRolloutPlanRequest message. Also converts values to other types if specified.
                     * @param message DeleteRolloutPlanRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRolloutPlanRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRolloutPlanRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRolloutPlanRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRolloutRequest. */
                interface IDeleteRolloutRequest {

                    /** DeleteRolloutRequest project */
                    project?: (string|null);

                    /** DeleteRolloutRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRolloutRequest rollout */
                    rollout?: (string|null);
                }

                /** Represents a DeleteRolloutRequest. */
                class DeleteRolloutRequest implements IDeleteRolloutRequest {

                    /**
                     * Constructs a new DeleteRolloutRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRolloutRequest);

                    /** DeleteRolloutRequest project. */
                    public project: string;

                    /** DeleteRolloutRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRolloutRequest rollout. */
                    public rollout: string;

                    /**
                     * Creates a new DeleteRolloutRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRolloutRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRolloutRequest): google.cloud.compute.v1beta.DeleteRolloutRequest;

                    /**
                     * Encodes the specified DeleteRolloutRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRolloutRequest.verify|verify} messages.
                     * @param message DeleteRolloutRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRolloutRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRolloutRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRolloutRequest.verify|verify} messages.
                     * @param message DeleteRolloutRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRolloutRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRolloutRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRolloutRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRolloutRequest;

                    /**
                     * Decodes a DeleteRolloutRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRolloutRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRolloutRequest;

                    /**
                     * Verifies a DeleteRolloutRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRolloutRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRolloutRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRolloutRequest;

                    /**
                     * Creates a plain object from a DeleteRolloutRequest message. Also converts values to other types if specified.
                     * @param message DeleteRolloutRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRolloutRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRolloutRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRolloutRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRoutePolicyRouterRequest. */
                interface IDeleteRoutePolicyRouterRequest {

                    /** DeleteRoutePolicyRouterRequest policy */
                    policy?: (string|null);

                    /** DeleteRoutePolicyRouterRequest project */
                    project?: (string|null);

                    /** DeleteRoutePolicyRouterRequest region */
                    region?: (string|null);

                    /** DeleteRoutePolicyRouterRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRoutePolicyRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a DeleteRoutePolicyRouterRequest. */
                class DeleteRoutePolicyRouterRequest implements IDeleteRoutePolicyRouterRequest {

                    /**
                     * Constructs a new DeleteRoutePolicyRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRoutePolicyRouterRequest);

                    /** DeleteRoutePolicyRouterRequest policy. */
                    public policy?: (string|null);

                    /** DeleteRoutePolicyRouterRequest project. */
                    public project: string;

                    /** DeleteRoutePolicyRouterRequest region. */
                    public region: string;

                    /** DeleteRoutePolicyRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRoutePolicyRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new DeleteRoutePolicyRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRoutePolicyRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRoutePolicyRouterRequest): google.cloud.compute.v1beta.DeleteRoutePolicyRouterRequest;

                    /**
                     * Encodes the specified DeleteRoutePolicyRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message DeleteRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRoutePolicyRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message DeleteRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRoutePolicyRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRoutePolicyRouterRequest;

                    /**
                     * Decodes a DeleteRoutePolicyRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRoutePolicyRouterRequest;

                    /**
                     * Verifies a DeleteRoutePolicyRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRoutePolicyRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRoutePolicyRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRoutePolicyRouterRequest;

                    /**
                     * Creates a plain object from a DeleteRoutePolicyRouterRequest message. Also converts values to other types if specified.
                     * @param message DeleteRoutePolicyRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRoutePolicyRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRoutePolicyRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRoutePolicyRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRouteRequest. */
                interface IDeleteRouteRequest {

                    /** DeleteRouteRequest project */
                    project?: (string|null);

                    /** DeleteRouteRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRouteRequest route */
                    route?: (string|null);
                }

                /** Represents a DeleteRouteRequest. */
                class DeleteRouteRequest implements IDeleteRouteRequest {

                    /**
                     * Constructs a new DeleteRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRouteRequest);

                    /** DeleteRouteRequest project. */
                    public project: string;

                    /** DeleteRouteRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRouteRequest route. */
                    public route: string;

                    /**
                     * Creates a new DeleteRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRouteRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRouteRequest): google.cloud.compute.v1beta.DeleteRouteRequest;

                    /**
                     * Encodes the specified DeleteRouteRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRouteRequest.verify|verify} messages.
                     * @param message DeleteRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRouteRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRouteRequest.verify|verify} messages.
                     * @param message DeleteRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRouteRequest;

                    /**
                     * Decodes a DeleteRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRouteRequest;

                    /**
                     * Verifies a DeleteRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRouteRequest;

                    /**
                     * Creates a plain object from a DeleteRouteRequest message. Also converts values to other types if specified.
                     * @param message DeleteRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRouterRequest. */
                interface IDeleteRouterRequest {

                    /** DeleteRouterRequest project */
                    project?: (string|null);

                    /** DeleteRouterRequest region */
                    region?: (string|null);

                    /** DeleteRouterRequest requestId */
                    requestId?: (string|null);

                    /** DeleteRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a DeleteRouterRequest. */
                class DeleteRouterRequest implements IDeleteRouterRequest {

                    /**
                     * Constructs a new DeleteRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteRouterRequest);

                    /** DeleteRouterRequest project. */
                    public project: string;

                    /** DeleteRouterRequest region. */
                    public region: string;

                    /** DeleteRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new DeleteRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteRouterRequest): google.cloud.compute.v1beta.DeleteRouterRequest;

                    /**
                     * Encodes the specified DeleteRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRouterRequest.verify|verify} messages.
                     * @param message DeleteRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteRouterRequest.verify|verify} messages.
                     * @param message DeleteRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteRouterRequest;

                    /**
                     * Decodes a DeleteRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteRouterRequest;

                    /**
                     * Verifies a DeleteRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteRouterRequest;

                    /**
                     * Creates a plain object from a DeleteRouterRequest message. Also converts values to other types if specified.
                     * @param message DeleteRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSecurityPolicyRequest. */
                interface IDeleteSecurityPolicyRequest {

                    /** DeleteSecurityPolicyRequest project */
                    project?: (string|null);

                    /** DeleteSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a DeleteSecurityPolicyRequest. */
                class DeleteSecurityPolicyRequest implements IDeleteSecurityPolicyRequest {

                    /**
                     * Constructs a new DeleteSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteSecurityPolicyRequest);

                    /** DeleteSecurityPolicyRequest project. */
                    public project: string;

                    /** DeleteSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new DeleteSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteSecurityPolicyRequest): google.cloud.compute.v1beta.DeleteSecurityPolicyRequest;

                    /**
                     * Encodes the specified DeleteSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSecurityPolicyRequest.verify|verify} messages.
                     * @param message DeleteSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteSecurityPolicyRequest;

                    /**
                     * Decodes a DeleteSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteSecurityPolicyRequest;

                    /**
                     * Verifies a DeleteSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteServiceAttachmentRequest. */
                interface IDeleteServiceAttachmentRequest {

                    /** DeleteServiceAttachmentRequest project */
                    project?: (string|null);

                    /** DeleteServiceAttachmentRequest region */
                    region?: (string|null);

                    /** DeleteServiceAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** DeleteServiceAttachmentRequest serviceAttachment */
                    serviceAttachment?: (string|null);
                }

                /** Represents a DeleteServiceAttachmentRequest. */
                class DeleteServiceAttachmentRequest implements IDeleteServiceAttachmentRequest {

                    /**
                     * Constructs a new DeleteServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteServiceAttachmentRequest);

                    /** DeleteServiceAttachmentRequest project. */
                    public project: string;

                    /** DeleteServiceAttachmentRequest region. */
                    public region: string;

                    /** DeleteServiceAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteServiceAttachmentRequest serviceAttachment. */
                    public serviceAttachment: string;

                    /**
                     * Creates a new DeleteServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteServiceAttachmentRequest): google.cloud.compute.v1beta.DeleteServiceAttachmentRequest;

                    /**
                     * Encodes the specified DeleteServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteServiceAttachmentRequest.verify|verify} messages.
                     * @param message DeleteServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteServiceAttachmentRequest.verify|verify} messages.
                     * @param message DeleteServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteServiceAttachmentRequest;

                    /**
                     * Decodes a DeleteServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteServiceAttachmentRequest;

                    /**
                     * Verifies a DeleteServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a DeleteServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message DeleteServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSignedUrlKeyBackendBucketRequest. */
                interface IDeleteSignedUrlKeyBackendBucketRequest {

                    /** DeleteSignedUrlKeyBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** DeleteSignedUrlKeyBackendBucketRequest keyName */
                    keyName?: (string|null);

                    /** DeleteSignedUrlKeyBackendBucketRequest project */
                    project?: (string|null);

                    /** DeleteSignedUrlKeyBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteSignedUrlKeyBackendBucketRequest. */
                class DeleteSignedUrlKeyBackendBucketRequest implements IDeleteSignedUrlKeyBackendBucketRequest {

                    /**
                     * Constructs a new DeleteSignedUrlKeyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendBucketRequest);

                    /** DeleteSignedUrlKeyBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** DeleteSignedUrlKeyBackendBucketRequest keyName. */
                    public keyName: string;

                    /** DeleteSignedUrlKeyBackendBucketRequest project. */
                    public project: string;

                    /** DeleteSignedUrlKeyBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteSignedUrlKeyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSignedUrlKeyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendBucketRequest): google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendBucketRequest;

                    /**
                     * Encodes the specified DeleteSignedUrlKeyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteSignedUrlKeyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSignedUrlKeyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendBucketRequest.verify|verify} messages.
                     * @param message DeleteSignedUrlKeyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSignedUrlKeyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSignedUrlKeyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendBucketRequest;

                    /**
                     * Decodes a DeleteSignedUrlKeyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSignedUrlKeyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendBucketRequest;

                    /**
                     * Verifies a DeleteSignedUrlKeyBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSignedUrlKeyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSignedUrlKeyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendBucketRequest;

                    /**
                     * Creates a plain object from a DeleteSignedUrlKeyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message DeleteSignedUrlKeyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSignedUrlKeyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSignedUrlKeyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSignedUrlKeyBackendServiceRequest. */
                interface IDeleteSignedUrlKeyBackendServiceRequest {

                    /** DeleteSignedUrlKeyBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** DeleteSignedUrlKeyBackendServiceRequest keyName */
                    keyName?: (string|null);

                    /** DeleteSignedUrlKeyBackendServiceRequest project */
                    project?: (string|null);

                    /** DeleteSignedUrlKeyBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteSignedUrlKeyBackendServiceRequest. */
                class DeleteSignedUrlKeyBackendServiceRequest implements IDeleteSignedUrlKeyBackendServiceRequest {

                    /**
                     * Constructs a new DeleteSignedUrlKeyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendServiceRequest);

                    /** DeleteSignedUrlKeyBackendServiceRequest backendService. */
                    public backendService: string;

                    /** DeleteSignedUrlKeyBackendServiceRequest keyName. */
                    public keyName: string;

                    /** DeleteSignedUrlKeyBackendServiceRequest project. */
                    public project: string;

                    /** DeleteSignedUrlKeyBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteSignedUrlKeyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSignedUrlKeyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendServiceRequest): google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendServiceRequest;

                    /**
                     * Encodes the specified DeleteSignedUrlKeyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteSignedUrlKeyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSignedUrlKeyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendServiceRequest.verify|verify} messages.
                     * @param message DeleteSignedUrlKeyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSignedUrlKeyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSignedUrlKeyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendServiceRequest;

                    /**
                     * Decodes a DeleteSignedUrlKeyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSignedUrlKeyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendServiceRequest;

                    /**
                     * Verifies a DeleteSignedUrlKeyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSignedUrlKeyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSignedUrlKeyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendServiceRequest;

                    /**
                     * Creates a plain object from a DeleteSignedUrlKeyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message DeleteSignedUrlKeyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteSignedUrlKeyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSignedUrlKeyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSignedUrlKeyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSnapshotGroupRequest. */
                interface IDeleteSnapshotGroupRequest {

                    /** DeleteSnapshotGroupRequest project */
                    project?: (string|null);

                    /** DeleteSnapshotGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSnapshotGroupRequest snapshotGroup */
                    snapshotGroup?: (string|null);
                }

                /** Represents a DeleteSnapshotGroupRequest. */
                class DeleteSnapshotGroupRequest implements IDeleteSnapshotGroupRequest {

                    /**
                     * Constructs a new DeleteSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteSnapshotGroupRequest);

                    /** DeleteSnapshotGroupRequest project. */
                    public project: string;

                    /** DeleteSnapshotGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSnapshotGroupRequest snapshotGroup. */
                    public snapshotGroup: string;

                    /**
                     * Creates a new DeleteSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteSnapshotGroupRequest): google.cloud.compute.v1beta.DeleteSnapshotGroupRequest;

                    /**
                     * Encodes the specified DeleteSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSnapshotGroupRequest.verify|verify} messages.
                     * @param message DeleteSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSnapshotGroupRequest.verify|verify} messages.
                     * @param message DeleteSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteSnapshotGroupRequest;

                    /**
                     * Decodes a DeleteSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteSnapshotGroupRequest;

                    /**
                     * Verifies a DeleteSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a DeleteSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSnapshotRequest. */
                interface IDeleteSnapshotRequest {

                    /** DeleteSnapshotRequest project */
                    project?: (string|null);

                    /** DeleteSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSnapshotRequest snapshot */
                    snapshot?: (string|null);
                }

                /** Represents a DeleteSnapshotRequest. */
                class DeleteSnapshotRequest implements IDeleteSnapshotRequest {

                    /**
                     * Constructs a new DeleteSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteSnapshotRequest);

                    /** DeleteSnapshotRequest project. */
                    public project: string;

                    /** DeleteSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSnapshotRequest snapshot. */
                    public snapshot: string;

                    /**
                     * Creates a new DeleteSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteSnapshotRequest): google.cloud.compute.v1beta.DeleteSnapshotRequest;

                    /**
                     * Encodes the specified DeleteSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSnapshotRequest.verify|verify} messages.
                     * @param message DeleteSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSnapshotRequest.verify|verify} messages.
                     * @param message DeleteSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteSnapshotRequest;

                    /**
                     * Decodes a DeleteSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteSnapshotRequest;

                    /**
                     * Verifies a DeleteSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteSnapshotRequest;

                    /**
                     * Creates a plain object from a DeleteSnapshotRequest message. Also converts values to other types if specified.
                     * @param message DeleteSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSslCertificateRequest. */
                interface IDeleteSslCertificateRequest {

                    /** DeleteSslCertificateRequest project */
                    project?: (string|null);

                    /** DeleteSslCertificateRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSslCertificateRequest sslCertificate */
                    sslCertificate?: (string|null);
                }

                /** Represents a DeleteSslCertificateRequest. */
                class DeleteSslCertificateRequest implements IDeleteSslCertificateRequest {

                    /**
                     * Constructs a new DeleteSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteSslCertificateRequest);

                    /** DeleteSslCertificateRequest project. */
                    public project: string;

                    /** DeleteSslCertificateRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSslCertificateRequest sslCertificate. */
                    public sslCertificate: string;

                    /**
                     * Creates a new DeleteSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteSslCertificateRequest): google.cloud.compute.v1beta.DeleteSslCertificateRequest;

                    /**
                     * Encodes the specified DeleteSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSslCertificateRequest.verify|verify} messages.
                     * @param message DeleteSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSslCertificateRequest.verify|verify} messages.
                     * @param message DeleteSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteSslCertificateRequest;

                    /**
                     * Decodes a DeleteSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteSslCertificateRequest;

                    /**
                     * Verifies a DeleteSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteSslCertificateRequest;

                    /**
                     * Creates a plain object from a DeleteSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message DeleteSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSslPolicyRequest. */
                interface IDeleteSslPolicyRequest {

                    /** DeleteSslPolicyRequest project */
                    project?: (string|null);

                    /** DeleteSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a DeleteSslPolicyRequest. */
                class DeleteSslPolicyRequest implements IDeleteSslPolicyRequest {

                    /**
                     * Constructs a new DeleteSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteSslPolicyRequest);

                    /** DeleteSslPolicyRequest project. */
                    public project: string;

                    /** DeleteSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /**
                     * Creates a new DeleteSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteSslPolicyRequest): google.cloud.compute.v1beta.DeleteSslPolicyRequest;

                    /**
                     * Encodes the specified DeleteSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSslPolicyRequest.verify|verify} messages.
                     * @param message DeleteSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSslPolicyRequest.verify|verify} messages.
                     * @param message DeleteSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteSslPolicyRequest;

                    /**
                     * Decodes a DeleteSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteSslPolicyRequest;

                    /**
                     * Verifies a DeleteSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteSslPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteStoragePoolRequest. */
                interface IDeleteStoragePoolRequest {

                    /** DeleteStoragePoolRequest project */
                    project?: (string|null);

                    /** DeleteStoragePoolRequest requestId */
                    requestId?: (string|null);

                    /** DeleteStoragePoolRequest storagePool */
                    storagePool?: (string|null);

                    /** DeleteStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteStoragePoolRequest. */
                class DeleteStoragePoolRequest implements IDeleteStoragePoolRequest {

                    /**
                     * Constructs a new DeleteStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteStoragePoolRequest);

                    /** DeleteStoragePoolRequest project. */
                    public project: string;

                    /** DeleteStoragePoolRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteStoragePoolRequest storagePool. */
                    public storagePool: string;

                    /** DeleteStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteStoragePoolRequest): google.cloud.compute.v1beta.DeleteStoragePoolRequest;

                    /**
                     * Encodes the specified DeleteStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteStoragePoolRequest.verify|verify} messages.
                     * @param message DeleteStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteStoragePoolRequest.verify|verify} messages.
                     * @param message DeleteStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteStoragePoolRequest;

                    /**
                     * Decodes a DeleteStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteStoragePoolRequest;

                    /**
                     * Verifies a DeleteStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteStoragePoolRequest;

                    /**
                     * Creates a plain object from a DeleteStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message DeleteStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteSubnetworkRequest. */
                interface IDeleteSubnetworkRequest {

                    /** DeleteSubnetworkRequest project */
                    project?: (string|null);

                    /** DeleteSubnetworkRequest region */
                    region?: (string|null);

                    /** DeleteSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** DeleteSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);
                }

                /** Represents a DeleteSubnetworkRequest. */
                class DeleteSubnetworkRequest implements IDeleteSubnetworkRequest {

                    /**
                     * Constructs a new DeleteSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteSubnetworkRequest);

                    /** DeleteSubnetworkRequest project. */
                    public project: string;

                    /** DeleteSubnetworkRequest region. */
                    public region: string;

                    /** DeleteSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /**
                     * Creates a new DeleteSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteSubnetworkRequest): google.cloud.compute.v1beta.DeleteSubnetworkRequest;

                    /**
                     * Encodes the specified DeleteSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSubnetworkRequest.verify|verify} messages.
                     * @param message DeleteSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteSubnetworkRequest.verify|verify} messages.
                     * @param message DeleteSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteSubnetworkRequest;

                    /**
                     * Decodes a DeleteSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteSubnetworkRequest;

                    /**
                     * Verifies a DeleteSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteSubnetworkRequest;

                    /**
                     * Creates a plain object from a DeleteSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message DeleteSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetGrpcProxyRequest. */
                interface IDeleteTargetGrpcProxyRequest {

                    /** DeleteTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetGrpcProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetGrpcProxyRequest targetGrpcProxy */
                    targetGrpcProxy?: (string|null);
                }

                /** Represents a DeleteTargetGrpcProxyRequest. */
                class DeleteTargetGrpcProxyRequest implements IDeleteTargetGrpcProxyRequest {

                    /**
                     * Constructs a new DeleteTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteTargetGrpcProxyRequest);

                    /** DeleteTargetGrpcProxyRequest project. */
                    public project: string;

                    /** DeleteTargetGrpcProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetGrpcProxyRequest targetGrpcProxy. */
                    public targetGrpcProxy: string;

                    /**
                     * Creates a new DeleteTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteTargetGrpcProxyRequest): google.cloud.compute.v1beta.DeleteTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteTargetGrpcProxyRequest;

                    /**
                     * Decodes a DeleteTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteTargetGrpcProxyRequest;

                    /**
                     * Verifies a DeleteTargetGrpcProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetHttpProxyRequest. */
                interface IDeleteTargetHttpProxyRequest {

                    /** DeleteTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);
                }

                /** Represents a DeleteTargetHttpProxyRequest. */
                class DeleteTargetHttpProxyRequest implements IDeleteTargetHttpProxyRequest {

                    /**
                     * Constructs a new DeleteTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteTargetHttpProxyRequest);

                    /** DeleteTargetHttpProxyRequest project. */
                    public project: string;

                    /** DeleteTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /**
                     * Creates a new DeleteTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteTargetHttpProxyRequest): google.cloud.compute.v1beta.DeleteTargetHttpProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetHttpProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetHttpProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteTargetHttpProxyRequest;

                    /**
                     * Decodes a DeleteTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteTargetHttpProxyRequest;

                    /**
                     * Verifies a DeleteTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetHttpsProxyRequest. */
                interface IDeleteTargetHttpsProxyRequest {

                    /** DeleteTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a DeleteTargetHttpsProxyRequest. */
                class DeleteTargetHttpsProxyRequest implements IDeleteTargetHttpsProxyRequest {

                    /**
                     * Constructs a new DeleteTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteTargetHttpsProxyRequest);

                    /** DeleteTargetHttpsProxyRequest project. */
                    public project: string;

                    /** DeleteTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new DeleteTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteTargetHttpsProxyRequest): google.cloud.compute.v1beta.DeleteTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteTargetHttpsProxyRequest;

                    /**
                     * Decodes a DeleteTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteTargetHttpsProxyRequest;

                    /**
                     * Verifies a DeleteTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetInstanceRequest. */
                interface IDeleteTargetInstanceRequest {

                    /** DeleteTargetInstanceRequest project */
                    project?: (string|null);

                    /** DeleteTargetInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetInstanceRequest targetInstance */
                    targetInstance?: (string|null);

                    /** DeleteTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteTargetInstanceRequest. */
                class DeleteTargetInstanceRequest implements IDeleteTargetInstanceRequest {

                    /**
                     * Constructs a new DeleteTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteTargetInstanceRequest);

                    /** DeleteTargetInstanceRequest project. */
                    public project: string;

                    /** DeleteTargetInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetInstanceRequest targetInstance. */
                    public targetInstance: string;

                    /** DeleteTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteTargetInstanceRequest): google.cloud.compute.v1beta.DeleteTargetInstanceRequest;

                    /**
                     * Encodes the specified DeleteTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetInstanceRequest.verify|verify} messages.
                     * @param message DeleteTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetInstanceRequest.verify|verify} messages.
                     * @param message DeleteTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteTargetInstanceRequest;

                    /**
                     * Decodes a DeleteTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteTargetInstanceRequest;

                    /**
                     * Verifies a DeleteTargetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteTargetInstanceRequest;

                    /**
                     * Creates a plain object from a DeleteTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetPoolRequest. */
                interface IDeleteTargetPoolRequest {

                    /** DeleteTargetPoolRequest project */
                    project?: (string|null);

                    /** DeleteTargetPoolRequest region */
                    region?: (string|null);

                    /** DeleteTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetPoolRequest targetPool */
                    targetPool?: (string|null);
                }

                /** Represents a DeleteTargetPoolRequest. */
                class DeleteTargetPoolRequest implements IDeleteTargetPoolRequest {

                    /**
                     * Constructs a new DeleteTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteTargetPoolRequest);

                    /** DeleteTargetPoolRequest project. */
                    public project: string;

                    /** DeleteTargetPoolRequest region. */
                    public region: string;

                    /** DeleteTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /**
                     * Creates a new DeleteTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteTargetPoolRequest): google.cloud.compute.v1beta.DeleteTargetPoolRequest;

                    /**
                     * Encodes the specified DeleteTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetPoolRequest.verify|verify} messages.
                     * @param message DeleteTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetPoolRequest.verify|verify} messages.
                     * @param message DeleteTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteTargetPoolRequest;

                    /**
                     * Decodes a DeleteTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteTargetPoolRequest;

                    /**
                     * Verifies a DeleteTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteTargetPoolRequest;

                    /**
                     * Creates a plain object from a DeleteTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetSslProxyRequest. */
                interface IDeleteTargetSslProxyRequest {

                    /** DeleteTargetSslProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a DeleteTargetSslProxyRequest. */
                class DeleteTargetSslProxyRequest implements IDeleteTargetSslProxyRequest {

                    /**
                     * Constructs a new DeleteTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteTargetSslProxyRequest);

                    /** DeleteTargetSslProxyRequest project. */
                    public project: string;

                    /** DeleteTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new DeleteTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteTargetSslProxyRequest): google.cloud.compute.v1beta.DeleteTargetSslProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetSslProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetSslProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteTargetSslProxyRequest;

                    /**
                     * Decodes a DeleteTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteTargetSslProxyRequest;

                    /**
                     * Verifies a DeleteTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetTcpProxyRequest. */
                interface IDeleteTargetTcpProxyRequest {

                    /** DeleteTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** DeleteTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a DeleteTargetTcpProxyRequest. */
                class DeleteTargetTcpProxyRequest implements IDeleteTargetTcpProxyRequest {

                    /**
                     * Constructs a new DeleteTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteTargetTcpProxyRequest);

                    /** DeleteTargetTcpProxyRequest project. */
                    public project: string;

                    /** DeleteTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new DeleteTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteTargetTcpProxyRequest): google.cloud.compute.v1beta.DeleteTargetTcpProxyRequest;

                    /**
                     * Encodes the specified DeleteTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetTcpProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetTcpProxyRequest.verify|verify} messages.
                     * @param message DeleteTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteTargetTcpProxyRequest;

                    /**
                     * Decodes a DeleteTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteTargetTcpProxyRequest;

                    /**
                     * Verifies a DeleteTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a DeleteTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteTargetVpnGatewayRequest. */
                interface IDeleteTargetVpnGatewayRequest {

                    /** DeleteTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** DeleteTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** DeleteTargetVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** DeleteTargetVpnGatewayRequest targetVpnGateway */
                    targetVpnGateway?: (string|null);
                }

                /** Represents a DeleteTargetVpnGatewayRequest. */
                class DeleteTargetVpnGatewayRequest implements IDeleteTargetVpnGatewayRequest {

                    /**
                     * Constructs a new DeleteTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteTargetVpnGatewayRequest);

                    /** DeleteTargetVpnGatewayRequest project. */
                    public project: string;

                    /** DeleteTargetVpnGatewayRequest region. */
                    public region: string;

                    /** DeleteTargetVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteTargetVpnGatewayRequest targetVpnGateway. */
                    public targetVpnGateway: string;

                    /**
                     * Creates a new DeleteTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteTargetVpnGatewayRequest): google.cloud.compute.v1beta.DeleteTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified DeleteTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteTargetVpnGatewayRequest;

                    /**
                     * Decodes a DeleteTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteTargetVpnGatewayRequest;

                    /**
                     * Verifies a DeleteTargetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a DeleteTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message DeleteTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteUrlMapRequest. */
                interface IDeleteUrlMapRequest {

                    /** DeleteUrlMapRequest project */
                    project?: (string|null);

                    /** DeleteUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** DeleteUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a DeleteUrlMapRequest. */
                class DeleteUrlMapRequest implements IDeleteUrlMapRequest {

                    /**
                     * Constructs a new DeleteUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteUrlMapRequest);

                    /** DeleteUrlMapRequest project. */
                    public project: string;

                    /** DeleteUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new DeleteUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteUrlMapRequest): google.cloud.compute.v1beta.DeleteUrlMapRequest;

                    /**
                     * Encodes the specified DeleteUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteUrlMapRequest.verify|verify} messages.
                     * @param message DeleteUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteUrlMapRequest.verify|verify} messages.
                     * @param message DeleteUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteUrlMapRequest;

                    /**
                     * Decodes a DeleteUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteUrlMapRequest;

                    /**
                     * Verifies a DeleteUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteUrlMapRequest;

                    /**
                     * Creates a plain object from a DeleteUrlMapRequest message. Also converts values to other types if specified.
                     * @param message DeleteUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteVpnGatewayRequest. */
                interface IDeleteVpnGatewayRequest {

                    /** DeleteVpnGatewayRequest project */
                    project?: (string|null);

                    /** DeleteVpnGatewayRequest region */
                    region?: (string|null);

                    /** DeleteVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** DeleteVpnGatewayRequest vpnGateway */
                    vpnGateway?: (string|null);
                }

                /** Represents a DeleteVpnGatewayRequest. */
                class DeleteVpnGatewayRequest implements IDeleteVpnGatewayRequest {

                    /**
                     * Constructs a new DeleteVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteVpnGatewayRequest);

                    /** DeleteVpnGatewayRequest project. */
                    public project: string;

                    /** DeleteVpnGatewayRequest region. */
                    public region: string;

                    /** DeleteVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteVpnGatewayRequest vpnGateway. */
                    public vpnGateway: string;

                    /**
                     * Creates a new DeleteVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteVpnGatewayRequest): google.cloud.compute.v1beta.DeleteVpnGatewayRequest;

                    /**
                     * Encodes the specified DeleteVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteVpnGatewayRequest.verify|verify} messages.
                     * @param message DeleteVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteVpnGatewayRequest;

                    /**
                     * Decodes a DeleteVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteVpnGatewayRequest;

                    /**
                     * Verifies a DeleteVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteVpnGatewayRequest;

                    /**
                     * Creates a plain object from a DeleteVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message DeleteVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteVpnTunnelRequest. */
                interface IDeleteVpnTunnelRequest {

                    /** DeleteVpnTunnelRequest project */
                    project?: (string|null);

                    /** DeleteVpnTunnelRequest region */
                    region?: (string|null);

                    /** DeleteVpnTunnelRequest requestId */
                    requestId?: (string|null);

                    /** DeleteVpnTunnelRequest vpnTunnel */
                    vpnTunnel?: (string|null);
                }

                /** Represents a DeleteVpnTunnelRequest. */
                class DeleteVpnTunnelRequest implements IDeleteVpnTunnelRequest {

                    /**
                     * Constructs a new DeleteVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteVpnTunnelRequest);

                    /** DeleteVpnTunnelRequest project. */
                    public project: string;

                    /** DeleteVpnTunnelRequest region. */
                    public region: string;

                    /** DeleteVpnTunnelRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteVpnTunnelRequest vpnTunnel. */
                    public vpnTunnel: string;

                    /**
                     * Creates a new DeleteVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteVpnTunnelRequest): google.cloud.compute.v1beta.DeleteVpnTunnelRequest;

                    /**
                     * Encodes the specified DeleteVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteVpnTunnelRequest.verify|verify} messages.
                     * @param message DeleteVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteVpnTunnelRequest.verify|verify} messages.
                     * @param message DeleteVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteVpnTunnelRequest;

                    /**
                     * Decodes a DeleteVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteVpnTunnelRequest;

                    /**
                     * Verifies a DeleteVpnTunnelRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteVpnTunnelRequest;

                    /**
                     * Creates a plain object from a DeleteVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message DeleteVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteWireGroupRequest. */
                interface IDeleteWireGroupRequest {

                    /** DeleteWireGroupRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** DeleteWireGroupRequest project */
                    project?: (string|null);

                    /** DeleteWireGroupRequest requestId */
                    requestId?: (string|null);

                    /** DeleteWireGroupRequest wireGroup */
                    wireGroup?: (string|null);
                }

                /** Represents a DeleteWireGroupRequest. */
                class DeleteWireGroupRequest implements IDeleteWireGroupRequest {

                    /**
                     * Constructs a new DeleteWireGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteWireGroupRequest);

                    /** DeleteWireGroupRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** DeleteWireGroupRequest project. */
                    public project: string;

                    /** DeleteWireGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteWireGroupRequest wireGroup. */
                    public wireGroup: string;

                    /**
                     * Creates a new DeleteWireGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteWireGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteWireGroupRequest): google.cloud.compute.v1beta.DeleteWireGroupRequest;

                    /**
                     * Encodes the specified DeleteWireGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteWireGroupRequest.verify|verify} messages.
                     * @param message DeleteWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteWireGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteWireGroupRequest.verify|verify} messages.
                     * @param message DeleteWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteWireGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteWireGroupRequest;

                    /**
                     * Decodes a DeleteWireGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteWireGroupRequest;

                    /**
                     * Verifies a DeleteWireGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteWireGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteWireGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteWireGroupRequest;

                    /**
                     * Creates a plain object from a DeleteWireGroupRequest message. Also converts values to other types if specified.
                     * @param message DeleteWireGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteWireGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteWireGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteWireGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteZoneOperationRequest. */
                interface IDeleteZoneOperationRequest {

                    /** DeleteZoneOperationRequest operation */
                    operation?: (string|null);

                    /** DeleteZoneOperationRequest project */
                    project?: (string|null);

                    /** DeleteZoneOperationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteZoneOperationRequest. */
                class DeleteZoneOperationRequest implements IDeleteZoneOperationRequest {

                    /**
                     * Constructs a new DeleteZoneOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteZoneOperationRequest);

                    /** DeleteZoneOperationRequest operation. */
                    public operation: string;

                    /** DeleteZoneOperationRequest project. */
                    public project: string;

                    /** DeleteZoneOperationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteZoneOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteZoneOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteZoneOperationRequest): google.cloud.compute.v1beta.DeleteZoneOperationRequest;

                    /**
                     * Encodes the specified DeleteZoneOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteZoneOperationRequest.verify|verify} messages.
                     * @param message DeleteZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteZoneOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteZoneOperationRequest.verify|verify} messages.
                     * @param message DeleteZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteZoneOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteZoneOperationRequest;

                    /**
                     * Decodes a DeleteZoneOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteZoneOperationRequest;

                    /**
                     * Verifies a DeleteZoneOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteZoneOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteZoneOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteZoneOperationRequest;

                    /**
                     * Creates a plain object from a DeleteZoneOperationRequest message. Also converts values to other types if specified.
                     * @param message DeleteZoneOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteZoneOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteZoneOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteZoneOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteZoneOperationResponse. */
                interface IDeleteZoneOperationResponse {
                }

                /** Represents a DeleteZoneOperationResponse. */
                class DeleteZoneOperationResponse implements IDeleteZoneOperationResponse {

                    /**
                     * Constructs a new DeleteZoneOperationResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteZoneOperationResponse);

                    /**
                     * Creates a new DeleteZoneOperationResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteZoneOperationResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteZoneOperationResponse): google.cloud.compute.v1beta.DeleteZoneOperationResponse;

                    /**
                     * Encodes the specified DeleteZoneOperationResponse message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteZoneOperationResponse.verify|verify} messages.
                     * @param message DeleteZoneOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteZoneOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteZoneOperationResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteZoneOperationResponse.verify|verify} messages.
                     * @param message DeleteZoneOperationResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteZoneOperationResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteZoneOperationResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteZoneOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteZoneOperationResponse;

                    /**
                     * Decodes a DeleteZoneOperationResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteZoneOperationResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteZoneOperationResponse;

                    /**
                     * Verifies a DeleteZoneOperationResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteZoneOperationResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteZoneOperationResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteZoneOperationResponse;

                    /**
                     * Creates a plain object from a DeleteZoneOperationResponse message. Also converts values to other types if specified.
                     * @param message DeleteZoneOperationResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteZoneOperationResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteZoneOperationResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteZoneOperationResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteZoneVmExtensionPolicyRequest. */
                interface IDeleteZoneVmExtensionPolicyRequest {

                    /** DeleteZoneVmExtensionPolicyRequest project */
                    project?: (string|null);

                    /** DeleteZoneVmExtensionPolicyRequest requestId */
                    requestId?: (string|null);

                    /** DeleteZoneVmExtensionPolicyRequest vmExtensionPolicy */
                    vmExtensionPolicy?: (string|null);

                    /** DeleteZoneVmExtensionPolicyRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DeleteZoneVmExtensionPolicyRequest. */
                class DeleteZoneVmExtensionPolicyRequest implements IDeleteZoneVmExtensionPolicyRequest {

                    /**
                     * Constructs a new DeleteZoneVmExtensionPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeleteZoneVmExtensionPolicyRequest);

                    /** DeleteZoneVmExtensionPolicyRequest project. */
                    public project: string;

                    /** DeleteZoneVmExtensionPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** DeleteZoneVmExtensionPolicyRequest vmExtensionPolicy. */
                    public vmExtensionPolicy: string;

                    /** DeleteZoneVmExtensionPolicyRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DeleteZoneVmExtensionPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteZoneVmExtensionPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeleteZoneVmExtensionPolicyRequest): google.cloud.compute.v1beta.DeleteZoneVmExtensionPolicyRequest;

                    /**
                     * Encodes the specified DeleteZoneVmExtensionPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeleteZoneVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message DeleteZoneVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeleteZoneVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteZoneVmExtensionPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeleteZoneVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message DeleteZoneVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeleteZoneVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteZoneVmExtensionPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteZoneVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeleteZoneVmExtensionPolicyRequest;

                    /**
                     * Decodes a DeleteZoneVmExtensionPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteZoneVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeleteZoneVmExtensionPolicyRequest;

                    /**
                     * Verifies a DeleteZoneVmExtensionPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteZoneVmExtensionPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteZoneVmExtensionPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeleteZoneVmExtensionPolicyRequest;

                    /**
                     * Creates a plain object from a DeleteZoneVmExtensionPolicyRequest message. Also converts values to other types if specified.
                     * @param message DeleteZoneVmExtensionPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeleteZoneVmExtensionPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteZoneVmExtensionPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteZoneVmExtensionPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Denied. */
                interface IDenied {

                    /** Denied IPProtocol */
                    IPProtocol?: (string|null);

                    /** Denied ports */
                    ports?: (string[]|null);
                }

                /** Represents a Denied. */
                class Denied implements IDenied {

                    /**
                     * Constructs a new Denied.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDenied);

                    /** Denied IPProtocol. */
                    public IPProtocol?: (string|null);

                    /** Denied ports. */
                    public ports: string[];

                    /**
                     * Creates a new Denied instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Denied instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDenied): google.cloud.compute.v1beta.Denied;

                    /**
                     * Encodes the specified Denied message. Does not implicitly {@link google.cloud.compute.v1beta.Denied.verify|verify} messages.
                     * @param message Denied message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDenied, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Denied message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Denied.verify|verify} messages.
                     * @param message Denied message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDenied, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Denied message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Denied
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Denied;

                    /**
                     * Decodes a Denied message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Denied
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Denied;

                    /**
                     * Verifies a Denied message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Denied message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Denied
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Denied;

                    /**
                     * Creates a plain object from a Denied message. Also converts values to other types if specified.
                     * @param message Denied
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Denied, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Denied to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Denied
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeprecateImageRequest. */
                interface IDeprecateImageRequest {

                    /** DeprecateImageRequest deprecationStatusResource */
                    deprecationStatusResource?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** DeprecateImageRequest image */
                    image?: (string|null);

                    /** DeprecateImageRequest project */
                    project?: (string|null);

                    /** DeprecateImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeprecateImageRequest. */
                class DeprecateImageRequest implements IDeprecateImageRequest {

                    /**
                     * Constructs a new DeprecateImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeprecateImageRequest);

                    /** DeprecateImageRequest deprecationStatusResource. */
                    public deprecationStatusResource?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** DeprecateImageRequest image. */
                    public image: string;

                    /** DeprecateImageRequest project. */
                    public project: string;

                    /** DeprecateImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeprecateImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeprecateImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeprecateImageRequest): google.cloud.compute.v1beta.DeprecateImageRequest;

                    /**
                     * Encodes the specified DeprecateImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DeprecateImageRequest.verify|verify} messages.
                     * @param message DeprecateImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeprecateImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeprecateImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeprecateImageRequest.verify|verify} messages.
                     * @param message DeprecateImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeprecateImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeprecateImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeprecateImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeprecateImageRequest;

                    /**
                     * Decodes a DeprecateImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeprecateImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeprecateImageRequest;

                    /**
                     * Verifies a DeprecateImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeprecateImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeprecateImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeprecateImageRequest;

                    /**
                     * Creates a plain object from a DeprecateImageRequest message. Also converts values to other types if specified.
                     * @param message DeprecateImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeprecateImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeprecateImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeprecateImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeprecationStatus. */
                interface IDeprecationStatus {

                    /** DeprecationStatus deleted */
                    deleted?: (string|null);

                    /** DeprecationStatus deprecated */
                    deprecated?: (string|null);

                    /** DeprecationStatus obsolete */
                    obsolete?: (string|null);

                    /** DeprecationStatus replacement */
                    replacement?: (string|null);

                    /** DeprecationStatus state */
                    state?: (string|null);

                    /** DeprecationStatus stateOverride */
                    stateOverride?: (google.cloud.compute.v1beta.IRolloutPolicy|null);
                }

                /** Represents a DeprecationStatus. */
                class DeprecationStatus implements IDeprecationStatus {

                    /**
                     * Constructs a new DeprecationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDeprecationStatus);

                    /** DeprecationStatus deleted. */
                    public deleted?: (string|null);

                    /** DeprecationStatus deprecated. */
                    public deprecated?: (string|null);

                    /** DeprecationStatus obsolete. */
                    public obsolete?: (string|null);

                    /** DeprecationStatus replacement. */
                    public replacement?: (string|null);

                    /** DeprecationStatus state. */
                    public state?: (string|null);

                    /** DeprecationStatus stateOverride. */
                    public stateOverride?: (google.cloud.compute.v1beta.IRolloutPolicy|null);

                    /**
                     * Creates a new DeprecationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeprecationStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDeprecationStatus): google.cloud.compute.v1beta.DeprecationStatus;

                    /**
                     * Encodes the specified DeprecationStatus message. Does not implicitly {@link google.cloud.compute.v1beta.DeprecationStatus.verify|verify} messages.
                     * @param message DeprecationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDeprecationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeprecationStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DeprecationStatus.verify|verify} messages.
                     * @param message DeprecationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDeprecationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeprecationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeprecationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DeprecationStatus;

                    /**
                     * Decodes a DeprecationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeprecationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DeprecationStatus;

                    /**
                     * Verifies a DeprecationStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeprecationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeprecationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DeprecationStatus;

                    /**
                     * Creates a plain object from a DeprecationStatus message. Also converts values to other types if specified.
                     * @param message DeprecationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DeprecationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeprecationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeprecationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DeprecationStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DELETED = 120962041,
                        DEPRECATED = 463360435,
                        OBSOLETE = 66532761
                    }
                }

                /** Properties of a DetachDiskInstanceRequest. */
                interface IDetachDiskInstanceRequest {

                    /** DetachDiskInstanceRequest deviceName */
                    deviceName?: (string|null);

                    /** DetachDiskInstanceRequest instance */
                    instance?: (string|null);

                    /** DetachDiskInstanceRequest project */
                    project?: (string|null);

                    /** DetachDiskInstanceRequest requestId */
                    requestId?: (string|null);

                    /** DetachDiskInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DetachDiskInstanceRequest. */
                class DetachDiskInstanceRequest implements IDetachDiskInstanceRequest {

                    /**
                     * Constructs a new DetachDiskInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDetachDiskInstanceRequest);

                    /** DetachDiskInstanceRequest deviceName. */
                    public deviceName: string;

                    /** DetachDiskInstanceRequest instance. */
                    public instance: string;

                    /** DetachDiskInstanceRequest project. */
                    public project: string;

                    /** DetachDiskInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** DetachDiskInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DetachDiskInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetachDiskInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDetachDiskInstanceRequest): google.cloud.compute.v1beta.DetachDiskInstanceRequest;

                    /**
                     * Encodes the specified DetachDiskInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DetachDiskInstanceRequest.verify|verify} messages.
                     * @param message DetachDiskInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDetachDiskInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetachDiskInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DetachDiskInstanceRequest.verify|verify} messages.
                     * @param message DetachDiskInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDetachDiskInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetachDiskInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetachDiskInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DetachDiskInstanceRequest;

                    /**
                     * Decodes a DetachDiskInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetachDiskInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DetachDiskInstanceRequest;

                    /**
                     * Verifies a DetachDiskInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DetachDiskInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetachDiskInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DetachDiskInstanceRequest;

                    /**
                     * Creates a plain object from a DetachDiskInstanceRequest message. Also converts values to other types if specified.
                     * @param message DetachDiskInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DetachDiskInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetachDiskInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetachDiskInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest. */
                interface IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest {

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest globalNetworkEndpointGroupsDetachEndpointsRequestResource */
                    globalNetworkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest. */
                class DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest implements IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest globalNetworkEndpointGroupsDetachEndpointsRequestResource. */
                    public globalNetworkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1beta.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DetachNetworkEndpointsNetworkEndpointGroupRequest. */
                interface IDetachNetworkEndpointsNetworkEndpointGroupRequest {

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroupsDetachEndpointsRequestResource */
                    networkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1beta.INetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a DetachNetworkEndpointsNetworkEndpointGroupRequest. */
                class DetachNetworkEndpointsNetworkEndpointGroupRequest implements IDetachNetworkEndpointsNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DetachNetworkEndpointsNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDetachNetworkEndpointsNetworkEndpointGroupRequest);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest networkEndpointGroupsDetachEndpointsRequestResource. */
                    public networkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1beta.INetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** DetachNetworkEndpointsNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new DetachNetworkEndpointsNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetachNetworkEndpointsNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDetachNetworkEndpointsNetworkEndpointGroupRequest): google.cloud.compute.v1beta.DetachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DetachNetworkEndpointsNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DetachNetworkEndpointsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDetachNetworkEndpointsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetachNetworkEndpointsNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DetachNetworkEndpointsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDetachNetworkEndpointsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetachNetworkEndpointsNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetachNetworkEndpointsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DetachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DetachNetworkEndpointsNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetachNetworkEndpointsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DetachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DetachNetworkEndpointsNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DetachNetworkEndpointsNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetachNetworkEndpointsNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DetachNetworkEndpointsNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DetachNetworkEndpointsNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DetachNetworkEndpointsNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DetachNetworkEndpointsNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetachNetworkEndpointsNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetachNetworkEndpointsNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest. */
                interface IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest {

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest regionNetworkEndpointGroupsDetachEndpointsRequestResource */
                    regionNetworkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest. */
                class DetachNetworkEndpointsRegionNetworkEndpointGroupRequest implements IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new DetachNetworkEndpointsRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest regionNetworkEndpointGroupsDetachEndpointsRequestResource. */
                    public regionNetworkEndpointGroupsDetachEndpointsRequestResource?: (google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsDetachEndpointsRequest|null);

                    /** DetachNetworkEndpointsRegionNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DetachNetworkEndpointsRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DetachNetworkEndpointsRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest): google.cloud.compute.v1beta.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DetachNetworkEndpointsRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DetachNetworkEndpointsRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisableXpnHostProjectRequest. */
                interface IDisableXpnHostProjectRequest {

                    /** DisableXpnHostProjectRequest project */
                    project?: (string|null);

                    /** DisableXpnHostProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DisableXpnHostProjectRequest. */
                class DisableXpnHostProjectRequest implements IDisableXpnHostProjectRequest {

                    /**
                     * Constructs a new DisableXpnHostProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisableXpnHostProjectRequest);

                    /** DisableXpnHostProjectRequest project. */
                    public project: string;

                    /** DisableXpnHostProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DisableXpnHostProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisableXpnHostProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisableXpnHostProjectRequest): google.cloud.compute.v1beta.DisableXpnHostProjectRequest;

                    /**
                     * Encodes the specified DisableXpnHostProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DisableXpnHostProjectRequest.verify|verify} messages.
                     * @param message DisableXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisableXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisableXpnHostProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisableXpnHostProjectRequest.verify|verify} messages.
                     * @param message DisableXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisableXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisableXpnHostProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisableXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisableXpnHostProjectRequest;

                    /**
                     * Decodes a DisableXpnHostProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisableXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisableXpnHostProjectRequest;

                    /**
                     * Verifies a DisableXpnHostProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisableXpnHostProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisableXpnHostProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisableXpnHostProjectRequest;

                    /**
                     * Creates a plain object from a DisableXpnHostProjectRequest message. Also converts values to other types if specified.
                     * @param message DisableXpnHostProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisableXpnHostProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisableXpnHostProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisableXpnHostProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisableXpnResourceProjectRequest. */
                interface IDisableXpnResourceProjectRequest {

                    /** DisableXpnResourceProjectRequest project */
                    project?: (string|null);

                    /** DisableXpnResourceProjectRequest projectsDisableXpnResourceRequestResource */
                    projectsDisableXpnResourceRequestResource?: (google.cloud.compute.v1beta.IProjectsDisableXpnResourceRequest|null);

                    /** DisableXpnResourceProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DisableXpnResourceProjectRequest. */
                class DisableXpnResourceProjectRequest implements IDisableXpnResourceProjectRequest {

                    /**
                     * Constructs a new DisableXpnResourceProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisableXpnResourceProjectRequest);

                    /** DisableXpnResourceProjectRequest project. */
                    public project: string;

                    /** DisableXpnResourceProjectRequest projectsDisableXpnResourceRequestResource. */
                    public projectsDisableXpnResourceRequestResource?: (google.cloud.compute.v1beta.IProjectsDisableXpnResourceRequest|null);

                    /** DisableXpnResourceProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DisableXpnResourceProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisableXpnResourceProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisableXpnResourceProjectRequest): google.cloud.compute.v1beta.DisableXpnResourceProjectRequest;

                    /**
                     * Encodes the specified DisableXpnResourceProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DisableXpnResourceProjectRequest.verify|verify} messages.
                     * @param message DisableXpnResourceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisableXpnResourceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisableXpnResourceProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisableXpnResourceProjectRequest.verify|verify} messages.
                     * @param message DisableXpnResourceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisableXpnResourceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisableXpnResourceProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisableXpnResourceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisableXpnResourceProjectRequest;

                    /**
                     * Decodes a DisableXpnResourceProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisableXpnResourceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisableXpnResourceProjectRequest;

                    /**
                     * Verifies a DisableXpnResourceProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisableXpnResourceProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisableXpnResourceProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisableXpnResourceProjectRequest;

                    /**
                     * Creates a plain object from a DisableXpnResourceProjectRequest message. Also converts values to other types if specified.
                     * @param message DisableXpnResourceProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisableXpnResourceProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisableXpnResourceProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisableXpnResourceProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Disk. */
                interface IDisk {

                    /** Disk accessMode */
                    accessMode?: (string|null);

                    /** Disk architecture */
                    architecture?: (string|null);

                    /** Disk asyncPrimaryDisk */
                    asyncPrimaryDisk?: (google.cloud.compute.v1beta.IDiskAsyncReplication|null);

                    /** Disk asyncSecondaryDisks */
                    asyncSecondaryDisks?: ({ [k: string]: google.cloud.compute.v1beta.IDiskAsyncReplicationList }|null);

                    /** Disk creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Disk description */
                    description?: (string|null);

                    /** Disk diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Disk enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);

                    /** Disk eraseWindowsVssSignature */
                    eraseWindowsVssSignature?: (boolean|null);

                    /** Disk guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1beta.IGuestOsFeature[]|null);

                    /** Disk id */
                    id?: (number|Long|string|null);

                    /** Disk interface */
                    "interface"?: (string|null);

                    /** Disk kind */
                    kind?: (string|null);

                    /** Disk labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Disk labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Disk lastAttachTimestamp */
                    lastAttachTimestamp?: (string|null);

                    /** Disk lastDetachTimestamp */
                    lastDetachTimestamp?: (string|null);

                    /** Disk licenseCodes */
                    licenseCodes?: ((number|Long|string)[]|null);

                    /** Disk licenses */
                    licenses?: (string[]|null);

                    /** Disk locationHint */
                    locationHint?: (string|null);

                    /** Disk locked */
                    locked?: (boolean|null);

                    /** Disk multiWriter */
                    multiWriter?: (boolean|null);

                    /** Disk name */
                    name?: (string|null);

                    /** Disk options */
                    options?: (string|null);

                    /** Disk params */
                    params?: (google.cloud.compute.v1beta.IDiskParams|null);

                    /** Disk physicalBlockSizeBytes */
                    physicalBlockSizeBytes?: (number|Long|string|null);

                    /** Disk provisionedIops */
                    provisionedIops?: (number|Long|string|null);

                    /** Disk provisionedThroughput */
                    provisionedThroughput?: (number|Long|string|null);

                    /** Disk region */
                    region?: (string|null);

                    /** Disk replicaZones */
                    replicaZones?: (string[]|null);

                    /** Disk resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** Disk resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1beta.IDiskResourceStatus|null);

                    /** Disk satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** Disk satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Disk selfLink */
                    selfLink?: (string|null);

                    /** Disk sizeGb */
                    sizeGb?: (number|Long|string|null);

                    /** Disk sourceConsistencyGroupPolicy */
                    sourceConsistencyGroupPolicy?: (string|null);

                    /** Disk sourceConsistencyGroupPolicyId */
                    sourceConsistencyGroupPolicyId?: (string|null);

                    /** Disk sourceDisk */
                    sourceDisk?: (string|null);

                    /** Disk sourceDiskId */
                    sourceDiskId?: (string|null);

                    /** Disk sourceImage */
                    sourceImage?: (string|null);

                    /** Disk sourceImageEncryptionKey */
                    sourceImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Disk sourceImageId */
                    sourceImageId?: (string|null);

                    /** Disk sourceInstantSnapshot */
                    sourceInstantSnapshot?: (string|null);

                    /** Disk sourceInstantSnapshotId */
                    sourceInstantSnapshotId?: (string|null);

                    /** Disk sourceSnapshot */
                    sourceSnapshot?: (string|null);

                    /** Disk sourceSnapshotEncryptionKey */
                    sourceSnapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Disk sourceSnapshotId */
                    sourceSnapshotId?: (string|null);

                    /** Disk sourceStorageObject */
                    sourceStorageObject?: (string|null);

                    /** Disk status */
                    status?: (string|null);

                    /** Disk storagePool */
                    storagePool?: (string|null);

                    /** Disk storageType */
                    storageType?: (string|null);

                    /** Disk type */
                    type?: (string|null);

                    /** Disk userLicenses */
                    userLicenses?: (string[]|null);

                    /** Disk users */
                    users?: (string[]|null);

                    /** Disk zone */
                    zone?: (string|null);
                }

                /** Represents a Disk. */
                class Disk implements IDisk {

                    /**
                     * Constructs a new Disk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisk);

                    /** Disk accessMode. */
                    public accessMode?: (string|null);

                    /** Disk architecture. */
                    public architecture?: (string|null);

                    /** Disk asyncPrimaryDisk. */
                    public asyncPrimaryDisk?: (google.cloud.compute.v1beta.IDiskAsyncReplication|null);

                    /** Disk asyncSecondaryDisks. */
                    public asyncSecondaryDisks: { [k: string]: google.cloud.compute.v1beta.IDiskAsyncReplicationList };

                    /** Disk creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Disk description. */
                    public description?: (string|null);

                    /** Disk diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Disk enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /** Disk eraseWindowsVssSignature. */
                    public eraseWindowsVssSignature?: (boolean|null);

                    /** Disk guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1beta.IGuestOsFeature[];

                    /** Disk id. */
                    public id?: (number|Long|string|null);

                    /** Disk interface. */
                    public interface?: (string|null);

                    /** Disk kind. */
                    public kind?: (string|null);

                    /** Disk labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Disk labels. */
                    public labels: { [k: string]: string };

                    /** Disk lastAttachTimestamp. */
                    public lastAttachTimestamp?: (string|null);

                    /** Disk lastDetachTimestamp. */
                    public lastDetachTimestamp?: (string|null);

                    /** Disk licenseCodes. */
                    public licenseCodes: (number|Long|string)[];

                    /** Disk licenses. */
                    public licenses: string[];

                    /** Disk locationHint. */
                    public locationHint?: (string|null);

                    /** Disk locked. */
                    public locked?: (boolean|null);

                    /** Disk multiWriter. */
                    public multiWriter?: (boolean|null);

                    /** Disk name. */
                    public name?: (string|null);

                    /** Disk options. */
                    public options?: (string|null);

                    /** Disk params. */
                    public params?: (google.cloud.compute.v1beta.IDiskParams|null);

                    /** Disk physicalBlockSizeBytes. */
                    public physicalBlockSizeBytes?: (number|Long|string|null);

                    /** Disk provisionedIops. */
                    public provisionedIops?: (number|Long|string|null);

                    /** Disk provisionedThroughput. */
                    public provisionedThroughput?: (number|Long|string|null);

                    /** Disk region. */
                    public region?: (string|null);

                    /** Disk replicaZones. */
                    public replicaZones: string[];

                    /** Disk resourcePolicies. */
                    public resourcePolicies: string[];

                    /** Disk resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1beta.IDiskResourceStatus|null);

                    /** Disk satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Disk satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Disk selfLink. */
                    public selfLink?: (string|null);

                    /** Disk sizeGb. */
                    public sizeGb?: (number|Long|string|null);

                    /** Disk sourceConsistencyGroupPolicy. */
                    public sourceConsistencyGroupPolicy?: (string|null);

                    /** Disk sourceConsistencyGroupPolicyId. */
                    public sourceConsistencyGroupPolicyId?: (string|null);

                    /** Disk sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** Disk sourceDiskId. */
                    public sourceDiskId?: (string|null);

                    /** Disk sourceImage. */
                    public sourceImage?: (string|null);

                    /** Disk sourceImageEncryptionKey. */
                    public sourceImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Disk sourceImageId. */
                    public sourceImageId?: (string|null);

                    /** Disk sourceInstantSnapshot. */
                    public sourceInstantSnapshot?: (string|null);

                    /** Disk sourceInstantSnapshotId. */
                    public sourceInstantSnapshotId?: (string|null);

                    /** Disk sourceSnapshot. */
                    public sourceSnapshot?: (string|null);

                    /** Disk sourceSnapshotEncryptionKey. */
                    public sourceSnapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Disk sourceSnapshotId. */
                    public sourceSnapshotId?: (string|null);

                    /** Disk sourceStorageObject. */
                    public sourceStorageObject?: (string|null);

                    /** Disk status. */
                    public status?: (string|null);

                    /** Disk storagePool. */
                    public storagePool?: (string|null);

                    /** Disk storageType. */
                    public storageType?: (string|null);

                    /** Disk type. */
                    public type?: (string|null);

                    /** Disk userLicenses. */
                    public userLicenses: string[];

                    /** Disk users. */
                    public users: string[];

                    /** Disk zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Disk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Disk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisk): google.cloud.compute.v1beta.Disk;

                    /**
                     * Encodes the specified Disk message. Does not implicitly {@link google.cloud.compute.v1beta.Disk.verify|verify} messages.
                     * @param message Disk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Disk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Disk.verify|verify} messages.
                     * @param message Disk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Disk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Disk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Disk;

                    /**
                     * Decodes a Disk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Disk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Disk;

                    /**
                     * Verifies a Disk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Disk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Disk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Disk;

                    /**
                     * Creates a plain object from a Disk message. Also converts values to other types if specified.
                     * @param message Disk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Disk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Disk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Disk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Disk {

                    /** AccessMode enum. */
                    enum AccessMode {
                        UNDEFINED_ACCESS_MODE = 0,
                        READ_ONLY_MANY = 63460265,
                        READ_WRITE_MANY = 488743208,
                        READ_WRITE_SINGLE = 99323089
                    }

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** Interface enum. */
                    enum Interface {
                        UNDEFINED_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686,
                        UNSPECIFIED = 526786327
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963,
                        RESTORING = 404263851,
                        UNAVAILABLE = 413756464
                    }

                    /** StorageType enum. */
                    enum StorageType {
                        UNDEFINED_STORAGE_TYPE = 0,
                        HDD = 71368,
                        SSD = 82404
                    }
                }

                /** Properties of a DiskAggregatedList. */
                interface IDiskAggregatedList {

                    /** DiskAggregatedList id */
                    id?: (string|null);

                    /** DiskAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IDisksScopedList }|null);

                    /** DiskAggregatedList kind */
                    kind?: (string|null);

                    /** DiskAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** DiskAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** DiskAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** DiskAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a DiskAggregatedList. */
                class DiskAggregatedList implements IDiskAggregatedList {

                    /**
                     * Constructs a new DiskAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskAggregatedList);

                    /** DiskAggregatedList id. */
                    public id?: (string|null);

                    /** DiskAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IDisksScopedList };

                    /** DiskAggregatedList kind. */
                    public kind?: (string|null);

                    /** DiskAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** DiskAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** DiskAggregatedList unreachables. */
                    public unreachables: string[];

                    /** DiskAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new DiskAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskAggregatedList): google.cloud.compute.v1beta.DiskAggregatedList;

                    /**
                     * Encodes the specified DiskAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.DiskAggregatedList.verify|verify} messages.
                     * @param message DiskAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskAggregatedList.verify|verify} messages.
                     * @param message DiskAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskAggregatedList;

                    /**
                     * Decodes a DiskAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskAggregatedList;

                    /**
                     * Verifies a DiskAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskAggregatedList;

                    /**
                     * Creates a plain object from a DiskAggregatedList message. Also converts values to other types if specified.
                     * @param message DiskAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskAsyncReplication. */
                interface IDiskAsyncReplication {

                    /** DiskAsyncReplication consistencyGroupPolicy */
                    consistencyGroupPolicy?: (string|null);

                    /** DiskAsyncReplication consistencyGroupPolicyId */
                    consistencyGroupPolicyId?: (string|null);

                    /** DiskAsyncReplication disk */
                    disk?: (string|null);

                    /** DiskAsyncReplication diskId */
                    diskId?: (string|null);
                }

                /** Represents a DiskAsyncReplication. */
                class DiskAsyncReplication implements IDiskAsyncReplication {

                    /**
                     * Constructs a new DiskAsyncReplication.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskAsyncReplication);

                    /** DiskAsyncReplication consistencyGroupPolicy. */
                    public consistencyGroupPolicy?: (string|null);

                    /** DiskAsyncReplication consistencyGroupPolicyId. */
                    public consistencyGroupPolicyId?: (string|null);

                    /** DiskAsyncReplication disk. */
                    public disk?: (string|null);

                    /** DiskAsyncReplication diskId. */
                    public diskId?: (string|null);

                    /**
                     * Creates a new DiskAsyncReplication instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskAsyncReplication instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskAsyncReplication): google.cloud.compute.v1beta.DiskAsyncReplication;

                    /**
                     * Encodes the specified DiskAsyncReplication message. Does not implicitly {@link google.cloud.compute.v1beta.DiskAsyncReplication.verify|verify} messages.
                     * @param message DiskAsyncReplication message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskAsyncReplication, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskAsyncReplication message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskAsyncReplication.verify|verify} messages.
                     * @param message DiskAsyncReplication message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskAsyncReplication, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskAsyncReplication message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskAsyncReplication
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskAsyncReplication;

                    /**
                     * Decodes a DiskAsyncReplication message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskAsyncReplication
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskAsyncReplication;

                    /**
                     * Verifies a DiskAsyncReplication message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskAsyncReplication message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskAsyncReplication
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskAsyncReplication;

                    /**
                     * Creates a plain object from a DiskAsyncReplication message. Also converts values to other types if specified.
                     * @param message DiskAsyncReplication
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskAsyncReplication, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskAsyncReplication to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskAsyncReplication
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskAsyncReplicationList. */
                interface IDiskAsyncReplicationList {

                    /** DiskAsyncReplicationList asyncReplicationDisk */
                    asyncReplicationDisk?: (google.cloud.compute.v1beta.IDiskAsyncReplication|null);
                }

                /** Represents a DiskAsyncReplicationList. */
                class DiskAsyncReplicationList implements IDiskAsyncReplicationList {

                    /**
                     * Constructs a new DiskAsyncReplicationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskAsyncReplicationList);

                    /** DiskAsyncReplicationList asyncReplicationDisk. */
                    public asyncReplicationDisk?: (google.cloud.compute.v1beta.IDiskAsyncReplication|null);

                    /**
                     * Creates a new DiskAsyncReplicationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskAsyncReplicationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskAsyncReplicationList): google.cloud.compute.v1beta.DiskAsyncReplicationList;

                    /**
                     * Encodes the specified DiskAsyncReplicationList message. Does not implicitly {@link google.cloud.compute.v1beta.DiskAsyncReplicationList.verify|verify} messages.
                     * @param message DiskAsyncReplicationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskAsyncReplicationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskAsyncReplicationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskAsyncReplicationList.verify|verify} messages.
                     * @param message DiskAsyncReplicationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskAsyncReplicationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskAsyncReplicationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskAsyncReplicationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskAsyncReplicationList;

                    /**
                     * Decodes a DiskAsyncReplicationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskAsyncReplicationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskAsyncReplicationList;

                    /**
                     * Verifies a DiskAsyncReplicationList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskAsyncReplicationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskAsyncReplicationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskAsyncReplicationList;

                    /**
                     * Creates a plain object from a DiskAsyncReplicationList message. Also converts values to other types if specified.
                     * @param message DiskAsyncReplicationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskAsyncReplicationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskAsyncReplicationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskAsyncReplicationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskInstantiationConfig. */
                interface IDiskInstantiationConfig {

                    /** DiskInstantiationConfig autoDelete */
                    autoDelete?: (boolean|null);

                    /** DiskInstantiationConfig customImage */
                    customImage?: (string|null);

                    /** DiskInstantiationConfig deviceName */
                    deviceName?: (string|null);

                    /** DiskInstantiationConfig instantiateFrom */
                    instantiateFrom?: (string|null);
                }

                /** Represents a DiskInstantiationConfig. */
                class DiskInstantiationConfig implements IDiskInstantiationConfig {

                    /**
                     * Constructs a new DiskInstantiationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskInstantiationConfig);

                    /** DiskInstantiationConfig autoDelete. */
                    public autoDelete?: (boolean|null);

                    /** DiskInstantiationConfig customImage. */
                    public customImage?: (string|null);

                    /** DiskInstantiationConfig deviceName. */
                    public deviceName?: (string|null);

                    /** DiskInstantiationConfig instantiateFrom. */
                    public instantiateFrom?: (string|null);

                    /**
                     * Creates a new DiskInstantiationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskInstantiationConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskInstantiationConfig): google.cloud.compute.v1beta.DiskInstantiationConfig;

                    /**
                     * Encodes the specified DiskInstantiationConfig message. Does not implicitly {@link google.cloud.compute.v1beta.DiskInstantiationConfig.verify|verify} messages.
                     * @param message DiskInstantiationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskInstantiationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskInstantiationConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskInstantiationConfig.verify|verify} messages.
                     * @param message DiskInstantiationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskInstantiationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskInstantiationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskInstantiationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskInstantiationConfig;

                    /**
                     * Decodes a DiskInstantiationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskInstantiationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskInstantiationConfig;

                    /**
                     * Verifies a DiskInstantiationConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskInstantiationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskInstantiationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskInstantiationConfig;

                    /**
                     * Creates a plain object from a DiskInstantiationConfig message. Also converts values to other types if specified.
                     * @param message DiskInstantiationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskInstantiationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskInstantiationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskInstantiationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DiskInstantiationConfig {

                    /** InstantiateFrom enum. */
                    enum InstantiateFrom {
                        UNDEFINED_INSTANTIATE_FROM = 0,
                        ATTACH_READ_ONLY = 513775419,
                        BLANK = 63281460,
                        CUSTOM_IMAGE = 196311789,
                        DEFAULT = 115302945,
                        DO_NOT_INCLUDE = 104218952,
                        SOURCE_IMAGE = 62631959,
                        SOURCE_IMAGE_FAMILY = 76850316
                    }
                }

                /** Properties of a DiskList. */
                interface IDiskList {

                    /** DiskList id */
                    id?: (string|null);

                    /** DiskList items */
                    items?: (google.cloud.compute.v1beta.IDisk[]|null);

                    /** DiskList kind */
                    kind?: (string|null);

                    /** DiskList nextPageToken */
                    nextPageToken?: (string|null);

                    /** DiskList selfLink */
                    selfLink?: (string|null);

                    /** DiskList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a DiskList. */
                class DiskList implements IDiskList {

                    /**
                     * Constructs a new DiskList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskList);

                    /** DiskList id. */
                    public id?: (string|null);

                    /** DiskList items. */
                    public items: google.cloud.compute.v1beta.IDisk[];

                    /** DiskList kind. */
                    public kind?: (string|null);

                    /** DiskList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** DiskList selfLink. */
                    public selfLink?: (string|null);

                    /** DiskList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new DiskList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskList): google.cloud.compute.v1beta.DiskList;

                    /**
                     * Encodes the specified DiskList message. Does not implicitly {@link google.cloud.compute.v1beta.DiskList.verify|verify} messages.
                     * @param message DiskList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskList.verify|verify} messages.
                     * @param message DiskList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskList;

                    /**
                     * Decodes a DiskList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskList;

                    /**
                     * Verifies a DiskList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskList;

                    /**
                     * Creates a plain object from a DiskList message. Also converts values to other types if specified.
                     * @param message DiskList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskMoveRequest. */
                interface IDiskMoveRequest {

                    /** DiskMoveRequest destinationZone */
                    destinationZone?: (string|null);

                    /** DiskMoveRequest targetDisk */
                    targetDisk?: (string|null);
                }

                /** Represents a DiskMoveRequest. */
                class DiskMoveRequest implements IDiskMoveRequest {

                    /**
                     * Constructs a new DiskMoveRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskMoveRequest);

                    /** DiskMoveRequest destinationZone. */
                    public destinationZone?: (string|null);

                    /** DiskMoveRequest targetDisk. */
                    public targetDisk?: (string|null);

                    /**
                     * Creates a new DiskMoveRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskMoveRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskMoveRequest): google.cloud.compute.v1beta.DiskMoveRequest;

                    /**
                     * Encodes the specified DiskMoveRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DiskMoveRequest.verify|verify} messages.
                     * @param message DiskMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskMoveRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskMoveRequest.verify|verify} messages.
                     * @param message DiskMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskMoveRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskMoveRequest;

                    /**
                     * Decodes a DiskMoveRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskMoveRequest;

                    /**
                     * Verifies a DiskMoveRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskMoveRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskMoveRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskMoveRequest;

                    /**
                     * Creates a plain object from a DiskMoveRequest message. Also converts values to other types if specified.
                     * @param message DiskMoveRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskMoveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskMoveRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskMoveRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskParams. */
                interface IDiskParams {

                    /** DiskParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a DiskParams. */
                class DiskParams implements IDiskParams {

                    /**
                     * Constructs a new DiskParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskParams);

                    /** DiskParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new DiskParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskParams): google.cloud.compute.v1beta.DiskParams;

                    /**
                     * Encodes the specified DiskParams message. Does not implicitly {@link google.cloud.compute.v1beta.DiskParams.verify|verify} messages.
                     * @param message DiskParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskParams.verify|verify} messages.
                     * @param message DiskParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskParams;

                    /**
                     * Decodes a DiskParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskParams;

                    /**
                     * Verifies a DiskParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskParams;

                    /**
                     * Creates a plain object from a DiskParams message. Also converts values to other types if specified.
                     * @param message DiskParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskResourceStatus. */
                interface IDiskResourceStatus {

                    /** DiskResourceStatus asyncPrimaryDisk */
                    asyncPrimaryDisk?: (google.cloud.compute.v1beta.IDiskResourceStatusAsyncReplicationStatus|null);

                    /** DiskResourceStatus asyncSecondaryDisks */
                    asyncSecondaryDisks?: ({ [k: string]: google.cloud.compute.v1beta.IDiskResourceStatusAsyncReplicationStatus }|null);
                }

                /** Represents a DiskResourceStatus. */
                class DiskResourceStatus implements IDiskResourceStatus {

                    /**
                     * Constructs a new DiskResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskResourceStatus);

                    /** DiskResourceStatus asyncPrimaryDisk. */
                    public asyncPrimaryDisk?: (google.cloud.compute.v1beta.IDiskResourceStatusAsyncReplicationStatus|null);

                    /** DiskResourceStatus asyncSecondaryDisks. */
                    public asyncSecondaryDisks: { [k: string]: google.cloud.compute.v1beta.IDiskResourceStatusAsyncReplicationStatus };

                    /**
                     * Creates a new DiskResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskResourceStatus): google.cloud.compute.v1beta.DiskResourceStatus;

                    /**
                     * Encodes the specified DiskResourceStatus message. Does not implicitly {@link google.cloud.compute.v1beta.DiskResourceStatus.verify|verify} messages.
                     * @param message DiskResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskResourceStatus.verify|verify} messages.
                     * @param message DiskResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskResourceStatus;

                    /**
                     * Decodes a DiskResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskResourceStatus;

                    /**
                     * Verifies a DiskResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskResourceStatus;

                    /**
                     * Creates a plain object from a DiskResourceStatus message. Also converts values to other types if specified.
                     * @param message DiskResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskResourceStatusAsyncReplicationStatus. */
                interface IDiskResourceStatusAsyncReplicationStatus {

                    /** DiskResourceStatusAsyncReplicationStatus state */
                    state?: (string|null);
                }

                /** Represents a DiskResourceStatusAsyncReplicationStatus. */
                class DiskResourceStatusAsyncReplicationStatus implements IDiskResourceStatusAsyncReplicationStatus {

                    /**
                     * Constructs a new DiskResourceStatusAsyncReplicationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskResourceStatusAsyncReplicationStatus);

                    /** DiskResourceStatusAsyncReplicationStatus state. */
                    public state?: (string|null);

                    /**
                     * Creates a new DiskResourceStatusAsyncReplicationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskResourceStatusAsyncReplicationStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskResourceStatusAsyncReplicationStatus): google.cloud.compute.v1beta.DiskResourceStatusAsyncReplicationStatus;

                    /**
                     * Encodes the specified DiskResourceStatusAsyncReplicationStatus message. Does not implicitly {@link google.cloud.compute.v1beta.DiskResourceStatusAsyncReplicationStatus.verify|verify} messages.
                     * @param message DiskResourceStatusAsyncReplicationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskResourceStatusAsyncReplicationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskResourceStatusAsyncReplicationStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskResourceStatusAsyncReplicationStatus.verify|verify} messages.
                     * @param message DiskResourceStatusAsyncReplicationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskResourceStatusAsyncReplicationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskResourceStatusAsyncReplicationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskResourceStatusAsyncReplicationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskResourceStatusAsyncReplicationStatus;

                    /**
                     * Decodes a DiskResourceStatusAsyncReplicationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskResourceStatusAsyncReplicationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskResourceStatusAsyncReplicationStatus;

                    /**
                     * Verifies a DiskResourceStatusAsyncReplicationStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskResourceStatusAsyncReplicationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskResourceStatusAsyncReplicationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskResourceStatusAsyncReplicationStatus;

                    /**
                     * Creates a plain object from a DiskResourceStatusAsyncReplicationStatus message. Also converts values to other types if specified.
                     * @param message DiskResourceStatusAsyncReplicationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskResourceStatusAsyncReplicationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskResourceStatusAsyncReplicationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskResourceStatusAsyncReplicationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DiskResourceStatusAsyncReplicationStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        CREATED = 135924424,
                        STARTING = 488820800,
                        STATE_UNSPECIFIED = 470755401,
                        STOPPED = 444276141,
                        STOPPING = 350791796
                    }
                }

                /** Properties of a DiskSettings. */
                interface IDiskSettings {

                    /** DiskSettings accessLocation */
                    accessLocation?: (google.cloud.compute.v1beta.IDiskSettingsAccessLocation|null);
                }

                /** Represents a DiskSettings. */
                class DiskSettings implements IDiskSettings {

                    /**
                     * Constructs a new DiskSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskSettings);

                    /** DiskSettings accessLocation. */
                    public accessLocation?: (google.cloud.compute.v1beta.IDiskSettingsAccessLocation|null);

                    /**
                     * Creates a new DiskSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskSettings): google.cloud.compute.v1beta.DiskSettings;

                    /**
                     * Encodes the specified DiskSettings message. Does not implicitly {@link google.cloud.compute.v1beta.DiskSettings.verify|verify} messages.
                     * @param message DiskSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskSettings.verify|verify} messages.
                     * @param message DiskSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskSettings;

                    /**
                     * Decodes a DiskSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskSettings;

                    /**
                     * Verifies a DiskSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskSettings;

                    /**
                     * Creates a plain object from a DiskSettings message. Also converts values to other types if specified.
                     * @param message DiskSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskSettingsAccessLocation. */
                interface IDiskSettingsAccessLocation {

                    /** DiskSettingsAccessLocation locations */
                    locations?: ({ [k: string]: google.cloud.compute.v1beta.IDiskSettingsAccessLocationAccessLocationPreference }|null);

                    /** DiskSettingsAccessLocation policy */
                    policy?: (string|null);
                }

                /** Represents a DiskSettingsAccessLocation. */
                class DiskSettingsAccessLocation implements IDiskSettingsAccessLocation {

                    /**
                     * Constructs a new DiskSettingsAccessLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskSettingsAccessLocation);

                    /** DiskSettingsAccessLocation locations. */
                    public locations: { [k: string]: google.cloud.compute.v1beta.IDiskSettingsAccessLocationAccessLocationPreference };

                    /** DiskSettingsAccessLocation policy. */
                    public policy?: (string|null);

                    /**
                     * Creates a new DiskSettingsAccessLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskSettingsAccessLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskSettingsAccessLocation): google.cloud.compute.v1beta.DiskSettingsAccessLocation;

                    /**
                     * Encodes the specified DiskSettingsAccessLocation message. Does not implicitly {@link google.cloud.compute.v1beta.DiskSettingsAccessLocation.verify|verify} messages.
                     * @param message DiskSettingsAccessLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskSettingsAccessLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskSettingsAccessLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskSettingsAccessLocation.verify|verify} messages.
                     * @param message DiskSettingsAccessLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskSettingsAccessLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskSettingsAccessLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskSettingsAccessLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskSettingsAccessLocation;

                    /**
                     * Decodes a DiskSettingsAccessLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskSettingsAccessLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskSettingsAccessLocation;

                    /**
                     * Verifies a DiskSettingsAccessLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskSettingsAccessLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskSettingsAccessLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskSettingsAccessLocation;

                    /**
                     * Creates a plain object from a DiskSettingsAccessLocation message. Also converts values to other types if specified.
                     * @param message DiskSettingsAccessLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskSettingsAccessLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskSettingsAccessLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskSettingsAccessLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DiskSettingsAccessLocation {

                    /** Policy enum. */
                    enum Policy {
                        UNDEFINED_POLICY = 0,
                        ALL_REGIONS = 273143585,
                        POLICY_UNSPECIFIED = 197974922,
                        SPECIFIC_REGIONS = 454128082
                    }
                }

                /** Properties of a DiskSettingsAccessLocationAccessLocationPreference. */
                interface IDiskSettingsAccessLocationAccessLocationPreference {

                    /** DiskSettingsAccessLocationAccessLocationPreference region */
                    region?: (string|null);
                }

                /** Represents a DiskSettingsAccessLocationAccessLocationPreference. */
                class DiskSettingsAccessLocationAccessLocationPreference implements IDiskSettingsAccessLocationAccessLocationPreference {

                    /**
                     * Constructs a new DiskSettingsAccessLocationAccessLocationPreference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskSettingsAccessLocationAccessLocationPreference);

                    /** DiskSettingsAccessLocationAccessLocationPreference region. */
                    public region?: (string|null);

                    /**
                     * Creates a new DiskSettingsAccessLocationAccessLocationPreference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskSettingsAccessLocationAccessLocationPreference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskSettingsAccessLocationAccessLocationPreference): google.cloud.compute.v1beta.DiskSettingsAccessLocationAccessLocationPreference;

                    /**
                     * Encodes the specified DiskSettingsAccessLocationAccessLocationPreference message. Does not implicitly {@link google.cloud.compute.v1beta.DiskSettingsAccessLocationAccessLocationPreference.verify|verify} messages.
                     * @param message DiskSettingsAccessLocationAccessLocationPreference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskSettingsAccessLocationAccessLocationPreference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskSettingsAccessLocationAccessLocationPreference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskSettingsAccessLocationAccessLocationPreference.verify|verify} messages.
                     * @param message DiskSettingsAccessLocationAccessLocationPreference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskSettingsAccessLocationAccessLocationPreference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskSettingsAccessLocationAccessLocationPreference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskSettingsAccessLocationAccessLocationPreference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskSettingsAccessLocationAccessLocationPreference;

                    /**
                     * Decodes a DiskSettingsAccessLocationAccessLocationPreference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskSettingsAccessLocationAccessLocationPreference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskSettingsAccessLocationAccessLocationPreference;

                    /**
                     * Verifies a DiskSettingsAccessLocationAccessLocationPreference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskSettingsAccessLocationAccessLocationPreference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskSettingsAccessLocationAccessLocationPreference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskSettingsAccessLocationAccessLocationPreference;

                    /**
                     * Creates a plain object from a DiskSettingsAccessLocationAccessLocationPreference message. Also converts values to other types if specified.
                     * @param message DiskSettingsAccessLocationAccessLocationPreference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskSettingsAccessLocationAccessLocationPreference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskSettingsAccessLocationAccessLocationPreference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskSettingsAccessLocationAccessLocationPreference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskType. */
                interface IDiskType {

                    /** DiskType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** DiskType defaultDiskSizeGb */
                    defaultDiskSizeGb?: (number|Long|string|null);

                    /** DiskType deprecated */
                    deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** DiskType description */
                    description?: (string|null);

                    /** DiskType id */
                    id?: (number|Long|string|null);

                    /** DiskType kind */
                    kind?: (string|null);

                    /** DiskType name */
                    name?: (string|null);

                    /** DiskType region */
                    region?: (string|null);

                    /** DiskType selfLink */
                    selfLink?: (string|null);

                    /** DiskType validDiskSize */
                    validDiskSize?: (string|null);

                    /** DiskType zone */
                    zone?: (string|null);
                }

                /** Represents a DiskType. */
                class DiskType implements IDiskType {

                    /**
                     * Constructs a new DiskType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskType);

                    /** DiskType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** DiskType defaultDiskSizeGb. */
                    public defaultDiskSizeGb?: (number|Long|string|null);

                    /** DiskType deprecated. */
                    public deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** DiskType description. */
                    public description?: (string|null);

                    /** DiskType id. */
                    public id?: (number|Long|string|null);

                    /** DiskType kind. */
                    public kind?: (string|null);

                    /** DiskType name. */
                    public name?: (string|null);

                    /** DiskType region. */
                    public region?: (string|null);

                    /** DiskType selfLink. */
                    public selfLink?: (string|null);

                    /** DiskType validDiskSize. */
                    public validDiskSize?: (string|null);

                    /** DiskType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new DiskType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskType instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskType): google.cloud.compute.v1beta.DiskType;

                    /**
                     * Encodes the specified DiskType message. Does not implicitly {@link google.cloud.compute.v1beta.DiskType.verify|verify} messages.
                     * @param message DiskType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskType message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskType.verify|verify} messages.
                     * @param message DiskType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskType;

                    /**
                     * Decodes a DiskType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskType;

                    /**
                     * Verifies a DiskType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskType;

                    /**
                     * Creates a plain object from a DiskType message. Also converts values to other types if specified.
                     * @param message DiskType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskTypeAggregatedList. */
                interface IDiskTypeAggregatedList {

                    /** DiskTypeAggregatedList id */
                    id?: (string|null);

                    /** DiskTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IDiskTypesScopedList }|null);

                    /** DiskTypeAggregatedList kind */
                    kind?: (string|null);

                    /** DiskTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** DiskTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** DiskTypeAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** DiskTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a DiskTypeAggregatedList. */
                class DiskTypeAggregatedList implements IDiskTypeAggregatedList {

                    /**
                     * Constructs a new DiskTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskTypeAggregatedList);

                    /** DiskTypeAggregatedList id. */
                    public id?: (string|null);

                    /** DiskTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IDiskTypesScopedList };

                    /** DiskTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** DiskTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** DiskTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** DiskTypeAggregatedList unreachables. */
                    public unreachables: string[];

                    /** DiskTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new DiskTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskTypeAggregatedList): google.cloud.compute.v1beta.DiskTypeAggregatedList;

                    /**
                     * Encodes the specified DiskTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.DiskTypeAggregatedList.verify|verify} messages.
                     * @param message DiskTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskTypeAggregatedList.verify|verify} messages.
                     * @param message DiskTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskTypeAggregatedList;

                    /**
                     * Decodes a DiskTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskTypeAggregatedList;

                    /**
                     * Verifies a DiskTypeAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskTypeAggregatedList;

                    /**
                     * Creates a plain object from a DiskTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message DiskTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskTypeList. */
                interface IDiskTypeList {

                    /** DiskTypeList id */
                    id?: (string|null);

                    /** DiskTypeList items */
                    items?: (google.cloud.compute.v1beta.IDiskType[]|null);

                    /** DiskTypeList kind */
                    kind?: (string|null);

                    /** DiskTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** DiskTypeList selfLink */
                    selfLink?: (string|null);

                    /** DiskTypeList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a DiskTypeList. */
                class DiskTypeList implements IDiskTypeList {

                    /**
                     * Constructs a new DiskTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskTypeList);

                    /** DiskTypeList id. */
                    public id?: (string|null);

                    /** DiskTypeList items. */
                    public items: google.cloud.compute.v1beta.IDiskType[];

                    /** DiskTypeList kind. */
                    public kind?: (string|null);

                    /** DiskTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** DiskTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** DiskTypeList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new DiskTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskTypeList): google.cloud.compute.v1beta.DiskTypeList;

                    /**
                     * Encodes the specified DiskTypeList message. Does not implicitly {@link google.cloud.compute.v1beta.DiskTypeList.verify|verify} messages.
                     * @param message DiskTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskTypeList.verify|verify} messages.
                     * @param message DiskTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskTypeList;

                    /**
                     * Decodes a DiskTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskTypeList;

                    /**
                     * Verifies a DiskTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskTypeList;

                    /**
                     * Creates a plain object from a DiskTypeList message. Also converts values to other types if specified.
                     * @param message DiskTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiskTypesScopedList. */
                interface IDiskTypesScopedList {

                    /** DiskTypesScopedList diskTypes */
                    diskTypes?: (google.cloud.compute.v1beta.IDiskType[]|null);

                    /** DiskTypesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a DiskTypesScopedList. */
                class DiskTypesScopedList implements IDiskTypesScopedList {

                    /**
                     * Constructs a new DiskTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDiskTypesScopedList);

                    /** DiskTypesScopedList diskTypes. */
                    public diskTypes: google.cloud.compute.v1beta.IDiskType[];

                    /** DiskTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new DiskTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiskTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDiskTypesScopedList): google.cloud.compute.v1beta.DiskTypesScopedList;

                    /**
                     * Encodes the specified DiskTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.DiskTypesScopedList.verify|verify} messages.
                     * @param message DiskTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDiskTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiskTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DiskTypesScopedList.verify|verify} messages.
                     * @param message DiskTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDiskTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiskTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiskTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DiskTypesScopedList;

                    /**
                     * Decodes a DiskTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiskTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DiskTypesScopedList;

                    /**
                     * Verifies a DiskTypesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiskTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiskTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DiskTypesScopedList;

                    /**
                     * Creates a plain object from a DiskTypesScopedList message. Also converts values to other types if specified.
                     * @param message DiskTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DiskTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiskTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiskTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksAddResourcePoliciesRequest. */
                interface IDisksAddResourcePoliciesRequest {

                    /** DisksAddResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents a DisksAddResourcePoliciesRequest. */
                class DisksAddResourcePoliciesRequest implements IDisksAddResourcePoliciesRequest {

                    /**
                     * Constructs a new DisksAddResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisksAddResourcePoliciesRequest);

                    /** DisksAddResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new DisksAddResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksAddResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisksAddResourcePoliciesRequest): google.cloud.compute.v1beta.DisksAddResourcePoliciesRequest;

                    /**
                     * Encodes the specified DisksAddResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DisksAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message DisksAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisksAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksAddResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisksAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message DisksAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisksAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksAddResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisksAddResourcePoliciesRequest;

                    /**
                     * Decodes a DisksAddResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisksAddResourcePoliciesRequest;

                    /**
                     * Verifies a DisksAddResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksAddResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksAddResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisksAddResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a DisksAddResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message DisksAddResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisksAddResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksAddResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksAddResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksRemoveResourcePoliciesRequest. */
                interface IDisksRemoveResourcePoliciesRequest {

                    /** DisksRemoveResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents a DisksRemoveResourcePoliciesRequest. */
                class DisksRemoveResourcePoliciesRequest implements IDisksRemoveResourcePoliciesRequest {

                    /**
                     * Constructs a new DisksRemoveResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisksRemoveResourcePoliciesRequest);

                    /** DisksRemoveResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new DisksRemoveResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksRemoveResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisksRemoveResourcePoliciesRequest): google.cloud.compute.v1beta.DisksRemoveResourcePoliciesRequest;

                    /**
                     * Encodes the specified DisksRemoveResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DisksRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message DisksRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisksRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksRemoveResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisksRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message DisksRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisksRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksRemoveResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisksRemoveResourcePoliciesRequest;

                    /**
                     * Decodes a DisksRemoveResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisksRemoveResourcePoliciesRequest;

                    /**
                     * Verifies a DisksRemoveResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksRemoveResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksRemoveResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisksRemoveResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a DisksRemoveResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message DisksRemoveResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisksRemoveResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksRemoveResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksRemoveResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksResizeRequest. */
                interface IDisksResizeRequest {

                    /** DisksResizeRequest sizeGb */
                    sizeGb?: (number|Long|string|null);
                }

                /** Represents a DisksResizeRequest. */
                class DisksResizeRequest implements IDisksResizeRequest {

                    /**
                     * Constructs a new DisksResizeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisksResizeRequest);

                    /** DisksResizeRequest sizeGb. */
                    public sizeGb?: (number|Long|string|null);

                    /**
                     * Creates a new DisksResizeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksResizeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisksResizeRequest): google.cloud.compute.v1beta.DisksResizeRequest;

                    /**
                     * Encodes the specified DisksResizeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DisksResizeRequest.verify|verify} messages.
                     * @param message DisksResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisksResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksResizeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisksResizeRequest.verify|verify} messages.
                     * @param message DisksResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisksResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksResizeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisksResizeRequest;

                    /**
                     * Decodes a DisksResizeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisksResizeRequest;

                    /**
                     * Verifies a DisksResizeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksResizeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksResizeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisksResizeRequest;

                    /**
                     * Creates a plain object from a DisksResizeRequest message. Also converts values to other types if specified.
                     * @param message DisksResizeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisksResizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksResizeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksResizeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksScopedList. */
                interface IDisksScopedList {

                    /** DisksScopedList disks */
                    disks?: (google.cloud.compute.v1beta.IDisk[]|null);

                    /** DisksScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a DisksScopedList. */
                class DisksScopedList implements IDisksScopedList {

                    /**
                     * Constructs a new DisksScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisksScopedList);

                    /** DisksScopedList disks. */
                    public disks: google.cloud.compute.v1beta.IDisk[];

                    /** DisksScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new DisksScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisksScopedList): google.cloud.compute.v1beta.DisksScopedList;

                    /**
                     * Encodes the specified DisksScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.DisksScopedList.verify|verify} messages.
                     * @param message DisksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisksScopedList.verify|verify} messages.
                     * @param message DisksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisksScopedList;

                    /**
                     * Decodes a DisksScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisksScopedList;

                    /**
                     * Verifies a DisksScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisksScopedList;

                    /**
                     * Creates a plain object from a DisksScopedList message. Also converts values to other types if specified.
                     * @param message DisksScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisksScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksStartAsyncReplicationRequest. */
                interface IDisksStartAsyncReplicationRequest {

                    /** DisksStartAsyncReplicationRequest asyncSecondaryDisk */
                    asyncSecondaryDisk?: (string|null);
                }

                /** Represents a DisksStartAsyncReplicationRequest. */
                class DisksStartAsyncReplicationRequest implements IDisksStartAsyncReplicationRequest {

                    /**
                     * Constructs a new DisksStartAsyncReplicationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisksStartAsyncReplicationRequest);

                    /** DisksStartAsyncReplicationRequest asyncSecondaryDisk. */
                    public asyncSecondaryDisk?: (string|null);

                    /**
                     * Creates a new DisksStartAsyncReplicationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksStartAsyncReplicationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisksStartAsyncReplicationRequest): google.cloud.compute.v1beta.DisksStartAsyncReplicationRequest;

                    /**
                     * Encodes the specified DisksStartAsyncReplicationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.DisksStartAsyncReplicationRequest.verify|verify} messages.
                     * @param message DisksStartAsyncReplicationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisksStartAsyncReplicationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksStartAsyncReplicationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisksStartAsyncReplicationRequest.verify|verify} messages.
                     * @param message DisksStartAsyncReplicationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisksStartAsyncReplicationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksStartAsyncReplicationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksStartAsyncReplicationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisksStartAsyncReplicationRequest;

                    /**
                     * Decodes a DisksStartAsyncReplicationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksStartAsyncReplicationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisksStartAsyncReplicationRequest;

                    /**
                     * Verifies a DisksStartAsyncReplicationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksStartAsyncReplicationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksStartAsyncReplicationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisksStartAsyncReplicationRequest;

                    /**
                     * Creates a plain object from a DisksStartAsyncReplicationRequest message. Also converts values to other types if specified.
                     * @param message DisksStartAsyncReplicationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisksStartAsyncReplicationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksStartAsyncReplicationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksStartAsyncReplicationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisksStopGroupAsyncReplicationResource. */
                interface IDisksStopGroupAsyncReplicationResource {

                    /** DisksStopGroupAsyncReplicationResource resourcePolicy */
                    resourcePolicy?: (string|null);
                }

                /** Represents a DisksStopGroupAsyncReplicationResource. */
                class DisksStopGroupAsyncReplicationResource implements IDisksStopGroupAsyncReplicationResource {

                    /**
                     * Constructs a new DisksStopGroupAsyncReplicationResource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisksStopGroupAsyncReplicationResource);

                    /** DisksStopGroupAsyncReplicationResource resourcePolicy. */
                    public resourcePolicy?: (string|null);

                    /**
                     * Creates a new DisksStopGroupAsyncReplicationResource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisksStopGroupAsyncReplicationResource instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisksStopGroupAsyncReplicationResource): google.cloud.compute.v1beta.DisksStopGroupAsyncReplicationResource;

                    /**
                     * Encodes the specified DisksStopGroupAsyncReplicationResource message. Does not implicitly {@link google.cloud.compute.v1beta.DisksStopGroupAsyncReplicationResource.verify|verify} messages.
                     * @param message DisksStopGroupAsyncReplicationResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisksStopGroupAsyncReplicationResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisksStopGroupAsyncReplicationResource message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisksStopGroupAsyncReplicationResource.verify|verify} messages.
                     * @param message DisksStopGroupAsyncReplicationResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisksStopGroupAsyncReplicationResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisksStopGroupAsyncReplicationResource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisksStopGroupAsyncReplicationResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisksStopGroupAsyncReplicationResource;

                    /**
                     * Decodes a DisksStopGroupAsyncReplicationResource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisksStopGroupAsyncReplicationResource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisksStopGroupAsyncReplicationResource;

                    /**
                     * Verifies a DisksStopGroupAsyncReplicationResource message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisksStopGroupAsyncReplicationResource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisksStopGroupAsyncReplicationResource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisksStopGroupAsyncReplicationResource;

                    /**
                     * Creates a plain object from a DisksStopGroupAsyncReplicationResource message. Also converts values to other types if specified.
                     * @param message DisksStopGroupAsyncReplicationResource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisksStopGroupAsyncReplicationResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisksStopGroupAsyncReplicationResource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisksStopGroupAsyncReplicationResource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DisplayDevice. */
                interface IDisplayDevice {

                    /** DisplayDevice enableDisplay */
                    enableDisplay?: (boolean|null);
                }

                /** Represents a DisplayDevice. */
                class DisplayDevice implements IDisplayDevice {

                    /**
                     * Constructs a new DisplayDevice.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDisplayDevice);

                    /** DisplayDevice enableDisplay. */
                    public enableDisplay?: (boolean|null);

                    /**
                     * Creates a new DisplayDevice instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DisplayDevice instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDisplayDevice): google.cloud.compute.v1beta.DisplayDevice;

                    /**
                     * Encodes the specified DisplayDevice message. Does not implicitly {@link google.cloud.compute.v1beta.DisplayDevice.verify|verify} messages.
                     * @param message DisplayDevice message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDisplayDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DisplayDevice message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DisplayDevice.verify|verify} messages.
                     * @param message DisplayDevice message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDisplayDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DisplayDevice message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DisplayDevice
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DisplayDevice;

                    /**
                     * Decodes a DisplayDevice message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DisplayDevice
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DisplayDevice;

                    /**
                     * Verifies a DisplayDevice message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DisplayDevice message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DisplayDevice
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DisplayDevice;

                    /**
                     * Creates a plain object from a DisplayDevice message. Also converts values to other types if specified.
                     * @param message DisplayDevice
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DisplayDevice, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DisplayDevice to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DisplayDevice
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DistributionPolicy. */
                interface IDistributionPolicy {

                    /** DistributionPolicy targetShape */
                    targetShape?: (string|null);

                    /** DistributionPolicy zones */
                    zones?: (google.cloud.compute.v1beta.IDistributionPolicyZoneConfiguration[]|null);
                }

                /** Represents a DistributionPolicy. */
                class DistributionPolicy implements IDistributionPolicy {

                    /**
                     * Constructs a new DistributionPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDistributionPolicy);

                    /** DistributionPolicy targetShape. */
                    public targetShape?: (string|null);

                    /** DistributionPolicy zones. */
                    public zones: google.cloud.compute.v1beta.IDistributionPolicyZoneConfiguration[];

                    /**
                     * Creates a new DistributionPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DistributionPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDistributionPolicy): google.cloud.compute.v1beta.DistributionPolicy;

                    /**
                     * Encodes the specified DistributionPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.DistributionPolicy.verify|verify} messages.
                     * @param message DistributionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDistributionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DistributionPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DistributionPolicy.verify|verify} messages.
                     * @param message DistributionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDistributionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DistributionPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DistributionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DistributionPolicy;

                    /**
                     * Decodes a DistributionPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DistributionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DistributionPolicy;

                    /**
                     * Verifies a DistributionPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DistributionPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DistributionPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DistributionPolicy;

                    /**
                     * Creates a plain object from a DistributionPolicy message. Also converts values to other types if specified.
                     * @param message DistributionPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DistributionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DistributionPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DistributionPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DistributionPolicy {

                    /** TargetShape enum. */
                    enum TargetShape {
                        UNDEFINED_TARGET_SHAPE = 0,
                        ANY = 64972,
                        ANY_SINGLE_ZONE = 61100880,
                        BALANCED = 468409608,
                        EVEN = 2140442
                    }
                }

                /** Properties of a DistributionPolicyZoneConfiguration. */
                interface IDistributionPolicyZoneConfiguration {

                    /** DistributionPolicyZoneConfiguration zone */
                    zone?: (string|null);
                }

                /** Represents a DistributionPolicyZoneConfiguration. */
                class DistributionPolicyZoneConfiguration implements IDistributionPolicyZoneConfiguration {

                    /**
                     * Constructs a new DistributionPolicyZoneConfiguration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDistributionPolicyZoneConfiguration);

                    /** DistributionPolicyZoneConfiguration zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new DistributionPolicyZoneConfiguration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DistributionPolicyZoneConfiguration instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDistributionPolicyZoneConfiguration): google.cloud.compute.v1beta.DistributionPolicyZoneConfiguration;

                    /**
                     * Encodes the specified DistributionPolicyZoneConfiguration message. Does not implicitly {@link google.cloud.compute.v1beta.DistributionPolicyZoneConfiguration.verify|verify} messages.
                     * @param message DistributionPolicyZoneConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IDistributionPolicyZoneConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DistributionPolicyZoneConfiguration message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.DistributionPolicyZoneConfiguration.verify|verify} messages.
                     * @param message DistributionPolicyZoneConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IDistributionPolicyZoneConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DistributionPolicyZoneConfiguration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DistributionPolicyZoneConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.DistributionPolicyZoneConfiguration;

                    /**
                     * Decodes a DistributionPolicyZoneConfiguration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DistributionPolicyZoneConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.DistributionPolicyZoneConfiguration;

                    /**
                     * Verifies a DistributionPolicyZoneConfiguration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DistributionPolicyZoneConfiguration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DistributionPolicyZoneConfiguration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.DistributionPolicyZoneConfiguration;

                    /**
                     * Creates a plain object from a DistributionPolicyZoneConfiguration message. Also converts values to other types if specified.
                     * @param message DistributionPolicyZoneConfiguration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.DistributionPolicyZoneConfiguration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DistributionPolicyZoneConfiguration to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DistributionPolicyZoneConfiguration
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Duration. */
                interface IDuration {

                    /** Duration nanos */
                    nanos?: (number|null);

                    /** Duration seconds */
                    seconds?: (number|Long|string|null);
                }

                /** Represents a Duration. */
                class Duration implements IDuration {

                    /**
                     * Constructs a new Duration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IDuration);

                    /** Duration nanos. */
                    public nanos?: (number|null);

                    /** Duration seconds. */
                    public seconds?: (number|Long|string|null);

                    /**
                     * Creates a new Duration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Duration instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IDuration): google.cloud.compute.v1beta.Duration;

                    /**
                     * Encodes the specified Duration message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 EnableXpnHostProjectRequest. */
                interface IEnableXpnHostProjectRequest {

                    /** EnableXpnHostProjectRequest project */
                    project?: (string|null);

                    /** EnableXpnHostProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an EnableXpnHostProjectRequest. */
                class EnableXpnHostProjectRequest implements IEnableXpnHostProjectRequest {

                    /**
                     * Constructs a new EnableXpnHostProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IEnableXpnHostProjectRequest);

                    /** EnableXpnHostProjectRequest project. */
                    public project: string;

                    /** EnableXpnHostProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new EnableXpnHostProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EnableXpnHostProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IEnableXpnHostProjectRequest): google.cloud.compute.v1beta.EnableXpnHostProjectRequest;

                    /**
                     * Encodes the specified EnableXpnHostProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.EnableXpnHostProjectRequest.verify|verify} messages.
                     * @param message EnableXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IEnableXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EnableXpnHostProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.EnableXpnHostProjectRequest.verify|verify} messages.
                     * @param message EnableXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IEnableXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EnableXpnHostProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EnableXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.EnableXpnHostProjectRequest;

                    /**
                     * Decodes an EnableXpnHostProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EnableXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.EnableXpnHostProjectRequest;

                    /**
                     * Verifies an EnableXpnHostProjectRequest message.
                     * @param message Plain 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 EnableXpnHostProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EnableXpnHostProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.EnableXpnHostProjectRequest;

                    /**
                     * Creates a plain object from an EnableXpnHostProjectRequest message. Also converts values to other types if specified.
                     * @param message EnableXpnHostProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.EnableXpnHostProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EnableXpnHostProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EnableXpnHostProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EnableXpnResourceProjectRequest. */
                interface IEnableXpnResourceProjectRequest {

                    /** EnableXpnResourceProjectRequest project */
                    project?: (string|null);

                    /** EnableXpnResourceProjectRequest projectsEnableXpnResourceRequestResource */
                    projectsEnableXpnResourceRequestResource?: (google.cloud.compute.v1beta.IProjectsEnableXpnResourceRequest|null);

                    /** EnableXpnResourceProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an EnableXpnResourceProjectRequest. */
                class EnableXpnResourceProjectRequest implements IEnableXpnResourceProjectRequest {

                    /**
                     * Constructs a new EnableXpnResourceProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IEnableXpnResourceProjectRequest);

                    /** EnableXpnResourceProjectRequest project. */
                    public project: string;

                    /** EnableXpnResourceProjectRequest projectsEnableXpnResourceRequestResource. */
                    public projectsEnableXpnResourceRequestResource?: (google.cloud.compute.v1beta.IProjectsEnableXpnResourceRequest|null);

                    /** EnableXpnResourceProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new EnableXpnResourceProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EnableXpnResourceProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IEnableXpnResourceProjectRequest): google.cloud.compute.v1beta.EnableXpnResourceProjectRequest;

                    /**
                     * Encodes the specified EnableXpnResourceProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.EnableXpnResourceProjectRequest.verify|verify} messages.
                     * @param message EnableXpnResourceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IEnableXpnResourceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EnableXpnResourceProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.EnableXpnResourceProjectRequest.verify|verify} messages.
                     * @param message EnableXpnResourceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IEnableXpnResourceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EnableXpnResourceProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EnableXpnResourceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.EnableXpnResourceProjectRequest;

                    /**
                     * Decodes an EnableXpnResourceProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EnableXpnResourceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.EnableXpnResourceProjectRequest;

                    /**
                     * Verifies an EnableXpnResourceProjectRequest message.
                     * @param message Plain 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 EnableXpnResourceProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EnableXpnResourceProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.EnableXpnResourceProjectRequest;

                    /**
                     * Creates a plain object from an EnableXpnResourceProjectRequest message. Also converts values to other types if specified.
                     * @param message EnableXpnResourceProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.EnableXpnResourceProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EnableXpnResourceProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EnableXpnResourceProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Error. */
                interface IError {

                    /** Error errors */
                    errors?: (google.cloud.compute.v1beta.IErrors[]|null);
                }

                /** Represents an Error. */
                class Error implements IError {

                    /**
                     * Constructs a new Error.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IError);

                    /** Error errors. */
                    public errors: google.cloud.compute.v1beta.IErrors[];

                    /**
                     * Creates a new Error instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Error instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IError): google.cloud.compute.v1beta.Error;

                    /**
                     * Encodes the specified Error message. Does not implicitly {@link google.cloud.compute.v1beta.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Error message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Error message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Error;

                    /**
                     * Decodes an Error message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Error;

                    /**
                     * Verifies an Error message.
                     * @param message Plain 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 Error message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Error
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Error;

                    /**
                     * Creates a plain object from an Error message. Also converts values to other types if specified.
                     * @param message Error
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Error, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Error to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Error
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ErrorDetails. */
                interface IErrorDetails {

                    /** ErrorDetails errorInfo */
                    errorInfo?: (google.cloud.compute.v1beta.IErrorInfo|null);

                    /** ErrorDetails help */
                    help?: (google.cloud.compute.v1beta.IHelp|null);

                    /** ErrorDetails localizedMessage */
                    localizedMessage?: (google.cloud.compute.v1beta.ILocalizedMessage|null);

                    /** ErrorDetails quotaInfo */
                    quotaInfo?: (google.cloud.compute.v1beta.IQuotaExceededInfo|null);
                }

                /** Represents an ErrorDetails. */
                class ErrorDetails implements IErrorDetails {

                    /**
                     * Constructs a new ErrorDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IErrorDetails);

                    /** ErrorDetails errorInfo. */
                    public errorInfo?: (google.cloud.compute.v1beta.IErrorInfo|null);

                    /** ErrorDetails help. */
                    public help?: (google.cloud.compute.v1beta.IHelp|null);

                    /** ErrorDetails localizedMessage. */
                    public localizedMessage?: (google.cloud.compute.v1beta.ILocalizedMessage|null);

                    /** ErrorDetails quotaInfo. */
                    public quotaInfo?: (google.cloud.compute.v1beta.IQuotaExceededInfo|null);

                    /**
                     * Creates a new ErrorDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ErrorDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IErrorDetails): google.cloud.compute.v1beta.ErrorDetails;

                    /**
                     * Encodes the specified ErrorDetails message. Does not implicitly {@link google.cloud.compute.v1beta.ErrorDetails.verify|verify} messages.
                     * @param message ErrorDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IErrorDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ErrorDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ErrorDetails.verify|verify} messages.
                     * @param message ErrorDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IErrorDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ErrorDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ErrorDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ErrorDetails;

                    /**
                     * Decodes an ErrorDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ErrorDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ErrorDetails;

                    /**
                     * Verifies an ErrorDetails message.
                     * @param message Plain 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 ErrorDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ErrorDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ErrorDetails;

                    /**
                     * Creates a plain object from an ErrorDetails message. Also converts values to other types if specified.
                     * @param message ErrorDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ErrorDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ErrorDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ErrorDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ErrorInfo. */
                interface IErrorInfo {

                    /** ErrorInfo domain */
                    domain?: (string|null);

                    /** ErrorInfo metadatas */
                    metadatas?: ({ [k: string]: string }|null);

                    /** ErrorInfo reason */
                    reason?: (string|null);
                }

                /** Represents an ErrorInfo. */
                class ErrorInfo implements IErrorInfo {

                    /**
                     * Constructs a new ErrorInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IErrorInfo);

                    /** ErrorInfo domain. */
                    public domain?: (string|null);

                    /** ErrorInfo metadatas. */
                    public metadatas: { [k: string]: string };

                    /** ErrorInfo reason. */
                    public reason?: (string|null);

                    /**
                     * Creates a new ErrorInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ErrorInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IErrorInfo): google.cloud.compute.v1beta.ErrorInfo;

                    /**
                     * Encodes the specified ErrorInfo message. Does not implicitly {@link google.cloud.compute.v1beta.ErrorInfo.verify|verify} messages.
                     * @param message ErrorInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IErrorInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ErrorInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ErrorInfo.verify|verify} messages.
                     * @param message ErrorInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IErrorInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ErrorInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ErrorInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ErrorInfo;

                    /**
                     * Decodes an ErrorInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ErrorInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ErrorInfo;

                    /**
                     * Verifies an ErrorInfo message.
                     * @param message Plain 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 ErrorInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ErrorInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ErrorInfo;

                    /**
                     * Creates a plain object from an ErrorInfo message. Also converts values to other types if specified.
                     * @param message ErrorInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ErrorInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ErrorInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ErrorInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Errors. */
                interface IErrors {

                    /** Errors code */
                    code?: (string|null);

                    /** Errors errorDetails */
                    errorDetails?: (google.cloud.compute.v1beta.IErrorDetails[]|null);

                    /** Errors location */
                    location?: (string|null);

                    /** Errors message */
                    message?: (string|null);
                }

                /** Represents an Errors. */
                class Errors implements IErrors {

                    /**
                     * Constructs a new Errors.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IErrors);

                    /** Errors code. */
                    public code?: (string|null);

                    /** Errors errorDetails. */
                    public errorDetails: google.cloud.compute.v1beta.IErrorDetails[];

                    /** Errors location. */
                    public location?: (string|null);

                    /** Errors message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Errors instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Errors instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IErrors): google.cloud.compute.v1beta.Errors;

                    /**
                     * Encodes the specified Errors message. Does not implicitly {@link google.cloud.compute.v1beta.Errors.verify|verify} messages.
                     * @param message Errors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Errors message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Errors.verify|verify} messages.
                     * @param message Errors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Errors message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Errors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Errors;

                    /**
                     * Decodes an Errors message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Errors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Errors;

                    /**
                     * Verifies an Errors message.
                     * @param message Plain 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 Errors message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Errors
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Errors;

                    /**
                     * Creates a plain object from an Errors message. Also converts values to other types if specified.
                     * @param message Errors
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Errors, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Errors to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Errors
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExchangedPeeringRoute. */
                interface IExchangedPeeringRoute {

                    /** ExchangedPeeringRoute destRange */
                    destRange?: (string|null);

                    /** ExchangedPeeringRoute imported */
                    imported?: (boolean|null);

                    /** ExchangedPeeringRoute nextHopRegion */
                    nextHopRegion?: (string|null);

                    /** ExchangedPeeringRoute priority */
                    priority?: (number|null);

                    /** ExchangedPeeringRoute type */
                    type?: (string|null);
                }

                /** Represents an ExchangedPeeringRoute. */
                class ExchangedPeeringRoute implements IExchangedPeeringRoute {

                    /**
                     * Constructs a new ExchangedPeeringRoute.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IExchangedPeeringRoute);

                    /** ExchangedPeeringRoute destRange. */
                    public destRange?: (string|null);

                    /** ExchangedPeeringRoute imported. */
                    public imported?: (boolean|null);

                    /** ExchangedPeeringRoute nextHopRegion. */
                    public nextHopRegion?: (string|null);

                    /** ExchangedPeeringRoute priority. */
                    public priority?: (number|null);

                    /** ExchangedPeeringRoute type. */
                    public type?: (string|null);

                    /**
                     * Creates a new ExchangedPeeringRoute instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExchangedPeeringRoute instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IExchangedPeeringRoute): google.cloud.compute.v1beta.ExchangedPeeringRoute;

                    /**
                     * Encodes the specified ExchangedPeeringRoute message. Does not implicitly {@link google.cloud.compute.v1beta.ExchangedPeeringRoute.verify|verify} messages.
                     * @param message ExchangedPeeringRoute message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IExchangedPeeringRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExchangedPeeringRoute message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ExchangedPeeringRoute.verify|verify} messages.
                     * @param message ExchangedPeeringRoute message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IExchangedPeeringRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExchangedPeeringRoute message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExchangedPeeringRoute
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ExchangedPeeringRoute;

                    /**
                     * Decodes an ExchangedPeeringRoute message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExchangedPeeringRoute
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ExchangedPeeringRoute;

                    /**
                     * Verifies an ExchangedPeeringRoute message.
                     * @param message Plain 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 ExchangedPeeringRoute message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExchangedPeeringRoute
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ExchangedPeeringRoute;

                    /**
                     * Creates a plain object from an ExchangedPeeringRoute message. Also converts values to other types if specified.
                     * @param message ExchangedPeeringRoute
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ExchangedPeeringRoute, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExchangedPeeringRoute to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExchangedPeeringRoute
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ExchangedPeeringRoute {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        DYNAMIC_PEERING_ROUTE = 469794858,
                        STATIC_PEERING_ROUTE = 473407545,
                        SUBNET_PEERING_ROUTE = 465782504
                    }
                }

                /** Properties of an ExchangedPeeringRoutesList. */
                interface IExchangedPeeringRoutesList {

                    /** ExchangedPeeringRoutesList id */
                    id?: (string|null);

                    /** ExchangedPeeringRoutesList items */
                    items?: (google.cloud.compute.v1beta.IExchangedPeeringRoute[]|null);

                    /** ExchangedPeeringRoutesList kind */
                    kind?: (string|null);

                    /** ExchangedPeeringRoutesList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ExchangedPeeringRoutesList selfLink */
                    selfLink?: (string|null);

                    /** ExchangedPeeringRoutesList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an ExchangedPeeringRoutesList. */
                class ExchangedPeeringRoutesList implements IExchangedPeeringRoutesList {

                    /**
                     * Constructs a new ExchangedPeeringRoutesList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IExchangedPeeringRoutesList);

                    /** ExchangedPeeringRoutesList id. */
                    public id?: (string|null);

                    /** ExchangedPeeringRoutesList items. */
                    public items: google.cloud.compute.v1beta.IExchangedPeeringRoute[];

                    /** ExchangedPeeringRoutesList kind. */
                    public kind?: (string|null);

                    /** ExchangedPeeringRoutesList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ExchangedPeeringRoutesList selfLink. */
                    public selfLink?: (string|null);

                    /** ExchangedPeeringRoutesList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ExchangedPeeringRoutesList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExchangedPeeringRoutesList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IExchangedPeeringRoutesList): google.cloud.compute.v1beta.ExchangedPeeringRoutesList;

                    /**
                     * Encodes the specified ExchangedPeeringRoutesList message. Does not implicitly {@link google.cloud.compute.v1beta.ExchangedPeeringRoutesList.verify|verify} messages.
                     * @param message ExchangedPeeringRoutesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IExchangedPeeringRoutesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExchangedPeeringRoutesList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ExchangedPeeringRoutesList.verify|verify} messages.
                     * @param message ExchangedPeeringRoutesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IExchangedPeeringRoutesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExchangedPeeringRoutesList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExchangedPeeringRoutesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ExchangedPeeringRoutesList;

                    /**
                     * Decodes an ExchangedPeeringRoutesList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExchangedPeeringRoutesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ExchangedPeeringRoutesList;

                    /**
                     * Verifies an ExchangedPeeringRoutesList message.
                     * @param message Plain 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 ExchangedPeeringRoutesList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExchangedPeeringRoutesList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ExchangedPeeringRoutesList;

                    /**
                     * Creates a plain object from an ExchangedPeeringRoutesList message. Also converts values to other types if specified.
                     * @param message ExchangedPeeringRoutesList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ExchangedPeeringRoutesList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExchangedPeeringRoutesList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExchangedPeeringRoutesList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExpandIpCidrRangeSubnetworkRequest. */
                interface IExpandIpCidrRangeSubnetworkRequest {

                    /** ExpandIpCidrRangeSubnetworkRequest project */
                    project?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest region */
                    region?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest subnetworksExpandIpCidrRangeRequestResource */
                    subnetworksExpandIpCidrRangeRequestResource?: (google.cloud.compute.v1beta.ISubnetworksExpandIpCidrRangeRequest|null);
                }

                /** Represents an ExpandIpCidrRangeSubnetworkRequest. */
                class ExpandIpCidrRangeSubnetworkRequest implements IExpandIpCidrRangeSubnetworkRequest {

                    /**
                     * Constructs a new ExpandIpCidrRangeSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IExpandIpCidrRangeSubnetworkRequest);

                    /** ExpandIpCidrRangeSubnetworkRequest project. */
                    public project: string;

                    /** ExpandIpCidrRangeSubnetworkRequest region. */
                    public region: string;

                    /** ExpandIpCidrRangeSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** ExpandIpCidrRangeSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /** ExpandIpCidrRangeSubnetworkRequest subnetworksExpandIpCidrRangeRequestResource. */
                    public subnetworksExpandIpCidrRangeRequestResource?: (google.cloud.compute.v1beta.ISubnetworksExpandIpCidrRangeRequest|null);

                    /**
                     * Creates a new ExpandIpCidrRangeSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExpandIpCidrRangeSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IExpandIpCidrRangeSubnetworkRequest): google.cloud.compute.v1beta.ExpandIpCidrRangeSubnetworkRequest;

                    /**
                     * Encodes the specified ExpandIpCidrRangeSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ExpandIpCidrRangeSubnetworkRequest.verify|verify} messages.
                     * @param message ExpandIpCidrRangeSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IExpandIpCidrRangeSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExpandIpCidrRangeSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ExpandIpCidrRangeSubnetworkRequest.verify|verify} messages.
                     * @param message ExpandIpCidrRangeSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IExpandIpCidrRangeSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExpandIpCidrRangeSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExpandIpCidrRangeSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ExpandIpCidrRangeSubnetworkRequest;

                    /**
                     * Decodes an ExpandIpCidrRangeSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExpandIpCidrRangeSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ExpandIpCidrRangeSubnetworkRequest;

                    /**
                     * Verifies an ExpandIpCidrRangeSubnetworkRequest message.
                     * @param message Plain 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 ExpandIpCidrRangeSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExpandIpCidrRangeSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ExpandIpCidrRangeSubnetworkRequest;

                    /**
                     * Creates a plain object from an ExpandIpCidrRangeSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message ExpandIpCidrRangeSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ExpandIpCidrRangeSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExpandIpCidrRangeSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExpandIpCidrRangeSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Expr. */
                interface IExpr {

                    /** Expr description */
                    description?: (string|null);

                    /** Expr expression */
                    expression?: (string|null);

                    /** Expr location */
                    location?: (string|null);

                    /** Expr title */
                    title?: (string|null);
                }

                /** Represents an Expr. */
                class Expr implements IExpr {

                    /**
                     * Constructs a new Expr.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IExpr);

                    /** Expr description. */
                    public description?: (string|null);

                    /** Expr expression. */
                    public expression?: (string|null);

                    /** Expr location. */
                    public location?: (string|null);

                    /** Expr title. */
                    public title?: (string|null);

                    /**
                     * Creates a new Expr instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Expr instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IExpr): google.cloud.compute.v1beta.Expr;

                    /**
                     * Encodes the specified Expr message. Does not implicitly {@link google.cloud.compute.v1beta.Expr.verify|verify} messages.
                     * @param message Expr message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IExpr, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Expr message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Expr.verify|verify} messages.
                     * @param message Expr message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IExpr, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Expr message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Expr
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Expr;

                    /**
                     * Decodes an Expr message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Expr
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Expr;

                    /**
                     * Verifies an Expr message.
                     * @param message Plain 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 Expr message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Expr
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Expr;

                    /**
                     * Creates a plain object from an Expr message. Also converts values to other types if specified.
                     * @param message Expr
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Expr, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Expr to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Expr
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExternalVpnGateway. */
                interface IExternalVpnGateway {

                    /** ExternalVpnGateway creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ExternalVpnGateway description */
                    description?: (string|null);

                    /** ExternalVpnGateway id */
                    id?: (number|Long|string|null);

                    /** ExternalVpnGateway interfaces */
                    interfaces?: (google.cloud.compute.v1beta.IExternalVpnGatewayInterface[]|null);

                    /** ExternalVpnGateway kind */
                    kind?: (string|null);

                    /** ExternalVpnGateway labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** ExternalVpnGateway labels */
                    labels?: ({ [k: string]: string }|null);

                    /** ExternalVpnGateway name */
                    name?: (string|null);

                    /** ExternalVpnGateway params */
                    params?: (google.cloud.compute.v1beta.IExternalVpnGatewayParams|null);

                    /** ExternalVpnGateway redundancyType */
                    redundancyType?: (string|null);

                    /** ExternalVpnGateway selfLink */
                    selfLink?: (string|null);
                }

                /** Represents an ExternalVpnGateway. */
                class ExternalVpnGateway implements IExternalVpnGateway {

                    /**
                     * Constructs a new ExternalVpnGateway.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IExternalVpnGateway);

                    /** ExternalVpnGateway creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ExternalVpnGateway description. */
                    public description?: (string|null);

                    /** ExternalVpnGateway id. */
                    public id?: (number|Long|string|null);

                    /** ExternalVpnGateway interfaces. */
                    public interfaces: google.cloud.compute.v1beta.IExternalVpnGatewayInterface[];

                    /** ExternalVpnGateway kind. */
                    public kind?: (string|null);

                    /** ExternalVpnGateway labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** ExternalVpnGateway labels. */
                    public labels: { [k: string]: string };

                    /** ExternalVpnGateway name. */
                    public name?: (string|null);

                    /** ExternalVpnGateway params. */
                    public params?: (google.cloud.compute.v1beta.IExternalVpnGatewayParams|null);

                    /** ExternalVpnGateway redundancyType. */
                    public redundancyType?: (string|null);

                    /** ExternalVpnGateway selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new ExternalVpnGateway instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExternalVpnGateway instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IExternalVpnGateway): google.cloud.compute.v1beta.ExternalVpnGateway;

                    /**
                     * Encodes the specified ExternalVpnGateway message. Does not implicitly {@link google.cloud.compute.v1beta.ExternalVpnGateway.verify|verify} messages.
                     * @param message ExternalVpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IExternalVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExternalVpnGateway message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ExternalVpnGateway.verify|verify} messages.
                     * @param message ExternalVpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IExternalVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExternalVpnGateway message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExternalVpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ExternalVpnGateway;

                    /**
                     * Decodes an ExternalVpnGateway message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExternalVpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ExternalVpnGateway;

                    /**
                     * Verifies an ExternalVpnGateway message.
                     * @param message Plain 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 ExternalVpnGateway message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExternalVpnGateway
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ExternalVpnGateway;

                    /**
                     * Creates a plain object from an ExternalVpnGateway message. Also converts values to other types if specified.
                     * @param message ExternalVpnGateway
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ExternalVpnGateway, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExternalVpnGateway to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExternalVpnGateway
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ExternalVpnGateway {

                    /** RedundancyType enum. */
                    enum RedundancyType {
                        UNDEFINED_REDUNDANCY_TYPE = 0,
                        FOUR_IPS_REDUNDANCY = 520087913,
                        SINGLE_IP_INTERNALLY_REDUNDANT = 133914873,
                        TWO_IPS_REDUNDANCY = 367049635
                    }
                }

                /** Properties of an ExternalVpnGatewayInterface. */
                interface IExternalVpnGatewayInterface {

                    /** ExternalVpnGatewayInterface id */
                    id?: (number|null);

                    /** ExternalVpnGatewayInterface ipAddress */
                    ipAddress?: (string|null);

                    /** ExternalVpnGatewayInterface ipv6Address */
                    ipv6Address?: (string|null);
                }

                /** Represents an ExternalVpnGatewayInterface. */
                class ExternalVpnGatewayInterface implements IExternalVpnGatewayInterface {

                    /**
                     * Constructs a new ExternalVpnGatewayInterface.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IExternalVpnGatewayInterface);

                    /** ExternalVpnGatewayInterface id. */
                    public id?: (number|null);

                    /** ExternalVpnGatewayInterface ipAddress. */
                    public ipAddress?: (string|null);

                    /** ExternalVpnGatewayInterface ipv6Address. */
                    public ipv6Address?: (string|null);

                    /**
                     * Creates a new ExternalVpnGatewayInterface instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExternalVpnGatewayInterface instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IExternalVpnGatewayInterface): google.cloud.compute.v1beta.ExternalVpnGatewayInterface;

                    /**
                     * Encodes the specified ExternalVpnGatewayInterface message. Does not implicitly {@link google.cloud.compute.v1beta.ExternalVpnGatewayInterface.verify|verify} messages.
                     * @param message ExternalVpnGatewayInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IExternalVpnGatewayInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExternalVpnGatewayInterface message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ExternalVpnGatewayInterface.verify|verify} messages.
                     * @param message ExternalVpnGatewayInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IExternalVpnGatewayInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExternalVpnGatewayInterface message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExternalVpnGatewayInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ExternalVpnGatewayInterface;

                    /**
                     * Decodes an ExternalVpnGatewayInterface message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExternalVpnGatewayInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ExternalVpnGatewayInterface;

                    /**
                     * Verifies an ExternalVpnGatewayInterface message.
                     * @param message Plain 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 ExternalVpnGatewayInterface message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExternalVpnGatewayInterface
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ExternalVpnGatewayInterface;

                    /**
                     * Creates a plain object from an ExternalVpnGatewayInterface message. Also converts values to other types if specified.
                     * @param message ExternalVpnGatewayInterface
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ExternalVpnGatewayInterface, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExternalVpnGatewayInterface to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExternalVpnGatewayInterface
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExternalVpnGatewayList. */
                interface IExternalVpnGatewayList {

                    /** ExternalVpnGatewayList etag */
                    etag?: (string|null);

                    /** ExternalVpnGatewayList id */
                    id?: (string|null);

                    /** ExternalVpnGatewayList items */
                    items?: (google.cloud.compute.v1beta.IExternalVpnGateway[]|null);

                    /** ExternalVpnGatewayList kind */
                    kind?: (string|null);

                    /** ExternalVpnGatewayList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ExternalVpnGatewayList selfLink */
                    selfLink?: (string|null);

                    /** ExternalVpnGatewayList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an ExternalVpnGatewayList. */
                class ExternalVpnGatewayList implements IExternalVpnGatewayList {

                    /**
                     * Constructs a new ExternalVpnGatewayList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IExternalVpnGatewayList);

                    /** ExternalVpnGatewayList etag. */
                    public etag?: (string|null);

                    /** ExternalVpnGatewayList id. */
                    public id?: (string|null);

                    /** ExternalVpnGatewayList items. */
                    public items: google.cloud.compute.v1beta.IExternalVpnGateway[];

                    /** ExternalVpnGatewayList kind. */
                    public kind?: (string|null);

                    /** ExternalVpnGatewayList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ExternalVpnGatewayList selfLink. */
                    public selfLink?: (string|null);

                    /** ExternalVpnGatewayList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ExternalVpnGatewayList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExternalVpnGatewayList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IExternalVpnGatewayList): google.cloud.compute.v1beta.ExternalVpnGatewayList;

                    /**
                     * Encodes the specified ExternalVpnGatewayList message. Does not implicitly {@link google.cloud.compute.v1beta.ExternalVpnGatewayList.verify|verify} messages.
                     * @param message ExternalVpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IExternalVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExternalVpnGatewayList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ExternalVpnGatewayList.verify|verify} messages.
                     * @param message ExternalVpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IExternalVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExternalVpnGatewayList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExternalVpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ExternalVpnGatewayList;

                    /**
                     * Decodes an ExternalVpnGatewayList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExternalVpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ExternalVpnGatewayList;

                    /**
                     * Verifies an ExternalVpnGatewayList message.
                     * @param message Plain 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 ExternalVpnGatewayList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExternalVpnGatewayList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ExternalVpnGatewayList;

                    /**
                     * Creates a plain object from an ExternalVpnGatewayList message. Also converts values to other types if specified.
                     * @param message ExternalVpnGatewayList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ExternalVpnGatewayList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExternalVpnGatewayList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExternalVpnGatewayList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExternalVpnGatewayParams. */
                interface IExternalVpnGatewayParams {

                    /** ExternalVpnGatewayParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an ExternalVpnGatewayParams. */
                class ExternalVpnGatewayParams implements IExternalVpnGatewayParams {

                    /**
                     * Constructs a new ExternalVpnGatewayParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IExternalVpnGatewayParams);

                    /** ExternalVpnGatewayParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new ExternalVpnGatewayParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExternalVpnGatewayParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IExternalVpnGatewayParams): google.cloud.compute.v1beta.ExternalVpnGatewayParams;

                    /**
                     * Encodes the specified ExternalVpnGatewayParams message. Does not implicitly {@link google.cloud.compute.v1beta.ExternalVpnGatewayParams.verify|verify} messages.
                     * @param message ExternalVpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IExternalVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExternalVpnGatewayParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ExternalVpnGatewayParams.verify|verify} messages.
                     * @param message ExternalVpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IExternalVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExternalVpnGatewayParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExternalVpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ExternalVpnGatewayParams;

                    /**
                     * Decodes an ExternalVpnGatewayParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExternalVpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ExternalVpnGatewayParams;

                    /**
                     * Verifies an ExternalVpnGatewayParams message.
                     * @param message Plain 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 ExternalVpnGatewayParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExternalVpnGatewayParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ExternalVpnGatewayParams;

                    /**
                     * Creates a plain object from an ExternalVpnGatewayParams message. Also converts values to other types if specified.
                     * @param message ExternalVpnGatewayParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ExternalVpnGatewayParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExternalVpnGatewayParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExternalVpnGatewayParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FileContentBuffer. */
                interface IFileContentBuffer {

                    /** FileContentBuffer content */
                    content?: (string|null);

                    /** FileContentBuffer fileType */
                    fileType?: (string|null);
                }

                /** Represents a FileContentBuffer. */
                class FileContentBuffer implements IFileContentBuffer {

                    /**
                     * Constructs a new FileContentBuffer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFileContentBuffer);

                    /** FileContentBuffer content. */
                    public content?: (string|null);

                    /** FileContentBuffer fileType. */
                    public fileType?: (string|null);

                    /**
                     * Creates a new FileContentBuffer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FileContentBuffer instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFileContentBuffer): google.cloud.compute.v1beta.FileContentBuffer;

                    /**
                     * Encodes the specified FileContentBuffer message. Does not implicitly {@link google.cloud.compute.v1beta.FileContentBuffer.verify|verify} messages.
                     * @param message FileContentBuffer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFileContentBuffer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FileContentBuffer message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FileContentBuffer.verify|verify} messages.
                     * @param message FileContentBuffer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFileContentBuffer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FileContentBuffer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileContentBuffer
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FileContentBuffer;

                    /**
                     * Decodes a FileContentBuffer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileContentBuffer
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FileContentBuffer;

                    /**
                     * Verifies a FileContentBuffer message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FileContentBuffer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileContentBuffer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FileContentBuffer;

                    /**
                     * Creates a plain object from a FileContentBuffer message. Also converts values to other types if specified.
                     * @param message FileContentBuffer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FileContentBuffer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FileContentBuffer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FileContentBuffer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FileContentBuffer {

                    /** FileType enum. */
                    enum FileType {
                        UNDEFINED_FILE_TYPE = 0,
                        BIN = 65767,
                        UNDEFINED = 137851184,
                        X509 = 2674086
                    }
                }

                /** Properties of a Firewall. */
                interface IFirewall {

                    /** Firewall allowed */
                    allowed?: (google.cloud.compute.v1beta.IAllowed[]|null);

                    /** Firewall creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Firewall denied */
                    denied?: (google.cloud.compute.v1beta.IDenied[]|null);

                    /** Firewall description */
                    description?: (string|null);

                    /** Firewall destinationRanges */
                    destinationRanges?: (string[]|null);

                    /** Firewall direction */
                    direction?: (string|null);

                    /** Firewall disabled */
                    disabled?: (boolean|null);

                    /** Firewall enableLogging */
                    enableLogging?: (boolean|null);

                    /** Firewall id */
                    id?: (number|Long|string|null);

                    /** Firewall kind */
                    kind?: (string|null);

                    /** Firewall logConfig */
                    logConfig?: (google.cloud.compute.v1beta.IFirewallLogConfig|null);

                    /** Firewall name */
                    name?: (string|null);

                    /** Firewall network */
                    network?: (string|null);

                    /** Firewall params */
                    params?: (google.cloud.compute.v1beta.IFirewallParams|null);

                    /** Firewall priority */
                    priority?: (number|null);

                    /** Firewall selfLink */
                    selfLink?: (string|null);

                    /** Firewall sourceRanges */
                    sourceRanges?: (string[]|null);

                    /** Firewall sourceServiceAccounts */
                    sourceServiceAccounts?: (string[]|null);

                    /** Firewall sourceTags */
                    sourceTags?: (string[]|null);

                    /** Firewall targetServiceAccounts */
                    targetServiceAccounts?: (string[]|null);

                    /** Firewall targetTags */
                    targetTags?: (string[]|null);
                }

                /** Represents a Firewall. */
                class Firewall implements IFirewall {

                    /**
                     * Constructs a new Firewall.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewall);

                    /** Firewall allowed. */
                    public allowed: google.cloud.compute.v1beta.IAllowed[];

                    /** Firewall creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Firewall denied. */
                    public denied: google.cloud.compute.v1beta.IDenied[];

                    /** Firewall description. */
                    public description?: (string|null);

                    /** Firewall destinationRanges. */
                    public destinationRanges: string[];

                    /** Firewall direction. */
                    public direction?: (string|null);

                    /** Firewall disabled. */
                    public disabled?: (boolean|null);

                    /** Firewall enableLogging. */
                    public enableLogging?: (boolean|null);

                    /** Firewall id. */
                    public id?: (number|Long|string|null);

                    /** Firewall kind. */
                    public kind?: (string|null);

                    /** Firewall logConfig. */
                    public logConfig?: (google.cloud.compute.v1beta.IFirewallLogConfig|null);

                    /** Firewall name. */
                    public name?: (string|null);

                    /** Firewall network. */
                    public network?: (string|null);

                    /** Firewall params. */
                    public params?: (google.cloud.compute.v1beta.IFirewallParams|null);

                    /** Firewall priority. */
                    public priority?: (number|null);

                    /** Firewall selfLink. */
                    public selfLink?: (string|null);

                    /** Firewall sourceRanges. */
                    public sourceRanges: string[];

                    /** Firewall sourceServiceAccounts. */
                    public sourceServiceAccounts: string[];

                    /** Firewall sourceTags. */
                    public sourceTags: string[];

                    /** Firewall targetServiceAccounts. */
                    public targetServiceAccounts: string[];

                    /** Firewall targetTags. */
                    public targetTags: string[];

                    /**
                     * Creates a new Firewall instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Firewall instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewall): google.cloud.compute.v1beta.Firewall;

                    /**
                     * Encodes the specified Firewall message. Does not implicitly {@link google.cloud.compute.v1beta.Firewall.verify|verify} messages.
                     * @param message Firewall message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewall, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Firewall message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Firewall.verify|verify} messages.
                     * @param message Firewall message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewall, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Firewall message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Firewall
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Firewall;

                    /**
                     * Decodes a Firewall message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Firewall
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Firewall;

                    /**
                     * Verifies a Firewall message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Firewall message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Firewall
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Firewall;

                    /**
                     * Creates a plain object from a Firewall message. Also converts values to other types if specified.
                     * @param message Firewall
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Firewall, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Firewall to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Firewall
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Firewall {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        EGRESS = 432880501,
                        INGRESS = 516931221
                    }
                }

                /** Properties of a FirewallList. */
                interface IFirewallList {

                    /** FirewallList id */
                    id?: (string|null);

                    /** FirewallList items */
                    items?: (google.cloud.compute.v1beta.IFirewall[]|null);

                    /** FirewallList kind */
                    kind?: (string|null);

                    /** FirewallList nextPageToken */
                    nextPageToken?: (string|null);

                    /** FirewallList selfLink */
                    selfLink?: (string|null);

                    /** FirewallList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a FirewallList. */
                class FirewallList implements IFirewallList {

                    /**
                     * Constructs a new FirewallList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallList);

                    /** FirewallList id. */
                    public id?: (string|null);

                    /** FirewallList items. */
                    public items: google.cloud.compute.v1beta.IFirewall[];

                    /** FirewallList kind. */
                    public kind?: (string|null);

                    /** FirewallList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** FirewallList selfLink. */
                    public selfLink?: (string|null);

                    /** FirewallList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new FirewallList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallList): google.cloud.compute.v1beta.FirewallList;

                    /**
                     * Encodes the specified FirewallList message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallList.verify|verify} messages.
                     * @param message FirewallList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallList.verify|verify} messages.
                     * @param message FirewallList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallList;

                    /**
                     * Decodes a FirewallList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallList;

                    /**
                     * Verifies a FirewallList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallList;

                    /**
                     * Creates a plain object from a FirewallList message. Also converts values to other types if specified.
                     * @param message FirewallList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallLogConfig. */
                interface IFirewallLogConfig {

                    /** FirewallLogConfig enable */
                    enable?: (boolean|null);

                    /** FirewallLogConfig metadata */
                    metadata?: (string|null);
                }

                /** Represents a FirewallLogConfig. */
                class FirewallLogConfig implements IFirewallLogConfig {

                    /**
                     * Constructs a new FirewallLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallLogConfig);

                    /** FirewallLogConfig enable. */
                    public enable?: (boolean|null);

                    /** FirewallLogConfig metadata. */
                    public metadata?: (string|null);

                    /**
                     * Creates a new FirewallLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallLogConfig): google.cloud.compute.v1beta.FirewallLogConfig;

                    /**
                     * Encodes the specified FirewallLogConfig message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallLogConfig.verify|verify} messages.
                     * @param message FirewallLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallLogConfig.verify|verify} messages.
                     * @param message FirewallLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallLogConfig;

                    /**
                     * Decodes a FirewallLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallLogConfig;

                    /**
                     * Verifies a FirewallLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallLogConfig;

                    /**
                     * Creates a plain object from a FirewallLogConfig message. Also converts values to other types if specified.
                     * @param message FirewallLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallLogConfig {

                    /** Metadata enum. */
                    enum Metadata {
                        UNDEFINED_METADATA = 0,
                        EXCLUDE_ALL_METADATA = 334519954,
                        INCLUDE_ALL_METADATA = 164619908
                    }
                }

                /** Properties of a FirewallParams. */
                interface IFirewallParams {

                    /** FirewallParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a FirewallParams. */
                class FirewallParams implements IFirewallParams {

                    /**
                     * Constructs a new FirewallParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallParams);

                    /** FirewallParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new FirewallParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallParams): google.cloud.compute.v1beta.FirewallParams;

                    /**
                     * Encodes the specified FirewallParams message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallParams.verify|verify} messages.
                     * @param message FirewallParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallParams.verify|verify} messages.
                     * @param message FirewallParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallParams;

                    /**
                     * Decodes a FirewallParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallParams;

                    /**
                     * Verifies a FirewallParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallParams;

                    /**
                     * Creates a plain object from a FirewallParams message. Also converts values to other types if specified.
                     * @param message FirewallParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPoliciesListAssociationsResponse. */
                interface IFirewallPoliciesListAssociationsResponse {

                    /** FirewallPoliciesListAssociationsResponse associations */
                    associations?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation[]|null);

                    /** FirewallPoliciesListAssociationsResponse kind */
                    kind?: (string|null);
                }

                /** Represents a FirewallPoliciesListAssociationsResponse. */
                class FirewallPoliciesListAssociationsResponse implements IFirewallPoliciesListAssociationsResponse {

                    /**
                     * Constructs a new FirewallPoliciesListAssociationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPoliciesListAssociationsResponse);

                    /** FirewallPoliciesListAssociationsResponse associations. */
                    public associations: google.cloud.compute.v1beta.IFirewallPolicyAssociation[];

                    /** FirewallPoliciesListAssociationsResponse kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new FirewallPoliciesListAssociationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPoliciesListAssociationsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPoliciesListAssociationsResponse): google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse;

                    /**
                     * Encodes the specified FirewallPoliciesListAssociationsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse.verify|verify} messages.
                     * @param message FirewallPoliciesListAssociationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPoliciesListAssociationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPoliciesListAssociationsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse.verify|verify} messages.
                     * @param message FirewallPoliciesListAssociationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPoliciesListAssociationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPoliciesListAssociationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPoliciesListAssociationsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse;

                    /**
                     * Decodes a FirewallPoliciesListAssociationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPoliciesListAssociationsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse;

                    /**
                     * Verifies a FirewallPoliciesListAssociationsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPoliciesListAssociationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPoliciesListAssociationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse;

                    /**
                     * Creates a plain object from a FirewallPoliciesListAssociationsResponse message. Also converts values to other types if specified.
                     * @param message FirewallPoliciesListAssociationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPoliciesListAssociationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPoliciesListAssociationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPoliciesScopedList. */
                interface IFirewallPoliciesScopedList {

                    /** FirewallPoliciesScopedList firewallPolicies */
                    firewallPolicies?: (google.cloud.compute.v1beta.IFirewallPolicy[]|null);

                    /** FirewallPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a FirewallPoliciesScopedList. */
                class FirewallPoliciesScopedList implements IFirewallPoliciesScopedList {

                    /**
                     * Constructs a new FirewallPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPoliciesScopedList);

                    /** FirewallPoliciesScopedList firewallPolicies. */
                    public firewallPolicies: google.cloud.compute.v1beta.IFirewallPolicy[];

                    /** FirewallPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new FirewallPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPoliciesScopedList): google.cloud.compute.v1beta.FirewallPoliciesScopedList;

                    /**
                     * Encodes the specified FirewallPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPoliciesScopedList.verify|verify} messages.
                     * @param message FirewallPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPoliciesScopedList.verify|verify} messages.
                     * @param message FirewallPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPoliciesScopedList;

                    /**
                     * Decodes a FirewallPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPoliciesScopedList;

                    /**
                     * Verifies a FirewallPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPoliciesScopedList;

                    /**
                     * Creates a plain object from a FirewallPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message FirewallPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPolicy. */
                interface IFirewallPolicy {

                    /** FirewallPolicy associations */
                    associations?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation[]|null);

                    /** FirewallPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** FirewallPolicy description */
                    description?: (string|null);

                    /** FirewallPolicy displayName */
                    displayName?: (string|null);

                    /** FirewallPolicy fingerprint */
                    fingerprint?: (string|null);

                    /** FirewallPolicy id */
                    id?: (number|Long|string|null);

                    /** FirewallPolicy kind */
                    kind?: (string|null);

                    /** FirewallPolicy name */
                    name?: (string|null);

                    /** FirewallPolicy packetMirroringRules */
                    packetMirroringRules?: (google.cloud.compute.v1beta.IFirewallPolicyRule[]|null);

                    /** FirewallPolicy parent */
                    parent?: (string|null);

                    /** FirewallPolicy policySource */
                    policySource?: (string|null);

                    /** FirewallPolicy policyType */
                    policyType?: (string|null);

                    /** FirewallPolicy region */
                    region?: (string|null);

                    /** FirewallPolicy ruleTupleCount */
                    ruleTupleCount?: (number|null);

                    /** FirewallPolicy rules */
                    rules?: (google.cloud.compute.v1beta.IFirewallPolicyRule[]|null);

                    /** FirewallPolicy selfLink */
                    selfLink?: (string|null);

                    /** FirewallPolicy selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** FirewallPolicy shortName */
                    shortName?: (string|null);
                }

                /** Represents a FirewallPolicy. */
                class FirewallPolicy implements IFirewallPolicy {

                    /**
                     * Constructs a new FirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPolicy);

                    /** FirewallPolicy associations. */
                    public associations: google.cloud.compute.v1beta.IFirewallPolicyAssociation[];

                    /** FirewallPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** FirewallPolicy description. */
                    public description?: (string|null);

                    /** FirewallPolicy displayName. */
                    public displayName?: (string|null);

                    /** FirewallPolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** FirewallPolicy id. */
                    public id?: (number|Long|string|null);

                    /** FirewallPolicy kind. */
                    public kind?: (string|null);

                    /** FirewallPolicy name. */
                    public name?: (string|null);

                    /** FirewallPolicy packetMirroringRules. */
                    public packetMirroringRules: google.cloud.compute.v1beta.IFirewallPolicyRule[];

                    /** FirewallPolicy parent. */
                    public parent?: (string|null);

                    /** FirewallPolicy policySource. */
                    public policySource?: (string|null);

                    /** FirewallPolicy policyType. */
                    public policyType?: (string|null);

                    /** FirewallPolicy region. */
                    public region?: (string|null);

                    /** FirewallPolicy ruleTupleCount. */
                    public ruleTupleCount?: (number|null);

                    /** FirewallPolicy rules. */
                    public rules: google.cloud.compute.v1beta.IFirewallPolicyRule[];

                    /** FirewallPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** FirewallPolicy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** FirewallPolicy shortName. */
                    public shortName?: (string|null);

                    /**
                     * Creates a new FirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPolicy): google.cloud.compute.v1beta.FirewallPolicy;

                    /**
                     * Encodes the specified FirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicy.verify|verify} messages.
                     * @param message FirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicy.verify|verify} messages.
                     * @param message FirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPolicy;

                    /**
                     * Decodes a FirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPolicy;

                    /**
                     * Verifies a FirewallPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPolicy;

                    /**
                     * Creates a plain object from a FirewallPolicy message. Also converts values to other types if specified.
                     * @param message FirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallPolicy {

                    /** PolicySource enum. */
                    enum PolicySource {
                        UNDEFINED_POLICY_SOURCE = 0,
                        SYSTEM = 313484847,
                        USER_DEFINED = 491485557
                    }

                    /** PolicyType enum. */
                    enum PolicyType {
                        UNDEFINED_POLICY_TYPE = 0,
                        RDMA_FALCON_POLICY = 66315047,
                        RDMA_ROCE_POLICY = 148757145,
                        ULL_POLICY = 100494364,
                        VPC_POLICY = 74319208
                    }
                }

                /** Properties of a FirewallPolicyAssociation. */
                interface IFirewallPolicyAssociation {

                    /** FirewallPolicyAssociation attachmentTarget */
                    attachmentTarget?: (string|null);

                    /** FirewallPolicyAssociation displayName */
                    displayName?: (string|null);

                    /** FirewallPolicyAssociation firewallPolicyId */
                    firewallPolicyId?: (string|null);

                    /** FirewallPolicyAssociation name */
                    name?: (string|null);

                    /** FirewallPolicyAssociation priority */
                    priority?: (number|null);

                    /** FirewallPolicyAssociation shortName */
                    shortName?: (string|null);
                }

                /** Represents a FirewallPolicyAssociation. */
                class FirewallPolicyAssociation implements IFirewallPolicyAssociation {

                    /**
                     * Constructs a new FirewallPolicyAssociation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPolicyAssociation);

                    /** FirewallPolicyAssociation attachmentTarget. */
                    public attachmentTarget?: (string|null);

                    /** FirewallPolicyAssociation displayName. */
                    public displayName?: (string|null);

                    /** FirewallPolicyAssociation firewallPolicyId. */
                    public firewallPolicyId?: (string|null);

                    /** FirewallPolicyAssociation name. */
                    public name?: (string|null);

                    /** FirewallPolicyAssociation priority. */
                    public priority?: (number|null);

                    /** FirewallPolicyAssociation shortName. */
                    public shortName?: (string|null);

                    /**
                     * Creates a new FirewallPolicyAssociation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyAssociation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPolicyAssociation): google.cloud.compute.v1beta.FirewallPolicyAssociation;

                    /**
                     * Encodes the specified FirewallPolicyAssociation message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyAssociation.verify|verify} messages.
                     * @param message FirewallPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyAssociation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyAssociation.verify|verify} messages.
                     * @param message FirewallPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyAssociation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPolicyAssociation;

                    /**
                     * Decodes a FirewallPolicyAssociation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPolicyAssociation;

                    /**
                     * Verifies a FirewallPolicyAssociation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyAssociation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyAssociation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPolicyAssociation;

                    /**
                     * Creates a plain object from a FirewallPolicyAssociation message. Also converts values to other types if specified.
                     * @param message FirewallPolicyAssociation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPolicyAssociation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyAssociation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyAssociation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPolicyList. */
                interface IFirewallPolicyList {

                    /** FirewallPolicyList id */
                    id?: (string|null);

                    /** FirewallPolicyList items */
                    items?: (google.cloud.compute.v1beta.IFirewallPolicy[]|null);

                    /** FirewallPolicyList kind */
                    kind?: (string|null);

                    /** FirewallPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** FirewallPolicyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a FirewallPolicyList. */
                class FirewallPolicyList implements IFirewallPolicyList {

                    /**
                     * Constructs a new FirewallPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPolicyList);

                    /** FirewallPolicyList id. */
                    public id?: (string|null);

                    /** FirewallPolicyList items. */
                    public items: google.cloud.compute.v1beta.IFirewallPolicy[];

                    /** FirewallPolicyList kind. */
                    public kind?: (string|null);

                    /** FirewallPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** FirewallPolicyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new FirewallPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPolicyList): google.cloud.compute.v1beta.FirewallPolicyList;

                    /**
                     * Encodes the specified FirewallPolicyList message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyList.verify|verify} messages.
                     * @param message FirewallPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyList.verify|verify} messages.
                     * @param message FirewallPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPolicyList;

                    /**
                     * Decodes a FirewallPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPolicyList;

                    /**
                     * Verifies a FirewallPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPolicyList;

                    /**
                     * Creates a plain object from a FirewallPolicyList message. Also converts values to other types if specified.
                     * @param message FirewallPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPolicyRule. */
                interface IFirewallPolicyRule {

                    /** FirewallPolicyRule action */
                    action?: (string|null);

                    /** FirewallPolicyRule description */
                    description?: (string|null);

                    /** FirewallPolicyRule direction */
                    direction?: (string|null);

                    /** FirewallPolicyRule disabled */
                    disabled?: (boolean|null);

                    /** FirewallPolicyRule enableLogging */
                    enableLogging?: (boolean|null);

                    /** FirewallPolicyRule kind */
                    kind?: (string|null);

                    /** FirewallPolicyRule match */
                    match?: (google.cloud.compute.v1beta.IFirewallPolicyRuleMatcher|null);

                    /** FirewallPolicyRule priority */
                    priority?: (number|null);

                    /** FirewallPolicyRule ruleName */
                    ruleName?: (string|null);

                    /** FirewallPolicyRule ruleTupleCount */
                    ruleTupleCount?: (number|null);

                    /** FirewallPolicyRule securityProfileGroup */
                    securityProfileGroup?: (string|null);

                    /** FirewallPolicyRule targetForwardingRules */
                    targetForwardingRules?: (string[]|null);

                    /** FirewallPolicyRule targetResources */
                    targetResources?: (string[]|null);

                    /** FirewallPolicyRule targetSecureTags */
                    targetSecureTags?: (google.cloud.compute.v1beta.IFirewallPolicyRuleSecureTag[]|null);

                    /** FirewallPolicyRule targetServiceAccounts */
                    targetServiceAccounts?: (string[]|null);

                    /** FirewallPolicyRule targetType */
                    targetType?: (string|null);

                    /** FirewallPolicyRule tlsInspect */
                    tlsInspect?: (boolean|null);
                }

                /** Represents a FirewallPolicyRule. */
                class FirewallPolicyRule implements IFirewallPolicyRule {

                    /**
                     * Constructs a new FirewallPolicyRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPolicyRule);

                    /** FirewallPolicyRule action. */
                    public action?: (string|null);

                    /** FirewallPolicyRule description. */
                    public description?: (string|null);

                    /** FirewallPolicyRule direction. */
                    public direction?: (string|null);

                    /** FirewallPolicyRule disabled. */
                    public disabled?: (boolean|null);

                    /** FirewallPolicyRule enableLogging. */
                    public enableLogging?: (boolean|null);

                    /** FirewallPolicyRule kind. */
                    public kind?: (string|null);

                    /** FirewallPolicyRule match. */
                    public match?: (google.cloud.compute.v1beta.IFirewallPolicyRuleMatcher|null);

                    /** FirewallPolicyRule priority. */
                    public priority?: (number|null);

                    /** FirewallPolicyRule ruleName. */
                    public ruleName?: (string|null);

                    /** FirewallPolicyRule ruleTupleCount. */
                    public ruleTupleCount?: (number|null);

                    /** FirewallPolicyRule securityProfileGroup. */
                    public securityProfileGroup?: (string|null);

                    /** FirewallPolicyRule targetForwardingRules. */
                    public targetForwardingRules: string[];

                    /** FirewallPolicyRule targetResources. */
                    public targetResources: string[];

                    /** FirewallPolicyRule targetSecureTags. */
                    public targetSecureTags: google.cloud.compute.v1beta.IFirewallPolicyRuleSecureTag[];

                    /** FirewallPolicyRule targetServiceAccounts. */
                    public targetServiceAccounts: string[];

                    /** FirewallPolicyRule targetType. */
                    public targetType?: (string|null);

                    /** FirewallPolicyRule tlsInspect. */
                    public tlsInspect?: (boolean|null);

                    /**
                     * Creates a new FirewallPolicyRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPolicyRule): google.cloud.compute.v1beta.FirewallPolicyRule;

                    /**
                     * Encodes the specified FirewallPolicyRule message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyRule.verify|verify} messages.
                     * @param message FirewallPolicyRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPolicyRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyRule.verify|verify} messages.
                     * @param message FirewallPolicyRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPolicyRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPolicyRule;

                    /**
                     * Decodes a FirewallPolicyRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPolicyRule;

                    /**
                     * Verifies a FirewallPolicyRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPolicyRule;

                    /**
                     * Creates a plain object from a FirewallPolicyRule message. Also converts values to other types if specified.
                     * @param message FirewallPolicyRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPolicyRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallPolicyRule {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        EGRESS = 432880501,
                        INGRESS = 516931221
                    }

                    /** TargetType enum. */
                    enum TargetType {
                        UNDEFINED_TARGET_TYPE = 0,
                        INSTANCES = 131337822,
                        INTERNAL_MANAGED_LB = 309241080
                    }
                }

                /** Properties of a FirewallPolicyRuleMatcher. */
                interface IFirewallPolicyRuleMatcher {

                    /** FirewallPolicyRuleMatcher destAddressGroups */
                    destAddressGroups?: (string[]|null);

                    /** FirewallPolicyRuleMatcher destFqdns */
                    destFqdns?: (string[]|null);

                    /** FirewallPolicyRuleMatcher destIpRanges */
                    destIpRanges?: (string[]|null);

                    /** FirewallPolicyRuleMatcher destNetworkContext */
                    destNetworkContext?: (string|null);

                    /** FirewallPolicyRuleMatcher destNetworkScope */
                    destNetworkScope?: (string|null);

                    /** FirewallPolicyRuleMatcher destNetworkType */
                    destNetworkType?: (string|null);

                    /** FirewallPolicyRuleMatcher destRegionCodes */
                    destRegionCodes?: (string[]|null);

                    /** FirewallPolicyRuleMatcher destThreatIntelligences */
                    destThreatIntelligences?: (string[]|null);

                    /** FirewallPolicyRuleMatcher layer4Configs */
                    layer4Configs?: (google.cloud.compute.v1beta.IFirewallPolicyRuleMatcherLayer4Config[]|null);

                    /** FirewallPolicyRuleMatcher srcAddressGroups */
                    srcAddressGroups?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcFqdns */
                    srcFqdns?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcIpRanges */
                    srcIpRanges?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcNetworkContext */
                    srcNetworkContext?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworkScope */
                    srcNetworkScope?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworkType */
                    srcNetworkType?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworks */
                    srcNetworks?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcRegionCodes */
                    srcRegionCodes?: (string[]|null);

                    /** FirewallPolicyRuleMatcher srcSecureTags */
                    srcSecureTags?: (google.cloud.compute.v1beta.IFirewallPolicyRuleSecureTag[]|null);

                    /** FirewallPolicyRuleMatcher srcThreatIntelligences */
                    srcThreatIntelligences?: (string[]|null);
                }

                /** Represents a FirewallPolicyRuleMatcher. */
                class FirewallPolicyRuleMatcher implements IFirewallPolicyRuleMatcher {

                    /**
                     * Constructs a new FirewallPolicyRuleMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcher);

                    /** FirewallPolicyRuleMatcher destAddressGroups. */
                    public destAddressGroups: string[];

                    /** FirewallPolicyRuleMatcher destFqdns. */
                    public destFqdns: string[];

                    /** FirewallPolicyRuleMatcher destIpRanges. */
                    public destIpRanges: string[];

                    /** FirewallPolicyRuleMatcher destNetworkContext. */
                    public destNetworkContext?: (string|null);

                    /** FirewallPolicyRuleMatcher destNetworkScope. */
                    public destNetworkScope?: (string|null);

                    /** FirewallPolicyRuleMatcher destNetworkType. */
                    public destNetworkType?: (string|null);

                    /** FirewallPolicyRuleMatcher destRegionCodes. */
                    public destRegionCodes: string[];

                    /** FirewallPolicyRuleMatcher destThreatIntelligences. */
                    public destThreatIntelligences: string[];

                    /** FirewallPolicyRuleMatcher layer4Configs. */
                    public layer4Configs: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcherLayer4Config[];

                    /** FirewallPolicyRuleMatcher srcAddressGroups. */
                    public srcAddressGroups: string[];

                    /** FirewallPolicyRuleMatcher srcFqdns. */
                    public srcFqdns: string[];

                    /** FirewallPolicyRuleMatcher srcIpRanges. */
                    public srcIpRanges: string[];

                    /** FirewallPolicyRuleMatcher srcNetworkContext. */
                    public srcNetworkContext?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworkScope. */
                    public srcNetworkScope?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworkType. */
                    public srcNetworkType?: (string|null);

                    /** FirewallPolicyRuleMatcher srcNetworks. */
                    public srcNetworks: string[];

                    /** FirewallPolicyRuleMatcher srcRegionCodes. */
                    public srcRegionCodes: string[];

                    /** FirewallPolicyRuleMatcher srcSecureTags. */
                    public srcSecureTags: google.cloud.compute.v1beta.IFirewallPolicyRuleSecureTag[];

                    /** FirewallPolicyRuleMatcher srcThreatIntelligences. */
                    public srcThreatIntelligences: string[];

                    /**
                     * Creates a new FirewallPolicyRuleMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyRuleMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcher): google.cloud.compute.v1beta.FirewallPolicyRuleMatcher;

                    /**
                     * Encodes the specified FirewallPolicyRuleMatcher message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyRuleMatcher.verify|verify} messages.
                     * @param message FirewallPolicyRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyRuleMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyRuleMatcher.verify|verify} messages.
                     * @param message FirewallPolicyRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyRuleMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPolicyRuleMatcher;

                    /**
                     * Decodes a FirewallPolicyRuleMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPolicyRuleMatcher;

                    /**
                     * Verifies a FirewallPolicyRuleMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyRuleMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyRuleMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPolicyRuleMatcher;

                    /**
                     * Creates a plain object from a FirewallPolicyRuleMatcher message. Also converts values to other types if specified.
                     * @param message FirewallPolicyRuleMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPolicyRuleMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyRuleMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyRuleMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallPolicyRuleMatcher {

                    /** DestNetworkContext enum. */
                    enum DestNetworkContext {
                        UNDEFINED_DEST_NETWORK_CONTEXT = 0
                    }

                    /** DestNetworkScope enum. */
                    enum DestNetworkScope {
                        UNDEFINED_DEST_NETWORK_SCOPE = 0
                    }

                    /** DestNetworkType enum. */
                    enum DestNetworkType {
                        UNDEFINED_DEST_NETWORK_TYPE = 0
                    }

                    /** SrcNetworkContext enum. */
                    enum SrcNetworkContext {
                        UNDEFINED_SRC_NETWORK_CONTEXT = 0
                    }

                    /** SrcNetworkScope enum. */
                    enum SrcNetworkScope {
                        UNDEFINED_SRC_NETWORK_SCOPE = 0
                    }

                    /** SrcNetworkType enum. */
                    enum SrcNetworkType {
                        UNDEFINED_SRC_NETWORK_TYPE = 0
                    }
                }

                /** Properties of a FirewallPolicyRuleMatcherLayer4Config. */
                interface IFirewallPolicyRuleMatcherLayer4Config {

                    /** FirewallPolicyRuleMatcherLayer4Config ipProtocol */
                    ipProtocol?: (string|null);

                    /** FirewallPolicyRuleMatcherLayer4Config ports */
                    ports?: (string[]|null);
                }

                /** Represents a FirewallPolicyRuleMatcherLayer4Config. */
                class FirewallPolicyRuleMatcherLayer4Config implements IFirewallPolicyRuleMatcherLayer4Config {

                    /**
                     * Constructs a new FirewallPolicyRuleMatcherLayer4Config.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcherLayer4Config);

                    /** FirewallPolicyRuleMatcherLayer4Config ipProtocol. */
                    public ipProtocol?: (string|null);

                    /** FirewallPolicyRuleMatcherLayer4Config ports. */
                    public ports: string[];

                    /**
                     * Creates a new FirewallPolicyRuleMatcherLayer4Config instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyRuleMatcherLayer4Config instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcherLayer4Config): google.cloud.compute.v1beta.FirewallPolicyRuleMatcherLayer4Config;

                    /**
                     * Encodes the specified FirewallPolicyRuleMatcherLayer4Config message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyRuleMatcherLayer4Config.verify|verify} messages.
                     * @param message FirewallPolicyRuleMatcherLayer4Config message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcherLayer4Config, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyRuleMatcherLayer4Config message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyRuleMatcherLayer4Config.verify|verify} messages.
                     * @param message FirewallPolicyRuleMatcherLayer4Config message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPolicyRuleMatcherLayer4Config, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyRuleMatcherLayer4Config message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyRuleMatcherLayer4Config
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPolicyRuleMatcherLayer4Config;

                    /**
                     * Decodes a FirewallPolicyRuleMatcherLayer4Config message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyRuleMatcherLayer4Config
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPolicyRuleMatcherLayer4Config;

                    /**
                     * Verifies a FirewallPolicyRuleMatcherLayer4Config message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyRuleMatcherLayer4Config message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyRuleMatcherLayer4Config
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPolicyRuleMatcherLayer4Config;

                    /**
                     * Creates a plain object from a FirewallPolicyRuleMatcherLayer4Config message. Also converts values to other types if specified.
                     * @param message FirewallPolicyRuleMatcherLayer4Config
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPolicyRuleMatcherLayer4Config, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyRuleMatcherLayer4Config to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyRuleMatcherLayer4Config
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FirewallPolicyRuleSecureTag. */
                interface IFirewallPolicyRuleSecureTag {

                    /** FirewallPolicyRuleSecureTag name */
                    name?: (string|null);

                    /** FirewallPolicyRuleSecureTag state */
                    state?: (string|null);
                }

                /** Represents a FirewallPolicyRuleSecureTag. */
                class FirewallPolicyRuleSecureTag implements IFirewallPolicyRuleSecureTag {

                    /**
                     * Constructs a new FirewallPolicyRuleSecureTag.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFirewallPolicyRuleSecureTag);

                    /** FirewallPolicyRuleSecureTag name. */
                    public name?: (string|null);

                    /** FirewallPolicyRuleSecureTag state. */
                    public state?: (string|null);

                    /**
                     * Creates a new FirewallPolicyRuleSecureTag instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FirewallPolicyRuleSecureTag instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFirewallPolicyRuleSecureTag): google.cloud.compute.v1beta.FirewallPolicyRuleSecureTag;

                    /**
                     * Encodes the specified FirewallPolicyRuleSecureTag message. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyRuleSecureTag.verify|verify} messages.
                     * @param message FirewallPolicyRuleSecureTag message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFirewallPolicyRuleSecureTag, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FirewallPolicyRuleSecureTag message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FirewallPolicyRuleSecureTag.verify|verify} messages.
                     * @param message FirewallPolicyRuleSecureTag message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFirewallPolicyRuleSecureTag, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FirewallPolicyRuleSecureTag message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FirewallPolicyRuleSecureTag
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FirewallPolicyRuleSecureTag;

                    /**
                     * Decodes a FirewallPolicyRuleSecureTag message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FirewallPolicyRuleSecureTag
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FirewallPolicyRuleSecureTag;

                    /**
                     * Verifies a FirewallPolicyRuleSecureTag message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FirewallPolicyRuleSecureTag message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FirewallPolicyRuleSecureTag
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FirewallPolicyRuleSecureTag;

                    /**
                     * Creates a plain object from a FirewallPolicyRuleSecureTag message. Also converts values to other types if specified.
                     * @param message FirewallPolicyRuleSecureTag
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FirewallPolicyRuleSecureTag, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FirewallPolicyRuleSecureTag to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FirewallPolicyRuleSecureTag
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FirewallPolicyRuleSecureTag {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        EFFECTIVE = 244201863,
                        INEFFECTIVE = 304458242
                    }
                }

                /** Properties of a FixedOrPercent. */
                interface IFixedOrPercent {

                    /** FixedOrPercent calculated */
                    calculated?: (number|null);

                    /** FixedOrPercent fixed */
                    fixed?: (number|null);

                    /** FixedOrPercent percent */
                    percent?: (number|null);
                }

                /** Represents a FixedOrPercent. */
                class FixedOrPercent implements IFixedOrPercent {

                    /**
                     * Constructs a new FixedOrPercent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFixedOrPercent);

                    /** FixedOrPercent calculated. */
                    public calculated?: (number|null);

                    /** FixedOrPercent fixed. */
                    public fixed?: (number|null);

                    /** FixedOrPercent percent. */
                    public percent?: (number|null);

                    /**
                     * Creates a new FixedOrPercent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FixedOrPercent instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFixedOrPercent): google.cloud.compute.v1beta.FixedOrPercent;

                    /**
                     * Encodes the specified FixedOrPercent message. Does not implicitly {@link google.cloud.compute.v1beta.FixedOrPercent.verify|verify} messages.
                     * @param message FixedOrPercent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFixedOrPercent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FixedOrPercent message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FixedOrPercent.verify|verify} messages.
                     * @param message FixedOrPercent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFixedOrPercent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FixedOrPercent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FixedOrPercent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FixedOrPercent;

                    /**
                     * Decodes a FixedOrPercent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FixedOrPercent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FixedOrPercent;

                    /**
                     * Verifies a FixedOrPercent message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FixedOrPercent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FixedOrPercent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FixedOrPercent;

                    /**
                     * Creates a plain object from a FixedOrPercent message. Also converts values to other types if specified.
                     * @param message FixedOrPercent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FixedOrPercent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FixedOrPercent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FixedOrPercent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FlexibleTimeRange. */
                interface IFlexibleTimeRange {

                    /** FlexibleTimeRange endTimeNotEarlierThan */
                    endTimeNotEarlierThan?: (string|null);

                    /** FlexibleTimeRange endTimeNotLaterThan */
                    endTimeNotLaterThan?: (string|null);

                    /** FlexibleTimeRange maxDuration */
                    maxDuration?: (string|null);

                    /** FlexibleTimeRange minDuration */
                    minDuration?: (string|null);

                    /** FlexibleTimeRange startTimeNotEarlierThan */
                    startTimeNotEarlierThan?: (string|null);

                    /** FlexibleTimeRange startTimeNotLaterThan */
                    startTimeNotLaterThan?: (string|null);
                }

                /** Represents a FlexibleTimeRange. */
                class FlexibleTimeRange implements IFlexibleTimeRange {

                    /**
                     * Constructs a new FlexibleTimeRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFlexibleTimeRange);

                    /** FlexibleTimeRange endTimeNotEarlierThan. */
                    public endTimeNotEarlierThan?: (string|null);

                    /** FlexibleTimeRange endTimeNotLaterThan. */
                    public endTimeNotLaterThan?: (string|null);

                    /** FlexibleTimeRange maxDuration. */
                    public maxDuration?: (string|null);

                    /** FlexibleTimeRange minDuration. */
                    public minDuration?: (string|null);

                    /** FlexibleTimeRange startTimeNotEarlierThan. */
                    public startTimeNotEarlierThan?: (string|null);

                    /** FlexibleTimeRange startTimeNotLaterThan. */
                    public startTimeNotLaterThan?: (string|null);

                    /**
                     * Creates a new FlexibleTimeRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FlexibleTimeRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFlexibleTimeRange): google.cloud.compute.v1beta.FlexibleTimeRange;

                    /**
                     * Encodes the specified FlexibleTimeRange message. Does not implicitly {@link google.cloud.compute.v1beta.FlexibleTimeRange.verify|verify} messages.
                     * @param message FlexibleTimeRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFlexibleTimeRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FlexibleTimeRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FlexibleTimeRange.verify|verify} messages.
                     * @param message FlexibleTimeRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFlexibleTimeRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FlexibleTimeRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FlexibleTimeRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FlexibleTimeRange;

                    /**
                     * Decodes a FlexibleTimeRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FlexibleTimeRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FlexibleTimeRange;

                    /**
                     * Verifies a FlexibleTimeRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FlexibleTimeRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FlexibleTimeRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FlexibleTimeRange;

                    /**
                     * Creates a plain object from a FlexibleTimeRange message. Also converts values to other types if specified.
                     * @param message FlexibleTimeRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FlexibleTimeRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FlexibleTimeRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FlexibleTimeRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRule. */
                interface IForwardingRule {

                    /** ForwardingRule IPAddress */
                    IPAddress?: (string|null);

                    /** ForwardingRule IPProtocol */
                    IPProtocol?: (string|null);

                    /** ForwardingRule allPorts */
                    allPorts?: (boolean|null);

                    /** ForwardingRule allowGlobalAccess */
                    allowGlobalAccess?: (boolean|null);

                    /** ForwardingRule allowPscGlobalAccess */
                    allowPscGlobalAccess?: (boolean|null);

                    /** ForwardingRule allowPscPacketInjection */
                    allowPscPacketInjection?: (boolean|null);

                    /** ForwardingRule backendService */
                    backendService?: (string|null);

                    /** ForwardingRule baseForwardingRule */
                    baseForwardingRule?: (string|null);

                    /** ForwardingRule creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ForwardingRule description */
                    description?: (string|null);

                    /** ForwardingRule externalManagedBackendBucketMigrationState */
                    externalManagedBackendBucketMigrationState?: (string|null);

                    /** ForwardingRule externalManagedBackendBucketMigrationTestingPercentage */
                    externalManagedBackendBucketMigrationTestingPercentage?: (number|null);

                    /** ForwardingRule fingerprint */
                    fingerprint?: (string|null);

                    /** ForwardingRule id */
                    id?: (number|Long|string|null);

                    /** ForwardingRule ipCollection */
                    ipCollection?: (string|null);

                    /** ForwardingRule ipVersion */
                    ipVersion?: (string|null);

                    /** ForwardingRule isMirroringCollector */
                    isMirroringCollector?: (boolean|null);

                    /** ForwardingRule kind */
                    kind?: (string|null);

                    /** ForwardingRule labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** ForwardingRule labels */
                    labels?: ({ [k: string]: string }|null);

                    /** ForwardingRule loadBalancingScheme */
                    loadBalancingScheme?: (string|null);

                    /** ForwardingRule metadataFilters */
                    metadataFilters?: (google.cloud.compute.v1beta.IMetadataFilter[]|null);

                    /** ForwardingRule name */
                    name?: (string|null);

                    /** ForwardingRule network */
                    network?: (string|null);

                    /** ForwardingRule networkTier */
                    networkTier?: (string|null);

                    /** ForwardingRule noAutomateDnsZone */
                    noAutomateDnsZone?: (boolean|null);

                    /** ForwardingRule portRange */
                    portRange?: (string|null);

                    /** ForwardingRule ports */
                    ports?: (string[]|null);

                    /** ForwardingRule pscConnectionId */
                    pscConnectionId?: (number|Long|string|null);

                    /** ForwardingRule pscConnectionStatus */
                    pscConnectionStatus?: (string|null);

                    /** ForwardingRule region */
                    region?: (string|null);

                    /** ForwardingRule selfLink */
                    selfLink?: (string|null);

                    /** ForwardingRule selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** ForwardingRule serviceDirectoryRegistrations */
                    serviceDirectoryRegistrations?: (google.cloud.compute.v1beta.IForwardingRuleServiceDirectoryRegistration[]|null);

                    /** ForwardingRule serviceLabel */
                    serviceLabel?: (string|null);

                    /** ForwardingRule serviceName */
                    serviceName?: (string|null);

                    /** ForwardingRule sourceIpRanges */
                    sourceIpRanges?: (string[]|null);

                    /** ForwardingRule subnetwork */
                    subnetwork?: (string|null);

                    /** ForwardingRule target */
                    target?: (string|null);
                }

                /** Represents a ForwardingRule. */
                class ForwardingRule implements IForwardingRule {

                    /**
                     * Constructs a new ForwardingRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IForwardingRule);

                    /** ForwardingRule IPAddress. */
                    public IPAddress?: (string|null);

                    /** ForwardingRule IPProtocol. */
                    public IPProtocol?: (string|null);

                    /** ForwardingRule allPorts. */
                    public allPorts?: (boolean|null);

                    /** ForwardingRule allowGlobalAccess. */
                    public allowGlobalAccess?: (boolean|null);

                    /** ForwardingRule allowPscGlobalAccess. */
                    public allowPscGlobalAccess?: (boolean|null);

                    /** ForwardingRule allowPscPacketInjection. */
                    public allowPscPacketInjection?: (boolean|null);

                    /** ForwardingRule backendService. */
                    public backendService?: (string|null);

                    /** ForwardingRule baseForwardingRule. */
                    public baseForwardingRule?: (string|null);

                    /** ForwardingRule creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ForwardingRule description. */
                    public description?: (string|null);

                    /** ForwardingRule externalManagedBackendBucketMigrationState. */
                    public externalManagedBackendBucketMigrationState?: (string|null);

                    /** ForwardingRule externalManagedBackendBucketMigrationTestingPercentage. */
                    public externalManagedBackendBucketMigrationTestingPercentage?: (number|null);

                    /** ForwardingRule fingerprint. */
                    public fingerprint?: (string|null);

                    /** ForwardingRule id. */
                    public id?: (number|Long|string|null);

                    /** ForwardingRule ipCollection. */
                    public ipCollection?: (string|null);

                    /** ForwardingRule ipVersion. */
                    public ipVersion?: (string|null);

                    /** ForwardingRule isMirroringCollector. */
                    public isMirroringCollector?: (boolean|null);

                    /** ForwardingRule kind. */
                    public kind?: (string|null);

                    /** ForwardingRule labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** ForwardingRule labels. */
                    public labels: { [k: string]: string };

                    /** ForwardingRule loadBalancingScheme. */
                    public loadBalancingScheme?: (string|null);

                    /** ForwardingRule metadataFilters. */
                    public metadataFilters: google.cloud.compute.v1beta.IMetadataFilter[];

                    /** ForwardingRule name. */
                    public name?: (string|null);

                    /** ForwardingRule network. */
                    public network?: (string|null);

                    /** ForwardingRule networkTier. */
                    public networkTier?: (string|null);

                    /** ForwardingRule noAutomateDnsZone. */
                    public noAutomateDnsZone?: (boolean|null);

                    /** ForwardingRule portRange. */
                    public portRange?: (string|null);

                    /** ForwardingRule ports. */
                    public ports: string[];

                    /** ForwardingRule pscConnectionId. */
                    public pscConnectionId?: (number|Long|string|null);

                    /** ForwardingRule pscConnectionStatus. */
                    public pscConnectionStatus?: (string|null);

                    /** ForwardingRule region. */
                    public region?: (string|null);

                    /** ForwardingRule selfLink. */
                    public selfLink?: (string|null);

                    /** ForwardingRule selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** ForwardingRule serviceDirectoryRegistrations. */
                    public serviceDirectoryRegistrations: google.cloud.compute.v1beta.IForwardingRuleServiceDirectoryRegistration[];

                    /** ForwardingRule serviceLabel. */
                    public serviceLabel?: (string|null);

                    /** ForwardingRule serviceName. */
                    public serviceName?: (string|null);

                    /** ForwardingRule sourceIpRanges. */
                    public sourceIpRanges: string[];

                    /** ForwardingRule subnetwork. */
                    public subnetwork?: (string|null);

                    /** ForwardingRule target. */
                    public target?: (string|null);

                    /**
                     * Creates a new ForwardingRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IForwardingRule): google.cloud.compute.v1beta.ForwardingRule;

                    /**
                     * Encodes the specified ForwardingRule message. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRule.verify|verify} messages.
                     * @param message ForwardingRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IForwardingRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRule.verify|verify} messages.
                     * @param message ForwardingRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IForwardingRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ForwardingRule;

                    /**
                     * Decodes a ForwardingRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ForwardingRule;

                    /**
                     * Verifies a ForwardingRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ForwardingRule;

                    /**
                     * Creates a plain object from a ForwardingRule message. Also converts values to other types if specified.
                     * @param message ForwardingRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ForwardingRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ForwardingRule {

                    /** ExternalManagedBackendBucketMigrationState enum. */
                    enum ExternalManagedBackendBucketMigrationState {
                        UNDEFINED_EXTERNAL_MANAGED_BACKEND_BUCKET_MIGRATION_STATE = 0,
                        PREPARE = 399612135,
                        TEST_ALL_TRAFFIC = 79728882,
                        TEST_BY_PERCENTAGE = 513738389
                    }

                    /** IPProtocolEnum enum. */
                    enum IPProtocolEnum {
                        UNDEFINED_I_P_PROTOCOL_ENUM = 0,
                        AH = 2087,
                        ESP = 68962,
                        ICMP = 2241597,
                        L3_DEFAULT = 48151369,
                        SCTP = 2539724,
                        TCP = 82881,
                        UDP = 83873
                    }

                    /** IpVersion enum. */
                    enum IpVersion {
                        UNDEFINED_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        UNSPECIFIED_VERSION = 21850000
                    }

                    /** LoadBalancingScheme enum. */
                    enum LoadBalancingScheme {
                        UNDEFINED_LOAD_BALANCING_SCHEME = 0,
                        EXTERNAL = 35607499,
                        EXTERNAL_MANAGED = 512006923,
                        INTERNAL = 279295677,
                        INTERNAL_MANAGED = 37350397,
                        INTERNAL_SELF_MANAGED = 236211150,
                        INVALID = 530283991
                    }

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** PscConnectionStatus enum. */
                    enum PscConnectionStatus {
                        UNDEFINED_PSC_CONNECTION_STATUS = 0,
                        ACCEPTED = 246714279,
                        CLOSED = 380163436,
                        NEEDS_ATTENTION = 344491452,
                        PENDING = 35394935,
                        REJECTED = 174130302,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a ForwardingRuleAggregatedList. */
                interface IForwardingRuleAggregatedList {

                    /** ForwardingRuleAggregatedList id */
                    id?: (string|null);

                    /** ForwardingRuleAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IForwardingRulesScopedList }|null);

                    /** ForwardingRuleAggregatedList kind */
                    kind?: (string|null);

                    /** ForwardingRuleAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ForwardingRuleAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** ForwardingRuleAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** ForwardingRuleAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ForwardingRuleAggregatedList. */
                class ForwardingRuleAggregatedList implements IForwardingRuleAggregatedList {

                    /**
                     * Constructs a new ForwardingRuleAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IForwardingRuleAggregatedList);

                    /** ForwardingRuleAggregatedList id. */
                    public id?: (string|null);

                    /** ForwardingRuleAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IForwardingRulesScopedList };

                    /** ForwardingRuleAggregatedList kind. */
                    public kind?: (string|null);

                    /** ForwardingRuleAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ForwardingRuleAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** ForwardingRuleAggregatedList unreachables. */
                    public unreachables: string[];

                    /** ForwardingRuleAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ForwardingRuleAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRuleAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IForwardingRuleAggregatedList): google.cloud.compute.v1beta.ForwardingRuleAggregatedList;

                    /**
                     * Encodes the specified ForwardingRuleAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRuleAggregatedList.verify|verify} messages.
                     * @param message ForwardingRuleAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IForwardingRuleAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRuleAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRuleAggregatedList.verify|verify} messages.
                     * @param message ForwardingRuleAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IForwardingRuleAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRuleAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRuleAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ForwardingRuleAggregatedList;

                    /**
                     * Decodes a ForwardingRuleAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRuleAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ForwardingRuleAggregatedList;

                    /**
                     * Verifies a ForwardingRuleAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRuleAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRuleAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ForwardingRuleAggregatedList;

                    /**
                     * Creates a plain object from a ForwardingRuleAggregatedList message. Also converts values to other types if specified.
                     * @param message ForwardingRuleAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ForwardingRuleAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRuleAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRuleAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRuleList. */
                interface IForwardingRuleList {

                    /** ForwardingRuleList id */
                    id?: (string|null);

                    /** ForwardingRuleList items */
                    items?: (google.cloud.compute.v1beta.IForwardingRule[]|null);

                    /** ForwardingRuleList kind */
                    kind?: (string|null);

                    /** ForwardingRuleList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ForwardingRuleList selfLink */
                    selfLink?: (string|null);

                    /** ForwardingRuleList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ForwardingRuleList. */
                class ForwardingRuleList implements IForwardingRuleList {

                    /**
                     * Constructs a new ForwardingRuleList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IForwardingRuleList);

                    /** ForwardingRuleList id. */
                    public id?: (string|null);

                    /** ForwardingRuleList items. */
                    public items: google.cloud.compute.v1beta.IForwardingRule[];

                    /** ForwardingRuleList kind. */
                    public kind?: (string|null);

                    /** ForwardingRuleList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ForwardingRuleList selfLink. */
                    public selfLink?: (string|null);

                    /** ForwardingRuleList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ForwardingRuleList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRuleList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IForwardingRuleList): google.cloud.compute.v1beta.ForwardingRuleList;

                    /**
                     * Encodes the specified ForwardingRuleList message. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRuleList.verify|verify} messages.
                     * @param message ForwardingRuleList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IForwardingRuleList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRuleList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRuleList.verify|verify} messages.
                     * @param message ForwardingRuleList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IForwardingRuleList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRuleList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRuleList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ForwardingRuleList;

                    /**
                     * Decodes a ForwardingRuleList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRuleList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ForwardingRuleList;

                    /**
                     * Verifies a ForwardingRuleList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRuleList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRuleList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ForwardingRuleList;

                    /**
                     * Creates a plain object from a ForwardingRuleList message. Also converts values to other types if specified.
                     * @param message ForwardingRuleList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ForwardingRuleList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRuleList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRuleList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRuleReference. */
                interface IForwardingRuleReference {

                    /** ForwardingRuleReference forwardingRule */
                    forwardingRule?: (string|null);
                }

                /** Represents a ForwardingRuleReference. */
                class ForwardingRuleReference implements IForwardingRuleReference {

                    /**
                     * Constructs a new ForwardingRuleReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IForwardingRuleReference);

                    /** ForwardingRuleReference forwardingRule. */
                    public forwardingRule?: (string|null);

                    /**
                     * Creates a new ForwardingRuleReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRuleReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IForwardingRuleReference): google.cloud.compute.v1beta.ForwardingRuleReference;

                    /**
                     * Encodes the specified ForwardingRuleReference message. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRuleReference.verify|verify} messages.
                     * @param message ForwardingRuleReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IForwardingRuleReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRuleReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRuleReference.verify|verify} messages.
                     * @param message ForwardingRuleReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IForwardingRuleReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRuleReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRuleReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ForwardingRuleReference;

                    /**
                     * Decodes a ForwardingRuleReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRuleReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ForwardingRuleReference;

                    /**
                     * Verifies a ForwardingRuleReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRuleReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRuleReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ForwardingRuleReference;

                    /**
                     * Creates a plain object from a ForwardingRuleReference message. Also converts values to other types if specified.
                     * @param message ForwardingRuleReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ForwardingRuleReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRuleReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRuleReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRuleServiceDirectoryRegistration. */
                interface IForwardingRuleServiceDirectoryRegistration {

                    /** ForwardingRuleServiceDirectoryRegistration namespace */
                    namespace?: (string|null);

                    /** ForwardingRuleServiceDirectoryRegistration service */
                    service?: (string|null);

                    /** ForwardingRuleServiceDirectoryRegistration serviceDirectoryRegion */
                    serviceDirectoryRegion?: (string|null);
                }

                /** Represents a ForwardingRuleServiceDirectoryRegistration. */
                class ForwardingRuleServiceDirectoryRegistration implements IForwardingRuleServiceDirectoryRegistration {

                    /**
                     * Constructs a new ForwardingRuleServiceDirectoryRegistration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IForwardingRuleServiceDirectoryRegistration);

                    /** ForwardingRuleServiceDirectoryRegistration namespace. */
                    public namespace?: (string|null);

                    /** ForwardingRuleServiceDirectoryRegistration service. */
                    public service?: (string|null);

                    /** ForwardingRuleServiceDirectoryRegistration serviceDirectoryRegion. */
                    public serviceDirectoryRegion?: (string|null);

                    /**
                     * Creates a new ForwardingRuleServiceDirectoryRegistration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRuleServiceDirectoryRegistration instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IForwardingRuleServiceDirectoryRegistration): google.cloud.compute.v1beta.ForwardingRuleServiceDirectoryRegistration;

                    /**
                     * Encodes the specified ForwardingRuleServiceDirectoryRegistration message. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRuleServiceDirectoryRegistration.verify|verify} messages.
                     * @param message ForwardingRuleServiceDirectoryRegistration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IForwardingRuleServiceDirectoryRegistration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRuleServiceDirectoryRegistration message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRuleServiceDirectoryRegistration.verify|verify} messages.
                     * @param message ForwardingRuleServiceDirectoryRegistration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IForwardingRuleServiceDirectoryRegistration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRuleServiceDirectoryRegistration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRuleServiceDirectoryRegistration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ForwardingRuleServiceDirectoryRegistration;

                    /**
                     * Decodes a ForwardingRuleServiceDirectoryRegistration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRuleServiceDirectoryRegistration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ForwardingRuleServiceDirectoryRegistration;

                    /**
                     * Verifies a ForwardingRuleServiceDirectoryRegistration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRuleServiceDirectoryRegistration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRuleServiceDirectoryRegistration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ForwardingRuleServiceDirectoryRegistration;

                    /**
                     * Creates a plain object from a ForwardingRuleServiceDirectoryRegistration message. Also converts values to other types if specified.
                     * @param message ForwardingRuleServiceDirectoryRegistration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ForwardingRuleServiceDirectoryRegistration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRuleServiceDirectoryRegistration to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRuleServiceDirectoryRegistration
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardingRulesScopedList. */
                interface IForwardingRulesScopedList {

                    /** ForwardingRulesScopedList forwardingRules */
                    forwardingRules?: (google.cloud.compute.v1beta.IForwardingRule[]|null);

                    /** ForwardingRulesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ForwardingRulesScopedList. */
                class ForwardingRulesScopedList implements IForwardingRulesScopedList {

                    /**
                     * Constructs a new ForwardingRulesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IForwardingRulesScopedList);

                    /** ForwardingRulesScopedList forwardingRules. */
                    public forwardingRules: google.cloud.compute.v1beta.IForwardingRule[];

                    /** ForwardingRulesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ForwardingRulesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardingRulesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IForwardingRulesScopedList): google.cloud.compute.v1beta.ForwardingRulesScopedList;

                    /**
                     * Encodes the specified ForwardingRulesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRulesScopedList.verify|verify} messages.
                     * @param message ForwardingRulesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IForwardingRulesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardingRulesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ForwardingRulesScopedList.verify|verify} messages.
                     * @param message ForwardingRulesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IForwardingRulesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardingRulesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardingRulesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ForwardingRulesScopedList;

                    /**
                     * Decodes a ForwardingRulesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardingRulesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ForwardingRulesScopedList;

                    /**
                     * Verifies a ForwardingRulesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardingRulesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardingRulesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ForwardingRulesScopedList;

                    /**
                     * Creates a plain object from a ForwardingRulesScopedList message. Also converts values to other types if specified.
                     * @param message ForwardingRulesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ForwardingRulesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardingRulesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardingRulesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservation. */
                interface IFutureReservation {

                    /** FutureReservation advancedDeploymentControl */
                    advancedDeploymentControl?: (google.cloud.compute.v1beta.IReservationAdvancedDeploymentControl|null);

                    /** FutureReservation aggregateReservation */
                    aggregateReservation?: (google.cloud.compute.v1beta.IAllocationAggregateReservation|null);

                    /** FutureReservation autoCreatedReservationsDeleteTime */
                    autoCreatedReservationsDeleteTime?: (string|null);

                    /** FutureReservation autoCreatedReservationsDuration */
                    autoCreatedReservationsDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** FutureReservation autoDeleteAutoCreatedReservations */
                    autoDeleteAutoCreatedReservations?: (boolean|null);

                    /** FutureReservation commitmentInfo */
                    commitmentInfo?: (google.cloud.compute.v1beta.IFutureReservationCommitmentInfo|null);

                    /** FutureReservation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** FutureReservation deploymentType */
                    deploymentType?: (string|null);

                    /** FutureReservation description */
                    description?: (string|null);

                    /** FutureReservation enableEmergentMaintenance */
                    enableEmergentMaintenance?: (boolean|null);

                    /** FutureReservation id */
                    id?: (number|Long|string|null);

                    /** FutureReservation kind */
                    kind?: (string|null);

                    /** FutureReservation name */
                    name?: (string|null);

                    /** FutureReservation namePrefix */
                    namePrefix?: (string|null);

                    /** FutureReservation planningStatus */
                    planningStatus?: (string|null);

                    /** FutureReservation protectionTier */
                    protectionTier?: (string|null);

                    /** FutureReservation reservationMode */
                    reservationMode?: (string|null);

                    /** FutureReservation reservationName */
                    reservationName?: (string|null);

                    /** FutureReservation schedulingType */
                    schedulingType?: (string|null);

                    /** FutureReservation selfLink */
                    selfLink?: (string|null);

                    /** FutureReservation selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** FutureReservation shareSettings */
                    shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** FutureReservation specificReservationRequired */
                    specificReservationRequired?: (boolean|null);

                    /** FutureReservation specificSkuProperties */
                    specificSkuProperties?: (google.cloud.compute.v1beta.IFutureReservationSpecificSKUProperties|null);

                    /** FutureReservation status */
                    status?: (google.cloud.compute.v1beta.IFutureReservationStatus|null);

                    /** FutureReservation timeWindow */
                    timeWindow?: (google.cloud.compute.v1beta.IFutureReservationTimeWindow|null);

                    /** FutureReservation zone */
                    zone?: (string|null);
                }

                /** Represents a FutureReservation. */
                class FutureReservation implements IFutureReservation {

                    /**
                     * Constructs a new FutureReservation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservation);

                    /** FutureReservation advancedDeploymentControl. */
                    public advancedDeploymentControl?: (google.cloud.compute.v1beta.IReservationAdvancedDeploymentControl|null);

                    /** FutureReservation aggregateReservation. */
                    public aggregateReservation?: (google.cloud.compute.v1beta.IAllocationAggregateReservation|null);

                    /** FutureReservation autoCreatedReservationsDeleteTime. */
                    public autoCreatedReservationsDeleteTime?: (string|null);

                    /** FutureReservation autoCreatedReservationsDuration. */
                    public autoCreatedReservationsDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** FutureReservation autoDeleteAutoCreatedReservations. */
                    public autoDeleteAutoCreatedReservations?: (boolean|null);

                    /** FutureReservation commitmentInfo. */
                    public commitmentInfo?: (google.cloud.compute.v1beta.IFutureReservationCommitmentInfo|null);

                    /** FutureReservation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** FutureReservation deploymentType. */
                    public deploymentType?: (string|null);

                    /** FutureReservation description. */
                    public description?: (string|null);

                    /** FutureReservation enableEmergentMaintenance. */
                    public enableEmergentMaintenance?: (boolean|null);

                    /** FutureReservation id. */
                    public id?: (number|Long|string|null);

                    /** FutureReservation kind. */
                    public kind?: (string|null);

                    /** FutureReservation name. */
                    public name?: (string|null);

                    /** FutureReservation namePrefix. */
                    public namePrefix?: (string|null);

                    /** FutureReservation planningStatus. */
                    public planningStatus?: (string|null);

                    /** FutureReservation protectionTier. */
                    public protectionTier?: (string|null);

                    /** FutureReservation reservationMode. */
                    public reservationMode?: (string|null);

                    /** FutureReservation reservationName. */
                    public reservationName?: (string|null);

                    /** FutureReservation schedulingType. */
                    public schedulingType?: (string|null);

                    /** FutureReservation selfLink. */
                    public selfLink?: (string|null);

                    /** FutureReservation selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** FutureReservation shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** FutureReservation specificReservationRequired. */
                    public specificReservationRequired?: (boolean|null);

                    /** FutureReservation specificSkuProperties. */
                    public specificSkuProperties?: (google.cloud.compute.v1beta.IFutureReservationSpecificSKUProperties|null);

                    /** FutureReservation status. */
                    public status?: (google.cloud.compute.v1beta.IFutureReservationStatus|null);

                    /** FutureReservation timeWindow. */
                    public timeWindow?: (google.cloud.compute.v1beta.IFutureReservationTimeWindow|null);

                    /** FutureReservation zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new FutureReservation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservation): google.cloud.compute.v1beta.FutureReservation;

                    /**
                     * Encodes the specified FutureReservation message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservation.verify|verify} messages.
                     * @param message FutureReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservation.verify|verify} messages.
                     * @param message FutureReservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservation;

                    /**
                     * Decodes a FutureReservation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservation;

                    /**
                     * Verifies a FutureReservation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservation;

                    /**
                     * Creates a plain object from a FutureReservation message. Also converts values to other types if specified.
                     * @param message FutureReservation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureReservation {

                    /** DeploymentType enum. */
                    enum DeploymentType {
                        UNDEFINED_DEPLOYMENT_TYPE = 0,
                        DENSE = 64932607,
                        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180,
                        FLEXIBLE = 379880395
                    }

                    /** PlanningStatus enum. */
                    enum PlanningStatus {
                        UNDEFINED_PLANNING_STATUS = 0,
                        DRAFT = 65307009,
                        PLANNING_STATUS_UNSPECIFIED = 252728940,
                        SUBMITTED = 450918619
                    }

                    /** ProtectionTier enum. */
                    enum ProtectionTier {
                        UNDEFINED_PROTECTION_TIER = 0,
                        CAPACITY_OPTIMIZED = 17430466,
                        PROTECTION_TIER_UNSPECIFIED = 262261984,
                        STANDARD = 484642493
                    }

                    /** ReservationMode enum. */
                    enum ReservationMode {
                        UNDEFINED_RESERVATION_MODE = 0,
                        CALENDAR = 67431230,
                        DEFAULT = 115302945,
                        RESERVATION_MODE_UNSPECIFIED = 233810606
                    }

                    /** SchedulingType enum. */
                    enum SchedulingType {
                        UNDEFINED_SCHEDULING_TYPE = 0,
                        GROUPED = 474540862,
                        GROUP_MAINTENANCE_TYPE_UNSPECIFIED = 447183678,
                        INDEPENDENT = 127011674
                    }
                }

                /** Properties of a FutureReservationCommitmentInfo. */
                interface IFutureReservationCommitmentInfo {

                    /** FutureReservationCommitmentInfo commitmentName */
                    commitmentName?: (string|null);

                    /** FutureReservationCommitmentInfo commitmentPlan */
                    commitmentPlan?: (string|null);

                    /** FutureReservationCommitmentInfo previousCommitmentTerms */
                    previousCommitmentTerms?: (string|null);
                }

                /** Represents a FutureReservationCommitmentInfo. */
                class FutureReservationCommitmentInfo implements IFutureReservationCommitmentInfo {

                    /**
                     * Constructs a new FutureReservationCommitmentInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationCommitmentInfo);

                    /** FutureReservationCommitmentInfo commitmentName. */
                    public commitmentName?: (string|null);

                    /** FutureReservationCommitmentInfo commitmentPlan. */
                    public commitmentPlan?: (string|null);

                    /** FutureReservationCommitmentInfo previousCommitmentTerms. */
                    public previousCommitmentTerms?: (string|null);

                    /**
                     * Creates a new FutureReservationCommitmentInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationCommitmentInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationCommitmentInfo): google.cloud.compute.v1beta.FutureReservationCommitmentInfo;

                    /**
                     * Encodes the specified FutureReservationCommitmentInfo message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationCommitmentInfo.verify|verify} messages.
                     * @param message FutureReservationCommitmentInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationCommitmentInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationCommitmentInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationCommitmentInfo.verify|verify} messages.
                     * @param message FutureReservationCommitmentInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationCommitmentInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationCommitmentInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationCommitmentInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationCommitmentInfo;

                    /**
                     * Decodes a FutureReservationCommitmentInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationCommitmentInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationCommitmentInfo;

                    /**
                     * Verifies a FutureReservationCommitmentInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationCommitmentInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationCommitmentInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationCommitmentInfo;

                    /**
                     * Creates a plain object from a FutureReservationCommitmentInfo message. Also converts values to other types if specified.
                     * @param message FutureReservationCommitmentInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationCommitmentInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationCommitmentInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationCommitmentInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureReservationCommitmentInfo {

                    /** CommitmentPlan enum. */
                    enum CommitmentPlan {
                        UNDEFINED_COMMITMENT_PLAN = 0,
                        INVALID = 530283991,
                        THIRTY_SIX_MONTH = 266295942,
                        TWELVE_MONTH = 173083962
                    }

                    /** PreviousCommitmentTerms enum. */
                    enum PreviousCommitmentTerms {
                        UNDEFINED_PREVIOUS_COMMITMENT_TERMS = 0,
                        EXTEND = 448639770,
                        PREVIOUSCOMMITMENTTERM_UNSPECIFIED = 98482448
                    }
                }

                /** Properties of a FutureReservationSpecificSKUProperties. */
                interface IFutureReservationSpecificSKUProperties {

                    /** FutureReservationSpecificSKUProperties instanceProperties */
                    instanceProperties?: (google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationReservedInstanceProperties|null);

                    /** FutureReservationSpecificSKUProperties sourceInstanceTemplate */
                    sourceInstanceTemplate?: (string|null);

                    /** FutureReservationSpecificSKUProperties totalCount */
                    totalCount?: (number|Long|string|null);
                }

                /** Represents a FutureReservationSpecificSKUProperties. */
                class FutureReservationSpecificSKUProperties implements IFutureReservationSpecificSKUProperties {

                    /**
                     * Constructs a new FutureReservationSpecificSKUProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationSpecificSKUProperties);

                    /** FutureReservationSpecificSKUProperties instanceProperties. */
                    public instanceProperties?: (google.cloud.compute.v1beta.IAllocationSpecificSKUAllocationReservedInstanceProperties|null);

                    /** FutureReservationSpecificSKUProperties sourceInstanceTemplate. */
                    public sourceInstanceTemplate?: (string|null);

                    /** FutureReservationSpecificSKUProperties totalCount. */
                    public totalCount?: (number|Long|string|null);

                    /**
                     * Creates a new FutureReservationSpecificSKUProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationSpecificSKUProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationSpecificSKUProperties): google.cloud.compute.v1beta.FutureReservationSpecificSKUProperties;

                    /**
                     * Encodes the specified FutureReservationSpecificSKUProperties message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationSpecificSKUProperties.verify|verify} messages.
                     * @param message FutureReservationSpecificSKUProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationSpecificSKUProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationSpecificSKUProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationSpecificSKUProperties.verify|verify} messages.
                     * @param message FutureReservationSpecificSKUProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationSpecificSKUProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationSpecificSKUProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationSpecificSKUProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationSpecificSKUProperties;

                    /**
                     * Decodes a FutureReservationSpecificSKUProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationSpecificSKUProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationSpecificSKUProperties;

                    /**
                     * Verifies a FutureReservationSpecificSKUProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationSpecificSKUProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationSpecificSKUProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationSpecificSKUProperties;

                    /**
                     * Creates a plain object from a FutureReservationSpecificSKUProperties message. Also converts values to other types if specified.
                     * @param message FutureReservationSpecificSKUProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationSpecificSKUProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationSpecificSKUProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationSpecificSKUProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationStatus. */
                interface IFutureReservationStatus {

                    /** FutureReservationStatus amendmentStatus */
                    amendmentStatus?: (string|null);

                    /** FutureReservationStatus autoCreatedReservations */
                    autoCreatedReservations?: (string[]|null);

                    /** FutureReservationStatus existingMatchingUsageInfo */
                    existingMatchingUsageInfo?: (google.cloud.compute.v1beta.IFutureReservationStatusExistingMatchingUsageInfo|null);

                    /** FutureReservationStatus fulfilledCount */
                    fulfilledCount?: (number|Long|string|null);

                    /** FutureReservationStatus lastKnownGoodState */
                    lastKnownGoodState?: (google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodState|null);

                    /** FutureReservationStatus lockTime */
                    lockTime?: (string|null);

                    /** FutureReservationStatus procurementStatus */
                    procurementStatus?: (string|null);

                    /** FutureReservationStatus specificSkuProperties */
                    specificSkuProperties?: (google.cloud.compute.v1beta.IFutureReservationStatusSpecificSKUProperties|null);
                }

                /** Represents a FutureReservationStatus. */
                class FutureReservationStatus implements IFutureReservationStatus {

                    /**
                     * Constructs a new FutureReservationStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationStatus);

                    /** FutureReservationStatus amendmentStatus. */
                    public amendmentStatus?: (string|null);

                    /** FutureReservationStatus autoCreatedReservations. */
                    public autoCreatedReservations: string[];

                    /** FutureReservationStatus existingMatchingUsageInfo. */
                    public existingMatchingUsageInfo?: (google.cloud.compute.v1beta.IFutureReservationStatusExistingMatchingUsageInfo|null);

                    /** FutureReservationStatus fulfilledCount. */
                    public fulfilledCount?: (number|Long|string|null);

                    /** FutureReservationStatus lastKnownGoodState. */
                    public lastKnownGoodState?: (google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodState|null);

                    /** FutureReservationStatus lockTime. */
                    public lockTime?: (string|null);

                    /** FutureReservationStatus procurementStatus. */
                    public procurementStatus?: (string|null);

                    /** FutureReservationStatus specificSkuProperties. */
                    public specificSkuProperties?: (google.cloud.compute.v1beta.IFutureReservationStatusSpecificSKUProperties|null);

                    /**
                     * Creates a new FutureReservationStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationStatus): google.cloud.compute.v1beta.FutureReservationStatus;

                    /**
                     * Encodes the specified FutureReservationStatus message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatus.verify|verify} messages.
                     * @param message FutureReservationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatus.verify|verify} messages.
                     * @param message FutureReservationStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationStatus;

                    /**
                     * Decodes a FutureReservationStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationStatus;

                    /**
                     * Verifies a FutureReservationStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationStatus;

                    /**
                     * Creates a plain object from a FutureReservationStatus message. Also converts values to other types if specified.
                     * @param message FutureReservationStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureReservationStatus {

                    /** AmendmentStatus enum. */
                    enum AmendmentStatus {
                        UNDEFINED_AMENDMENT_STATUS = 0,
                        AMENDMENT_APPROVED = 150573001,
                        AMENDMENT_DECLINED = 70395200,
                        AMENDMENT_IN_REVIEW = 25830624,
                        AMENDMENT_STATUS_UNSPECIFIED = 412250332
                    }

                    /** ProcurementStatus enum. */
                    enum ProcurementStatus {
                        UNDEFINED_PROCUREMENT_STATUS = 0,
                        APPROVED = 357258935,
                        CANCELLED = 41957681,
                        COMMITTED = 221710172,
                        DECLINED = 277081134,
                        DRAFTING = 477863585,
                        FAILED = 455706685,
                        FAILED_PARTIALLY_FULFILLED = 14455212,
                        FULFILLED = 409958655,
                        PENDING_AMENDMENT_APPROVAL = 510150429,
                        PENDING_APPROVAL = 209692683,
                        PROCUREMENT_STATUS_UNSPECIFIED = 45807705,
                        PROCURING = 95959663,
                        PROVISIONING = 290896621
                    }
                }

                /** Properties of a FutureReservationStatusExistingMatchingUsageInfo. */
                interface IFutureReservationStatusExistingMatchingUsageInfo {

                    /** FutureReservationStatusExistingMatchingUsageInfo count */
                    count?: (number|Long|string|null);

                    /** FutureReservationStatusExistingMatchingUsageInfo timestamp */
                    timestamp?: (string|null);
                }

                /** Represents a FutureReservationStatusExistingMatchingUsageInfo. */
                class FutureReservationStatusExistingMatchingUsageInfo implements IFutureReservationStatusExistingMatchingUsageInfo {

                    /**
                     * Constructs a new FutureReservationStatusExistingMatchingUsageInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationStatusExistingMatchingUsageInfo);

                    /** FutureReservationStatusExistingMatchingUsageInfo count. */
                    public count?: (number|Long|string|null);

                    /** FutureReservationStatusExistingMatchingUsageInfo timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new FutureReservationStatusExistingMatchingUsageInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatusExistingMatchingUsageInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationStatusExistingMatchingUsageInfo): google.cloud.compute.v1beta.FutureReservationStatusExistingMatchingUsageInfo;

                    /**
                     * Encodes the specified FutureReservationStatusExistingMatchingUsageInfo message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatusExistingMatchingUsageInfo.verify|verify} messages.
                     * @param message FutureReservationStatusExistingMatchingUsageInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationStatusExistingMatchingUsageInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatusExistingMatchingUsageInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatusExistingMatchingUsageInfo.verify|verify} messages.
                     * @param message FutureReservationStatusExistingMatchingUsageInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationStatusExistingMatchingUsageInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatusExistingMatchingUsageInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatusExistingMatchingUsageInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationStatusExistingMatchingUsageInfo;

                    /**
                     * Decodes a FutureReservationStatusExistingMatchingUsageInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatusExistingMatchingUsageInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationStatusExistingMatchingUsageInfo;

                    /**
                     * Verifies a FutureReservationStatusExistingMatchingUsageInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatusExistingMatchingUsageInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatusExistingMatchingUsageInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationStatusExistingMatchingUsageInfo;

                    /**
                     * Creates a plain object from a FutureReservationStatusExistingMatchingUsageInfo message. Also converts values to other types if specified.
                     * @param message FutureReservationStatusExistingMatchingUsageInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationStatusExistingMatchingUsageInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatusExistingMatchingUsageInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatusExistingMatchingUsageInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationStatusLastKnownGoodState. */
                interface IFutureReservationStatusLastKnownGoodState {

                    /** FutureReservationStatusLastKnownGoodState description */
                    description?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState existingMatchingUsageInfo */
                    existingMatchingUsageInfo?: (google.cloud.compute.v1beta.IFutureReservationStatusExistingMatchingUsageInfo|null);

                    /** FutureReservationStatusLastKnownGoodState futureReservationSpecs */
                    futureReservationSpecs?: (google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs|null);

                    /** FutureReservationStatusLastKnownGoodState lockTime */
                    lockTime?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState namePrefix */
                    namePrefix?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState procurementStatus */
                    procurementStatus?: (string|null);
                }

                /** Represents a FutureReservationStatusLastKnownGoodState. */
                class FutureReservationStatusLastKnownGoodState implements IFutureReservationStatusLastKnownGoodState {

                    /**
                     * Constructs a new FutureReservationStatusLastKnownGoodState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodState);

                    /** FutureReservationStatusLastKnownGoodState description. */
                    public description?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState existingMatchingUsageInfo. */
                    public existingMatchingUsageInfo?: (google.cloud.compute.v1beta.IFutureReservationStatusExistingMatchingUsageInfo|null);

                    /** FutureReservationStatusLastKnownGoodState futureReservationSpecs. */
                    public futureReservationSpecs?: (google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs|null);

                    /** FutureReservationStatusLastKnownGoodState lockTime. */
                    public lockTime?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState namePrefix. */
                    public namePrefix?: (string|null);

                    /** FutureReservationStatusLastKnownGoodState procurementStatus. */
                    public procurementStatus?: (string|null);

                    /**
                     * Creates a new FutureReservationStatusLastKnownGoodState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatusLastKnownGoodState instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodState): google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodState;

                    /**
                     * Encodes the specified FutureReservationStatusLastKnownGoodState message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodState.verify|verify} messages.
                     * @param message FutureReservationStatusLastKnownGoodState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatusLastKnownGoodState message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodState.verify|verify} messages.
                     * @param message FutureReservationStatusLastKnownGoodState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatusLastKnownGoodState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatusLastKnownGoodState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodState;

                    /**
                     * Decodes a FutureReservationStatusLastKnownGoodState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatusLastKnownGoodState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodState;

                    /**
                     * Verifies a FutureReservationStatusLastKnownGoodState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatusLastKnownGoodState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatusLastKnownGoodState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodState;

                    /**
                     * Creates a plain object from a FutureReservationStatusLastKnownGoodState message. Also converts values to other types if specified.
                     * @param message FutureReservationStatusLastKnownGoodState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatusLastKnownGoodState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatusLastKnownGoodState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureReservationStatusLastKnownGoodState {

                    /** ProcurementStatus enum. */
                    enum ProcurementStatus {
                        UNDEFINED_PROCUREMENT_STATUS = 0,
                        APPROVED = 357258935,
                        CANCELLED = 41957681,
                        COMMITTED = 221710172,
                        DECLINED = 277081134,
                        DRAFTING = 477863585,
                        FAILED = 455706685,
                        FAILED_PARTIALLY_FULFILLED = 14455212,
                        FULFILLED = 409958655,
                        PENDING_AMENDMENT_APPROVAL = 510150429,
                        PENDING_APPROVAL = 209692683,
                        PROCUREMENT_STATUS_UNSPECIFIED = 45807705,
                        PROCURING = 95959663,
                        PROVISIONING = 290896621
                    }
                }

                /** Properties of a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs. */
                interface IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs {

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs shareSettings */
                    shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs specificSkuProperties */
                    specificSkuProperties?: (google.cloud.compute.v1beta.IFutureReservationSpecificSKUProperties|null);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs timeWindow */
                    timeWindow?: (google.cloud.compute.v1beta.IFutureReservationTimeWindow|null);
                }

                /** Represents a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs. */
                class FutureReservationStatusLastKnownGoodStateFutureReservationSpecs implements IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs {

                    /**
                     * Constructs a new FutureReservationStatusLastKnownGoodStateFutureReservationSpecs.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs specificSkuProperties. */
                    public specificSkuProperties?: (google.cloud.compute.v1beta.IFutureReservationSpecificSKUProperties|null);

                    /** FutureReservationStatusLastKnownGoodStateFutureReservationSpecs timeWindow. */
                    public timeWindow?: (google.cloud.compute.v1beta.IFutureReservationTimeWindow|null);

                    /**
                     * Creates a new FutureReservationStatusLastKnownGoodStateFutureReservationSpecs instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatusLastKnownGoodStateFutureReservationSpecs instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs): google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs;

                    /**
                     * Encodes the specified FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs.verify|verify} messages.
                     * @param message FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs.verify|verify} messages.
                     * @param message FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationStatusLastKnownGoodStateFutureReservationSpecs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs;

                    /**
                     * Decodes a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs;

                    /**
                     * Verifies a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs;

                    /**
                     * Creates a plain object from a FutureReservationStatusLastKnownGoodStateFutureReservationSpecs message. Also converts values to other types if specified.
                     * @param message FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatusLastKnownGoodStateFutureReservationSpecs to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatusLastKnownGoodStateFutureReservationSpecs
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationStatusSpecificSKUProperties. */
                interface IFutureReservationStatusSpecificSKUProperties {

                    /** FutureReservationStatusSpecificSKUProperties sourceInstanceTemplateId */
                    sourceInstanceTemplateId?: (string|null);
                }

                /** Represents a FutureReservationStatusSpecificSKUProperties. */
                class FutureReservationStatusSpecificSKUProperties implements IFutureReservationStatusSpecificSKUProperties {

                    /**
                     * Constructs a new FutureReservationStatusSpecificSKUProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationStatusSpecificSKUProperties);

                    /** FutureReservationStatusSpecificSKUProperties sourceInstanceTemplateId. */
                    public sourceInstanceTemplateId?: (string|null);

                    /**
                     * Creates a new FutureReservationStatusSpecificSKUProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationStatusSpecificSKUProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationStatusSpecificSKUProperties): google.cloud.compute.v1beta.FutureReservationStatusSpecificSKUProperties;

                    /**
                     * Encodes the specified FutureReservationStatusSpecificSKUProperties message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatusSpecificSKUProperties.verify|verify} messages.
                     * @param message FutureReservationStatusSpecificSKUProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationStatusSpecificSKUProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationStatusSpecificSKUProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationStatusSpecificSKUProperties.verify|verify} messages.
                     * @param message FutureReservationStatusSpecificSKUProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationStatusSpecificSKUProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationStatusSpecificSKUProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationStatusSpecificSKUProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationStatusSpecificSKUProperties;

                    /**
                     * Decodes a FutureReservationStatusSpecificSKUProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationStatusSpecificSKUProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationStatusSpecificSKUProperties;

                    /**
                     * Verifies a FutureReservationStatusSpecificSKUProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationStatusSpecificSKUProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationStatusSpecificSKUProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationStatusSpecificSKUProperties;

                    /**
                     * Creates a plain object from a FutureReservationStatusSpecificSKUProperties message. Also converts values to other types if specified.
                     * @param message FutureReservationStatusSpecificSKUProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationStatusSpecificSKUProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationStatusSpecificSKUProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationStatusSpecificSKUProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationTimeWindow. */
                interface IFutureReservationTimeWindow {

                    /** FutureReservationTimeWindow duration */
                    duration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** FutureReservationTimeWindow endTime */
                    endTime?: (string|null);

                    /** FutureReservationTimeWindow startTime */
                    startTime?: (string|null);
                }

                /** Represents a FutureReservationTimeWindow. */
                class FutureReservationTimeWindow implements IFutureReservationTimeWindow {

                    /**
                     * Constructs a new FutureReservationTimeWindow.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationTimeWindow);

                    /** FutureReservationTimeWindow duration. */
                    public duration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** FutureReservationTimeWindow endTime. */
                    public endTime?: (string|null);

                    /** FutureReservationTimeWindow startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new FutureReservationTimeWindow instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationTimeWindow instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationTimeWindow): google.cloud.compute.v1beta.FutureReservationTimeWindow;

                    /**
                     * Encodes the specified FutureReservationTimeWindow message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationTimeWindow.verify|verify} messages.
                     * @param message FutureReservationTimeWindow message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationTimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationTimeWindow message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationTimeWindow.verify|verify} messages.
                     * @param message FutureReservationTimeWindow message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationTimeWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationTimeWindow message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationTimeWindow
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationTimeWindow;

                    /**
                     * Decodes a FutureReservationTimeWindow message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationTimeWindow
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationTimeWindow;

                    /**
                     * Verifies a FutureReservationTimeWindow message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationTimeWindow message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationTimeWindow
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationTimeWindow;

                    /**
                     * Creates a plain object from a FutureReservationTimeWindow message. Also converts values to other types if specified.
                     * @param message FutureReservationTimeWindow
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationTimeWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationTimeWindow to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationTimeWindow
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationsAggregatedListResponse. */
                interface IFutureReservationsAggregatedListResponse {

                    /** FutureReservationsAggregatedListResponse etag */
                    etag?: (string|null);

                    /** FutureReservationsAggregatedListResponse id */
                    id?: (string|null);

                    /** FutureReservationsAggregatedListResponse items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IFutureReservationsScopedList }|null);

                    /** FutureReservationsAggregatedListResponse kind */
                    kind?: (string|null);

                    /** FutureReservationsAggregatedListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** FutureReservationsAggregatedListResponse selfLink */
                    selfLink?: (string|null);

                    /** FutureReservationsAggregatedListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** FutureReservationsAggregatedListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a FutureReservationsAggregatedListResponse. */
                class FutureReservationsAggregatedListResponse implements IFutureReservationsAggregatedListResponse {

                    /**
                     * Constructs a new FutureReservationsAggregatedListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationsAggregatedListResponse);

                    /** FutureReservationsAggregatedListResponse etag. */
                    public etag?: (string|null);

                    /** FutureReservationsAggregatedListResponse id. */
                    public id?: (string|null);

                    /** FutureReservationsAggregatedListResponse items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IFutureReservationsScopedList };

                    /** FutureReservationsAggregatedListResponse kind. */
                    public kind?: (string|null);

                    /** FutureReservationsAggregatedListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** FutureReservationsAggregatedListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** FutureReservationsAggregatedListResponse unreachables. */
                    public unreachables: string[];

                    /** FutureReservationsAggregatedListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new FutureReservationsAggregatedListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationsAggregatedListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationsAggregatedListResponse): google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse;

                    /**
                     * Encodes the specified FutureReservationsAggregatedListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse.verify|verify} messages.
                     * @param message FutureReservationsAggregatedListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationsAggregatedListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationsAggregatedListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse.verify|verify} messages.
                     * @param message FutureReservationsAggregatedListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationsAggregatedListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationsAggregatedListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationsAggregatedListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse;

                    /**
                     * Decodes a FutureReservationsAggregatedListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationsAggregatedListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse;

                    /**
                     * Verifies a FutureReservationsAggregatedListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationsAggregatedListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationsAggregatedListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse;

                    /**
                     * Creates a plain object from a FutureReservationsAggregatedListResponse message. Also converts values to other types if specified.
                     * @param message FutureReservationsAggregatedListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationsAggregatedListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationsAggregatedListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationsListResponse. */
                interface IFutureReservationsListResponse {

                    /** FutureReservationsListResponse etag */
                    etag?: (string|null);

                    /** FutureReservationsListResponse id */
                    id?: (string|null);

                    /** FutureReservationsListResponse items */
                    items?: (google.cloud.compute.v1beta.IFutureReservation[]|null);

                    /** FutureReservationsListResponse kind */
                    kind?: (string|null);

                    /** FutureReservationsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** FutureReservationsListResponse selfLink */
                    selfLink?: (string|null);

                    /** FutureReservationsListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** FutureReservationsListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a FutureReservationsListResponse. */
                class FutureReservationsListResponse implements IFutureReservationsListResponse {

                    /**
                     * Constructs a new FutureReservationsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationsListResponse);

                    /** FutureReservationsListResponse etag. */
                    public etag?: (string|null);

                    /** FutureReservationsListResponse id. */
                    public id?: (string|null);

                    /** FutureReservationsListResponse items. */
                    public items: google.cloud.compute.v1beta.IFutureReservation[];

                    /** FutureReservationsListResponse kind. */
                    public kind?: (string|null);

                    /** FutureReservationsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** FutureReservationsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** FutureReservationsListResponse unreachables. */
                    public unreachables: string[];

                    /** FutureReservationsListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new FutureReservationsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationsListResponse): google.cloud.compute.v1beta.FutureReservationsListResponse;

                    /**
                     * Encodes the specified FutureReservationsListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationsListResponse.verify|verify} messages.
                     * @param message FutureReservationsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationsListResponse.verify|verify} messages.
                     * @param message FutureReservationsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationsListResponse;

                    /**
                     * Decodes a FutureReservationsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationsListResponse;

                    /**
                     * Verifies a FutureReservationsListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationsListResponse;

                    /**
                     * Creates a plain object from a FutureReservationsListResponse message. Also converts values to other types if specified.
                     * @param message FutureReservationsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureReservationsScopedList. */
                interface IFutureReservationsScopedList {

                    /** FutureReservationsScopedList futureReservations */
                    futureReservations?: (google.cloud.compute.v1beta.IFutureReservation[]|null);

                    /** FutureReservationsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a FutureReservationsScopedList. */
                class FutureReservationsScopedList implements IFutureReservationsScopedList {

                    /**
                     * Constructs a new FutureReservationsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureReservationsScopedList);

                    /** FutureReservationsScopedList futureReservations. */
                    public futureReservations: google.cloud.compute.v1beta.IFutureReservation[];

                    /** FutureReservationsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new FutureReservationsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureReservationsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureReservationsScopedList): google.cloud.compute.v1beta.FutureReservationsScopedList;

                    /**
                     * Encodes the specified FutureReservationsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationsScopedList.verify|verify} messages.
                     * @param message FutureReservationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureReservationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureReservationsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureReservationsScopedList.verify|verify} messages.
                     * @param message FutureReservationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureReservationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureReservationsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureReservationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureReservationsScopedList;

                    /**
                     * Decodes a FutureReservationsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureReservationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureReservationsScopedList;

                    /**
                     * Verifies a FutureReservationsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureReservationsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureReservationsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureReservationsScopedList;

                    /**
                     * Creates a plain object from a FutureReservationsScopedList message. Also converts values to other types if specified.
                     * @param message FutureReservationsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureReservationsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureReservationsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureReservationsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureResourcesRecommendation. */
                interface IFutureResourcesRecommendation {

                    /** FutureResourcesRecommendation endTime */
                    endTime?: (string|null);

                    /** FutureResourcesRecommendation location */
                    location?: (string|null);

                    /** FutureResourcesRecommendation otherLocations */
                    otherLocations?: ({ [k: string]: google.cloud.compute.v1beta.IFutureResourcesRecommendationOtherLocation }|null);

                    /** FutureResourcesRecommendation recommendationId */
                    recommendationId?: (string|null);

                    /** FutureResourcesRecommendation recommendationType */
                    recommendationType?: (string|null);

                    /** FutureResourcesRecommendation startTime */
                    startTime?: (string|null);
                }

                /** Represents a FutureResourcesRecommendation. */
                class FutureResourcesRecommendation implements IFutureResourcesRecommendation {

                    /**
                     * Constructs a new FutureResourcesRecommendation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesRecommendation);

                    /** FutureResourcesRecommendation endTime. */
                    public endTime?: (string|null);

                    /** FutureResourcesRecommendation location. */
                    public location?: (string|null);

                    /** FutureResourcesRecommendation otherLocations. */
                    public otherLocations: { [k: string]: google.cloud.compute.v1beta.IFutureResourcesRecommendationOtherLocation };

                    /** FutureResourcesRecommendation recommendationId. */
                    public recommendationId?: (string|null);

                    /** FutureResourcesRecommendation recommendationType. */
                    public recommendationType?: (string|null);

                    /** FutureResourcesRecommendation startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new FutureResourcesRecommendation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesRecommendation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesRecommendation): google.cloud.compute.v1beta.FutureResourcesRecommendation;

                    /**
                     * Encodes the specified FutureResourcesRecommendation message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesRecommendation.verify|verify} messages.
                     * @param message FutureResourcesRecommendation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesRecommendation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesRecommendation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesRecommendation.verify|verify} messages.
                     * @param message FutureResourcesRecommendation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesRecommendation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesRecommendation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesRecommendation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesRecommendation;

                    /**
                     * Decodes a FutureResourcesRecommendation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesRecommendation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesRecommendation;

                    /**
                     * Verifies a FutureResourcesRecommendation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesRecommendation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesRecommendation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesRecommendation;

                    /**
                     * Creates a plain object from a FutureResourcesRecommendation message. Also converts values to other types if specified.
                     * @param message FutureResourcesRecommendation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesRecommendation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesRecommendation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesRecommendation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesRecommendation {

                    /** RecommendationType enum. */
                    enum RecommendationType {
                        UNDEFINED_RECOMMENDATION_TYPE = 0,
                        FUTURE_RESERVATION = 41036592,
                        RECOMMENDATION_TYPE_UNSPECIFIED = 140641624
                    }
                }

                /** Properties of a FutureResourcesRecommendationOtherLocation. */
                interface IFutureResourcesRecommendationOtherLocation {

                    /** FutureResourcesRecommendationOtherLocation details */
                    details?: (string|null);

                    /** FutureResourcesRecommendationOtherLocation status */
                    status?: (string|null);
                }

                /** Represents a FutureResourcesRecommendationOtherLocation. */
                class FutureResourcesRecommendationOtherLocation implements IFutureResourcesRecommendationOtherLocation {

                    /**
                     * Constructs a new FutureResourcesRecommendationOtherLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesRecommendationOtherLocation);

                    /** FutureResourcesRecommendationOtherLocation details. */
                    public details?: (string|null);

                    /** FutureResourcesRecommendationOtherLocation status. */
                    public status?: (string|null);

                    /**
                     * Creates a new FutureResourcesRecommendationOtherLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesRecommendationOtherLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesRecommendationOtherLocation): google.cloud.compute.v1beta.FutureResourcesRecommendationOtherLocation;

                    /**
                     * Encodes the specified FutureResourcesRecommendationOtherLocation message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesRecommendationOtherLocation.verify|verify} messages.
                     * @param message FutureResourcesRecommendationOtherLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesRecommendationOtherLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesRecommendationOtherLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesRecommendationOtherLocation.verify|verify} messages.
                     * @param message FutureResourcesRecommendationOtherLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesRecommendationOtherLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesRecommendationOtherLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesRecommendationOtherLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesRecommendationOtherLocation;

                    /**
                     * Decodes a FutureResourcesRecommendationOtherLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesRecommendationOtherLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesRecommendationOtherLocation;

                    /**
                     * Verifies a FutureResourcesRecommendationOtherLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesRecommendationOtherLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesRecommendationOtherLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesRecommendationOtherLocation;

                    /**
                     * Creates a plain object from a FutureResourcesRecommendationOtherLocation message. Also converts values to other types if specified.
                     * @param message FutureResourcesRecommendationOtherLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesRecommendationOtherLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesRecommendationOtherLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesRecommendationOtherLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesRecommendationOtherLocation {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CONDITIONS_NOT_MET = 363628457,
                        NOT_SUPPORTED = 317950466,
                        NO_CAPACITY = 274240888,
                        OTHER_LOCATION_STATUS_UNDEFINED = 222662622,
                        RECOMMENDED = 369652283
                    }
                }

                /** Properties of a FutureResourcesSpec. */
                interface IFutureResourcesSpec {

                    /** FutureResourcesSpec deploymentType */
                    deploymentType?: (string|null);

                    /** FutureResourcesSpec locationPolicy */
                    locationPolicy?: (google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicy|null);

                    /** FutureResourcesSpec targetResources */
                    targetResources?: (google.cloud.compute.v1beta.IFutureResourcesSpecTargetResources|null);

                    /** FutureResourcesSpec timeRangeSpec */
                    timeRangeSpec?: (google.cloud.compute.v1beta.IFlexibleTimeRange|null);
                }

                /** Represents a FutureResourcesSpec. */
                class FutureResourcesSpec implements IFutureResourcesSpec {

                    /**
                     * Constructs a new FutureResourcesSpec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesSpec);

                    /** FutureResourcesSpec deploymentType. */
                    public deploymentType?: (string|null);

                    /** FutureResourcesSpec locationPolicy. */
                    public locationPolicy?: (google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicy|null);

                    /** FutureResourcesSpec targetResources. */
                    public targetResources?: (google.cloud.compute.v1beta.IFutureResourcesSpecTargetResources|null);

                    /** FutureResourcesSpec timeRangeSpec. */
                    public timeRangeSpec?: (google.cloud.compute.v1beta.IFlexibleTimeRange|null);

                    /**
                     * Creates a new FutureResourcesSpec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpec instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesSpec): google.cloud.compute.v1beta.FutureResourcesSpec;

                    /**
                     * Encodes the specified FutureResourcesSpec message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpec.verify|verify} messages.
                     * @param message FutureResourcesSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpec message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpec.verify|verify} messages.
                     * @param message FutureResourcesSpec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesSpec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpec
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesSpec;

                    /**
                     * Decodes a FutureResourcesSpec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpec
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesSpec;

                    /**
                     * Verifies a FutureResourcesSpec message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesSpec;

                    /**
                     * Creates a plain object from a FutureResourcesSpec message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpec
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesSpec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpec to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpec
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesSpec {

                    /** DeploymentType enum. */
                    enum DeploymentType {
                        UNDEFINED_DEPLOYMENT_TYPE = 0,
                        DENSE = 64932607,
                        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180,
                        FLEXIBLE = 379880395
                    }
                }

                /** Properties of a FutureResourcesSpecAggregateResources. */
                interface IFutureResourcesSpecAggregateResources {

                    /** FutureResourcesSpecAggregateResources acceleratorCount */
                    acceleratorCount?: (number|Long|string|null);

                    /** FutureResourcesSpecAggregateResources vmFamily */
                    vmFamily?: (string|null);

                    /** FutureResourcesSpecAggregateResources workloadType */
                    workloadType?: (string|null);
                }

                /** Represents a FutureResourcesSpecAggregateResources. */
                class FutureResourcesSpecAggregateResources implements IFutureResourcesSpecAggregateResources {

                    /**
                     * Constructs a new FutureResourcesSpecAggregateResources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecAggregateResources);

                    /** FutureResourcesSpecAggregateResources acceleratorCount. */
                    public acceleratorCount?: (number|Long|string|null);

                    /** FutureResourcesSpecAggregateResources vmFamily. */
                    public vmFamily?: (string|null);

                    /** FutureResourcesSpecAggregateResources workloadType. */
                    public workloadType?: (string|null);

                    /**
                     * Creates a new FutureResourcesSpecAggregateResources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecAggregateResources instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecAggregateResources): google.cloud.compute.v1beta.FutureResourcesSpecAggregateResources;

                    /**
                     * Encodes the specified FutureResourcesSpecAggregateResources message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecAggregateResources.verify|verify} messages.
                     * @param message FutureResourcesSpecAggregateResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesSpecAggregateResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecAggregateResources message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecAggregateResources.verify|verify} messages.
                     * @param message FutureResourcesSpecAggregateResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesSpecAggregateResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecAggregateResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecAggregateResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesSpecAggregateResources;

                    /**
                     * Decodes a FutureResourcesSpecAggregateResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecAggregateResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesSpecAggregateResources;

                    /**
                     * Verifies a FutureResourcesSpecAggregateResources message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecAggregateResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecAggregateResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesSpecAggregateResources;

                    /**
                     * Creates a plain object from a FutureResourcesSpecAggregateResources message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecAggregateResources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesSpecAggregateResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecAggregateResources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecAggregateResources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesSpecAggregateResources {

                    /** VmFamily enum. */
                    enum VmFamily {
                        UNDEFINED_VM_FAMILY = 0,
                        VM_FAMILY_CLOUD_TPU_DEVICE_CT3 = 42845948,
                        VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L = 108020067,
                        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP = 18705267,
                        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E = 398926997,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P = 517384376,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P = 517384407,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P = 517384438,
                        VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X = 485271888
                    }

                    /** WorkloadType enum. */
                    enum WorkloadType {
                        UNDEFINED_WORKLOAD_TYPE = 0,
                        BATCH = 62971674,
                        SERVING = 17781740,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a FutureResourcesSpecLocalSsdPartition. */
                interface IFutureResourcesSpecLocalSsdPartition {

                    /** FutureResourcesSpecLocalSsdPartition diskInterface */
                    diskInterface?: (string|null);

                    /** FutureResourcesSpecLocalSsdPartition diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);
                }

                /** Represents a FutureResourcesSpecLocalSsdPartition. */
                class FutureResourcesSpecLocalSsdPartition implements IFutureResourcesSpecLocalSsdPartition {

                    /**
                     * Constructs a new FutureResourcesSpecLocalSsdPartition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecLocalSsdPartition);

                    /** FutureResourcesSpecLocalSsdPartition diskInterface. */
                    public diskInterface?: (string|null);

                    /** FutureResourcesSpecLocalSsdPartition diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /**
                     * Creates a new FutureResourcesSpecLocalSsdPartition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecLocalSsdPartition instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecLocalSsdPartition): google.cloud.compute.v1beta.FutureResourcesSpecLocalSsdPartition;

                    /**
                     * Encodes the specified FutureResourcesSpecLocalSsdPartition message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecLocalSsdPartition.verify|verify} messages.
                     * @param message FutureResourcesSpecLocalSsdPartition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesSpecLocalSsdPartition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecLocalSsdPartition message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecLocalSsdPartition.verify|verify} messages.
                     * @param message FutureResourcesSpecLocalSsdPartition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesSpecLocalSsdPartition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecLocalSsdPartition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecLocalSsdPartition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesSpecLocalSsdPartition;

                    /**
                     * Decodes a FutureResourcesSpecLocalSsdPartition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecLocalSsdPartition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesSpecLocalSsdPartition;

                    /**
                     * Verifies a FutureResourcesSpecLocalSsdPartition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecLocalSsdPartition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecLocalSsdPartition
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesSpecLocalSsdPartition;

                    /**
                     * Creates a plain object from a FutureResourcesSpecLocalSsdPartition message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecLocalSsdPartition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesSpecLocalSsdPartition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecLocalSsdPartition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecLocalSsdPartition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesSpecLocalSsdPartition {

                    /** DiskInterface enum. */
                    enum DiskInterface {
                        UNDEFINED_DISK_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686
                    }
                }

                /** Properties of a FutureResourcesSpecLocationPolicy. */
                interface IFutureResourcesSpecLocationPolicy {

                    /** FutureResourcesSpecLocationPolicy locations */
                    locations?: ({ [k: string]: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicyLocation }|null);
                }

                /** Represents a FutureResourcesSpecLocationPolicy. */
                class FutureResourcesSpecLocationPolicy implements IFutureResourcesSpecLocationPolicy {

                    /**
                     * Constructs a new FutureResourcesSpecLocationPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicy);

                    /** FutureResourcesSpecLocationPolicy locations. */
                    public locations: { [k: string]: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicyLocation };

                    /**
                     * Creates a new FutureResourcesSpecLocationPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecLocationPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicy): google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicy;

                    /**
                     * Encodes the specified FutureResourcesSpecLocationPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicy.verify|verify} messages.
                     * @param message FutureResourcesSpecLocationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecLocationPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicy.verify|verify} messages.
                     * @param message FutureResourcesSpecLocationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecLocationPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecLocationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicy;

                    /**
                     * Decodes a FutureResourcesSpecLocationPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecLocationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicy;

                    /**
                     * Verifies a FutureResourcesSpecLocationPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecLocationPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecLocationPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicy;

                    /**
                     * Creates a plain object from a FutureResourcesSpecLocationPolicy message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecLocationPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecLocationPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecLocationPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureResourcesSpecLocationPolicyLocation. */
                interface IFutureResourcesSpecLocationPolicyLocation {

                    /** FutureResourcesSpecLocationPolicyLocation preference */
                    preference?: (string|null);
                }

                /** Represents a FutureResourcesSpecLocationPolicyLocation. */
                class FutureResourcesSpecLocationPolicyLocation implements IFutureResourcesSpecLocationPolicyLocation {

                    /**
                     * Constructs a new FutureResourcesSpecLocationPolicyLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicyLocation);

                    /** FutureResourcesSpecLocationPolicyLocation preference. */
                    public preference?: (string|null);

                    /**
                     * Creates a new FutureResourcesSpecLocationPolicyLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecLocationPolicyLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicyLocation): google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicyLocation;

                    /**
                     * Encodes the specified FutureResourcesSpecLocationPolicyLocation message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicyLocation.verify|verify} messages.
                     * @param message FutureResourcesSpecLocationPolicyLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicyLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecLocationPolicyLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicyLocation.verify|verify} messages.
                     * @param message FutureResourcesSpecLocationPolicyLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesSpecLocationPolicyLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecLocationPolicyLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecLocationPolicyLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicyLocation;

                    /**
                     * Decodes a FutureResourcesSpecLocationPolicyLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecLocationPolicyLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicyLocation;

                    /**
                     * Verifies a FutureResourcesSpecLocationPolicyLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecLocationPolicyLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecLocationPolicyLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicyLocation;

                    /**
                     * Creates a plain object from a FutureResourcesSpecLocationPolicyLocation message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecLocationPolicyLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesSpecLocationPolicyLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecLocationPolicyLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecLocationPolicyLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FutureResourcesSpecLocationPolicyLocation {

                    /** Preference enum. */
                    enum Preference {
                        UNDEFINED_PREFERENCE = 0,
                        ALLOW = 62368553,
                        DENY = 2094604,
                        PREFERENCE_UNSPECIFIED = 496219571
                    }
                }

                /** Properties of a FutureResourcesSpecSpecificSKUResources. */
                interface IFutureResourcesSpecSpecificSKUResources {

                    /** FutureResourcesSpecSpecificSKUResources instanceCount */
                    instanceCount?: (number|Long|string|null);

                    /** FutureResourcesSpecSpecificSKUResources localSsdPartitions */
                    localSsdPartitions?: (google.cloud.compute.v1beta.IFutureResourcesSpecLocalSsdPartition[]|null);

                    /** FutureResourcesSpecSpecificSKUResources machineType */
                    machineType?: (string|null);
                }

                /** Represents a FutureResourcesSpecSpecificSKUResources. */
                class FutureResourcesSpecSpecificSKUResources implements IFutureResourcesSpecSpecificSKUResources {

                    /**
                     * Constructs a new FutureResourcesSpecSpecificSKUResources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecSpecificSKUResources);

                    /** FutureResourcesSpecSpecificSKUResources instanceCount. */
                    public instanceCount?: (number|Long|string|null);

                    /** FutureResourcesSpecSpecificSKUResources localSsdPartitions. */
                    public localSsdPartitions: google.cloud.compute.v1beta.IFutureResourcesSpecLocalSsdPartition[];

                    /** FutureResourcesSpecSpecificSKUResources machineType. */
                    public machineType?: (string|null);

                    /**
                     * Creates a new FutureResourcesSpecSpecificSKUResources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecSpecificSKUResources instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecSpecificSKUResources): google.cloud.compute.v1beta.FutureResourcesSpecSpecificSKUResources;

                    /**
                     * Encodes the specified FutureResourcesSpecSpecificSKUResources message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecSpecificSKUResources.verify|verify} messages.
                     * @param message FutureResourcesSpecSpecificSKUResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesSpecSpecificSKUResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecSpecificSKUResources message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecSpecificSKUResources.verify|verify} messages.
                     * @param message FutureResourcesSpecSpecificSKUResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesSpecSpecificSKUResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecSpecificSKUResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecSpecificSKUResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesSpecSpecificSKUResources;

                    /**
                     * Decodes a FutureResourcesSpecSpecificSKUResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecSpecificSKUResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesSpecSpecificSKUResources;

                    /**
                     * Verifies a FutureResourcesSpecSpecificSKUResources message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecSpecificSKUResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecSpecificSKUResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesSpecSpecificSKUResources;

                    /**
                     * Creates a plain object from a FutureResourcesSpecSpecificSKUResources message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecSpecificSKUResources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesSpecSpecificSKUResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecSpecificSKUResources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecSpecificSKUResources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FutureResourcesSpecTargetResources. */
                interface IFutureResourcesSpecTargetResources {

                    /** FutureResourcesSpecTargetResources aggregateResources */
                    aggregateResources?: (google.cloud.compute.v1beta.IFutureResourcesSpecAggregateResources|null);

                    /** FutureResourcesSpecTargetResources specificSkuResources */
                    specificSkuResources?: (google.cloud.compute.v1beta.IFutureResourcesSpecSpecificSKUResources|null);
                }

                /** Represents a FutureResourcesSpecTargetResources. */
                class FutureResourcesSpecTargetResources implements IFutureResourcesSpecTargetResources {

                    /**
                     * Constructs a new FutureResourcesSpecTargetResources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecTargetResources);

                    /** FutureResourcesSpecTargetResources aggregateResources. */
                    public aggregateResources?: (google.cloud.compute.v1beta.IFutureResourcesSpecAggregateResources|null);

                    /** FutureResourcesSpecTargetResources specificSkuResources. */
                    public specificSkuResources?: (google.cloud.compute.v1beta.IFutureResourcesSpecSpecificSKUResources|null);

                    /**
                     * Creates a new FutureResourcesSpecTargetResources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FutureResourcesSpecTargetResources instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IFutureResourcesSpecTargetResources): google.cloud.compute.v1beta.FutureResourcesSpecTargetResources;

                    /**
                     * Encodes the specified FutureResourcesSpecTargetResources message. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecTargetResources.verify|verify} messages.
                     * @param message FutureResourcesSpecTargetResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IFutureResourcesSpecTargetResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FutureResourcesSpecTargetResources message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.FutureResourcesSpecTargetResources.verify|verify} messages.
                     * @param message FutureResourcesSpecTargetResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IFutureResourcesSpecTargetResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FutureResourcesSpecTargetResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FutureResourcesSpecTargetResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.FutureResourcesSpecTargetResources;

                    /**
                     * Decodes a FutureResourcesSpecTargetResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FutureResourcesSpecTargetResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.FutureResourcesSpecTargetResources;

                    /**
                     * Verifies a FutureResourcesSpecTargetResources message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FutureResourcesSpecTargetResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FutureResourcesSpecTargetResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.FutureResourcesSpecTargetResources;

                    /**
                     * Creates a plain object from a FutureResourcesSpecTargetResources message. Also converts values to other types if specified.
                     * @param message FutureResourcesSpecTargetResources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.FutureResourcesSpecTargetResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FutureResourcesSpecTargetResources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FutureResourcesSpecTargetResources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GRPCHealthCheck. */
                interface IGRPCHealthCheck {

                    /** GRPCHealthCheck grpcServiceName */
                    grpcServiceName?: (string|null);

                    /** GRPCHealthCheck port */
                    port?: (number|null);

                    /** GRPCHealthCheck portName */
                    portName?: (string|null);

                    /** GRPCHealthCheck portSpecification */
                    portSpecification?: (string|null);
                }

                /** Represents a GRPCHealthCheck. */
                class GRPCHealthCheck implements IGRPCHealthCheck {

                    /**
                     * Constructs a new GRPCHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGRPCHealthCheck);

                    /** GRPCHealthCheck grpcServiceName. */
                    public grpcServiceName?: (string|null);

                    /** GRPCHealthCheck port. */
                    public port?: (number|null);

                    /** GRPCHealthCheck portName. */
                    public portName?: (string|null);

                    /** GRPCHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /**
                     * Creates a new GRPCHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GRPCHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGRPCHealthCheck): google.cloud.compute.v1beta.GRPCHealthCheck;

                    /**
                     * Encodes the specified GRPCHealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.GRPCHealthCheck.verify|verify} messages.
                     * @param message GRPCHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGRPCHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GRPCHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GRPCHealthCheck.verify|verify} messages.
                     * @param message GRPCHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGRPCHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GRPCHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GRPCHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GRPCHealthCheck;

                    /**
                     * Decodes a GRPCHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GRPCHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GRPCHealthCheck;

                    /**
                     * Verifies a GRPCHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GRPCHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GRPCHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GRPCHealthCheck;

                    /**
                     * Creates a plain object from a GRPCHealthCheck message. Also converts values to other types if specified.
                     * @param message GRPCHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GRPCHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GRPCHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GRPCHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GRPCHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }
                }

                /** Properties of a GRPCTLSHealthCheck. */
                interface IGRPCTLSHealthCheck {

                    /** GRPCTLSHealthCheck grpcServiceName */
                    grpcServiceName?: (string|null);

                    /** GRPCTLSHealthCheck port */
                    port?: (number|null);

                    /** GRPCTLSHealthCheck portSpecification */
                    portSpecification?: (string|null);
                }

                /** Represents a GRPCTLSHealthCheck. */
                class GRPCTLSHealthCheck implements IGRPCTLSHealthCheck {

                    /**
                     * Constructs a new GRPCTLSHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGRPCTLSHealthCheck);

                    /** GRPCTLSHealthCheck grpcServiceName. */
                    public grpcServiceName?: (string|null);

                    /** GRPCTLSHealthCheck port. */
                    public port?: (number|null);

                    /** GRPCTLSHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /**
                     * Creates a new GRPCTLSHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GRPCTLSHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGRPCTLSHealthCheck): google.cloud.compute.v1beta.GRPCTLSHealthCheck;

                    /**
                     * Encodes the specified GRPCTLSHealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.GRPCTLSHealthCheck.verify|verify} messages.
                     * @param message GRPCTLSHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGRPCTLSHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GRPCTLSHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GRPCTLSHealthCheck.verify|verify} messages.
                     * @param message GRPCTLSHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGRPCTLSHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GRPCTLSHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GRPCTLSHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GRPCTLSHealthCheck;

                    /**
                     * Decodes a GRPCTLSHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GRPCTLSHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GRPCTLSHealthCheck;

                    /**
                     * Verifies a GRPCTLSHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GRPCTLSHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GRPCTLSHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GRPCTLSHealthCheck;

                    /**
                     * Creates a plain object from a GRPCTLSHealthCheck message. Also converts values to other types if specified.
                     * @param message GRPCTLSHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GRPCTLSHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GRPCTLSHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GRPCTLSHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GRPCTLSHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }
                }

                /** Properties of a GetAcceleratorTypeRequest. */
                interface IGetAcceleratorTypeRequest {

                    /** GetAcceleratorTypeRequest acceleratorType */
                    acceleratorType?: (string|null);

                    /** GetAcceleratorTypeRequest project */
                    project?: (string|null);

                    /** GetAcceleratorTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetAcceleratorTypeRequest. */
                class GetAcceleratorTypeRequest implements IGetAcceleratorTypeRequest {

                    /**
                     * Constructs a new GetAcceleratorTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAcceleratorTypeRequest);

                    /** GetAcceleratorTypeRequest acceleratorType. */
                    public acceleratorType: string;

                    /** GetAcceleratorTypeRequest project. */
                    public project: string;

                    /** GetAcceleratorTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetAcceleratorTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAcceleratorTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAcceleratorTypeRequest): google.cloud.compute.v1beta.GetAcceleratorTypeRequest;

                    /**
                     * Encodes the specified GetAcceleratorTypeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAcceleratorTypeRequest.verify|verify} messages.
                     * @param message GetAcceleratorTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAcceleratorTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAcceleratorTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAcceleratorTypeRequest.verify|verify} messages.
                     * @param message GetAcceleratorTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAcceleratorTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAcceleratorTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAcceleratorTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAcceleratorTypeRequest;

                    /**
                     * Decodes a GetAcceleratorTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAcceleratorTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAcceleratorTypeRequest;

                    /**
                     * Verifies a GetAcceleratorTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAcceleratorTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAcceleratorTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAcceleratorTypeRequest;

                    /**
                     * Creates a plain object from a GetAcceleratorTypeRequest message. Also converts values to other types if specified.
                     * @param message GetAcceleratorTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAcceleratorTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAcceleratorTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAcceleratorTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAddressRequest. */
                interface IGetAddressRequest {

                    /** GetAddressRequest address */
                    address?: (string|null);

                    /** GetAddressRequest project */
                    project?: (string|null);

                    /** GetAddressRequest region */
                    region?: (string|null);
                }

                /** Represents a GetAddressRequest. */
                class GetAddressRequest implements IGetAddressRequest {

                    /**
                     * Constructs a new GetAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAddressRequest);

                    /** GetAddressRequest address. */
                    public address: string;

                    /** GetAddressRequest project. */
                    public project: string;

                    /** GetAddressRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAddressRequest): google.cloud.compute.v1beta.GetAddressRequest;

                    /**
                     * Encodes the specified GetAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAddressRequest.verify|verify} messages.
                     * @param message GetAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAddressRequest.verify|verify} messages.
                     * @param message GetAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAddressRequest;

                    /**
                     * Decodes a GetAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAddressRequest;

                    /**
                     * Verifies a GetAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAddressRequest;

                    /**
                     * Creates a plain object from a GetAddressRequest message. Also converts values to other types if specified.
                     * @param message GetAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationFirewallPolicyRequest. */
                interface IGetAssociationFirewallPolicyRequest {

                    /** GetAssociationFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetAssociationFirewallPolicyRequest name */
                    name?: (string|null);
                }

                /** Represents a GetAssociationFirewallPolicyRequest. */
                class GetAssociationFirewallPolicyRequest implements IGetAssociationFirewallPolicyRequest {

                    /**
                     * Constructs a new GetAssociationFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAssociationFirewallPolicyRequest);

                    /** GetAssociationFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetAssociationFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new GetAssociationFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAssociationFirewallPolicyRequest): google.cloud.compute.v1beta.GetAssociationFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAssociationFirewallPolicyRequest;

                    /**
                     * Decodes a GetAssociationFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAssociationFirewallPolicyRequest;

                    /**
                     * Verifies a GetAssociationFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAssociationFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAssociationFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationNetworkFirewallPolicyRequest. */
                interface IGetAssociationNetworkFirewallPolicyRequest {

                    /** GetAssociationNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetAssociationNetworkFirewallPolicyRequest name */
                    name?: (string|null);

                    /** GetAssociationNetworkFirewallPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetAssociationNetworkFirewallPolicyRequest. */
                class GetAssociationNetworkFirewallPolicyRequest implements IGetAssociationNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetAssociationNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAssociationNetworkFirewallPolicyRequest);

                    /** GetAssociationNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetAssociationNetworkFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** GetAssociationNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetAssociationNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAssociationNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetAssociationNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAssociationNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationOrganizationSecurityPolicyRequest. */
                interface IGetAssociationOrganizationSecurityPolicyRequest {

                    /** GetAssociationOrganizationSecurityPolicyRequest name */
                    name?: (string|null);

                    /** GetAssociationOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetAssociationOrganizationSecurityPolicyRequest. */
                class GetAssociationOrganizationSecurityPolicyRequest implements IGetAssociationOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new GetAssociationOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAssociationOrganizationSecurityPolicyRequest);

                    /** GetAssociationOrganizationSecurityPolicyRequest name. */
                    public name?: (string|null);

                    /** GetAssociationOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetAssociationOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAssociationOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.GetAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a GetAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a GetAssociationOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAssociationOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationRegionNetworkFirewallPolicyRequest. */
                interface IGetAssociationRegionNetworkFirewallPolicyRequest {

                    /** GetAssociationRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest name */
                    name?: (string|null);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetAssociationRegionNetworkFirewallPolicyRequest. */
                class GetAssociationRegionNetworkFirewallPolicyRequest implements IGetAssociationRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetAssociationRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAssociationRegionNetworkFirewallPolicyRequest);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetAssociationRegionNetworkFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** GetAssociationRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetAssociationRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetAssociationRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAssociationRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetAssociationRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAssociationRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAssociationRegionNetworkPolicyRequest. */
                interface IGetAssociationRegionNetworkPolicyRequest {

                    /** GetAssociationRegionNetworkPolicyRequest name */
                    name?: (string|null);

                    /** GetAssociationRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** GetAssociationRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** GetAssociationRegionNetworkPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetAssociationRegionNetworkPolicyRequest. */
                class GetAssociationRegionNetworkPolicyRequest implements IGetAssociationRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new GetAssociationRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAssociationRegionNetworkPolicyRequest);

                    /** GetAssociationRegionNetworkPolicyRequest name. */
                    public name?: (string|null);

                    /** GetAssociationRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** GetAssociationRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** GetAssociationRegionNetworkPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetAssociationRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAssociationRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAssociationRegionNetworkPolicyRequest): google.cloud.compute.v1beta.GetAssociationRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified GetAssociationRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAssociationRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAssociationRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAssociationRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message GetAssociationRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAssociationRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAssociationRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAssociationRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAssociationRegionNetworkPolicyRequest;

                    /**
                     * Decodes a GetAssociationRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAssociationRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAssociationRegionNetworkPolicyRequest;

                    /**
                     * Verifies a GetAssociationRegionNetworkPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAssociationRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAssociationRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAssociationRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from a GetAssociationRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetAssociationRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAssociationRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAssociationRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAssociationRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAutoscalerRequest. */
                interface IGetAutoscalerRequest {

                    /** GetAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** GetAutoscalerRequest project */
                    project?: (string|null);

                    /** GetAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetAutoscalerRequest. */
                class GetAutoscalerRequest implements IGetAutoscalerRequest {

                    /**
                     * Constructs a new GetAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAutoscalerRequest);

                    /** GetAutoscalerRequest autoscaler. */
                    public autoscaler: string;

                    /** GetAutoscalerRequest project. */
                    public project: string;

                    /** GetAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAutoscalerRequest): google.cloud.compute.v1beta.GetAutoscalerRequest;

                    /**
                     * Encodes the specified GetAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAutoscalerRequest.verify|verify} messages.
                     * @param message GetAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAutoscalerRequest.verify|verify} messages.
                     * @param message GetAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAutoscalerRequest;

                    /**
                     * Decodes a GetAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAutoscalerRequest;

                    /**
                     * Verifies a GetAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAutoscalerRequest;

                    /**
                     * Creates a plain object from a GetAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message GetAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest. */
                interface IGetAvailableAcceleratorTopologiesInstanceGroupManagerRequest {

                    /** GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest resourceId */
                    resourceId?: (string|null);

                    /** GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest. */
                class GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest implements IGetAvailableAcceleratorTopologiesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetAvailableAcceleratorTopologiesInstanceGroupManagerRequest);

                    /** GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest resourceId. */
                    public resourceId: string;

                    /** GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetAvailableAcceleratorTopologiesInstanceGroupManagerRequest): google.cloud.compute.v1beta.GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetAvailableAcceleratorTopologiesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetAvailableAcceleratorTopologiesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest;

                    /**
                     * Decodes a GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest;

                    /**
                     * Verifies a GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetBackendBucketRequest. */
                interface IGetBackendBucketRequest {

                    /** GetBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** GetBackendBucketRequest project */
                    project?: (string|null);
                }

                /** Represents a GetBackendBucketRequest. */
                class GetBackendBucketRequest implements IGetBackendBucketRequest {

                    /**
                     * Constructs a new GetBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetBackendBucketRequest);

                    /** GetBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** GetBackendBucketRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetBackendBucketRequest): google.cloud.compute.v1beta.GetBackendBucketRequest;

                    /**
                     * Encodes the specified GetBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetBackendBucketRequest.verify|verify} messages.
                     * @param message GetBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetBackendBucketRequest.verify|verify} messages.
                     * @param message GetBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetBackendBucketRequest;

                    /**
                     * Decodes a GetBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetBackendBucketRequest;

                    /**
                     * Verifies a GetBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetBackendBucketRequest;

                    /**
                     * Creates a plain object from a GetBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message GetBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetBackendServiceRequest. */
                interface IGetBackendServiceRequest {

                    /** GetBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetBackendServiceRequest project */
                    project?: (string|null);
                }

                /** Represents a GetBackendServiceRequest. */
                class GetBackendServiceRequest implements IGetBackendServiceRequest {

                    /**
                     * Constructs a new GetBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetBackendServiceRequest);

                    /** GetBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetBackendServiceRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetBackendServiceRequest): google.cloud.compute.v1beta.GetBackendServiceRequest;

                    /**
                     * Encodes the specified GetBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetBackendServiceRequest.verify|verify} messages.
                     * @param message GetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetBackendServiceRequest.verify|verify} messages.
                     * @param message GetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetBackendServiceRequest;

                    /**
                     * Decodes a GetBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetBackendServiceRequest;

                    /**
                     * Verifies a GetBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetCrossSiteNetworkRequest. */
                interface IGetCrossSiteNetworkRequest {

                    /** GetCrossSiteNetworkRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** GetCrossSiteNetworkRequest project */
                    project?: (string|null);
                }

                /** Represents a GetCrossSiteNetworkRequest. */
                class GetCrossSiteNetworkRequest implements IGetCrossSiteNetworkRequest {

                    /**
                     * Constructs a new GetCrossSiteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetCrossSiteNetworkRequest);

                    /** GetCrossSiteNetworkRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** GetCrossSiteNetworkRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetCrossSiteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetCrossSiteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetCrossSiteNetworkRequest): google.cloud.compute.v1beta.GetCrossSiteNetworkRequest;

                    /**
                     * Encodes the specified GetCrossSiteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message GetCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetCrossSiteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message GetCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetCrossSiteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetCrossSiteNetworkRequest;

                    /**
                     * Decodes a GetCrossSiteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetCrossSiteNetworkRequest;

                    /**
                     * Verifies a GetCrossSiteNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetCrossSiteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetCrossSiteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetCrossSiteNetworkRequest;

                    /**
                     * Creates a plain object from a GetCrossSiteNetworkRequest message. Also converts values to other types if specified.
                     * @param message GetCrossSiteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetCrossSiteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetCrossSiteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetCrossSiteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetDiagnosticsInterconnectRequest. */
                interface IGetDiagnosticsInterconnectRequest {

                    /** GetDiagnosticsInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** GetDiagnosticsInterconnectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetDiagnosticsInterconnectRequest. */
                class GetDiagnosticsInterconnectRequest implements IGetDiagnosticsInterconnectRequest {

                    /**
                     * Constructs a new GetDiagnosticsInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetDiagnosticsInterconnectRequest);

                    /** GetDiagnosticsInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** GetDiagnosticsInterconnectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetDiagnosticsInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDiagnosticsInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetDiagnosticsInterconnectRequest): google.cloud.compute.v1beta.GetDiagnosticsInterconnectRequest;

                    /**
                     * Encodes the specified GetDiagnosticsInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetDiagnosticsInterconnectRequest.verify|verify} messages.
                     * @param message GetDiagnosticsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetDiagnosticsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDiagnosticsInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetDiagnosticsInterconnectRequest.verify|verify} messages.
                     * @param message GetDiagnosticsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetDiagnosticsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDiagnosticsInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDiagnosticsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetDiagnosticsInterconnectRequest;

                    /**
                     * Decodes a GetDiagnosticsInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDiagnosticsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetDiagnosticsInterconnectRequest;

                    /**
                     * Verifies a GetDiagnosticsInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDiagnosticsInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDiagnosticsInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetDiagnosticsInterconnectRequest;

                    /**
                     * Creates a plain object from a GetDiagnosticsInterconnectRequest message. Also converts values to other types if specified.
                     * @param message GetDiagnosticsInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetDiagnosticsInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDiagnosticsInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDiagnosticsInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetDiskRequest. */
                interface IGetDiskRequest {

                    /** GetDiskRequest disk */
                    disk?: (string|null);

                    /** GetDiskRequest project */
                    project?: (string|null);

                    /** GetDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetDiskRequest. */
                class GetDiskRequest implements IGetDiskRequest {

                    /**
                     * Constructs a new GetDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetDiskRequest);

                    /** GetDiskRequest disk. */
                    public disk: string;

                    /** GetDiskRequest project. */
                    public project: string;

                    /** GetDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetDiskRequest): google.cloud.compute.v1beta.GetDiskRequest;

                    /**
                     * Encodes the specified GetDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetDiskRequest.verify|verify} messages.
                     * @param message GetDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetDiskRequest.verify|verify} messages.
                     * @param message GetDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetDiskRequest;

                    /**
                     * Decodes a GetDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetDiskRequest;

                    /**
                     * Verifies a GetDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetDiskRequest;

                    /**
                     * Creates a plain object from a GetDiskRequest message. Also converts values to other types if specified.
                     * @param message GetDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetDiskSettingRequest. */
                interface IGetDiskSettingRequest {

                    /** GetDiskSettingRequest project */
                    project?: (string|null);

                    /** GetDiskSettingRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetDiskSettingRequest. */
                class GetDiskSettingRequest implements IGetDiskSettingRequest {

                    /**
                     * Constructs a new GetDiskSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetDiskSettingRequest);

                    /** GetDiskSettingRequest project. */
                    public project: string;

                    /** GetDiskSettingRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetDiskSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDiskSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetDiskSettingRequest): google.cloud.compute.v1beta.GetDiskSettingRequest;

                    /**
                     * Encodes the specified GetDiskSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetDiskSettingRequest.verify|verify} messages.
                     * @param message GetDiskSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetDiskSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDiskSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetDiskSettingRequest.verify|verify} messages.
                     * @param message GetDiskSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetDiskSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDiskSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDiskSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetDiskSettingRequest;

                    /**
                     * Decodes a GetDiskSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDiskSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetDiskSettingRequest;

                    /**
                     * Verifies a GetDiskSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDiskSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDiskSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetDiskSettingRequest;

                    /**
                     * Creates a plain object from a GetDiskSettingRequest message. Also converts values to other types if specified.
                     * @param message GetDiskSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetDiskSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDiskSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDiskSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetDiskTypeRequest. */
                interface IGetDiskTypeRequest {

                    /** GetDiskTypeRequest diskType */
                    diskType?: (string|null);

                    /** GetDiskTypeRequest project */
                    project?: (string|null);

                    /** GetDiskTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetDiskTypeRequest. */
                class GetDiskTypeRequest implements IGetDiskTypeRequest {

                    /**
                     * Constructs a new GetDiskTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetDiskTypeRequest);

                    /** GetDiskTypeRequest diskType. */
                    public diskType: string;

                    /** GetDiskTypeRequest project. */
                    public project: string;

                    /** GetDiskTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetDiskTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDiskTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetDiskTypeRequest): google.cloud.compute.v1beta.GetDiskTypeRequest;

                    /**
                     * Encodes the specified GetDiskTypeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetDiskTypeRequest.verify|verify} messages.
                     * @param message GetDiskTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetDiskTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDiskTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetDiskTypeRequest.verify|verify} messages.
                     * @param message GetDiskTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetDiskTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDiskTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDiskTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetDiskTypeRequest;

                    /**
                     * Decodes a GetDiskTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDiskTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetDiskTypeRequest;

                    /**
                     * Verifies a GetDiskTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDiskTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDiskTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetDiskTypeRequest;

                    /**
                     * Creates a plain object from a GetDiskTypeRequest message. Also converts values to other types if specified.
                     * @param message GetDiskTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetDiskTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDiskTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDiskTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveFirewallsInstanceRequest. */
                interface IGetEffectiveFirewallsInstanceRequest {

                    /** GetEffectiveFirewallsInstanceRequest instance */
                    instance?: (string|null);

                    /** GetEffectiveFirewallsInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** GetEffectiveFirewallsInstanceRequest project */
                    project?: (string|null);

                    /** GetEffectiveFirewallsInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetEffectiveFirewallsInstanceRequest. */
                class GetEffectiveFirewallsInstanceRequest implements IGetEffectiveFirewallsInstanceRequest {

                    /**
                     * Constructs a new GetEffectiveFirewallsInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest);

                    /** GetEffectiveFirewallsInstanceRequest instance. */
                    public instance: string;

                    /** GetEffectiveFirewallsInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** GetEffectiveFirewallsInstanceRequest project. */
                    public project: string;

                    /** GetEffectiveFirewallsInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetEffectiveFirewallsInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveFirewallsInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest): google.cloud.compute.v1beta.GetEffectiveFirewallsInstanceRequest;

                    /**
                     * Encodes the specified GetEffectiveFirewallsInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetEffectiveFirewallsInstanceRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveFirewallsInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetEffectiveFirewallsInstanceRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveFirewallsInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveFirewallsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetEffectiveFirewallsInstanceRequest;

                    /**
                     * Decodes a GetEffectiveFirewallsInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveFirewallsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetEffectiveFirewallsInstanceRequest;

                    /**
                     * Verifies a GetEffectiveFirewallsInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveFirewallsInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveFirewallsInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetEffectiveFirewallsInstanceRequest;

                    /**
                     * Creates a plain object from a GetEffectiveFirewallsInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetEffectiveFirewallsInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetEffectiveFirewallsInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveFirewallsInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveFirewallsInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveFirewallsNetworkRequest. */
                interface IGetEffectiveFirewallsNetworkRequest {

                    /** GetEffectiveFirewallsNetworkRequest network */
                    network?: (string|null);

                    /** GetEffectiveFirewallsNetworkRequest project */
                    project?: (string|null);
                }

                /** Represents a GetEffectiveFirewallsNetworkRequest. */
                class GetEffectiveFirewallsNetworkRequest implements IGetEffectiveFirewallsNetworkRequest {

                    /**
                     * Constructs a new GetEffectiveFirewallsNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetEffectiveFirewallsNetworkRequest);

                    /** GetEffectiveFirewallsNetworkRequest network. */
                    public network: string;

                    /** GetEffectiveFirewallsNetworkRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetEffectiveFirewallsNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveFirewallsNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetEffectiveFirewallsNetworkRequest): google.cloud.compute.v1beta.GetEffectiveFirewallsNetworkRequest;

                    /**
                     * Encodes the specified GetEffectiveFirewallsNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetEffectiveFirewallsNetworkRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetEffectiveFirewallsNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveFirewallsNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetEffectiveFirewallsNetworkRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetEffectiveFirewallsNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveFirewallsNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveFirewallsNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetEffectiveFirewallsNetworkRequest;

                    /**
                     * Decodes a GetEffectiveFirewallsNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveFirewallsNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetEffectiveFirewallsNetworkRequest;

                    /**
                     * Verifies a GetEffectiveFirewallsNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveFirewallsNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveFirewallsNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetEffectiveFirewallsNetworkRequest;

                    /**
                     * Creates a plain object from a GetEffectiveFirewallsNetworkRequest message. Also converts values to other types if specified.
                     * @param message GetEffectiveFirewallsNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetEffectiveFirewallsNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveFirewallsNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveFirewallsNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest. */
                interface IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest {

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest network */
                    network?: (string|null);

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest. */
                class GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest implements IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest);

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest network. */
                    public network: string;

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetEffectiveSecurityPoliciesBackendServiceRequest. */
                interface IGetEffectiveSecurityPoliciesBackendServiceRequest {

                    /** GetEffectiveSecurityPoliciesBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetEffectiveSecurityPoliciesBackendServiceRequest project */
                    project?: (string|null);
                }

                /** Represents a GetEffectiveSecurityPoliciesBackendServiceRequest. */
                class GetEffectiveSecurityPoliciesBackendServiceRequest implements IGetEffectiveSecurityPoliciesBackendServiceRequest {

                    /**
                     * Constructs a new GetEffectiveSecurityPoliciesBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetEffectiveSecurityPoliciesBackendServiceRequest);

                    /** GetEffectiveSecurityPoliciesBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetEffectiveSecurityPoliciesBackendServiceRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetEffectiveSecurityPoliciesBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEffectiveSecurityPoliciesBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetEffectiveSecurityPoliciesBackendServiceRequest): google.cloud.compute.v1beta.GetEffectiveSecurityPoliciesBackendServiceRequest;

                    /**
                     * Encodes the specified GetEffectiveSecurityPoliciesBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetEffectiveSecurityPoliciesBackendServiceRequest.verify|verify} messages.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetEffectiveSecurityPoliciesBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEffectiveSecurityPoliciesBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetEffectiveSecurityPoliciesBackendServiceRequest.verify|verify} messages.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetEffectiveSecurityPoliciesBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEffectiveSecurityPoliciesBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEffectiveSecurityPoliciesBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetEffectiveSecurityPoliciesBackendServiceRequest;

                    /**
                     * Decodes a GetEffectiveSecurityPoliciesBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEffectiveSecurityPoliciesBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetEffectiveSecurityPoliciesBackendServiceRequest;

                    /**
                     * Verifies a GetEffectiveSecurityPoliciesBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEffectiveSecurityPoliciesBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEffectiveSecurityPoliciesBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetEffectiveSecurityPoliciesBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetEffectiveSecurityPoliciesBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetEffectiveSecurityPoliciesBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetEffectiveSecurityPoliciesBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEffectiveSecurityPoliciesBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEffectiveSecurityPoliciesBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetExternalVpnGatewayRequest. */
                interface IGetExternalVpnGatewayRequest {

                    /** GetExternalVpnGatewayRequest externalVpnGateway */
                    externalVpnGateway?: (string|null);

                    /** GetExternalVpnGatewayRequest project */
                    project?: (string|null);
                }

                /** Represents a GetExternalVpnGatewayRequest. */
                class GetExternalVpnGatewayRequest implements IGetExternalVpnGatewayRequest {

                    /**
                     * Constructs a new GetExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetExternalVpnGatewayRequest);

                    /** GetExternalVpnGatewayRequest externalVpnGateway. */
                    public externalVpnGateway: string;

                    /** GetExternalVpnGatewayRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetExternalVpnGatewayRequest): google.cloud.compute.v1beta.GetExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified GetExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message GetExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message GetExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetExternalVpnGatewayRequest;

                    /**
                     * Decodes a GetExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetExternalVpnGatewayRequest;

                    /**
                     * Verifies a GetExternalVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from a GetExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message GetExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFirewallPolicyRequest. */
                interface IGetFirewallPolicyRequest {

                    /** GetFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);
                }

                /** Represents a GetFirewallPolicyRequest. */
                class GetFirewallPolicyRequest implements IGetFirewallPolicyRequest {

                    /**
                     * Constructs a new GetFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetFirewallPolicyRequest);

                    /** GetFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /**
                     * Creates a new GetFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetFirewallPolicyRequest): google.cloud.compute.v1beta.GetFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetFirewallPolicyRequest;

                    /**
                     * Decodes a GetFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetFirewallPolicyRequest;

                    /**
                     * Verifies a GetFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFirewallRequest. */
                interface IGetFirewallRequest {

                    /** GetFirewallRequest firewall */
                    firewall?: (string|null);

                    /** GetFirewallRequest project */
                    project?: (string|null);
                }

                /** Represents a GetFirewallRequest. */
                class GetFirewallRequest implements IGetFirewallRequest {

                    /**
                     * Constructs a new GetFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetFirewallRequest);

                    /** GetFirewallRequest firewall. */
                    public firewall: string;

                    /** GetFirewallRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetFirewallRequest): google.cloud.compute.v1beta.GetFirewallRequest;

                    /**
                     * Encodes the specified GetFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetFirewallRequest.verify|verify} messages.
                     * @param message GetFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetFirewallRequest.verify|verify} messages.
                     * @param message GetFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetFirewallRequest;

                    /**
                     * Decodes a GetFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetFirewallRequest;

                    /**
                     * Verifies a GetFirewallRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetFirewallRequest;

                    /**
                     * Creates a plain object from a GetFirewallRequest message. Also converts values to other types if specified.
                     * @param message GetFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetForwardingRuleRequest. */
                interface IGetForwardingRuleRequest {

                    /** GetForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** GetForwardingRuleRequest project */
                    project?: (string|null);

                    /** GetForwardingRuleRequest region */
                    region?: (string|null);
                }

                /** Represents a GetForwardingRuleRequest. */
                class GetForwardingRuleRequest implements IGetForwardingRuleRequest {

                    /**
                     * Constructs a new GetForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetForwardingRuleRequest);

                    /** GetForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** GetForwardingRuleRequest project. */
                    public project: string;

                    /** GetForwardingRuleRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetForwardingRuleRequest): google.cloud.compute.v1beta.GetForwardingRuleRequest;

                    /**
                     * Encodes the specified GetForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetForwardingRuleRequest.verify|verify} messages.
                     * @param message GetForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetForwardingRuleRequest.verify|verify} messages.
                     * @param message GetForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetForwardingRuleRequest;

                    /**
                     * Decodes a GetForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetForwardingRuleRequest;

                    /**
                     * Verifies a GetForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetForwardingRuleRequest;

                    /**
                     * Creates a plain object from a GetForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message GetForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFromFamilyImageRequest. */
                interface IGetFromFamilyImageRequest {

                    /** GetFromFamilyImageRequest family */
                    family?: (string|null);

                    /** GetFromFamilyImageRequest project */
                    project?: (string|null);
                }

                /** Represents a GetFromFamilyImageRequest. */
                class GetFromFamilyImageRequest implements IGetFromFamilyImageRequest {

                    /**
                     * Constructs a new GetFromFamilyImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetFromFamilyImageRequest);

                    /** GetFromFamilyImageRequest family. */
                    public family: string;

                    /** GetFromFamilyImageRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetFromFamilyImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFromFamilyImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetFromFamilyImageRequest): google.cloud.compute.v1beta.GetFromFamilyImageRequest;

                    /**
                     * Encodes the specified GetFromFamilyImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetFromFamilyImageRequest.verify|verify} messages.
                     * @param message GetFromFamilyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetFromFamilyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFromFamilyImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetFromFamilyImageRequest.verify|verify} messages.
                     * @param message GetFromFamilyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetFromFamilyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFromFamilyImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFromFamilyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetFromFamilyImageRequest;

                    /**
                     * Decodes a GetFromFamilyImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFromFamilyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetFromFamilyImageRequest;

                    /**
                     * Verifies a GetFromFamilyImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetFromFamilyImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFromFamilyImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetFromFamilyImageRequest;

                    /**
                     * Creates a plain object from a GetFromFamilyImageRequest message. Also converts values to other types if specified.
                     * @param message GetFromFamilyImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetFromFamilyImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFromFamilyImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFromFamilyImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFutureReservationRequest. */
                interface IGetFutureReservationRequest {

                    /** GetFutureReservationRequest futureReservation */
                    futureReservation?: (string|null);

                    /** GetFutureReservationRequest project */
                    project?: (string|null);

                    /** GetFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetFutureReservationRequest. */
                class GetFutureReservationRequest implements IGetFutureReservationRequest {

                    /**
                     * Constructs a new GetFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetFutureReservationRequest);

                    /** GetFutureReservationRequest futureReservation. */
                    public futureReservation: string;

                    /** GetFutureReservationRequest project. */
                    public project: string;

                    /** GetFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetFutureReservationRequest): google.cloud.compute.v1beta.GetFutureReservationRequest;

                    /**
                     * Encodes the specified GetFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetFutureReservationRequest.verify|verify} messages.
                     * @param message GetFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetFutureReservationRequest.verify|verify} messages.
                     * @param message GetFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetFutureReservationRequest;

                    /**
                     * Decodes a GetFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetFutureReservationRequest;

                    /**
                     * Verifies a GetFutureReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetFutureReservationRequest;

                    /**
                     * Creates a plain object from a GetFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message GetFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalAddressRequest. */
                interface IGetGlobalAddressRequest {

                    /** GetGlobalAddressRequest address */
                    address?: (string|null);

                    /** GetGlobalAddressRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalAddressRequest. */
                class GetGlobalAddressRequest implements IGetGlobalAddressRequest {

                    /**
                     * Constructs a new GetGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetGlobalAddressRequest);

                    /** GetGlobalAddressRequest address. */
                    public address: string;

                    /** GetGlobalAddressRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetGlobalAddressRequest): google.cloud.compute.v1beta.GetGlobalAddressRequest;

                    /**
                     * Encodes the specified GetGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalAddressRequest.verify|verify} messages.
                     * @param message GetGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalAddressRequest.verify|verify} messages.
                     * @param message GetGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetGlobalAddressRequest;

                    /**
                     * Decodes a GetGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetGlobalAddressRequest;

                    /**
                     * Verifies a GetGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetGlobalAddressRequest;

                    /**
                     * Creates a plain object from a GetGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalForwardingRuleRequest. */
                interface IGetGlobalForwardingRuleRequest {

                    /** GetGlobalForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** GetGlobalForwardingRuleRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalForwardingRuleRequest. */
                class GetGlobalForwardingRuleRequest implements IGetGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new GetGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetGlobalForwardingRuleRequest);

                    /** GetGlobalForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** GetGlobalForwardingRuleRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetGlobalForwardingRuleRequest): google.cloud.compute.v1beta.GetGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified GetGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message GetGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message GetGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetGlobalForwardingRuleRequest;

                    /**
                     * Decodes a GetGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetGlobalForwardingRuleRequest;

                    /**
                     * Verifies a GetGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a GetGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalNetworkEndpointGroupRequest. */
                interface IGetGlobalNetworkEndpointGroupRequest {

                    /** GetGlobalNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** GetGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalNetworkEndpointGroupRequest. */
                class GetGlobalNetworkEndpointGroupRequest implements IGetGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new GetGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetGlobalNetworkEndpointGroupRequest);

                    /** GetGlobalNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** GetGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1beta.GetGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified GetGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes a GetGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies a GetGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a GetGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalOperationRequest. */
                interface IGetGlobalOperationRequest {

                    /** GetGlobalOperationRequest operation */
                    operation?: (string|null);

                    /** GetGlobalOperationRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalOperationRequest. */
                class GetGlobalOperationRequest implements IGetGlobalOperationRequest {

                    /**
                     * Constructs a new GetGlobalOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetGlobalOperationRequest);

                    /** GetGlobalOperationRequest operation. */
                    public operation: string;

                    /** GetGlobalOperationRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetGlobalOperationRequest): google.cloud.compute.v1beta.GetGlobalOperationRequest;

                    /**
                     * Encodes the specified GetGlobalOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalOperationRequest.verify|verify} messages.
                     * @param message GetGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalOperationRequest.verify|verify} messages.
                     * @param message GetGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetGlobalOperationRequest;

                    /**
                     * Decodes a GetGlobalOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetGlobalOperationRequest;

                    /**
                     * Verifies a GetGlobalOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetGlobalOperationRequest;

                    /**
                     * Creates a plain object from a GetGlobalOperationRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetGlobalOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalOrganizationOperationRequest. */
                interface IGetGlobalOrganizationOperationRequest {

                    /** GetGlobalOrganizationOperationRequest operation */
                    operation?: (string|null);

                    /** GetGlobalOrganizationOperationRequest parentId */
                    parentId?: (string|null);
                }

                /** Represents a GetGlobalOrganizationOperationRequest. */
                class GetGlobalOrganizationOperationRequest implements IGetGlobalOrganizationOperationRequest {

                    /**
                     * Constructs a new GetGlobalOrganizationOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetGlobalOrganizationOperationRequest);

                    /** GetGlobalOrganizationOperationRequest operation. */
                    public operation: string;

                    /** GetGlobalOrganizationOperationRequest parentId. */
                    public parentId?: (string|null);

                    /**
                     * Creates a new GetGlobalOrganizationOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalOrganizationOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetGlobalOrganizationOperationRequest): google.cloud.compute.v1beta.GetGlobalOrganizationOperationRequest;

                    /**
                     * Encodes the specified GetGlobalOrganizationOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalOrganizationOperationRequest.verify|verify} messages.
                     * @param message GetGlobalOrganizationOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetGlobalOrganizationOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalOrganizationOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalOrganizationOperationRequest.verify|verify} messages.
                     * @param message GetGlobalOrganizationOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetGlobalOrganizationOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalOrganizationOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalOrganizationOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetGlobalOrganizationOperationRequest;

                    /**
                     * Decodes a GetGlobalOrganizationOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalOrganizationOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetGlobalOrganizationOperationRequest;

                    /**
                     * Verifies a GetGlobalOrganizationOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalOrganizationOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalOrganizationOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetGlobalOrganizationOperationRequest;

                    /**
                     * Creates a plain object from a GetGlobalOrganizationOperationRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalOrganizationOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetGlobalOrganizationOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalOrganizationOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalOrganizationOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalPublicDelegatedPrefixeRequest. */
                interface IGetGlobalPublicDelegatedPrefixeRequest {

                    /** GetGlobalPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** GetGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);
                }

                /** Represents a GetGlobalPublicDelegatedPrefixeRequest. */
                class GetGlobalPublicDelegatedPrefixeRequest implements IGetGlobalPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new GetGlobalPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetGlobalPublicDelegatedPrefixeRequest);

                    /** GetGlobalPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** GetGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /**
                     * Creates a new GetGlobalPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetGlobalPublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.GetGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified GetGlobalPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message GetGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message GetGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a GetGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a GetGlobalPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a GetGlobalPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetGlobalPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGlobalVmExtensionPolicyRequest. */
                interface IGetGlobalVmExtensionPolicyRequest {

                    /** GetGlobalVmExtensionPolicyRequest globalVmExtensionPolicy */
                    globalVmExtensionPolicy?: (string|null);

                    /** GetGlobalVmExtensionPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetGlobalVmExtensionPolicyRequest. */
                class GetGlobalVmExtensionPolicyRequest implements IGetGlobalVmExtensionPolicyRequest {

                    /**
                     * Constructs a new GetGlobalVmExtensionPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetGlobalVmExtensionPolicyRequest);

                    /** GetGlobalVmExtensionPolicyRequest globalVmExtensionPolicy. */
                    public globalVmExtensionPolicy: string;

                    /** GetGlobalVmExtensionPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetGlobalVmExtensionPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGlobalVmExtensionPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetGlobalVmExtensionPolicyRequest): google.cloud.compute.v1beta.GetGlobalVmExtensionPolicyRequest;

                    /**
                     * Encodes the specified GetGlobalVmExtensionPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message GetGlobalVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetGlobalVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGlobalVmExtensionPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetGlobalVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message GetGlobalVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetGlobalVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGlobalVmExtensionPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGlobalVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetGlobalVmExtensionPolicyRequest;

                    /**
                     * Decodes a GetGlobalVmExtensionPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGlobalVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetGlobalVmExtensionPolicyRequest;

                    /**
                     * Verifies a GetGlobalVmExtensionPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGlobalVmExtensionPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGlobalVmExtensionPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetGlobalVmExtensionPolicyRequest;

                    /**
                     * Creates a plain object from a GetGlobalVmExtensionPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetGlobalVmExtensionPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetGlobalVmExtensionPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGlobalVmExtensionPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGlobalVmExtensionPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetGuestAttributesInstanceRequest. */
                interface IGetGuestAttributesInstanceRequest {

                    /** GetGuestAttributesInstanceRequest instance */
                    instance?: (string|null);

                    /** GetGuestAttributesInstanceRequest project */
                    project?: (string|null);

                    /** GetGuestAttributesInstanceRequest queryPath */
                    queryPath?: (string|null);

                    /** GetGuestAttributesInstanceRequest variableKey */
                    variableKey?: (string|null);

                    /** GetGuestAttributesInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetGuestAttributesInstanceRequest. */
                class GetGuestAttributesInstanceRequest implements IGetGuestAttributesInstanceRequest {

                    /**
                     * Constructs a new GetGuestAttributesInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest);

                    /** GetGuestAttributesInstanceRequest instance. */
                    public instance: string;

                    /** GetGuestAttributesInstanceRequest project. */
                    public project: string;

                    /** GetGuestAttributesInstanceRequest queryPath. */
                    public queryPath?: (string|null);

                    /** GetGuestAttributesInstanceRequest variableKey. */
                    public variableKey?: (string|null);

                    /** GetGuestAttributesInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetGuestAttributesInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetGuestAttributesInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest): google.cloud.compute.v1beta.GetGuestAttributesInstanceRequest;

                    /**
                     * Encodes the specified GetGuestAttributesInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetGuestAttributesInstanceRequest.verify|verify} messages.
                     * @param message GetGuestAttributesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetGuestAttributesInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetGuestAttributesInstanceRequest.verify|verify} messages.
                     * @param message GetGuestAttributesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetGuestAttributesInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetGuestAttributesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetGuestAttributesInstanceRequest;

                    /**
                     * Decodes a GetGuestAttributesInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetGuestAttributesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetGuestAttributesInstanceRequest;

                    /**
                     * Verifies a GetGuestAttributesInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetGuestAttributesInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetGuestAttributesInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetGuestAttributesInstanceRequest;

                    /**
                     * Creates a plain object from a GetGuestAttributesInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetGuestAttributesInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetGuestAttributesInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetGuestAttributesInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetGuestAttributesInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetHealthBackendServiceRequest. */
                interface IGetHealthBackendServiceRequest {

                    /** GetHealthBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetHealthBackendServiceRequest project */
                    project?: (string|null);

                    /** GetHealthBackendServiceRequest resourceGroupReferenceResource */
                    resourceGroupReferenceResource?: (google.cloud.compute.v1beta.IResourceGroupReference|null);
                }

                /** Represents a GetHealthBackendServiceRequest. */
                class GetHealthBackendServiceRequest implements IGetHealthBackendServiceRequest {

                    /**
                     * Constructs a new GetHealthBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetHealthBackendServiceRequest);

                    /** GetHealthBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetHealthBackendServiceRequest project. */
                    public project: string;

                    /** GetHealthBackendServiceRequest resourceGroupReferenceResource. */
                    public resourceGroupReferenceResource?: (google.cloud.compute.v1beta.IResourceGroupReference|null);

                    /**
                     * Creates a new GetHealthBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetHealthBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetHealthBackendServiceRequest): google.cloud.compute.v1beta.GetHealthBackendServiceRequest;

                    /**
                     * Encodes the specified GetHealthBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetHealthBackendServiceRequest.verify|verify} messages.
                     * @param message GetHealthBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetHealthBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetHealthBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetHealthBackendServiceRequest.verify|verify} messages.
                     * @param message GetHealthBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetHealthBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetHealthBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetHealthBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetHealthBackendServiceRequest;

                    /**
                     * Decodes a GetHealthBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetHealthBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetHealthBackendServiceRequest;

                    /**
                     * Verifies a GetHealthBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetHealthBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetHealthBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetHealthBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetHealthBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetHealthBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetHealthBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetHealthBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetHealthBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetHealthCheckRequest. */
                interface IGetHealthCheckRequest {

                    /** GetHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** GetHealthCheckRequest project */
                    project?: (string|null);
                }

                /** Represents a GetHealthCheckRequest. */
                class GetHealthCheckRequest implements IGetHealthCheckRequest {

                    /**
                     * Constructs a new GetHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetHealthCheckRequest);

                    /** GetHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** GetHealthCheckRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetHealthCheckRequest): google.cloud.compute.v1beta.GetHealthCheckRequest;

                    /**
                     * Encodes the specified GetHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetHealthCheckRequest.verify|verify} messages.
                     * @param message GetHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetHealthCheckRequest.verify|verify} messages.
                     * @param message GetHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetHealthCheckRequest;

                    /**
                     * Decodes a GetHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetHealthCheckRequest;

                    /**
                     * Verifies a GetHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetHealthCheckRequest;

                    /**
                     * Creates a plain object from a GetHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message GetHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetHealthRegionBackendServiceRequest. */
                interface IGetHealthRegionBackendServiceRequest {

                    /** GetHealthRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetHealthRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** GetHealthRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** GetHealthRegionBackendServiceRequest resourceGroupReferenceResource */
                    resourceGroupReferenceResource?: (google.cloud.compute.v1beta.IResourceGroupReference|null);
                }

                /** Represents a GetHealthRegionBackendServiceRequest. */
                class GetHealthRegionBackendServiceRequest implements IGetHealthRegionBackendServiceRequest {

                    /**
                     * Constructs a new GetHealthRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetHealthRegionBackendServiceRequest);

                    /** GetHealthRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetHealthRegionBackendServiceRequest project. */
                    public project: string;

                    /** GetHealthRegionBackendServiceRequest region. */
                    public region: string;

                    /** GetHealthRegionBackendServiceRequest resourceGroupReferenceResource. */
                    public resourceGroupReferenceResource?: (google.cloud.compute.v1beta.IResourceGroupReference|null);

                    /**
                     * Creates a new GetHealthRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetHealthRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetHealthRegionBackendServiceRequest): google.cloud.compute.v1beta.GetHealthRegionBackendServiceRequest;

                    /**
                     * Encodes the specified GetHealthRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetHealthRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetHealthRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetHealthRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetHealthRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetHealthRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetHealthRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetHealthRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetHealthRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetHealthRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetHealthRegionBackendServiceRequest;

                    /**
                     * Decodes a GetHealthRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetHealthRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetHealthRegionBackendServiceRequest;

                    /**
                     * Verifies a GetHealthRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetHealthRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetHealthRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetHealthRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetHealthRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetHealthRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetHealthRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetHealthRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetHealthRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetHealthTargetPoolRequest. */
                interface IGetHealthTargetPoolRequest {

                    /** GetHealthTargetPoolRequest instanceReferenceResource */
                    instanceReferenceResource?: (google.cloud.compute.v1beta.IInstanceReference|null);

                    /** GetHealthTargetPoolRequest project */
                    project?: (string|null);

                    /** GetHealthTargetPoolRequest region */
                    region?: (string|null);

                    /** GetHealthTargetPoolRequest targetPool */
                    targetPool?: (string|null);
                }

                /** Represents a GetHealthTargetPoolRequest. */
                class GetHealthTargetPoolRequest implements IGetHealthTargetPoolRequest {

                    /**
                     * Constructs a new GetHealthTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetHealthTargetPoolRequest);

                    /** GetHealthTargetPoolRequest instanceReferenceResource. */
                    public instanceReferenceResource?: (google.cloud.compute.v1beta.IInstanceReference|null);

                    /** GetHealthTargetPoolRequest project. */
                    public project: string;

                    /** GetHealthTargetPoolRequest region. */
                    public region: string;

                    /** GetHealthTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /**
                     * Creates a new GetHealthTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetHealthTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetHealthTargetPoolRequest): google.cloud.compute.v1beta.GetHealthTargetPoolRequest;

                    /**
                     * Encodes the specified GetHealthTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetHealthTargetPoolRequest.verify|verify} messages.
                     * @param message GetHealthTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetHealthTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetHealthTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetHealthTargetPoolRequest.verify|verify} messages.
                     * @param message GetHealthTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetHealthTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetHealthTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetHealthTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetHealthTargetPoolRequest;

                    /**
                     * Decodes a GetHealthTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetHealthTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetHealthTargetPoolRequest;

                    /**
                     * Verifies a GetHealthTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetHealthTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetHealthTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetHealthTargetPoolRequest;

                    /**
                     * Creates a plain object from a GetHealthTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message GetHealthTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetHealthTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetHealthTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetHealthTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyBackendBucketRequest. */
                interface IGetIamPolicyBackendBucketRequest {

                    /** GetIamPolicyBackendBucketRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyBackendBucketRequest project */
                    project?: (string|null);

                    /** GetIamPolicyBackendBucketRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyBackendBucketRequest. */
                class GetIamPolicyBackendBucketRequest implements IGetIamPolicyBackendBucketRequest {

                    /**
                     * Constructs a new GetIamPolicyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyBackendBucketRequest);

                    /** GetIamPolicyBackendBucketRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyBackendBucketRequest project. */
                    public project: string;

                    /** GetIamPolicyBackendBucketRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyBackendBucketRequest): google.cloud.compute.v1beta.GetIamPolicyBackendBucketRequest;

                    /**
                     * Encodes the specified GetIamPolicyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message GetIamPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message GetIamPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyBackendBucketRequest;

                    /**
                     * Decodes a GetIamPolicyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyBackendBucketRequest;

                    /**
                     * Verifies a GetIamPolicyBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyBackendBucketRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyBackendServiceRequest. */
                interface IGetIamPolicyBackendServiceRequest {

                    /** GetIamPolicyBackendServiceRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyBackendServiceRequest project */
                    project?: (string|null);

                    /** GetIamPolicyBackendServiceRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyBackendServiceRequest. */
                class GetIamPolicyBackendServiceRequest implements IGetIamPolicyBackendServiceRequest {

                    /**
                     * Constructs a new GetIamPolicyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyBackendServiceRequest);

                    /** GetIamPolicyBackendServiceRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyBackendServiceRequest project. */
                    public project: string;

                    /** GetIamPolicyBackendServiceRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyBackendServiceRequest): google.cloud.compute.v1beta.GetIamPolicyBackendServiceRequest;

                    /**
                     * Encodes the specified GetIamPolicyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message GetIamPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message GetIamPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyBackendServiceRequest;

                    /**
                     * Decodes a GetIamPolicyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyBackendServiceRequest;

                    /**
                     * Verifies a GetIamPolicyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyDiskRequest. */
                interface IGetIamPolicyDiskRequest {

                    /** GetIamPolicyDiskRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyDiskRequest project */
                    project?: (string|null);

                    /** GetIamPolicyDiskRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyDiskRequest. */
                class GetIamPolicyDiskRequest implements IGetIamPolicyDiskRequest {

                    /**
                     * Constructs a new GetIamPolicyDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyDiskRequest);

                    /** GetIamPolicyDiskRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyDiskRequest project. */
                    public project: string;

                    /** GetIamPolicyDiskRequest resource. */
                    public resource: string;

                    /** GetIamPolicyDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyDiskRequest): google.cloud.compute.v1beta.GetIamPolicyDiskRequest;

                    /**
                     * Encodes the specified GetIamPolicyDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyDiskRequest.verify|verify} messages.
                     * @param message GetIamPolicyDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyDiskRequest.verify|verify} messages.
                     * @param message GetIamPolicyDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyDiskRequest;

                    /**
                     * Decodes a GetIamPolicyDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyDiskRequest;

                    /**
                     * Verifies a GetIamPolicyDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyDiskRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyDiskRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyFirewallPolicyRequest. */
                interface IGetIamPolicyFirewallPolicyRequest {

                    /** GetIamPolicyFirewallPolicyRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyFirewallPolicyRequest. */
                class GetIamPolicyFirewallPolicyRequest implements IGetIamPolicyFirewallPolicyRequest {

                    /**
                     * Constructs a new GetIamPolicyFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyFirewallPolicyRequest);

                    /** GetIamPolicyFirewallPolicyRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyFirewallPolicyRequest): google.cloud.compute.v1beta.GetIamPolicyFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetIamPolicyFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyFirewallPolicyRequest;

                    /**
                     * Decodes a GetIamPolicyFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyFirewallPolicyRequest;

                    /**
                     * Verifies a GetIamPolicyFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyImageRequest. */
                interface IGetIamPolicyImageRequest {

                    /** GetIamPolicyImageRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyImageRequest project */
                    project?: (string|null);

                    /** GetIamPolicyImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyImageRequest. */
                class GetIamPolicyImageRequest implements IGetIamPolicyImageRequest {

                    /**
                     * Constructs a new GetIamPolicyImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyImageRequest);

                    /** GetIamPolicyImageRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyImageRequest project. */
                    public project: string;

                    /** GetIamPolicyImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyImageRequest): google.cloud.compute.v1beta.GetIamPolicyImageRequest;

                    /**
                     * Encodes the specified GetIamPolicyImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyImageRequest.verify|verify} messages.
                     * @param message GetIamPolicyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyImageRequest.verify|verify} messages.
                     * @param message GetIamPolicyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyImageRequest;

                    /**
                     * Decodes a GetIamPolicyImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyImageRequest;

                    /**
                     * Verifies a GetIamPolicyImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyImageRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyImageRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInstanceRequest. */
                interface IGetIamPolicyInstanceRequest {

                    /** GetIamPolicyInstanceRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstanceRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInstanceRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyInstanceRequest. */
                class GetIamPolicyInstanceRequest implements IGetIamPolicyInstanceRequest {

                    /**
                     * Constructs a new GetIamPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest);

                    /** GetIamPolicyInstanceRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstanceRequest project. */
                    public project: string;

                    /** GetIamPolicyInstanceRequest resource. */
                    public resource: string;

                    /** GetIamPolicyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest): google.cloud.compute.v1beta.GetIamPolicyInstanceRequest;

                    /**
                     * Encodes the specified GetIamPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInstanceRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInstanceRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyInstanceRequest;

                    /**
                     * Decodes a GetIamPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyInstanceRequest;

                    /**
                     * Verifies a GetIamPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInstanceTemplateRequest. */
                interface IGetIamPolicyInstanceTemplateRequest {

                    /** GetIamPolicyInstanceTemplateRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstanceTemplateRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInstanceTemplateRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyInstanceTemplateRequest. */
                class GetIamPolicyInstanceTemplateRequest implements IGetIamPolicyInstanceTemplateRequest {

                    /**
                     * Constructs a new GetIamPolicyInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyInstanceTemplateRequest);

                    /** GetIamPolicyInstanceTemplateRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstanceTemplateRequest project. */
                    public project: string;

                    /** GetIamPolicyInstanceTemplateRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyInstanceTemplateRequest): google.cloud.compute.v1beta.GetIamPolicyInstanceTemplateRequest;

                    /**
                     * Encodes the specified GetIamPolicyInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyInstanceTemplateRequest;

                    /**
                     * Decodes a GetIamPolicyInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyInstanceTemplateRequest;

                    /**
                     * Verifies a GetIamPolicyInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInstantSnapshotGroupRequest. */
                interface IGetIamPolicyInstantSnapshotGroupRequest {

                    /** GetIamPolicyInstantSnapshotGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInstantSnapshotGroupRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyInstantSnapshotGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyInstantSnapshotGroupRequest. */
                class GetIamPolicyInstantSnapshotGroupRequest implements IGetIamPolicyInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new GetIamPolicyInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotGroupRequest);

                    /** GetIamPolicyInstantSnapshotGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** GetIamPolicyInstantSnapshotGroupRequest resource. */
                    public resource: string;

                    /** GetIamPolicyInstantSnapshotGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotGroupRequest): google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicyInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotGroupRequest;

                    /**
                     * Decodes a GetIamPolicyInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotGroupRequest;

                    /**
                     * Verifies a GetIamPolicyInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInstantSnapshotRequest. */
                interface IGetIamPolicyInstantSnapshotRequest {

                    /** GetIamPolicyInstantSnapshotRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstantSnapshotRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyInstantSnapshotRequest. */
                class GetIamPolicyInstantSnapshotRequest implements IGetIamPolicyInstantSnapshotRequest {

                    /**
                     * Constructs a new GetIamPolicyInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotRequest);

                    /** GetIamPolicyInstantSnapshotRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInstantSnapshotRequest project. */
                    public project: string;

                    /** GetIamPolicyInstantSnapshotRequest resource. */
                    public resource: string;

                    /** GetIamPolicyInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotRequest): google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotRequest;

                    /**
                     * Encodes the specified GetIamPolicyInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotRequest;

                    /**
                     * Decodes a GetIamPolicyInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotRequest;

                    /**
                     * Verifies a GetIamPolicyInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInterconnectAttachmentGroupRequest. */
                interface IGetIamPolicyInterconnectAttachmentGroupRequest {

                    /** GetIamPolicyInterconnectAttachmentGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInterconnectAttachmentGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyInterconnectAttachmentGroupRequest. */
                class GetIamPolicyInterconnectAttachmentGroupRequest implements IGetIamPolicyInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new GetIamPolicyInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyInterconnectAttachmentGroupRequest);

                    /** GetIamPolicyInterconnectAttachmentGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** GetIamPolicyInterconnectAttachmentGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyInterconnectAttachmentGroupRequest): google.cloud.compute.v1beta.GetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicyInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a GetIamPolicyInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a GetIamPolicyInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyInterconnectGroupRequest. */
                interface IGetIamPolicyInterconnectGroupRequest {

                    /** GetIamPolicyInterconnectGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInterconnectGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicyInterconnectGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyInterconnectGroupRequest. */
                class GetIamPolicyInterconnectGroupRequest implements IGetIamPolicyInterconnectGroupRequest {

                    /**
                     * Constructs a new GetIamPolicyInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyInterconnectGroupRequest);

                    /** GetIamPolicyInterconnectGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyInterconnectGroupRequest project. */
                    public project: string;

                    /** GetIamPolicyInterconnectGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyInterconnectGroupRequest): google.cloud.compute.v1beta.GetIamPolicyInterconnectGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicyInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyInterconnectGroupRequest;

                    /**
                     * Decodes a GetIamPolicyInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyInterconnectGroupRequest;

                    /**
                     * Verifies a GetIamPolicyInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyLicenseRequest. */
                interface IGetIamPolicyLicenseRequest {

                    /** GetIamPolicyLicenseRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyLicenseRequest project */
                    project?: (string|null);

                    /** GetIamPolicyLicenseRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyLicenseRequest. */
                class GetIamPolicyLicenseRequest implements IGetIamPolicyLicenseRequest {

                    /**
                     * Constructs a new GetIamPolicyLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyLicenseRequest);

                    /** GetIamPolicyLicenseRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyLicenseRequest project. */
                    public project: string;

                    /** GetIamPolicyLicenseRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyLicenseRequest): google.cloud.compute.v1beta.GetIamPolicyLicenseRequest;

                    /**
                     * Encodes the specified GetIamPolicyLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyLicenseRequest.verify|verify} messages.
                     * @param message GetIamPolicyLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyLicenseRequest.verify|verify} messages.
                     * @param message GetIamPolicyLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyLicenseRequest;

                    /**
                     * Decodes a GetIamPolicyLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyLicenseRequest;

                    /**
                     * Verifies a GetIamPolicyLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyLicenseRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyLicenseRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyMachineImageRequest. */
                interface IGetIamPolicyMachineImageRequest {

                    /** GetIamPolicyMachineImageRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyMachineImageRequest project */
                    project?: (string|null);

                    /** GetIamPolicyMachineImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyMachineImageRequest. */
                class GetIamPolicyMachineImageRequest implements IGetIamPolicyMachineImageRequest {

                    /**
                     * Constructs a new GetIamPolicyMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyMachineImageRequest);

                    /** GetIamPolicyMachineImageRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyMachineImageRequest project. */
                    public project: string;

                    /** GetIamPolicyMachineImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyMachineImageRequest): google.cloud.compute.v1beta.GetIamPolicyMachineImageRequest;

                    /**
                     * Encodes the specified GetIamPolicyMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyMachineImageRequest.verify|verify} messages.
                     * @param message GetIamPolicyMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyMachineImageRequest.verify|verify} messages.
                     * @param message GetIamPolicyMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyMachineImageRequest;

                    /**
                     * Decodes a GetIamPolicyMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyMachineImageRequest;

                    /**
                     * Verifies a GetIamPolicyMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyMachineImageRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyMachineImageRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyNetworkAttachmentRequest. */
                interface IGetIamPolicyNetworkAttachmentRequest {

                    /** GetIamPolicyNetworkAttachmentRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** GetIamPolicyNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** GetIamPolicyNetworkAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyNetworkAttachmentRequest. */
                class GetIamPolicyNetworkAttachmentRequest implements IGetIamPolicyNetworkAttachmentRequest {

                    /**
                     * Constructs a new GetIamPolicyNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyNetworkAttachmentRequest);

                    /** GetIamPolicyNetworkAttachmentRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNetworkAttachmentRequest project. */
                    public project: string;

                    /** GetIamPolicyNetworkAttachmentRequest region. */
                    public region: string;

                    /** GetIamPolicyNetworkAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyNetworkAttachmentRequest): google.cloud.compute.v1beta.GetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Encodes the specified GetIamPolicyNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyNetworkAttachmentRequest.verify|verify} messages.
                     * @param message GetIamPolicyNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyNetworkAttachmentRequest.verify|verify} messages.
                     * @param message GetIamPolicyNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Decodes a GetIamPolicyNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Verifies a GetIamPolicyNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyNetworkFirewallPolicyRequest. */
                interface IGetIamPolicyNetworkFirewallPolicyRequest {

                    /** GetIamPolicyNetworkFirewallPolicyRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetIamPolicyNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyNetworkFirewallPolicyRequest. */
                class GetIamPolicyNetworkFirewallPolicyRequest implements IGetIamPolicyNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetIamPolicyNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyNetworkFirewallPolicyRequest);

                    /** GetIamPolicyNetworkFirewallPolicyRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetIamPolicyNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetIamPolicyNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetIamPolicyNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetIamPolicyNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyNodeGroupRequest. */
                interface IGetIamPolicyNodeGroupRequest {

                    /** GetIamPolicyNodeGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNodeGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicyNodeGroupRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyNodeGroupRequest. */
                class GetIamPolicyNodeGroupRequest implements IGetIamPolicyNodeGroupRequest {

                    /**
                     * Constructs a new GetIamPolicyNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyNodeGroupRequest);

                    /** GetIamPolicyNodeGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNodeGroupRequest project. */
                    public project: string;

                    /** GetIamPolicyNodeGroupRequest resource. */
                    public resource: string;

                    /** GetIamPolicyNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyNodeGroupRequest): google.cloud.compute.v1beta.GetIamPolicyNodeGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicyNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyNodeGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyNodeGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyNodeGroupRequest;

                    /**
                     * Decodes a GetIamPolicyNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyNodeGroupRequest;

                    /**
                     * Verifies a GetIamPolicyNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyNodeGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyNodeTemplateRequest. */
                interface IGetIamPolicyNodeTemplateRequest {

                    /** GetIamPolicyNodeTemplateRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNodeTemplateRequest project */
                    project?: (string|null);

                    /** GetIamPolicyNodeTemplateRequest region */
                    region?: (string|null);

                    /** GetIamPolicyNodeTemplateRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyNodeTemplateRequest. */
                class GetIamPolicyNodeTemplateRequest implements IGetIamPolicyNodeTemplateRequest {

                    /**
                     * Constructs a new GetIamPolicyNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyNodeTemplateRequest);

                    /** GetIamPolicyNodeTemplateRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyNodeTemplateRequest project. */
                    public project: string;

                    /** GetIamPolicyNodeTemplateRequest region. */
                    public region: string;

                    /** GetIamPolicyNodeTemplateRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyNodeTemplateRequest): google.cloud.compute.v1beta.GetIamPolicyNodeTemplateRequest;

                    /**
                     * Encodes the specified GetIamPolicyNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyNodeTemplateRequest.verify|verify} messages.
                     * @param message GetIamPolicyNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyNodeTemplateRequest.verify|verify} messages.
                     * @param message GetIamPolicyNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyNodeTemplateRequest;

                    /**
                     * Decodes a GetIamPolicyNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyNodeTemplateRequest;

                    /**
                     * Verifies a GetIamPolicyNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyNodeTemplateRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionBackendBucketRequest. */
                interface IGetIamPolicyRegionBackendBucketRequest {

                    /** GetIamPolicyRegionBackendBucketRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionBackendBucketRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionBackendBucketRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionBackendBucketRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionBackendBucketRequest. */
                class GetIamPolicyRegionBackendBucketRequest implements IGetIamPolicyRegionBackendBucketRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendBucketRequest);

                    /** GetIamPolicyRegionBackendBucketRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionBackendBucketRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionBackendBucketRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionBackendBucketRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendBucketRequest): google.cloud.compute.v1beta.GetIamPolicyRegionBackendBucketRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionBackendBucketRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionBackendBucketRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyRegionBackendBucketRequest;

                    /**
                     * Decodes a GetIamPolicyRegionBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyRegionBackendBucketRequest;

                    /**
                     * Verifies a GetIamPolicyRegionBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyRegionBackendBucketRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyRegionBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionBackendServiceRequest. */
                interface IGetIamPolicyRegionBackendServiceRequest {

                    /** GetIamPolicyRegionBackendServiceRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionBackendServiceRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionBackendServiceRequest. */
                class GetIamPolicyRegionBackendServiceRequest implements IGetIamPolicyRegionBackendServiceRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendServiceRequest);

                    /** GetIamPolicyRegionBackendServiceRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionBackendServiceRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionBackendServiceRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionBackendServiceRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendServiceRequest): google.cloud.compute.v1beta.GetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Decodes a GetIamPolicyRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Verifies a GetIamPolicyRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionDiskRequest. */
                interface IGetIamPolicyRegionDiskRequest {

                    /** GetIamPolicyRegionDiskRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionDiskRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionDiskRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionDiskRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionDiskRequest. */
                class GetIamPolicyRegionDiskRequest implements IGetIamPolicyRegionDiskRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionDiskRequest);

                    /** GetIamPolicyRegionDiskRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionDiskRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionDiskRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionDiskRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionDiskRequest): google.cloud.compute.v1beta.GetIamPolicyRegionDiskRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionDiskRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionDiskRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyRegionDiskRequest;

                    /**
                     * Decodes a GetIamPolicyRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyRegionDiskRequest;

                    /**
                     * Verifies a GetIamPolicyRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyRegionDiskRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionInstantSnapshotGroupRequest. */
                interface IGetIamPolicyRegionInstantSnapshotGroupRequest {

                    /** GetIamPolicyRegionInstantSnapshotGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionInstantSnapshotGroupRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionInstantSnapshotGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionInstantSnapshotGroupRequest. */
                class GetIamPolicyRegionInstantSnapshotGroupRequest implements IGetIamPolicyRegionInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotGroupRequest);

                    /** GetIamPolicyRegionInstantSnapshotGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionInstantSnapshotGroupRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionInstantSnapshotGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotGroupRequest): google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotGroupRequest;

                    /**
                     * Decodes a GetIamPolicyRegionInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotGroupRequest;

                    /**
                     * Verifies a GetIamPolicyRegionInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionInstantSnapshotRequest. */
                interface IGetIamPolicyRegionInstantSnapshotRequest {

                    /** GetIamPolicyRegionInstantSnapshotRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionInstantSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionInstantSnapshotRequest. */
                class GetIamPolicyRegionInstantSnapshotRequest implements IGetIamPolicyRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotRequest);

                    /** GetIamPolicyRegionInstantSnapshotRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionInstantSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotRequest): google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Decodes a GetIamPolicyRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Verifies a GetIamPolicyRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionNetworkFirewallPolicyRequest. */
                interface IGetIamPolicyRegionNetworkFirewallPolicyRequest {

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionNetworkFirewallPolicyRequest. */
                class GetIamPolicyRegionNetworkFirewallPolicyRequest implements IGetIamPolicyRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionNetworkFirewallPolicyRequest);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetIamPolicyRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetIamPolicyRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyRegionSnapshotRequest. */
                interface IGetIamPolicyRegionSnapshotRequest {

                    /** GetIamPolicyRegionSnapshotRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionSnapshotRequest project */
                    project?: (string|null);

                    /** GetIamPolicyRegionSnapshotRequest region */
                    region?: (string|null);

                    /** GetIamPolicyRegionSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyRegionSnapshotRequest. */
                class GetIamPolicyRegionSnapshotRequest implements IGetIamPolicyRegionSnapshotRequest {

                    /**
                     * Constructs a new GetIamPolicyRegionSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionSnapshotRequest);

                    /** GetIamPolicyRegionSnapshotRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyRegionSnapshotRequest project. */
                    public project: string;

                    /** GetIamPolicyRegionSnapshotRequest region. */
                    public region: string;

                    /** GetIamPolicyRegionSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyRegionSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyRegionSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyRegionSnapshotRequest): google.cloud.compute.v1beta.GetIamPolicyRegionSnapshotRequest;

                    /**
                     * Encodes the specified GetIamPolicyRegionSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyRegionSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyRegionSnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicyRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyRegionSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyRegionSnapshotRequest;

                    /**
                     * Decodes a GetIamPolicyRegionSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyRegionSnapshotRequest;

                    /**
                     * Verifies a GetIamPolicyRegionSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyRegionSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyRegionSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyRegionSnapshotRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyRegionSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyRegionSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyRegionSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyRegionSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyRegionSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyReservationBlockRequest. */
                interface IGetIamPolicyReservationBlockRequest {

                    /** GetIamPolicyReservationBlockRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** GetIamPolicyReservationBlockRequest project */
                    project?: (string|null);

                    /** GetIamPolicyReservationBlockRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyReservationBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyReservationBlockRequest. */
                class GetIamPolicyReservationBlockRequest implements IGetIamPolicyReservationBlockRequest {

                    /**
                     * Constructs a new GetIamPolicyReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyReservationBlockRequest);

                    /** GetIamPolicyReservationBlockRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationBlockRequest parentResource. */
                    public parentResource: string;

                    /** GetIamPolicyReservationBlockRequest project. */
                    public project: string;

                    /** GetIamPolicyReservationBlockRequest resource. */
                    public resource: string;

                    /** GetIamPolicyReservationBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyReservationBlockRequest): google.cloud.compute.v1beta.GetIamPolicyReservationBlockRequest;

                    /**
                     * Encodes the specified GetIamPolicyReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyReservationBlockRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyReservationBlockRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyReservationBlockRequest;

                    /**
                     * Decodes a GetIamPolicyReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyReservationBlockRequest;

                    /**
                     * Verifies a GetIamPolicyReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyReservationBlockRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyReservationRequest. */
                interface IGetIamPolicyReservationRequest {

                    /** GetIamPolicyReservationRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationRequest project */
                    project?: (string|null);

                    /** GetIamPolicyReservationRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyReservationRequest. */
                class GetIamPolicyReservationRequest implements IGetIamPolicyReservationRequest {

                    /**
                     * Constructs a new GetIamPolicyReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyReservationRequest);

                    /** GetIamPolicyReservationRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationRequest project. */
                    public project: string;

                    /** GetIamPolicyReservationRequest resource. */
                    public resource: string;

                    /** GetIamPolicyReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyReservationRequest): google.cloud.compute.v1beta.GetIamPolicyReservationRequest;

                    /**
                     * Encodes the specified GetIamPolicyReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyReservationRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyReservationRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyReservationRequest;

                    /**
                     * Decodes a GetIamPolicyReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyReservationRequest;

                    /**
                     * Verifies a GetIamPolicyReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyReservationRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyReservationRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyReservationSubBlockRequest. */
                interface IGetIamPolicyReservationSubBlockRequest {

                    /** GetIamPolicyReservationSubBlockRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationSubBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** GetIamPolicyReservationSubBlockRequest project */
                    project?: (string|null);

                    /** GetIamPolicyReservationSubBlockRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyReservationSubBlockRequest. */
                class GetIamPolicyReservationSubBlockRequest implements IGetIamPolicyReservationSubBlockRequest {

                    /**
                     * Constructs a new GetIamPolicyReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyReservationSubBlockRequest);

                    /** GetIamPolicyReservationSubBlockRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyReservationSubBlockRequest parentResource. */
                    public parentResource: string;

                    /** GetIamPolicyReservationSubBlockRequest project. */
                    public project: string;

                    /** GetIamPolicyReservationSubBlockRequest resource. */
                    public resource: string;

                    /** GetIamPolicyReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyReservationSubBlockRequest): google.cloud.compute.v1beta.GetIamPolicyReservationSubBlockRequest;

                    /**
                     * Encodes the specified GetIamPolicyReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetIamPolicyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyReservationSubBlockRequest;

                    /**
                     * Decodes a GetIamPolicyReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyReservationSubBlockRequest;

                    /**
                     * Verifies a GetIamPolicyReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyResourcePolicyRequest. */
                interface IGetIamPolicyResourcePolicyRequest {

                    /** GetIamPolicyResourcePolicyRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyResourcePolicyRequest project */
                    project?: (string|null);

                    /** GetIamPolicyResourcePolicyRequest region */
                    region?: (string|null);

                    /** GetIamPolicyResourcePolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyResourcePolicyRequest. */
                class GetIamPolicyResourcePolicyRequest implements IGetIamPolicyResourcePolicyRequest {

                    /**
                     * Constructs a new GetIamPolicyResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyResourcePolicyRequest);

                    /** GetIamPolicyResourcePolicyRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyResourcePolicyRequest project. */
                    public project: string;

                    /** GetIamPolicyResourcePolicyRequest region. */
                    public region: string;

                    /** GetIamPolicyResourcePolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyResourcePolicyRequest): google.cloud.compute.v1beta.GetIamPolicyResourcePolicyRequest;

                    /**
                     * Encodes the specified GetIamPolicyResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyResourcePolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyResourcePolicyRequest.verify|verify} messages.
                     * @param message GetIamPolicyResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyResourcePolicyRequest;

                    /**
                     * Decodes a GetIamPolicyResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyResourcePolicyRequest;

                    /**
                     * Verifies a GetIamPolicyResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyResourcePolicyRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyServiceAttachmentRequest. */
                interface IGetIamPolicyServiceAttachmentRequest {

                    /** GetIamPolicyServiceAttachmentRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyServiceAttachmentRequest project */
                    project?: (string|null);

                    /** GetIamPolicyServiceAttachmentRequest region */
                    region?: (string|null);

                    /** GetIamPolicyServiceAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicyServiceAttachmentRequest. */
                class GetIamPolicyServiceAttachmentRequest implements IGetIamPolicyServiceAttachmentRequest {

                    /**
                     * Constructs a new GetIamPolicyServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyServiceAttachmentRequest);

                    /** GetIamPolicyServiceAttachmentRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyServiceAttachmentRequest project. */
                    public project: string;

                    /** GetIamPolicyServiceAttachmentRequest region. */
                    public region: string;

                    /** GetIamPolicyServiceAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicyServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyServiceAttachmentRequest): google.cloud.compute.v1beta.GetIamPolicyServiceAttachmentRequest;

                    /**
                     * Encodes the specified GetIamPolicyServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyServiceAttachmentRequest.verify|verify} messages.
                     * @param message GetIamPolicyServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyServiceAttachmentRequest.verify|verify} messages.
                     * @param message GetIamPolicyServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyServiceAttachmentRequest;

                    /**
                     * Decodes a GetIamPolicyServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyServiceAttachmentRequest;

                    /**
                     * Verifies a GetIamPolicyServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicySnapshotGroupRequest. */
                interface IGetIamPolicySnapshotGroupRequest {

                    /** GetIamPolicySnapshotGroupRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySnapshotGroupRequest project */
                    project?: (string|null);

                    /** GetIamPolicySnapshotGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicySnapshotGroupRequest. */
                class GetIamPolicySnapshotGroupRequest implements IGetIamPolicySnapshotGroupRequest {

                    /**
                     * Constructs a new GetIamPolicySnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicySnapshotGroupRequest);

                    /** GetIamPolicySnapshotGroupRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySnapshotGroupRequest project. */
                    public project: string;

                    /** GetIamPolicySnapshotGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicySnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicySnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicySnapshotGroupRequest): google.cloud.compute.v1beta.GetIamPolicySnapshotGroupRequest;

                    /**
                     * Encodes the specified GetIamPolicySnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicySnapshotGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicySnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicySnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicySnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicySnapshotGroupRequest.verify|verify} messages.
                     * @param message GetIamPolicySnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicySnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicySnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicySnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicySnapshotGroupRequest;

                    /**
                     * Decodes a GetIamPolicySnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicySnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicySnapshotGroupRequest;

                    /**
                     * Verifies a GetIamPolicySnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicySnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicySnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicySnapshotGroupRequest;

                    /**
                     * Creates a plain object from a GetIamPolicySnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicySnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicySnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicySnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicySnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicySnapshotRequest. */
                interface IGetIamPolicySnapshotRequest {

                    /** GetIamPolicySnapshotRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySnapshotRequest project */
                    project?: (string|null);

                    /** GetIamPolicySnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicySnapshotRequest. */
                class GetIamPolicySnapshotRequest implements IGetIamPolicySnapshotRequest {

                    /**
                     * Constructs a new GetIamPolicySnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicySnapshotRequest);

                    /** GetIamPolicySnapshotRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySnapshotRequest project. */
                    public project: string;

                    /** GetIamPolicySnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicySnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicySnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicySnapshotRequest): google.cloud.compute.v1beta.GetIamPolicySnapshotRequest;

                    /**
                     * Encodes the specified GetIamPolicySnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicySnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicySnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicySnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicySnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicySnapshotRequest.verify|verify} messages.
                     * @param message GetIamPolicySnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicySnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicySnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicySnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicySnapshotRequest;

                    /**
                     * Decodes a GetIamPolicySnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicySnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicySnapshotRequest;

                    /**
                     * Verifies a GetIamPolicySnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicySnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicySnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicySnapshotRequest;

                    /**
                     * Creates a plain object from a GetIamPolicySnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicySnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicySnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicySnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicySnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicyStoragePoolRequest. */
                interface IGetIamPolicyStoragePoolRequest {

                    /** GetIamPolicyStoragePoolRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyStoragePoolRequest project */
                    project?: (string|null);

                    /** GetIamPolicyStoragePoolRequest resource */
                    resource?: (string|null);

                    /** GetIamPolicyStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetIamPolicyStoragePoolRequest. */
                class GetIamPolicyStoragePoolRequest implements IGetIamPolicyStoragePoolRequest {

                    /**
                     * Constructs a new GetIamPolicyStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicyStoragePoolRequest);

                    /** GetIamPolicyStoragePoolRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicyStoragePoolRequest project. */
                    public project: string;

                    /** GetIamPolicyStoragePoolRequest resource. */
                    public resource: string;

                    /** GetIamPolicyStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetIamPolicyStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicyStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicyStoragePoolRequest): google.cloud.compute.v1beta.GetIamPolicyStoragePoolRequest;

                    /**
                     * Encodes the specified GetIamPolicyStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyStoragePoolRequest.verify|verify} messages.
                     * @param message GetIamPolicyStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicyStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicyStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicyStoragePoolRequest.verify|verify} messages.
                     * @param message GetIamPolicyStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicyStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicyStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicyStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicyStoragePoolRequest;

                    /**
                     * Decodes a GetIamPolicyStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicyStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicyStoragePoolRequest;

                    /**
                     * Verifies a GetIamPolicyStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicyStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicyStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicyStoragePoolRequest;

                    /**
                     * Creates a plain object from a GetIamPolicyStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicyStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicyStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicyStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicyStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetIamPolicySubnetworkRequest. */
                interface IGetIamPolicySubnetworkRequest {

                    /** GetIamPolicySubnetworkRequest optionsRequestedPolicyVersion */
                    optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySubnetworkRequest project */
                    project?: (string|null);

                    /** GetIamPolicySubnetworkRequest region */
                    region?: (string|null);

                    /** GetIamPolicySubnetworkRequest resource */
                    resource?: (string|null);
                }

                /** Represents a GetIamPolicySubnetworkRequest. */
                class GetIamPolicySubnetworkRequest implements IGetIamPolicySubnetworkRequest {

                    /**
                     * Constructs a new GetIamPolicySubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetIamPolicySubnetworkRequest);

                    /** GetIamPolicySubnetworkRequest optionsRequestedPolicyVersion. */
                    public optionsRequestedPolicyVersion?: (number|null);

                    /** GetIamPolicySubnetworkRequest project. */
                    public project: string;

                    /** GetIamPolicySubnetworkRequest region. */
                    public region: string;

                    /** GetIamPolicySubnetworkRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new GetIamPolicySubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetIamPolicySubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetIamPolicySubnetworkRequest): google.cloud.compute.v1beta.GetIamPolicySubnetworkRequest;

                    /**
                     * Encodes the specified GetIamPolicySubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicySubnetworkRequest.verify|verify} messages.
                     * @param message GetIamPolicySubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetIamPolicySubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetIamPolicySubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetIamPolicySubnetworkRequest.verify|verify} messages.
                     * @param message GetIamPolicySubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetIamPolicySubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetIamPolicySubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetIamPolicySubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetIamPolicySubnetworkRequest;

                    /**
                     * Decodes a GetIamPolicySubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetIamPolicySubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetIamPolicySubnetworkRequest;

                    /**
                     * Verifies a GetIamPolicySubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetIamPolicySubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetIamPolicySubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetIamPolicySubnetworkRequest;

                    /**
                     * Creates a plain object from a GetIamPolicySubnetworkRequest message. Also converts values to other types if specified.
                     * @param message GetIamPolicySubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetIamPolicySubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetIamPolicySubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetIamPolicySubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetImageFamilyViewRequest. */
                interface IGetImageFamilyViewRequest {

                    /** GetImageFamilyViewRequest family */
                    family?: (string|null);

                    /** GetImageFamilyViewRequest project */
                    project?: (string|null);

                    /** GetImageFamilyViewRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetImageFamilyViewRequest. */
                class GetImageFamilyViewRequest implements IGetImageFamilyViewRequest {

                    /**
                     * Constructs a new GetImageFamilyViewRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetImageFamilyViewRequest);

                    /** GetImageFamilyViewRequest family. */
                    public family: string;

                    /** GetImageFamilyViewRequest project. */
                    public project: string;

                    /** GetImageFamilyViewRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetImageFamilyViewRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetImageFamilyViewRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetImageFamilyViewRequest): google.cloud.compute.v1beta.GetImageFamilyViewRequest;

                    /**
                     * Encodes the specified GetImageFamilyViewRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetImageFamilyViewRequest.verify|verify} messages.
                     * @param message GetImageFamilyViewRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetImageFamilyViewRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetImageFamilyViewRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetImageFamilyViewRequest.verify|verify} messages.
                     * @param message GetImageFamilyViewRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetImageFamilyViewRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetImageFamilyViewRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetImageFamilyViewRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetImageFamilyViewRequest;

                    /**
                     * Decodes a GetImageFamilyViewRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetImageFamilyViewRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetImageFamilyViewRequest;

                    /**
                     * Verifies a GetImageFamilyViewRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetImageFamilyViewRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetImageFamilyViewRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetImageFamilyViewRequest;

                    /**
                     * Creates a plain object from a GetImageFamilyViewRequest message. Also converts values to other types if specified.
                     * @param message GetImageFamilyViewRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetImageFamilyViewRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetImageFamilyViewRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetImageFamilyViewRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetImageRequest. */
                interface IGetImageRequest {

                    /** GetImageRequest image */
                    image?: (string|null);

                    /** GetImageRequest project */
                    project?: (string|null);
                }

                /** Represents a GetImageRequest. */
                class GetImageRequest implements IGetImageRequest {

                    /**
                     * Constructs a new GetImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetImageRequest);

                    /** GetImageRequest image. */
                    public image: string;

                    /** GetImageRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetImageRequest): google.cloud.compute.v1beta.GetImageRequest;

                    /**
                     * Encodes the specified GetImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetImageRequest.verify|verify} messages.
                     * @param message GetImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetImageRequest.verify|verify} messages.
                     * @param message GetImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetImageRequest;

                    /**
                     * Decodes a GetImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetImageRequest;

                    /**
                     * Verifies a GetImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetImageRequest;

                    /**
                     * Creates a plain object from a GetImageRequest message. Also converts values to other types if specified.
                     * @param message GetImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceGroupManagerRequest. */
                interface IGetInstanceGroupManagerRequest {

                    /** GetInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** GetInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** GetInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceGroupManagerRequest. */
                class GetInstanceGroupManagerRequest implements IGetInstanceGroupManagerRequest {

                    /**
                     * Constructs a new GetInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInstanceGroupManagerRequest);

                    /** GetInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** GetInstanceGroupManagerRequest project. */
                    public project: string;

                    /** GetInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInstanceGroupManagerRequest): google.cloud.compute.v1beta.GetInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified GetInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInstanceGroupManagerRequest;

                    /**
                     * Decodes a GetInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInstanceGroupManagerRequest;

                    /**
                     * Verifies a GetInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a GetInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceGroupManagerResizeRequestRequest. */
                interface IGetInstanceGroupManagerResizeRequestRequest {

                    /** GetInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** GetInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** GetInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);

                    /** GetInstanceGroupManagerResizeRequestRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceGroupManagerResizeRequestRequest. */
                class GetInstanceGroupManagerResizeRequestRequest implements IGetInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new GetInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInstanceGroupManagerResizeRequestRequest);

                    /** GetInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** GetInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** GetInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /** GetInstanceGroupManagerResizeRequestRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1beta.GetInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified GetInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message GetInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message GetInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a GetInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a GetInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a GetInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceGroupRequest. */
                interface IGetInstanceGroupRequest {

                    /** GetInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** GetInstanceGroupRequest project */
                    project?: (string|null);

                    /** GetInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceGroupRequest. */
                class GetInstanceGroupRequest implements IGetInstanceGroupRequest {

                    /**
                     * Constructs a new GetInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInstanceGroupRequest);

                    /** GetInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** GetInstanceGroupRequest project. */
                    public project: string;

                    /** GetInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInstanceGroupRequest): google.cloud.compute.v1beta.GetInstanceGroupRequest;

                    /**
                     * Encodes the specified GetInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceGroupRequest.verify|verify} messages.
                     * @param message GetInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceGroupRequest.verify|verify} messages.
                     * @param message GetInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInstanceGroupRequest;

                    /**
                     * Decodes a GetInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInstanceGroupRequest;

                    /**
                     * Verifies a GetInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInstanceGroupRequest;

                    /**
                     * Creates a plain object from a GetInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceRequest. */
                interface IGetInstanceRequest {

                    /** GetInstanceRequest instance */
                    instance?: (string|null);

                    /** GetInstanceRequest project */
                    project?: (string|null);

                    /** GetInstanceRequest view */
                    view?: (string|null);

                    /** GetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceRequest. */
                class GetInstanceRequest implements IGetInstanceRequest {

                    /**
                     * Constructs a new GetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInstanceRequest);

                    /** GetInstanceRequest instance. */
                    public instance: string;

                    /** GetInstanceRequest project. */
                    public project: string;

                    /** GetInstanceRequest view. */
                    public view?: (string|null);

                    /** GetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInstanceRequest): google.cloud.compute.v1beta.GetInstanceRequest;

                    /**
                     * Encodes the specified GetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceRequest.verify|verify} messages.
                     * @param message GetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceRequest.verify|verify} messages.
                     * @param message GetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInstanceRequest;

                    /**
                     * Decodes a GetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInstanceRequest;

                    /**
                     * Verifies a GetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInstanceRequest;

                    /**
                     * Creates a plain object from a GetInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetInstanceRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        BASIC = 62970894,
                        FULL = 2169487,
                        INSTANCE_VIEW_UNSPECIFIED = 8444647
                    }
                }

                /** Properties of a GetInstanceSettingRequest. */
                interface IGetInstanceSettingRequest {

                    /** GetInstanceSettingRequest project */
                    project?: (string|null);

                    /** GetInstanceSettingRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstanceSettingRequest. */
                class GetInstanceSettingRequest implements IGetInstanceSettingRequest {

                    /**
                     * Constructs a new GetInstanceSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInstanceSettingRequest);

                    /** GetInstanceSettingRequest project. */
                    public project: string;

                    /** GetInstanceSettingRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstanceSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInstanceSettingRequest): google.cloud.compute.v1beta.GetInstanceSettingRequest;

                    /**
                     * Encodes the specified GetInstanceSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceSettingRequest.verify|verify} messages.
                     * @param message GetInstanceSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInstanceSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceSettingRequest.verify|verify} messages.
                     * @param message GetInstanceSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInstanceSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInstanceSettingRequest;

                    /**
                     * Decodes a GetInstanceSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInstanceSettingRequest;

                    /**
                     * Verifies a GetInstanceSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInstanceSettingRequest;

                    /**
                     * Creates a plain object from a GetInstanceSettingRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInstanceSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstanceTemplateRequest. */
                interface IGetInstanceTemplateRequest {

                    /** GetInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** GetInstanceTemplateRequest project */
                    project?: (string|null);

                    /** GetInstanceTemplateRequest view */
                    view?: (string|null);
                }

                /** Represents a GetInstanceTemplateRequest. */
                class GetInstanceTemplateRequest implements IGetInstanceTemplateRequest {

                    /**
                     * Constructs a new GetInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInstanceTemplateRequest);

                    /** GetInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate: string;

                    /** GetInstanceTemplateRequest project. */
                    public project: string;

                    /** GetInstanceTemplateRequest view. */
                    public view?: (string|null);

                    /**
                     * Creates a new GetInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInstanceTemplateRequest): google.cloud.compute.v1beta.GetInstanceTemplateRequest;

                    /**
                     * Encodes the specified GetInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInstanceTemplateRequest;

                    /**
                     * Decodes a GetInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInstanceTemplateRequest;

                    /**
                     * Verifies a GetInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a GetInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetInstanceTemplateRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        BASIC = 62970894,
                        FULL = 2169487,
                        INSTANCE_VIEW_UNSPECIFIED = 8444647
                    }
                }

                /** Properties of a GetInstantSnapshotGroupRequest. */
                interface IGetInstantSnapshotGroupRequest {

                    /** GetInstantSnapshotGroupRequest instantSnapshotGroup */
                    instantSnapshotGroup?: (string|null);

                    /** GetInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** GetInstantSnapshotGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstantSnapshotGroupRequest. */
                class GetInstantSnapshotGroupRequest implements IGetInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new GetInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInstantSnapshotGroupRequest);

                    /** GetInstantSnapshotGroupRequest instantSnapshotGroup. */
                    public instantSnapshotGroup: string;

                    /** GetInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** GetInstantSnapshotGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInstantSnapshotGroupRequest): google.cloud.compute.v1beta.GetInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified GetInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInstantSnapshotGroupRequest;

                    /**
                     * Decodes a GetInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInstantSnapshotGroupRequest;

                    /**
                     * Verifies a GetInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a GetInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message GetInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInstantSnapshotRequest. */
                interface IGetInstantSnapshotRequest {

                    /** GetInstantSnapshotRequest instantSnapshot */
                    instantSnapshot?: (string|null);

                    /** GetInstantSnapshotRequest project */
                    project?: (string|null);

                    /** GetInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetInstantSnapshotRequest. */
                class GetInstantSnapshotRequest implements IGetInstantSnapshotRequest {

                    /**
                     * Constructs a new GetInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInstantSnapshotRequest);

                    /** GetInstantSnapshotRequest instantSnapshot. */
                    public instantSnapshot: string;

                    /** GetInstantSnapshotRequest project. */
                    public project: string;

                    /** GetInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInstantSnapshotRequest): google.cloud.compute.v1beta.GetInstantSnapshotRequest;

                    /**
                     * Encodes the specified GetInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInstantSnapshotRequest;

                    /**
                     * Decodes a GetInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInstantSnapshotRequest;

                    /**
                     * Verifies a GetInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a GetInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectAttachmentGroupRequest. */
                interface IGetInterconnectAttachmentGroupRequest {

                    /** GetInterconnectAttachmentGroupRequest interconnectAttachmentGroup */
                    interconnectAttachmentGroup?: (string|null);

                    /** GetInterconnectAttachmentGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectAttachmentGroupRequest. */
                class GetInterconnectAttachmentGroupRequest implements IGetInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new GetInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInterconnectAttachmentGroupRequest);

                    /** GetInterconnectAttachmentGroupRequest interconnectAttachmentGroup. */
                    public interconnectAttachmentGroup: string;

                    /** GetInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInterconnectAttachmentGroupRequest): google.cloud.compute.v1beta.GetInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified GetInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a GetInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a GetInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a GetInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectAttachmentRequest. */
                interface IGetInterconnectAttachmentRequest {

                    /** GetInterconnectAttachmentRequest interconnectAttachment */
                    interconnectAttachment?: (string|null);

                    /** GetInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** GetInterconnectAttachmentRequest region */
                    region?: (string|null);
                }

                /** Represents a GetInterconnectAttachmentRequest. */
                class GetInterconnectAttachmentRequest implements IGetInterconnectAttachmentRequest {

                    /**
                     * Constructs a new GetInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInterconnectAttachmentRequest);

                    /** GetInterconnectAttachmentRequest interconnectAttachment. */
                    public interconnectAttachment: string;

                    /** GetInterconnectAttachmentRequest project. */
                    public project: string;

                    /** GetInterconnectAttachmentRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInterconnectAttachmentRequest): google.cloud.compute.v1beta.GetInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified GetInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message GetInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message GetInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInterconnectAttachmentRequest;

                    /**
                     * Decodes a GetInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInterconnectAttachmentRequest;

                    /**
                     * Verifies a GetInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a GetInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectGroupRequest. */
                interface IGetInterconnectGroupRequest {

                    /** GetInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** GetInterconnectGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectGroupRequest. */
                class GetInterconnectGroupRequest implements IGetInterconnectGroupRequest {

                    /**
                     * Constructs a new GetInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInterconnectGroupRequest);

                    /** GetInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** GetInterconnectGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInterconnectGroupRequest): google.cloud.compute.v1beta.GetInterconnectGroupRequest;

                    /**
                     * Encodes the specified GetInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInterconnectGroupRequest;

                    /**
                     * Decodes a GetInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInterconnectGroupRequest;

                    /**
                     * Verifies a GetInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a GetInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectLocationRequest. */
                interface IGetInterconnectLocationRequest {

                    /** GetInterconnectLocationRequest interconnectLocation */
                    interconnectLocation?: (string|null);

                    /** GetInterconnectLocationRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectLocationRequest. */
                class GetInterconnectLocationRequest implements IGetInterconnectLocationRequest {

                    /**
                     * Constructs a new GetInterconnectLocationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInterconnectLocationRequest);

                    /** GetInterconnectLocationRequest interconnectLocation. */
                    public interconnectLocation: string;

                    /** GetInterconnectLocationRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectLocationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectLocationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInterconnectLocationRequest): google.cloud.compute.v1beta.GetInterconnectLocationRequest;

                    /**
                     * Encodes the specified GetInterconnectLocationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectLocationRequest.verify|verify} messages.
                     * @param message GetInterconnectLocationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInterconnectLocationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectLocationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectLocationRequest.verify|verify} messages.
                     * @param message GetInterconnectLocationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInterconnectLocationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectLocationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectLocationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInterconnectLocationRequest;

                    /**
                     * Decodes a GetInterconnectLocationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectLocationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInterconnectLocationRequest;

                    /**
                     * Verifies a GetInterconnectLocationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectLocationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectLocationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInterconnectLocationRequest;

                    /**
                     * Creates a plain object from a GetInterconnectLocationRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectLocationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInterconnectLocationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectLocationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectLocationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectRemoteLocationRequest. */
                interface IGetInterconnectRemoteLocationRequest {

                    /** GetInterconnectRemoteLocationRequest interconnectRemoteLocation */
                    interconnectRemoteLocation?: (string|null);

                    /** GetInterconnectRemoteLocationRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectRemoteLocationRequest. */
                class GetInterconnectRemoteLocationRequest implements IGetInterconnectRemoteLocationRequest {

                    /**
                     * Constructs a new GetInterconnectRemoteLocationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInterconnectRemoteLocationRequest);

                    /** GetInterconnectRemoteLocationRequest interconnectRemoteLocation. */
                    public interconnectRemoteLocation: string;

                    /** GetInterconnectRemoteLocationRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectRemoteLocationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectRemoteLocationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInterconnectRemoteLocationRequest): google.cloud.compute.v1beta.GetInterconnectRemoteLocationRequest;

                    /**
                     * Encodes the specified GetInterconnectRemoteLocationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectRemoteLocationRequest.verify|verify} messages.
                     * @param message GetInterconnectRemoteLocationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInterconnectRemoteLocationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectRemoteLocationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectRemoteLocationRequest.verify|verify} messages.
                     * @param message GetInterconnectRemoteLocationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInterconnectRemoteLocationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectRemoteLocationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectRemoteLocationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInterconnectRemoteLocationRequest;

                    /**
                     * Decodes a GetInterconnectRemoteLocationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectRemoteLocationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInterconnectRemoteLocationRequest;

                    /**
                     * Verifies a GetInterconnectRemoteLocationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectRemoteLocationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectRemoteLocationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInterconnectRemoteLocationRequest;

                    /**
                     * Creates a plain object from a GetInterconnectRemoteLocationRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectRemoteLocationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInterconnectRemoteLocationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectRemoteLocationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectRemoteLocationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInterconnectRequest. */
                interface IGetInterconnectRequest {

                    /** GetInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** GetInterconnectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetInterconnectRequest. */
                class GetInterconnectRequest implements IGetInterconnectRequest {

                    /**
                     * Constructs a new GetInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetInterconnectRequest);

                    /** GetInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** GetInterconnectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetInterconnectRequest): google.cloud.compute.v1beta.GetInterconnectRequest;

                    /**
                     * Encodes the specified GetInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectRequest.verify|verify} messages.
                     * @param message GetInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetInterconnectRequest.verify|verify} messages.
                     * @param message GetInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetInterconnectRequest;

                    /**
                     * Decodes a GetInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetInterconnectRequest;

                    /**
                     * Verifies a GetInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetInterconnectRequest;

                    /**
                     * Creates a plain object from a GetInterconnectRequest message. Also converts values to other types if specified.
                     * @param message GetInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetLicenseCodeRequest. */
                interface IGetLicenseCodeRequest {

                    /** GetLicenseCodeRequest licenseCode */
                    licenseCode?: (string|null);

                    /** GetLicenseCodeRequest project */
                    project?: (string|null);
                }

                /** Represents a GetLicenseCodeRequest. */
                class GetLicenseCodeRequest implements IGetLicenseCodeRequest {

                    /**
                     * Constructs a new GetLicenseCodeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetLicenseCodeRequest);

                    /** GetLicenseCodeRequest licenseCode. */
                    public licenseCode: string;

                    /** GetLicenseCodeRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetLicenseCodeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetLicenseCodeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetLicenseCodeRequest): google.cloud.compute.v1beta.GetLicenseCodeRequest;

                    /**
                     * Encodes the specified GetLicenseCodeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetLicenseCodeRequest.verify|verify} messages.
                     * @param message GetLicenseCodeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetLicenseCodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetLicenseCodeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetLicenseCodeRequest.verify|verify} messages.
                     * @param message GetLicenseCodeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetLicenseCodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetLicenseCodeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetLicenseCodeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetLicenseCodeRequest;

                    /**
                     * Decodes a GetLicenseCodeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetLicenseCodeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetLicenseCodeRequest;

                    /**
                     * Verifies a GetLicenseCodeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetLicenseCodeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetLicenseCodeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetLicenseCodeRequest;

                    /**
                     * Creates a plain object from a GetLicenseCodeRequest message. Also converts values to other types if specified.
                     * @param message GetLicenseCodeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetLicenseCodeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetLicenseCodeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetLicenseCodeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetLicenseRequest. */
                interface IGetLicenseRequest {

                    /** GetLicenseRequest license */
                    license?: (string|null);

                    /** GetLicenseRequest project */
                    project?: (string|null);
                }

                /** Represents a GetLicenseRequest. */
                class GetLicenseRequest implements IGetLicenseRequest {

                    /**
                     * Constructs a new GetLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetLicenseRequest);

                    /** GetLicenseRequest license. */
                    public license: string;

                    /** GetLicenseRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetLicenseRequest): google.cloud.compute.v1beta.GetLicenseRequest;

                    /**
                     * Encodes the specified GetLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetLicenseRequest.verify|verify} messages.
                     * @param message GetLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetLicenseRequest.verify|verify} messages.
                     * @param message GetLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetLicenseRequest;

                    /**
                     * Decodes a GetLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetLicenseRequest;

                    /**
                     * Verifies a GetLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetLicenseRequest;

                    /**
                     * Creates a plain object from a GetLicenseRequest message. Also converts values to other types if specified.
                     * @param message GetLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetMachineImageRequest. */
                interface IGetMachineImageRequest {

                    /** GetMachineImageRequest machineImage */
                    machineImage?: (string|null);

                    /** GetMachineImageRequest project */
                    project?: (string|null);
                }

                /** Represents a GetMachineImageRequest. */
                class GetMachineImageRequest implements IGetMachineImageRequest {

                    /**
                     * Constructs a new GetMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetMachineImageRequest);

                    /** GetMachineImageRequest machineImage. */
                    public machineImage: string;

                    /** GetMachineImageRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetMachineImageRequest): google.cloud.compute.v1beta.GetMachineImageRequest;

                    /**
                     * Encodes the specified GetMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetMachineImageRequest.verify|verify} messages.
                     * @param message GetMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetMachineImageRequest.verify|verify} messages.
                     * @param message GetMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetMachineImageRequest;

                    /**
                     * Decodes a GetMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetMachineImageRequest;

                    /**
                     * Verifies a GetMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetMachineImageRequest;

                    /**
                     * Creates a plain object from a GetMachineImageRequest message. Also converts values to other types if specified.
                     * @param message GetMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetMachineTypeRequest. */
                interface IGetMachineTypeRequest {

                    /** GetMachineTypeRequest machineType */
                    machineType?: (string|null);

                    /** GetMachineTypeRequest project */
                    project?: (string|null);

                    /** GetMachineTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetMachineTypeRequest. */
                class GetMachineTypeRequest implements IGetMachineTypeRequest {

                    /**
                     * Constructs a new GetMachineTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetMachineTypeRequest);

                    /** GetMachineTypeRequest machineType. */
                    public machineType: string;

                    /** GetMachineTypeRequest project. */
                    public project: string;

                    /** GetMachineTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetMachineTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetMachineTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetMachineTypeRequest): google.cloud.compute.v1beta.GetMachineTypeRequest;

                    /**
                     * Encodes the specified GetMachineTypeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetMachineTypeRequest.verify|verify} messages.
                     * @param message GetMachineTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetMachineTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetMachineTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetMachineTypeRequest.verify|verify} messages.
                     * @param message GetMachineTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetMachineTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetMachineTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetMachineTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetMachineTypeRequest;

                    /**
                     * Decodes a GetMachineTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetMachineTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetMachineTypeRequest;

                    /**
                     * Verifies a GetMachineTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetMachineTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetMachineTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetMachineTypeRequest;

                    /**
                     * Creates a plain object from a GetMachineTypeRequest message. Also converts values to other types if specified.
                     * @param message GetMachineTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetMachineTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetMachineTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetMachineTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetMacsecConfigInterconnectRequest. */
                interface IGetMacsecConfigInterconnectRequest {

                    /** GetMacsecConfigInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** GetMacsecConfigInterconnectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetMacsecConfigInterconnectRequest. */
                class GetMacsecConfigInterconnectRequest implements IGetMacsecConfigInterconnectRequest {

                    /**
                     * Constructs a new GetMacsecConfigInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetMacsecConfigInterconnectRequest);

                    /** GetMacsecConfigInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** GetMacsecConfigInterconnectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetMacsecConfigInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetMacsecConfigInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetMacsecConfigInterconnectRequest): google.cloud.compute.v1beta.GetMacsecConfigInterconnectRequest;

                    /**
                     * Encodes the specified GetMacsecConfigInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetMacsecConfigInterconnectRequest.verify|verify} messages.
                     * @param message GetMacsecConfigInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetMacsecConfigInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetMacsecConfigInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetMacsecConfigInterconnectRequest.verify|verify} messages.
                     * @param message GetMacsecConfigInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetMacsecConfigInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetMacsecConfigInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetMacsecConfigInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetMacsecConfigInterconnectRequest;

                    /**
                     * Decodes a GetMacsecConfigInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetMacsecConfigInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetMacsecConfigInterconnectRequest;

                    /**
                     * Verifies a GetMacsecConfigInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetMacsecConfigInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetMacsecConfigInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetMacsecConfigInterconnectRequest;

                    /**
                     * Creates a plain object from a GetMacsecConfigInterconnectRequest message. Also converts values to other types if specified.
                     * @param message GetMacsecConfigInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetMacsecConfigInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetMacsecConfigInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetMacsecConfigInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNamedSetRouterRequest. */
                interface IGetNamedSetRouterRequest {

                    /** GetNamedSetRouterRequest namedSet */
                    namedSet?: (string|null);

                    /** GetNamedSetRouterRequest project */
                    project?: (string|null);

                    /** GetNamedSetRouterRequest region */
                    region?: (string|null);

                    /** GetNamedSetRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetNamedSetRouterRequest. */
                class GetNamedSetRouterRequest implements IGetNamedSetRouterRequest {

                    /**
                     * Constructs a new GetNamedSetRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNamedSetRouterRequest);

                    /** GetNamedSetRouterRequest namedSet. */
                    public namedSet?: (string|null);

                    /** GetNamedSetRouterRequest project. */
                    public project: string;

                    /** GetNamedSetRouterRequest region. */
                    public region: string;

                    /** GetNamedSetRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetNamedSetRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNamedSetRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNamedSetRouterRequest): google.cloud.compute.v1beta.GetNamedSetRouterRequest;

                    /**
                     * Encodes the specified GetNamedSetRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNamedSetRouterRequest.verify|verify} messages.
                     * @param message GetNamedSetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNamedSetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNamedSetRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNamedSetRouterRequest.verify|verify} messages.
                     * @param message GetNamedSetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNamedSetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNamedSetRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNamedSetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNamedSetRouterRequest;

                    /**
                     * Decodes a GetNamedSetRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNamedSetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNamedSetRouterRequest;

                    /**
                     * Verifies a GetNamedSetRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNamedSetRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNamedSetRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNamedSetRouterRequest;

                    /**
                     * Creates a plain object from a GetNamedSetRouterRequest message. Also converts values to other types if specified.
                     * @param message GetNamedSetRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNamedSetRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNamedSetRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNamedSetRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNatIpInfoRouterRequest. */
                interface IGetNatIpInfoRouterRequest {

                    /** GetNatIpInfoRouterRequest natName */
                    natName?: (string|null);

                    /** GetNatIpInfoRouterRequest project */
                    project?: (string|null);

                    /** GetNatIpInfoRouterRequest region */
                    region?: (string|null);

                    /** GetNatIpInfoRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetNatIpInfoRouterRequest. */
                class GetNatIpInfoRouterRequest implements IGetNatIpInfoRouterRequest {

                    /**
                     * Constructs a new GetNatIpInfoRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNatIpInfoRouterRequest);

                    /** GetNatIpInfoRouterRequest natName. */
                    public natName?: (string|null);

                    /** GetNatIpInfoRouterRequest project. */
                    public project: string;

                    /** GetNatIpInfoRouterRequest region. */
                    public region: string;

                    /** GetNatIpInfoRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetNatIpInfoRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNatIpInfoRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNatIpInfoRouterRequest): google.cloud.compute.v1beta.GetNatIpInfoRouterRequest;

                    /**
                     * Encodes the specified GetNatIpInfoRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNatIpInfoRouterRequest.verify|verify} messages.
                     * @param message GetNatIpInfoRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNatIpInfoRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNatIpInfoRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNatIpInfoRouterRequest.verify|verify} messages.
                     * @param message GetNatIpInfoRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNatIpInfoRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNatIpInfoRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNatIpInfoRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNatIpInfoRouterRequest;

                    /**
                     * Decodes a GetNatIpInfoRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNatIpInfoRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNatIpInfoRouterRequest;

                    /**
                     * Verifies a GetNatIpInfoRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNatIpInfoRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNatIpInfoRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNatIpInfoRouterRequest;

                    /**
                     * Creates a plain object from a GetNatIpInfoRouterRequest message. Also converts values to other types if specified.
                     * @param message GetNatIpInfoRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNatIpInfoRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNatIpInfoRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNatIpInfoRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNatMappingInfoRoutersRequest. */
                interface IGetNatMappingInfoRoutersRequest {

                    /** GetNatMappingInfoRoutersRequest filter */
                    filter?: (string|null);

                    /** GetNatMappingInfoRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** GetNatMappingInfoRoutersRequest natName */
                    natName?: (string|null);

                    /** GetNatMappingInfoRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** GetNatMappingInfoRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** GetNatMappingInfoRoutersRequest project */
                    project?: (string|null);

                    /** GetNatMappingInfoRoutersRequest region */
                    region?: (string|null);

                    /** GetNatMappingInfoRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** GetNatMappingInfoRoutersRequest router */
                    router?: (string|null);
                }

                /** Represents a GetNatMappingInfoRoutersRequest. */
                class GetNatMappingInfoRoutersRequest implements IGetNatMappingInfoRoutersRequest {

                    /**
                     * Constructs a new GetNatMappingInfoRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNatMappingInfoRoutersRequest);

                    /** GetNatMappingInfoRoutersRequest filter. */
                    public filter?: (string|null);

                    /** GetNatMappingInfoRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** GetNatMappingInfoRoutersRequest natName. */
                    public natName?: (string|null);

                    /** GetNatMappingInfoRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** GetNatMappingInfoRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** GetNatMappingInfoRoutersRequest project. */
                    public project: string;

                    /** GetNatMappingInfoRoutersRequest region. */
                    public region: string;

                    /** GetNatMappingInfoRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** GetNatMappingInfoRoutersRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetNatMappingInfoRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNatMappingInfoRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNatMappingInfoRoutersRequest): google.cloud.compute.v1beta.GetNatMappingInfoRoutersRequest;

                    /**
                     * Encodes the specified GetNatMappingInfoRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNatMappingInfoRoutersRequest.verify|verify} messages.
                     * @param message GetNatMappingInfoRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNatMappingInfoRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNatMappingInfoRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNatMappingInfoRoutersRequest.verify|verify} messages.
                     * @param message GetNatMappingInfoRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNatMappingInfoRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNatMappingInfoRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNatMappingInfoRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNatMappingInfoRoutersRequest;

                    /**
                     * Decodes a GetNatMappingInfoRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNatMappingInfoRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNatMappingInfoRoutersRequest;

                    /**
                     * Verifies a GetNatMappingInfoRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNatMappingInfoRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNatMappingInfoRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNatMappingInfoRoutersRequest;

                    /**
                     * Creates a plain object from a GetNatMappingInfoRoutersRequest message. Also converts values to other types if specified.
                     * @param message GetNatMappingInfoRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNatMappingInfoRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNatMappingInfoRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNatMappingInfoRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkAttachmentRequest. */
                interface IGetNetworkAttachmentRequest {

                    /** GetNetworkAttachmentRequest networkAttachment */
                    networkAttachment?: (string|null);

                    /** GetNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** GetNetworkAttachmentRequest region */
                    region?: (string|null);
                }

                /** Represents a GetNetworkAttachmentRequest. */
                class GetNetworkAttachmentRequest implements IGetNetworkAttachmentRequest {

                    /**
                     * Constructs a new GetNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNetworkAttachmentRequest);

                    /** GetNetworkAttachmentRequest networkAttachment. */
                    public networkAttachment: string;

                    /** GetNetworkAttachmentRequest project. */
                    public project: string;

                    /** GetNetworkAttachmentRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNetworkAttachmentRequest): google.cloud.compute.v1beta.GetNetworkAttachmentRequest;

                    /**
                     * Encodes the specified GetNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkAttachmentRequest.verify|verify} messages.
                     * @param message GetNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkAttachmentRequest.verify|verify} messages.
                     * @param message GetNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNetworkAttachmentRequest;

                    /**
                     * Decodes a GetNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNetworkAttachmentRequest;

                    /**
                     * Verifies a GetNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a GetNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkEdgeSecurityServiceRequest. */
                interface IGetNetworkEdgeSecurityServiceRequest {

                    /** GetNetworkEdgeSecurityServiceRequest networkEdgeSecurityService */
                    networkEdgeSecurityService?: (string|null);

                    /** GetNetworkEdgeSecurityServiceRequest project */
                    project?: (string|null);

                    /** GetNetworkEdgeSecurityServiceRequest region */
                    region?: (string|null);
                }

                /** Represents a GetNetworkEdgeSecurityServiceRequest. */
                class GetNetworkEdgeSecurityServiceRequest implements IGetNetworkEdgeSecurityServiceRequest {

                    /**
                     * Constructs a new GetNetworkEdgeSecurityServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNetworkEdgeSecurityServiceRequest);

                    /** GetNetworkEdgeSecurityServiceRequest networkEdgeSecurityService. */
                    public networkEdgeSecurityService: string;

                    /** GetNetworkEdgeSecurityServiceRequest project. */
                    public project: string;

                    /** GetNetworkEdgeSecurityServiceRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetNetworkEdgeSecurityServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkEdgeSecurityServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNetworkEdgeSecurityServiceRequest): google.cloud.compute.v1beta.GetNetworkEdgeSecurityServiceRequest;

                    /**
                     * Encodes the specified GetNetworkEdgeSecurityServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message GetNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkEdgeSecurityServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message GetNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkEdgeSecurityServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNetworkEdgeSecurityServiceRequest;

                    /**
                     * Decodes a GetNetworkEdgeSecurityServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNetworkEdgeSecurityServiceRequest;

                    /**
                     * Verifies a GetNetworkEdgeSecurityServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkEdgeSecurityServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkEdgeSecurityServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNetworkEdgeSecurityServiceRequest;

                    /**
                     * Creates a plain object from a GetNetworkEdgeSecurityServiceRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkEdgeSecurityServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNetworkEdgeSecurityServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkEdgeSecurityServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkEdgeSecurityServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkEndpointGroupRequest. */
                interface IGetNetworkEndpointGroupRequest {

                    /** GetNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** GetNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** GetNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetNetworkEndpointGroupRequest. */
                class GetNetworkEndpointGroupRequest implements IGetNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new GetNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNetworkEndpointGroupRequest);

                    /** GetNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** GetNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** GetNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNetworkEndpointGroupRequest): google.cloud.compute.v1beta.GetNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified GetNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNetworkEndpointGroupRequest;

                    /**
                     * Decodes a GetNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNetworkEndpointGroupRequest;

                    /**
                     * Verifies a GetNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a GetNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkFirewallPolicyRequest. */
                interface IGetNetworkFirewallPolicyRequest {

                    /** GetNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetNetworkFirewallPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetNetworkFirewallPolicyRequest. */
                class GetNetworkFirewallPolicyRequest implements IGetNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNetworkFirewallPolicyRequest);

                    /** GetNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkProfileRequest. */
                interface IGetNetworkProfileRequest {

                    /** GetNetworkProfileRequest networkProfile */
                    networkProfile?: (string|null);

                    /** GetNetworkProfileRequest project */
                    project?: (string|null);
                }

                /** Represents a GetNetworkProfileRequest. */
                class GetNetworkProfileRequest implements IGetNetworkProfileRequest {

                    /**
                     * Constructs a new GetNetworkProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNetworkProfileRequest);

                    /** GetNetworkProfileRequest networkProfile. */
                    public networkProfile: string;

                    /** GetNetworkProfileRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetNetworkProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkProfileRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNetworkProfileRequest): google.cloud.compute.v1beta.GetNetworkProfileRequest;

                    /**
                     * Encodes the specified GetNetworkProfileRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkProfileRequest.verify|verify} messages.
                     * @param message GetNetworkProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNetworkProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkProfileRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkProfileRequest.verify|verify} messages.
                     * @param message GetNetworkProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNetworkProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNetworkProfileRequest;

                    /**
                     * Decodes a GetNetworkProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNetworkProfileRequest;

                    /**
                     * Verifies a GetNetworkProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNetworkProfileRequest;

                    /**
                     * Creates a plain object from a GetNetworkProfileRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNetworkProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNetworkRequest. */
                interface IGetNetworkRequest {

                    /** GetNetworkRequest network */
                    network?: (string|null);

                    /** GetNetworkRequest project */
                    project?: (string|null);
                }

                /** Represents a GetNetworkRequest. */
                class GetNetworkRequest implements IGetNetworkRequest {

                    /**
                     * Constructs a new GetNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNetworkRequest);

                    /** GetNetworkRequest network. */
                    public network: string;

                    /** GetNetworkRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNetworkRequest): google.cloud.compute.v1beta.GetNetworkRequest;

                    /**
                     * Encodes the specified GetNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkRequest.verify|verify} messages.
                     * @param message GetNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNetworkRequest.verify|verify} messages.
                     * @param message GetNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNetworkRequest;

                    /**
                     * Decodes a GetNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNetworkRequest;

                    /**
                     * Verifies a GetNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNetworkRequest;

                    /**
                     * Creates a plain object from a GetNetworkRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNodeGroupRequest. */
                interface IGetNodeGroupRequest {

                    /** GetNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** GetNodeGroupRequest project */
                    project?: (string|null);

                    /** GetNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetNodeGroupRequest. */
                class GetNodeGroupRequest implements IGetNodeGroupRequest {

                    /**
                     * Constructs a new GetNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNodeGroupRequest);

                    /** GetNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** GetNodeGroupRequest project. */
                    public project: string;

                    /** GetNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNodeGroupRequest): google.cloud.compute.v1beta.GetNodeGroupRequest;

                    /**
                     * Encodes the specified GetNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNodeGroupRequest.verify|verify} messages.
                     * @param message GetNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNodeGroupRequest.verify|verify} messages.
                     * @param message GetNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNodeGroupRequest;

                    /**
                     * Decodes a GetNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNodeGroupRequest;

                    /**
                     * Verifies a GetNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNodeGroupRequest;

                    /**
                     * Creates a plain object from a GetNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message GetNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNodeTemplateRequest. */
                interface IGetNodeTemplateRequest {

                    /** GetNodeTemplateRequest nodeTemplate */
                    nodeTemplate?: (string|null);

                    /** GetNodeTemplateRequest project */
                    project?: (string|null);

                    /** GetNodeTemplateRequest region */
                    region?: (string|null);
                }

                /** Represents a GetNodeTemplateRequest. */
                class GetNodeTemplateRequest implements IGetNodeTemplateRequest {

                    /**
                     * Constructs a new GetNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNodeTemplateRequest);

                    /** GetNodeTemplateRequest nodeTemplate. */
                    public nodeTemplate: string;

                    /** GetNodeTemplateRequest project. */
                    public project: string;

                    /** GetNodeTemplateRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNodeTemplateRequest): google.cloud.compute.v1beta.GetNodeTemplateRequest;

                    /**
                     * Encodes the specified GetNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNodeTemplateRequest.verify|verify} messages.
                     * @param message GetNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNodeTemplateRequest.verify|verify} messages.
                     * @param message GetNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNodeTemplateRequest;

                    /**
                     * Decodes a GetNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNodeTemplateRequest;

                    /**
                     * Verifies a GetNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNodeTemplateRequest;

                    /**
                     * Creates a plain object from a GetNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetNodeTypeRequest. */
                interface IGetNodeTypeRequest {

                    /** GetNodeTypeRequest nodeType */
                    nodeType?: (string|null);

                    /** GetNodeTypeRequest project */
                    project?: (string|null);

                    /** GetNodeTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetNodeTypeRequest. */
                class GetNodeTypeRequest implements IGetNodeTypeRequest {

                    /**
                     * Constructs a new GetNodeTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetNodeTypeRequest);

                    /** GetNodeTypeRequest nodeType. */
                    public nodeType: string;

                    /** GetNodeTypeRequest project. */
                    public project: string;

                    /** GetNodeTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetNodeTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNodeTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetNodeTypeRequest): google.cloud.compute.v1beta.GetNodeTypeRequest;

                    /**
                     * Encodes the specified GetNodeTypeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetNodeTypeRequest.verify|verify} messages.
                     * @param message GetNodeTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetNodeTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNodeTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetNodeTypeRequest.verify|verify} messages.
                     * @param message GetNodeTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetNodeTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNodeTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNodeTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetNodeTypeRequest;

                    /**
                     * Decodes a GetNodeTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNodeTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetNodeTypeRequest;

                    /**
                     * Verifies a GetNodeTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNodeTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNodeTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetNodeTypeRequest;

                    /**
                     * Creates a plain object from a GetNodeTypeRequest message. Also converts values to other types if specified.
                     * @param message GetNodeTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetNodeTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNodeTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNodeTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetOperationalStatusInterconnectAttachmentGroupRequest. */
                interface IGetOperationalStatusInterconnectAttachmentGroupRequest {

                    /** GetOperationalStatusInterconnectAttachmentGroupRequest interconnectAttachmentGroup */
                    interconnectAttachmentGroup?: (string|null);

                    /** GetOperationalStatusInterconnectAttachmentGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetOperationalStatusInterconnectAttachmentGroupRequest. */
                class GetOperationalStatusInterconnectAttachmentGroupRequest implements IGetOperationalStatusInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new GetOperationalStatusInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectAttachmentGroupRequest);

                    /** GetOperationalStatusInterconnectAttachmentGroupRequest interconnectAttachmentGroup. */
                    public interconnectAttachmentGroup: string;

                    /** GetOperationalStatusInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetOperationalStatusInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetOperationalStatusInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectAttachmentGroupRequest): google.cloud.compute.v1beta.GetOperationalStatusInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified GetOperationalStatusInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetOperationalStatusInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetOperationalStatusInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetOperationalStatusInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetOperationalStatusInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message GetOperationalStatusInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetOperationalStatusInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetOperationalStatusInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetOperationalStatusInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a GetOperationalStatusInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetOperationalStatusInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetOperationalStatusInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a GetOperationalStatusInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetOperationalStatusInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetOperationalStatusInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetOperationalStatusInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a GetOperationalStatusInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message GetOperationalStatusInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetOperationalStatusInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetOperationalStatusInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetOperationalStatusInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetOperationalStatusInterconnectGroupRequest. */
                interface IGetOperationalStatusInterconnectGroupRequest {

                    /** GetOperationalStatusInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** GetOperationalStatusInterconnectGroupRequest project */
                    project?: (string|null);
                }

                /** Represents a GetOperationalStatusInterconnectGroupRequest. */
                class GetOperationalStatusInterconnectGroupRequest implements IGetOperationalStatusInterconnectGroupRequest {

                    /**
                     * Constructs a new GetOperationalStatusInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectGroupRequest);

                    /** GetOperationalStatusInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** GetOperationalStatusInterconnectGroupRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetOperationalStatusInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetOperationalStatusInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectGroupRequest): google.cloud.compute.v1beta.GetOperationalStatusInterconnectGroupRequest;

                    /**
                     * Encodes the specified GetOperationalStatusInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetOperationalStatusInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetOperationalStatusInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetOperationalStatusInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetOperationalStatusInterconnectGroupRequest.verify|verify} messages.
                     * @param message GetOperationalStatusInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetOperationalStatusInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetOperationalStatusInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetOperationalStatusInterconnectGroupRequest;

                    /**
                     * Decodes a GetOperationalStatusInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetOperationalStatusInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetOperationalStatusInterconnectGroupRequest;

                    /**
                     * Verifies a GetOperationalStatusInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetOperationalStatusInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetOperationalStatusInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetOperationalStatusInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a GetOperationalStatusInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message GetOperationalStatusInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetOperationalStatusInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetOperationalStatusInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetOperationalStatusInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetOrganizationSecurityPolicyRequest. */
                interface IGetOrganizationSecurityPolicyRequest {

                    /** GetOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetOrganizationSecurityPolicyRequest. */
                class GetOrganizationSecurityPolicyRequest implements IGetOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new GetOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetOrganizationSecurityPolicyRequest);

                    /** GetOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.GetOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a GetOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a GetOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPacketMirroringRequest. */
                interface IGetPacketMirroringRequest {

                    /** GetPacketMirroringRequest packetMirroring */
                    packetMirroring?: (string|null);

                    /** GetPacketMirroringRequest project */
                    project?: (string|null);

                    /** GetPacketMirroringRequest region */
                    region?: (string|null);
                }

                /** Represents a GetPacketMirroringRequest. */
                class GetPacketMirroringRequest implements IGetPacketMirroringRequest {

                    /**
                     * Constructs a new GetPacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetPacketMirroringRequest);

                    /** GetPacketMirroringRequest packetMirroring. */
                    public packetMirroring: string;

                    /** GetPacketMirroringRequest project. */
                    public project: string;

                    /** GetPacketMirroringRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetPacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetPacketMirroringRequest): google.cloud.compute.v1beta.GetPacketMirroringRequest;

                    /**
                     * Encodes the specified GetPacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetPacketMirroringRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetPacketMirroringRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetPacketMirroringRequest;

                    /**
                     * Decodes a GetPacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetPacketMirroringRequest;

                    /**
                     * Verifies a GetPacketMirroringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetPacketMirroringRequest;

                    /**
                     * Creates a plain object from a GetPacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message GetPacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetPacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPacketMirroringRuleFirewallPolicyRequest. */
                interface IGetPacketMirroringRuleFirewallPolicyRequest {

                    /** GetPacketMirroringRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetPacketMirroringRuleFirewallPolicyRequest priority */
                    priority?: (number|null);
                }

                /** Represents a GetPacketMirroringRuleFirewallPolicyRequest. */
                class GetPacketMirroringRuleFirewallPolicyRequest implements IGetPacketMirroringRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new GetPacketMirroringRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetPacketMirroringRuleFirewallPolicyRequest);

                    /** GetPacketMirroringRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetPacketMirroringRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /**
                     * Creates a new GetPacketMirroringRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPacketMirroringRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetPacketMirroringRuleFirewallPolicyRequest): google.cloud.compute.v1beta.GetPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetPacketMirroringRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetPacketMirroringRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetPacketMirroringRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPacketMirroringRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetPacketMirroringRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetPacketMirroringRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPacketMirroringRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPacketMirroringRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Decodes a GetPacketMirroringRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPacketMirroringRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Verifies a GetPacketMirroringRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPacketMirroringRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPacketMirroringRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetPacketMirroringRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetPacketMirroringRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetPacketMirroringRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPacketMirroringRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPacketMirroringRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPacketMirroringRuleNetworkFirewallPolicyRequest. */
                interface IGetPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetPacketMirroringRuleNetworkFirewallPolicyRequest. */
                class GetPacketMirroringRuleNetworkFirewallPolicyRequest implements IGetPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetPacketMirroringRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetPacketMirroringRuleNetworkFirewallPolicyRequest);

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetPacketMirroringRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetPacketMirroringRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPacketMirroringRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetPacketMirroringRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetPacketMirroringRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPacketMirroringRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetPacketMirroringRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPacketMirroringRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetPacketMirroringRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetPacketMirroringRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPacketMirroringRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPartnerMetadataInstanceRequest. */
                interface IGetPartnerMetadataInstanceRequest {

                    /** GetPartnerMetadataInstanceRequest instance */
                    instance?: (string|null);

                    /** GetPartnerMetadataInstanceRequest namespaces */
                    namespaces?: (string|null);

                    /** GetPartnerMetadataInstanceRequest project */
                    project?: (string|null);

                    /** GetPartnerMetadataInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetPartnerMetadataInstanceRequest. */
                class GetPartnerMetadataInstanceRequest implements IGetPartnerMetadataInstanceRequest {

                    /**
                     * Constructs a new GetPartnerMetadataInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest);

                    /** GetPartnerMetadataInstanceRequest instance. */
                    public instance: string;

                    /** GetPartnerMetadataInstanceRequest namespaces. */
                    public namespaces?: (string|null);

                    /** GetPartnerMetadataInstanceRequest project. */
                    public project: string;

                    /** GetPartnerMetadataInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetPartnerMetadataInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPartnerMetadataInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest): google.cloud.compute.v1beta.GetPartnerMetadataInstanceRequest;

                    /**
                     * Encodes the specified GetPartnerMetadataInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetPartnerMetadataInstanceRequest.verify|verify} messages.
                     * @param message GetPartnerMetadataInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPartnerMetadataInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetPartnerMetadataInstanceRequest.verify|verify} messages.
                     * @param message GetPartnerMetadataInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPartnerMetadataInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPartnerMetadataInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetPartnerMetadataInstanceRequest;

                    /**
                     * Decodes a GetPartnerMetadataInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPartnerMetadataInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetPartnerMetadataInstanceRequest;

                    /**
                     * Verifies a GetPartnerMetadataInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPartnerMetadataInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPartnerMetadataInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetPartnerMetadataInstanceRequest;

                    /**
                     * Creates a plain object from a GetPartnerMetadataInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetPartnerMetadataInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetPartnerMetadataInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPartnerMetadataInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPartnerMetadataInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPreviewFeatureRequest. */
                interface IGetPreviewFeatureRequest {

                    /** GetPreviewFeatureRequest previewFeature */
                    previewFeature?: (string|null);

                    /** GetPreviewFeatureRequest project */
                    project?: (string|null);
                }

                /** Represents a GetPreviewFeatureRequest. */
                class GetPreviewFeatureRequest implements IGetPreviewFeatureRequest {

                    /**
                     * Constructs a new GetPreviewFeatureRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetPreviewFeatureRequest);

                    /** GetPreviewFeatureRequest previewFeature. */
                    public previewFeature: string;

                    /** GetPreviewFeatureRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetPreviewFeatureRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPreviewFeatureRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetPreviewFeatureRequest): google.cloud.compute.v1beta.GetPreviewFeatureRequest;

                    /**
                     * Encodes the specified GetPreviewFeatureRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetPreviewFeatureRequest.verify|verify} messages.
                     * @param message GetPreviewFeatureRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetPreviewFeatureRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPreviewFeatureRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetPreviewFeatureRequest.verify|verify} messages.
                     * @param message GetPreviewFeatureRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetPreviewFeatureRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPreviewFeatureRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPreviewFeatureRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetPreviewFeatureRequest;

                    /**
                     * Decodes a GetPreviewFeatureRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPreviewFeatureRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetPreviewFeatureRequest;

                    /**
                     * Verifies a GetPreviewFeatureRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPreviewFeatureRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPreviewFeatureRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetPreviewFeatureRequest;

                    /**
                     * Creates a plain object from a GetPreviewFeatureRequest message. Also converts values to other types if specified.
                     * @param message GetPreviewFeatureRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetPreviewFeatureRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPreviewFeatureRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPreviewFeatureRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetProjectRequest. */
                interface IGetProjectRequest {

                    /** GetProjectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetProjectRequest. */
                class GetProjectRequest implements IGetProjectRequest {

                    /**
                     * Constructs a new GetProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetProjectRequest);

                    /** GetProjectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetProjectRequest): google.cloud.compute.v1beta.GetProjectRequest;

                    /**
                     * Encodes the specified GetProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetProjectRequest.verify|verify} messages.
                     * @param message GetProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetProjectRequest.verify|verify} messages.
                     * @param message GetProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetProjectRequest;

                    /**
                     * Decodes a GetProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetProjectRequest;

                    /**
                     * Verifies a GetProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetProjectRequest;

                    /**
                     * Creates a plain object from a GetProjectRequest message. Also converts values to other types if specified.
                     * @param message GetProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPublicAdvertisedPrefixeRequest. */
                interface IGetPublicAdvertisedPrefixeRequest {

                    /** GetPublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** GetPublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);
                }

                /** Represents a GetPublicAdvertisedPrefixeRequest. */
                class GetPublicAdvertisedPrefixeRequest implements IGetPublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new GetPublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetPublicAdvertisedPrefixeRequest);

                    /** GetPublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** GetPublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /**
                     * Creates a new GetPublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetPublicAdvertisedPrefixeRequest): google.cloud.compute.v1beta.GetPublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified GetPublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message GetPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message GetPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetPublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes a GetPublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetPublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies a GetPublicAdvertisedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetPublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from a GetPublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message GetPublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetPublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPublicDelegatedPrefixeRequest. */
                interface IGetPublicDelegatedPrefixeRequest {

                    /** GetPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** GetPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** GetPublicDelegatedPrefixeRequest region */
                    region?: (string|null);
                }

                /** Represents a GetPublicDelegatedPrefixeRequest. */
                class GetPublicDelegatedPrefixeRequest implements IGetPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new GetPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetPublicDelegatedPrefixeRequest);

                    /** GetPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** GetPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** GetPublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetPublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.GetPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified GetPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message GetPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message GetPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a GetPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a GetPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a GetPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message GetPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionAutoscalerRequest. */
                interface IGetRegionAutoscalerRequest {

                    /** GetRegionAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** GetRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** GetRegionAutoscalerRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionAutoscalerRequest. */
                class GetRegionAutoscalerRequest implements IGetRegionAutoscalerRequest {

                    /**
                     * Constructs a new GetRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionAutoscalerRequest);

                    /** GetRegionAutoscalerRequest autoscaler. */
                    public autoscaler: string;

                    /** GetRegionAutoscalerRequest project. */
                    public project: string;

                    /** GetRegionAutoscalerRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionAutoscalerRequest): google.cloud.compute.v1beta.GetRegionAutoscalerRequest;

                    /**
                     * Encodes the specified GetRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionAutoscalerRequest.verify|verify} messages.
                     * @param message GetRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionAutoscalerRequest.verify|verify} messages.
                     * @param message GetRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionAutoscalerRequest;

                    /**
                     * Decodes a GetRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionAutoscalerRequest;

                    /**
                     * Verifies a GetRegionAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from a GetRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message GetRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionBackendBucketRequest. */
                interface IGetRegionBackendBucketRequest {

                    /** GetRegionBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** GetRegionBackendBucketRequest project */
                    project?: (string|null);

                    /** GetRegionBackendBucketRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionBackendBucketRequest. */
                class GetRegionBackendBucketRequest implements IGetRegionBackendBucketRequest {

                    /**
                     * Constructs a new GetRegionBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionBackendBucketRequest);

                    /** GetRegionBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** GetRegionBackendBucketRequest project. */
                    public project: string;

                    /** GetRegionBackendBucketRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionBackendBucketRequest): google.cloud.compute.v1beta.GetRegionBackendBucketRequest;

                    /**
                     * Encodes the specified GetRegionBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionBackendBucketRequest.verify|verify} messages.
                     * @param message GetRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionBackendBucketRequest.verify|verify} messages.
                     * @param message GetRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionBackendBucketRequest;

                    /**
                     * Decodes a GetRegionBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionBackendBucketRequest;

                    /**
                     * Verifies a GetRegionBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionBackendBucketRequest;

                    /**
                     * Creates a plain object from a GetRegionBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message GetRegionBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionBackendServiceRequest. */
                interface IGetRegionBackendServiceRequest {

                    /** GetRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** GetRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** GetRegionBackendServiceRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionBackendServiceRequest. */
                class GetRegionBackendServiceRequest implements IGetRegionBackendServiceRequest {

                    /**
                     * Constructs a new GetRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionBackendServiceRequest);

                    /** GetRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** GetRegionBackendServiceRequest project. */
                    public project: string;

                    /** GetRegionBackendServiceRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionBackendServiceRequest): google.cloud.compute.v1beta.GetRegionBackendServiceRequest;

                    /**
                     * Encodes the specified GetRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionBackendServiceRequest.verify|verify} messages.
                     * @param message GetRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionBackendServiceRequest;

                    /**
                     * Decodes a GetRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionBackendServiceRequest;

                    /**
                     * Verifies a GetRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a GetRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message GetRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionCommitmentRequest. */
                interface IGetRegionCommitmentRequest {

                    /** GetRegionCommitmentRequest commitment */
                    commitment?: (string|null);

                    /** GetRegionCommitmentRequest project */
                    project?: (string|null);

                    /** GetRegionCommitmentRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionCommitmentRequest. */
                class GetRegionCommitmentRequest implements IGetRegionCommitmentRequest {

                    /**
                     * Constructs a new GetRegionCommitmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionCommitmentRequest);

                    /** GetRegionCommitmentRequest commitment. */
                    public commitment: string;

                    /** GetRegionCommitmentRequest project. */
                    public project: string;

                    /** GetRegionCommitmentRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionCommitmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionCommitmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionCommitmentRequest): google.cloud.compute.v1beta.GetRegionCommitmentRequest;

                    /**
                     * Encodes the specified GetRegionCommitmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionCommitmentRequest.verify|verify} messages.
                     * @param message GetRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionCommitmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionCommitmentRequest.verify|verify} messages.
                     * @param message GetRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionCommitmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionCommitmentRequest;

                    /**
                     * Decodes a GetRegionCommitmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionCommitmentRequest;

                    /**
                     * Verifies a GetRegionCommitmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionCommitmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionCommitmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionCommitmentRequest;

                    /**
                     * Creates a plain object from a GetRegionCommitmentRequest message. Also converts values to other types if specified.
                     * @param message GetRegionCommitmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionCommitmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionCommitmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionCommitmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionCompositeHealthCheckRequest. */
                interface IGetRegionCompositeHealthCheckRequest {

                    /** GetRegionCompositeHealthCheckRequest compositeHealthCheck */
                    compositeHealthCheck?: (string|null);

                    /** GetRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** GetRegionCompositeHealthCheckRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionCompositeHealthCheckRequest. */
                class GetRegionCompositeHealthCheckRequest implements IGetRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new GetRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionCompositeHealthCheckRequest);

                    /** GetRegionCompositeHealthCheckRequest compositeHealthCheck. */
                    public compositeHealthCheck: string;

                    /** GetRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** GetRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionCompositeHealthCheckRequest): google.cloud.compute.v1beta.GetRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified GetRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message GetRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message GetRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes a GetRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies a GetRegionCompositeHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from a GetRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message GetRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionDiskRequest. */
                interface IGetRegionDiskRequest {

                    /** GetRegionDiskRequest disk */
                    disk?: (string|null);

                    /** GetRegionDiskRequest project */
                    project?: (string|null);

                    /** GetRegionDiskRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionDiskRequest. */
                class GetRegionDiskRequest implements IGetRegionDiskRequest {

                    /**
                     * Constructs a new GetRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionDiskRequest);

                    /** GetRegionDiskRequest disk. */
                    public disk: string;

                    /** GetRegionDiskRequest project. */
                    public project: string;

                    /** GetRegionDiskRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionDiskRequest): google.cloud.compute.v1beta.GetRegionDiskRequest;

                    /**
                     * Encodes the specified GetRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionDiskRequest.verify|verify} messages.
                     * @param message GetRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionDiskRequest.verify|verify} messages.
                     * @param message GetRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionDiskRequest;

                    /**
                     * Decodes a GetRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionDiskRequest;

                    /**
                     * Verifies a GetRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionDiskRequest;

                    /**
                     * Creates a plain object from a GetRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message GetRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionDiskSettingRequest. */
                interface IGetRegionDiskSettingRequest {

                    /** GetRegionDiskSettingRequest project */
                    project?: (string|null);

                    /** GetRegionDiskSettingRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionDiskSettingRequest. */
                class GetRegionDiskSettingRequest implements IGetRegionDiskSettingRequest {

                    /**
                     * Constructs a new GetRegionDiskSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionDiskSettingRequest);

                    /** GetRegionDiskSettingRequest project. */
                    public project: string;

                    /** GetRegionDiskSettingRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionDiskSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionDiskSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionDiskSettingRequest): google.cloud.compute.v1beta.GetRegionDiskSettingRequest;

                    /**
                     * Encodes the specified GetRegionDiskSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionDiskSettingRequest.verify|verify} messages.
                     * @param message GetRegionDiskSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionDiskSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionDiskSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionDiskSettingRequest.verify|verify} messages.
                     * @param message GetRegionDiskSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionDiskSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionDiskSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionDiskSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionDiskSettingRequest;

                    /**
                     * Decodes a GetRegionDiskSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionDiskSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionDiskSettingRequest;

                    /**
                     * Verifies a GetRegionDiskSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionDiskSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionDiskSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionDiskSettingRequest;

                    /**
                     * Creates a plain object from a GetRegionDiskSettingRequest message. Also converts values to other types if specified.
                     * @param message GetRegionDiskSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionDiskSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionDiskSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionDiskSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionDiskTypeRequest. */
                interface IGetRegionDiskTypeRequest {

                    /** GetRegionDiskTypeRequest diskType */
                    diskType?: (string|null);

                    /** GetRegionDiskTypeRequest project */
                    project?: (string|null);

                    /** GetRegionDiskTypeRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionDiskTypeRequest. */
                class GetRegionDiskTypeRequest implements IGetRegionDiskTypeRequest {

                    /**
                     * Constructs a new GetRegionDiskTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionDiskTypeRequest);

                    /** GetRegionDiskTypeRequest diskType. */
                    public diskType: string;

                    /** GetRegionDiskTypeRequest project. */
                    public project: string;

                    /** GetRegionDiskTypeRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionDiskTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionDiskTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionDiskTypeRequest): google.cloud.compute.v1beta.GetRegionDiskTypeRequest;

                    /**
                     * Encodes the specified GetRegionDiskTypeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionDiskTypeRequest.verify|verify} messages.
                     * @param message GetRegionDiskTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionDiskTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionDiskTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionDiskTypeRequest.verify|verify} messages.
                     * @param message GetRegionDiskTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionDiskTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionDiskTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionDiskTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionDiskTypeRequest;

                    /**
                     * Decodes a GetRegionDiskTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionDiskTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionDiskTypeRequest;

                    /**
                     * Verifies a GetRegionDiskTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionDiskTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionDiskTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionDiskTypeRequest;

                    /**
                     * Creates a plain object from a GetRegionDiskTypeRequest message. Also converts values to other types if specified.
                     * @param message GetRegionDiskTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionDiskTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionDiskTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionDiskTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionHealthAggregationPolicyRequest. */
                interface IGetRegionHealthAggregationPolicyRequest {

                    /** GetRegionHealthAggregationPolicyRequest healthAggregationPolicy */
                    healthAggregationPolicy?: (string|null);

                    /** GetRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionHealthAggregationPolicyRequest. */
                class GetRegionHealthAggregationPolicyRequest implements IGetRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new GetRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionHealthAggregationPolicyRequest);

                    /** GetRegionHealthAggregationPolicyRequest healthAggregationPolicy. */
                    public healthAggregationPolicy: string;

                    /** GetRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** GetRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionHealthAggregationPolicyRequest): google.cloud.compute.v1beta.GetRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified GetRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message GetRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message GetRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes a GetRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies a GetRegionHealthAggregationPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionHealthCheckRequest. */
                interface IGetRegionHealthCheckRequest {

                    /** GetRegionHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** GetRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** GetRegionHealthCheckRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionHealthCheckRequest. */
                class GetRegionHealthCheckRequest implements IGetRegionHealthCheckRequest {

                    /**
                     * Constructs a new GetRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionHealthCheckRequest);

                    /** GetRegionHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** GetRegionHealthCheckRequest project. */
                    public project: string;

                    /** GetRegionHealthCheckRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionHealthCheckRequest): google.cloud.compute.v1beta.GetRegionHealthCheckRequest;

                    /**
                     * Encodes the specified GetRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionHealthCheckRequest.verify|verify} messages.
                     * @param message GetRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionHealthCheckRequest.verify|verify} messages.
                     * @param message GetRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionHealthCheckRequest;

                    /**
                     * Decodes a GetRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionHealthCheckRequest;

                    /**
                     * Verifies a GetRegionHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from a GetRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message GetRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionHealthCheckServiceRequest. */
                interface IGetRegionHealthCheckServiceRequest {

                    /** GetRegionHealthCheckServiceRequest healthCheckService */
                    healthCheckService?: (string|null);

                    /** GetRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** GetRegionHealthCheckServiceRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionHealthCheckServiceRequest. */
                class GetRegionHealthCheckServiceRequest implements IGetRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new GetRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionHealthCheckServiceRequest);

                    /** GetRegionHealthCheckServiceRequest healthCheckService. */
                    public healthCheckService: string;

                    /** GetRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** GetRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionHealthCheckServiceRequest): google.cloud.compute.v1beta.GetRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified GetRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message GetRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message GetRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionHealthCheckServiceRequest;

                    /**
                     * Decodes a GetRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionHealthCheckServiceRequest;

                    /**
                     * Verifies a GetRegionHealthCheckServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from a GetRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message GetRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionHealthSourceRequest. */
                interface IGetRegionHealthSourceRequest {

                    /** GetRegionHealthSourceRequest healthSource */
                    healthSource?: (string|null);

                    /** GetRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** GetRegionHealthSourceRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionHealthSourceRequest. */
                class GetRegionHealthSourceRequest implements IGetRegionHealthSourceRequest {

                    /**
                     * Constructs a new GetRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionHealthSourceRequest);

                    /** GetRegionHealthSourceRequest healthSource. */
                    public healthSource: string;

                    /** GetRegionHealthSourceRequest project. */
                    public project: string;

                    /** GetRegionHealthSourceRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionHealthSourceRequest): google.cloud.compute.v1beta.GetRegionHealthSourceRequest;

                    /**
                     * Encodes the specified GetRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionHealthSourceRequest.verify|verify} messages.
                     * @param message GetRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionHealthSourceRequest.verify|verify} messages.
                     * @param message GetRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionHealthSourceRequest;

                    /**
                     * Decodes a GetRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionHealthSourceRequest;

                    /**
                     * Verifies a GetRegionHealthSourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from a GetRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message GetRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstanceGroupManagerRequest. */
                interface IGetRegionInstanceGroupManagerRequest {

                    /** GetRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** GetRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** GetRegionInstanceGroupManagerRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionInstanceGroupManagerRequest. */
                class GetRegionInstanceGroupManagerRequest implements IGetRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new GetRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerRequest);

                    /** GetRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** GetRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** GetRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.GetRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified GetRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a GetRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a GetRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a GetRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstanceGroupManagerResizeRequestRequest. */
                interface IGetRegionInstanceGroupManagerResizeRequestRequest {

                    /** GetRegionInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** GetRegionInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** GetRegionInstanceGroupManagerResizeRequestRequest region */
                    region?: (string|null);

                    /** GetRegionInstanceGroupManagerResizeRequestRequest resizeRequest */
                    resizeRequest?: (string|null);
                }

                /** Represents a GetRegionInstanceGroupManagerResizeRequestRequest. */
                class GetRegionInstanceGroupManagerResizeRequestRequest implements IGetRegionInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new GetRegionInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerResizeRequestRequest);

                    /** GetRegionInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** GetRegionInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** GetRegionInstanceGroupManagerResizeRequestRequest region. */
                    public region: string;

                    /** GetRegionInstanceGroupManagerResizeRequestRequest resizeRequest. */
                    public resizeRequest: string;

                    /**
                     * Creates a new GetRegionInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1beta.GetRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified GetRegionInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes a GetRegionInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies a GetRegionInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from a GetRegionInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstanceGroupRequest. */
                interface IGetRegionInstanceGroupRequest {

                    /** GetRegionInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** GetRegionInstanceGroupRequest project */
                    project?: (string|null);

                    /** GetRegionInstanceGroupRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionInstanceGroupRequest. */
                class GetRegionInstanceGroupRequest implements IGetRegionInstanceGroupRequest {

                    /**
                     * Constructs a new GetRegionInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionInstanceGroupRequest);

                    /** GetRegionInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** GetRegionInstanceGroupRequest project. */
                    public project: string;

                    /** GetRegionInstanceGroupRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionInstanceGroupRequest): google.cloud.compute.v1beta.GetRegionInstanceGroupRequest;

                    /**
                     * Encodes the specified GetRegionInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message GetRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionInstanceGroupRequest;

                    /**
                     * Decodes a GetRegionInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionInstanceGroupRequest;

                    /**
                     * Verifies a GetRegionInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionInstanceGroupRequest;

                    /**
                     * Creates a plain object from a GetRegionInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstanceTemplateRequest. */
                interface IGetRegionInstanceTemplateRequest {

                    /** GetRegionInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** GetRegionInstanceTemplateRequest project */
                    project?: (string|null);

                    /** GetRegionInstanceTemplateRequest region */
                    region?: (string|null);

                    /** GetRegionInstanceTemplateRequest view */
                    view?: (string|null);
                }

                /** Represents a GetRegionInstanceTemplateRequest. */
                class GetRegionInstanceTemplateRequest implements IGetRegionInstanceTemplateRequest {

                    /**
                     * Constructs a new GetRegionInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionInstanceTemplateRequest);

                    /** GetRegionInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate: string;

                    /** GetRegionInstanceTemplateRequest project. */
                    public project: string;

                    /** GetRegionInstanceTemplateRequest region. */
                    public region: string;

                    /** GetRegionInstanceTemplateRequest view. */
                    public view?: (string|null);

                    /**
                     * Creates a new GetRegionInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionInstanceTemplateRequest): google.cloud.compute.v1beta.GetRegionInstanceTemplateRequest;

                    /**
                     * Encodes the specified GetRegionInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message GetRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionInstanceTemplateRequest;

                    /**
                     * Decodes a GetRegionInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionInstanceTemplateRequest;

                    /**
                     * Verifies a GetRegionInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a GetRegionInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetRegionInstanceTemplateRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        BASIC = 62970894,
                        FULL = 2169487,
                        INSTANCE_VIEW_UNSPECIFIED = 8444647
                    }
                }

                /** Properties of a GetRegionInstantSnapshotGroupRequest. */
                interface IGetRegionInstantSnapshotGroupRequest {

                    /** GetRegionInstantSnapshotGroupRequest instantSnapshotGroup */
                    instantSnapshotGroup?: (string|null);

                    /** GetRegionInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** GetRegionInstantSnapshotGroupRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionInstantSnapshotGroupRequest. */
                class GetRegionInstantSnapshotGroupRequest implements IGetRegionInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new GetRegionInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionInstantSnapshotGroupRequest);

                    /** GetRegionInstantSnapshotGroupRequest instantSnapshotGroup. */
                    public instantSnapshotGroup: string;

                    /** GetRegionInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** GetRegionInstantSnapshotGroupRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionInstantSnapshotGroupRequest): google.cloud.compute.v1beta.GetRegionInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified GetRegionInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionInstantSnapshotGroupRequest;

                    /**
                     * Decodes a GetRegionInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionInstantSnapshotGroupRequest;

                    /**
                     * Verifies a GetRegionInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a GetRegionInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionInstantSnapshotRequest. */
                interface IGetRegionInstantSnapshotRequest {

                    /** GetRegionInstantSnapshotRequest instantSnapshot */
                    instantSnapshot?: (string|null);

                    /** GetRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** GetRegionInstantSnapshotRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionInstantSnapshotRequest. */
                class GetRegionInstantSnapshotRequest implements IGetRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new GetRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionInstantSnapshotRequest);

                    /** GetRegionInstantSnapshotRequest instantSnapshot. */
                    public instantSnapshot: string;

                    /** GetRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** GetRegionInstantSnapshotRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionInstantSnapshotRequest): google.cloud.compute.v1beta.GetRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified GetRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message GetRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionInstantSnapshotRequest;

                    /**
                     * Decodes a GetRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionInstantSnapshotRequest;

                    /**
                     * Verifies a GetRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a GetRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionMultiMigMemberRequest. */
                interface IGetRegionMultiMigMemberRequest {

                    /** GetRegionMultiMigMemberRequest multiMig */
                    multiMig?: (string|null);

                    /** GetRegionMultiMigMemberRequest multiMigMember */
                    multiMigMember?: (string|null);

                    /** GetRegionMultiMigMemberRequest project */
                    project?: (string|null);

                    /** GetRegionMultiMigMemberRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionMultiMigMemberRequest. */
                class GetRegionMultiMigMemberRequest implements IGetRegionMultiMigMemberRequest {

                    /**
                     * Constructs a new GetRegionMultiMigMemberRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionMultiMigMemberRequest);

                    /** GetRegionMultiMigMemberRequest multiMig. */
                    public multiMig: string;

                    /** GetRegionMultiMigMemberRequest multiMigMember. */
                    public multiMigMember: string;

                    /** GetRegionMultiMigMemberRequest project. */
                    public project: string;

                    /** GetRegionMultiMigMemberRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionMultiMigMemberRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionMultiMigMemberRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionMultiMigMemberRequest): google.cloud.compute.v1beta.GetRegionMultiMigMemberRequest;

                    /**
                     * Encodes the specified GetRegionMultiMigMemberRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionMultiMigMemberRequest.verify|verify} messages.
                     * @param message GetRegionMultiMigMemberRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionMultiMigMemberRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionMultiMigMemberRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionMultiMigMemberRequest.verify|verify} messages.
                     * @param message GetRegionMultiMigMemberRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionMultiMigMemberRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionMultiMigMemberRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionMultiMigMemberRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionMultiMigMemberRequest;

                    /**
                     * Decodes a GetRegionMultiMigMemberRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionMultiMigMemberRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionMultiMigMemberRequest;

                    /**
                     * Verifies a GetRegionMultiMigMemberRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionMultiMigMemberRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionMultiMigMemberRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionMultiMigMemberRequest;

                    /**
                     * Creates a plain object from a GetRegionMultiMigMemberRequest message. Also converts values to other types if specified.
                     * @param message GetRegionMultiMigMemberRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionMultiMigMemberRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionMultiMigMemberRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionMultiMigMemberRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionMultiMigRequest. */
                interface IGetRegionMultiMigRequest {

                    /** GetRegionMultiMigRequest multiMig */
                    multiMig?: (string|null);

                    /** GetRegionMultiMigRequest project */
                    project?: (string|null);

                    /** GetRegionMultiMigRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionMultiMigRequest. */
                class GetRegionMultiMigRequest implements IGetRegionMultiMigRequest {

                    /**
                     * Constructs a new GetRegionMultiMigRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionMultiMigRequest);

                    /** GetRegionMultiMigRequest multiMig. */
                    public multiMig: string;

                    /** GetRegionMultiMigRequest project. */
                    public project: string;

                    /** GetRegionMultiMigRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionMultiMigRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionMultiMigRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionMultiMigRequest): google.cloud.compute.v1beta.GetRegionMultiMigRequest;

                    /**
                     * Encodes the specified GetRegionMultiMigRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionMultiMigRequest.verify|verify} messages.
                     * @param message GetRegionMultiMigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionMultiMigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionMultiMigRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionMultiMigRequest.verify|verify} messages.
                     * @param message GetRegionMultiMigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionMultiMigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionMultiMigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionMultiMigRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionMultiMigRequest;

                    /**
                     * Decodes a GetRegionMultiMigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionMultiMigRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionMultiMigRequest;

                    /**
                     * Verifies a GetRegionMultiMigRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionMultiMigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionMultiMigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionMultiMigRequest;

                    /**
                     * Creates a plain object from a GetRegionMultiMigRequest message. Also converts values to other types if specified.
                     * @param message GetRegionMultiMigRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionMultiMigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionMultiMigRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionMultiMigRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionNetworkEndpointGroupRequest. */
                interface IGetRegionNetworkEndpointGroupRequest {

                    /** GetRegionNetworkEndpointGroupRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** GetRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** GetRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionNetworkEndpointGroupRequest. */
                class GetRegionNetworkEndpointGroupRequest implements IGetRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new GetRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionNetworkEndpointGroupRequest);

                    /** GetRegionNetworkEndpointGroupRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** GetRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** GetRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionNetworkEndpointGroupRequest): google.cloud.compute.v1beta.GetRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified GetRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message GetRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes a GetRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies a GetRegionNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a GetRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message GetRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionNetworkFirewallPolicyRequest. */
                interface IGetRegionNetworkFirewallPolicyRequest {

                    /** GetRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionNetworkFirewallPolicyRequest. */
                class GetRegionNetworkFirewallPolicyRequest implements IGetRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionNetworkFirewallPolicyRequest);

                    /** GetRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionNetworkPolicyRequest. */
                interface IGetRegionNetworkPolicyRequest {

                    /** GetRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** GetRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionNetworkPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionNetworkPolicyRequest. */
                class GetRegionNetworkPolicyRequest implements IGetRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new GetRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionNetworkPolicyRequest);

                    /** GetRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** GetRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** GetRegionNetworkPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionNetworkPolicyRequest): google.cloud.compute.v1beta.GetRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified GetRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message GetRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message GetRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionNetworkPolicyRequest;

                    /**
                     * Decodes a GetRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionNetworkPolicyRequest;

                    /**
                     * Verifies a GetRegionNetworkPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionNotificationEndpointRequest. */
                interface IGetRegionNotificationEndpointRequest {

                    /** GetRegionNotificationEndpointRequest notificationEndpoint */
                    notificationEndpoint?: (string|null);

                    /** GetRegionNotificationEndpointRequest project */
                    project?: (string|null);

                    /** GetRegionNotificationEndpointRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionNotificationEndpointRequest. */
                class GetRegionNotificationEndpointRequest implements IGetRegionNotificationEndpointRequest {

                    /**
                     * Constructs a new GetRegionNotificationEndpointRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionNotificationEndpointRequest);

                    /** GetRegionNotificationEndpointRequest notificationEndpoint. */
                    public notificationEndpoint: string;

                    /** GetRegionNotificationEndpointRequest project. */
                    public project: string;

                    /** GetRegionNotificationEndpointRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionNotificationEndpointRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionNotificationEndpointRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionNotificationEndpointRequest): google.cloud.compute.v1beta.GetRegionNotificationEndpointRequest;

                    /**
                     * Encodes the specified GetRegionNotificationEndpointRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message GetRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionNotificationEndpointRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message GetRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionNotificationEndpointRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionNotificationEndpointRequest;

                    /**
                     * Decodes a GetRegionNotificationEndpointRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionNotificationEndpointRequest;

                    /**
                     * Verifies a GetRegionNotificationEndpointRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionNotificationEndpointRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionNotificationEndpointRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionNotificationEndpointRequest;

                    /**
                     * Creates a plain object from a GetRegionNotificationEndpointRequest message. Also converts values to other types if specified.
                     * @param message GetRegionNotificationEndpointRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionNotificationEndpointRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionNotificationEndpointRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionNotificationEndpointRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionOperationRequest. */
                interface IGetRegionOperationRequest {

                    /** GetRegionOperationRequest operation */
                    operation?: (string|null);

                    /** GetRegionOperationRequest project */
                    project?: (string|null);

                    /** GetRegionOperationRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionOperationRequest. */
                class GetRegionOperationRequest implements IGetRegionOperationRequest {

                    /**
                     * Constructs a new GetRegionOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionOperationRequest);

                    /** GetRegionOperationRequest operation. */
                    public operation: string;

                    /** GetRegionOperationRequest project. */
                    public project: string;

                    /** GetRegionOperationRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionOperationRequest): google.cloud.compute.v1beta.GetRegionOperationRequest;

                    /**
                     * Encodes the specified GetRegionOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionOperationRequest.verify|verify} messages.
                     * @param message GetRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionOperationRequest.verify|verify} messages.
                     * @param message GetRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionOperationRequest;

                    /**
                     * Decodes a GetRegionOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionOperationRequest;

                    /**
                     * Verifies a GetRegionOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionOperationRequest;

                    /**
                     * Creates a plain object from a GetRegionOperationRequest message. Also converts values to other types if specified.
                     * @param message GetRegionOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionRequest. */
                interface IGetRegionRequest {

                    /** GetRegionRequest project */
                    project?: (string|null);

                    /** GetRegionRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionRequest. */
                class GetRegionRequest implements IGetRegionRequest {

                    /**
                     * Constructs a new GetRegionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionRequest);

                    /** GetRegionRequest project. */
                    public project: string;

                    /** GetRegionRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionRequest): google.cloud.compute.v1beta.GetRegionRequest;

                    /**
                     * Encodes the specified GetRegionRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionRequest.verify|verify} messages.
                     * @param message GetRegionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionRequest.verify|verify} messages.
                     * @param message GetRegionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionRequest;

                    /**
                     * Decodes a GetRegionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionRequest;

                    /**
                     * Verifies a GetRegionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionRequest;

                    /**
                     * Creates a plain object from a GetRegionRequest message. Also converts values to other types if specified.
                     * @param message GetRegionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionSecurityPolicyRequest. */
                interface IGetRegionSecurityPolicyRequest {

                    /** GetRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** GetRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetRegionSecurityPolicyRequest. */
                class GetRegionSecurityPolicyRequest implements IGetRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new GetRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionSecurityPolicyRequest);

                    /** GetRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** GetRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** GetRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionSecurityPolicyRequest): google.cloud.compute.v1beta.GetRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionSecurityPolicyRequest;

                    /**
                     * Decodes a GetRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionSecurityPolicyRequest;

                    /**
                     * Verifies a GetRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionSnapshotRequest. */
                interface IGetRegionSnapshotRequest {

                    /** GetRegionSnapshotRequest project */
                    project?: (string|null);

                    /** GetRegionSnapshotRequest region */
                    region?: (string|null);

                    /** GetRegionSnapshotRequest snapshot */
                    snapshot?: (string|null);
                }

                /** Represents a GetRegionSnapshotRequest. */
                class GetRegionSnapshotRequest implements IGetRegionSnapshotRequest {

                    /**
                     * Constructs a new GetRegionSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionSnapshotRequest);

                    /** GetRegionSnapshotRequest project. */
                    public project: string;

                    /** GetRegionSnapshotRequest region. */
                    public region: string;

                    /** GetRegionSnapshotRequest snapshot. */
                    public snapshot: string;

                    /**
                     * Creates a new GetRegionSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionSnapshotRequest): google.cloud.compute.v1beta.GetRegionSnapshotRequest;

                    /**
                     * Encodes the specified GetRegionSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSnapshotRequest.verify|verify} messages.
                     * @param message GetRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSnapshotRequest.verify|verify} messages.
                     * @param message GetRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionSnapshotRequest;

                    /**
                     * Decodes a GetRegionSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionSnapshotRequest;

                    /**
                     * Verifies a GetRegionSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionSnapshotRequest;

                    /**
                     * Creates a plain object from a GetRegionSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetRegionSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionSnapshotSettingRequest. */
                interface IGetRegionSnapshotSettingRequest {

                    /** GetRegionSnapshotSettingRequest project */
                    project?: (string|null);

                    /** GetRegionSnapshotSettingRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionSnapshotSettingRequest. */
                class GetRegionSnapshotSettingRequest implements IGetRegionSnapshotSettingRequest {

                    /**
                     * Constructs a new GetRegionSnapshotSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionSnapshotSettingRequest);

                    /** GetRegionSnapshotSettingRequest project. */
                    public project: string;

                    /** GetRegionSnapshotSettingRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionSnapshotSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionSnapshotSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionSnapshotSettingRequest): google.cloud.compute.v1beta.GetRegionSnapshotSettingRequest;

                    /**
                     * Encodes the specified GetRegionSnapshotSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSnapshotSettingRequest.verify|verify} messages.
                     * @param message GetRegionSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionSnapshotSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSnapshotSettingRequest.verify|verify} messages.
                     * @param message GetRegionSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionSnapshotSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionSnapshotSettingRequest;

                    /**
                     * Decodes a GetRegionSnapshotSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionSnapshotSettingRequest;

                    /**
                     * Verifies a GetRegionSnapshotSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionSnapshotSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionSnapshotSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionSnapshotSettingRequest;

                    /**
                     * Creates a plain object from a GetRegionSnapshotSettingRequest message. Also converts values to other types if specified.
                     * @param message GetRegionSnapshotSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionSnapshotSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionSnapshotSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionSnapshotSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionSslCertificateRequest. */
                interface IGetRegionSslCertificateRequest {

                    /** GetRegionSslCertificateRequest project */
                    project?: (string|null);

                    /** GetRegionSslCertificateRequest region */
                    region?: (string|null);

                    /** GetRegionSslCertificateRequest sslCertificate */
                    sslCertificate?: (string|null);
                }

                /** Represents a GetRegionSslCertificateRequest. */
                class GetRegionSslCertificateRequest implements IGetRegionSslCertificateRequest {

                    /**
                     * Constructs a new GetRegionSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionSslCertificateRequest);

                    /** GetRegionSslCertificateRequest project. */
                    public project: string;

                    /** GetRegionSslCertificateRequest region. */
                    public region: string;

                    /** GetRegionSslCertificateRequest sslCertificate. */
                    public sslCertificate: string;

                    /**
                     * Creates a new GetRegionSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionSslCertificateRequest): google.cloud.compute.v1beta.GetRegionSslCertificateRequest;

                    /**
                     * Encodes the specified GetRegionSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSslCertificateRequest.verify|verify} messages.
                     * @param message GetRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSslCertificateRequest.verify|verify} messages.
                     * @param message GetRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionSslCertificateRequest;

                    /**
                     * Decodes a GetRegionSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionSslCertificateRequest;

                    /**
                     * Verifies a GetRegionSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionSslCertificateRequest;

                    /**
                     * Creates a plain object from a GetRegionSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message GetRegionSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionSslPolicyRequest. */
                interface IGetRegionSslPolicyRequest {

                    /** GetRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** GetRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** GetRegionSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a GetRegionSslPolicyRequest. */
                class GetRegionSslPolicyRequest implements IGetRegionSslPolicyRequest {

                    /**
                     * Constructs a new GetRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionSslPolicyRequest);

                    /** GetRegionSslPolicyRequest project. */
                    public project: string;

                    /** GetRegionSslPolicyRequest region. */
                    public region: string;

                    /** GetRegionSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /**
                     * Creates a new GetRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionSslPolicyRequest): google.cloud.compute.v1beta.GetRegionSslPolicyRequest;

                    /**
                     * Encodes the specified GetRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSslPolicyRequest.verify|verify} messages.
                     * @param message GetRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionSslPolicyRequest.verify|verify} messages.
                     * @param message GetRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionSslPolicyRequest;

                    /**
                     * Decodes a GetRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionSslPolicyRequest;

                    /**
                     * Verifies a GetRegionSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from a GetRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionTargetHttpProxyRequest. */
                interface IGetRegionTargetHttpProxyRequest {

                    /** GetRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** GetRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** GetRegionTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);
                }

                /** Represents a GetRegionTargetHttpProxyRequest. */
                class GetRegionTargetHttpProxyRequest implements IGetRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new GetRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionTargetHttpProxyRequest);

                    /** GetRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** GetRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** GetRegionTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /**
                     * Creates a new GetRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionTargetHttpProxyRequest): google.cloud.compute.v1beta.GetRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified GetRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionTargetHttpProxyRequest;

                    /**
                     * Decodes a GetRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionTargetHttpProxyRequest;

                    /**
                     * Verifies a GetRegionTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a GetRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionTargetHttpsProxyRequest. */
                interface IGetRegionTargetHttpsProxyRequest {

                    /** GetRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** GetRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** GetRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a GetRegionTargetHttpsProxyRequest. */
                class GetRegionTargetHttpsProxyRequest implements IGetRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new GetRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionTargetHttpsProxyRequest);

                    /** GetRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** GetRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** GetRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new GetRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionTargetHttpsProxyRequest): google.cloud.compute.v1beta.GetRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified GetRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a GetRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a GetRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a GetRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionTargetTcpProxyRequest. */
                interface IGetRegionTargetTcpProxyRequest {

                    /** GetRegionTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** GetRegionTargetTcpProxyRequest region */
                    region?: (string|null);

                    /** GetRegionTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a GetRegionTargetTcpProxyRequest. */
                class GetRegionTargetTcpProxyRequest implements IGetRegionTargetTcpProxyRequest {

                    /**
                     * Constructs a new GetRegionTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionTargetTcpProxyRequest);

                    /** GetRegionTargetTcpProxyRequest project. */
                    public project: string;

                    /** GetRegionTargetTcpProxyRequest region. */
                    public region: string;

                    /** GetRegionTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new GetRegionTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionTargetTcpProxyRequest): google.cloud.compute.v1beta.GetRegionTargetTcpProxyRequest;

                    /**
                     * Encodes the specified GetRegionTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message GetRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionTargetTcpProxyRequest;

                    /**
                     * Decodes a GetRegionTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionTargetTcpProxyRequest;

                    /**
                     * Verifies a GetRegionTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a GetRegionTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message GetRegionTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionUrlMapRequest. */
                interface IGetRegionUrlMapRequest {

                    /** GetRegionUrlMapRequest project */
                    project?: (string|null);

                    /** GetRegionUrlMapRequest region */
                    region?: (string|null);

                    /** GetRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a GetRegionUrlMapRequest. */
                class GetRegionUrlMapRequest implements IGetRegionUrlMapRequest {

                    /**
                     * Constructs a new GetRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRegionUrlMapRequest);

                    /** GetRegionUrlMapRequest project. */
                    public project: string;

                    /** GetRegionUrlMapRequest region. */
                    public region: string;

                    /** GetRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new GetRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRegionUrlMapRequest): google.cloud.compute.v1beta.GetRegionUrlMapRequest;

                    /**
                     * Encodes the specified GetRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionUrlMapRequest.verify|verify} messages.
                     * @param message GetRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRegionUrlMapRequest.verify|verify} messages.
                     * @param message GetRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRegionUrlMapRequest;

                    /**
                     * Decodes a GetRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRegionUrlMapRequest;

                    /**
                     * Verifies a GetRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a GetRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message GetRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetReservationBlockRequest. */
                interface IGetReservationBlockRequest {

                    /** GetReservationBlockRequest project */
                    project?: (string|null);

                    /** GetReservationBlockRequest reservation */
                    reservation?: (string|null);

                    /** GetReservationBlockRequest reservationBlock */
                    reservationBlock?: (string|null);

                    /** GetReservationBlockRequest view */
                    view?: (string|null);

                    /** GetReservationBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetReservationBlockRequest. */
                class GetReservationBlockRequest implements IGetReservationBlockRequest {

                    /**
                     * Constructs a new GetReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetReservationBlockRequest);

                    /** GetReservationBlockRequest project. */
                    public project: string;

                    /** GetReservationBlockRequest reservation. */
                    public reservation: string;

                    /** GetReservationBlockRequest reservationBlock. */
                    public reservationBlock: string;

                    /** GetReservationBlockRequest view. */
                    public view?: (string|null);

                    /** GetReservationBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetReservationBlockRequest): google.cloud.compute.v1beta.GetReservationBlockRequest;

                    /**
                     * Encodes the specified GetReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetReservationBlockRequest.verify|verify} messages.
                     * @param message GetReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetReservationBlockRequest.verify|verify} messages.
                     * @param message GetReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetReservationBlockRequest;

                    /**
                     * Decodes a GetReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetReservationBlockRequest;

                    /**
                     * Verifies a GetReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetReservationBlockRequest;

                    /**
                     * Creates a plain object from a GetReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message GetReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetReservationBlockRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        BASIC = 62970894,
                        BLOCK_VIEW_UNSPECIFIED = 275070479,
                        FULL = 2169487
                    }
                }

                /** Properties of a GetReservationRequest. */
                interface IGetReservationRequest {

                    /** GetReservationRequest project */
                    project?: (string|null);

                    /** GetReservationRequest reservation */
                    reservation?: (string|null);

                    /** GetReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetReservationRequest. */
                class GetReservationRequest implements IGetReservationRequest {

                    /**
                     * Constructs a new GetReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetReservationRequest);

                    /** GetReservationRequest project. */
                    public project: string;

                    /** GetReservationRequest reservation. */
                    public reservation: string;

                    /** GetReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetReservationRequest): google.cloud.compute.v1beta.GetReservationRequest;

                    /**
                     * Encodes the specified GetReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetReservationRequest.verify|verify} messages.
                     * @param message GetReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetReservationRequest.verify|verify} messages.
                     * @param message GetReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetReservationRequest;

                    /**
                     * Decodes a GetReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetReservationRequest;

                    /**
                     * Verifies a GetReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetReservationRequest;

                    /**
                     * Creates a plain object from a GetReservationRequest message. Also converts values to other types if specified.
                     * @param message GetReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetReservationSlotRequest. */
                interface IGetReservationSlotRequest {

                    /** GetReservationSlotRequest parentName */
                    parentName?: (string|null);

                    /** GetReservationSlotRequest project */
                    project?: (string|null);

                    /** GetReservationSlotRequest reservationSlot */
                    reservationSlot?: (string|null);

                    /** GetReservationSlotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetReservationSlotRequest. */
                class GetReservationSlotRequest implements IGetReservationSlotRequest {

                    /**
                     * Constructs a new GetReservationSlotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetReservationSlotRequest);

                    /** GetReservationSlotRequest parentName. */
                    public parentName: string;

                    /** GetReservationSlotRequest project. */
                    public project: string;

                    /** GetReservationSlotRequest reservationSlot. */
                    public reservationSlot: string;

                    /** GetReservationSlotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetReservationSlotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReservationSlotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetReservationSlotRequest): google.cloud.compute.v1beta.GetReservationSlotRequest;

                    /**
                     * Encodes the specified GetReservationSlotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetReservationSlotRequest.verify|verify} messages.
                     * @param message GetReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReservationSlotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetReservationSlotRequest.verify|verify} messages.
                     * @param message GetReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReservationSlotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetReservationSlotRequest;

                    /**
                     * Decodes a GetReservationSlotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetReservationSlotRequest;

                    /**
                     * Verifies a GetReservationSlotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReservationSlotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReservationSlotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetReservationSlotRequest;

                    /**
                     * Creates a plain object from a GetReservationSlotRequest message. Also converts values to other types if specified.
                     * @param message GetReservationSlotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetReservationSlotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReservationSlotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReservationSlotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetReservationSubBlockRequest. */
                interface IGetReservationSubBlockRequest {

                    /** GetReservationSubBlockRequest parentName */
                    parentName?: (string|null);

                    /** GetReservationSubBlockRequest project */
                    project?: (string|null);

                    /** GetReservationSubBlockRequest reservationSubBlock */
                    reservationSubBlock?: (string|null);

                    /** GetReservationSubBlockRequest view */
                    view?: (string|null);

                    /** GetReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetReservationSubBlockRequest. */
                class GetReservationSubBlockRequest implements IGetReservationSubBlockRequest {

                    /**
                     * Constructs a new GetReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetReservationSubBlockRequest);

                    /** GetReservationSubBlockRequest parentName. */
                    public parentName: string;

                    /** GetReservationSubBlockRequest project. */
                    public project: string;

                    /** GetReservationSubBlockRequest reservationSubBlock. */
                    public reservationSubBlock: string;

                    /** GetReservationSubBlockRequest view. */
                    public view?: (string|null);

                    /** GetReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetReservationSubBlockRequest): google.cloud.compute.v1beta.GetReservationSubBlockRequest;

                    /**
                     * Encodes the specified GetReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetReservationSubBlockRequest;

                    /**
                     * Decodes a GetReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetReservationSubBlockRequest;

                    /**
                     * Verifies a GetReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a GetReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message GetReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetReservationSubBlockRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        SUB_BLOCK_VIEW_BASIC = 236009797,
                        SUB_BLOCK_VIEW_FULL = 440711800,
                        SUB_BLOCK_VIEW_UNSPECIFIED = 246642446
                    }
                }

                /** Properties of a GetResourcePolicyRequest. */
                interface IGetResourcePolicyRequest {

                    /** GetResourcePolicyRequest project */
                    project?: (string|null);

                    /** GetResourcePolicyRequest region */
                    region?: (string|null);

                    /** GetResourcePolicyRequest resourcePolicy */
                    resourcePolicy?: (string|null);
                }

                /** Represents a GetResourcePolicyRequest. */
                class GetResourcePolicyRequest implements IGetResourcePolicyRequest {

                    /**
                     * Constructs a new GetResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetResourcePolicyRequest);

                    /** GetResourcePolicyRequest project. */
                    public project: string;

                    /** GetResourcePolicyRequest region. */
                    public region: string;

                    /** GetResourcePolicyRequest resourcePolicy. */
                    public resourcePolicy: string;

                    /**
                     * Creates a new GetResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetResourcePolicyRequest): google.cloud.compute.v1beta.GetResourcePolicyRequest;

                    /**
                     * Encodes the specified GetResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetResourcePolicyRequest.verify|verify} messages.
                     * @param message GetResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetResourcePolicyRequest.verify|verify} messages.
                     * @param message GetResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetResourcePolicyRequest;

                    /**
                     * Decodes a GetResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetResourcePolicyRequest;

                    /**
                     * Verifies a GetResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetResourcePolicyRequest;

                    /**
                     * Creates a plain object from a GetResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message GetResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRolloutPlanRequest. */
                interface IGetRolloutPlanRequest {

                    /** GetRolloutPlanRequest project */
                    project?: (string|null);

                    /** GetRolloutPlanRequest rolloutPlan */
                    rolloutPlan?: (string|null);
                }

                /** Represents a GetRolloutPlanRequest. */
                class GetRolloutPlanRequest implements IGetRolloutPlanRequest {

                    /**
                     * Constructs a new GetRolloutPlanRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRolloutPlanRequest);

                    /** GetRolloutPlanRequest project. */
                    public project: string;

                    /** GetRolloutPlanRequest rolloutPlan. */
                    public rolloutPlan: string;

                    /**
                     * Creates a new GetRolloutPlanRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRolloutPlanRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRolloutPlanRequest): google.cloud.compute.v1beta.GetRolloutPlanRequest;

                    /**
                     * Encodes the specified GetRolloutPlanRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRolloutPlanRequest.verify|verify} messages.
                     * @param message GetRolloutPlanRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRolloutPlanRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRolloutPlanRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRolloutPlanRequest.verify|verify} messages.
                     * @param message GetRolloutPlanRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRolloutPlanRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRolloutPlanRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRolloutPlanRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRolloutPlanRequest;

                    /**
                     * Decodes a GetRolloutPlanRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRolloutPlanRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRolloutPlanRequest;

                    /**
                     * Verifies a GetRolloutPlanRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRolloutPlanRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRolloutPlanRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRolloutPlanRequest;

                    /**
                     * Creates a plain object from a GetRolloutPlanRequest message. Also converts values to other types if specified.
                     * @param message GetRolloutPlanRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRolloutPlanRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRolloutPlanRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRolloutPlanRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRolloutRequest. */
                interface IGetRolloutRequest {

                    /** GetRolloutRequest project */
                    project?: (string|null);

                    /** GetRolloutRequest rollout */
                    rollout?: (string|null);
                }

                /** Represents a GetRolloutRequest. */
                class GetRolloutRequest implements IGetRolloutRequest {

                    /**
                     * Constructs a new GetRolloutRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRolloutRequest);

                    /** GetRolloutRequest project. */
                    public project: string;

                    /** GetRolloutRequest rollout. */
                    public rollout: string;

                    /**
                     * Creates a new GetRolloutRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRolloutRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRolloutRequest): google.cloud.compute.v1beta.GetRolloutRequest;

                    /**
                     * Encodes the specified GetRolloutRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRolloutRequest.verify|verify} messages.
                     * @param message GetRolloutRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRolloutRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRolloutRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRolloutRequest.verify|verify} messages.
                     * @param message GetRolloutRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRolloutRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRolloutRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRolloutRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRolloutRequest;

                    /**
                     * Decodes a GetRolloutRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRolloutRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRolloutRequest;

                    /**
                     * Verifies a GetRolloutRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRolloutRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRolloutRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRolloutRequest;

                    /**
                     * Creates a plain object from a GetRolloutRequest message. Also converts values to other types if specified.
                     * @param message GetRolloutRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRolloutRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRolloutRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRolloutRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRoutePolicyRouterRequest. */
                interface IGetRoutePolicyRouterRequest {

                    /** GetRoutePolicyRouterRequest policy */
                    policy?: (string|null);

                    /** GetRoutePolicyRouterRequest project */
                    project?: (string|null);

                    /** GetRoutePolicyRouterRequest region */
                    region?: (string|null);

                    /** GetRoutePolicyRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetRoutePolicyRouterRequest. */
                class GetRoutePolicyRouterRequest implements IGetRoutePolicyRouterRequest {

                    /**
                     * Constructs a new GetRoutePolicyRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRoutePolicyRouterRequest);

                    /** GetRoutePolicyRouterRequest policy. */
                    public policy?: (string|null);

                    /** GetRoutePolicyRouterRequest project. */
                    public project: string;

                    /** GetRoutePolicyRouterRequest region. */
                    public region: string;

                    /** GetRoutePolicyRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetRoutePolicyRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRoutePolicyRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRoutePolicyRouterRequest): google.cloud.compute.v1beta.GetRoutePolicyRouterRequest;

                    /**
                     * Encodes the specified GetRoutePolicyRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message GetRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRoutePolicyRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message GetRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRoutePolicyRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRoutePolicyRouterRequest;

                    /**
                     * Decodes a GetRoutePolicyRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRoutePolicyRouterRequest;

                    /**
                     * Verifies a GetRoutePolicyRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRoutePolicyRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRoutePolicyRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRoutePolicyRouterRequest;

                    /**
                     * Creates a plain object from a GetRoutePolicyRouterRequest message. Also converts values to other types if specified.
                     * @param message GetRoutePolicyRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRoutePolicyRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRoutePolicyRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRoutePolicyRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRouteRequest. */
                interface IGetRouteRequest {

                    /** GetRouteRequest project */
                    project?: (string|null);

                    /** GetRouteRequest route */
                    route?: (string|null);
                }

                /** Represents a GetRouteRequest. */
                class GetRouteRequest implements IGetRouteRequest {

                    /**
                     * Constructs a new GetRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRouteRequest);

                    /** GetRouteRequest project. */
                    public project: string;

                    /** GetRouteRequest route. */
                    public route: string;

                    /**
                     * Creates a new GetRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRouteRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRouteRequest): google.cloud.compute.v1beta.GetRouteRequest;

                    /**
                     * Encodes the specified GetRouteRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRouteRequest.verify|verify} messages.
                     * @param message GetRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRouteRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRouteRequest.verify|verify} messages.
                     * @param message GetRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRouteRequest;

                    /**
                     * Decodes a GetRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRouteRequest;

                    /**
                     * Verifies a GetRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRouteRequest;

                    /**
                     * Creates a plain object from a GetRouteRequest message. Also converts values to other types if specified.
                     * @param message GetRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRouterRequest. */
                interface IGetRouterRequest {

                    /** GetRouterRequest project */
                    project?: (string|null);

                    /** GetRouterRequest region */
                    region?: (string|null);

                    /** GetRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetRouterRequest. */
                class GetRouterRequest implements IGetRouterRequest {

                    /**
                     * Constructs a new GetRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRouterRequest);

                    /** GetRouterRequest project. */
                    public project: string;

                    /** GetRouterRequest region. */
                    public region: string;

                    /** GetRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRouterRequest): google.cloud.compute.v1beta.GetRouterRequest;

                    /**
                     * Encodes the specified GetRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRouterRequest.verify|verify} messages.
                     * @param message GetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRouterRequest.verify|verify} messages.
                     * @param message GetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRouterRequest;

                    /**
                     * Decodes a GetRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRouterRequest;

                    /**
                     * Verifies a GetRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRouterRequest;

                    /**
                     * Creates a plain object from a GetRouterRequest message. Also converts values to other types if specified.
                     * @param message GetRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRouterStatusRouterRequest. */
                interface IGetRouterStatusRouterRequest {

                    /** GetRouterStatusRouterRequest project */
                    project?: (string|null);

                    /** GetRouterStatusRouterRequest region */
                    region?: (string|null);

                    /** GetRouterStatusRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a GetRouterStatusRouterRequest. */
                class GetRouterStatusRouterRequest implements IGetRouterStatusRouterRequest {

                    /**
                     * Constructs a new GetRouterStatusRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRouterStatusRouterRequest);

                    /** GetRouterStatusRouterRequest project. */
                    public project: string;

                    /** GetRouterStatusRouterRequest region. */
                    public region: string;

                    /** GetRouterStatusRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new GetRouterStatusRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRouterStatusRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRouterStatusRouterRequest): google.cloud.compute.v1beta.GetRouterStatusRouterRequest;

                    /**
                     * Encodes the specified GetRouterStatusRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRouterStatusRouterRequest.verify|verify} messages.
                     * @param message GetRouterStatusRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRouterStatusRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRouterStatusRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRouterStatusRouterRequest.verify|verify} messages.
                     * @param message GetRouterStatusRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRouterStatusRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRouterStatusRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRouterStatusRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRouterStatusRouterRequest;

                    /**
                     * Decodes a GetRouterStatusRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRouterStatusRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRouterStatusRouterRequest;

                    /**
                     * Verifies a GetRouterStatusRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRouterStatusRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRouterStatusRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRouterStatusRouterRequest;

                    /**
                     * Creates a plain object from a GetRouterStatusRouterRequest message. Also converts values to other types if specified.
                     * @param message GetRouterStatusRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRouterStatusRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRouterStatusRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRouterStatusRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleFirewallPolicyRequest. */
                interface IGetRuleFirewallPolicyRequest {

                    /** GetRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetRuleFirewallPolicyRequest priority */
                    priority?: (number|null);
                }

                /** Represents a GetRuleFirewallPolicyRequest. */
                class GetRuleFirewallPolicyRequest implements IGetRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new GetRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRuleFirewallPolicyRequest);

                    /** GetRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /**
                     * Creates a new GetRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRuleFirewallPolicyRequest): google.cloud.compute.v1beta.GetRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRuleFirewallPolicyRequest;

                    /**
                     * Decodes a GetRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRuleFirewallPolicyRequest;

                    /**
                     * Verifies a GetRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleNetworkFirewallPolicyRequest. */
                interface IGetRuleNetworkFirewallPolicyRequest {

                    /** GetRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);
                }

                /** Represents a GetRuleNetworkFirewallPolicyRequest. */
                class GetRuleNetworkFirewallPolicyRequest implements IGetRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRuleNetworkFirewallPolicyRequest);

                    /** GetRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleOrganizationSecurityPolicyRequest. */
                interface IGetRuleOrganizationSecurityPolicyRequest {

                    /** GetRuleOrganizationSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetRuleOrganizationSecurityPolicyRequest. */
                class GetRuleOrganizationSecurityPolicyRequest implements IGetRuleOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new GetRuleOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRuleOrganizationSecurityPolicyRequest);

                    /** GetRuleOrganizationSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetRuleOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRuleOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.GetRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetRuleOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a GetRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a GetRuleOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRuleOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleRegionNetworkFirewallPolicyRequest. */
                interface IGetRuleRegionNetworkFirewallPolicyRequest {

                    /** GetRuleRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** GetRuleRegionNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** GetRuleRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRuleRegionNetworkFirewallPolicyRequest. */
                class GetRuleRegionNetworkFirewallPolicyRequest implements IGetRuleRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new GetRuleRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRuleRegionNetworkFirewallPolicyRequest);

                    /** GetRuleRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** GetRuleRegionNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** GetRuleRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRuleRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRuleRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.GetRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified GetRuleRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message GetRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a GetRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a GetRuleRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRuleRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleRegionSecurityPolicyRequest. */
                interface IGetRuleRegionSecurityPolicyRequest {

                    /** GetRuleRegionSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** GetRuleRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** GetRuleRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetRuleRegionSecurityPolicyRequest. */
                class GetRuleRegionSecurityPolicyRequest implements IGetRuleRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new GetRuleRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRuleRegionSecurityPolicyRequest);

                    /** GetRuleRegionSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** GetRuleRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** GetRuleRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetRuleRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRuleRegionSecurityPolicyRequest): google.cloud.compute.v1beta.GetRuleRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetRuleRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRuleRegionSecurityPolicyRequest;

                    /**
                     * Decodes a GetRuleRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRuleRegionSecurityPolicyRequest;

                    /**
                     * Verifies a GetRuleRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRuleRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRuleRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRuleSecurityPolicyRequest. */
                interface IGetRuleSecurityPolicyRequest {

                    /** GetRuleSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** GetRuleSecurityPolicyRequest project */
                    project?: (string|null);

                    /** GetRuleSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetRuleSecurityPolicyRequest. */
                class GetRuleSecurityPolicyRequest implements IGetRuleSecurityPolicyRequest {

                    /**
                     * Constructs a new GetRuleSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetRuleSecurityPolicyRequest);

                    /** GetRuleSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetRuleSecurityPolicyRequest project. */
                    public project: string;

                    /** GetRuleSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetRuleSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRuleSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetRuleSecurityPolicyRequest): google.cloud.compute.v1beta.GetRuleSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetRuleSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRuleSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRuleSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetRuleSecurityPolicyRequest;

                    /**
                     * Decodes a GetRuleSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetRuleSecurityPolicyRequest;

                    /**
                     * Verifies a GetRuleSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRuleSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRuleSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetRuleSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetRuleSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetRuleSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetRuleSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRuleSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRuleSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetScreenshotInstanceRequest. */
                interface IGetScreenshotInstanceRequest {

                    /** GetScreenshotInstanceRequest instance */
                    instance?: (string|null);

                    /** GetScreenshotInstanceRequest project */
                    project?: (string|null);

                    /** GetScreenshotInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetScreenshotInstanceRequest. */
                class GetScreenshotInstanceRequest implements IGetScreenshotInstanceRequest {

                    /**
                     * Constructs a new GetScreenshotInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetScreenshotInstanceRequest);

                    /** GetScreenshotInstanceRequest instance. */
                    public instance: string;

                    /** GetScreenshotInstanceRequest project. */
                    public project: string;

                    /** GetScreenshotInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetScreenshotInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetScreenshotInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetScreenshotInstanceRequest): google.cloud.compute.v1beta.GetScreenshotInstanceRequest;

                    /**
                     * Encodes the specified GetScreenshotInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetScreenshotInstanceRequest.verify|verify} messages.
                     * @param message GetScreenshotInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetScreenshotInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetScreenshotInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetScreenshotInstanceRequest.verify|verify} messages.
                     * @param message GetScreenshotInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetScreenshotInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetScreenshotInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetScreenshotInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetScreenshotInstanceRequest;

                    /**
                     * Decodes a GetScreenshotInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetScreenshotInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetScreenshotInstanceRequest;

                    /**
                     * Verifies a GetScreenshotInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetScreenshotInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetScreenshotInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetScreenshotInstanceRequest;

                    /**
                     * Creates a plain object from a GetScreenshotInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetScreenshotInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetScreenshotInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetScreenshotInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetScreenshotInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSecurityPolicyRequest. */
                interface IGetSecurityPolicyRequest {

                    /** GetSecurityPolicyRequest project */
                    project?: (string|null);

                    /** GetSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a GetSecurityPolicyRequest. */
                class GetSecurityPolicyRequest implements IGetSecurityPolicyRequest {

                    /**
                     * Constructs a new GetSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetSecurityPolicyRequest);

                    /** GetSecurityPolicyRequest project. */
                    public project: string;

                    /** GetSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new GetSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetSecurityPolicyRequest): google.cloud.compute.v1beta.GetSecurityPolicyRequest;

                    /**
                     * Encodes the specified GetSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetSecurityPolicyRequest.verify|verify} messages.
                     * @param message GetSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetSecurityPolicyRequest;

                    /**
                     * Decodes a GetSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetSecurityPolicyRequest;

                    /**
                     * Verifies a GetSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a GetSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSerialPortOutputInstanceRequest. */
                interface IGetSerialPortOutputInstanceRequest {

                    /** GetSerialPortOutputInstanceRequest instance */
                    instance?: (string|null);

                    /** GetSerialPortOutputInstanceRequest port */
                    port?: (number|null);

                    /** GetSerialPortOutputInstanceRequest project */
                    project?: (string|null);

                    /** GetSerialPortOutputInstanceRequest start */
                    start?: (number|Long|string|null);

                    /** GetSerialPortOutputInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetSerialPortOutputInstanceRequest. */
                class GetSerialPortOutputInstanceRequest implements IGetSerialPortOutputInstanceRequest {

                    /**
                     * Constructs a new GetSerialPortOutputInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest);

                    /** GetSerialPortOutputInstanceRequest instance. */
                    public instance: string;

                    /** GetSerialPortOutputInstanceRequest port. */
                    public port?: (number|null);

                    /** GetSerialPortOutputInstanceRequest project. */
                    public project: string;

                    /** GetSerialPortOutputInstanceRequest start. */
                    public start?: (number|Long|string|null);

                    /** GetSerialPortOutputInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetSerialPortOutputInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSerialPortOutputInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest): google.cloud.compute.v1beta.GetSerialPortOutputInstanceRequest;

                    /**
                     * Encodes the specified GetSerialPortOutputInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetSerialPortOutputInstanceRequest.verify|verify} messages.
                     * @param message GetSerialPortOutputInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSerialPortOutputInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetSerialPortOutputInstanceRequest.verify|verify} messages.
                     * @param message GetSerialPortOutputInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSerialPortOutputInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSerialPortOutputInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetSerialPortOutputInstanceRequest;

                    /**
                     * Decodes a GetSerialPortOutputInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSerialPortOutputInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetSerialPortOutputInstanceRequest;

                    /**
                     * Verifies a GetSerialPortOutputInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSerialPortOutputInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSerialPortOutputInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetSerialPortOutputInstanceRequest;

                    /**
                     * Creates a plain object from a GetSerialPortOutputInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetSerialPortOutputInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetSerialPortOutputInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSerialPortOutputInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSerialPortOutputInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetServiceAttachmentRequest. */
                interface IGetServiceAttachmentRequest {

                    /** GetServiceAttachmentRequest project */
                    project?: (string|null);

                    /** GetServiceAttachmentRequest region */
                    region?: (string|null);

                    /** GetServiceAttachmentRequest serviceAttachment */
                    serviceAttachment?: (string|null);

                    /** GetServiceAttachmentRequest showNatIps */
                    showNatIps?: (boolean|null);
                }

                /** Represents a GetServiceAttachmentRequest. */
                class GetServiceAttachmentRequest implements IGetServiceAttachmentRequest {

                    /**
                     * Constructs a new GetServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetServiceAttachmentRequest);

                    /** GetServiceAttachmentRequest project. */
                    public project: string;

                    /** GetServiceAttachmentRequest region. */
                    public region: string;

                    /** GetServiceAttachmentRequest serviceAttachment. */
                    public serviceAttachment: string;

                    /** GetServiceAttachmentRequest showNatIps. */
                    public showNatIps?: (boolean|null);

                    /**
                     * Creates a new GetServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetServiceAttachmentRequest): google.cloud.compute.v1beta.GetServiceAttachmentRequest;

                    /**
                     * Encodes the specified GetServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetServiceAttachmentRequest.verify|verify} messages.
                     * @param message GetServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetServiceAttachmentRequest.verify|verify} messages.
                     * @param message GetServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetServiceAttachmentRequest;

                    /**
                     * Decodes a GetServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetServiceAttachmentRequest;

                    /**
                     * Verifies a GetServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a GetServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message GetServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetShieldedInstanceIdentityInstanceRequest. */
                interface IGetShieldedInstanceIdentityInstanceRequest {

                    /** GetShieldedInstanceIdentityInstanceRequest instance */
                    instance?: (string|null);

                    /** GetShieldedInstanceIdentityInstanceRequest project */
                    project?: (string|null);

                    /** GetShieldedInstanceIdentityInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetShieldedInstanceIdentityInstanceRequest. */
                class GetShieldedInstanceIdentityInstanceRequest implements IGetShieldedInstanceIdentityInstanceRequest {

                    /**
                     * Constructs a new GetShieldedInstanceIdentityInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest);

                    /** GetShieldedInstanceIdentityInstanceRequest instance. */
                    public instance: string;

                    /** GetShieldedInstanceIdentityInstanceRequest project. */
                    public project: string;

                    /** GetShieldedInstanceIdentityInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetShieldedInstanceIdentityInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetShieldedInstanceIdentityInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest): google.cloud.compute.v1beta.GetShieldedInstanceIdentityInstanceRequest;

                    /**
                     * Encodes the specified GetShieldedInstanceIdentityInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetShieldedInstanceIdentityInstanceRequest.verify|verify} messages.
                     * @param message GetShieldedInstanceIdentityInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetShieldedInstanceIdentityInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetShieldedInstanceIdentityInstanceRequest.verify|verify} messages.
                     * @param message GetShieldedInstanceIdentityInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetShieldedInstanceIdentityInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetShieldedInstanceIdentityInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetShieldedInstanceIdentityInstanceRequest;

                    /**
                     * Decodes a GetShieldedInstanceIdentityInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetShieldedInstanceIdentityInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetShieldedInstanceIdentityInstanceRequest;

                    /**
                     * Verifies a GetShieldedInstanceIdentityInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetShieldedInstanceIdentityInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetShieldedInstanceIdentityInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetShieldedInstanceIdentityInstanceRequest;

                    /**
                     * Creates a plain object from a GetShieldedInstanceIdentityInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetShieldedInstanceIdentityInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetShieldedInstanceIdentityInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetShieldedInstanceIdentityInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetShieldedInstanceIdentityInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetShieldedVmIdentityInstanceRequest. */
                interface IGetShieldedVmIdentityInstanceRequest {

                    /** GetShieldedVmIdentityInstanceRequest instance */
                    instance?: (string|null);

                    /** GetShieldedVmIdentityInstanceRequest project */
                    project?: (string|null);

                    /** GetShieldedVmIdentityInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetShieldedVmIdentityInstanceRequest. */
                class GetShieldedVmIdentityInstanceRequest implements IGetShieldedVmIdentityInstanceRequest {

                    /**
                     * Constructs a new GetShieldedVmIdentityInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest);

                    /** GetShieldedVmIdentityInstanceRequest instance. */
                    public instance: string;

                    /** GetShieldedVmIdentityInstanceRequest project. */
                    public project: string;

                    /** GetShieldedVmIdentityInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetShieldedVmIdentityInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetShieldedVmIdentityInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest): google.cloud.compute.v1beta.GetShieldedVmIdentityInstanceRequest;

                    /**
                     * Encodes the specified GetShieldedVmIdentityInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetShieldedVmIdentityInstanceRequest.verify|verify} messages.
                     * @param message GetShieldedVmIdentityInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetShieldedVmIdentityInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetShieldedVmIdentityInstanceRequest.verify|verify} messages.
                     * @param message GetShieldedVmIdentityInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetShieldedVmIdentityInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetShieldedVmIdentityInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetShieldedVmIdentityInstanceRequest;

                    /**
                     * Decodes a GetShieldedVmIdentityInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetShieldedVmIdentityInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetShieldedVmIdentityInstanceRequest;

                    /**
                     * Verifies a GetShieldedVmIdentityInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetShieldedVmIdentityInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetShieldedVmIdentityInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetShieldedVmIdentityInstanceRequest;

                    /**
                     * Creates a plain object from a GetShieldedVmIdentityInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetShieldedVmIdentityInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetShieldedVmIdentityInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetShieldedVmIdentityInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetShieldedVmIdentityInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSnapshotGroupRequest. */
                interface IGetSnapshotGroupRequest {

                    /** GetSnapshotGroupRequest project */
                    project?: (string|null);

                    /** GetSnapshotGroupRequest snapshotGroup */
                    snapshotGroup?: (string|null);
                }

                /** Represents a GetSnapshotGroupRequest. */
                class GetSnapshotGroupRequest implements IGetSnapshotGroupRequest {

                    /**
                     * Constructs a new GetSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetSnapshotGroupRequest);

                    /** GetSnapshotGroupRequest project. */
                    public project: string;

                    /** GetSnapshotGroupRequest snapshotGroup. */
                    public snapshotGroup: string;

                    /**
                     * Creates a new GetSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetSnapshotGroupRequest): google.cloud.compute.v1beta.GetSnapshotGroupRequest;

                    /**
                     * Encodes the specified GetSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetSnapshotGroupRequest.verify|verify} messages.
                     * @param message GetSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetSnapshotGroupRequest;

                    /**
                     * Decodes a GetSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetSnapshotGroupRequest;

                    /**
                     * Verifies a GetSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a GetSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message GetSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSnapshotRequest. */
                interface IGetSnapshotRequest {

                    /** GetSnapshotRequest project */
                    project?: (string|null);

                    /** GetSnapshotRequest snapshot */
                    snapshot?: (string|null);
                }

                /** Represents a GetSnapshotRequest. */
                class GetSnapshotRequest implements IGetSnapshotRequest {

                    /**
                     * Constructs a new GetSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetSnapshotRequest);

                    /** GetSnapshotRequest project. */
                    public project: string;

                    /** GetSnapshotRequest snapshot. */
                    public snapshot: string;

                    /**
                     * Creates a new GetSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetSnapshotRequest): google.cloud.compute.v1beta.GetSnapshotRequest;

                    /**
                     * Encodes the specified GetSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetSnapshotRequest.verify|verify} messages.
                     * @param message GetSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetSnapshotRequest.verify|verify} messages.
                     * @param message GetSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetSnapshotRequest;

                    /**
                     * Decodes a GetSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetSnapshotRequest;

                    /**
                     * Verifies a GetSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetSnapshotRequest;

                    /**
                     * Creates a plain object from a GetSnapshotRequest message. Also converts values to other types if specified.
                     * @param message GetSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSnapshotSettingRequest. */
                interface IGetSnapshotSettingRequest {

                    /** GetSnapshotSettingRequest project */
                    project?: (string|null);
                }

                /** Represents a GetSnapshotSettingRequest. */
                class GetSnapshotSettingRequest implements IGetSnapshotSettingRequest {

                    /**
                     * Constructs a new GetSnapshotSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetSnapshotSettingRequest);

                    /** GetSnapshotSettingRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetSnapshotSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSnapshotSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetSnapshotSettingRequest): google.cloud.compute.v1beta.GetSnapshotSettingRequest;

                    /**
                     * Encodes the specified GetSnapshotSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetSnapshotSettingRequest.verify|verify} messages.
                     * @param message GetSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSnapshotSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetSnapshotSettingRequest.verify|verify} messages.
                     * @param message GetSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSnapshotSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetSnapshotSettingRequest;

                    /**
                     * Decodes a GetSnapshotSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetSnapshotSettingRequest;

                    /**
                     * Verifies a GetSnapshotSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSnapshotSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSnapshotSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetSnapshotSettingRequest;

                    /**
                     * Creates a plain object from a GetSnapshotSettingRequest message. Also converts values to other types if specified.
                     * @param message GetSnapshotSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetSnapshotSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSnapshotSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSnapshotSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSslCertificateRequest. */
                interface IGetSslCertificateRequest {

                    /** GetSslCertificateRequest project */
                    project?: (string|null);

                    /** GetSslCertificateRequest sslCertificate */
                    sslCertificate?: (string|null);
                }

                /** Represents a GetSslCertificateRequest. */
                class GetSslCertificateRequest implements IGetSslCertificateRequest {

                    /**
                     * Constructs a new GetSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetSslCertificateRequest);

                    /** GetSslCertificateRequest project. */
                    public project: string;

                    /** GetSslCertificateRequest sslCertificate. */
                    public sslCertificate: string;

                    /**
                     * Creates a new GetSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetSslCertificateRequest): google.cloud.compute.v1beta.GetSslCertificateRequest;

                    /**
                     * Encodes the specified GetSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetSslCertificateRequest.verify|verify} messages.
                     * @param message GetSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetSslCertificateRequest.verify|verify} messages.
                     * @param message GetSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetSslCertificateRequest;

                    /**
                     * Decodes a GetSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetSslCertificateRequest;

                    /**
                     * Verifies a GetSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetSslCertificateRequest;

                    /**
                     * Creates a plain object from a GetSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message GetSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSslPolicyRequest. */
                interface IGetSslPolicyRequest {

                    /** GetSslPolicyRequest project */
                    project?: (string|null);

                    /** GetSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a GetSslPolicyRequest. */
                class GetSslPolicyRequest implements IGetSslPolicyRequest {

                    /**
                     * Constructs a new GetSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetSslPolicyRequest);

                    /** GetSslPolicyRequest project. */
                    public project: string;

                    /** GetSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /**
                     * Creates a new GetSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetSslPolicyRequest): google.cloud.compute.v1beta.GetSslPolicyRequest;

                    /**
                     * Encodes the specified GetSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetSslPolicyRequest.verify|verify} messages.
                     * @param message GetSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetSslPolicyRequest.verify|verify} messages.
                     * @param message GetSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetSslPolicyRequest;

                    /**
                     * Decodes a GetSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetSslPolicyRequest;

                    /**
                     * Verifies a GetSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetSslPolicyRequest;

                    /**
                     * Creates a plain object from a GetSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStatusVpnGatewayRequest. */
                interface IGetStatusVpnGatewayRequest {

                    /** GetStatusVpnGatewayRequest project */
                    project?: (string|null);

                    /** GetStatusVpnGatewayRequest region */
                    region?: (string|null);

                    /** GetStatusVpnGatewayRequest vpnGateway */
                    vpnGateway?: (string|null);
                }

                /** Represents a GetStatusVpnGatewayRequest. */
                class GetStatusVpnGatewayRequest implements IGetStatusVpnGatewayRequest {

                    /**
                     * Constructs a new GetStatusVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetStatusVpnGatewayRequest);

                    /** GetStatusVpnGatewayRequest project. */
                    public project: string;

                    /** GetStatusVpnGatewayRequest region. */
                    public region: string;

                    /** GetStatusVpnGatewayRequest vpnGateway. */
                    public vpnGateway: string;

                    /**
                     * Creates a new GetStatusVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStatusVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetStatusVpnGatewayRequest): google.cloud.compute.v1beta.GetStatusVpnGatewayRequest;

                    /**
                     * Encodes the specified GetStatusVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetStatusVpnGatewayRequest.verify|verify} messages.
                     * @param message GetStatusVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetStatusVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStatusVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetStatusVpnGatewayRequest.verify|verify} messages.
                     * @param message GetStatusVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetStatusVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStatusVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStatusVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetStatusVpnGatewayRequest;

                    /**
                     * Decodes a GetStatusVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStatusVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetStatusVpnGatewayRequest;

                    /**
                     * Verifies a GetStatusVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStatusVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStatusVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetStatusVpnGatewayRequest;

                    /**
                     * Creates a plain object from a GetStatusVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message GetStatusVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetStatusVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStatusVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStatusVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStoragePoolRequest. */
                interface IGetStoragePoolRequest {

                    /** GetStoragePoolRequest project */
                    project?: (string|null);

                    /** GetStoragePoolRequest storagePool */
                    storagePool?: (string|null);

                    /** GetStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetStoragePoolRequest. */
                class GetStoragePoolRequest implements IGetStoragePoolRequest {

                    /**
                     * Constructs a new GetStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetStoragePoolRequest);

                    /** GetStoragePoolRequest project. */
                    public project: string;

                    /** GetStoragePoolRequest storagePool. */
                    public storagePool: string;

                    /** GetStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetStoragePoolRequest): google.cloud.compute.v1beta.GetStoragePoolRequest;

                    /**
                     * Encodes the specified GetStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetStoragePoolRequest.verify|verify} messages.
                     * @param message GetStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetStoragePoolRequest.verify|verify} messages.
                     * @param message GetStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetStoragePoolRequest;

                    /**
                     * Decodes a GetStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetStoragePoolRequest;

                    /**
                     * Verifies a GetStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetStoragePoolRequest;

                    /**
                     * Creates a plain object from a GetStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message GetStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStoragePoolTypeRequest. */
                interface IGetStoragePoolTypeRequest {

                    /** GetStoragePoolTypeRequest project */
                    project?: (string|null);

                    /** GetStoragePoolTypeRequest storagePoolType */
                    storagePoolType?: (string|null);

                    /** GetStoragePoolTypeRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetStoragePoolTypeRequest. */
                class GetStoragePoolTypeRequest implements IGetStoragePoolTypeRequest {

                    /**
                     * Constructs a new GetStoragePoolTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetStoragePoolTypeRequest);

                    /** GetStoragePoolTypeRequest project. */
                    public project: string;

                    /** GetStoragePoolTypeRequest storagePoolType. */
                    public storagePoolType: string;

                    /** GetStoragePoolTypeRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetStoragePoolTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStoragePoolTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetStoragePoolTypeRequest): google.cloud.compute.v1beta.GetStoragePoolTypeRequest;

                    /**
                     * Encodes the specified GetStoragePoolTypeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetStoragePoolTypeRequest.verify|verify} messages.
                     * @param message GetStoragePoolTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetStoragePoolTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStoragePoolTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetStoragePoolTypeRequest.verify|verify} messages.
                     * @param message GetStoragePoolTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetStoragePoolTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStoragePoolTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStoragePoolTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetStoragePoolTypeRequest;

                    /**
                     * Decodes a GetStoragePoolTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStoragePoolTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetStoragePoolTypeRequest;

                    /**
                     * Verifies a GetStoragePoolTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStoragePoolTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStoragePoolTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetStoragePoolTypeRequest;

                    /**
                     * Creates a plain object from a GetStoragePoolTypeRequest message. Also converts values to other types if specified.
                     * @param message GetStoragePoolTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetStoragePoolTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStoragePoolTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStoragePoolTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetSubnetworkRequest. */
                interface IGetSubnetworkRequest {

                    /** GetSubnetworkRequest project */
                    project?: (string|null);

                    /** GetSubnetworkRequest region */
                    region?: (string|null);

                    /** GetSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);

                    /** GetSubnetworkRequest views */
                    views?: (string|null);
                }

                /** Represents a GetSubnetworkRequest. */
                class GetSubnetworkRequest implements IGetSubnetworkRequest {

                    /**
                     * Constructs a new GetSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetSubnetworkRequest);

                    /** GetSubnetworkRequest project. */
                    public project: string;

                    /** GetSubnetworkRequest region. */
                    public region: string;

                    /** GetSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /** GetSubnetworkRequest views. */
                    public views?: (string|null);

                    /**
                     * Creates a new GetSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetSubnetworkRequest): google.cloud.compute.v1beta.GetSubnetworkRequest;

                    /**
                     * Encodes the specified GetSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetSubnetworkRequest.verify|verify} messages.
                     * @param message GetSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetSubnetworkRequest.verify|verify} messages.
                     * @param message GetSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetSubnetworkRequest;

                    /**
                     * Decodes a GetSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetSubnetworkRequest;

                    /**
                     * Verifies a GetSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetSubnetworkRequest;

                    /**
                     * Creates a plain object from a GetSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message GetSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GetSubnetworkRequest {

                    /** Views enum. */
                    enum Views {
                        UNDEFINED_VIEWS = 0,
                        DEFAULT = 115302945,
                        WITH_UTILIZATION = 504090633
                    }
                }

                /** Properties of a GetTargetGrpcProxyRequest. */
                interface IGetTargetGrpcProxyRequest {

                    /** GetTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** GetTargetGrpcProxyRequest targetGrpcProxy */
                    targetGrpcProxy?: (string|null);
                }

                /** Represents a GetTargetGrpcProxyRequest. */
                class GetTargetGrpcProxyRequest implements IGetTargetGrpcProxyRequest {

                    /**
                     * Constructs a new GetTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTargetGrpcProxyRequest);

                    /** GetTargetGrpcProxyRequest project. */
                    public project: string;

                    /** GetTargetGrpcProxyRequest targetGrpcProxy. */
                    public targetGrpcProxy: string;

                    /**
                     * Creates a new GetTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTargetGrpcProxyRequest): google.cloud.compute.v1beta.GetTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified GetTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message GetTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message GetTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTargetGrpcProxyRequest;

                    /**
                     * Decodes a GetTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTargetGrpcProxyRequest;

                    /**
                     * Verifies a GetTargetGrpcProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetHttpProxyRequest. */
                interface IGetTargetHttpProxyRequest {

                    /** GetTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** GetTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);
                }

                /** Represents a GetTargetHttpProxyRequest. */
                class GetTargetHttpProxyRequest implements IGetTargetHttpProxyRequest {

                    /**
                     * Constructs a new GetTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTargetHttpProxyRequest);

                    /** GetTargetHttpProxyRequest project. */
                    public project: string;

                    /** GetTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /**
                     * Creates a new GetTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTargetHttpProxyRequest): google.cloud.compute.v1beta.GetTargetHttpProxyRequest;

                    /**
                     * Encodes the specified GetTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetHttpProxyRequest.verify|verify} messages.
                     * @param message GetTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetHttpProxyRequest.verify|verify} messages.
                     * @param message GetTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTargetHttpProxyRequest;

                    /**
                     * Decodes a GetTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTargetHttpProxyRequest;

                    /**
                     * Verifies a GetTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetHttpsProxyRequest. */
                interface IGetTargetHttpsProxyRequest {

                    /** GetTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** GetTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a GetTargetHttpsProxyRequest. */
                class GetTargetHttpsProxyRequest implements IGetTargetHttpsProxyRequest {

                    /**
                     * Constructs a new GetTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTargetHttpsProxyRequest);

                    /** GetTargetHttpsProxyRequest project. */
                    public project: string;

                    /** GetTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new GetTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTargetHttpsProxyRequest): google.cloud.compute.v1beta.GetTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified GetTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message GetTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message GetTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTargetHttpsProxyRequest;

                    /**
                     * Decodes a GetTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTargetHttpsProxyRequest;

                    /**
                     * Verifies a GetTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetInstanceRequest. */
                interface IGetTargetInstanceRequest {

                    /** GetTargetInstanceRequest project */
                    project?: (string|null);

                    /** GetTargetInstanceRequest targetInstance */
                    targetInstance?: (string|null);

                    /** GetTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetTargetInstanceRequest. */
                class GetTargetInstanceRequest implements IGetTargetInstanceRequest {

                    /**
                     * Constructs a new GetTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTargetInstanceRequest);

                    /** GetTargetInstanceRequest project. */
                    public project: string;

                    /** GetTargetInstanceRequest targetInstance. */
                    public targetInstance: string;

                    /** GetTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTargetInstanceRequest): google.cloud.compute.v1beta.GetTargetInstanceRequest;

                    /**
                     * Encodes the specified GetTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetInstanceRequest.verify|verify} messages.
                     * @param message GetTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetInstanceRequest.verify|verify} messages.
                     * @param message GetTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTargetInstanceRequest;

                    /**
                     * Decodes a GetTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTargetInstanceRequest;

                    /**
                     * Verifies a GetTargetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTargetInstanceRequest;

                    /**
                     * Creates a plain object from a GetTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message GetTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetPoolRequest. */
                interface IGetTargetPoolRequest {

                    /** GetTargetPoolRequest project */
                    project?: (string|null);

                    /** GetTargetPoolRequest region */
                    region?: (string|null);

                    /** GetTargetPoolRequest targetPool */
                    targetPool?: (string|null);
                }

                /** Represents a GetTargetPoolRequest. */
                class GetTargetPoolRequest implements IGetTargetPoolRequest {

                    /**
                     * Constructs a new GetTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTargetPoolRequest);

                    /** GetTargetPoolRequest project. */
                    public project: string;

                    /** GetTargetPoolRequest region. */
                    public region: string;

                    /** GetTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /**
                     * Creates a new GetTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTargetPoolRequest): google.cloud.compute.v1beta.GetTargetPoolRequest;

                    /**
                     * Encodes the specified GetTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetPoolRequest.verify|verify} messages.
                     * @param message GetTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetPoolRequest.verify|verify} messages.
                     * @param message GetTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTargetPoolRequest;

                    /**
                     * Decodes a GetTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTargetPoolRequest;

                    /**
                     * Verifies a GetTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTargetPoolRequest;

                    /**
                     * Creates a plain object from a GetTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message GetTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetSslProxyRequest. */
                interface IGetTargetSslProxyRequest {

                    /** GetTargetSslProxyRequest project */
                    project?: (string|null);

                    /** GetTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a GetTargetSslProxyRequest. */
                class GetTargetSslProxyRequest implements IGetTargetSslProxyRequest {

                    /**
                     * Constructs a new GetTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTargetSslProxyRequest);

                    /** GetTargetSslProxyRequest project. */
                    public project: string;

                    /** GetTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new GetTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTargetSslProxyRequest): google.cloud.compute.v1beta.GetTargetSslProxyRequest;

                    /**
                     * Encodes the specified GetTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetSslProxyRequest.verify|verify} messages.
                     * @param message GetTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetSslProxyRequest.verify|verify} messages.
                     * @param message GetTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTargetSslProxyRequest;

                    /**
                     * Decodes a GetTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTargetSslProxyRequest;

                    /**
                     * Verifies a GetTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetTcpProxyRequest. */
                interface IGetTargetTcpProxyRequest {

                    /** GetTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** GetTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a GetTargetTcpProxyRequest. */
                class GetTargetTcpProxyRequest implements IGetTargetTcpProxyRequest {

                    /**
                     * Constructs a new GetTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTargetTcpProxyRequest);

                    /** GetTargetTcpProxyRequest project. */
                    public project: string;

                    /** GetTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new GetTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTargetTcpProxyRequest): google.cloud.compute.v1beta.GetTargetTcpProxyRequest;

                    /**
                     * Encodes the specified GetTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetTcpProxyRequest.verify|verify} messages.
                     * @param message GetTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetTcpProxyRequest.verify|verify} messages.
                     * @param message GetTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTargetTcpProxyRequest;

                    /**
                     * Decodes a GetTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTargetTcpProxyRequest;

                    /**
                     * Verifies a GetTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a GetTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message GetTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTargetVpnGatewayRequest. */
                interface IGetTargetVpnGatewayRequest {

                    /** GetTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** GetTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** GetTargetVpnGatewayRequest targetVpnGateway */
                    targetVpnGateway?: (string|null);
                }

                /** Represents a GetTargetVpnGatewayRequest. */
                class GetTargetVpnGatewayRequest implements IGetTargetVpnGatewayRequest {

                    /**
                     * Constructs a new GetTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTargetVpnGatewayRequest);

                    /** GetTargetVpnGatewayRequest project. */
                    public project: string;

                    /** GetTargetVpnGatewayRequest region. */
                    public region: string;

                    /** GetTargetVpnGatewayRequest targetVpnGateway. */
                    public targetVpnGateway: string;

                    /**
                     * Creates a new GetTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTargetVpnGatewayRequest): google.cloud.compute.v1beta.GetTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified GetTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message GetTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message GetTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTargetVpnGatewayRequest;

                    /**
                     * Decodes a GetTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTargetVpnGatewayRequest;

                    /**
                     * Verifies a GetTargetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a GetTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message GetTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTrafficClassificationRuleRegionNetworkPolicyRequest. */
                interface IGetTrafficClassificationRuleRegionNetworkPolicyRequest {

                    /** GetTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** GetTrafficClassificationRuleRegionNetworkPolicyRequest priority */
                    priority?: (number|null);

                    /** GetTrafficClassificationRuleRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** GetTrafficClassificationRuleRegionNetworkPolicyRequest region */
                    region?: (string|null);
                }

                /** Represents a GetTrafficClassificationRuleRegionNetworkPolicyRequest. */
                class GetTrafficClassificationRuleRegionNetworkPolicyRequest implements IGetTrafficClassificationRuleRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new GetTrafficClassificationRuleRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetTrafficClassificationRuleRegionNetworkPolicyRequest);

                    /** GetTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** GetTrafficClassificationRuleRegionNetworkPolicyRequest priority. */
                    public priority?: (number|null);

                    /** GetTrafficClassificationRuleRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** GetTrafficClassificationRuleRegionNetworkPolicyRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetTrafficClassificationRuleRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTrafficClassificationRuleRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetTrafficClassificationRuleRegionNetworkPolicyRequest): google.cloud.compute.v1beta.GetTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified GetTrafficClassificationRuleRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetTrafficClassificationRuleRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message GetTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetTrafficClassificationRuleRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTrafficClassificationRuleRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetTrafficClassificationRuleRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message GetTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetTrafficClassificationRuleRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTrafficClassificationRuleRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Decodes a GetTrafficClassificationRuleRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Verifies a GetTrafficClassificationRuleRegionNetworkPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTrafficClassificationRuleRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTrafficClassificationRuleRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from a GetTrafficClassificationRuleRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetTrafficClassificationRuleRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTrafficClassificationRuleRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetUrlMapRequest. */
                interface IGetUrlMapRequest {

                    /** GetUrlMapRequest project */
                    project?: (string|null);

                    /** GetUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a GetUrlMapRequest. */
                class GetUrlMapRequest implements IGetUrlMapRequest {

                    /**
                     * Constructs a new GetUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetUrlMapRequest);

                    /** GetUrlMapRequest project. */
                    public project: string;

                    /** GetUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new GetUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetUrlMapRequest): google.cloud.compute.v1beta.GetUrlMapRequest;

                    /**
                     * Encodes the specified GetUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetUrlMapRequest.verify|verify} messages.
                     * @param message GetUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetUrlMapRequest.verify|verify} messages.
                     * @param message GetUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetUrlMapRequest;

                    /**
                     * Decodes a GetUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetUrlMapRequest;

                    /**
                     * Verifies a GetUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetUrlMapRequest;

                    /**
                     * Creates a plain object from a GetUrlMapRequest message. Also converts values to other types if specified.
                     * @param message GetUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionOperationMetadata. */
                interface IGetVersionOperationMetadata {

                    /** GetVersionOperationMetadata inlineSbomInfo */
                    inlineSbomInfo?: (google.cloud.compute.v1beta.IGetVersionOperationMetadataSbomInfo|null);
                }

                /** Represents a GetVersionOperationMetadata. */
                class GetVersionOperationMetadata implements IGetVersionOperationMetadata {

                    /**
                     * Constructs a new GetVersionOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetVersionOperationMetadata);

                    /** GetVersionOperationMetadata inlineSbomInfo. */
                    public inlineSbomInfo?: (google.cloud.compute.v1beta.IGetVersionOperationMetadataSbomInfo|null);

                    /**
                     * Creates a new GetVersionOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetVersionOperationMetadata): google.cloud.compute.v1beta.GetVersionOperationMetadata;

                    /**
                     * Encodes the specified GetVersionOperationMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.GetVersionOperationMetadata.verify|verify} messages.
                     * @param message GetVersionOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetVersionOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetVersionOperationMetadata.verify|verify} messages.
                     * @param message GetVersionOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetVersionOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetVersionOperationMetadata;

                    /**
                     * Decodes a GetVersionOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetVersionOperationMetadata;

                    /**
                     * Verifies a GetVersionOperationMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVersionOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetVersionOperationMetadata;

                    /**
                     * Creates a plain object from a GetVersionOperationMetadata message. Also converts values to other types if specified.
                     * @param message GetVersionOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetVersionOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionOperationMetadataSbomInfo. */
                interface IGetVersionOperationMetadataSbomInfo {

                    /** GetVersionOperationMetadataSbomInfo currentComponentVersions */
                    currentComponentVersions?: ({ [k: string]: string }|null);

                    /** GetVersionOperationMetadataSbomInfo targetComponentVersions */
                    targetComponentVersions?: ({ [k: string]: string }|null);
                }

                /** Represents a GetVersionOperationMetadataSbomInfo. */
                class GetVersionOperationMetadataSbomInfo implements IGetVersionOperationMetadataSbomInfo {

                    /**
                     * Constructs a new GetVersionOperationMetadataSbomInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetVersionOperationMetadataSbomInfo);

                    /** GetVersionOperationMetadataSbomInfo currentComponentVersions. */
                    public currentComponentVersions: { [k: string]: string };

                    /** GetVersionOperationMetadataSbomInfo targetComponentVersions. */
                    public targetComponentVersions: { [k: string]: string };

                    /**
                     * Creates a new GetVersionOperationMetadataSbomInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionOperationMetadataSbomInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetVersionOperationMetadataSbomInfo): google.cloud.compute.v1beta.GetVersionOperationMetadataSbomInfo;

                    /**
                     * Encodes the specified GetVersionOperationMetadataSbomInfo message. Does not implicitly {@link google.cloud.compute.v1beta.GetVersionOperationMetadataSbomInfo.verify|verify} messages.
                     * @param message GetVersionOperationMetadataSbomInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetVersionOperationMetadataSbomInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionOperationMetadataSbomInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetVersionOperationMetadataSbomInfo.verify|verify} messages.
                     * @param message GetVersionOperationMetadataSbomInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetVersionOperationMetadataSbomInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionOperationMetadataSbomInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionOperationMetadataSbomInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetVersionOperationMetadataSbomInfo;

                    /**
                     * Decodes a GetVersionOperationMetadataSbomInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionOperationMetadataSbomInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetVersionOperationMetadataSbomInfo;

                    /**
                     * Verifies a GetVersionOperationMetadataSbomInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVersionOperationMetadataSbomInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionOperationMetadataSbomInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetVersionOperationMetadataSbomInfo;

                    /**
                     * Creates a plain object from a GetVersionOperationMetadataSbomInfo message. Also converts values to other types if specified.
                     * @param message GetVersionOperationMetadataSbomInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetVersionOperationMetadataSbomInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionOperationMetadataSbomInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionOperationMetadataSbomInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionReservationSlotRequest. */
                interface IGetVersionReservationSlotRequest {

                    /** GetVersionReservationSlotRequest parentName */
                    parentName?: (string|null);

                    /** GetVersionReservationSlotRequest project */
                    project?: (string|null);

                    /** GetVersionReservationSlotRequest requestId */
                    requestId?: (string|null);

                    /** GetVersionReservationSlotRequest reservationSlot */
                    reservationSlot?: (string|null);

                    /** GetVersionReservationSlotRequest reservationSlotsGetVersionRequestResource */
                    reservationSlotsGetVersionRequestResource?: (google.cloud.compute.v1beta.IReservationSlotsGetVersionRequest|null);

                    /** GetVersionReservationSlotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetVersionReservationSlotRequest. */
                class GetVersionReservationSlotRequest implements IGetVersionReservationSlotRequest {

                    /**
                     * Constructs a new GetVersionReservationSlotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetVersionReservationSlotRequest);

                    /** GetVersionReservationSlotRequest parentName. */
                    public parentName: string;

                    /** GetVersionReservationSlotRequest project. */
                    public project: string;

                    /** GetVersionReservationSlotRequest requestId. */
                    public requestId?: (string|null);

                    /** GetVersionReservationSlotRequest reservationSlot. */
                    public reservationSlot: string;

                    /** GetVersionReservationSlotRequest reservationSlotsGetVersionRequestResource. */
                    public reservationSlotsGetVersionRequestResource?: (google.cloud.compute.v1beta.IReservationSlotsGetVersionRequest|null);

                    /** GetVersionReservationSlotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetVersionReservationSlotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionReservationSlotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetVersionReservationSlotRequest): google.cloud.compute.v1beta.GetVersionReservationSlotRequest;

                    /**
                     * Encodes the specified GetVersionReservationSlotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetVersionReservationSlotRequest.verify|verify} messages.
                     * @param message GetVersionReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetVersionReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionReservationSlotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetVersionReservationSlotRequest.verify|verify} messages.
                     * @param message GetVersionReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetVersionReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionReservationSlotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetVersionReservationSlotRequest;

                    /**
                     * Decodes a GetVersionReservationSlotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetVersionReservationSlotRequest;

                    /**
                     * Verifies a GetVersionReservationSlotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVersionReservationSlotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionReservationSlotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetVersionReservationSlotRequest;

                    /**
                     * Creates a plain object from a GetVersionReservationSlotRequest message. Also converts values to other types if specified.
                     * @param message GetVersionReservationSlotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetVersionReservationSlotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionReservationSlotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionReservationSlotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVersionReservationSubBlockRequest. */
                interface IGetVersionReservationSubBlockRequest {

                    /** GetVersionReservationSubBlockRequest parentName */
                    parentName?: (string|null);

                    /** GetVersionReservationSubBlockRequest project */
                    project?: (string|null);

                    /** GetVersionReservationSubBlockRequest requestId */
                    requestId?: (string|null);

                    /** GetVersionReservationSubBlockRequest reservationSubBlock */
                    reservationSubBlock?: (string|null);

                    /** GetVersionReservationSubBlockRequest reservationSubBlocksGetVersionRequestResource */
                    reservationSubBlocksGetVersionRequestResource?: (google.cloud.compute.v1beta.IReservationSubBlocksGetVersionRequest|null);

                    /** GetVersionReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetVersionReservationSubBlockRequest. */
                class GetVersionReservationSubBlockRequest implements IGetVersionReservationSubBlockRequest {

                    /**
                     * Constructs a new GetVersionReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetVersionReservationSubBlockRequest);

                    /** GetVersionReservationSubBlockRequest parentName. */
                    public parentName: string;

                    /** GetVersionReservationSubBlockRequest project. */
                    public project: string;

                    /** GetVersionReservationSubBlockRequest requestId. */
                    public requestId?: (string|null);

                    /** GetVersionReservationSubBlockRequest reservationSubBlock. */
                    public reservationSubBlock: string;

                    /** GetVersionReservationSubBlockRequest reservationSubBlocksGetVersionRequestResource. */
                    public reservationSubBlocksGetVersionRequestResource?: (google.cloud.compute.v1beta.IReservationSubBlocksGetVersionRequest|null);

                    /** GetVersionReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetVersionReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVersionReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetVersionReservationSubBlockRequest): google.cloud.compute.v1beta.GetVersionReservationSubBlockRequest;

                    /**
                     * Encodes the specified GetVersionReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetVersionReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetVersionReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetVersionReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVersionReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetVersionReservationSubBlockRequest.verify|verify} messages.
                     * @param message GetVersionReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetVersionReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVersionReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVersionReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetVersionReservationSubBlockRequest;

                    /**
                     * Decodes a GetVersionReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVersionReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetVersionReservationSubBlockRequest;

                    /**
                     * Verifies a GetVersionReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVersionReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVersionReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetVersionReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a GetVersionReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message GetVersionReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetVersionReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVersionReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVersionReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVpnGatewayRequest. */
                interface IGetVpnGatewayRequest {

                    /** GetVpnGatewayRequest project */
                    project?: (string|null);

                    /** GetVpnGatewayRequest region */
                    region?: (string|null);

                    /** GetVpnGatewayRequest vpnGateway */
                    vpnGateway?: (string|null);
                }

                /** Represents a GetVpnGatewayRequest. */
                class GetVpnGatewayRequest implements IGetVpnGatewayRequest {

                    /**
                     * Constructs a new GetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetVpnGatewayRequest);

                    /** GetVpnGatewayRequest project. */
                    public project: string;

                    /** GetVpnGatewayRequest region. */
                    public region: string;

                    /** GetVpnGatewayRequest vpnGateway. */
                    public vpnGateway: string;

                    /**
                     * Creates a new GetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetVpnGatewayRequest): google.cloud.compute.v1beta.GetVpnGatewayRequest;

                    /**
                     * Encodes the specified GetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetVpnGatewayRequest.verify|verify} messages.
                     * @param message GetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetVpnGatewayRequest.verify|verify} messages.
                     * @param message GetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetVpnGatewayRequest;

                    /**
                     * Decodes a GetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetVpnGatewayRequest;

                    /**
                     * Verifies a GetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a GetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message GetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetVpnTunnelRequest. */
                interface IGetVpnTunnelRequest {

                    /** GetVpnTunnelRequest project */
                    project?: (string|null);

                    /** GetVpnTunnelRequest region */
                    region?: (string|null);

                    /** GetVpnTunnelRequest vpnTunnel */
                    vpnTunnel?: (string|null);
                }

                /** Represents a GetVpnTunnelRequest. */
                class GetVpnTunnelRequest implements IGetVpnTunnelRequest {

                    /**
                     * Constructs a new GetVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetVpnTunnelRequest);

                    /** GetVpnTunnelRequest project. */
                    public project: string;

                    /** GetVpnTunnelRequest region. */
                    public region: string;

                    /** GetVpnTunnelRequest vpnTunnel. */
                    public vpnTunnel: string;

                    /**
                     * Creates a new GetVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetVpnTunnelRequest): google.cloud.compute.v1beta.GetVpnTunnelRequest;

                    /**
                     * Encodes the specified GetVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetVpnTunnelRequest.verify|verify} messages.
                     * @param message GetVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetVpnTunnelRequest.verify|verify} messages.
                     * @param message GetVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetVpnTunnelRequest;

                    /**
                     * Decodes a GetVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetVpnTunnelRequest;

                    /**
                     * Verifies a GetVpnTunnelRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetVpnTunnelRequest;

                    /**
                     * Creates a plain object from a GetVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message GetVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetWireGroupRequest. */
                interface IGetWireGroupRequest {

                    /** GetWireGroupRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** GetWireGroupRequest project */
                    project?: (string|null);

                    /** GetWireGroupRequest wireGroup */
                    wireGroup?: (string|null);
                }

                /** Represents a GetWireGroupRequest. */
                class GetWireGroupRequest implements IGetWireGroupRequest {

                    /**
                     * Constructs a new GetWireGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetWireGroupRequest);

                    /** GetWireGroupRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** GetWireGroupRequest project. */
                    public project: string;

                    /** GetWireGroupRequest wireGroup. */
                    public wireGroup: string;

                    /**
                     * Creates a new GetWireGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetWireGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetWireGroupRequest): google.cloud.compute.v1beta.GetWireGroupRequest;

                    /**
                     * Encodes the specified GetWireGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetWireGroupRequest.verify|verify} messages.
                     * @param message GetWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetWireGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetWireGroupRequest.verify|verify} messages.
                     * @param message GetWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetWireGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetWireGroupRequest;

                    /**
                     * Decodes a GetWireGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetWireGroupRequest;

                    /**
                     * Verifies a GetWireGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetWireGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetWireGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetWireGroupRequest;

                    /**
                     * Creates a plain object from a GetWireGroupRequest message. Also converts values to other types if specified.
                     * @param message GetWireGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetWireGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetWireGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetWireGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetXpnHostProjectRequest. */
                interface IGetXpnHostProjectRequest {

                    /** GetXpnHostProjectRequest project */
                    project?: (string|null);
                }

                /** Represents a GetXpnHostProjectRequest. */
                class GetXpnHostProjectRequest implements IGetXpnHostProjectRequest {

                    /**
                     * Constructs a new GetXpnHostProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetXpnHostProjectRequest);

                    /** GetXpnHostProjectRequest project. */
                    public project: string;

                    /**
                     * Creates a new GetXpnHostProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetXpnHostProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetXpnHostProjectRequest): google.cloud.compute.v1beta.GetXpnHostProjectRequest;

                    /**
                     * Encodes the specified GetXpnHostProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetXpnHostProjectRequest.verify|verify} messages.
                     * @param message GetXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetXpnHostProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetXpnHostProjectRequest.verify|verify} messages.
                     * @param message GetXpnHostProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetXpnHostProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetXpnHostProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetXpnHostProjectRequest;

                    /**
                     * Decodes a GetXpnHostProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetXpnHostProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetXpnHostProjectRequest;

                    /**
                     * Verifies a GetXpnHostProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetXpnHostProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetXpnHostProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetXpnHostProjectRequest;

                    /**
                     * Creates a plain object from a GetXpnHostProjectRequest message. Also converts values to other types if specified.
                     * @param message GetXpnHostProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetXpnHostProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetXpnHostProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetXpnHostProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetXpnResourcesProjectsRequest. */
                interface IGetXpnResourcesProjectsRequest {

                    /** GetXpnResourcesProjectsRequest filter */
                    filter?: (string|null);

                    /** GetXpnResourcesProjectsRequest maxResults */
                    maxResults?: (number|null);

                    /** GetXpnResourcesProjectsRequest orderBy */
                    orderBy?: (string|null);

                    /** GetXpnResourcesProjectsRequest pageToken */
                    pageToken?: (string|null);

                    /** GetXpnResourcesProjectsRequest project */
                    project?: (string|null);

                    /** GetXpnResourcesProjectsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a GetXpnResourcesProjectsRequest. */
                class GetXpnResourcesProjectsRequest implements IGetXpnResourcesProjectsRequest {

                    /**
                     * Constructs a new GetXpnResourcesProjectsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetXpnResourcesProjectsRequest);

                    /** GetXpnResourcesProjectsRequest filter. */
                    public filter?: (string|null);

                    /** GetXpnResourcesProjectsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** GetXpnResourcesProjectsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** GetXpnResourcesProjectsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** GetXpnResourcesProjectsRequest project. */
                    public project: string;

                    /** GetXpnResourcesProjectsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new GetXpnResourcesProjectsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetXpnResourcesProjectsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetXpnResourcesProjectsRequest): google.cloud.compute.v1beta.GetXpnResourcesProjectsRequest;

                    /**
                     * Encodes the specified GetXpnResourcesProjectsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetXpnResourcesProjectsRequest.verify|verify} messages.
                     * @param message GetXpnResourcesProjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetXpnResourcesProjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetXpnResourcesProjectsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetXpnResourcesProjectsRequest.verify|verify} messages.
                     * @param message GetXpnResourcesProjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetXpnResourcesProjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetXpnResourcesProjectsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetXpnResourcesProjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetXpnResourcesProjectsRequest;

                    /**
                     * Decodes a GetXpnResourcesProjectsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetXpnResourcesProjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetXpnResourcesProjectsRequest;

                    /**
                     * Verifies a GetXpnResourcesProjectsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetXpnResourcesProjectsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetXpnResourcesProjectsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetXpnResourcesProjectsRequest;

                    /**
                     * Creates a plain object from a GetXpnResourcesProjectsRequest message. Also converts values to other types if specified.
                     * @param message GetXpnResourcesProjectsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetXpnResourcesProjectsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetXpnResourcesProjectsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetXpnResourcesProjectsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetZoneOperationRequest. */
                interface IGetZoneOperationRequest {

                    /** GetZoneOperationRequest operation */
                    operation?: (string|null);

                    /** GetZoneOperationRequest project */
                    project?: (string|null);

                    /** GetZoneOperationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetZoneOperationRequest. */
                class GetZoneOperationRequest implements IGetZoneOperationRequest {

                    /**
                     * Constructs a new GetZoneOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetZoneOperationRequest);

                    /** GetZoneOperationRequest operation. */
                    public operation: string;

                    /** GetZoneOperationRequest project. */
                    public project: string;

                    /** GetZoneOperationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetZoneOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetZoneOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetZoneOperationRequest): google.cloud.compute.v1beta.GetZoneOperationRequest;

                    /**
                     * Encodes the specified GetZoneOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetZoneOperationRequest.verify|verify} messages.
                     * @param message GetZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetZoneOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetZoneOperationRequest.verify|verify} messages.
                     * @param message GetZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetZoneOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetZoneOperationRequest;

                    /**
                     * Decodes a GetZoneOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetZoneOperationRequest;

                    /**
                     * Verifies a GetZoneOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetZoneOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetZoneOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetZoneOperationRequest;

                    /**
                     * Creates a plain object from a GetZoneOperationRequest message. Also converts values to other types if specified.
                     * @param message GetZoneOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetZoneOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetZoneOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetZoneOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetZoneRequest. */
                interface IGetZoneRequest {

                    /** GetZoneRequest project */
                    project?: (string|null);

                    /** GetZoneRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetZoneRequest. */
                class GetZoneRequest implements IGetZoneRequest {

                    /**
                     * Constructs a new GetZoneRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetZoneRequest);

                    /** GetZoneRequest project. */
                    public project: string;

                    /** GetZoneRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetZoneRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetZoneRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetZoneRequest): google.cloud.compute.v1beta.GetZoneRequest;

                    /**
                     * Encodes the specified GetZoneRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetZoneRequest.verify|verify} messages.
                     * @param message GetZoneRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetZoneRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetZoneRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetZoneRequest.verify|verify} messages.
                     * @param message GetZoneRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetZoneRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetZoneRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetZoneRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetZoneRequest;

                    /**
                     * Decodes a GetZoneRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetZoneRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetZoneRequest;

                    /**
                     * Verifies a GetZoneRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetZoneRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetZoneRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetZoneRequest;

                    /**
                     * Creates a plain object from a GetZoneRequest message. Also converts values to other types if specified.
                     * @param message GetZoneRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetZoneRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetZoneRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetZoneRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetZoneVmExtensionPolicyRequest. */
                interface IGetZoneVmExtensionPolicyRequest {

                    /** GetZoneVmExtensionPolicyRequest project */
                    project?: (string|null);

                    /** GetZoneVmExtensionPolicyRequest vmExtensionPolicy */
                    vmExtensionPolicy?: (string|null);

                    /** GetZoneVmExtensionPolicyRequest zone */
                    zone?: (string|null);
                }

                /** Represents a GetZoneVmExtensionPolicyRequest. */
                class GetZoneVmExtensionPolicyRequest implements IGetZoneVmExtensionPolicyRequest {

                    /**
                     * Constructs a new GetZoneVmExtensionPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGetZoneVmExtensionPolicyRequest);

                    /** GetZoneVmExtensionPolicyRequest project. */
                    public project: string;

                    /** GetZoneVmExtensionPolicyRequest vmExtensionPolicy. */
                    public vmExtensionPolicy: string;

                    /** GetZoneVmExtensionPolicyRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new GetZoneVmExtensionPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetZoneVmExtensionPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGetZoneVmExtensionPolicyRequest): google.cloud.compute.v1beta.GetZoneVmExtensionPolicyRequest;

                    /**
                     * Encodes the specified GetZoneVmExtensionPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GetZoneVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message GetZoneVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGetZoneVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetZoneVmExtensionPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GetZoneVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message GetZoneVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGetZoneVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetZoneVmExtensionPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetZoneVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GetZoneVmExtensionPolicyRequest;

                    /**
                     * Decodes a GetZoneVmExtensionPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetZoneVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GetZoneVmExtensionPolicyRequest;

                    /**
                     * Verifies a GetZoneVmExtensionPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetZoneVmExtensionPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetZoneVmExtensionPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GetZoneVmExtensionPolicyRequest;

                    /**
                     * Creates a plain object from a GetZoneVmExtensionPolicyRequest message. Also converts values to other types if specified.
                     * @param message GetZoneVmExtensionPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GetZoneVmExtensionPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetZoneVmExtensionPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetZoneVmExtensionPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalAddressesMoveRequest. */
                interface IGlobalAddressesMoveRequest {

                    /** GlobalAddressesMoveRequest description */
                    description?: (string|null);

                    /** GlobalAddressesMoveRequest destinationAddress */
                    destinationAddress?: (string|null);
                }

                /** Represents a GlobalAddressesMoveRequest. */
                class GlobalAddressesMoveRequest implements IGlobalAddressesMoveRequest {

                    /**
                     * Constructs a new GlobalAddressesMoveRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalAddressesMoveRequest);

                    /** GlobalAddressesMoveRequest description. */
                    public description?: (string|null);

                    /** GlobalAddressesMoveRequest destinationAddress. */
                    public destinationAddress?: (string|null);

                    /**
                     * Creates a new GlobalAddressesMoveRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalAddressesMoveRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalAddressesMoveRequest): google.cloud.compute.v1beta.GlobalAddressesMoveRequest;

                    /**
                     * Encodes the specified GlobalAddressesMoveRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalAddressesMoveRequest.verify|verify} messages.
                     * @param message GlobalAddressesMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalAddressesMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalAddressesMoveRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalAddressesMoveRequest.verify|verify} messages.
                     * @param message GlobalAddressesMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalAddressesMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalAddressesMoveRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalAddressesMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalAddressesMoveRequest;

                    /**
                     * Decodes a GlobalAddressesMoveRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalAddressesMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalAddressesMoveRequest;

                    /**
                     * Verifies a GlobalAddressesMoveRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalAddressesMoveRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalAddressesMoveRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalAddressesMoveRequest;

                    /**
                     * Creates a plain object from a GlobalAddressesMoveRequest message. Also converts values to other types if specified.
                     * @param message GlobalAddressesMoveRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalAddressesMoveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalAddressesMoveRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalAddressesMoveRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalNetworkEndpointGroupsAttachEndpointsRequest. */
                interface IGlobalNetworkEndpointGroupsAttachEndpointsRequest {

                    /** GlobalNetworkEndpointGroupsAttachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1beta.INetworkEndpoint[]|null);
                }

                /** Represents a GlobalNetworkEndpointGroupsAttachEndpointsRequest. */
                class GlobalNetworkEndpointGroupsAttachEndpointsRequest implements IGlobalNetworkEndpointGroupsAttachEndpointsRequest {

                    /**
                     * Constructs a new GlobalNetworkEndpointGroupsAttachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsAttachEndpointsRequest);

                    /** GlobalNetworkEndpointGroupsAttachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1beta.INetworkEndpoint[];

                    /**
                     * Creates a new GlobalNetworkEndpointGroupsAttachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalNetworkEndpointGroupsAttachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsAttachEndpointsRequest): google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Encodes the specified GlobalNetworkEndpointGroupsAttachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message GlobalNetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalNetworkEndpointGroupsAttachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message GlobalNetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalNetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Decodes a GlobalNetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Verifies a GlobalNetworkEndpointGroupsAttachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalNetworkEndpointGroupsAttachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Creates a plain object from a GlobalNetworkEndpointGroupsAttachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsAttachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalNetworkEndpointGroupsAttachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalNetworkEndpointGroupsAttachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalNetworkEndpointGroupsDetachEndpointsRequest. */
                interface IGlobalNetworkEndpointGroupsDetachEndpointsRequest {

                    /** GlobalNetworkEndpointGroupsDetachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1beta.INetworkEndpoint[]|null);
                }

                /** Represents a GlobalNetworkEndpointGroupsDetachEndpointsRequest. */
                class GlobalNetworkEndpointGroupsDetachEndpointsRequest implements IGlobalNetworkEndpointGroupsDetachEndpointsRequest {

                    /**
                     * Constructs a new GlobalNetworkEndpointGroupsDetachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsDetachEndpointsRequest);

                    /** GlobalNetworkEndpointGroupsDetachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1beta.INetworkEndpoint[];

                    /**
                     * Creates a new GlobalNetworkEndpointGroupsDetachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalNetworkEndpointGroupsDetachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsDetachEndpointsRequest): google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Encodes the specified GlobalNetworkEndpointGroupsDetachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message GlobalNetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalNetworkEndpointGroupsDetachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message GlobalNetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalNetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalNetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Decodes a GlobalNetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Verifies a GlobalNetworkEndpointGroupsDetachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalNetworkEndpointGroupsDetachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Creates a plain object from a GlobalNetworkEndpointGroupsDetachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalNetworkEndpointGroupsDetachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalNetworkEndpointGroupsDetachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalNetworkEndpointGroupsDetachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalOrganizationSetPolicyRequest. */
                interface IGlobalOrganizationSetPolicyRequest {

                    /** GlobalOrganizationSetPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1beta.IBinding[]|null);

                    /** GlobalOrganizationSetPolicyRequest etag */
                    etag?: (string|null);

                    /** GlobalOrganizationSetPolicyRequest policy */
                    policy?: (google.cloud.compute.v1beta.IPolicy|null);
                }

                /** Represents a GlobalOrganizationSetPolicyRequest. */
                class GlobalOrganizationSetPolicyRequest implements IGlobalOrganizationSetPolicyRequest {

                    /**
                     * Constructs a new GlobalOrganizationSetPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalOrganizationSetPolicyRequest);

                    /** GlobalOrganizationSetPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1beta.IBinding[];

                    /** GlobalOrganizationSetPolicyRequest etag. */
                    public etag?: (string|null);

                    /** GlobalOrganizationSetPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1beta.IPolicy|null);

                    /**
                     * Creates a new GlobalOrganizationSetPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalOrganizationSetPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalOrganizationSetPolicyRequest): google.cloud.compute.v1beta.GlobalOrganizationSetPolicyRequest;

                    /**
                     * Encodes the specified GlobalOrganizationSetPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalOrganizationSetPolicyRequest.verify|verify} messages.
                     * @param message GlobalOrganizationSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalOrganizationSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalOrganizationSetPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalOrganizationSetPolicyRequest.verify|verify} messages.
                     * @param message GlobalOrganizationSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalOrganizationSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalOrganizationSetPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalOrganizationSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalOrganizationSetPolicyRequest;

                    /**
                     * Decodes a GlobalOrganizationSetPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalOrganizationSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalOrganizationSetPolicyRequest;

                    /**
                     * Verifies a GlobalOrganizationSetPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalOrganizationSetPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalOrganizationSetPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalOrganizationSetPolicyRequest;

                    /**
                     * Creates a plain object from a GlobalOrganizationSetPolicyRequest message. Also converts values to other types if specified.
                     * @param message GlobalOrganizationSetPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalOrganizationSetPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalOrganizationSetPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalOrganizationSetPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalSetLabelsRequest. */
                interface IGlobalSetLabelsRequest {

                    /** GlobalSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** GlobalSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a GlobalSetLabelsRequest. */
                class GlobalSetLabelsRequest implements IGlobalSetLabelsRequest {

                    /**
                     * Constructs a new GlobalSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalSetLabelsRequest);

                    /** GlobalSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** GlobalSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new GlobalSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalSetLabelsRequest): google.cloud.compute.v1beta.GlobalSetLabelsRequest;

                    /**
                     * Encodes the specified GlobalSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalSetLabelsRequest.verify|verify} messages.
                     * @param message GlobalSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalSetLabelsRequest.verify|verify} messages.
                     * @param message GlobalSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalSetLabelsRequest;

                    /**
                     * Decodes a GlobalSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalSetLabelsRequest;

                    /**
                     * Verifies a GlobalSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalSetLabelsRequest;

                    /**
                     * Creates a plain object from a GlobalSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message GlobalSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalSetPolicyRequest. */
                interface IGlobalSetPolicyRequest {

                    /** GlobalSetPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1beta.IBinding[]|null);

                    /** GlobalSetPolicyRequest etag */
                    etag?: (string|null);

                    /** GlobalSetPolicyRequest policy */
                    policy?: (google.cloud.compute.v1beta.IPolicy|null);
                }

                /** Represents a GlobalSetPolicyRequest. */
                class GlobalSetPolicyRequest implements IGlobalSetPolicyRequest {

                    /**
                     * Constructs a new GlobalSetPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalSetPolicyRequest);

                    /** GlobalSetPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1beta.IBinding[];

                    /** GlobalSetPolicyRequest etag. */
                    public etag?: (string|null);

                    /** GlobalSetPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1beta.IPolicy|null);

                    /**
                     * Creates a new GlobalSetPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalSetPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalSetPolicyRequest): google.cloud.compute.v1beta.GlobalSetPolicyRequest;

                    /**
                     * Encodes the specified GlobalSetPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalSetPolicyRequest.verify|verify} messages.
                     * @param message GlobalSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalSetPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalSetPolicyRequest.verify|verify} messages.
                     * @param message GlobalSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalSetPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalSetPolicyRequest;

                    /**
                     * Decodes a GlobalSetPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalSetPolicyRequest;

                    /**
                     * Verifies a GlobalSetPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalSetPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalSetPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalSetPolicyRequest;

                    /**
                     * Creates a plain object from a GlobalSetPolicyRequest message. Also converts values to other types if specified.
                     * @param message GlobalSetPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalSetPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalSetPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalSetPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalVmExtensionPolicy. */
                interface IGlobalVmExtensionPolicy {

                    /** GlobalVmExtensionPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** GlobalVmExtensionPolicy description */
                    description?: (string|null);

                    /** GlobalVmExtensionPolicy extensionPolicies */
                    extensionPolicies?: ({ [k: string]: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyExtensionPolicy }|null);

                    /** GlobalVmExtensionPolicy id */
                    id?: (number|Long|string|null);

                    /** GlobalVmExtensionPolicy instanceSelectors */
                    instanceSelectors?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyInstanceSelector[]|null);

                    /** GlobalVmExtensionPolicy kind */
                    kind?: (string|null);

                    /** GlobalVmExtensionPolicy name */
                    name?: (string|null);

                    /** GlobalVmExtensionPolicy priority */
                    priority?: (number|null);

                    /** GlobalVmExtensionPolicy rolloutOperation */
                    rolloutOperation?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperation|null);

                    /** GlobalVmExtensionPolicy scopedResourceStatus */
                    scopedResourceStatus?: (string|null);

                    /** GlobalVmExtensionPolicy selfLink */
                    selfLink?: (string|null);

                    /** GlobalVmExtensionPolicy selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** GlobalVmExtensionPolicy updateTimestamp */
                    updateTimestamp?: (string|null);
                }

                /** Represents a GlobalVmExtensionPolicy. */
                class GlobalVmExtensionPolicy implements IGlobalVmExtensionPolicy {

                    /**
                     * Constructs a new GlobalVmExtensionPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicy);

                    /** GlobalVmExtensionPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** GlobalVmExtensionPolicy description. */
                    public description?: (string|null);

                    /** GlobalVmExtensionPolicy extensionPolicies. */
                    public extensionPolicies: { [k: string]: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyExtensionPolicy };

                    /** GlobalVmExtensionPolicy id. */
                    public id?: (number|Long|string|null);

                    /** GlobalVmExtensionPolicy instanceSelectors. */
                    public instanceSelectors: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyInstanceSelector[];

                    /** GlobalVmExtensionPolicy kind. */
                    public kind?: (string|null);

                    /** GlobalVmExtensionPolicy name. */
                    public name?: (string|null);

                    /** GlobalVmExtensionPolicy priority. */
                    public priority?: (number|null);

                    /** GlobalVmExtensionPolicy rolloutOperation. */
                    public rolloutOperation?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperation|null);

                    /** GlobalVmExtensionPolicy scopedResourceStatus. */
                    public scopedResourceStatus?: (string|null);

                    /** GlobalVmExtensionPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** GlobalVmExtensionPolicy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** GlobalVmExtensionPolicy updateTimestamp. */
                    public updateTimestamp?: (string|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicy): google.cloud.compute.v1beta.GlobalVmExtensionPolicy;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicy.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicy.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicy;

                    /**
                     * Decodes a GlobalVmExtensionPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicy;

                    /**
                     * Verifies a GlobalVmExtensionPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicy;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicy message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GlobalVmExtensionPolicy {

                    /** ScopedResourceStatus enum. */
                    enum ScopedResourceStatus {
                        UNDEFINED_SCOPED_RESOURCE_STATUS = 0,
                        SCOPED_RESOURCE_STATUS_DELETING = 404198387,
                        SCOPED_RESOURCE_STATUS_UNSPECIFIED = 437941996
                    }
                }

                /** Properties of a GlobalVmExtensionPolicyExtensionPolicy. */
                interface IGlobalVmExtensionPolicyExtensionPolicy {

                    /** GlobalVmExtensionPolicyExtensionPolicy pinnedVersion */
                    pinnedVersion?: (string|null);

                    /** GlobalVmExtensionPolicyExtensionPolicy stringConfig */
                    stringConfig?: (string|null);
                }

                /** Represents a GlobalVmExtensionPolicyExtensionPolicy. */
                class GlobalVmExtensionPolicyExtensionPolicy implements IGlobalVmExtensionPolicyExtensionPolicy {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyExtensionPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyExtensionPolicy);

                    /** GlobalVmExtensionPolicyExtensionPolicy pinnedVersion. */
                    public pinnedVersion?: (string|null);

                    /** GlobalVmExtensionPolicyExtensionPolicy stringConfig. */
                    public stringConfig?: (string|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicyExtensionPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyExtensionPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyExtensionPolicy): google.cloud.compute.v1beta.GlobalVmExtensionPolicyExtensionPolicy;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyExtensionPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyExtensionPolicy.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyExtensionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyExtensionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyExtensionPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyExtensionPolicy.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyExtensionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyExtensionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyExtensionPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyExtensionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyExtensionPolicy;

                    /**
                     * Decodes a GlobalVmExtensionPolicyExtensionPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyExtensionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyExtensionPolicy;

                    /**
                     * Verifies a GlobalVmExtensionPolicyExtensionPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyExtensionPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyExtensionPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyExtensionPolicy;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyExtensionPolicy message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyExtensionPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyExtensionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyExtensionPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyExtensionPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalVmExtensionPolicyInstanceSelector. */
                interface IGlobalVmExtensionPolicyInstanceSelector {

                    /** GlobalVmExtensionPolicyInstanceSelector labelSelector */
                    labelSelector?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyLabelSelector|null);
                }

                /** Represents a GlobalVmExtensionPolicyInstanceSelector. */
                class GlobalVmExtensionPolicyInstanceSelector implements IGlobalVmExtensionPolicyInstanceSelector {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyInstanceSelector.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyInstanceSelector);

                    /** GlobalVmExtensionPolicyInstanceSelector labelSelector. */
                    public labelSelector?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyLabelSelector|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicyInstanceSelector instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyInstanceSelector instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyInstanceSelector): google.cloud.compute.v1beta.GlobalVmExtensionPolicyInstanceSelector;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyInstanceSelector message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyInstanceSelector.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyInstanceSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyInstanceSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyInstanceSelector message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyInstanceSelector.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyInstanceSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyInstanceSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyInstanceSelector message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyInstanceSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyInstanceSelector;

                    /**
                     * Decodes a GlobalVmExtensionPolicyInstanceSelector message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyInstanceSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyInstanceSelector;

                    /**
                     * Verifies a GlobalVmExtensionPolicyInstanceSelector message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyInstanceSelector message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyInstanceSelector
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyInstanceSelector;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyInstanceSelector message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyInstanceSelector
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyInstanceSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyInstanceSelector to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyInstanceSelector
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalVmExtensionPolicyLabelSelector. */
                interface IGlobalVmExtensionPolicyLabelSelector {

                    /** GlobalVmExtensionPolicyLabelSelector inclusionLabels */
                    inclusionLabels?: ({ [k: string]: string }|null);
                }

                /** Represents a GlobalVmExtensionPolicyLabelSelector. */
                class GlobalVmExtensionPolicyLabelSelector implements IGlobalVmExtensionPolicyLabelSelector {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyLabelSelector.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyLabelSelector);

                    /** GlobalVmExtensionPolicyLabelSelector inclusionLabels. */
                    public inclusionLabels: { [k: string]: string };

                    /**
                     * Creates a new GlobalVmExtensionPolicyLabelSelector instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyLabelSelector instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyLabelSelector): google.cloud.compute.v1beta.GlobalVmExtensionPolicyLabelSelector;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyLabelSelector message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyLabelSelector.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyLabelSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyLabelSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyLabelSelector message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyLabelSelector.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyLabelSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyLabelSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyLabelSelector message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyLabelSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyLabelSelector;

                    /**
                     * Decodes a GlobalVmExtensionPolicyLabelSelector message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyLabelSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyLabelSelector;

                    /**
                     * Verifies a GlobalVmExtensionPolicyLabelSelector message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyLabelSelector message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyLabelSelector
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyLabelSelector;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyLabelSelector message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyLabelSelector
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyLabelSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyLabelSelector to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyLabelSelector
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalVmExtensionPolicyList. */
                interface IGlobalVmExtensionPolicyList {

                    /** GlobalVmExtensionPolicyList etag */
                    etag?: (string|null);

                    /** GlobalVmExtensionPolicyList id */
                    id?: (string|null);

                    /** GlobalVmExtensionPolicyList items */
                    items?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicy[]|null);

                    /** GlobalVmExtensionPolicyList kind */
                    kind?: (string|null);

                    /** GlobalVmExtensionPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** GlobalVmExtensionPolicyList selfLink */
                    selfLink?: (string|null);

                    /** GlobalVmExtensionPolicyList unreachables */
                    unreachables?: (string[]|null);

                    /** GlobalVmExtensionPolicyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a GlobalVmExtensionPolicyList. */
                class GlobalVmExtensionPolicyList implements IGlobalVmExtensionPolicyList {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyList);

                    /** GlobalVmExtensionPolicyList etag. */
                    public etag?: (string|null);

                    /** GlobalVmExtensionPolicyList id. */
                    public id?: (string|null);

                    /** GlobalVmExtensionPolicyList items. */
                    public items: google.cloud.compute.v1beta.IGlobalVmExtensionPolicy[];

                    /** GlobalVmExtensionPolicyList kind. */
                    public kind?: (string|null);

                    /** GlobalVmExtensionPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** GlobalVmExtensionPolicyList selfLink. */
                    public selfLink?: (string|null);

                    /** GlobalVmExtensionPolicyList unreachables. */
                    public unreachables: string[];

                    /** GlobalVmExtensionPolicyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyList): google.cloud.compute.v1beta.GlobalVmExtensionPolicyList;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyList message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyList.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyList.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyList;

                    /**
                     * Decodes a GlobalVmExtensionPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyList;

                    /**
                     * Verifies a GlobalVmExtensionPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyList;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyList message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalVmExtensionPolicyRolloutOperation. */
                interface IGlobalVmExtensionPolicyRolloutOperation {

                    /** GlobalVmExtensionPolicyRolloutOperation rolloutInput */
                    rolloutInput?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutInput|null);

                    /** GlobalVmExtensionPolicyRolloutOperation rolloutStatus */
                    rolloutStatus?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatus|null);
                }

                /** Represents a GlobalVmExtensionPolicyRolloutOperation. */
                class GlobalVmExtensionPolicyRolloutOperation implements IGlobalVmExtensionPolicyRolloutOperation {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyRolloutOperation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperation);

                    /** GlobalVmExtensionPolicyRolloutOperation rolloutInput. */
                    public rolloutInput?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutInput|null);

                    /** GlobalVmExtensionPolicyRolloutOperation rolloutStatus. */
                    public rolloutStatus?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatus|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicyRolloutOperation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyRolloutOperation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperation): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperation;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperation message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperation.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperation.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyRolloutOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperation;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyRolloutOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperation;

                    /**
                     * Verifies a GlobalVmExtensionPolicyRolloutOperation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyRolloutOperation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyRolloutOperation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperation;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyRolloutOperation message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyRolloutOperation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyRolloutOperation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyRolloutOperation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalVmExtensionPolicyRolloutOperationRolloutInput. */
                interface IGlobalVmExtensionPolicyRolloutOperationRolloutInput {

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutInput conflictBehavior */
                    conflictBehavior?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutInput name */
                    name?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutInput predefinedRolloutPlan */
                    predefinedRolloutPlan?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutInput retryUuid */
                    retryUuid?: (string|null);
                }

                /** Represents a GlobalVmExtensionPolicyRolloutOperationRolloutInput. */
                class GlobalVmExtensionPolicyRolloutOperationRolloutInput implements IGlobalVmExtensionPolicyRolloutOperationRolloutInput {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyRolloutOperationRolloutInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutInput);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutInput conflictBehavior. */
                    public conflictBehavior?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutInput name. */
                    public name?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutInput predefinedRolloutPlan. */
                    public predefinedRolloutPlan?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutInput retryUuid. */
                    public retryUuid?: (string|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicyRolloutOperationRolloutInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutInput instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutInput): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutInput;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperationRolloutInput message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutInput.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperationRolloutInput message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutInput.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperationRolloutInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutInput;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperationRolloutInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutInput;

                    /**
                     * Verifies a GlobalVmExtensionPolicyRolloutOperationRolloutInput message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyRolloutOperationRolloutInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutInput;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyRolloutOperationRolloutInput message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyRolloutOperationRolloutInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyRolloutOperationRolloutInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GlobalVmExtensionPolicyRolloutOperationRolloutInput {

                    /** PredefinedRolloutPlan enum. */
                    enum PredefinedRolloutPlan {
                        UNDEFINED_PREDEFINED_ROLLOUT_PLAN = 0,
                        FAST_ROLLOUT = 207153326,
                        ROLLOUT_PLAN_UNSPECIFIED = 144511983,
                        SLOW_ROLLOUT = 31032659
                    }
                }

                /** Properties of a GlobalVmExtensionPolicyRolloutOperationRolloutStatus. */
                interface IGlobalVmExtensionPolicyRolloutOperationRolloutStatus {

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatus currentRollouts */
                    currentRollouts?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata[]|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatus previousRollout */
                    previousRollout?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata|null);
                }

                /** Represents a GlobalVmExtensionPolicyRolloutOperationRolloutStatus. */
                class GlobalVmExtensionPolicyRolloutOperationRolloutStatus implements IGlobalVmExtensionPolicyRolloutOperationRolloutStatus {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyRolloutOperationRolloutStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatus);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatus currentRollouts. */
                    public currentRollouts: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata[];

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatus previousRollout. */
                    public previousRollout?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicyRolloutOperationRolloutStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatus): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatus;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperationRolloutStatus message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatus.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperationRolloutStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatus.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperationRolloutStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatus;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperationRolloutStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatus;

                    /**
                     * Verifies a GlobalVmExtensionPolicyRolloutOperationRolloutStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyRolloutOperationRolloutStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatus;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyRolloutOperationRolloutStatus message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyRolloutOperationRolloutStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyRolloutOperationRolloutStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata. */
                interface IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata {

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata locationRolloutStatus */
                    locationRolloutStatus?: ({ [k: string]: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus }|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata rollout */
                    rollout?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata rolloutPlan */
                    rolloutPlan?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata state */
                    state?: (string|null);
                }

                /** Represents a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata. */
                class GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata implements IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata locationRolloutStatus. */
                    public locationRolloutStatus: { [k: string]: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus };

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata rollout. */
                    public rollout?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata rolloutPlan. */
                    public rolloutPlan?: (string|null);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata state. */
                    public state?: (string|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata;

                    /**
                     * Verifies a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        STATE_CANCELLED = 534636259,
                        STATE_COMPLETED = 265728989,
                        STATE_FAILED = 50857931,
                        STATE_PAUSED = 337513660,
                        STATE_PROCESSING = 74195873,
                        STATE_UNKNOWN = 230861404,
                        STATE_UNSPECIFIED = 470755401
                    }
                }

                /** Properties of a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus. */
                interface IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus {

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus state */
                    state?: (string|null);
                }

                /** Represents a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus. */
                class GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus implements IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus {

                    /**
                     * Constructs a new GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus);

                    /** GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus state. */
                    public state?: (string|null);

                    /**
                     * Creates a new GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus.verify|verify} messages.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus;

                    /**
                     * Decodes a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus;

                    /**
                     * Verifies a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus;

                    /**
                     * Creates a plain object from a GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus message. Also converts values to other types if specified.
                     * @param message GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        LOCATION_ROLLOUT_STATE_COMPLETED = 134765221,
                        LOCATION_ROLLOUT_STATE_FAILED = 53286403,
                        LOCATION_ROLLOUT_STATE_NOT_STARTED = 471817423,
                        LOCATION_ROLLOUT_STATE_SKIPPED = 54074890,
                        LOCATION_ROLLOUT_STATE_UNSPECIFIED = 242367761
                    }
                }

                /** Properties of a GroupMaintenanceInfo. */
                interface IGroupMaintenanceInfo {

                    /** GroupMaintenanceInfo instanceMaintenanceOngoingCount */
                    instanceMaintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo instanceMaintenancePendingCount */
                    instanceMaintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo maintenanceOngoingCount */
                    maintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo maintenancePendingCount */
                    maintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo schedulingType */
                    schedulingType?: (string|null);

                    /** GroupMaintenanceInfo subblockInfraMaintenanceOngoingCount */
                    subblockInfraMaintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo subblockInfraMaintenancePendingCount */
                    subblockInfraMaintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo upcomingGroupMaintenance */
                    upcomingGroupMaintenance?: (google.cloud.compute.v1beta.IUpcomingMaintenance|null);
                }

                /** Represents a GroupMaintenanceInfo. */
                class GroupMaintenanceInfo implements IGroupMaintenanceInfo {

                    /**
                     * Constructs a new GroupMaintenanceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGroupMaintenanceInfo);

                    /** GroupMaintenanceInfo instanceMaintenanceOngoingCount. */
                    public instanceMaintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo instanceMaintenancePendingCount. */
                    public instanceMaintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo maintenanceOngoingCount. */
                    public maintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo maintenancePendingCount. */
                    public maintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo schedulingType. */
                    public schedulingType?: (string|null);

                    /** GroupMaintenanceInfo subblockInfraMaintenanceOngoingCount. */
                    public subblockInfraMaintenanceOngoingCount?: (number|null);

                    /** GroupMaintenanceInfo subblockInfraMaintenancePendingCount. */
                    public subblockInfraMaintenancePendingCount?: (number|null);

                    /** GroupMaintenanceInfo upcomingGroupMaintenance. */
                    public upcomingGroupMaintenance?: (google.cloud.compute.v1beta.IUpcomingMaintenance|null);

                    /**
                     * Creates a new GroupMaintenanceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GroupMaintenanceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGroupMaintenanceInfo): google.cloud.compute.v1beta.GroupMaintenanceInfo;

                    /**
                     * Encodes the specified GroupMaintenanceInfo message. Does not implicitly {@link google.cloud.compute.v1beta.GroupMaintenanceInfo.verify|verify} messages.
                     * @param message GroupMaintenanceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGroupMaintenanceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GroupMaintenanceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GroupMaintenanceInfo.verify|verify} messages.
                     * @param message GroupMaintenanceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGroupMaintenanceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GroupMaintenanceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GroupMaintenanceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GroupMaintenanceInfo;

                    /**
                     * Decodes a GroupMaintenanceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GroupMaintenanceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GroupMaintenanceInfo;

                    /**
                     * Verifies a GroupMaintenanceInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GroupMaintenanceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GroupMaintenanceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GroupMaintenanceInfo;

                    /**
                     * Creates a plain object from a GroupMaintenanceInfo message. Also converts values to other types if specified.
                     * @param message GroupMaintenanceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GroupMaintenanceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GroupMaintenanceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GroupMaintenanceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GroupMaintenanceInfo {

                    /** SchedulingType enum. */
                    enum SchedulingType {
                        UNDEFINED_SCHEDULING_TYPE = 0,
                        GROUPED = 474540862,
                        GROUP_MAINTENANCE_TYPE_UNSPECIFIED = 447183678,
                        INDEPENDENT = 127011674
                    }
                }

                /** Properties of a GuestAttributes. */
                interface IGuestAttributes {

                    /** GuestAttributes kind */
                    kind?: (string|null);

                    /** GuestAttributes queryPath */
                    queryPath?: (string|null);

                    /** GuestAttributes queryValue */
                    queryValue?: (google.cloud.compute.v1beta.IGuestAttributesValue|null);

                    /** GuestAttributes selfLink */
                    selfLink?: (string|null);

                    /** GuestAttributes variableKey */
                    variableKey?: (string|null);

                    /** GuestAttributes variableValue */
                    variableValue?: (string|null);
                }

                /** Represents a GuestAttributes. */
                class GuestAttributes implements IGuestAttributes {

                    /**
                     * Constructs a new GuestAttributes.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGuestAttributes);

                    /** GuestAttributes kind. */
                    public kind?: (string|null);

                    /** GuestAttributes queryPath. */
                    public queryPath?: (string|null);

                    /** GuestAttributes queryValue. */
                    public queryValue?: (google.cloud.compute.v1beta.IGuestAttributesValue|null);

                    /** GuestAttributes selfLink. */
                    public selfLink?: (string|null);

                    /** GuestAttributes variableKey. */
                    public variableKey?: (string|null);

                    /** GuestAttributes variableValue. */
                    public variableValue?: (string|null);

                    /**
                     * Creates a new GuestAttributes instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GuestAttributes instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGuestAttributes): google.cloud.compute.v1beta.GuestAttributes;

                    /**
                     * Encodes the specified GuestAttributes message. Does not implicitly {@link google.cloud.compute.v1beta.GuestAttributes.verify|verify} messages.
                     * @param message GuestAttributes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGuestAttributes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GuestAttributes message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GuestAttributes.verify|verify} messages.
                     * @param message GuestAttributes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGuestAttributes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GuestAttributes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GuestAttributes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GuestAttributes;

                    /**
                     * Decodes a GuestAttributes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GuestAttributes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GuestAttributes;

                    /**
                     * Verifies a GuestAttributes message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GuestAttributes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GuestAttributes
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GuestAttributes;

                    /**
                     * Creates a plain object from a GuestAttributes message. Also converts values to other types if specified.
                     * @param message GuestAttributes
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GuestAttributes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GuestAttributes to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GuestAttributes
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GuestAttributesEntry. */
                interface IGuestAttributesEntry {

                    /** GuestAttributesEntry key */
                    key?: (string|null);

                    /** GuestAttributesEntry namespace */
                    namespace?: (string|null);

                    /** GuestAttributesEntry value */
                    value?: (string|null);
                }

                /** Represents a GuestAttributesEntry. */
                class GuestAttributesEntry implements IGuestAttributesEntry {

                    /**
                     * Constructs a new GuestAttributesEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGuestAttributesEntry);

                    /** GuestAttributesEntry key. */
                    public key?: (string|null);

                    /** GuestAttributesEntry namespace. */
                    public namespace?: (string|null);

                    /** GuestAttributesEntry value. */
                    public value?: (string|null);

                    /**
                     * Creates a new GuestAttributesEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GuestAttributesEntry instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGuestAttributesEntry): google.cloud.compute.v1beta.GuestAttributesEntry;

                    /**
                     * Encodes the specified GuestAttributesEntry message. Does not implicitly {@link google.cloud.compute.v1beta.GuestAttributesEntry.verify|verify} messages.
                     * @param message GuestAttributesEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGuestAttributesEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GuestAttributesEntry message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GuestAttributesEntry.verify|verify} messages.
                     * @param message GuestAttributesEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGuestAttributesEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GuestAttributesEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GuestAttributesEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GuestAttributesEntry;

                    /**
                     * Decodes a GuestAttributesEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GuestAttributesEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GuestAttributesEntry;

                    /**
                     * Verifies a GuestAttributesEntry message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GuestAttributesEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GuestAttributesEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GuestAttributesEntry;

                    /**
                     * Creates a plain object from a GuestAttributesEntry message. Also converts values to other types if specified.
                     * @param message GuestAttributesEntry
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GuestAttributesEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GuestAttributesEntry to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GuestAttributesEntry
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GuestAttributesValue. */
                interface IGuestAttributesValue {

                    /** GuestAttributesValue items */
                    items?: (google.cloud.compute.v1beta.IGuestAttributesEntry[]|null);
                }

                /** Represents a GuestAttributesValue. */
                class GuestAttributesValue implements IGuestAttributesValue {

                    /**
                     * Constructs a new GuestAttributesValue.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGuestAttributesValue);

                    /** GuestAttributesValue items. */
                    public items: google.cloud.compute.v1beta.IGuestAttributesEntry[];

                    /**
                     * Creates a new GuestAttributesValue instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GuestAttributesValue instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGuestAttributesValue): google.cloud.compute.v1beta.GuestAttributesValue;

                    /**
                     * Encodes the specified GuestAttributesValue message. Does not implicitly {@link google.cloud.compute.v1beta.GuestAttributesValue.verify|verify} messages.
                     * @param message GuestAttributesValue message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGuestAttributesValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GuestAttributesValue message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GuestAttributesValue.verify|verify} messages.
                     * @param message GuestAttributesValue message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGuestAttributesValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GuestAttributesValue message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GuestAttributesValue
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GuestAttributesValue;

                    /**
                     * Decodes a GuestAttributesValue message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GuestAttributesValue
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GuestAttributesValue;

                    /**
                     * Verifies a GuestAttributesValue message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GuestAttributesValue message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GuestAttributesValue
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GuestAttributesValue;

                    /**
                     * Creates a plain object from a GuestAttributesValue message. Also converts values to other types if specified.
                     * @param message GuestAttributesValue
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GuestAttributesValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GuestAttributesValue to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GuestAttributesValue
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GuestOsFeature. */
                interface IGuestOsFeature {

                    /** GuestOsFeature type */
                    type?: (string|null);
                }

                /** Represents a GuestOsFeature. */
                class GuestOsFeature implements IGuestOsFeature {

                    /**
                     * Constructs a new GuestOsFeature.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IGuestOsFeature);

                    /** GuestOsFeature type. */
                    public type?: (string|null);

                    /**
                     * Creates a new GuestOsFeature instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GuestOsFeature instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IGuestOsFeature): google.cloud.compute.v1beta.GuestOsFeature;

                    /**
                     * Encodes the specified GuestOsFeature message. Does not implicitly {@link google.cloud.compute.v1beta.GuestOsFeature.verify|verify} messages.
                     * @param message GuestOsFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IGuestOsFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GuestOsFeature message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.GuestOsFeature.verify|verify} messages.
                     * @param message GuestOsFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IGuestOsFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GuestOsFeature message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GuestOsFeature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.GuestOsFeature;

                    /**
                     * Decodes a GuestOsFeature message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GuestOsFeature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.GuestOsFeature;

                    /**
                     * Verifies a GuestOsFeature message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GuestOsFeature message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GuestOsFeature
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.GuestOsFeature;

                    /**
                     * Creates a plain object from a GuestOsFeature message. Also converts values to other types if specified.
                     * @param message GuestOsFeature
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.GuestOsFeature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GuestOsFeature to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GuestOsFeature
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace GuestOsFeature {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        BARE_METAL_LINUX_COMPATIBLE = 354232740,
                        FEATURE_TYPE_UNSPECIFIED = 531767259,
                        GVNIC = 68209305,
                        IDPF = 2242641,
                        MULTI_IP_SUBNET = 151776719,
                        SECURE_BOOT = 376811194,
                        SEV_CAPABLE = 87083793,
                        SEV_LIVE_MIGRATABLE = 392039820,
                        SEV_LIVE_MIGRATABLE_V2 = 168551983,
                        SEV_SNP_CAPABLE = 426919,
                        SNP_SVSM_CAPABLE = 52921460,
                        TDX_CAPABLE = 240446133,
                        UEFI_COMPATIBLE = 195865408,
                        VIRTIO_SCSI_MULTIQUEUE = 201597069,
                        WINDOWS = 456863331
                    }
                }

                /** Properties of a HTTP2HealthCheck. */
                interface IHTTP2HealthCheck {

                    /** HTTP2HealthCheck host */
                    host?: (string|null);

                    /** HTTP2HealthCheck port */
                    port?: (number|null);

                    /** HTTP2HealthCheck portName */
                    portName?: (string|null);

                    /** HTTP2HealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** HTTP2HealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** HTTP2HealthCheck requestPath */
                    requestPath?: (string|null);

                    /** HTTP2HealthCheck response */
                    response?: (string|null);
                }

                /** Represents a HTTP2HealthCheck. */
                class HTTP2HealthCheck implements IHTTP2HealthCheck {

                    /**
                     * Constructs a new HTTP2HealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHTTP2HealthCheck);

                    /** HTTP2HealthCheck host. */
                    public host?: (string|null);

                    /** HTTP2HealthCheck port. */
                    public port?: (number|null);

                    /** HTTP2HealthCheck portName. */
                    public portName?: (string|null);

                    /** HTTP2HealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** HTTP2HealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** HTTP2HealthCheck requestPath. */
                    public requestPath?: (string|null);

                    /** HTTP2HealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new HTTP2HealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HTTP2HealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHTTP2HealthCheck): google.cloud.compute.v1beta.HTTP2HealthCheck;

                    /**
                     * Encodes the specified HTTP2HealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.HTTP2HealthCheck.verify|verify} messages.
                     * @param message HTTP2HealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHTTP2HealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HTTP2HealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HTTP2HealthCheck.verify|verify} messages.
                     * @param message HTTP2HealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHTTP2HealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HTTP2HealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HTTP2HealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HTTP2HealthCheck;

                    /**
                     * Decodes a HTTP2HealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HTTP2HealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HTTP2HealthCheck;

                    /**
                     * Verifies a HTTP2HealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HTTP2HealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HTTP2HealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HTTP2HealthCheck;

                    /**
                     * Creates a plain object from a HTTP2HealthCheck message. Also converts values to other types if specified.
                     * @param message HTTP2HealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HTTP2HealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HTTP2HealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HTTP2HealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HTTP2HealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a HTTPHealthCheck. */
                interface IHTTPHealthCheck {

                    /** HTTPHealthCheck host */
                    host?: (string|null);

                    /** HTTPHealthCheck port */
                    port?: (number|null);

                    /** HTTPHealthCheck portName */
                    portName?: (string|null);

                    /** HTTPHealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** HTTPHealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** HTTPHealthCheck requestPath */
                    requestPath?: (string|null);

                    /** HTTPHealthCheck response */
                    response?: (string|null);
                }

                /** Represents a HTTPHealthCheck. */
                class HTTPHealthCheck implements IHTTPHealthCheck {

                    /**
                     * Constructs a new HTTPHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHTTPHealthCheck);

                    /** HTTPHealthCheck host. */
                    public host?: (string|null);

                    /** HTTPHealthCheck port. */
                    public port?: (number|null);

                    /** HTTPHealthCheck portName. */
                    public portName?: (string|null);

                    /** HTTPHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** HTTPHealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** HTTPHealthCheck requestPath. */
                    public requestPath?: (string|null);

                    /** HTTPHealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new HTTPHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HTTPHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHTTPHealthCheck): google.cloud.compute.v1beta.HTTPHealthCheck;

                    /**
                     * Encodes the specified HTTPHealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.HTTPHealthCheck.verify|verify} messages.
                     * @param message HTTPHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHTTPHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HTTPHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HTTPHealthCheck.verify|verify} messages.
                     * @param message HTTPHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHTTPHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HTTPHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HTTPHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HTTPHealthCheck;

                    /**
                     * Decodes a HTTPHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HTTPHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HTTPHealthCheck;

                    /**
                     * Verifies a HTTPHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HTTPHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HTTPHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HTTPHealthCheck;

                    /**
                     * Creates a plain object from a HTTPHealthCheck message. Also converts values to other types if specified.
                     * @param message HTTPHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HTTPHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HTTPHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HTTPHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HTTPHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a HTTPSHealthCheck. */
                interface IHTTPSHealthCheck {

                    /** HTTPSHealthCheck host */
                    host?: (string|null);

                    /** HTTPSHealthCheck port */
                    port?: (number|null);

                    /** HTTPSHealthCheck portName */
                    portName?: (string|null);

                    /** HTTPSHealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** HTTPSHealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** HTTPSHealthCheck requestPath */
                    requestPath?: (string|null);

                    /** HTTPSHealthCheck response */
                    response?: (string|null);
                }

                /** Represents a HTTPSHealthCheck. */
                class HTTPSHealthCheck implements IHTTPSHealthCheck {

                    /**
                     * Constructs a new HTTPSHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHTTPSHealthCheck);

                    /** HTTPSHealthCheck host. */
                    public host?: (string|null);

                    /** HTTPSHealthCheck port. */
                    public port?: (number|null);

                    /** HTTPSHealthCheck portName. */
                    public portName?: (string|null);

                    /** HTTPSHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** HTTPSHealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** HTTPSHealthCheck requestPath. */
                    public requestPath?: (string|null);

                    /** HTTPSHealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new HTTPSHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HTTPSHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHTTPSHealthCheck): google.cloud.compute.v1beta.HTTPSHealthCheck;

                    /**
                     * Encodes the specified HTTPSHealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.HTTPSHealthCheck.verify|verify} messages.
                     * @param message HTTPSHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHTTPSHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HTTPSHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HTTPSHealthCheck.verify|verify} messages.
                     * @param message HTTPSHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHTTPSHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HTTPSHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HTTPSHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HTTPSHealthCheck;

                    /**
                     * Decodes a HTTPSHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HTTPSHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HTTPSHealthCheck;

                    /**
                     * Verifies a HTTPSHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HTTPSHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HTTPSHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HTTPSHealthCheck;

                    /**
                     * Creates a plain object from a HTTPSHealthCheck message. Also converts values to other types if specified.
                     * @param message HTTPSHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HTTPSHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HTTPSHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HTTPSHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HTTPSHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a HealthAggregationPoliciesScopedList. */
                interface IHealthAggregationPoliciesScopedList {

                    /** HealthAggregationPoliciesScopedList healthAggregationPolicies */
                    healthAggregationPolicies?: (google.cloud.compute.v1beta.IHealthAggregationPolicy[]|null);

                    /** HealthAggregationPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthAggregationPoliciesScopedList. */
                class HealthAggregationPoliciesScopedList implements IHealthAggregationPoliciesScopedList {

                    /**
                     * Constructs a new HealthAggregationPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthAggregationPoliciesScopedList);

                    /** HealthAggregationPoliciesScopedList healthAggregationPolicies. */
                    public healthAggregationPolicies: google.cloud.compute.v1beta.IHealthAggregationPolicy[];

                    /** HealthAggregationPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthAggregationPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthAggregationPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthAggregationPoliciesScopedList): google.cloud.compute.v1beta.HealthAggregationPoliciesScopedList;

                    /**
                     * Encodes the specified HealthAggregationPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthAggregationPoliciesScopedList.verify|verify} messages.
                     * @param message HealthAggregationPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthAggregationPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthAggregationPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthAggregationPoliciesScopedList.verify|verify} messages.
                     * @param message HealthAggregationPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthAggregationPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthAggregationPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthAggregationPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthAggregationPoliciesScopedList;

                    /**
                     * Decodes a HealthAggregationPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthAggregationPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthAggregationPoliciesScopedList;

                    /**
                     * Verifies a HealthAggregationPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthAggregationPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthAggregationPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthAggregationPoliciesScopedList;

                    /**
                     * Creates a plain object from a HealthAggregationPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message HealthAggregationPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthAggregationPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthAggregationPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthAggregationPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthAggregationPolicy. */
                interface IHealthAggregationPolicy {

                    /** HealthAggregationPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** HealthAggregationPolicy description */
                    description?: (string|null);

                    /** HealthAggregationPolicy fingerprint */
                    fingerprint?: (string|null);

                    /** HealthAggregationPolicy healthyPercentThreshold */
                    healthyPercentThreshold?: (number|null);

                    /** HealthAggregationPolicy id */
                    id?: (number|Long|string|null);

                    /** HealthAggregationPolicy kind */
                    kind?: (string|null);

                    /** HealthAggregationPolicy minHealthyThreshold */
                    minHealthyThreshold?: (number|null);

                    /** HealthAggregationPolicy name */
                    name?: (string|null);

                    /** HealthAggregationPolicy policyType */
                    policyType?: (string|null);

                    /** HealthAggregationPolicy region */
                    region?: (string|null);

                    /** HealthAggregationPolicy selfLink */
                    selfLink?: (string|null);

                    /** HealthAggregationPolicy selfLinkWithId */
                    selfLinkWithId?: (string|null);
                }

                /** Represents a HealthAggregationPolicy. */
                class HealthAggregationPolicy implements IHealthAggregationPolicy {

                    /**
                     * Constructs a new HealthAggregationPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthAggregationPolicy);

                    /** HealthAggregationPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** HealthAggregationPolicy description. */
                    public description?: (string|null);

                    /** HealthAggregationPolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** HealthAggregationPolicy healthyPercentThreshold. */
                    public healthyPercentThreshold?: (number|null);

                    /** HealthAggregationPolicy id. */
                    public id?: (number|Long|string|null);

                    /** HealthAggregationPolicy kind. */
                    public kind?: (string|null);

                    /** HealthAggregationPolicy minHealthyThreshold. */
                    public minHealthyThreshold?: (number|null);

                    /** HealthAggregationPolicy name. */
                    public name?: (string|null);

                    /** HealthAggregationPolicy policyType. */
                    public policyType?: (string|null);

                    /** HealthAggregationPolicy region. */
                    public region?: (string|null);

                    /** HealthAggregationPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** HealthAggregationPolicy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /**
                     * Creates a new HealthAggregationPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthAggregationPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthAggregationPolicy): google.cloud.compute.v1beta.HealthAggregationPolicy;

                    /**
                     * Encodes the specified HealthAggregationPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.HealthAggregationPolicy.verify|verify} messages.
                     * @param message HealthAggregationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthAggregationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthAggregationPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthAggregationPolicy.verify|verify} messages.
                     * @param message HealthAggregationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthAggregationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthAggregationPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthAggregationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthAggregationPolicy;

                    /**
                     * Decodes a HealthAggregationPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthAggregationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthAggregationPolicy;

                    /**
                     * Verifies a HealthAggregationPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthAggregationPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthAggregationPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthAggregationPolicy;

                    /**
                     * Creates a plain object from a HealthAggregationPolicy message. Also converts values to other types if specified.
                     * @param message HealthAggregationPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthAggregationPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthAggregationPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthAggregationPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthAggregationPolicy {

                    /** PolicyType enum. */
                    enum PolicyType {
                        UNDEFINED_POLICY_TYPE = 0,
                        BACKEND_SERVICE_POLICY = 415582023,
                        DNS_PUBLIC_IP_POLICY = 366354794
                    }
                }

                /** Properties of a HealthAggregationPolicyAggregatedList. */
                interface IHealthAggregationPolicyAggregatedList {

                    /** HealthAggregationPolicyAggregatedList id */
                    id?: (string|null);

                    /** HealthAggregationPolicyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IHealthAggregationPoliciesScopedList }|null);

                    /** HealthAggregationPolicyAggregatedList kind */
                    kind?: (string|null);

                    /** HealthAggregationPolicyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthAggregationPolicyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** HealthAggregationPolicyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** HealthAggregationPolicyAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthAggregationPolicyAggregatedList. */
                class HealthAggregationPolicyAggregatedList implements IHealthAggregationPolicyAggregatedList {

                    /**
                     * Constructs a new HealthAggregationPolicyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthAggregationPolicyAggregatedList);

                    /** HealthAggregationPolicyAggregatedList id. */
                    public id?: (string|null);

                    /** HealthAggregationPolicyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IHealthAggregationPoliciesScopedList };

                    /** HealthAggregationPolicyAggregatedList kind. */
                    public kind?: (string|null);

                    /** HealthAggregationPolicyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthAggregationPolicyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthAggregationPolicyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** HealthAggregationPolicyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthAggregationPolicyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthAggregationPolicyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthAggregationPolicyAggregatedList): google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList;

                    /**
                     * Encodes the specified HealthAggregationPolicyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList.verify|verify} messages.
                     * @param message HealthAggregationPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthAggregationPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthAggregationPolicyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList.verify|verify} messages.
                     * @param message HealthAggregationPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthAggregationPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthAggregationPolicyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthAggregationPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList;

                    /**
                     * Decodes a HealthAggregationPolicyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthAggregationPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList;

                    /**
                     * Verifies a HealthAggregationPolicyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthAggregationPolicyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthAggregationPolicyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList;

                    /**
                     * Creates a plain object from a HealthAggregationPolicyAggregatedList message. Also converts values to other types if specified.
                     * @param message HealthAggregationPolicyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthAggregationPolicyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthAggregationPolicyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthAggregationPolicyList. */
                interface IHealthAggregationPolicyList {

                    /** HealthAggregationPolicyList id */
                    id?: (string|null);

                    /** HealthAggregationPolicyList items */
                    items?: (google.cloud.compute.v1beta.IHealthAggregationPolicy[]|null);

                    /** HealthAggregationPolicyList kind */
                    kind?: (string|null);

                    /** HealthAggregationPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthAggregationPolicyList selfLink */
                    selfLink?: (string|null);

                    /** HealthAggregationPolicyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthAggregationPolicyList. */
                class HealthAggregationPolicyList implements IHealthAggregationPolicyList {

                    /**
                     * Constructs a new HealthAggregationPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthAggregationPolicyList);

                    /** HealthAggregationPolicyList id. */
                    public id?: (string|null);

                    /** HealthAggregationPolicyList items. */
                    public items: google.cloud.compute.v1beta.IHealthAggregationPolicy[];

                    /** HealthAggregationPolicyList kind. */
                    public kind?: (string|null);

                    /** HealthAggregationPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthAggregationPolicyList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthAggregationPolicyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthAggregationPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthAggregationPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthAggregationPolicyList): google.cloud.compute.v1beta.HealthAggregationPolicyList;

                    /**
                     * Encodes the specified HealthAggregationPolicyList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthAggregationPolicyList.verify|verify} messages.
                     * @param message HealthAggregationPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthAggregationPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthAggregationPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthAggregationPolicyList.verify|verify} messages.
                     * @param message HealthAggregationPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthAggregationPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthAggregationPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthAggregationPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthAggregationPolicyList;

                    /**
                     * Decodes a HealthAggregationPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthAggregationPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthAggregationPolicyList;

                    /**
                     * Verifies a HealthAggregationPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthAggregationPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthAggregationPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthAggregationPolicyList;

                    /**
                     * Creates a plain object from a HealthAggregationPolicyList message. Also converts values to other types if specified.
                     * @param message HealthAggregationPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthAggregationPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthAggregationPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthAggregationPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheck. */
                interface IHealthCheck {

                    /** HealthCheck checkIntervalSec */
                    checkIntervalSec?: (number|null);

                    /** HealthCheck creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** HealthCheck description */
                    description?: (string|null);

                    /** HealthCheck grpcHealthCheck */
                    grpcHealthCheck?: (google.cloud.compute.v1beta.IGRPCHealthCheck|null);

                    /** HealthCheck grpcTlsHealthCheck */
                    grpcTlsHealthCheck?: (google.cloud.compute.v1beta.IGRPCTLSHealthCheck|null);

                    /** HealthCheck healthyThreshold */
                    healthyThreshold?: (number|null);

                    /** HealthCheck http2HealthCheck */
                    http2HealthCheck?: (google.cloud.compute.v1beta.IHTTP2HealthCheck|null);

                    /** HealthCheck httpHealthCheck */
                    httpHealthCheck?: (google.cloud.compute.v1beta.IHTTPHealthCheck|null);

                    /** HealthCheck httpsHealthCheck */
                    httpsHealthCheck?: (google.cloud.compute.v1beta.IHTTPSHealthCheck|null);

                    /** HealthCheck id */
                    id?: (number|Long|string|null);

                    /** HealthCheck kind */
                    kind?: (string|null);

                    /** HealthCheck logConfig */
                    logConfig?: (google.cloud.compute.v1beta.IHealthCheckLogConfig|null);

                    /** HealthCheck name */
                    name?: (string|null);

                    /** HealthCheck region */
                    region?: (string|null);

                    /** HealthCheck selfLink */
                    selfLink?: (string|null);

                    /** HealthCheck sourceRegions */
                    sourceRegions?: (string[]|null);

                    /** HealthCheck sslHealthCheck */
                    sslHealthCheck?: (google.cloud.compute.v1beta.ISSLHealthCheck|null);

                    /** HealthCheck tcpHealthCheck */
                    tcpHealthCheck?: (google.cloud.compute.v1beta.ITCPHealthCheck|null);

                    /** HealthCheck timeoutSec */
                    timeoutSec?: (number|null);

                    /** HealthCheck type */
                    type?: (string|null);

                    /** HealthCheck unhealthyThreshold */
                    unhealthyThreshold?: (number|null);
                }

                /** Represents a HealthCheck. */
                class HealthCheck implements IHealthCheck {

                    /**
                     * Constructs a new HealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheck);

                    /** HealthCheck checkIntervalSec. */
                    public checkIntervalSec?: (number|null);

                    /** HealthCheck creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** HealthCheck description. */
                    public description?: (string|null);

                    /** HealthCheck grpcHealthCheck. */
                    public grpcHealthCheck?: (google.cloud.compute.v1beta.IGRPCHealthCheck|null);

                    /** HealthCheck grpcTlsHealthCheck. */
                    public grpcTlsHealthCheck?: (google.cloud.compute.v1beta.IGRPCTLSHealthCheck|null);

                    /** HealthCheck healthyThreshold. */
                    public healthyThreshold?: (number|null);

                    /** HealthCheck http2HealthCheck. */
                    public http2HealthCheck?: (google.cloud.compute.v1beta.IHTTP2HealthCheck|null);

                    /** HealthCheck httpHealthCheck. */
                    public httpHealthCheck?: (google.cloud.compute.v1beta.IHTTPHealthCheck|null);

                    /** HealthCheck httpsHealthCheck. */
                    public httpsHealthCheck?: (google.cloud.compute.v1beta.IHTTPSHealthCheck|null);

                    /** HealthCheck id. */
                    public id?: (number|Long|string|null);

                    /** HealthCheck kind. */
                    public kind?: (string|null);

                    /** HealthCheck logConfig. */
                    public logConfig?: (google.cloud.compute.v1beta.IHealthCheckLogConfig|null);

                    /** HealthCheck name. */
                    public name?: (string|null);

                    /** HealthCheck region. */
                    public region?: (string|null);

                    /** HealthCheck selfLink. */
                    public selfLink?: (string|null);

                    /** HealthCheck sourceRegions. */
                    public sourceRegions: string[];

                    /** HealthCheck sslHealthCheck. */
                    public sslHealthCheck?: (google.cloud.compute.v1beta.ISSLHealthCheck|null);

                    /** HealthCheck tcpHealthCheck. */
                    public tcpHealthCheck?: (google.cloud.compute.v1beta.ITCPHealthCheck|null);

                    /** HealthCheck timeoutSec. */
                    public timeoutSec?: (number|null);

                    /** HealthCheck type. */
                    public type?: (string|null);

                    /** HealthCheck unhealthyThreshold. */
                    public unhealthyThreshold?: (number|null);

                    /**
                     * Creates a new HealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheck): google.cloud.compute.v1beta.HealthCheck;

                    /**
                     * Encodes the specified HealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheck.verify|verify} messages.
                     * @param message HealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheck.verify|verify} messages.
                     * @param message HealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheck;

                    /**
                     * Decodes a HealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheck;

                    /**
                     * Verifies a HealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheck;

                    /**
                     * Creates a plain object from a HealthCheck message. Also converts values to other types if specified.
                     * @param message HealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthCheck {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        GRPC = 2196510,
                        GRPC_WITH_TLS = 268089571,
                        HTTP = 2228360,
                        HTTP2 = 69079210,
                        HTTPS = 69079243,
                        INVALID = 530283991,
                        SSL = 82412,
                        TCP = 82881
                    }
                }

                /** Properties of a HealthCheckList. */
                interface IHealthCheckList {

                    /** HealthCheckList id */
                    id?: (string|null);

                    /** HealthCheckList items */
                    items?: (google.cloud.compute.v1beta.IHealthCheck[]|null);

                    /** HealthCheckList kind */
                    kind?: (string|null);

                    /** HealthCheckList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthCheckList selfLink */
                    selfLink?: (string|null);

                    /** HealthCheckList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthCheckList. */
                class HealthCheckList implements IHealthCheckList {

                    /**
                     * Constructs a new HealthCheckList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheckList);

                    /** HealthCheckList id. */
                    public id?: (string|null);

                    /** HealthCheckList items. */
                    public items: google.cloud.compute.v1beta.IHealthCheck[];

                    /** HealthCheckList kind. */
                    public kind?: (string|null);

                    /** HealthCheckList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthCheckList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthCheckList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthCheckList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheckList): google.cloud.compute.v1beta.HealthCheckList;

                    /**
                     * Encodes the specified HealthCheckList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckList.verify|verify} messages.
                     * @param message HealthCheckList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheckList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckList.verify|verify} messages.
                     * @param message HealthCheckList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheckList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheckList;

                    /**
                     * Decodes a HealthCheckList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheckList;

                    /**
                     * Verifies a HealthCheckList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheckList;

                    /**
                     * Creates a plain object from a HealthCheckList message. Also converts values to other types if specified.
                     * @param message HealthCheckList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheckList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckLogConfig. */
                interface IHealthCheckLogConfig {

                    /** HealthCheckLogConfig enable */
                    enable?: (boolean|null);
                }

                /** Represents a HealthCheckLogConfig. */
                class HealthCheckLogConfig implements IHealthCheckLogConfig {

                    /**
                     * Constructs a new HealthCheckLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheckLogConfig);

                    /** HealthCheckLogConfig enable. */
                    public enable?: (boolean|null);

                    /**
                     * Creates a new HealthCheckLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheckLogConfig): google.cloud.compute.v1beta.HealthCheckLogConfig;

                    /**
                     * Encodes the specified HealthCheckLogConfig message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckLogConfig.verify|verify} messages.
                     * @param message HealthCheckLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheckLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckLogConfig.verify|verify} messages.
                     * @param message HealthCheckLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheckLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheckLogConfig;

                    /**
                     * Decodes a HealthCheckLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheckLogConfig;

                    /**
                     * Verifies a HealthCheckLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheckLogConfig;

                    /**
                     * Creates a plain object from a HealthCheckLogConfig message. Also converts values to other types if specified.
                     * @param message HealthCheckLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheckLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckReference. */
                interface IHealthCheckReference {

                    /** HealthCheckReference healthCheck */
                    healthCheck?: (string|null);
                }

                /** Represents a HealthCheckReference. */
                class HealthCheckReference implements IHealthCheckReference {

                    /**
                     * Constructs a new HealthCheckReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheckReference);

                    /** HealthCheckReference healthCheck. */
                    public healthCheck?: (string|null);

                    /**
                     * Creates a new HealthCheckReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheckReference): google.cloud.compute.v1beta.HealthCheckReference;

                    /**
                     * Encodes the specified HealthCheckReference message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckReference.verify|verify} messages.
                     * @param message HealthCheckReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheckReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckReference.verify|verify} messages.
                     * @param message HealthCheckReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheckReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheckReference;

                    /**
                     * Decodes a HealthCheckReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheckReference;

                    /**
                     * Verifies a HealthCheckReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheckReference;

                    /**
                     * Creates a plain object from a HealthCheckReference message. Also converts values to other types if specified.
                     * @param message HealthCheckReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheckReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckService. */
                interface IHealthCheckService {

                    /** HealthCheckService creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** HealthCheckService description */
                    description?: (string|null);

                    /** HealthCheckService fingerprint */
                    fingerprint?: (string|null);

                    /** HealthCheckService healthChecks */
                    healthChecks?: (string[]|null);

                    /** HealthCheckService healthStatusAggregationPolicy */
                    healthStatusAggregationPolicy?: (string|null);

                    /** HealthCheckService healthStatusAggregationStrategy */
                    healthStatusAggregationStrategy?: (string|null);

                    /** HealthCheckService id */
                    id?: (number|Long|string|null);

                    /** HealthCheckService kind */
                    kind?: (string|null);

                    /** HealthCheckService name */
                    name?: (string|null);

                    /** HealthCheckService networkEndpointGroups */
                    networkEndpointGroups?: (string[]|null);

                    /** HealthCheckService notificationEndpoints */
                    notificationEndpoints?: (string[]|null);

                    /** HealthCheckService region */
                    region?: (string|null);

                    /** HealthCheckService selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a HealthCheckService. */
                class HealthCheckService implements IHealthCheckService {

                    /**
                     * Constructs a new HealthCheckService.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheckService);

                    /** HealthCheckService creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** HealthCheckService description. */
                    public description?: (string|null);

                    /** HealthCheckService fingerprint. */
                    public fingerprint?: (string|null);

                    /** HealthCheckService healthChecks. */
                    public healthChecks: string[];

                    /** HealthCheckService healthStatusAggregationPolicy. */
                    public healthStatusAggregationPolicy?: (string|null);

                    /** HealthCheckService healthStatusAggregationStrategy. */
                    public healthStatusAggregationStrategy?: (string|null);

                    /** HealthCheckService id. */
                    public id?: (number|Long|string|null);

                    /** HealthCheckService kind. */
                    public kind?: (string|null);

                    /** HealthCheckService name. */
                    public name?: (string|null);

                    /** HealthCheckService networkEndpointGroups. */
                    public networkEndpointGroups: string[];

                    /** HealthCheckService notificationEndpoints. */
                    public notificationEndpoints: string[];

                    /** HealthCheckService region. */
                    public region?: (string|null);

                    /** HealthCheckService selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new HealthCheckService instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckService instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheckService): google.cloud.compute.v1beta.HealthCheckService;

                    /**
                     * Encodes the specified HealthCheckService message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckService.verify|verify} messages.
                     * @param message HealthCheckService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheckService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckService message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckService.verify|verify} messages.
                     * @param message HealthCheckService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheckService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckService message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheckService;

                    /**
                     * Decodes a HealthCheckService message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheckService;

                    /**
                     * Verifies a HealthCheckService message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckService message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckService
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheckService;

                    /**
                     * Creates a plain object from a HealthCheckService message. Also converts values to other types if specified.
                     * @param message HealthCheckService
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheckService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckService to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckService
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthCheckService {

                    /** HealthStatusAggregationPolicy enum. */
                    enum HealthStatusAggregationPolicy {
                        UNDEFINED_HEALTH_STATUS_AGGREGATION_POLICY = 0,
                        AND = 64951,
                        NO_AGGREGATION = 426445124
                    }

                    /** HealthStatusAggregationStrategy enum. */
                    enum HealthStatusAggregationStrategy {
                        UNDEFINED_HEALTH_STATUS_AGGREGATION_STRATEGY = 0
                    }
                }

                /** Properties of a HealthCheckServiceAggregatedList. */
                interface IHealthCheckServiceAggregatedList {

                    /** HealthCheckServiceAggregatedList id */
                    id?: (string|null);

                    /** HealthCheckServiceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IHealthCheckServicesScopedList }|null);

                    /** HealthCheckServiceAggregatedList kind */
                    kind?: (string|null);

                    /** HealthCheckServiceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthCheckServiceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** HealthCheckServiceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** HealthCheckServiceAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthCheckServiceAggregatedList. */
                class HealthCheckServiceAggregatedList implements IHealthCheckServiceAggregatedList {

                    /**
                     * Constructs a new HealthCheckServiceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheckServiceAggregatedList);

                    /** HealthCheckServiceAggregatedList id. */
                    public id?: (string|null);

                    /** HealthCheckServiceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IHealthCheckServicesScopedList };

                    /** HealthCheckServiceAggregatedList kind. */
                    public kind?: (string|null);

                    /** HealthCheckServiceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthCheckServiceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthCheckServiceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** HealthCheckServiceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthCheckServiceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckServiceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheckServiceAggregatedList): google.cloud.compute.v1beta.HealthCheckServiceAggregatedList;

                    /**
                     * Encodes the specified HealthCheckServiceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckServiceAggregatedList.verify|verify} messages.
                     * @param message HealthCheckServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheckServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckServiceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckServiceAggregatedList.verify|verify} messages.
                     * @param message HealthCheckServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheckServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckServiceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheckServiceAggregatedList;

                    /**
                     * Decodes a HealthCheckServiceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheckServiceAggregatedList;

                    /**
                     * Verifies a HealthCheckServiceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckServiceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckServiceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheckServiceAggregatedList;

                    /**
                     * Creates a plain object from a HealthCheckServiceAggregatedList message. Also converts values to other types if specified.
                     * @param message HealthCheckServiceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheckServiceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckServiceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckServiceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckServiceReference. */
                interface IHealthCheckServiceReference {

                    /** HealthCheckServiceReference healthCheckService */
                    healthCheckService?: (string|null);
                }

                /** Represents a HealthCheckServiceReference. */
                class HealthCheckServiceReference implements IHealthCheckServiceReference {

                    /**
                     * Constructs a new HealthCheckServiceReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheckServiceReference);

                    /** HealthCheckServiceReference healthCheckService. */
                    public healthCheckService?: (string|null);

                    /**
                     * Creates a new HealthCheckServiceReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckServiceReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheckServiceReference): google.cloud.compute.v1beta.HealthCheckServiceReference;

                    /**
                     * Encodes the specified HealthCheckServiceReference message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckServiceReference.verify|verify} messages.
                     * @param message HealthCheckServiceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheckServiceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckServiceReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckServiceReference.verify|verify} messages.
                     * @param message HealthCheckServiceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheckServiceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckServiceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckServiceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheckServiceReference;

                    /**
                     * Decodes a HealthCheckServiceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckServiceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheckServiceReference;

                    /**
                     * Verifies a HealthCheckServiceReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckServiceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckServiceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheckServiceReference;

                    /**
                     * Creates a plain object from a HealthCheckServiceReference message. Also converts values to other types if specified.
                     * @param message HealthCheckServiceReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheckServiceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckServiceReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckServiceReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckServicesList. */
                interface IHealthCheckServicesList {

                    /** HealthCheckServicesList id */
                    id?: (string|null);

                    /** HealthCheckServicesList items */
                    items?: (google.cloud.compute.v1beta.IHealthCheckService[]|null);

                    /** HealthCheckServicesList kind */
                    kind?: (string|null);

                    /** HealthCheckServicesList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthCheckServicesList selfLink */
                    selfLink?: (string|null);

                    /** HealthCheckServicesList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthCheckServicesList. */
                class HealthCheckServicesList implements IHealthCheckServicesList {

                    /**
                     * Constructs a new HealthCheckServicesList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheckServicesList);

                    /** HealthCheckServicesList id. */
                    public id?: (string|null);

                    /** HealthCheckServicesList items. */
                    public items: google.cloud.compute.v1beta.IHealthCheckService[];

                    /** HealthCheckServicesList kind. */
                    public kind?: (string|null);

                    /** HealthCheckServicesList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthCheckServicesList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthCheckServicesList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthCheckServicesList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckServicesList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheckServicesList): google.cloud.compute.v1beta.HealthCheckServicesList;

                    /**
                     * Encodes the specified HealthCheckServicesList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckServicesList.verify|verify} messages.
                     * @param message HealthCheckServicesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheckServicesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckServicesList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckServicesList.verify|verify} messages.
                     * @param message HealthCheckServicesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheckServicesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckServicesList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckServicesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheckServicesList;

                    /**
                     * Decodes a HealthCheckServicesList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckServicesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheckServicesList;

                    /**
                     * Verifies a HealthCheckServicesList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckServicesList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckServicesList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheckServicesList;

                    /**
                     * Creates a plain object from a HealthCheckServicesList message. Also converts values to other types if specified.
                     * @param message HealthCheckServicesList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheckServicesList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckServicesList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckServicesList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthCheckServicesScopedList. */
                interface IHealthCheckServicesScopedList {

                    /** HealthCheckServicesScopedList resources */
                    resources?: (google.cloud.compute.v1beta.IHealthCheckService[]|null);

                    /** HealthCheckServicesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthCheckServicesScopedList. */
                class HealthCheckServicesScopedList implements IHealthCheckServicesScopedList {

                    /**
                     * Constructs a new HealthCheckServicesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthCheckServicesScopedList);

                    /** HealthCheckServicesScopedList resources. */
                    public resources: google.cloud.compute.v1beta.IHealthCheckService[];

                    /** HealthCheckServicesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthCheckServicesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthCheckServicesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthCheckServicesScopedList): google.cloud.compute.v1beta.HealthCheckServicesScopedList;

                    /**
                     * Encodes the specified HealthCheckServicesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckServicesScopedList.verify|verify} messages.
                     * @param message HealthCheckServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthCheckServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthCheckServicesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthCheckServicesScopedList.verify|verify} messages.
                     * @param message HealthCheckServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthCheckServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthCheckServicesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthCheckServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthCheckServicesScopedList;

                    /**
                     * Decodes a HealthCheckServicesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthCheckServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthCheckServicesScopedList;

                    /**
                     * Verifies a HealthCheckServicesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthCheckServicesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthCheckServicesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthCheckServicesScopedList;

                    /**
                     * Creates a plain object from a HealthCheckServicesScopedList message. Also converts values to other types if specified.
                     * @param message HealthCheckServicesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthCheckServicesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthCheckServicesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthCheckServicesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthChecksAggregatedList. */
                interface IHealthChecksAggregatedList {

                    /** HealthChecksAggregatedList id */
                    id?: (string|null);

                    /** HealthChecksAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IHealthChecksScopedList }|null);

                    /** HealthChecksAggregatedList kind */
                    kind?: (string|null);

                    /** HealthChecksAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthChecksAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** HealthChecksAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** HealthChecksAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthChecksAggregatedList. */
                class HealthChecksAggregatedList implements IHealthChecksAggregatedList {

                    /**
                     * Constructs a new HealthChecksAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthChecksAggregatedList);

                    /** HealthChecksAggregatedList id. */
                    public id?: (string|null);

                    /** HealthChecksAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IHealthChecksScopedList };

                    /** HealthChecksAggregatedList kind. */
                    public kind?: (string|null);

                    /** HealthChecksAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthChecksAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthChecksAggregatedList unreachables. */
                    public unreachables: string[];

                    /** HealthChecksAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthChecksAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthChecksAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthChecksAggregatedList): google.cloud.compute.v1beta.HealthChecksAggregatedList;

                    /**
                     * Encodes the specified HealthChecksAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthChecksAggregatedList.verify|verify} messages.
                     * @param message HealthChecksAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthChecksAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthChecksAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthChecksAggregatedList.verify|verify} messages.
                     * @param message HealthChecksAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthChecksAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthChecksAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthChecksAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthChecksAggregatedList;

                    /**
                     * Decodes a HealthChecksAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthChecksAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthChecksAggregatedList;

                    /**
                     * Verifies a HealthChecksAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthChecksAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthChecksAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthChecksAggregatedList;

                    /**
                     * Creates a plain object from a HealthChecksAggregatedList message. Also converts values to other types if specified.
                     * @param message HealthChecksAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthChecksAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthChecksAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthChecksAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthChecksScopedList. */
                interface IHealthChecksScopedList {

                    /** HealthChecksScopedList healthChecks */
                    healthChecks?: (google.cloud.compute.v1beta.IHealthCheck[]|null);

                    /** HealthChecksScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthChecksScopedList. */
                class HealthChecksScopedList implements IHealthChecksScopedList {

                    /**
                     * Constructs a new HealthChecksScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthChecksScopedList);

                    /** HealthChecksScopedList healthChecks. */
                    public healthChecks: google.cloud.compute.v1beta.IHealthCheck[];

                    /** HealthChecksScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthChecksScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthChecksScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthChecksScopedList): google.cloud.compute.v1beta.HealthChecksScopedList;

                    /**
                     * Encodes the specified HealthChecksScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthChecksScopedList.verify|verify} messages.
                     * @param message HealthChecksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthChecksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthChecksScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthChecksScopedList.verify|verify} messages.
                     * @param message HealthChecksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthChecksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthChecksScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthChecksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthChecksScopedList;

                    /**
                     * Decodes a HealthChecksScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthChecksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthChecksScopedList;

                    /**
                     * Verifies a HealthChecksScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthChecksScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthChecksScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthChecksScopedList;

                    /**
                     * Creates a plain object from a HealthChecksScopedList message. Also converts values to other types if specified.
                     * @param message HealthChecksScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthChecksScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthChecksScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthChecksScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthSource. */
                interface IHealthSource {

                    /** HealthSource creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** HealthSource description */
                    description?: (string|null);

                    /** HealthSource fingerprint */
                    fingerprint?: (string|null);

                    /** HealthSource healthAggregationPolicy */
                    healthAggregationPolicy?: (string|null);

                    /** HealthSource id */
                    id?: (number|Long|string|null);

                    /** HealthSource kind */
                    kind?: (string|null);

                    /** HealthSource name */
                    name?: (string|null);

                    /** HealthSource region */
                    region?: (string|null);

                    /** HealthSource selfLink */
                    selfLink?: (string|null);

                    /** HealthSource selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** HealthSource sourceType */
                    sourceType?: (string|null);

                    /** HealthSource sources */
                    sources?: (string[]|null);
                }

                /** Represents a HealthSource. */
                class HealthSource implements IHealthSource {

                    /**
                     * Constructs a new HealthSource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthSource);

                    /** HealthSource creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** HealthSource description. */
                    public description?: (string|null);

                    /** HealthSource fingerprint. */
                    public fingerprint?: (string|null);

                    /** HealthSource healthAggregationPolicy. */
                    public healthAggregationPolicy?: (string|null);

                    /** HealthSource id. */
                    public id?: (number|Long|string|null);

                    /** HealthSource kind. */
                    public kind?: (string|null);

                    /** HealthSource name. */
                    public name?: (string|null);

                    /** HealthSource region. */
                    public region?: (string|null);

                    /** HealthSource selfLink. */
                    public selfLink?: (string|null);

                    /** HealthSource selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** HealthSource sourceType. */
                    public sourceType?: (string|null);

                    /** HealthSource sources. */
                    public sources: string[];

                    /**
                     * Creates a new HealthSource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthSource instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthSource): google.cloud.compute.v1beta.HealthSource;

                    /**
                     * Encodes the specified HealthSource message. Does not implicitly {@link google.cloud.compute.v1beta.HealthSource.verify|verify} messages.
                     * @param message HealthSource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthSource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthSource message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthSource.verify|verify} messages.
                     * @param message HealthSource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthSource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthSource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthSource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthSource;

                    /**
                     * Decodes a HealthSource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthSource
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthSource;

                    /**
                     * Verifies a HealthSource message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthSource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthSource
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthSource;

                    /**
                     * Creates a plain object from a HealthSource message. Also converts values to other types if specified.
                     * @param message HealthSource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthSource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthSource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthSource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthSource {

                    /** SourceType enum. */
                    enum SourceType {
                        UNDEFINED_SOURCE_TYPE = 0,
                        BACKEND_SERVICE = 285792202
                    }
                }

                /** Properties of a HealthSourceAggregatedList. */
                interface IHealthSourceAggregatedList {

                    /** HealthSourceAggregatedList id */
                    id?: (string|null);

                    /** HealthSourceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IHealthSourcesScopedList }|null);

                    /** HealthSourceAggregatedList kind */
                    kind?: (string|null);

                    /** HealthSourceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthSourceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** HealthSourceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** HealthSourceAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthSourceAggregatedList. */
                class HealthSourceAggregatedList implements IHealthSourceAggregatedList {

                    /**
                     * Constructs a new HealthSourceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthSourceAggregatedList);

                    /** HealthSourceAggregatedList id. */
                    public id?: (string|null);

                    /** HealthSourceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IHealthSourcesScopedList };

                    /** HealthSourceAggregatedList kind. */
                    public kind?: (string|null);

                    /** HealthSourceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthSourceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthSourceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** HealthSourceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthSourceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthSourceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthSourceAggregatedList): google.cloud.compute.v1beta.HealthSourceAggregatedList;

                    /**
                     * Encodes the specified HealthSourceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthSourceAggregatedList.verify|verify} messages.
                     * @param message HealthSourceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthSourceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthSourceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthSourceAggregatedList.verify|verify} messages.
                     * @param message HealthSourceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthSourceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthSourceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthSourceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthSourceAggregatedList;

                    /**
                     * Decodes a HealthSourceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthSourceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthSourceAggregatedList;

                    /**
                     * Verifies a HealthSourceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthSourceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthSourceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthSourceAggregatedList;

                    /**
                     * Creates a plain object from a HealthSourceAggregatedList message. Also converts values to other types if specified.
                     * @param message HealthSourceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthSourceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthSourceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthSourceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthSourceList. */
                interface IHealthSourceList {

                    /** HealthSourceList id */
                    id?: (string|null);

                    /** HealthSourceList items */
                    items?: (google.cloud.compute.v1beta.IHealthSource[]|null);

                    /** HealthSourceList kind */
                    kind?: (string|null);

                    /** HealthSourceList nextPageToken */
                    nextPageToken?: (string|null);

                    /** HealthSourceList selfLink */
                    selfLink?: (string|null);

                    /** HealthSourceList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthSourceList. */
                class HealthSourceList implements IHealthSourceList {

                    /**
                     * Constructs a new HealthSourceList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthSourceList);

                    /** HealthSourceList id. */
                    public id?: (string|null);

                    /** HealthSourceList items. */
                    public items: google.cloud.compute.v1beta.IHealthSource[];

                    /** HealthSourceList kind. */
                    public kind?: (string|null);

                    /** HealthSourceList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** HealthSourceList selfLink. */
                    public selfLink?: (string|null);

                    /** HealthSourceList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthSourceList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthSourceList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthSourceList): google.cloud.compute.v1beta.HealthSourceList;

                    /**
                     * Encodes the specified HealthSourceList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthSourceList.verify|verify} messages.
                     * @param message HealthSourceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthSourceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthSourceList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthSourceList.verify|verify} messages.
                     * @param message HealthSourceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthSourceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthSourceList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthSourceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthSourceList;

                    /**
                     * Decodes a HealthSourceList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthSourceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthSourceList;

                    /**
                     * Verifies a HealthSourceList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthSourceList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthSourceList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthSourceList;

                    /**
                     * Creates a plain object from a HealthSourceList message. Also converts values to other types if specified.
                     * @param message HealthSourceList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthSourceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthSourceList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthSourceList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthSourcesScopedList. */
                interface IHealthSourcesScopedList {

                    /** HealthSourcesScopedList healthSources */
                    healthSources?: (google.cloud.compute.v1beta.IHealthSource[]|null);

                    /** HealthSourcesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a HealthSourcesScopedList. */
                class HealthSourcesScopedList implements IHealthSourcesScopedList {

                    /**
                     * Constructs a new HealthSourcesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthSourcesScopedList);

                    /** HealthSourcesScopedList healthSources. */
                    public healthSources: google.cloud.compute.v1beta.IHealthSource[];

                    /** HealthSourcesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new HealthSourcesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthSourcesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthSourcesScopedList): google.cloud.compute.v1beta.HealthSourcesScopedList;

                    /**
                     * Encodes the specified HealthSourcesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.HealthSourcesScopedList.verify|verify} messages.
                     * @param message HealthSourcesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthSourcesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthSourcesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthSourcesScopedList.verify|verify} messages.
                     * @param message HealthSourcesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthSourcesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthSourcesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthSourcesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthSourcesScopedList;

                    /**
                     * Decodes a HealthSourcesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthSourcesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthSourcesScopedList;

                    /**
                     * Verifies a HealthSourcesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthSourcesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthSourcesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthSourcesScopedList;

                    /**
                     * Creates a plain object from a HealthSourcesScopedList message. Also converts values to other types if specified.
                     * @param message HealthSourcesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthSourcesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthSourcesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthSourcesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HealthStatus. */
                interface IHealthStatus {

                    /** HealthStatus annotations */
                    annotations?: ({ [k: string]: string }|null);

                    /** HealthStatus forwardingRule */
                    forwardingRule?: (string|null);

                    /** HealthStatus forwardingRuleIp */
                    forwardingRuleIp?: (string|null);

                    /** HealthStatus healthState */
                    healthState?: (string|null);

                    /** HealthStatus instance */
                    instance?: (string|null);

                    /** HealthStatus ipAddress */
                    ipAddress?: (string|null);

                    /** HealthStatus ipv6Address */
                    ipv6Address?: (string|null);

                    /** HealthStatus ipv6HealthState */
                    ipv6HealthState?: (string|null);

                    /** HealthStatus port */
                    port?: (number|null);

                    /** HealthStatus weight */
                    weight?: (string|null);

                    /** HealthStatus weightError */
                    weightError?: (string|null);
                }

                /** Represents a HealthStatus. */
                class HealthStatus implements IHealthStatus {

                    /**
                     * Constructs a new HealthStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthStatus);

                    /** HealthStatus annotations. */
                    public annotations: { [k: string]: string };

                    /** HealthStatus forwardingRule. */
                    public forwardingRule?: (string|null);

                    /** HealthStatus forwardingRuleIp. */
                    public forwardingRuleIp?: (string|null);

                    /** HealthStatus healthState. */
                    public healthState?: (string|null);

                    /** HealthStatus instance. */
                    public instance?: (string|null);

                    /** HealthStatus ipAddress. */
                    public ipAddress?: (string|null);

                    /** HealthStatus ipv6Address. */
                    public ipv6Address?: (string|null);

                    /** HealthStatus ipv6HealthState. */
                    public ipv6HealthState?: (string|null);

                    /** HealthStatus port. */
                    public port?: (number|null);

                    /** HealthStatus weight. */
                    public weight?: (string|null);

                    /** HealthStatus weightError. */
                    public weightError?: (string|null);

                    /**
                     * Creates a new HealthStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthStatus): google.cloud.compute.v1beta.HealthStatus;

                    /**
                     * Encodes the specified HealthStatus message. Does not implicitly {@link google.cloud.compute.v1beta.HealthStatus.verify|verify} messages.
                     * @param message HealthStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthStatus.verify|verify} messages.
                     * @param message HealthStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthStatus;

                    /**
                     * Decodes a HealthStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthStatus;

                    /**
                     * Verifies a HealthStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthStatus;

                    /**
                     * Creates a plain object from a HealthStatus message. Also converts values to other types if specified.
                     * @param message HealthStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthStatus {

                    /** HealthState enum. */
                    enum HealthState {
                        UNDEFINED_HEALTH_STATE = 0,
                        HEALTHY = 439801213,
                        UNHEALTHY = 462118084
                    }

                    /** Ipv6HealthState enum. */
                    enum Ipv6HealthState {
                        UNDEFINED_IPV6_HEALTH_STATE = 0
                    }

                    /** WeightError enum. */
                    enum WeightError {
                        UNDEFINED_WEIGHT_ERROR = 0,
                        INVALID_WEIGHT = 383698400,
                        MISSING_WEIGHT = 384027537,
                        UNAVAILABLE_WEIGHT = 439464295,
                        WEIGHT_NONE = 502428831
                    }
                }

                /** Properties of a HealthStatusForNetworkEndpoint. */
                interface IHealthStatusForNetworkEndpoint {

                    /** HealthStatusForNetworkEndpoint backendService */
                    backendService?: (google.cloud.compute.v1beta.IBackendServiceReference|null);

                    /** HealthStatusForNetworkEndpoint forwardingRule */
                    forwardingRule?: (google.cloud.compute.v1beta.IForwardingRuleReference|null);

                    /** HealthStatusForNetworkEndpoint healthCheck */
                    healthCheck?: (google.cloud.compute.v1beta.IHealthCheckReference|null);

                    /** HealthStatusForNetworkEndpoint healthCheckService */
                    healthCheckService?: (google.cloud.compute.v1beta.IHealthCheckServiceReference|null);

                    /** HealthStatusForNetworkEndpoint healthState */
                    healthState?: (string|null);

                    /** HealthStatusForNetworkEndpoint ipv6HealthState */
                    ipv6HealthState?: (string|null);
                }

                /** Represents a HealthStatusForNetworkEndpoint. */
                class HealthStatusForNetworkEndpoint implements IHealthStatusForNetworkEndpoint {

                    /**
                     * Constructs a new HealthStatusForNetworkEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHealthStatusForNetworkEndpoint);

                    /** HealthStatusForNetworkEndpoint backendService. */
                    public backendService?: (google.cloud.compute.v1beta.IBackendServiceReference|null);

                    /** HealthStatusForNetworkEndpoint forwardingRule. */
                    public forwardingRule?: (google.cloud.compute.v1beta.IForwardingRuleReference|null);

                    /** HealthStatusForNetworkEndpoint healthCheck. */
                    public healthCheck?: (google.cloud.compute.v1beta.IHealthCheckReference|null);

                    /** HealthStatusForNetworkEndpoint healthCheckService. */
                    public healthCheckService?: (google.cloud.compute.v1beta.IHealthCheckServiceReference|null);

                    /** HealthStatusForNetworkEndpoint healthState. */
                    public healthState?: (string|null);

                    /** HealthStatusForNetworkEndpoint ipv6HealthState. */
                    public ipv6HealthState?: (string|null);

                    /**
                     * Creates a new HealthStatusForNetworkEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HealthStatusForNetworkEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHealthStatusForNetworkEndpoint): google.cloud.compute.v1beta.HealthStatusForNetworkEndpoint;

                    /**
                     * Encodes the specified HealthStatusForNetworkEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.HealthStatusForNetworkEndpoint.verify|verify} messages.
                     * @param message HealthStatusForNetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHealthStatusForNetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HealthStatusForNetworkEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HealthStatusForNetworkEndpoint.verify|verify} messages.
                     * @param message HealthStatusForNetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHealthStatusForNetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HealthStatusForNetworkEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HealthStatusForNetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HealthStatusForNetworkEndpoint;

                    /**
                     * Decodes a HealthStatusForNetworkEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HealthStatusForNetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HealthStatusForNetworkEndpoint;

                    /**
                     * Verifies a HealthStatusForNetworkEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HealthStatusForNetworkEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HealthStatusForNetworkEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HealthStatusForNetworkEndpoint;

                    /**
                     * Creates a plain object from a HealthStatusForNetworkEndpoint message. Also converts values to other types if specified.
                     * @param message HealthStatusForNetworkEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HealthStatusForNetworkEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HealthStatusForNetworkEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HealthStatusForNetworkEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HealthStatusForNetworkEndpoint {

                    /** HealthState enum. */
                    enum HealthState {
                        UNDEFINED_HEALTH_STATE = 0,
                        DRAINING = 480455402,
                        HEALTHY = 439801213,
                        UNHEALTHY = 462118084,
                        UNKNOWN = 433141802
                    }

                    /** Ipv6HealthState enum. */
                    enum Ipv6HealthState {
                        UNDEFINED_IPV6_HEALTH_STATE = 0
                    }
                }

                /** Properties of a Help. */
                interface IHelp {

                    /** Help links */
                    links?: (google.cloud.compute.v1beta.IHelpLink[]|null);
                }

                /** Represents a Help. */
                class Help implements IHelp {

                    /**
                     * Constructs a new Help.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHelp);

                    /** Help links. */
                    public links: google.cloud.compute.v1beta.IHelpLink[];

                    /**
                     * Creates a new Help instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Help instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHelp): google.cloud.compute.v1beta.Help;

                    /**
                     * Encodes the specified Help message. Does not implicitly {@link google.cloud.compute.v1beta.Help.verify|verify} messages.
                     * @param message Help message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHelp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Help message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Help.verify|verify} messages.
                     * @param message Help message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHelp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Help message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Help
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Help;

                    /**
                     * Decodes a Help message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Help
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Help;

                    /**
                     * Verifies a Help message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Help message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Help
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Help;

                    /**
                     * Creates a plain object from a Help message. Also converts values to other types if specified.
                     * @param message Help
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Help, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Help to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Help
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HelpLink. */
                interface IHelpLink {

                    /** HelpLink description */
                    description?: (string|null);

                    /** HelpLink url */
                    url?: (string|null);
                }

                /** Represents a HelpLink. */
                class HelpLink implements IHelpLink {

                    /**
                     * Constructs a new HelpLink.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHelpLink);

                    /** HelpLink description. */
                    public description?: (string|null);

                    /** HelpLink url. */
                    public url?: (string|null);

                    /**
                     * Creates a new HelpLink instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HelpLink instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHelpLink): google.cloud.compute.v1beta.HelpLink;

                    /**
                     * Encodes the specified HelpLink message. Does not implicitly {@link google.cloud.compute.v1beta.HelpLink.verify|verify} messages.
                     * @param message HelpLink message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHelpLink, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HelpLink message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HelpLink.verify|verify} messages.
                     * @param message HelpLink message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHelpLink, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HelpLink message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HelpLink
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HelpLink;

                    /**
                     * Decodes a HelpLink message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HelpLink
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HelpLink;

                    /**
                     * Verifies a HelpLink message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HelpLink message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HelpLink
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HelpLink;

                    /**
                     * Creates a plain object from a HelpLink message. Also converts values to other types if specified.
                     * @param message HelpLink
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HelpLink, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HelpLink to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HelpLink
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HostRule. */
                interface IHostRule {

                    /** HostRule description */
                    description?: (string|null);

                    /** HostRule hosts */
                    hosts?: (string[]|null);

                    /** HostRule pathMatcher */
                    pathMatcher?: (string|null);
                }

                /** Represents a HostRule. */
                class HostRule implements IHostRule {

                    /**
                     * Constructs a new HostRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHostRule);

                    /** HostRule description. */
                    public description?: (string|null);

                    /** HostRule hosts. */
                    public hosts: string[];

                    /** HostRule pathMatcher. */
                    public pathMatcher?: (string|null);

                    /**
                     * Creates a new HostRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HostRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHostRule): google.cloud.compute.v1beta.HostRule;

                    /**
                     * Encodes the specified HostRule message. Does not implicitly {@link google.cloud.compute.v1beta.HostRule.verify|verify} messages.
                     * @param message HostRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHostRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HostRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HostRule.verify|verify} messages.
                     * @param message HostRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHostRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HostRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HostRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HostRule;

                    /**
                     * Decodes a HostRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HostRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HostRule;

                    /**
                     * Verifies a HostRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HostRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HostRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HostRule;

                    /**
                     * Creates a plain object from a HostRule message. Also converts values to other types if specified.
                     * @param message HostRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HostRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HostRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HostRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpFaultAbort. */
                interface IHttpFaultAbort {

                    /** HttpFaultAbort httpStatus */
                    httpStatus?: (number|null);

                    /** HttpFaultAbort percentage */
                    percentage?: (number|null);
                }

                /** Represents a HttpFaultAbort. */
                class HttpFaultAbort implements IHttpFaultAbort {

                    /**
                     * Constructs a new HttpFaultAbort.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpFaultAbort);

                    /** HttpFaultAbort httpStatus. */
                    public httpStatus?: (number|null);

                    /** HttpFaultAbort percentage. */
                    public percentage?: (number|null);

                    /**
                     * Creates a new HttpFaultAbort instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpFaultAbort instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpFaultAbort): google.cloud.compute.v1beta.HttpFaultAbort;

                    /**
                     * Encodes the specified HttpFaultAbort message. Does not implicitly {@link google.cloud.compute.v1beta.HttpFaultAbort.verify|verify} messages.
                     * @param message HttpFaultAbort message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpFaultAbort, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpFaultAbort message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpFaultAbort.verify|verify} messages.
                     * @param message HttpFaultAbort message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpFaultAbort, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpFaultAbort message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpFaultAbort
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpFaultAbort;

                    /**
                     * Decodes a HttpFaultAbort message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpFaultAbort
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpFaultAbort;

                    /**
                     * Verifies a HttpFaultAbort message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpFaultAbort message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpFaultAbort
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpFaultAbort;

                    /**
                     * Creates a plain object from a HttpFaultAbort message. Also converts values to other types if specified.
                     * @param message HttpFaultAbort
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpFaultAbort, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpFaultAbort to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpFaultAbort
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpFaultDelay. */
                interface IHttpFaultDelay {

                    /** HttpFaultDelay fixedDelay */
                    fixedDelay?: (google.cloud.compute.v1beta.IDuration|null);

                    /** HttpFaultDelay percentage */
                    percentage?: (number|null);
                }

                /** Represents a HttpFaultDelay. */
                class HttpFaultDelay implements IHttpFaultDelay {

                    /**
                     * Constructs a new HttpFaultDelay.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpFaultDelay);

                    /** HttpFaultDelay fixedDelay. */
                    public fixedDelay?: (google.cloud.compute.v1beta.IDuration|null);

                    /** HttpFaultDelay percentage. */
                    public percentage?: (number|null);

                    /**
                     * Creates a new HttpFaultDelay instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpFaultDelay instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpFaultDelay): google.cloud.compute.v1beta.HttpFaultDelay;

                    /**
                     * Encodes the specified HttpFaultDelay message. Does not implicitly {@link google.cloud.compute.v1beta.HttpFaultDelay.verify|verify} messages.
                     * @param message HttpFaultDelay message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpFaultDelay, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpFaultDelay message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpFaultDelay.verify|verify} messages.
                     * @param message HttpFaultDelay message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpFaultDelay, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpFaultDelay message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpFaultDelay
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpFaultDelay;

                    /**
                     * Decodes a HttpFaultDelay message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpFaultDelay
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpFaultDelay;

                    /**
                     * Verifies a HttpFaultDelay message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpFaultDelay message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpFaultDelay
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpFaultDelay;

                    /**
                     * Creates a plain object from a HttpFaultDelay message. Also converts values to other types if specified.
                     * @param message HttpFaultDelay
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpFaultDelay, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpFaultDelay to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpFaultDelay
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpFaultInjection. */
                interface IHttpFaultInjection {

                    /** HttpFaultInjection abort */
                    abort?: (google.cloud.compute.v1beta.IHttpFaultAbort|null);

                    /** HttpFaultInjection delay */
                    delay?: (google.cloud.compute.v1beta.IHttpFaultDelay|null);
                }

                /** Represents a HttpFaultInjection. */
                class HttpFaultInjection implements IHttpFaultInjection {

                    /**
                     * Constructs a new HttpFaultInjection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpFaultInjection);

                    /** HttpFaultInjection abort. */
                    public abort?: (google.cloud.compute.v1beta.IHttpFaultAbort|null);

                    /** HttpFaultInjection delay. */
                    public delay?: (google.cloud.compute.v1beta.IHttpFaultDelay|null);

                    /**
                     * Creates a new HttpFaultInjection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpFaultInjection instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpFaultInjection): google.cloud.compute.v1beta.HttpFaultInjection;

                    /**
                     * Encodes the specified HttpFaultInjection message. Does not implicitly {@link google.cloud.compute.v1beta.HttpFaultInjection.verify|verify} messages.
                     * @param message HttpFaultInjection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpFaultInjection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpFaultInjection message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpFaultInjection.verify|verify} messages.
                     * @param message HttpFaultInjection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpFaultInjection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpFaultInjection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpFaultInjection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpFaultInjection;

                    /**
                     * Decodes a HttpFaultInjection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpFaultInjection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpFaultInjection;

                    /**
                     * Verifies a HttpFaultInjection message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpFaultInjection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpFaultInjection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpFaultInjection;

                    /**
                     * Creates a plain object from a HttpFaultInjection message. Also converts values to other types if specified.
                     * @param message HttpFaultInjection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpFaultInjection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpFaultInjection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpFaultInjection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpFilterConfig. */
                interface IHttpFilterConfig {

                    /** HttpFilterConfig config */
                    config?: (string|null);

                    /** HttpFilterConfig configTypeUrl */
                    configTypeUrl?: (string|null);

                    /** HttpFilterConfig filterName */
                    filterName?: (string|null);
                }

                /** Represents a HttpFilterConfig. */
                class HttpFilterConfig implements IHttpFilterConfig {

                    /**
                     * Constructs a new HttpFilterConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpFilterConfig);

                    /** HttpFilterConfig config. */
                    public config?: (string|null);

                    /** HttpFilterConfig configTypeUrl. */
                    public configTypeUrl?: (string|null);

                    /** HttpFilterConfig filterName. */
                    public filterName?: (string|null);

                    /**
                     * Creates a new HttpFilterConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpFilterConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpFilterConfig): google.cloud.compute.v1beta.HttpFilterConfig;

                    /**
                     * Encodes the specified HttpFilterConfig message. Does not implicitly {@link google.cloud.compute.v1beta.HttpFilterConfig.verify|verify} messages.
                     * @param message HttpFilterConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpFilterConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpFilterConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpFilterConfig.verify|verify} messages.
                     * @param message HttpFilterConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpFilterConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpFilterConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpFilterConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpFilterConfig;

                    /**
                     * Decodes a HttpFilterConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpFilterConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpFilterConfig;

                    /**
                     * Verifies a HttpFilterConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpFilterConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpFilterConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpFilterConfig;

                    /**
                     * Creates a plain object from a HttpFilterConfig message. Also converts values to other types if specified.
                     * @param message HttpFilterConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpFilterConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpFilterConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpFilterConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpHeaderAction. */
                interface IHttpHeaderAction {

                    /** HttpHeaderAction requestHeadersToAdd */
                    requestHeadersToAdd?: (google.cloud.compute.v1beta.IHttpHeaderOption[]|null);

                    /** HttpHeaderAction requestHeadersToRemove */
                    requestHeadersToRemove?: (string[]|null);

                    /** HttpHeaderAction responseHeadersToAdd */
                    responseHeadersToAdd?: (google.cloud.compute.v1beta.IHttpHeaderOption[]|null);

                    /** HttpHeaderAction responseHeadersToRemove */
                    responseHeadersToRemove?: (string[]|null);
                }

                /** Represents a HttpHeaderAction. */
                class HttpHeaderAction implements IHttpHeaderAction {

                    /**
                     * Constructs a new HttpHeaderAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpHeaderAction);

                    /** HttpHeaderAction requestHeadersToAdd. */
                    public requestHeadersToAdd: google.cloud.compute.v1beta.IHttpHeaderOption[];

                    /** HttpHeaderAction requestHeadersToRemove. */
                    public requestHeadersToRemove: string[];

                    /** HttpHeaderAction responseHeadersToAdd. */
                    public responseHeadersToAdd: google.cloud.compute.v1beta.IHttpHeaderOption[];

                    /** HttpHeaderAction responseHeadersToRemove. */
                    public responseHeadersToRemove: string[];

                    /**
                     * Creates a new HttpHeaderAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpHeaderAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpHeaderAction): google.cloud.compute.v1beta.HttpHeaderAction;

                    /**
                     * Encodes the specified HttpHeaderAction message. Does not implicitly {@link google.cloud.compute.v1beta.HttpHeaderAction.verify|verify} messages.
                     * @param message HttpHeaderAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpHeaderAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpHeaderAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpHeaderAction.verify|verify} messages.
                     * @param message HttpHeaderAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpHeaderAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpHeaderAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpHeaderAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpHeaderAction;

                    /**
                     * Decodes a HttpHeaderAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpHeaderAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpHeaderAction;

                    /**
                     * Verifies a HttpHeaderAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpHeaderAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpHeaderAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpHeaderAction;

                    /**
                     * Creates a plain object from a HttpHeaderAction message. Also converts values to other types if specified.
                     * @param message HttpHeaderAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpHeaderAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpHeaderAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpHeaderAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpHeaderMatch. */
                interface IHttpHeaderMatch {

                    /** HttpHeaderMatch exactMatch */
                    exactMatch?: (string|null);

                    /** HttpHeaderMatch headerName */
                    headerName?: (string|null);

                    /** HttpHeaderMatch invertMatch */
                    invertMatch?: (boolean|null);

                    /** HttpHeaderMatch prefixMatch */
                    prefixMatch?: (string|null);

                    /** HttpHeaderMatch presentMatch */
                    presentMatch?: (boolean|null);

                    /** HttpHeaderMatch rangeMatch */
                    rangeMatch?: (google.cloud.compute.v1beta.IInt64RangeMatch|null);

                    /** HttpHeaderMatch regexMatch */
                    regexMatch?: (string|null);

                    /** HttpHeaderMatch suffixMatch */
                    suffixMatch?: (string|null);
                }

                /** Represents a HttpHeaderMatch. */
                class HttpHeaderMatch implements IHttpHeaderMatch {

                    /**
                     * Constructs a new HttpHeaderMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpHeaderMatch);

                    /** HttpHeaderMatch exactMatch. */
                    public exactMatch?: (string|null);

                    /** HttpHeaderMatch headerName. */
                    public headerName?: (string|null);

                    /** HttpHeaderMatch invertMatch. */
                    public invertMatch?: (boolean|null);

                    /** HttpHeaderMatch prefixMatch. */
                    public prefixMatch?: (string|null);

                    /** HttpHeaderMatch presentMatch. */
                    public presentMatch?: (boolean|null);

                    /** HttpHeaderMatch rangeMatch. */
                    public rangeMatch?: (google.cloud.compute.v1beta.IInt64RangeMatch|null);

                    /** HttpHeaderMatch regexMatch. */
                    public regexMatch?: (string|null);

                    /** HttpHeaderMatch suffixMatch. */
                    public suffixMatch?: (string|null);

                    /**
                     * Creates a new HttpHeaderMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpHeaderMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpHeaderMatch): google.cloud.compute.v1beta.HttpHeaderMatch;

                    /**
                     * Encodes the specified HttpHeaderMatch message. Does not implicitly {@link google.cloud.compute.v1beta.HttpHeaderMatch.verify|verify} messages.
                     * @param message HttpHeaderMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpHeaderMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpHeaderMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpHeaderMatch.verify|verify} messages.
                     * @param message HttpHeaderMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpHeaderMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpHeaderMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpHeaderMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpHeaderMatch;

                    /**
                     * Decodes a HttpHeaderMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpHeaderMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpHeaderMatch;

                    /**
                     * Verifies a HttpHeaderMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpHeaderMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpHeaderMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpHeaderMatch;

                    /**
                     * Creates a plain object from a HttpHeaderMatch message. Also converts values to other types if specified.
                     * @param message HttpHeaderMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpHeaderMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpHeaderMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpHeaderMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpHeaderOption. */
                interface IHttpHeaderOption {

                    /** HttpHeaderOption headerName */
                    headerName?: (string|null);

                    /** HttpHeaderOption headerValue */
                    headerValue?: (string|null);

                    /** HttpHeaderOption replace */
                    replace?: (boolean|null);
                }

                /** Represents a HttpHeaderOption. */
                class HttpHeaderOption implements IHttpHeaderOption {

                    /**
                     * Constructs a new HttpHeaderOption.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpHeaderOption);

                    /** HttpHeaderOption headerName. */
                    public headerName?: (string|null);

                    /** HttpHeaderOption headerValue. */
                    public headerValue?: (string|null);

                    /** HttpHeaderOption replace. */
                    public replace?: (boolean|null);

                    /**
                     * Creates a new HttpHeaderOption instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpHeaderOption instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpHeaderOption): google.cloud.compute.v1beta.HttpHeaderOption;

                    /**
                     * Encodes the specified HttpHeaderOption message. Does not implicitly {@link google.cloud.compute.v1beta.HttpHeaderOption.verify|verify} messages.
                     * @param message HttpHeaderOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpHeaderOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpHeaderOption message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpHeaderOption.verify|verify} messages.
                     * @param message HttpHeaderOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpHeaderOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpHeaderOption message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpHeaderOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpHeaderOption;

                    /**
                     * Decodes a HttpHeaderOption message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpHeaderOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpHeaderOption;

                    /**
                     * Verifies a HttpHeaderOption message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpHeaderOption message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpHeaderOption
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpHeaderOption;

                    /**
                     * Creates a plain object from a HttpHeaderOption message. Also converts values to other types if specified.
                     * @param message HttpHeaderOption
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpHeaderOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpHeaderOption to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpHeaderOption
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpQueryParameterMatch. */
                interface IHttpQueryParameterMatch {

                    /** HttpQueryParameterMatch exactMatch */
                    exactMatch?: (string|null);

                    /** HttpQueryParameterMatch name */
                    name?: (string|null);

                    /** HttpQueryParameterMatch presentMatch */
                    presentMatch?: (boolean|null);

                    /** HttpQueryParameterMatch regexMatch */
                    regexMatch?: (string|null);
                }

                /** Represents a HttpQueryParameterMatch. */
                class HttpQueryParameterMatch implements IHttpQueryParameterMatch {

                    /**
                     * Constructs a new HttpQueryParameterMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpQueryParameterMatch);

                    /** HttpQueryParameterMatch exactMatch. */
                    public exactMatch?: (string|null);

                    /** HttpQueryParameterMatch name. */
                    public name?: (string|null);

                    /** HttpQueryParameterMatch presentMatch. */
                    public presentMatch?: (boolean|null);

                    /** HttpQueryParameterMatch regexMatch. */
                    public regexMatch?: (string|null);

                    /**
                     * Creates a new HttpQueryParameterMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpQueryParameterMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpQueryParameterMatch): google.cloud.compute.v1beta.HttpQueryParameterMatch;

                    /**
                     * Encodes the specified HttpQueryParameterMatch message. Does not implicitly {@link google.cloud.compute.v1beta.HttpQueryParameterMatch.verify|verify} messages.
                     * @param message HttpQueryParameterMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpQueryParameterMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpQueryParameterMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpQueryParameterMatch.verify|verify} messages.
                     * @param message HttpQueryParameterMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpQueryParameterMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpQueryParameterMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpQueryParameterMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpQueryParameterMatch;

                    /**
                     * Decodes a HttpQueryParameterMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpQueryParameterMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpQueryParameterMatch;

                    /**
                     * Verifies a HttpQueryParameterMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpQueryParameterMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpQueryParameterMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpQueryParameterMatch;

                    /**
                     * Creates a plain object from a HttpQueryParameterMatch message. Also converts values to other types if specified.
                     * @param message HttpQueryParameterMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpQueryParameterMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpQueryParameterMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpQueryParameterMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpRedirectAction. */
                interface IHttpRedirectAction {

                    /** HttpRedirectAction hostRedirect */
                    hostRedirect?: (string|null);

                    /** HttpRedirectAction httpsRedirect */
                    httpsRedirect?: (boolean|null);

                    /** HttpRedirectAction pathRedirect */
                    pathRedirect?: (string|null);

                    /** HttpRedirectAction prefixRedirect */
                    prefixRedirect?: (string|null);

                    /** HttpRedirectAction redirectResponseCode */
                    redirectResponseCode?: (string|null);

                    /** HttpRedirectAction stripQuery */
                    stripQuery?: (boolean|null);
                }

                /** Represents a HttpRedirectAction. */
                class HttpRedirectAction implements IHttpRedirectAction {

                    /**
                     * Constructs a new HttpRedirectAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpRedirectAction);

                    /** HttpRedirectAction hostRedirect. */
                    public hostRedirect?: (string|null);

                    /** HttpRedirectAction httpsRedirect. */
                    public httpsRedirect?: (boolean|null);

                    /** HttpRedirectAction pathRedirect. */
                    public pathRedirect?: (string|null);

                    /** HttpRedirectAction prefixRedirect. */
                    public prefixRedirect?: (string|null);

                    /** HttpRedirectAction redirectResponseCode. */
                    public redirectResponseCode?: (string|null);

                    /** HttpRedirectAction stripQuery. */
                    public stripQuery?: (boolean|null);

                    /**
                     * Creates a new HttpRedirectAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRedirectAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpRedirectAction): google.cloud.compute.v1beta.HttpRedirectAction;

                    /**
                     * Encodes the specified HttpRedirectAction message. Does not implicitly {@link google.cloud.compute.v1beta.HttpRedirectAction.verify|verify} messages.
                     * @param message HttpRedirectAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpRedirectAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRedirectAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpRedirectAction.verify|verify} messages.
                     * @param message HttpRedirectAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpRedirectAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRedirectAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRedirectAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpRedirectAction;

                    /**
                     * Decodes a HttpRedirectAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRedirectAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpRedirectAction;

                    /**
                     * Verifies a HttpRedirectAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRedirectAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRedirectAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpRedirectAction;

                    /**
                     * Creates a plain object from a HttpRedirectAction message. Also converts values to other types if specified.
                     * @param message HttpRedirectAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpRedirectAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRedirectAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRedirectAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace HttpRedirectAction {

                    /** RedirectResponseCode enum. */
                    enum RedirectResponseCode {
                        UNDEFINED_REDIRECT_RESPONSE_CODE = 0,
                        FOUND = 67084130,
                        MOVED_PERMANENTLY_DEFAULT = 386698449,
                        PERMANENT_REDIRECT = 382006381,
                        SEE_OTHER = 445380580,
                        TEMPORARY_REDIRECT = 489550378
                    }
                }

                /** Properties of a HttpRetryPolicy. */
                interface IHttpRetryPolicy {

                    /** HttpRetryPolicy numRetries */
                    numRetries?: (number|null);

                    /** HttpRetryPolicy perTryTimeout */
                    perTryTimeout?: (google.cloud.compute.v1beta.IDuration|null);

                    /** HttpRetryPolicy retryConditions */
                    retryConditions?: (string[]|null);
                }

                /** Represents a HttpRetryPolicy. */
                class HttpRetryPolicy implements IHttpRetryPolicy {

                    /**
                     * Constructs a new HttpRetryPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpRetryPolicy);

                    /** HttpRetryPolicy numRetries. */
                    public numRetries?: (number|null);

                    /** HttpRetryPolicy perTryTimeout. */
                    public perTryTimeout?: (google.cloud.compute.v1beta.IDuration|null);

                    /** HttpRetryPolicy retryConditions. */
                    public retryConditions: string[];

                    /**
                     * Creates a new HttpRetryPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRetryPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpRetryPolicy): google.cloud.compute.v1beta.HttpRetryPolicy;

                    /**
                     * Encodes the specified HttpRetryPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.HttpRetryPolicy.verify|verify} messages.
                     * @param message HttpRetryPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpRetryPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRetryPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpRetryPolicy.verify|verify} messages.
                     * @param message HttpRetryPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpRetryPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRetryPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRetryPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpRetryPolicy;

                    /**
                     * Decodes a HttpRetryPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRetryPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpRetryPolicy;

                    /**
                     * Verifies a HttpRetryPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRetryPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRetryPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpRetryPolicy;

                    /**
                     * Creates a plain object from a HttpRetryPolicy message. Also converts values to other types if specified.
                     * @param message HttpRetryPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpRetryPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRetryPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRetryPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpRouteAction. */
                interface IHttpRouteAction {

                    /** HttpRouteAction cachePolicy */
                    cachePolicy?: (google.cloud.compute.v1beta.ICachePolicy|null);

                    /** HttpRouteAction corsPolicy */
                    corsPolicy?: (google.cloud.compute.v1beta.ICorsPolicy|null);

                    /** HttpRouteAction faultInjectionPolicy */
                    faultInjectionPolicy?: (google.cloud.compute.v1beta.IHttpFaultInjection|null);

                    /** HttpRouteAction maxStreamDuration */
                    maxStreamDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** HttpRouteAction requestMirrorPolicy */
                    requestMirrorPolicy?: (google.cloud.compute.v1beta.IRequestMirrorPolicy|null);

                    /** HttpRouteAction retryPolicy */
                    retryPolicy?: (google.cloud.compute.v1beta.IHttpRetryPolicy|null);

                    /** HttpRouteAction timeout */
                    timeout?: (google.cloud.compute.v1beta.IDuration|null);

                    /** HttpRouteAction urlRewrite */
                    urlRewrite?: (google.cloud.compute.v1beta.IUrlRewrite|null);

                    /** HttpRouteAction weightedBackendServices */
                    weightedBackendServices?: (google.cloud.compute.v1beta.IWeightedBackendService[]|null);
                }

                /** Represents a HttpRouteAction. */
                class HttpRouteAction implements IHttpRouteAction {

                    /**
                     * Constructs a new HttpRouteAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpRouteAction);

                    /** HttpRouteAction cachePolicy. */
                    public cachePolicy?: (google.cloud.compute.v1beta.ICachePolicy|null);

                    /** HttpRouteAction corsPolicy. */
                    public corsPolicy?: (google.cloud.compute.v1beta.ICorsPolicy|null);

                    /** HttpRouteAction faultInjectionPolicy. */
                    public faultInjectionPolicy?: (google.cloud.compute.v1beta.IHttpFaultInjection|null);

                    /** HttpRouteAction maxStreamDuration. */
                    public maxStreamDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** HttpRouteAction requestMirrorPolicy. */
                    public requestMirrorPolicy?: (google.cloud.compute.v1beta.IRequestMirrorPolicy|null);

                    /** HttpRouteAction retryPolicy. */
                    public retryPolicy?: (google.cloud.compute.v1beta.IHttpRetryPolicy|null);

                    /** HttpRouteAction timeout. */
                    public timeout?: (google.cloud.compute.v1beta.IDuration|null);

                    /** HttpRouteAction urlRewrite. */
                    public urlRewrite?: (google.cloud.compute.v1beta.IUrlRewrite|null);

                    /** HttpRouteAction weightedBackendServices. */
                    public weightedBackendServices: google.cloud.compute.v1beta.IWeightedBackendService[];

                    /**
                     * Creates a new HttpRouteAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRouteAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpRouteAction): google.cloud.compute.v1beta.HttpRouteAction;

                    /**
                     * Encodes the specified HttpRouteAction message. Does not implicitly {@link google.cloud.compute.v1beta.HttpRouteAction.verify|verify} messages.
                     * @param message HttpRouteAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpRouteAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRouteAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpRouteAction.verify|verify} messages.
                     * @param message HttpRouteAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpRouteAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRouteAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRouteAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpRouteAction;

                    /**
                     * Decodes a HttpRouteAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRouteAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpRouteAction;

                    /**
                     * Verifies a HttpRouteAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRouteAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRouteAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpRouteAction;

                    /**
                     * Creates a plain object from a HttpRouteAction message. Also converts values to other types if specified.
                     * @param message HttpRouteAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpRouteAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRouteAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRouteAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpRouteRule. */
                interface IHttpRouteRule {

                    /** HttpRouteRule customErrorResponsePolicy */
                    customErrorResponsePolicy?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicy|null);

                    /** HttpRouteRule description */
                    description?: (string|null);

                    /** HttpRouteRule headerAction */
                    headerAction?: (google.cloud.compute.v1beta.IHttpHeaderAction|null);

                    /** HttpRouteRule httpFilterConfigs */
                    httpFilterConfigs?: (google.cloud.compute.v1beta.IHttpFilterConfig[]|null);

                    /** HttpRouteRule httpFilterMetadata */
                    httpFilterMetadata?: (google.cloud.compute.v1beta.IHttpFilterConfig[]|null);

                    /** HttpRouteRule matchRules */
                    matchRules?: (google.cloud.compute.v1beta.IHttpRouteRuleMatch[]|null);

                    /** HttpRouteRule priority */
                    priority?: (number|null);

                    /** HttpRouteRule routeAction */
                    routeAction?: (google.cloud.compute.v1beta.IHttpRouteAction|null);

                    /** HttpRouteRule service */
                    service?: (string|null);

                    /** HttpRouteRule urlRedirect */
                    urlRedirect?: (google.cloud.compute.v1beta.IHttpRedirectAction|null);
                }

                /** Represents a HttpRouteRule. */
                class HttpRouteRule implements IHttpRouteRule {

                    /**
                     * Constructs a new HttpRouteRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpRouteRule);

                    /** HttpRouteRule customErrorResponsePolicy. */
                    public customErrorResponsePolicy?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicy|null);

                    /** HttpRouteRule description. */
                    public description?: (string|null);

                    /** HttpRouteRule headerAction. */
                    public headerAction?: (google.cloud.compute.v1beta.IHttpHeaderAction|null);

                    /** HttpRouteRule httpFilterConfigs. */
                    public httpFilterConfigs: google.cloud.compute.v1beta.IHttpFilterConfig[];

                    /** HttpRouteRule httpFilterMetadata. */
                    public httpFilterMetadata: google.cloud.compute.v1beta.IHttpFilterConfig[];

                    /** HttpRouteRule matchRules. */
                    public matchRules: google.cloud.compute.v1beta.IHttpRouteRuleMatch[];

                    /** HttpRouteRule priority. */
                    public priority?: (number|null);

                    /** HttpRouteRule routeAction. */
                    public routeAction?: (google.cloud.compute.v1beta.IHttpRouteAction|null);

                    /** HttpRouteRule service. */
                    public service?: (string|null);

                    /** HttpRouteRule urlRedirect. */
                    public urlRedirect?: (google.cloud.compute.v1beta.IHttpRedirectAction|null);

                    /**
                     * Creates a new HttpRouteRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRouteRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpRouteRule): google.cloud.compute.v1beta.HttpRouteRule;

                    /**
                     * Encodes the specified HttpRouteRule message. Does not implicitly {@link google.cloud.compute.v1beta.HttpRouteRule.verify|verify} messages.
                     * @param message HttpRouteRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpRouteRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRouteRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpRouteRule.verify|verify} messages.
                     * @param message HttpRouteRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpRouteRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRouteRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRouteRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpRouteRule;

                    /**
                     * Decodes a HttpRouteRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRouteRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpRouteRule;

                    /**
                     * Verifies a HttpRouteRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRouteRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRouteRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpRouteRule;

                    /**
                     * Creates a plain object from a HttpRouteRule message. Also converts values to other types if specified.
                     * @param message HttpRouteRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpRouteRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRouteRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRouteRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HttpRouteRuleMatch. */
                interface IHttpRouteRuleMatch {

                    /** HttpRouteRuleMatch fullPathMatch */
                    fullPathMatch?: (string|null);

                    /** HttpRouteRuleMatch headerMatches */
                    headerMatches?: (google.cloud.compute.v1beta.IHttpHeaderMatch[]|null);

                    /** HttpRouteRuleMatch ignoreCase */
                    ignoreCase?: (boolean|null);

                    /** HttpRouteRuleMatch metadataFilters */
                    metadataFilters?: (google.cloud.compute.v1beta.IMetadataFilter[]|null);

                    /** HttpRouteRuleMatch pathTemplateMatch */
                    pathTemplateMatch?: (string|null);

                    /** HttpRouteRuleMatch prefixMatch */
                    prefixMatch?: (string|null);

                    /** HttpRouteRuleMatch queryParameterMatches */
                    queryParameterMatches?: (google.cloud.compute.v1beta.IHttpQueryParameterMatch[]|null);

                    /** HttpRouteRuleMatch regexMatch */
                    regexMatch?: (string|null);
                }

                /** Represents a HttpRouteRuleMatch. */
                class HttpRouteRuleMatch implements IHttpRouteRuleMatch {

                    /**
                     * Constructs a new HttpRouteRuleMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IHttpRouteRuleMatch);

                    /** HttpRouteRuleMatch fullPathMatch. */
                    public fullPathMatch?: (string|null);

                    /** HttpRouteRuleMatch headerMatches. */
                    public headerMatches: google.cloud.compute.v1beta.IHttpHeaderMatch[];

                    /** HttpRouteRuleMatch ignoreCase. */
                    public ignoreCase?: (boolean|null);

                    /** HttpRouteRuleMatch metadataFilters. */
                    public metadataFilters: google.cloud.compute.v1beta.IMetadataFilter[];

                    /** HttpRouteRuleMatch pathTemplateMatch. */
                    public pathTemplateMatch?: (string|null);

                    /** HttpRouteRuleMatch prefixMatch. */
                    public prefixMatch?: (string|null);

                    /** HttpRouteRuleMatch queryParameterMatches. */
                    public queryParameterMatches: google.cloud.compute.v1beta.IHttpQueryParameterMatch[];

                    /** HttpRouteRuleMatch regexMatch. */
                    public regexMatch?: (string|null);

                    /**
                     * Creates a new HttpRouteRuleMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HttpRouteRuleMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IHttpRouteRuleMatch): google.cloud.compute.v1beta.HttpRouteRuleMatch;

                    /**
                     * Encodes the specified HttpRouteRuleMatch message. Does not implicitly {@link google.cloud.compute.v1beta.HttpRouteRuleMatch.verify|verify} messages.
                     * @param message HttpRouteRuleMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IHttpRouteRuleMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HttpRouteRuleMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.HttpRouteRuleMatch.verify|verify} messages.
                     * @param message HttpRouteRuleMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IHttpRouteRuleMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HttpRouteRuleMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HttpRouteRuleMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.HttpRouteRuleMatch;

                    /**
                     * Decodes a HttpRouteRuleMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HttpRouteRuleMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.HttpRouteRuleMatch;

                    /**
                     * Verifies a HttpRouteRuleMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HttpRouteRuleMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HttpRouteRuleMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.HttpRouteRuleMatch;

                    /**
                     * Creates a plain object from a HttpRouteRuleMatch message. Also converts values to other types if specified.
                     * @param message HttpRouteRuleMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.HttpRouteRuleMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HttpRouteRuleMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HttpRouteRuleMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Image. */
                interface IImage {

                    /** Image architecture */
                    architecture?: (string|null);

                    /** Image archiveSizeBytes */
                    archiveSizeBytes?: (number|Long|string|null);

                    /** Image creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Image deprecated */
                    deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** Image description */
                    description?: (string|null);

                    /** Image diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** Image enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);

                    /** Image family */
                    family?: (string|null);

                    /** Image guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1beta.IGuestOsFeature[]|null);

                    /** Image id */
                    id?: (number|Long|string|null);

                    /** Image imageEncryptionKey */
                    imageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Image kind */
                    kind?: (string|null);

                    /** Image labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Image labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Image licenseCodes */
                    licenseCodes?: ((number|Long|string)[]|null);

                    /** Image licenses */
                    licenses?: (string[]|null);

                    /** Image locked */
                    locked?: (boolean|null);

                    /** Image name */
                    name?: (string|null);

                    /** Image params */
                    params?: (google.cloud.compute.v1beta.IImageParams|null);

                    /** Image rawDisk */
                    rawDisk?: (google.cloud.compute.v1beta.IRawDisk|null);

                    /** Image rolloutOverride */
                    rolloutOverride?: (google.cloud.compute.v1beta.IRolloutPolicy|null);

                    /** Image satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** Image satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Image selfLink */
                    selfLink?: (string|null);

                    /** Image shieldedInstanceInitialState */
                    shieldedInstanceInitialState?: (google.cloud.compute.v1beta.IInitialStateConfig|null);

                    /** Image sourceDisk */
                    sourceDisk?: (string|null);

                    /** Image sourceDiskEncryptionKey */
                    sourceDiskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Image sourceDiskId */
                    sourceDiskId?: (string|null);

                    /** Image sourceImage */
                    sourceImage?: (string|null);

                    /** Image sourceImageEncryptionKey */
                    sourceImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Image sourceImageId */
                    sourceImageId?: (string|null);

                    /** Image sourceSnapshot */
                    sourceSnapshot?: (string|null);

                    /** Image sourceSnapshotEncryptionKey */
                    sourceSnapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Image sourceSnapshotId */
                    sourceSnapshotId?: (string|null);

                    /** Image sourceType */
                    sourceType?: (string|null);

                    /** Image status */
                    status?: (string|null);

                    /** Image storageLocations */
                    storageLocations?: (string[]|null);

                    /** Image userLicenses */
                    userLicenses?: (string[]|null);
                }

                /** Represents an Image. */
                class Image implements IImage {

                    /**
                     * Constructs a new Image.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IImage);

                    /** Image architecture. */
                    public architecture?: (string|null);

                    /** Image archiveSizeBytes. */
                    public archiveSizeBytes?: (number|Long|string|null);

                    /** Image creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Image deprecated. */
                    public deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** Image description. */
                    public description?: (string|null);

                    /** Image diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** Image enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /** Image family. */
                    public family?: (string|null);

                    /** Image guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1beta.IGuestOsFeature[];

                    /** Image id. */
                    public id?: (number|Long|string|null);

                    /** Image imageEncryptionKey. */
                    public imageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Image kind. */
                    public kind?: (string|null);

                    /** Image labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Image labels. */
                    public labels: { [k: string]: string };

                    /** Image licenseCodes. */
                    public licenseCodes: (number|Long|string)[];

                    /** Image licenses. */
                    public licenses: string[];

                    /** Image locked. */
                    public locked?: (boolean|null);

                    /** Image name. */
                    public name?: (string|null);

                    /** Image params. */
                    public params?: (google.cloud.compute.v1beta.IImageParams|null);

                    /** Image rawDisk. */
                    public rawDisk?: (google.cloud.compute.v1beta.IRawDisk|null);

                    /** Image rolloutOverride. */
                    public rolloutOverride?: (google.cloud.compute.v1beta.IRolloutPolicy|null);

                    /** Image satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Image satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Image selfLink. */
                    public selfLink?: (string|null);

                    /** Image shieldedInstanceInitialState. */
                    public shieldedInstanceInitialState?: (google.cloud.compute.v1beta.IInitialStateConfig|null);

                    /** Image sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** Image sourceDiskEncryptionKey. */
                    public sourceDiskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Image sourceDiskId. */
                    public sourceDiskId?: (string|null);

                    /** Image sourceImage. */
                    public sourceImage?: (string|null);

                    /** Image sourceImageEncryptionKey. */
                    public sourceImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Image sourceImageId. */
                    public sourceImageId?: (string|null);

                    /** Image sourceSnapshot. */
                    public sourceSnapshot?: (string|null);

                    /** Image sourceSnapshotEncryptionKey. */
                    public sourceSnapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Image sourceSnapshotId. */
                    public sourceSnapshotId?: (string|null);

                    /** Image sourceType. */
                    public sourceType?: (string|null);

                    /** Image status. */
                    public status?: (string|null);

                    /** Image storageLocations. */
                    public storageLocations: string[];

                    /** Image userLicenses. */
                    public userLicenses: string[];

                    /**
                     * Creates a new Image instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Image instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IImage): google.cloud.compute.v1beta.Image;

                    /**
                     * Encodes the specified Image message. Does not implicitly {@link google.cloud.compute.v1beta.Image.verify|verify} messages.
                     * @param message Image message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IImage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Image message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Image.verify|verify} messages.
                     * @param message Image message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IImage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Image message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Image
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Image;

                    /**
                     * Decodes an Image message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Image
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Image;

                    /**
                     * Verifies an Image message.
                     * @param message Plain 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 Image message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Image
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Image;

                    /**
                     * Creates a plain object from an Image message. Also converts values to other types if specified.
                     * @param message Image
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Image, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Image to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Image
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Image {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** SourceType enum. */
                    enum SourceType {
                        UNDEFINED_SOURCE_TYPE = 0,
                        RAW = 80904
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        PENDING = 35394935,
                        READY = 77848963
                    }
                }

                /** Properties of an ImageFamilyView. */
                interface IImageFamilyView {

                    /** ImageFamilyView image */
                    image?: (google.cloud.compute.v1beta.IImage|null);
                }

                /** Represents an ImageFamilyView. */
                class ImageFamilyView implements IImageFamilyView {

                    /**
                     * Constructs a new ImageFamilyView.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IImageFamilyView);

                    /** ImageFamilyView image. */
                    public image?: (google.cloud.compute.v1beta.IImage|null);

                    /**
                     * Creates a new ImageFamilyView instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImageFamilyView instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IImageFamilyView): google.cloud.compute.v1beta.ImageFamilyView;

                    /**
                     * Encodes the specified ImageFamilyView message. Does not implicitly {@link google.cloud.compute.v1beta.ImageFamilyView.verify|verify} messages.
                     * @param message ImageFamilyView message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IImageFamilyView, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImageFamilyView message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ImageFamilyView.verify|verify} messages.
                     * @param message ImageFamilyView message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IImageFamilyView, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImageFamilyView message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageFamilyView
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ImageFamilyView;

                    /**
                     * Decodes an ImageFamilyView message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageFamilyView
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ImageFamilyView;

                    /**
                     * Verifies an ImageFamilyView message.
                     * @param message Plain 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 ImageFamilyView message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageFamilyView
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ImageFamilyView;

                    /**
                     * Creates a plain object from an ImageFamilyView message. Also converts values to other types if specified.
                     * @param message ImageFamilyView
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ImageFamilyView, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImageFamilyView to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImageFamilyView
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImageList. */
                interface IImageList {

                    /** ImageList id */
                    id?: (string|null);

                    /** ImageList items */
                    items?: (google.cloud.compute.v1beta.IImage[]|null);

                    /** ImageList kind */
                    kind?: (string|null);

                    /** ImageList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ImageList selfLink */
                    selfLink?: (string|null);

                    /** ImageList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an ImageList. */
                class ImageList implements IImageList {

                    /**
                     * Constructs a new ImageList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IImageList);

                    /** ImageList id. */
                    public id?: (string|null);

                    /** ImageList items. */
                    public items: google.cloud.compute.v1beta.IImage[];

                    /** ImageList kind. */
                    public kind?: (string|null);

                    /** ImageList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ImageList selfLink. */
                    public selfLink?: (string|null);

                    /** ImageList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ImageList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImageList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IImageList): google.cloud.compute.v1beta.ImageList;

                    /**
                     * Encodes the specified ImageList message. Does not implicitly {@link google.cloud.compute.v1beta.ImageList.verify|verify} messages.
                     * @param message ImageList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IImageList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImageList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ImageList.verify|verify} messages.
                     * @param message ImageList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IImageList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImageList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ImageList;

                    /**
                     * Decodes an ImageList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ImageList;

                    /**
                     * Verifies an ImageList message.
                     * @param message Plain 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 ImageList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ImageList;

                    /**
                     * Creates a plain object from an ImageList message. Also converts values to other types if specified.
                     * @param message ImageList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ImageList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImageList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImageList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImageParams. */
                interface IImageParams {

                    /** ImageParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an ImageParams. */
                class ImageParams implements IImageParams {

                    /**
                     * Constructs a new ImageParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IImageParams);

                    /** ImageParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new ImageParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImageParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IImageParams): google.cloud.compute.v1beta.ImageParams;

                    /**
                     * Encodes the specified ImageParams message. Does not implicitly {@link google.cloud.compute.v1beta.ImageParams.verify|verify} messages.
                     * @param message ImageParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IImageParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImageParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ImageParams.verify|verify} messages.
                     * @param message ImageParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IImageParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImageParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ImageParams;

                    /**
                     * Decodes an ImageParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ImageParams;

                    /**
                     * Verifies an ImageParams message.
                     * @param message Plain 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 ImageParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ImageParams;

                    /**
                     * Creates a plain object from an ImageParams message. Also converts values to other types if specified.
                     * @param message ImageParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ImageParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImageParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImageParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InitialStateConfig. */
                interface IInitialStateConfig {

                    /** InitialStateConfig dbs */
                    dbs?: (google.cloud.compute.v1beta.IFileContentBuffer[]|null);

                    /** InitialStateConfig dbxs */
                    dbxs?: (google.cloud.compute.v1beta.IFileContentBuffer[]|null);

                    /** InitialStateConfig keks */
                    keks?: (google.cloud.compute.v1beta.IFileContentBuffer[]|null);

                    /** InitialStateConfig pk */
                    pk?: (google.cloud.compute.v1beta.IFileContentBuffer|null);
                }

                /** Represents an InitialStateConfig. */
                class InitialStateConfig implements IInitialStateConfig {

                    /**
                     * Constructs a new InitialStateConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInitialStateConfig);

                    /** InitialStateConfig dbs. */
                    public dbs: google.cloud.compute.v1beta.IFileContentBuffer[];

                    /** InitialStateConfig dbxs. */
                    public dbxs: google.cloud.compute.v1beta.IFileContentBuffer[];

                    /** InitialStateConfig keks. */
                    public keks: google.cloud.compute.v1beta.IFileContentBuffer[];

                    /** InitialStateConfig pk. */
                    public pk?: (google.cloud.compute.v1beta.IFileContentBuffer|null);

                    /**
                     * Creates a new InitialStateConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InitialStateConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInitialStateConfig): google.cloud.compute.v1beta.InitialStateConfig;

                    /**
                     * Encodes the specified InitialStateConfig message. Does not implicitly {@link google.cloud.compute.v1beta.InitialStateConfig.verify|verify} messages.
                     * @param message InitialStateConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInitialStateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InitialStateConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InitialStateConfig.verify|verify} messages.
                     * @param message InitialStateConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInitialStateConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InitialStateConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InitialStateConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InitialStateConfig;

                    /**
                     * Decodes an InitialStateConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InitialStateConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InitialStateConfig;

                    /**
                     * Verifies an InitialStateConfig message.
                     * @param message Plain 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 InitialStateConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InitialStateConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InitialStateConfig;

                    /**
                     * Creates a plain object from an InitialStateConfig message. Also converts values to other types if specified.
                     * @param message InitialStateConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InitialStateConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InitialStateConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InitialStateConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertAddressRequest. */
                interface IInsertAddressRequest {

                    /** InsertAddressRequest addressResource */
                    addressResource?: (google.cloud.compute.v1beta.IAddress|null);

                    /** InsertAddressRequest project */
                    project?: (string|null);

                    /** InsertAddressRequest region */
                    region?: (string|null);

                    /** InsertAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertAddressRequest. */
                class InsertAddressRequest implements IInsertAddressRequest {

                    /**
                     * Constructs a new InsertAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertAddressRequest);

                    /** InsertAddressRequest addressResource. */
                    public addressResource?: (google.cloud.compute.v1beta.IAddress|null);

                    /** InsertAddressRequest project. */
                    public project: string;

                    /** InsertAddressRequest region. */
                    public region: string;

                    /** InsertAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertAddressRequest): google.cloud.compute.v1beta.InsertAddressRequest;

                    /**
                     * Encodes the specified InsertAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertAddressRequest.verify|verify} messages.
                     * @param message InsertAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertAddressRequest.verify|verify} messages.
                     * @param message InsertAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertAddressRequest;

                    /**
                     * Decodes an InsertAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertAddressRequest;

                    /**
                     * Verifies an InsertAddressRequest message.
                     * @param message Plain 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 InsertAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertAddressRequest;

                    /**
                     * Creates a plain object from an InsertAddressRequest message. Also converts values to other types if specified.
                     * @param message InsertAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertAutoscalerRequest. */
                interface IInsertAutoscalerRequest {

                    /** InsertAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** InsertAutoscalerRequest project */
                    project?: (string|null);

                    /** InsertAutoscalerRequest requestId */
                    requestId?: (string|null);

                    /** InsertAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertAutoscalerRequest. */
                class InsertAutoscalerRequest implements IInsertAutoscalerRequest {

                    /**
                     * Constructs a new InsertAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertAutoscalerRequest);

                    /** InsertAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** InsertAutoscalerRequest project. */
                    public project: string;

                    /** InsertAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertAutoscalerRequest): google.cloud.compute.v1beta.InsertAutoscalerRequest;

                    /**
                     * Encodes the specified InsertAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertAutoscalerRequest.verify|verify} messages.
                     * @param message InsertAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertAutoscalerRequest.verify|verify} messages.
                     * @param message InsertAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertAutoscalerRequest;

                    /**
                     * Decodes an InsertAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertAutoscalerRequest;

                    /**
                     * Verifies an InsertAutoscalerRequest message.
                     * @param message Plain 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 InsertAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertAutoscalerRequest;

                    /**
                     * Creates a plain object from an InsertAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message InsertAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertBackendBucketRequest. */
                interface IInsertBackendBucketRequest {

                    /** InsertBackendBucketRequest backendBucketResource */
                    backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** InsertBackendBucketRequest project */
                    project?: (string|null);

                    /** InsertBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertBackendBucketRequest. */
                class InsertBackendBucketRequest implements IInsertBackendBucketRequest {

                    /**
                     * Constructs a new InsertBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertBackendBucketRequest);

                    /** InsertBackendBucketRequest backendBucketResource. */
                    public backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** InsertBackendBucketRequest project. */
                    public project: string;

                    /** InsertBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertBackendBucketRequest): google.cloud.compute.v1beta.InsertBackendBucketRequest;

                    /**
                     * Encodes the specified InsertBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertBackendBucketRequest.verify|verify} messages.
                     * @param message InsertBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertBackendBucketRequest.verify|verify} messages.
                     * @param message InsertBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertBackendBucketRequest;

                    /**
                     * Decodes an InsertBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertBackendBucketRequest;

                    /**
                     * Verifies an InsertBackendBucketRequest message.
                     * @param message Plain 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 InsertBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertBackendBucketRequest;

                    /**
                     * Creates a plain object from an InsertBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message InsertBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertBackendServiceRequest. */
                interface IInsertBackendServiceRequest {

                    /** InsertBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** InsertBackendServiceRequest project */
                    project?: (string|null);

                    /** InsertBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertBackendServiceRequest. */
                class InsertBackendServiceRequest implements IInsertBackendServiceRequest {

                    /**
                     * Constructs a new InsertBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertBackendServiceRequest);

                    /** InsertBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** InsertBackendServiceRequest project. */
                    public project: string;

                    /** InsertBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertBackendServiceRequest): google.cloud.compute.v1beta.InsertBackendServiceRequest;

                    /**
                     * Encodes the specified InsertBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertBackendServiceRequest.verify|verify} messages.
                     * @param message InsertBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertBackendServiceRequest.verify|verify} messages.
                     * @param message InsertBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertBackendServiceRequest;

                    /**
                     * Decodes an InsertBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertBackendServiceRequest;

                    /**
                     * Verifies an InsertBackendServiceRequest message.
                     * @param message Plain 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 InsertBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertBackendServiceRequest;

                    /**
                     * Creates a plain object from an InsertBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message InsertBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertCrossSiteNetworkRequest. */
                interface IInsertCrossSiteNetworkRequest {

                    /** InsertCrossSiteNetworkRequest crossSiteNetworkResource */
                    crossSiteNetworkResource?: (google.cloud.compute.v1beta.ICrossSiteNetwork|null);

                    /** InsertCrossSiteNetworkRequest project */
                    project?: (string|null);

                    /** InsertCrossSiteNetworkRequest requestId */
                    requestId?: (string|null);

                    /** InsertCrossSiteNetworkRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertCrossSiteNetworkRequest. */
                class InsertCrossSiteNetworkRequest implements IInsertCrossSiteNetworkRequest {

                    /**
                     * Constructs a new InsertCrossSiteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertCrossSiteNetworkRequest);

                    /** InsertCrossSiteNetworkRequest crossSiteNetworkResource. */
                    public crossSiteNetworkResource?: (google.cloud.compute.v1beta.ICrossSiteNetwork|null);

                    /** InsertCrossSiteNetworkRequest project. */
                    public project: string;

                    /** InsertCrossSiteNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertCrossSiteNetworkRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertCrossSiteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertCrossSiteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertCrossSiteNetworkRequest): google.cloud.compute.v1beta.InsertCrossSiteNetworkRequest;

                    /**
                     * Encodes the specified InsertCrossSiteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message InsertCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertCrossSiteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message InsertCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertCrossSiteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertCrossSiteNetworkRequest;

                    /**
                     * Decodes an InsertCrossSiteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertCrossSiteNetworkRequest;

                    /**
                     * Verifies an InsertCrossSiteNetworkRequest message.
                     * @param message Plain 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 InsertCrossSiteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertCrossSiteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertCrossSiteNetworkRequest;

                    /**
                     * Creates a plain object from an InsertCrossSiteNetworkRequest message. Also converts values to other types if specified.
                     * @param message InsertCrossSiteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertCrossSiteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertCrossSiteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertCrossSiteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertDiskRequest. */
                interface IInsertDiskRequest {

                    /** InsertDiskRequest diskResource */
                    diskResource?: (google.cloud.compute.v1beta.IDisk|null);

                    /** InsertDiskRequest project */
                    project?: (string|null);

                    /** InsertDiskRequest requestId */
                    requestId?: (string|null);

                    /** InsertDiskRequest sourceImage */
                    sourceImage?: (string|null);

                    /** InsertDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertDiskRequest. */
                class InsertDiskRequest implements IInsertDiskRequest {

                    /**
                     * Constructs a new InsertDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertDiskRequest);

                    /** InsertDiskRequest diskResource. */
                    public diskResource?: (google.cloud.compute.v1beta.IDisk|null);

                    /** InsertDiskRequest project. */
                    public project: string;

                    /** InsertDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertDiskRequest sourceImage. */
                    public sourceImage?: (string|null);

                    /** InsertDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertDiskRequest): google.cloud.compute.v1beta.InsertDiskRequest;

                    /**
                     * Encodes the specified InsertDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertDiskRequest.verify|verify} messages.
                     * @param message InsertDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertDiskRequest.verify|verify} messages.
                     * @param message InsertDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertDiskRequest;

                    /**
                     * Decodes an InsertDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertDiskRequest;

                    /**
                     * Verifies an InsertDiskRequest message.
                     * @param message Plain 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 InsertDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertDiskRequest;

                    /**
                     * Creates a plain object from an InsertDiskRequest message. Also converts values to other types if specified.
                     * @param message InsertDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertExternalVpnGatewayRequest. */
                interface IInsertExternalVpnGatewayRequest {

                    /** InsertExternalVpnGatewayRequest externalVpnGatewayResource */
                    externalVpnGatewayResource?: (google.cloud.compute.v1beta.IExternalVpnGateway|null);

                    /** InsertExternalVpnGatewayRequest project */
                    project?: (string|null);

                    /** InsertExternalVpnGatewayRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertExternalVpnGatewayRequest. */
                class InsertExternalVpnGatewayRequest implements IInsertExternalVpnGatewayRequest {

                    /**
                     * Constructs a new InsertExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertExternalVpnGatewayRequest);

                    /** InsertExternalVpnGatewayRequest externalVpnGatewayResource. */
                    public externalVpnGatewayResource?: (google.cloud.compute.v1beta.IExternalVpnGateway|null);

                    /** InsertExternalVpnGatewayRequest project. */
                    public project: string;

                    /** InsertExternalVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertExternalVpnGatewayRequest): google.cloud.compute.v1beta.InsertExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified InsertExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertExternalVpnGatewayRequest;

                    /**
                     * Decodes an InsertExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertExternalVpnGatewayRequest;

                    /**
                     * Verifies an InsertExternalVpnGatewayRequest message.
                     * @param message Plain 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 InsertExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from an InsertExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message InsertExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertFirewallPolicyRequest. */
                interface IInsertFirewallPolicyRequest {

                    /** InsertFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** InsertFirewallPolicyRequest parentId */
                    parentId?: (string|null);

                    /** InsertFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertFirewallPolicyRequest. */
                class InsertFirewallPolicyRequest implements IInsertFirewallPolicyRequest {

                    /**
                     * Constructs a new InsertFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertFirewallPolicyRequest);

                    /** InsertFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** InsertFirewallPolicyRequest parentId. */
                    public parentId: string;

                    /** InsertFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertFirewallPolicyRequest): google.cloud.compute.v1beta.InsertFirewallPolicyRequest;

                    /**
                     * Encodes the specified InsertFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertFirewallPolicyRequest;

                    /**
                     * Decodes an InsertFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertFirewallPolicyRequest;

                    /**
                     * Verifies an InsertFirewallPolicyRequest message.
                     * @param message Plain 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 InsertFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an InsertFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertFirewallRequest. */
                interface IInsertFirewallRequest {

                    /** InsertFirewallRequest firewallResource */
                    firewallResource?: (google.cloud.compute.v1beta.IFirewall|null);

                    /** InsertFirewallRequest project */
                    project?: (string|null);

                    /** InsertFirewallRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertFirewallRequest. */
                class InsertFirewallRequest implements IInsertFirewallRequest {

                    /**
                     * Constructs a new InsertFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertFirewallRequest);

                    /** InsertFirewallRequest firewallResource. */
                    public firewallResource?: (google.cloud.compute.v1beta.IFirewall|null);

                    /** InsertFirewallRequest project. */
                    public project: string;

                    /** InsertFirewallRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertFirewallRequest): google.cloud.compute.v1beta.InsertFirewallRequest;

                    /**
                     * Encodes the specified InsertFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertFirewallRequest.verify|verify} messages.
                     * @param message InsertFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertFirewallRequest.verify|verify} messages.
                     * @param message InsertFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertFirewallRequest;

                    /**
                     * Decodes an InsertFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertFirewallRequest;

                    /**
                     * Verifies an InsertFirewallRequest message.
                     * @param message Plain 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 InsertFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertFirewallRequest;

                    /**
                     * Creates a plain object from an InsertFirewallRequest message. Also converts values to other types if specified.
                     * @param message InsertFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertForwardingRuleRequest. */
                interface IInsertForwardingRuleRequest {

                    /** InsertForwardingRuleRequest forwardingRuleResource */
                    forwardingRuleResource?: (google.cloud.compute.v1beta.IForwardingRule|null);

                    /** InsertForwardingRuleRequest project */
                    project?: (string|null);

                    /** InsertForwardingRuleRequest region */
                    region?: (string|null);

                    /** InsertForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertForwardingRuleRequest. */
                class InsertForwardingRuleRequest implements IInsertForwardingRuleRequest {

                    /**
                     * Constructs a new InsertForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertForwardingRuleRequest);

                    /** InsertForwardingRuleRequest forwardingRuleResource. */
                    public forwardingRuleResource?: (google.cloud.compute.v1beta.IForwardingRule|null);

                    /** InsertForwardingRuleRequest project. */
                    public project: string;

                    /** InsertForwardingRuleRequest region. */
                    public region: string;

                    /** InsertForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertForwardingRuleRequest): google.cloud.compute.v1beta.InsertForwardingRuleRequest;

                    /**
                     * Encodes the specified InsertForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertForwardingRuleRequest.verify|verify} messages.
                     * @param message InsertForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertForwardingRuleRequest.verify|verify} messages.
                     * @param message InsertForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertForwardingRuleRequest;

                    /**
                     * Decodes an InsertForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertForwardingRuleRequest;

                    /**
                     * Verifies an InsertForwardingRuleRequest message.
                     * @param message Plain 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 InsertForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertForwardingRuleRequest;

                    /**
                     * Creates a plain object from an InsertForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message InsertForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertFutureReservationRequest. */
                interface IInsertFutureReservationRequest {

                    /** InsertFutureReservationRequest futureReservationResource */
                    futureReservationResource?: (google.cloud.compute.v1beta.IFutureReservation|null);

                    /** InsertFutureReservationRequest project */
                    project?: (string|null);

                    /** InsertFutureReservationRequest requestId */
                    requestId?: (string|null);

                    /** InsertFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertFutureReservationRequest. */
                class InsertFutureReservationRequest implements IInsertFutureReservationRequest {

                    /**
                     * Constructs a new InsertFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertFutureReservationRequest);

                    /** InsertFutureReservationRequest futureReservationResource. */
                    public futureReservationResource?: (google.cloud.compute.v1beta.IFutureReservation|null);

                    /** InsertFutureReservationRequest project. */
                    public project: string;

                    /** InsertFutureReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertFutureReservationRequest): google.cloud.compute.v1beta.InsertFutureReservationRequest;

                    /**
                     * Encodes the specified InsertFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertFutureReservationRequest.verify|verify} messages.
                     * @param message InsertFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertFutureReservationRequest.verify|verify} messages.
                     * @param message InsertFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertFutureReservationRequest;

                    /**
                     * Decodes an InsertFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertFutureReservationRequest;

                    /**
                     * Verifies an InsertFutureReservationRequest message.
                     * @param message Plain 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 InsertFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertFutureReservationRequest;

                    /**
                     * Creates a plain object from an InsertFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message InsertFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalAddressRequest. */
                interface IInsertGlobalAddressRequest {

                    /** InsertGlobalAddressRequest addressResource */
                    addressResource?: (google.cloud.compute.v1beta.IAddress|null);

                    /** InsertGlobalAddressRequest project */
                    project?: (string|null);

                    /** InsertGlobalAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalAddressRequest. */
                class InsertGlobalAddressRequest implements IInsertGlobalAddressRequest {

                    /**
                     * Constructs a new InsertGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertGlobalAddressRequest);

                    /** InsertGlobalAddressRequest addressResource. */
                    public addressResource?: (google.cloud.compute.v1beta.IAddress|null);

                    /** InsertGlobalAddressRequest project. */
                    public project: string;

                    /** InsertGlobalAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertGlobalAddressRequest): google.cloud.compute.v1beta.InsertGlobalAddressRequest;

                    /**
                     * Encodes the specified InsertGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalAddressRequest.verify|verify} messages.
                     * @param message InsertGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalAddressRequest.verify|verify} messages.
                     * @param message InsertGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertGlobalAddressRequest;

                    /**
                     * Decodes an InsertGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertGlobalAddressRequest;

                    /**
                     * Verifies an InsertGlobalAddressRequest message.
                     * @param message Plain 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 InsertGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertGlobalAddressRequest;

                    /**
                     * Creates a plain object from an InsertGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalForwardingRuleRequest. */
                interface IInsertGlobalForwardingRuleRequest {

                    /** InsertGlobalForwardingRuleRequest forwardingRuleResource */
                    forwardingRuleResource?: (google.cloud.compute.v1beta.IForwardingRule|null);

                    /** InsertGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** InsertGlobalForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalForwardingRuleRequest. */
                class InsertGlobalForwardingRuleRequest implements IInsertGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new InsertGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertGlobalForwardingRuleRequest);

                    /** InsertGlobalForwardingRuleRequest forwardingRuleResource. */
                    public forwardingRuleResource?: (google.cloud.compute.v1beta.IForwardingRule|null);

                    /** InsertGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** InsertGlobalForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertGlobalForwardingRuleRequest): google.cloud.compute.v1beta.InsertGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified InsertGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message InsertGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message InsertGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertGlobalForwardingRuleRequest;

                    /**
                     * Decodes an InsertGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertGlobalForwardingRuleRequest;

                    /**
                     * Verifies an InsertGlobalForwardingRuleRequest message.
                     * @param message Plain 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 InsertGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from an InsertGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalNetworkEndpointGroupRequest. */
                interface IInsertGlobalNetworkEndpointGroupRequest {

                    /** InsertGlobalNetworkEndpointGroupRequest networkEndpointGroupResource */
                    networkEndpointGroupResource?: (google.cloud.compute.v1beta.INetworkEndpointGroup|null);

                    /** InsertGlobalNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** InsertGlobalNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalNetworkEndpointGroupRequest. */
                class InsertGlobalNetworkEndpointGroupRequest implements IInsertGlobalNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new InsertGlobalNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertGlobalNetworkEndpointGroupRequest);

                    /** InsertGlobalNetworkEndpointGroupRequest networkEndpointGroupResource. */
                    public networkEndpointGroupResource?: (google.cloud.compute.v1beta.INetworkEndpointGroup|null);

                    /** InsertGlobalNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** InsertGlobalNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertGlobalNetworkEndpointGroupRequest): google.cloud.compute.v1beta.InsertGlobalNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified InsertGlobalNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertGlobalNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertGlobalNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertGlobalNetworkEndpointGroupRequest;

                    /**
                     * Decodes an InsertGlobalNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertGlobalNetworkEndpointGroupRequest;

                    /**
                     * Verifies an InsertGlobalNetworkEndpointGroupRequest message.
                     * @param message Plain 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 InsertGlobalNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertGlobalNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an InsertGlobalNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertGlobalNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalPublicDelegatedPrefixeRequest. */
                interface IInsertGlobalPublicDelegatedPrefixeRequest {

                    /** InsertGlobalPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** InsertGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefixResource */
                    publicDelegatedPrefixResource?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix|null);

                    /** InsertGlobalPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalPublicDelegatedPrefixeRequest. */
                class InsertGlobalPublicDelegatedPrefixeRequest implements IInsertGlobalPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new InsertGlobalPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertGlobalPublicDelegatedPrefixeRequest);

                    /** InsertGlobalPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** InsertGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefixResource. */
                    public publicDelegatedPrefixResource?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix|null);

                    /** InsertGlobalPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertGlobalPublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.InsertGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified InsertGlobalPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message InsertGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message InsertGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes an InsertGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies an InsertGlobalPublicDelegatedPrefixeRequest message.
                     * @param message Plain 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 InsertGlobalPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from an InsertGlobalPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertGlobalPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertGlobalVmExtensionPolicyRequest. */
                interface IInsertGlobalVmExtensionPolicyRequest {

                    /** InsertGlobalVmExtensionPolicyRequest globalVmExtensionPolicyResource */
                    globalVmExtensionPolicyResource?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicy|null);

                    /** InsertGlobalVmExtensionPolicyRequest project */
                    project?: (string|null);

                    /** InsertGlobalVmExtensionPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertGlobalVmExtensionPolicyRequest. */
                class InsertGlobalVmExtensionPolicyRequest implements IInsertGlobalVmExtensionPolicyRequest {

                    /**
                     * Constructs a new InsertGlobalVmExtensionPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertGlobalVmExtensionPolicyRequest);

                    /** InsertGlobalVmExtensionPolicyRequest globalVmExtensionPolicyResource. */
                    public globalVmExtensionPolicyResource?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicy|null);

                    /** InsertGlobalVmExtensionPolicyRequest project. */
                    public project: string;

                    /** InsertGlobalVmExtensionPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertGlobalVmExtensionPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertGlobalVmExtensionPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertGlobalVmExtensionPolicyRequest): google.cloud.compute.v1beta.InsertGlobalVmExtensionPolicyRequest;

                    /**
                     * Encodes the specified InsertGlobalVmExtensionPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message InsertGlobalVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertGlobalVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertGlobalVmExtensionPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertGlobalVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message InsertGlobalVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertGlobalVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertGlobalVmExtensionPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertGlobalVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertGlobalVmExtensionPolicyRequest;

                    /**
                     * Decodes an InsertGlobalVmExtensionPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertGlobalVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertGlobalVmExtensionPolicyRequest;

                    /**
                     * Verifies an InsertGlobalVmExtensionPolicyRequest message.
                     * @param message Plain 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 InsertGlobalVmExtensionPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertGlobalVmExtensionPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertGlobalVmExtensionPolicyRequest;

                    /**
                     * Creates a plain object from an InsertGlobalVmExtensionPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertGlobalVmExtensionPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertGlobalVmExtensionPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertGlobalVmExtensionPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertGlobalVmExtensionPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertHealthCheckRequest. */
                interface IInsertHealthCheckRequest {

                    /** InsertHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** InsertHealthCheckRequest project */
                    project?: (string|null);

                    /** InsertHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertHealthCheckRequest. */
                class InsertHealthCheckRequest implements IInsertHealthCheckRequest {

                    /**
                     * Constructs a new InsertHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertHealthCheckRequest);

                    /** InsertHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** InsertHealthCheckRequest project. */
                    public project: string;

                    /** InsertHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertHealthCheckRequest): google.cloud.compute.v1beta.InsertHealthCheckRequest;

                    /**
                     * Encodes the specified InsertHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertHealthCheckRequest.verify|verify} messages.
                     * @param message InsertHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertHealthCheckRequest.verify|verify} messages.
                     * @param message InsertHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertHealthCheckRequest;

                    /**
                     * Decodes an InsertHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertHealthCheckRequest;

                    /**
                     * Verifies an InsertHealthCheckRequest message.
                     * @param message Plain 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 InsertHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertHealthCheckRequest;

                    /**
                     * Creates a plain object from an InsertHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message InsertHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertImageRequest. */
                interface IInsertImageRequest {

                    /** InsertImageRequest forceCreate */
                    forceCreate?: (boolean|null);

                    /** InsertImageRequest imageResource */
                    imageResource?: (google.cloud.compute.v1beta.IImage|null);

                    /** InsertImageRequest project */
                    project?: (string|null);

                    /** InsertImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertImageRequest. */
                class InsertImageRequest implements IInsertImageRequest {

                    /**
                     * Constructs a new InsertImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertImageRequest);

                    /** InsertImageRequest forceCreate. */
                    public forceCreate?: (boolean|null);

                    /** InsertImageRequest imageResource. */
                    public imageResource?: (google.cloud.compute.v1beta.IImage|null);

                    /** InsertImageRequest project. */
                    public project: string;

                    /** InsertImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertImageRequest): google.cloud.compute.v1beta.InsertImageRequest;

                    /**
                     * Encodes the specified InsertImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertImageRequest.verify|verify} messages.
                     * @param message InsertImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertImageRequest.verify|verify} messages.
                     * @param message InsertImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertImageRequest;

                    /**
                     * Decodes an InsertImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertImageRequest;

                    /**
                     * Verifies an InsertImageRequest message.
                     * @param message Plain 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 InsertImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertImageRequest;

                    /**
                     * Creates a plain object from an InsertImageRequest message. Also converts values to other types if specified.
                     * @param message InsertImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceGroupManagerRequest. */
                interface IInsertInstanceGroupManagerRequest {

                    /** InsertInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** InsertInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** InsertInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstanceGroupManagerRequest. */
                class InsertInstanceGroupManagerRequest implements IInsertInstanceGroupManagerRequest {

                    /**
                     * Constructs a new InsertInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInstanceGroupManagerRequest);

                    /** InsertInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** InsertInstanceGroupManagerRequest project. */
                    public project: string;

                    /** InsertInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInstanceGroupManagerRequest): google.cloud.compute.v1beta.InsertInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified InsertInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInstanceGroupManagerRequest;

                    /**
                     * Decodes an InsertInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInstanceGroupManagerRequest;

                    /**
                     * Verifies an InsertInstanceGroupManagerRequest message.
                     * @param message Plain 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 InsertInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an InsertInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceGroupManagerResizeRequestRequest. */
                interface IInsertInstanceGroupManagerResizeRequestRequest {

                    /** InsertInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest instanceGroupManagerResizeRequestResource */
                    instanceGroupManagerResizeRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstanceGroupManagerResizeRequestRequest. */
                class InsertInstanceGroupManagerResizeRequestRequest implements IInsertInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new InsertInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInstanceGroupManagerResizeRequestRequest);

                    /** InsertInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** InsertInstanceGroupManagerResizeRequestRequest instanceGroupManagerResizeRequestResource. */
                    public instanceGroupManagerResizeRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** InsertInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstanceGroupManagerResizeRequestRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1beta.InsertInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified InsertInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes an InsertInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies an InsertInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain 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 InsertInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from an InsertInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceGroupRequest. */
                interface IInsertInstanceGroupRequest {

                    /** InsertInstanceGroupRequest instanceGroupResource */
                    instanceGroupResource?: (google.cloud.compute.v1beta.IInstanceGroup|null);

                    /** InsertInstanceGroupRequest project */
                    project?: (string|null);

                    /** InsertInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstanceGroupRequest. */
                class InsertInstanceGroupRequest implements IInsertInstanceGroupRequest {

                    /**
                     * Constructs a new InsertInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInstanceGroupRequest);

                    /** InsertInstanceGroupRequest instanceGroupResource. */
                    public instanceGroupResource?: (google.cloud.compute.v1beta.IInstanceGroup|null);

                    /** InsertInstanceGroupRequest project. */
                    public project: string;

                    /** InsertInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInstanceGroupRequest): google.cloud.compute.v1beta.InsertInstanceGroupRequest;

                    /**
                     * Encodes the specified InsertInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceGroupRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceGroupRequest.verify|verify} messages.
                     * @param message InsertInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInstanceGroupRequest;

                    /**
                     * Decodes an InsertInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInstanceGroupRequest;

                    /**
                     * Verifies an InsertInstanceGroupRequest message.
                     * @param message Plain 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 InsertInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInstanceGroupRequest;

                    /**
                     * Creates a plain object from an InsertInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceRequest. */
                interface IInsertInstanceRequest {

                    /** InsertInstanceRequest instanceResource */
                    instanceResource?: (google.cloud.compute.v1beta.IInstance|null);

                    /** InsertInstanceRequest project */
                    project?: (string|null);

                    /** InsertInstanceRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstanceRequest sourceInstanceTemplate */
                    sourceInstanceTemplate?: (string|null);

                    /** InsertInstanceRequest sourceMachineImage */
                    sourceMachineImage?: (string|null);

                    /** InsertInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstanceRequest. */
                class InsertInstanceRequest implements IInsertInstanceRequest {

                    /**
                     * Constructs a new InsertInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInstanceRequest);

                    /** InsertInstanceRequest instanceResource. */
                    public instanceResource?: (google.cloud.compute.v1beta.IInstance|null);

                    /** InsertInstanceRequest project. */
                    public project: string;

                    /** InsertInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstanceRequest sourceInstanceTemplate. */
                    public sourceInstanceTemplate?: (string|null);

                    /** InsertInstanceRequest sourceMachineImage. */
                    public sourceMachineImage?: (string|null);

                    /** InsertInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInstanceRequest): google.cloud.compute.v1beta.InsertInstanceRequest;

                    /**
                     * Encodes the specified InsertInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceRequest.verify|verify} messages.
                     * @param message InsertInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceRequest.verify|verify} messages.
                     * @param message InsertInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInstanceRequest;

                    /**
                     * Decodes an InsertInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInstanceRequest;

                    /**
                     * Verifies an InsertInstanceRequest message.
                     * @param message Plain 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 InsertInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInstanceRequest;

                    /**
                     * Creates a plain object from an InsertInstanceRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstanceTemplateRequest. */
                interface IInsertInstanceTemplateRequest {

                    /** InsertInstanceTemplateRequest instanceTemplateResource */
                    instanceTemplateResource?: (google.cloud.compute.v1beta.IInstanceTemplate|null);

                    /** InsertInstanceTemplateRequest project */
                    project?: (string|null);

                    /** InsertInstanceTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertInstanceTemplateRequest. */
                class InsertInstanceTemplateRequest implements IInsertInstanceTemplateRequest {

                    /**
                     * Constructs a new InsertInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInstanceTemplateRequest);

                    /** InsertInstanceTemplateRequest instanceTemplateResource. */
                    public instanceTemplateResource?: (google.cloud.compute.v1beta.IInstanceTemplate|null);

                    /** InsertInstanceTemplateRequest project. */
                    public project: string;

                    /** InsertInstanceTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInstanceTemplateRequest): google.cloud.compute.v1beta.InsertInstanceTemplateRequest;

                    /**
                     * Encodes the specified InsertInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceTemplateRequest.verify|verify} messages.
                     * @param message InsertInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstanceTemplateRequest.verify|verify} messages.
                     * @param message InsertInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInstanceTemplateRequest;

                    /**
                     * Decodes an InsertInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInstanceTemplateRequest;

                    /**
                     * Verifies an InsertInstanceTemplateRequest message.
                     * @param message Plain 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 InsertInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInstanceTemplateRequest;

                    /**
                     * Creates a plain object from an InsertInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message InsertInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstantSnapshotGroupRequest. */
                interface IInsertInstantSnapshotGroupRequest {

                    /** InsertInstantSnapshotGroupRequest instantSnapshotGroupResource */
                    instantSnapshotGroupResource?: (google.cloud.compute.v1beta.IInstantSnapshotGroup|null);

                    /** InsertInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** InsertInstantSnapshotGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstantSnapshotGroupRequest sourceConsistencyGroup */
                    sourceConsistencyGroup?: (string|null);

                    /** InsertInstantSnapshotGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstantSnapshotGroupRequest. */
                class InsertInstantSnapshotGroupRequest implements IInsertInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new InsertInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInstantSnapshotGroupRequest);

                    /** InsertInstantSnapshotGroupRequest instantSnapshotGroupResource. */
                    public instantSnapshotGroupResource?: (google.cloud.compute.v1beta.IInstantSnapshotGroup|null);

                    /** InsertInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** InsertInstantSnapshotGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstantSnapshotGroupRequest sourceConsistencyGroup. */
                    public sourceConsistencyGroup?: (string|null);

                    /** InsertInstantSnapshotGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInstantSnapshotGroupRequest): google.cloud.compute.v1beta.InsertInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified InsertInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message InsertInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message InsertInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInstantSnapshotGroupRequest;

                    /**
                     * Decodes an InsertInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInstantSnapshotGroupRequest;

                    /**
                     * Verifies an InsertInstantSnapshotGroupRequest message.
                     * @param message Plain 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 InsertInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from an InsertInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInstantSnapshotRequest. */
                interface IInsertInstantSnapshotRequest {

                    /** InsertInstantSnapshotRequest instantSnapshotResource */
                    instantSnapshotResource?: (google.cloud.compute.v1beta.IInstantSnapshot|null);

                    /** InsertInstantSnapshotRequest project */
                    project?: (string|null);

                    /** InsertInstantSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** InsertInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertInstantSnapshotRequest. */
                class InsertInstantSnapshotRequest implements IInsertInstantSnapshotRequest {

                    /**
                     * Constructs a new InsertInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInstantSnapshotRequest);

                    /** InsertInstantSnapshotRequest instantSnapshotResource. */
                    public instantSnapshotResource?: (google.cloud.compute.v1beta.IInstantSnapshot|null);

                    /** InsertInstantSnapshotRequest project. */
                    public project: string;

                    /** InsertInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInstantSnapshotRequest): google.cloud.compute.v1beta.InsertInstantSnapshotRequest;

                    /**
                     * Encodes the specified InsertInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstantSnapshotRequest.verify|verify} messages.
                     * @param message InsertInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInstantSnapshotRequest.verify|verify} messages.
                     * @param message InsertInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInstantSnapshotRequest;

                    /**
                     * Decodes an InsertInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInstantSnapshotRequest;

                    /**
                     * Verifies an InsertInstantSnapshotRequest message.
                     * @param message Plain 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 InsertInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInstantSnapshotRequest;

                    /**
                     * Creates a plain object from an InsertInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message InsertInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInterconnectAttachmentGroupRequest. */
                interface IInsertInterconnectAttachmentGroupRequest {

                    /** InsertInterconnectAttachmentGroupRequest interconnectAttachmentGroupResource */
                    interconnectAttachmentGroupResource?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroup|null);

                    /** InsertInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** InsertInterconnectAttachmentGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertInterconnectAttachmentGroupRequest. */
                class InsertInterconnectAttachmentGroupRequest implements IInsertInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new InsertInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInterconnectAttachmentGroupRequest);

                    /** InsertInterconnectAttachmentGroupRequest interconnectAttachmentGroupResource. */
                    public interconnectAttachmentGroupResource?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroup|null);

                    /** InsertInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** InsertInterconnectAttachmentGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInterconnectAttachmentGroupRequest): google.cloud.compute.v1beta.InsertInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified InsertInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message InsertInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message InsertInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes an InsertInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies an InsertInterconnectAttachmentGroupRequest message.
                     * @param message Plain 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 InsertInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from an InsertInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInterconnectAttachmentRequest. */
                interface IInsertInterconnectAttachmentRequest {

                    /** InsertInterconnectAttachmentRequest interconnectAttachmentResource */
                    interconnectAttachmentResource?: (google.cloud.compute.v1beta.IInterconnectAttachment|null);

                    /** InsertInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** InsertInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** InsertInterconnectAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** InsertInterconnectAttachmentRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertInterconnectAttachmentRequest. */
                class InsertInterconnectAttachmentRequest implements IInsertInterconnectAttachmentRequest {

                    /**
                     * Constructs a new InsertInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInterconnectAttachmentRequest);

                    /** InsertInterconnectAttachmentRequest interconnectAttachmentResource. */
                    public interconnectAttachmentResource?: (google.cloud.compute.v1beta.IInterconnectAttachment|null);

                    /** InsertInterconnectAttachmentRequest project. */
                    public project: string;

                    /** InsertInterconnectAttachmentRequest region. */
                    public region: string;

                    /** InsertInterconnectAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertInterconnectAttachmentRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInterconnectAttachmentRequest): google.cloud.compute.v1beta.InsertInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified InsertInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message InsertInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message InsertInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInterconnectAttachmentRequest;

                    /**
                     * Decodes an InsertInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInterconnectAttachmentRequest;

                    /**
                     * Verifies an InsertInterconnectAttachmentRequest message.
                     * @param message Plain 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 InsertInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from an InsertInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message InsertInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInterconnectGroupRequest. */
                interface IInsertInterconnectGroupRequest {

                    /** InsertInterconnectGroupRequest interconnectGroupResource */
                    interconnectGroupResource?: (google.cloud.compute.v1beta.IInterconnectGroup|null);

                    /** InsertInterconnectGroupRequest project */
                    project?: (string|null);

                    /** InsertInterconnectGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertInterconnectGroupRequest. */
                class InsertInterconnectGroupRequest implements IInsertInterconnectGroupRequest {

                    /**
                     * Constructs a new InsertInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInterconnectGroupRequest);

                    /** InsertInterconnectGroupRequest interconnectGroupResource. */
                    public interconnectGroupResource?: (google.cloud.compute.v1beta.IInterconnectGroup|null);

                    /** InsertInterconnectGroupRequest project. */
                    public project: string;

                    /** InsertInterconnectGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInterconnectGroupRequest): google.cloud.compute.v1beta.InsertInterconnectGroupRequest;

                    /**
                     * Encodes the specified InsertInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInterconnectGroupRequest.verify|verify} messages.
                     * @param message InsertInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInterconnectGroupRequest.verify|verify} messages.
                     * @param message InsertInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInterconnectGroupRequest;

                    /**
                     * Decodes an InsertInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInterconnectGroupRequest;

                    /**
                     * Verifies an InsertInterconnectGroupRequest message.
                     * @param message Plain 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 InsertInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInterconnectGroupRequest;

                    /**
                     * Creates a plain object from an InsertInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertInterconnectRequest. */
                interface IInsertInterconnectRequest {

                    /** InsertInterconnectRequest interconnectResource */
                    interconnectResource?: (google.cloud.compute.v1beta.IInterconnect|null);

                    /** InsertInterconnectRequest project */
                    project?: (string|null);

                    /** InsertInterconnectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertInterconnectRequest. */
                class InsertInterconnectRequest implements IInsertInterconnectRequest {

                    /**
                     * Constructs a new InsertInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertInterconnectRequest);

                    /** InsertInterconnectRequest interconnectResource. */
                    public interconnectResource?: (google.cloud.compute.v1beta.IInterconnect|null);

                    /** InsertInterconnectRequest project. */
                    public project: string;

                    /** InsertInterconnectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertInterconnectRequest): google.cloud.compute.v1beta.InsertInterconnectRequest;

                    /**
                     * Encodes the specified InsertInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertInterconnectRequest.verify|verify} messages.
                     * @param message InsertInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertInterconnectRequest.verify|verify} messages.
                     * @param message InsertInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertInterconnectRequest;

                    /**
                     * Decodes an InsertInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertInterconnectRequest;

                    /**
                     * Verifies an InsertInterconnectRequest message.
                     * @param message Plain 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 InsertInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertInterconnectRequest;

                    /**
                     * Creates a plain object from an InsertInterconnectRequest message. Also converts values to other types if specified.
                     * @param message InsertInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertLicenseRequest. */
                interface IInsertLicenseRequest {

                    /** InsertLicenseRequest licenseResource */
                    licenseResource?: (google.cloud.compute.v1beta.ILicense|null);

                    /** InsertLicenseRequest project */
                    project?: (string|null);

                    /** InsertLicenseRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertLicenseRequest. */
                class InsertLicenseRequest implements IInsertLicenseRequest {

                    /**
                     * Constructs a new InsertLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertLicenseRequest);

                    /** InsertLicenseRequest licenseResource. */
                    public licenseResource?: (google.cloud.compute.v1beta.ILicense|null);

                    /** InsertLicenseRequest project. */
                    public project: string;

                    /** InsertLicenseRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertLicenseRequest): google.cloud.compute.v1beta.InsertLicenseRequest;

                    /**
                     * Encodes the specified InsertLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertLicenseRequest.verify|verify} messages.
                     * @param message InsertLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertLicenseRequest.verify|verify} messages.
                     * @param message InsertLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertLicenseRequest;

                    /**
                     * Decodes an InsertLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertLicenseRequest;

                    /**
                     * Verifies an InsertLicenseRequest message.
                     * @param message Plain 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 InsertLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertLicenseRequest;

                    /**
                     * Creates a plain object from an InsertLicenseRequest message. Also converts values to other types if specified.
                     * @param message InsertLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertMachineImageRequest. */
                interface IInsertMachineImageRequest {

                    /** InsertMachineImageRequest machineImageResource */
                    machineImageResource?: (google.cloud.compute.v1beta.IMachineImage|null);

                    /** InsertMachineImageRequest project */
                    project?: (string|null);

                    /** InsertMachineImageRequest requestId */
                    requestId?: (string|null);

                    /** InsertMachineImageRequest sourceInstance */
                    sourceInstance?: (string|null);
                }

                /** Represents an InsertMachineImageRequest. */
                class InsertMachineImageRequest implements IInsertMachineImageRequest {

                    /**
                     * Constructs a new InsertMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertMachineImageRequest);

                    /** InsertMachineImageRequest machineImageResource. */
                    public machineImageResource?: (google.cloud.compute.v1beta.IMachineImage|null);

                    /** InsertMachineImageRequest project. */
                    public project: string;

                    /** InsertMachineImageRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertMachineImageRequest sourceInstance. */
                    public sourceInstance?: (string|null);

                    /**
                     * Creates a new InsertMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertMachineImageRequest): google.cloud.compute.v1beta.InsertMachineImageRequest;

                    /**
                     * Encodes the specified InsertMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertMachineImageRequest.verify|verify} messages.
                     * @param message InsertMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertMachineImageRequest.verify|verify} messages.
                     * @param message InsertMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertMachineImageRequest;

                    /**
                     * Decodes an InsertMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertMachineImageRequest;

                    /**
                     * Verifies an InsertMachineImageRequest message.
                     * @param message Plain 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 InsertMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertMachineImageRequest;

                    /**
                     * Creates a plain object from an InsertMachineImageRequest message. Also converts values to other types if specified.
                     * @param message InsertMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkAttachmentRequest. */
                interface IInsertNetworkAttachmentRequest {

                    /** InsertNetworkAttachmentRequest networkAttachmentResource */
                    networkAttachmentResource?: (google.cloud.compute.v1beta.INetworkAttachment|null);

                    /** InsertNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** InsertNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** InsertNetworkAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertNetworkAttachmentRequest. */
                class InsertNetworkAttachmentRequest implements IInsertNetworkAttachmentRequest {

                    /**
                     * Constructs a new InsertNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertNetworkAttachmentRequest);

                    /** InsertNetworkAttachmentRequest networkAttachmentResource. */
                    public networkAttachmentResource?: (google.cloud.compute.v1beta.INetworkAttachment|null);

                    /** InsertNetworkAttachmentRequest project. */
                    public project: string;

                    /** InsertNetworkAttachmentRequest region. */
                    public region: string;

                    /** InsertNetworkAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertNetworkAttachmentRequest): google.cloud.compute.v1beta.InsertNetworkAttachmentRequest;

                    /**
                     * Encodes the specified InsertNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkAttachmentRequest.verify|verify} messages.
                     * @param message InsertNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkAttachmentRequest.verify|verify} messages.
                     * @param message InsertNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertNetworkAttachmentRequest;

                    /**
                     * Decodes an InsertNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertNetworkAttachmentRequest;

                    /**
                     * Verifies an InsertNetworkAttachmentRequest message.
                     * @param message Plain 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 InsertNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from an InsertNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkEdgeSecurityServiceRequest. */
                interface IInsertNetworkEdgeSecurityServiceRequest {

                    /** InsertNetworkEdgeSecurityServiceRequest networkEdgeSecurityServiceResource */
                    networkEdgeSecurityServiceResource?: (google.cloud.compute.v1beta.INetworkEdgeSecurityService|null);

                    /** InsertNetworkEdgeSecurityServiceRequest project */
                    project?: (string|null);

                    /** InsertNetworkEdgeSecurityServiceRequest region */
                    region?: (string|null);

                    /** InsertNetworkEdgeSecurityServiceRequest requestId */
                    requestId?: (string|null);

                    /** InsertNetworkEdgeSecurityServiceRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertNetworkEdgeSecurityServiceRequest. */
                class InsertNetworkEdgeSecurityServiceRequest implements IInsertNetworkEdgeSecurityServiceRequest {

                    /**
                     * Constructs a new InsertNetworkEdgeSecurityServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertNetworkEdgeSecurityServiceRequest);

                    /** InsertNetworkEdgeSecurityServiceRequest networkEdgeSecurityServiceResource. */
                    public networkEdgeSecurityServiceResource?: (google.cloud.compute.v1beta.INetworkEdgeSecurityService|null);

                    /** InsertNetworkEdgeSecurityServiceRequest project. */
                    public project: string;

                    /** InsertNetworkEdgeSecurityServiceRequest region. */
                    public region: string;

                    /** InsertNetworkEdgeSecurityServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertNetworkEdgeSecurityServiceRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertNetworkEdgeSecurityServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkEdgeSecurityServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertNetworkEdgeSecurityServiceRequest): google.cloud.compute.v1beta.InsertNetworkEdgeSecurityServiceRequest;

                    /**
                     * Encodes the specified InsertNetworkEdgeSecurityServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message InsertNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkEdgeSecurityServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message InsertNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkEdgeSecurityServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertNetworkEdgeSecurityServiceRequest;

                    /**
                     * Decodes an InsertNetworkEdgeSecurityServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertNetworkEdgeSecurityServiceRequest;

                    /**
                     * Verifies an InsertNetworkEdgeSecurityServiceRequest message.
                     * @param message Plain 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 InsertNetworkEdgeSecurityServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkEdgeSecurityServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertNetworkEdgeSecurityServiceRequest;

                    /**
                     * Creates a plain object from an InsertNetworkEdgeSecurityServiceRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkEdgeSecurityServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertNetworkEdgeSecurityServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkEdgeSecurityServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkEdgeSecurityServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkEndpointGroupRequest. */
                interface IInsertNetworkEndpointGroupRequest {

                    /** InsertNetworkEndpointGroupRequest networkEndpointGroupResource */
                    networkEndpointGroupResource?: (google.cloud.compute.v1beta.INetworkEndpointGroup|null);

                    /** InsertNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** InsertNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertNetworkEndpointGroupRequest. */
                class InsertNetworkEndpointGroupRequest implements IInsertNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new InsertNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertNetworkEndpointGroupRequest);

                    /** InsertNetworkEndpointGroupRequest networkEndpointGroupResource. */
                    public networkEndpointGroupResource?: (google.cloud.compute.v1beta.INetworkEndpointGroup|null);

                    /** InsertNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** InsertNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertNetworkEndpointGroupRequest): google.cloud.compute.v1beta.InsertNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified InsertNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertNetworkEndpointGroupRequest;

                    /**
                     * Decodes an InsertNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertNetworkEndpointGroupRequest;

                    /**
                     * Verifies an InsertNetworkEndpointGroupRequest message.
                     * @param message Plain 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 InsertNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an InsertNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkFirewallPolicyRequest. */
                interface IInsertNetworkFirewallPolicyRequest {

                    /** InsertNetworkFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** InsertNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** InsertNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertNetworkFirewallPolicyRequest. */
                class InsertNetworkFirewallPolicyRequest implements IInsertNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new InsertNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertNetworkFirewallPolicyRequest);

                    /** InsertNetworkFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** InsertNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** InsertNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.InsertNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified InsertNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an InsertNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an InsertNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 InsertNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an InsertNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNetworkRequest. */
                interface IInsertNetworkRequest {

                    /** InsertNetworkRequest networkResource */
                    networkResource?: (google.cloud.compute.v1beta.INetwork|null);

                    /** InsertNetworkRequest project */
                    project?: (string|null);

                    /** InsertNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertNetworkRequest. */
                class InsertNetworkRequest implements IInsertNetworkRequest {

                    /**
                     * Constructs a new InsertNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertNetworkRequest);

                    /** InsertNetworkRequest networkResource. */
                    public networkResource?: (google.cloud.compute.v1beta.INetwork|null);

                    /** InsertNetworkRequest project. */
                    public project: string;

                    /** InsertNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertNetworkRequest): google.cloud.compute.v1beta.InsertNetworkRequest;

                    /**
                     * Encodes the specified InsertNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkRequest.verify|verify} messages.
                     * @param message InsertNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertNetworkRequest.verify|verify} messages.
                     * @param message InsertNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertNetworkRequest;

                    /**
                     * Decodes an InsertNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertNetworkRequest;

                    /**
                     * Verifies an InsertNetworkRequest message.
                     * @param message Plain 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 InsertNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertNetworkRequest;

                    /**
                     * Creates a plain object from an InsertNetworkRequest message. Also converts values to other types if specified.
                     * @param message InsertNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNodeGroupRequest. */
                interface IInsertNodeGroupRequest {

                    /** InsertNodeGroupRequest initialNodeCount */
                    initialNodeCount?: (number|null);

                    /** InsertNodeGroupRequest nodeGroupResource */
                    nodeGroupResource?: (google.cloud.compute.v1beta.INodeGroup|null);

                    /** InsertNodeGroupRequest project */
                    project?: (string|null);

                    /** InsertNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertNodeGroupRequest. */
                class InsertNodeGroupRequest implements IInsertNodeGroupRequest {

                    /**
                     * Constructs a new InsertNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertNodeGroupRequest);

                    /** InsertNodeGroupRequest initialNodeCount. */
                    public initialNodeCount: number;

                    /** InsertNodeGroupRequest nodeGroupResource. */
                    public nodeGroupResource?: (google.cloud.compute.v1beta.INodeGroup|null);

                    /** InsertNodeGroupRequest project. */
                    public project: string;

                    /** InsertNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertNodeGroupRequest): google.cloud.compute.v1beta.InsertNodeGroupRequest;

                    /**
                     * Encodes the specified InsertNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertNodeGroupRequest.verify|verify} messages.
                     * @param message InsertNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertNodeGroupRequest.verify|verify} messages.
                     * @param message InsertNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertNodeGroupRequest;

                    /**
                     * Decodes an InsertNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertNodeGroupRequest;

                    /**
                     * Verifies an InsertNodeGroupRequest message.
                     * @param message Plain 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 InsertNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertNodeGroupRequest;

                    /**
                     * Creates a plain object from an InsertNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertNodeTemplateRequest. */
                interface IInsertNodeTemplateRequest {

                    /** InsertNodeTemplateRequest nodeTemplateResource */
                    nodeTemplateResource?: (google.cloud.compute.v1beta.INodeTemplate|null);

                    /** InsertNodeTemplateRequest project */
                    project?: (string|null);

                    /** InsertNodeTemplateRequest region */
                    region?: (string|null);

                    /** InsertNodeTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertNodeTemplateRequest. */
                class InsertNodeTemplateRequest implements IInsertNodeTemplateRequest {

                    /**
                     * Constructs a new InsertNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertNodeTemplateRequest);

                    /** InsertNodeTemplateRequest nodeTemplateResource. */
                    public nodeTemplateResource?: (google.cloud.compute.v1beta.INodeTemplate|null);

                    /** InsertNodeTemplateRequest project. */
                    public project: string;

                    /** InsertNodeTemplateRequest region. */
                    public region: string;

                    /** InsertNodeTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertNodeTemplateRequest): google.cloud.compute.v1beta.InsertNodeTemplateRequest;

                    /**
                     * Encodes the specified InsertNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertNodeTemplateRequest.verify|verify} messages.
                     * @param message InsertNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertNodeTemplateRequest.verify|verify} messages.
                     * @param message InsertNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertNodeTemplateRequest;

                    /**
                     * Decodes an InsertNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertNodeTemplateRequest;

                    /**
                     * Verifies an InsertNodeTemplateRequest message.
                     * @param message Plain 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 InsertNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertNodeTemplateRequest;

                    /**
                     * Creates a plain object from an InsertNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message InsertNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertOrganizationSecurityPolicyRequest. */
                interface IInsertOrganizationSecurityPolicyRequest {

                    /** InsertOrganizationSecurityPolicyRequest parentId */
                    parentId?: (string|null);

                    /** InsertOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertOrganizationSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);
                }

                /** Represents an InsertOrganizationSecurityPolicyRequest. */
                class InsertOrganizationSecurityPolicyRequest implements IInsertOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new InsertOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertOrganizationSecurityPolicyRequest);

                    /** InsertOrganizationSecurityPolicyRequest parentId. */
                    public parentId?: (string|null);

                    /** InsertOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertOrganizationSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /**
                     * Creates a new InsertOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.InsertOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified InsertOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes an InsertOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies an InsertOrganizationSecurityPolicyRequest message.
                     * @param message Plain 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 InsertOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an InsertOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertPacketMirroringRequest. */
                interface IInsertPacketMirroringRequest {

                    /** InsertPacketMirroringRequest packetMirroringResource */
                    packetMirroringResource?: (google.cloud.compute.v1beta.IPacketMirroring|null);

                    /** InsertPacketMirroringRequest project */
                    project?: (string|null);

                    /** InsertPacketMirroringRequest region */
                    region?: (string|null);

                    /** InsertPacketMirroringRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertPacketMirroringRequest. */
                class InsertPacketMirroringRequest implements IInsertPacketMirroringRequest {

                    /**
                     * Constructs a new InsertPacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertPacketMirroringRequest);

                    /** InsertPacketMirroringRequest packetMirroringResource. */
                    public packetMirroringResource?: (google.cloud.compute.v1beta.IPacketMirroring|null);

                    /** InsertPacketMirroringRequest project. */
                    public project: string;

                    /** InsertPacketMirroringRequest region. */
                    public region: string;

                    /** InsertPacketMirroringRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertPacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertPacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertPacketMirroringRequest): google.cloud.compute.v1beta.InsertPacketMirroringRequest;

                    /**
                     * Encodes the specified InsertPacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertPacketMirroringRequest.verify|verify} messages.
                     * @param message InsertPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertPacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertPacketMirroringRequest.verify|verify} messages.
                     * @param message InsertPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertPacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertPacketMirroringRequest;

                    /**
                     * Decodes an InsertPacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertPacketMirroringRequest;

                    /**
                     * Verifies an InsertPacketMirroringRequest message.
                     * @param message Plain 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 InsertPacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertPacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertPacketMirroringRequest;

                    /**
                     * Creates a plain object from an InsertPacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message InsertPacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertPacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertPacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertPacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertPublicAdvertisedPrefixeRequest. */
                interface IInsertPublicAdvertisedPrefixeRequest {

                    /** InsertPublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** InsertPublicAdvertisedPrefixeRequest publicAdvertisedPrefixResource */
                    publicAdvertisedPrefixResource?: (google.cloud.compute.v1beta.IPublicAdvertisedPrefix|null);

                    /** InsertPublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertPublicAdvertisedPrefixeRequest. */
                class InsertPublicAdvertisedPrefixeRequest implements IInsertPublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new InsertPublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertPublicAdvertisedPrefixeRequest);

                    /** InsertPublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** InsertPublicAdvertisedPrefixeRequest publicAdvertisedPrefixResource. */
                    public publicAdvertisedPrefixResource?: (google.cloud.compute.v1beta.IPublicAdvertisedPrefix|null);

                    /** InsertPublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertPublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertPublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertPublicAdvertisedPrefixeRequest): google.cloud.compute.v1beta.InsertPublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified InsertPublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message InsertPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertPublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message InsertPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertPublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertPublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes an InsertPublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertPublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies an InsertPublicAdvertisedPrefixeRequest message.
                     * @param message Plain 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 InsertPublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertPublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertPublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from an InsertPublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message InsertPublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertPublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertPublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertPublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertPublicDelegatedPrefixeRequest. */
                interface IInsertPublicDelegatedPrefixeRequest {

                    /** InsertPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** InsertPublicDelegatedPrefixeRequest publicDelegatedPrefixResource */
                    publicDelegatedPrefixResource?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix|null);

                    /** InsertPublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** InsertPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertPublicDelegatedPrefixeRequest. */
                class InsertPublicDelegatedPrefixeRequest implements IInsertPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new InsertPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertPublicDelegatedPrefixeRequest);

                    /** InsertPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** InsertPublicDelegatedPrefixeRequest publicDelegatedPrefixResource. */
                    public publicDelegatedPrefixResource?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix|null);

                    /** InsertPublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** InsertPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertPublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.InsertPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified InsertPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message InsertPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message InsertPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes an InsertPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies an InsertPublicDelegatedPrefixeRequest message.
                     * @param message Plain 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 InsertPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from an InsertPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message InsertPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionAutoscalerRequest. */
                interface IInsertRegionAutoscalerRequest {

                    /** InsertRegionAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** InsertRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** InsertRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** InsertRegionAutoscalerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionAutoscalerRequest. */
                class InsertRegionAutoscalerRequest implements IInsertRegionAutoscalerRequest {

                    /**
                     * Constructs a new InsertRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionAutoscalerRequest);

                    /** InsertRegionAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** InsertRegionAutoscalerRequest project. */
                    public project: string;

                    /** InsertRegionAutoscalerRequest region. */
                    public region: string;

                    /** InsertRegionAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionAutoscalerRequest): google.cloud.compute.v1beta.InsertRegionAutoscalerRequest;

                    /**
                     * Encodes the specified InsertRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionAutoscalerRequest.verify|verify} messages.
                     * @param message InsertRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionAutoscalerRequest.verify|verify} messages.
                     * @param message InsertRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionAutoscalerRequest;

                    /**
                     * Decodes an InsertRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionAutoscalerRequest;

                    /**
                     * Verifies an InsertRegionAutoscalerRequest message.
                     * @param message Plain 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 InsertRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from an InsertRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionBackendBucketRequest. */
                interface IInsertRegionBackendBucketRequest {

                    /** InsertRegionBackendBucketRequest backendBucketResource */
                    backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** InsertRegionBackendBucketRequest project */
                    project?: (string|null);

                    /** InsertRegionBackendBucketRequest region */
                    region?: (string|null);

                    /** InsertRegionBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionBackendBucketRequest. */
                class InsertRegionBackendBucketRequest implements IInsertRegionBackendBucketRequest {

                    /**
                     * Constructs a new InsertRegionBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionBackendBucketRequest);

                    /** InsertRegionBackendBucketRequest backendBucketResource. */
                    public backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** InsertRegionBackendBucketRequest project. */
                    public project: string;

                    /** InsertRegionBackendBucketRequest region. */
                    public region: string;

                    /** InsertRegionBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionBackendBucketRequest): google.cloud.compute.v1beta.InsertRegionBackendBucketRequest;

                    /**
                     * Encodes the specified InsertRegionBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionBackendBucketRequest.verify|verify} messages.
                     * @param message InsertRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionBackendBucketRequest.verify|verify} messages.
                     * @param message InsertRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionBackendBucketRequest;

                    /**
                     * Decodes an InsertRegionBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionBackendBucketRequest;

                    /**
                     * Verifies an InsertRegionBackendBucketRequest message.
                     * @param message Plain 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 InsertRegionBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionBackendBucketRequest;

                    /**
                     * Creates a plain object from an InsertRegionBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionBackendServiceRequest. */
                interface IInsertRegionBackendServiceRequest {

                    /** InsertRegionBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** InsertRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** InsertRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** InsertRegionBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionBackendServiceRequest. */
                class InsertRegionBackendServiceRequest implements IInsertRegionBackendServiceRequest {

                    /**
                     * Constructs a new InsertRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionBackendServiceRequest);

                    /** InsertRegionBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** InsertRegionBackendServiceRequest project. */
                    public project: string;

                    /** InsertRegionBackendServiceRequest region. */
                    public region: string;

                    /** InsertRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionBackendServiceRequest): google.cloud.compute.v1beta.InsertRegionBackendServiceRequest;

                    /**
                     * Encodes the specified InsertRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionBackendServiceRequest.verify|verify} messages.
                     * @param message InsertRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionBackendServiceRequest.verify|verify} messages.
                     * @param message InsertRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionBackendServiceRequest;

                    /**
                     * Decodes an InsertRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionBackendServiceRequest;

                    /**
                     * Verifies an InsertRegionBackendServiceRequest message.
                     * @param message Plain 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 InsertRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from an InsertRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionCommitmentRequest. */
                interface IInsertRegionCommitmentRequest {

                    /** InsertRegionCommitmentRequest commitmentResource */
                    commitmentResource?: (google.cloud.compute.v1beta.ICommitment|null);

                    /** InsertRegionCommitmentRequest project */
                    project?: (string|null);

                    /** InsertRegionCommitmentRequest region */
                    region?: (string|null);

                    /** InsertRegionCommitmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionCommitmentRequest. */
                class InsertRegionCommitmentRequest implements IInsertRegionCommitmentRequest {

                    /**
                     * Constructs a new InsertRegionCommitmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionCommitmentRequest);

                    /** InsertRegionCommitmentRequest commitmentResource. */
                    public commitmentResource?: (google.cloud.compute.v1beta.ICommitment|null);

                    /** InsertRegionCommitmentRequest project. */
                    public project: string;

                    /** InsertRegionCommitmentRequest region. */
                    public region: string;

                    /** InsertRegionCommitmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionCommitmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionCommitmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionCommitmentRequest): google.cloud.compute.v1beta.InsertRegionCommitmentRequest;

                    /**
                     * Encodes the specified InsertRegionCommitmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionCommitmentRequest.verify|verify} messages.
                     * @param message InsertRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionCommitmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionCommitmentRequest.verify|verify} messages.
                     * @param message InsertRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionCommitmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionCommitmentRequest;

                    /**
                     * Decodes an InsertRegionCommitmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionCommitmentRequest;

                    /**
                     * Verifies an InsertRegionCommitmentRequest message.
                     * @param message Plain 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 InsertRegionCommitmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionCommitmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionCommitmentRequest;

                    /**
                     * Creates a plain object from an InsertRegionCommitmentRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionCommitmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionCommitmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionCommitmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionCommitmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionCompositeHealthCheckRequest. */
                interface IInsertRegionCompositeHealthCheckRequest {

                    /** InsertRegionCompositeHealthCheckRequest compositeHealthCheckResource */
                    compositeHealthCheckResource?: (google.cloud.compute.v1beta.ICompositeHealthCheck|null);

                    /** InsertRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** InsertRegionCompositeHealthCheckRequest region */
                    region?: (string|null);

                    /** InsertRegionCompositeHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionCompositeHealthCheckRequest. */
                class InsertRegionCompositeHealthCheckRequest implements IInsertRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new InsertRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionCompositeHealthCheckRequest);

                    /** InsertRegionCompositeHealthCheckRequest compositeHealthCheckResource. */
                    public compositeHealthCheckResource?: (google.cloud.compute.v1beta.ICompositeHealthCheck|null);

                    /** InsertRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** InsertRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /** InsertRegionCompositeHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionCompositeHealthCheckRequest): google.cloud.compute.v1beta.InsertRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified InsertRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message InsertRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message InsertRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes an InsertRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies an InsertRegionCompositeHealthCheckRequest message.
                     * @param message Plain 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 InsertRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from an InsertRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionDiskRequest. */
                interface IInsertRegionDiskRequest {

                    /** InsertRegionDiskRequest diskResource */
                    diskResource?: (google.cloud.compute.v1beta.IDisk|null);

                    /** InsertRegionDiskRequest project */
                    project?: (string|null);

                    /** InsertRegionDiskRequest region */
                    region?: (string|null);

                    /** InsertRegionDiskRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionDiskRequest sourceImage */
                    sourceImage?: (string|null);
                }

                /** Represents an InsertRegionDiskRequest. */
                class InsertRegionDiskRequest implements IInsertRegionDiskRequest {

                    /**
                     * Constructs a new InsertRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionDiskRequest);

                    /** InsertRegionDiskRequest diskResource. */
                    public diskResource?: (google.cloud.compute.v1beta.IDisk|null);

                    /** InsertRegionDiskRequest project. */
                    public project: string;

                    /** InsertRegionDiskRequest region. */
                    public region: string;

                    /** InsertRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionDiskRequest sourceImage. */
                    public sourceImage?: (string|null);

                    /**
                     * Creates a new InsertRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionDiskRequest): google.cloud.compute.v1beta.InsertRegionDiskRequest;

                    /**
                     * Encodes the specified InsertRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionDiskRequest.verify|verify} messages.
                     * @param message InsertRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionDiskRequest.verify|verify} messages.
                     * @param message InsertRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionDiskRequest;

                    /**
                     * Decodes an InsertRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionDiskRequest;

                    /**
                     * Verifies an InsertRegionDiskRequest message.
                     * @param message Plain 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 InsertRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionDiskRequest;

                    /**
                     * Creates a plain object from an InsertRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionHealthAggregationPolicyRequest. */
                interface IInsertRegionHealthAggregationPolicyRequest {

                    /** InsertRegionHealthAggregationPolicyRequest healthAggregationPolicyResource */
                    healthAggregationPolicyResource?: (google.cloud.compute.v1beta.IHealthAggregationPolicy|null);

                    /** InsertRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionHealthAggregationPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionHealthAggregationPolicyRequest. */
                class InsertRegionHealthAggregationPolicyRequest implements IInsertRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new InsertRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionHealthAggregationPolicyRequest);

                    /** InsertRegionHealthAggregationPolicyRequest healthAggregationPolicyResource. */
                    public healthAggregationPolicyResource?: (google.cloud.compute.v1beta.IHealthAggregationPolicy|null);

                    /** InsertRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** InsertRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /** InsertRegionHealthAggregationPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionHealthAggregationPolicyRequest): google.cloud.compute.v1beta.InsertRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes an InsertRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies an InsertRegionHealthAggregationPolicyRequest message.
                     * @param message Plain 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 InsertRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionHealthCheckRequest. */
                interface IInsertRegionHealthCheckRequest {

                    /** InsertRegionHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** InsertRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** InsertRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** InsertRegionHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionHealthCheckRequest. */
                class InsertRegionHealthCheckRequest implements IInsertRegionHealthCheckRequest {

                    /**
                     * Constructs a new InsertRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionHealthCheckRequest);

                    /** InsertRegionHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** InsertRegionHealthCheckRequest project. */
                    public project: string;

                    /** InsertRegionHealthCheckRequest region. */
                    public region: string;

                    /** InsertRegionHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionHealthCheckRequest): google.cloud.compute.v1beta.InsertRegionHealthCheckRequest;

                    /**
                     * Encodes the specified InsertRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionHealthCheckRequest.verify|verify} messages.
                     * @param message InsertRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionHealthCheckRequest.verify|verify} messages.
                     * @param message InsertRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionHealthCheckRequest;

                    /**
                     * Decodes an InsertRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionHealthCheckRequest;

                    /**
                     * Verifies an InsertRegionHealthCheckRequest message.
                     * @param message Plain 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 InsertRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from an InsertRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionHealthCheckServiceRequest. */
                interface IInsertRegionHealthCheckServiceRequest {

                    /** InsertRegionHealthCheckServiceRequest healthCheckServiceResource */
                    healthCheckServiceResource?: (google.cloud.compute.v1beta.IHealthCheckService|null);

                    /** InsertRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** InsertRegionHealthCheckServiceRequest region */
                    region?: (string|null);

                    /** InsertRegionHealthCheckServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionHealthCheckServiceRequest. */
                class InsertRegionHealthCheckServiceRequest implements IInsertRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new InsertRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionHealthCheckServiceRequest);

                    /** InsertRegionHealthCheckServiceRequest healthCheckServiceResource. */
                    public healthCheckServiceResource?: (google.cloud.compute.v1beta.IHealthCheckService|null);

                    /** InsertRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** InsertRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /** InsertRegionHealthCheckServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionHealthCheckServiceRequest): google.cloud.compute.v1beta.InsertRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified InsertRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message InsertRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message InsertRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionHealthCheckServiceRequest;

                    /**
                     * Decodes an InsertRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionHealthCheckServiceRequest;

                    /**
                     * Verifies an InsertRegionHealthCheckServiceRequest message.
                     * @param message Plain 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 InsertRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from an InsertRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionHealthSourceRequest. */
                interface IInsertRegionHealthSourceRequest {

                    /** InsertRegionHealthSourceRequest healthSourceResource */
                    healthSourceResource?: (google.cloud.compute.v1beta.IHealthSource|null);

                    /** InsertRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** InsertRegionHealthSourceRequest region */
                    region?: (string|null);

                    /** InsertRegionHealthSourceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionHealthSourceRequest. */
                class InsertRegionHealthSourceRequest implements IInsertRegionHealthSourceRequest {

                    /**
                     * Constructs a new InsertRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionHealthSourceRequest);

                    /** InsertRegionHealthSourceRequest healthSourceResource. */
                    public healthSourceResource?: (google.cloud.compute.v1beta.IHealthSource|null);

                    /** InsertRegionHealthSourceRequest project. */
                    public project: string;

                    /** InsertRegionHealthSourceRequest region. */
                    public region: string;

                    /** InsertRegionHealthSourceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionHealthSourceRequest): google.cloud.compute.v1beta.InsertRegionHealthSourceRequest;

                    /**
                     * Encodes the specified InsertRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionHealthSourceRequest.verify|verify} messages.
                     * @param message InsertRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionHealthSourceRequest.verify|verify} messages.
                     * @param message InsertRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionHealthSourceRequest;

                    /**
                     * Decodes an InsertRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionHealthSourceRequest;

                    /**
                     * Verifies an InsertRegionHealthSourceRequest message.
                     * @param message Plain 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 InsertRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from an InsertRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionInstanceGroupManagerRequest. */
                interface IInsertRegionInstanceGroupManagerRequest {

                    /** InsertRegionInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** InsertRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** InsertRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** InsertRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionInstanceGroupManagerRequest. */
                class InsertRegionInstanceGroupManagerRequest implements IInsertRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new InsertRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerRequest);

                    /** InsertRegionInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** InsertRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** InsertRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** InsertRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified InsertRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an InsertRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an InsertRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 InsertRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an InsertRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionInstanceGroupManagerResizeRequestRequest. */
                interface IInsertRegionInstanceGroupManagerResizeRequestRequest {

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest instanceGroupManagerResizeRequestResource */
                    instanceGroupManagerResizeRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest|null);

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest project */
                    project?: (string|null);

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest region */
                    region?: (string|null);

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionInstanceGroupManagerResizeRequestRequest. */
                class InsertRegionInstanceGroupManagerResizeRequestRequest implements IInsertRegionInstanceGroupManagerResizeRequestRequest {

                    /**
                     * Constructs a new InsertRegionInstanceGroupManagerResizeRequestRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerResizeRequestRequest);

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest instanceGroupManagerResizeRequestResource. */
                    public instanceGroupManagerResizeRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest|null);

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest project. */
                    public project: string;

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest region. */
                    public region: string;

                    /** InsertRegionInstanceGroupManagerResizeRequestRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionInstanceGroupManagerResizeRequestRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionInstanceGroupManagerResizeRequestRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerResizeRequestRequest): google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Encodes the specified InsertRegionInstanceGroupManagerResizeRequestRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionInstanceGroupManagerResizeRequestRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerResizeRequestRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceGroupManagerResizeRequestRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerResizeRequestRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Decodes an InsertRegionInstanceGroupManagerResizeRequestRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionInstanceGroupManagerResizeRequestRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Verifies an InsertRegionInstanceGroupManagerResizeRequestRequest message.
                     * @param message Plain 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 InsertRegionInstanceGroupManagerResizeRequestRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionInstanceGroupManagerResizeRequestRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerResizeRequestRequest;

                    /**
                     * Creates a plain object from an InsertRegionInstanceGroupManagerResizeRequestRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionInstanceGroupManagerResizeRequestRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionInstanceGroupManagerResizeRequestRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionInstanceGroupManagerResizeRequestRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionInstanceGroupManagerResizeRequestRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionInstanceTemplateRequest. */
                interface IInsertRegionInstanceTemplateRequest {

                    /** InsertRegionInstanceTemplateRequest instanceTemplateResource */
                    instanceTemplateResource?: (google.cloud.compute.v1beta.IInstanceTemplate|null);

                    /** InsertRegionInstanceTemplateRequest project */
                    project?: (string|null);

                    /** InsertRegionInstanceTemplateRequest region */
                    region?: (string|null);

                    /** InsertRegionInstanceTemplateRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionInstanceTemplateRequest. */
                class InsertRegionInstanceTemplateRequest implements IInsertRegionInstanceTemplateRequest {

                    /**
                     * Constructs a new InsertRegionInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionInstanceTemplateRequest);

                    /** InsertRegionInstanceTemplateRequest instanceTemplateResource. */
                    public instanceTemplateResource?: (google.cloud.compute.v1beta.IInstanceTemplate|null);

                    /** InsertRegionInstanceTemplateRequest project. */
                    public project: string;

                    /** InsertRegionInstanceTemplateRequest region. */
                    public region: string;

                    /** InsertRegionInstanceTemplateRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionInstanceTemplateRequest): google.cloud.compute.v1beta.InsertRegionInstanceTemplateRequest;

                    /**
                     * Encodes the specified InsertRegionInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstanceTemplateRequest.verify|verify} messages.
                     * @param message InsertRegionInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionInstanceTemplateRequest;

                    /**
                     * Decodes an InsertRegionInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionInstanceTemplateRequest;

                    /**
                     * Verifies an InsertRegionInstanceTemplateRequest message.
                     * @param message Plain 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 InsertRegionInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionInstanceTemplateRequest;

                    /**
                     * Creates a plain object from an InsertRegionInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionInstantSnapshotGroupRequest. */
                interface IInsertRegionInstantSnapshotGroupRequest {

                    /** InsertRegionInstantSnapshotGroupRequest instantSnapshotGroupResource */
                    instantSnapshotGroupResource?: (google.cloud.compute.v1beta.IInstantSnapshotGroup|null);

                    /** InsertRegionInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** InsertRegionInstantSnapshotGroupRequest region */
                    region?: (string|null);

                    /** InsertRegionInstantSnapshotGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionInstantSnapshotGroupRequest sourceConsistencyGroup */
                    sourceConsistencyGroup?: (string|null);
                }

                /** Represents an InsertRegionInstantSnapshotGroupRequest. */
                class InsertRegionInstantSnapshotGroupRequest implements IInsertRegionInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new InsertRegionInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotGroupRequest);

                    /** InsertRegionInstantSnapshotGroupRequest instantSnapshotGroupResource. */
                    public instantSnapshotGroupResource?: (google.cloud.compute.v1beta.IInstantSnapshotGroup|null);

                    /** InsertRegionInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** InsertRegionInstantSnapshotGroupRequest region. */
                    public region: string;

                    /** InsertRegionInstantSnapshotGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionInstantSnapshotGroupRequest sourceConsistencyGroup. */
                    public sourceConsistencyGroup?: (string|null);

                    /**
                     * Creates a new InsertRegionInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotGroupRequest): google.cloud.compute.v1beta.InsertRegionInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified InsertRegionInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message InsertRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message InsertRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionInstantSnapshotGroupRequest;

                    /**
                     * Decodes an InsertRegionInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionInstantSnapshotGroupRequest;

                    /**
                     * Verifies an InsertRegionInstantSnapshotGroupRequest message.
                     * @param message Plain 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 InsertRegionInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from an InsertRegionInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionInstantSnapshotRequest. */
                interface IInsertRegionInstantSnapshotRequest {

                    /** InsertRegionInstantSnapshotRequest instantSnapshotResource */
                    instantSnapshotResource?: (google.cloud.compute.v1beta.IInstantSnapshot|null);

                    /** InsertRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** InsertRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** InsertRegionInstantSnapshotRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionInstantSnapshotRequest. */
                class InsertRegionInstantSnapshotRequest implements IInsertRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new InsertRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotRequest);

                    /** InsertRegionInstantSnapshotRequest instantSnapshotResource. */
                    public instantSnapshotResource?: (google.cloud.compute.v1beta.IInstantSnapshot|null);

                    /** InsertRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** InsertRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** InsertRegionInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotRequest): google.cloud.compute.v1beta.InsertRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified InsertRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message InsertRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message InsertRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionInstantSnapshotRequest;

                    /**
                     * Decodes an InsertRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionInstantSnapshotRequest;

                    /**
                     * Verifies an InsertRegionInstantSnapshotRequest message.
                     * @param message Plain 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 InsertRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from an InsertRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionMultiMigRequest. */
                interface IInsertRegionMultiMigRequest {

                    /** InsertRegionMultiMigRequest multiMigResource */
                    multiMigResource?: (google.cloud.compute.v1beta.IMultiMig|null);

                    /** InsertRegionMultiMigRequest project */
                    project?: (string|null);

                    /** InsertRegionMultiMigRequest region */
                    region?: (string|null);

                    /** InsertRegionMultiMigRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionMultiMigRequest. */
                class InsertRegionMultiMigRequest implements IInsertRegionMultiMigRequest {

                    /**
                     * Constructs a new InsertRegionMultiMigRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionMultiMigRequest);

                    /** InsertRegionMultiMigRequest multiMigResource. */
                    public multiMigResource?: (google.cloud.compute.v1beta.IMultiMig|null);

                    /** InsertRegionMultiMigRequest project. */
                    public project: string;

                    /** InsertRegionMultiMigRequest region. */
                    public region: string;

                    /** InsertRegionMultiMigRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionMultiMigRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionMultiMigRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionMultiMigRequest): google.cloud.compute.v1beta.InsertRegionMultiMigRequest;

                    /**
                     * Encodes the specified InsertRegionMultiMigRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionMultiMigRequest.verify|verify} messages.
                     * @param message InsertRegionMultiMigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionMultiMigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionMultiMigRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionMultiMigRequest.verify|verify} messages.
                     * @param message InsertRegionMultiMigRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionMultiMigRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionMultiMigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionMultiMigRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionMultiMigRequest;

                    /**
                     * Decodes an InsertRegionMultiMigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionMultiMigRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionMultiMigRequest;

                    /**
                     * Verifies an InsertRegionMultiMigRequest message.
                     * @param message Plain 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 InsertRegionMultiMigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionMultiMigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionMultiMigRequest;

                    /**
                     * Creates a plain object from an InsertRegionMultiMigRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionMultiMigRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionMultiMigRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionMultiMigRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionMultiMigRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionNetworkEndpointGroupRequest. */
                interface IInsertRegionNetworkEndpointGroupRequest {

                    /** InsertRegionNetworkEndpointGroupRequest networkEndpointGroupResource */
                    networkEndpointGroupResource?: (google.cloud.compute.v1beta.INetworkEndpointGroup|null);

                    /** InsertRegionNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** InsertRegionNetworkEndpointGroupRequest region */
                    region?: (string|null);

                    /** InsertRegionNetworkEndpointGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionNetworkEndpointGroupRequest. */
                class InsertRegionNetworkEndpointGroupRequest implements IInsertRegionNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new InsertRegionNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionNetworkEndpointGroupRequest);

                    /** InsertRegionNetworkEndpointGroupRequest networkEndpointGroupResource. */
                    public networkEndpointGroupResource?: (google.cloud.compute.v1beta.INetworkEndpointGroup|null);

                    /** InsertRegionNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** InsertRegionNetworkEndpointGroupRequest region. */
                    public region: string;

                    /** InsertRegionNetworkEndpointGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionNetworkEndpointGroupRequest): google.cloud.compute.v1beta.InsertRegionNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified InsertRegionNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionNetworkEndpointGroupRequest;

                    /**
                     * Decodes an InsertRegionNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionNetworkEndpointGroupRequest;

                    /**
                     * Verifies an InsertRegionNetworkEndpointGroupRequest message.
                     * @param message Plain 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 InsertRegionNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from an InsertRegionNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionNetworkFirewallPolicyRequest. */
                interface IInsertRegionNetworkFirewallPolicyRequest {

                    /** InsertRegionNetworkFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** InsertRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionNetworkFirewallPolicyRequest. */
                class InsertRegionNetworkFirewallPolicyRequest implements IInsertRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new InsertRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionNetworkFirewallPolicyRequest);

                    /** InsertRegionNetworkFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** InsertRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** InsertRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** InsertRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.InsertRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes an InsertRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies an InsertRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain 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 InsertRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionNetworkPolicyRequest. */
                interface IInsertRegionNetworkPolicyRequest {

                    /** InsertRegionNetworkPolicyRequest networkPolicyResource */
                    networkPolicyResource?: (google.cloud.compute.v1beta.INetworkPolicy|null);

                    /** InsertRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionNetworkPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionNetworkPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionNetworkPolicyRequest. */
                class InsertRegionNetworkPolicyRequest implements IInsertRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new InsertRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionNetworkPolicyRequest);

                    /** InsertRegionNetworkPolicyRequest networkPolicyResource. */
                    public networkPolicyResource?: (google.cloud.compute.v1beta.INetworkPolicy|null);

                    /** InsertRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** InsertRegionNetworkPolicyRequest region. */
                    public region: string;

                    /** InsertRegionNetworkPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionNetworkPolicyRequest): google.cloud.compute.v1beta.InsertRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionNetworkPolicyRequest;

                    /**
                     * Decodes an InsertRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionNetworkPolicyRequest;

                    /**
                     * Verifies an InsertRegionNetworkPolicyRequest message.
                     * @param message Plain 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 InsertRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionNotificationEndpointRequest. */
                interface IInsertRegionNotificationEndpointRequest {

                    /** InsertRegionNotificationEndpointRequest notificationEndpointResource */
                    notificationEndpointResource?: (google.cloud.compute.v1beta.INotificationEndpoint|null);

                    /** InsertRegionNotificationEndpointRequest project */
                    project?: (string|null);

                    /** InsertRegionNotificationEndpointRequest region */
                    region?: (string|null);

                    /** InsertRegionNotificationEndpointRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertRegionNotificationEndpointRequest. */
                class InsertRegionNotificationEndpointRequest implements IInsertRegionNotificationEndpointRequest {

                    /**
                     * Constructs a new InsertRegionNotificationEndpointRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionNotificationEndpointRequest);

                    /** InsertRegionNotificationEndpointRequest notificationEndpointResource. */
                    public notificationEndpointResource?: (google.cloud.compute.v1beta.INotificationEndpoint|null);

                    /** InsertRegionNotificationEndpointRequest project. */
                    public project: string;

                    /** InsertRegionNotificationEndpointRequest region. */
                    public region: string;

                    /** InsertRegionNotificationEndpointRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertRegionNotificationEndpointRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionNotificationEndpointRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionNotificationEndpointRequest): google.cloud.compute.v1beta.InsertRegionNotificationEndpointRequest;

                    /**
                     * Encodes the specified InsertRegionNotificationEndpointRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message InsertRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionNotificationEndpointRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message InsertRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionNotificationEndpointRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionNotificationEndpointRequest;

                    /**
                     * Decodes an InsertRegionNotificationEndpointRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionNotificationEndpointRequest;

                    /**
                     * Verifies an InsertRegionNotificationEndpointRequest message.
                     * @param message Plain 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 InsertRegionNotificationEndpointRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionNotificationEndpointRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionNotificationEndpointRequest;

                    /**
                     * Creates a plain object from an InsertRegionNotificationEndpointRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionNotificationEndpointRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionNotificationEndpointRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionNotificationEndpointRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionNotificationEndpointRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionSecurityPolicyRequest. */
                interface IInsertRegionSecurityPolicyRequest {

                    /** InsertRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** InsertRegionSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertRegionSecurityPolicyRequest. */
                class InsertRegionSecurityPolicyRequest implements IInsertRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new InsertRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionSecurityPolicyRequest);

                    /** InsertRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** InsertRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** InsertRegionSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** InsertRegionSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionSecurityPolicyRequest): google.cloud.compute.v1beta.InsertRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionSecurityPolicyRequest;

                    /**
                     * Decodes an InsertRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionSecurityPolicyRequest;

                    /**
                     * Verifies an InsertRegionSecurityPolicyRequest message.
                     * @param message Plain 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 InsertRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionSnapshotRequest. */
                interface IInsertRegionSnapshotRequest {

                    /** InsertRegionSnapshotRequest project */
                    project?: (string|null);

                    /** InsertRegionSnapshotRequest region */
                    region?: (string|null);

                    /** InsertRegionSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionSnapshotRequest snapshotResource */
                    snapshotResource?: (google.cloud.compute.v1beta.ISnapshot|null);
                }

                /** Represents an InsertRegionSnapshotRequest. */
                class InsertRegionSnapshotRequest implements IInsertRegionSnapshotRequest {

                    /**
                     * Constructs a new InsertRegionSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionSnapshotRequest);

                    /** InsertRegionSnapshotRequest project. */
                    public project: string;

                    /** InsertRegionSnapshotRequest region. */
                    public region: string;

                    /** InsertRegionSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionSnapshotRequest snapshotResource. */
                    public snapshotResource?: (google.cloud.compute.v1beta.ISnapshot|null);

                    /**
                     * Creates a new InsertRegionSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionSnapshotRequest): google.cloud.compute.v1beta.InsertRegionSnapshotRequest;

                    /**
                     * Encodes the specified InsertRegionSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionSnapshotRequest.verify|verify} messages.
                     * @param message InsertRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionSnapshotRequest.verify|verify} messages.
                     * @param message InsertRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionSnapshotRequest;

                    /**
                     * Decodes an InsertRegionSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionSnapshotRequest;

                    /**
                     * Verifies an InsertRegionSnapshotRequest message.
                     * @param message Plain 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 InsertRegionSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionSnapshotRequest;

                    /**
                     * Creates a plain object from an InsertRegionSnapshotRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionSslCertificateRequest. */
                interface IInsertRegionSslCertificateRequest {

                    /** InsertRegionSslCertificateRequest project */
                    project?: (string|null);

                    /** InsertRegionSslCertificateRequest region */
                    region?: (string|null);

                    /** InsertRegionSslCertificateRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionSslCertificateRequest sslCertificateResource */
                    sslCertificateResource?: (google.cloud.compute.v1beta.ISslCertificate|null);
                }

                /** Represents an InsertRegionSslCertificateRequest. */
                class InsertRegionSslCertificateRequest implements IInsertRegionSslCertificateRequest {

                    /**
                     * Constructs a new InsertRegionSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionSslCertificateRequest);

                    /** InsertRegionSslCertificateRequest project. */
                    public project: string;

                    /** InsertRegionSslCertificateRequest region. */
                    public region: string;

                    /** InsertRegionSslCertificateRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionSslCertificateRequest sslCertificateResource. */
                    public sslCertificateResource?: (google.cloud.compute.v1beta.ISslCertificate|null);

                    /**
                     * Creates a new InsertRegionSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionSslCertificateRequest): google.cloud.compute.v1beta.InsertRegionSslCertificateRequest;

                    /**
                     * Encodes the specified InsertRegionSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionSslCertificateRequest.verify|verify} messages.
                     * @param message InsertRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionSslCertificateRequest.verify|verify} messages.
                     * @param message InsertRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionSslCertificateRequest;

                    /**
                     * Decodes an InsertRegionSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionSslCertificateRequest;

                    /**
                     * Verifies an InsertRegionSslCertificateRequest message.
                     * @param message Plain 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 InsertRegionSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionSslCertificateRequest;

                    /**
                     * Creates a plain object from an InsertRegionSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionSslPolicyRequest. */
                interface IInsertRegionSslPolicyRequest {

                    /** InsertRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** InsertRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** InsertRegionSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionSslPolicyRequest sslPolicyResource */
                    sslPolicyResource?: (google.cloud.compute.v1beta.ISslPolicy|null);
                }

                /** Represents an InsertRegionSslPolicyRequest. */
                class InsertRegionSslPolicyRequest implements IInsertRegionSslPolicyRequest {

                    /**
                     * Constructs a new InsertRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionSslPolicyRequest);

                    /** InsertRegionSslPolicyRequest project. */
                    public project: string;

                    /** InsertRegionSslPolicyRequest region. */
                    public region: string;

                    /** InsertRegionSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionSslPolicyRequest sslPolicyResource. */
                    public sslPolicyResource?: (google.cloud.compute.v1beta.ISslPolicy|null);

                    /**
                     * Creates a new InsertRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionSslPolicyRequest): google.cloud.compute.v1beta.InsertRegionSslPolicyRequest;

                    /**
                     * Encodes the specified InsertRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionSslPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionSslPolicyRequest.verify|verify} messages.
                     * @param message InsertRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionSslPolicyRequest;

                    /**
                     * Decodes an InsertRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionSslPolicyRequest;

                    /**
                     * Verifies an InsertRegionSslPolicyRequest message.
                     * @param message Plain 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 InsertRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from an InsertRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionTargetHttpProxyRequest. */
                interface IInsertRegionTargetHttpProxyRequest {

                    /** InsertRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** InsertRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** InsertRegionTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionTargetHttpProxyRequest targetHttpProxyResource */
                    targetHttpProxyResource?: (google.cloud.compute.v1beta.ITargetHttpProxy|null);
                }

                /** Represents an InsertRegionTargetHttpProxyRequest. */
                class InsertRegionTargetHttpProxyRequest implements IInsertRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new InsertRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionTargetHttpProxyRequest);

                    /** InsertRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** InsertRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** InsertRegionTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionTargetHttpProxyRequest targetHttpProxyResource. */
                    public targetHttpProxyResource?: (google.cloud.compute.v1beta.ITargetHttpProxy|null);

                    /**
                     * Creates a new InsertRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionTargetHttpProxyRequest): google.cloud.compute.v1beta.InsertRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified InsertRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionTargetHttpProxyRequest;

                    /**
                     * Decodes an InsertRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionTargetHttpProxyRequest;

                    /**
                     * Verifies an InsertRegionTargetHttpProxyRequest message.
                     * @param message Plain 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 InsertRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from an InsertRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionTargetHttpsProxyRequest. */
                interface IInsertRegionTargetHttpsProxyRequest {

                    /** InsertRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** InsertRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** InsertRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionTargetHttpsProxyRequest targetHttpsProxyResource */
                    targetHttpsProxyResource?: (google.cloud.compute.v1beta.ITargetHttpsProxy|null);
                }

                /** Represents an InsertRegionTargetHttpsProxyRequest. */
                class InsertRegionTargetHttpsProxyRequest implements IInsertRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new InsertRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionTargetHttpsProxyRequest);

                    /** InsertRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** InsertRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** InsertRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionTargetHttpsProxyRequest targetHttpsProxyResource. */
                    public targetHttpsProxyResource?: (google.cloud.compute.v1beta.ITargetHttpsProxy|null);

                    /**
                     * Creates a new InsertRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionTargetHttpsProxyRequest): google.cloud.compute.v1beta.InsertRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified InsertRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes an InsertRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies an InsertRegionTargetHttpsProxyRequest message.
                     * @param message Plain 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 InsertRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from an InsertRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionTargetTcpProxyRequest. */
                interface IInsertRegionTargetTcpProxyRequest {

                    /** InsertRegionTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** InsertRegionTargetTcpProxyRequest region */
                    region?: (string|null);

                    /** InsertRegionTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionTargetTcpProxyRequest targetTcpProxyResource */
                    targetTcpProxyResource?: (google.cloud.compute.v1beta.ITargetTcpProxy|null);
                }

                /** Represents an InsertRegionTargetTcpProxyRequest. */
                class InsertRegionTargetTcpProxyRequest implements IInsertRegionTargetTcpProxyRequest {

                    /**
                     * Constructs a new InsertRegionTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionTargetTcpProxyRequest);

                    /** InsertRegionTargetTcpProxyRequest project. */
                    public project: string;

                    /** InsertRegionTargetTcpProxyRequest region. */
                    public region: string;

                    /** InsertRegionTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionTargetTcpProxyRequest targetTcpProxyResource. */
                    public targetTcpProxyResource?: (google.cloud.compute.v1beta.ITargetTcpProxy|null);

                    /**
                     * Creates a new InsertRegionTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionTargetTcpProxyRequest): google.cloud.compute.v1beta.InsertRegionTargetTcpProxyRequest;

                    /**
                     * Encodes the specified InsertRegionTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message InsertRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionTargetTcpProxyRequest;

                    /**
                     * Decodes an InsertRegionTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionTargetTcpProxyRequest;

                    /**
                     * Verifies an InsertRegionTargetTcpProxyRequest message.
                     * @param message Plain 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 InsertRegionTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from an InsertRegionTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRegionUrlMapRequest. */
                interface IInsertRegionUrlMapRequest {

                    /** InsertRegionUrlMapRequest project */
                    project?: (string|null);

                    /** InsertRegionUrlMapRequest region */
                    region?: (string|null);

                    /** InsertRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** InsertRegionUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);
                }

                /** Represents an InsertRegionUrlMapRequest. */
                class InsertRegionUrlMapRequest implements IInsertRegionUrlMapRequest {

                    /**
                     * Constructs a new InsertRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRegionUrlMapRequest);

                    /** InsertRegionUrlMapRequest project. */
                    public project: string;

                    /** InsertRegionUrlMapRequest region. */
                    public region: string;

                    /** InsertRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRegionUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);

                    /**
                     * Creates a new InsertRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRegionUrlMapRequest): google.cloud.compute.v1beta.InsertRegionUrlMapRequest;

                    /**
                     * Encodes the specified InsertRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionUrlMapRequest.verify|verify} messages.
                     * @param message InsertRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRegionUrlMapRequest.verify|verify} messages.
                     * @param message InsertRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRegionUrlMapRequest;

                    /**
                     * Decodes an InsertRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRegionUrlMapRequest;

                    /**
                     * Verifies an InsertRegionUrlMapRequest message.
                     * @param message Plain 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 InsertRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRegionUrlMapRequest;

                    /**
                     * Creates a plain object from an InsertRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message InsertRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertReservationRequest. */
                interface IInsertReservationRequest {

                    /** InsertReservationRequest project */
                    project?: (string|null);

                    /** InsertReservationRequest requestId */
                    requestId?: (string|null);

                    /** InsertReservationRequest reservationResource */
                    reservationResource?: (google.cloud.compute.v1beta.IReservation|null);

                    /** InsertReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertReservationRequest. */
                class InsertReservationRequest implements IInsertReservationRequest {

                    /**
                     * Constructs a new InsertReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertReservationRequest);

                    /** InsertReservationRequest project. */
                    public project: string;

                    /** InsertReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertReservationRequest reservationResource. */
                    public reservationResource?: (google.cloud.compute.v1beta.IReservation|null);

                    /** InsertReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertReservationRequest): google.cloud.compute.v1beta.InsertReservationRequest;

                    /**
                     * Encodes the specified InsertReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertReservationRequest.verify|verify} messages.
                     * @param message InsertReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertReservationRequest.verify|verify} messages.
                     * @param message InsertReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertReservationRequest;

                    /**
                     * Decodes an InsertReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertReservationRequest;

                    /**
                     * Verifies an InsertReservationRequest message.
                     * @param message Plain 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 InsertReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertReservationRequest;

                    /**
                     * Creates a plain object from an InsertReservationRequest message. Also converts values to other types if specified.
                     * @param message InsertReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertResourcePolicyRequest. */
                interface IInsertResourcePolicyRequest {

                    /** InsertResourcePolicyRequest project */
                    project?: (string|null);

                    /** InsertResourcePolicyRequest region */
                    region?: (string|null);

                    /** InsertResourcePolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertResourcePolicyRequest resourcePolicyResource */
                    resourcePolicyResource?: (google.cloud.compute.v1beta.IResourcePolicy|null);
                }

                /** Represents an InsertResourcePolicyRequest. */
                class InsertResourcePolicyRequest implements IInsertResourcePolicyRequest {

                    /**
                     * Constructs a new InsertResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertResourcePolicyRequest);

                    /** InsertResourcePolicyRequest project. */
                    public project: string;

                    /** InsertResourcePolicyRequest region. */
                    public region: string;

                    /** InsertResourcePolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertResourcePolicyRequest resourcePolicyResource. */
                    public resourcePolicyResource?: (google.cloud.compute.v1beta.IResourcePolicy|null);

                    /**
                     * Creates a new InsertResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertResourcePolicyRequest): google.cloud.compute.v1beta.InsertResourcePolicyRequest;

                    /**
                     * Encodes the specified InsertResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertResourcePolicyRequest.verify|verify} messages.
                     * @param message InsertResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertResourcePolicyRequest.verify|verify} messages.
                     * @param message InsertResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertResourcePolicyRequest;

                    /**
                     * Decodes an InsertResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertResourcePolicyRequest;

                    /**
                     * Verifies an InsertResourcePolicyRequest message.
                     * @param message Plain 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 InsertResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertResourcePolicyRequest;

                    /**
                     * Creates a plain object from an InsertResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRolloutPlanRequest. */
                interface IInsertRolloutPlanRequest {

                    /** InsertRolloutPlanRequest project */
                    project?: (string|null);

                    /** InsertRolloutPlanRequest requestId */
                    requestId?: (string|null);

                    /** InsertRolloutPlanRequest rolloutPlanResource */
                    rolloutPlanResource?: (google.cloud.compute.v1beta.IRolloutPlan|null);
                }

                /** Represents an InsertRolloutPlanRequest. */
                class InsertRolloutPlanRequest implements IInsertRolloutPlanRequest {

                    /**
                     * Constructs a new InsertRolloutPlanRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRolloutPlanRequest);

                    /** InsertRolloutPlanRequest project. */
                    public project: string;

                    /** InsertRolloutPlanRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRolloutPlanRequest rolloutPlanResource. */
                    public rolloutPlanResource?: (google.cloud.compute.v1beta.IRolloutPlan|null);

                    /**
                     * Creates a new InsertRolloutPlanRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRolloutPlanRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRolloutPlanRequest): google.cloud.compute.v1beta.InsertRolloutPlanRequest;

                    /**
                     * Encodes the specified InsertRolloutPlanRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRolloutPlanRequest.verify|verify} messages.
                     * @param message InsertRolloutPlanRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRolloutPlanRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRolloutPlanRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRolloutPlanRequest.verify|verify} messages.
                     * @param message InsertRolloutPlanRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRolloutPlanRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRolloutPlanRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRolloutPlanRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRolloutPlanRequest;

                    /**
                     * Decodes an InsertRolloutPlanRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRolloutPlanRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRolloutPlanRequest;

                    /**
                     * Verifies an InsertRolloutPlanRequest message.
                     * @param message Plain 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 InsertRolloutPlanRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRolloutPlanRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRolloutPlanRequest;

                    /**
                     * Creates a plain object from an InsertRolloutPlanRequest message. Also converts values to other types if specified.
                     * @param message InsertRolloutPlanRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRolloutPlanRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRolloutPlanRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRolloutPlanRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRouteRequest. */
                interface IInsertRouteRequest {

                    /** InsertRouteRequest project */
                    project?: (string|null);

                    /** InsertRouteRequest requestId */
                    requestId?: (string|null);

                    /** InsertRouteRequest routeResource */
                    routeResource?: (google.cloud.compute.v1beta.IRoute|null);
                }

                /** Represents an InsertRouteRequest. */
                class InsertRouteRequest implements IInsertRouteRequest {

                    /**
                     * Constructs a new InsertRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRouteRequest);

                    /** InsertRouteRequest project. */
                    public project: string;

                    /** InsertRouteRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRouteRequest routeResource. */
                    public routeResource?: (google.cloud.compute.v1beta.IRoute|null);

                    /**
                     * Creates a new InsertRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRouteRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRouteRequest): google.cloud.compute.v1beta.InsertRouteRequest;

                    /**
                     * Encodes the specified InsertRouteRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRouteRequest.verify|verify} messages.
                     * @param message InsertRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRouteRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRouteRequest.verify|verify} messages.
                     * @param message InsertRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRouteRequest;

                    /**
                     * Decodes an InsertRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRouteRequest;

                    /**
                     * Verifies an InsertRouteRequest message.
                     * @param message Plain 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 InsertRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRouteRequest;

                    /**
                     * Creates a plain object from an InsertRouteRequest message. Also converts values to other types if specified.
                     * @param message InsertRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertRouterRequest. */
                interface IInsertRouterRequest {

                    /** InsertRouterRequest project */
                    project?: (string|null);

                    /** InsertRouterRequest region */
                    region?: (string|null);

                    /** InsertRouterRequest requestId */
                    requestId?: (string|null);

                    /** InsertRouterRequest routerResource */
                    routerResource?: (google.cloud.compute.v1beta.IRouter|null);
                }

                /** Represents an InsertRouterRequest. */
                class InsertRouterRequest implements IInsertRouterRequest {

                    /**
                     * Constructs a new InsertRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertRouterRequest);

                    /** InsertRouterRequest project. */
                    public project: string;

                    /** InsertRouterRequest region. */
                    public region: string;

                    /** InsertRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertRouterRequest routerResource. */
                    public routerResource?: (google.cloud.compute.v1beta.IRouter|null);

                    /**
                     * Creates a new InsertRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertRouterRequest): google.cloud.compute.v1beta.InsertRouterRequest;

                    /**
                     * Encodes the specified InsertRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertRouterRequest.verify|verify} messages.
                     * @param message InsertRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertRouterRequest.verify|verify} messages.
                     * @param message InsertRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertRouterRequest;

                    /**
                     * Decodes an InsertRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertRouterRequest;

                    /**
                     * Verifies an InsertRouterRequest message.
                     * @param message Plain 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 InsertRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertRouterRequest;

                    /**
                     * Creates a plain object from an InsertRouterRequest message. Also converts values to other types if specified.
                     * @param message InsertRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSecurityPolicyRequest. */
                interface IInsertSecurityPolicyRequest {

                    /** InsertSecurityPolicyRequest project */
                    project?: (string|null);

                    /** InsertSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** InsertSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents an InsertSecurityPolicyRequest. */
                class InsertSecurityPolicyRequest implements IInsertSecurityPolicyRequest {

                    /**
                     * Constructs a new InsertSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertSecurityPolicyRequest);

                    /** InsertSecurityPolicyRequest project. */
                    public project: string;

                    /** InsertSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** InsertSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new InsertSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertSecurityPolicyRequest): google.cloud.compute.v1beta.InsertSecurityPolicyRequest;

                    /**
                     * Encodes the specified InsertSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertSecurityPolicyRequest.verify|verify} messages.
                     * @param message InsertSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertSecurityPolicyRequest;

                    /**
                     * Decodes an InsertSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertSecurityPolicyRequest;

                    /**
                     * Verifies an InsertSecurityPolicyRequest message.
                     * @param message Plain 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 InsertSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an InsertSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertServiceAttachmentRequest. */
                interface IInsertServiceAttachmentRequest {

                    /** InsertServiceAttachmentRequest project */
                    project?: (string|null);

                    /** InsertServiceAttachmentRequest region */
                    region?: (string|null);

                    /** InsertServiceAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** InsertServiceAttachmentRequest serviceAttachmentResource */
                    serviceAttachmentResource?: (google.cloud.compute.v1beta.IServiceAttachment|null);
                }

                /** Represents an InsertServiceAttachmentRequest. */
                class InsertServiceAttachmentRequest implements IInsertServiceAttachmentRequest {

                    /**
                     * Constructs a new InsertServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertServiceAttachmentRequest);

                    /** InsertServiceAttachmentRequest project. */
                    public project: string;

                    /** InsertServiceAttachmentRequest region. */
                    public region: string;

                    /** InsertServiceAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertServiceAttachmentRequest serviceAttachmentResource. */
                    public serviceAttachmentResource?: (google.cloud.compute.v1beta.IServiceAttachment|null);

                    /**
                     * Creates a new InsertServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertServiceAttachmentRequest): google.cloud.compute.v1beta.InsertServiceAttachmentRequest;

                    /**
                     * Encodes the specified InsertServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertServiceAttachmentRequest.verify|verify} messages.
                     * @param message InsertServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertServiceAttachmentRequest.verify|verify} messages.
                     * @param message InsertServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertServiceAttachmentRequest;

                    /**
                     * Decodes an InsertServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertServiceAttachmentRequest;

                    /**
                     * Verifies an InsertServiceAttachmentRequest message.
                     * @param message Plain 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 InsertServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertServiceAttachmentRequest;

                    /**
                     * Creates a plain object from an InsertServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message InsertServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSnapshotGroupRequest. */
                interface IInsertSnapshotGroupRequest {

                    /** InsertSnapshotGroupRequest project */
                    project?: (string|null);

                    /** InsertSnapshotGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertSnapshotGroupRequest snapshotGroupResource */
                    snapshotGroupResource?: (google.cloud.compute.v1beta.ISnapshotGroup|null);
                }

                /** Represents an InsertSnapshotGroupRequest. */
                class InsertSnapshotGroupRequest implements IInsertSnapshotGroupRequest {

                    /**
                     * Constructs a new InsertSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertSnapshotGroupRequest);

                    /** InsertSnapshotGroupRequest project. */
                    public project: string;

                    /** InsertSnapshotGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSnapshotGroupRequest snapshotGroupResource. */
                    public snapshotGroupResource?: (google.cloud.compute.v1beta.ISnapshotGroup|null);

                    /**
                     * Creates a new InsertSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertSnapshotGroupRequest): google.cloud.compute.v1beta.InsertSnapshotGroupRequest;

                    /**
                     * Encodes the specified InsertSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertSnapshotGroupRequest.verify|verify} messages.
                     * @param message InsertSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertSnapshotGroupRequest.verify|verify} messages.
                     * @param message InsertSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertSnapshotGroupRequest;

                    /**
                     * Decodes an InsertSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertSnapshotGroupRequest;

                    /**
                     * Verifies an InsertSnapshotGroupRequest message.
                     * @param message Plain 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 InsertSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertSnapshotGroupRequest;

                    /**
                     * Creates a plain object from an InsertSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSnapshotRequest. */
                interface IInsertSnapshotRequest {

                    /** InsertSnapshotRequest project */
                    project?: (string|null);

                    /** InsertSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** InsertSnapshotRequest snapshotResource */
                    snapshotResource?: (google.cloud.compute.v1beta.ISnapshot|null);
                }

                /** Represents an InsertSnapshotRequest. */
                class InsertSnapshotRequest implements IInsertSnapshotRequest {

                    /**
                     * Constructs a new InsertSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertSnapshotRequest);

                    /** InsertSnapshotRequest project. */
                    public project: string;

                    /** InsertSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSnapshotRequest snapshotResource. */
                    public snapshotResource?: (google.cloud.compute.v1beta.ISnapshot|null);

                    /**
                     * Creates a new InsertSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertSnapshotRequest): google.cloud.compute.v1beta.InsertSnapshotRequest;

                    /**
                     * Encodes the specified InsertSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertSnapshotRequest.verify|verify} messages.
                     * @param message InsertSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertSnapshotRequest.verify|verify} messages.
                     * @param message InsertSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertSnapshotRequest;

                    /**
                     * Decodes an InsertSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertSnapshotRequest;

                    /**
                     * Verifies an InsertSnapshotRequest message.
                     * @param message Plain 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 InsertSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertSnapshotRequest;

                    /**
                     * Creates a plain object from an InsertSnapshotRequest message. Also converts values to other types if specified.
                     * @param message InsertSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSslCertificateRequest. */
                interface IInsertSslCertificateRequest {

                    /** InsertSslCertificateRequest project */
                    project?: (string|null);

                    /** InsertSslCertificateRequest requestId */
                    requestId?: (string|null);

                    /** InsertSslCertificateRequest sslCertificateResource */
                    sslCertificateResource?: (google.cloud.compute.v1beta.ISslCertificate|null);
                }

                /** Represents an InsertSslCertificateRequest. */
                class InsertSslCertificateRequest implements IInsertSslCertificateRequest {

                    /**
                     * Constructs a new InsertSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertSslCertificateRequest);

                    /** InsertSslCertificateRequest project. */
                    public project: string;

                    /** InsertSslCertificateRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSslCertificateRequest sslCertificateResource. */
                    public sslCertificateResource?: (google.cloud.compute.v1beta.ISslCertificate|null);

                    /**
                     * Creates a new InsertSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertSslCertificateRequest): google.cloud.compute.v1beta.InsertSslCertificateRequest;

                    /**
                     * Encodes the specified InsertSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertSslCertificateRequest.verify|verify} messages.
                     * @param message InsertSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertSslCertificateRequest.verify|verify} messages.
                     * @param message InsertSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertSslCertificateRequest;

                    /**
                     * Decodes an InsertSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertSslCertificateRequest;

                    /**
                     * Verifies an InsertSslCertificateRequest message.
                     * @param message Plain 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 InsertSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertSslCertificateRequest;

                    /**
                     * Creates a plain object from an InsertSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message InsertSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSslPolicyRequest. */
                interface IInsertSslPolicyRequest {

                    /** InsertSslPolicyRequest project */
                    project?: (string|null);

                    /** InsertSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertSslPolicyRequest sslPolicyResource */
                    sslPolicyResource?: (google.cloud.compute.v1beta.ISslPolicy|null);
                }

                /** Represents an InsertSslPolicyRequest. */
                class InsertSslPolicyRequest implements IInsertSslPolicyRequest {

                    /**
                     * Constructs a new InsertSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertSslPolicyRequest);

                    /** InsertSslPolicyRequest project. */
                    public project: string;

                    /** InsertSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSslPolicyRequest sslPolicyResource. */
                    public sslPolicyResource?: (google.cloud.compute.v1beta.ISslPolicy|null);

                    /**
                     * Creates a new InsertSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertSslPolicyRequest): google.cloud.compute.v1beta.InsertSslPolicyRequest;

                    /**
                     * Encodes the specified InsertSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertSslPolicyRequest.verify|verify} messages.
                     * @param message InsertSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertSslPolicyRequest.verify|verify} messages.
                     * @param message InsertSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertSslPolicyRequest;

                    /**
                     * Decodes an InsertSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertSslPolicyRequest;

                    /**
                     * Verifies an InsertSslPolicyRequest message.
                     * @param message Plain 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 InsertSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertSslPolicyRequest;

                    /**
                     * Creates a plain object from an InsertSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertStoragePoolRequest. */
                interface IInsertStoragePoolRequest {

                    /** InsertStoragePoolRequest project */
                    project?: (string|null);

                    /** InsertStoragePoolRequest requestId */
                    requestId?: (string|null);

                    /** InsertStoragePoolRequest storagePoolResource */
                    storagePoolResource?: (google.cloud.compute.v1beta.IStoragePool|null);

                    /** InsertStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertStoragePoolRequest. */
                class InsertStoragePoolRequest implements IInsertStoragePoolRequest {

                    /**
                     * Constructs a new InsertStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertStoragePoolRequest);

                    /** InsertStoragePoolRequest project. */
                    public project: string;

                    /** InsertStoragePoolRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertStoragePoolRequest storagePoolResource. */
                    public storagePoolResource?: (google.cloud.compute.v1beta.IStoragePool|null);

                    /** InsertStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertStoragePoolRequest): google.cloud.compute.v1beta.InsertStoragePoolRequest;

                    /**
                     * Encodes the specified InsertStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertStoragePoolRequest.verify|verify} messages.
                     * @param message InsertStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertStoragePoolRequest.verify|verify} messages.
                     * @param message InsertStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertStoragePoolRequest;

                    /**
                     * Decodes an InsertStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertStoragePoolRequest;

                    /**
                     * Verifies an InsertStoragePoolRequest message.
                     * @param message Plain 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 InsertStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertStoragePoolRequest;

                    /**
                     * Creates a plain object from an InsertStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message InsertStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertSubnetworkRequest. */
                interface IInsertSubnetworkRequest {

                    /** InsertSubnetworkRequest project */
                    project?: (string|null);

                    /** InsertSubnetworkRequest region */
                    region?: (string|null);

                    /** InsertSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** InsertSubnetworkRequest subnetworkResource */
                    subnetworkResource?: (google.cloud.compute.v1beta.ISubnetwork|null);
                }

                /** Represents an InsertSubnetworkRequest. */
                class InsertSubnetworkRequest implements IInsertSubnetworkRequest {

                    /**
                     * Constructs a new InsertSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertSubnetworkRequest);

                    /** InsertSubnetworkRequest project. */
                    public project: string;

                    /** InsertSubnetworkRequest region. */
                    public region: string;

                    /** InsertSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertSubnetworkRequest subnetworkResource. */
                    public subnetworkResource?: (google.cloud.compute.v1beta.ISubnetwork|null);

                    /**
                     * Creates a new InsertSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertSubnetworkRequest): google.cloud.compute.v1beta.InsertSubnetworkRequest;

                    /**
                     * Encodes the specified InsertSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertSubnetworkRequest.verify|verify} messages.
                     * @param message InsertSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertSubnetworkRequest.verify|verify} messages.
                     * @param message InsertSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertSubnetworkRequest;

                    /**
                     * Decodes an InsertSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertSubnetworkRequest;

                    /**
                     * Verifies an InsertSubnetworkRequest message.
                     * @param message Plain 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 InsertSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertSubnetworkRequest;

                    /**
                     * Creates a plain object from an InsertSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message InsertSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetGrpcProxyRequest. */
                interface IInsertTargetGrpcProxyRequest {

                    /** InsertTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetGrpcProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetGrpcProxyRequest targetGrpcProxyResource */
                    targetGrpcProxyResource?: (google.cloud.compute.v1beta.ITargetGrpcProxy|null);
                }

                /** Represents an InsertTargetGrpcProxyRequest. */
                class InsertTargetGrpcProxyRequest implements IInsertTargetGrpcProxyRequest {

                    /**
                     * Constructs a new InsertTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertTargetGrpcProxyRequest);

                    /** InsertTargetGrpcProxyRequest project. */
                    public project: string;

                    /** InsertTargetGrpcProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetGrpcProxyRequest targetGrpcProxyResource. */
                    public targetGrpcProxyResource?: (google.cloud.compute.v1beta.ITargetGrpcProxy|null);

                    /**
                     * Creates a new InsertTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertTargetGrpcProxyRequest): google.cloud.compute.v1beta.InsertTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified InsertTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message InsertTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message InsertTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertTargetGrpcProxyRequest;

                    /**
                     * Decodes an InsertTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertTargetGrpcProxyRequest;

                    /**
                     * Verifies an InsertTargetGrpcProxyRequest message.
                     * @param message Plain 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 InsertTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetHttpProxyRequest. */
                interface IInsertTargetHttpProxyRequest {

                    /** InsertTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetHttpProxyRequest targetHttpProxyResource */
                    targetHttpProxyResource?: (google.cloud.compute.v1beta.ITargetHttpProxy|null);
                }

                /** Represents an InsertTargetHttpProxyRequest. */
                class InsertTargetHttpProxyRequest implements IInsertTargetHttpProxyRequest {

                    /**
                     * Constructs a new InsertTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertTargetHttpProxyRequest);

                    /** InsertTargetHttpProxyRequest project. */
                    public project: string;

                    /** InsertTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetHttpProxyRequest targetHttpProxyResource. */
                    public targetHttpProxyResource?: (google.cloud.compute.v1beta.ITargetHttpProxy|null);

                    /**
                     * Creates a new InsertTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertTargetHttpProxyRequest): google.cloud.compute.v1beta.InsertTargetHttpProxyRequest;

                    /**
                     * Encodes the specified InsertTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetHttpProxyRequest.verify|verify} messages.
                     * @param message InsertTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetHttpProxyRequest.verify|verify} messages.
                     * @param message InsertTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertTargetHttpProxyRequest;

                    /**
                     * Decodes an InsertTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertTargetHttpProxyRequest;

                    /**
                     * Verifies an InsertTargetHttpProxyRequest message.
                     * @param message Plain 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 InsertTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetHttpsProxyRequest. */
                interface IInsertTargetHttpsProxyRequest {

                    /** InsertTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetHttpsProxyRequest targetHttpsProxyResource */
                    targetHttpsProxyResource?: (google.cloud.compute.v1beta.ITargetHttpsProxy|null);
                }

                /** Represents an InsertTargetHttpsProxyRequest. */
                class InsertTargetHttpsProxyRequest implements IInsertTargetHttpsProxyRequest {

                    /**
                     * Constructs a new InsertTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertTargetHttpsProxyRequest);

                    /** InsertTargetHttpsProxyRequest project. */
                    public project: string;

                    /** InsertTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetHttpsProxyRequest targetHttpsProxyResource. */
                    public targetHttpsProxyResource?: (google.cloud.compute.v1beta.ITargetHttpsProxy|null);

                    /**
                     * Creates a new InsertTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertTargetHttpsProxyRequest): google.cloud.compute.v1beta.InsertTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified InsertTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message InsertTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message InsertTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertTargetHttpsProxyRequest;

                    /**
                     * Decodes an InsertTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertTargetHttpsProxyRequest;

                    /**
                     * Verifies an InsertTargetHttpsProxyRequest message.
                     * @param message Plain 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 InsertTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetInstanceRequest. */
                interface IInsertTargetInstanceRequest {

                    /** InsertTargetInstanceRequest project */
                    project?: (string|null);

                    /** InsertTargetInstanceRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetInstanceRequest targetInstanceResource */
                    targetInstanceResource?: (google.cloud.compute.v1beta.ITargetInstance|null);

                    /** InsertTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertTargetInstanceRequest. */
                class InsertTargetInstanceRequest implements IInsertTargetInstanceRequest {

                    /**
                     * Constructs a new InsertTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertTargetInstanceRequest);

                    /** InsertTargetInstanceRequest project. */
                    public project: string;

                    /** InsertTargetInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetInstanceRequest targetInstanceResource. */
                    public targetInstanceResource?: (google.cloud.compute.v1beta.ITargetInstance|null);

                    /** InsertTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertTargetInstanceRequest): google.cloud.compute.v1beta.InsertTargetInstanceRequest;

                    /**
                     * Encodes the specified InsertTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetInstanceRequest.verify|verify} messages.
                     * @param message InsertTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetInstanceRequest.verify|verify} messages.
                     * @param message InsertTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertTargetInstanceRequest;

                    /**
                     * Decodes an InsertTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertTargetInstanceRequest;

                    /**
                     * Verifies an InsertTargetInstanceRequest message.
                     * @param message Plain 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 InsertTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertTargetInstanceRequest;

                    /**
                     * Creates a plain object from an InsertTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetPoolRequest. */
                interface IInsertTargetPoolRequest {

                    /** InsertTargetPoolRequest project */
                    project?: (string|null);

                    /** InsertTargetPoolRequest region */
                    region?: (string|null);

                    /** InsertTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetPoolRequest targetPoolResource */
                    targetPoolResource?: (google.cloud.compute.v1beta.ITargetPool|null);
                }

                /** Represents an InsertTargetPoolRequest. */
                class InsertTargetPoolRequest implements IInsertTargetPoolRequest {

                    /**
                     * Constructs a new InsertTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertTargetPoolRequest);

                    /** InsertTargetPoolRequest project. */
                    public project: string;

                    /** InsertTargetPoolRequest region. */
                    public region: string;

                    /** InsertTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetPoolRequest targetPoolResource. */
                    public targetPoolResource?: (google.cloud.compute.v1beta.ITargetPool|null);

                    /**
                     * Creates a new InsertTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertTargetPoolRequest): google.cloud.compute.v1beta.InsertTargetPoolRequest;

                    /**
                     * Encodes the specified InsertTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetPoolRequest.verify|verify} messages.
                     * @param message InsertTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetPoolRequest.verify|verify} messages.
                     * @param message InsertTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertTargetPoolRequest;

                    /**
                     * Decodes an InsertTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertTargetPoolRequest;

                    /**
                     * Verifies an InsertTargetPoolRequest message.
                     * @param message Plain 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 InsertTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertTargetPoolRequest;

                    /**
                     * Creates a plain object from an InsertTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetSslProxyRequest. */
                interface IInsertTargetSslProxyRequest {

                    /** InsertTargetSslProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetSslProxyRequest targetSslProxyResource */
                    targetSslProxyResource?: (google.cloud.compute.v1beta.ITargetSslProxy|null);
                }

                /** Represents an InsertTargetSslProxyRequest. */
                class InsertTargetSslProxyRequest implements IInsertTargetSslProxyRequest {

                    /**
                     * Constructs a new InsertTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertTargetSslProxyRequest);

                    /** InsertTargetSslProxyRequest project. */
                    public project: string;

                    /** InsertTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetSslProxyRequest targetSslProxyResource. */
                    public targetSslProxyResource?: (google.cloud.compute.v1beta.ITargetSslProxy|null);

                    /**
                     * Creates a new InsertTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertTargetSslProxyRequest): google.cloud.compute.v1beta.InsertTargetSslProxyRequest;

                    /**
                     * Encodes the specified InsertTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetSslProxyRequest.verify|verify} messages.
                     * @param message InsertTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetSslProxyRequest.verify|verify} messages.
                     * @param message InsertTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertTargetSslProxyRequest;

                    /**
                     * Decodes an InsertTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertTargetSslProxyRequest;

                    /**
                     * Verifies an InsertTargetSslProxyRequest message.
                     * @param message Plain 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 InsertTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertTargetSslProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetTcpProxyRequest. */
                interface IInsertTargetTcpProxyRequest {

                    /** InsertTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** InsertTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetTcpProxyRequest targetTcpProxyResource */
                    targetTcpProxyResource?: (google.cloud.compute.v1beta.ITargetTcpProxy|null);
                }

                /** Represents an InsertTargetTcpProxyRequest. */
                class InsertTargetTcpProxyRequest implements IInsertTargetTcpProxyRequest {

                    /**
                     * Constructs a new InsertTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertTargetTcpProxyRequest);

                    /** InsertTargetTcpProxyRequest project. */
                    public project: string;

                    /** InsertTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetTcpProxyRequest targetTcpProxyResource. */
                    public targetTcpProxyResource?: (google.cloud.compute.v1beta.ITargetTcpProxy|null);

                    /**
                     * Creates a new InsertTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertTargetTcpProxyRequest): google.cloud.compute.v1beta.InsertTargetTcpProxyRequest;

                    /**
                     * Encodes the specified InsertTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetTcpProxyRequest.verify|verify} messages.
                     * @param message InsertTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetTcpProxyRequest.verify|verify} messages.
                     * @param message InsertTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertTargetTcpProxyRequest;

                    /**
                     * Decodes an InsertTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertTargetTcpProxyRequest;

                    /**
                     * Verifies an InsertTargetTcpProxyRequest message.
                     * @param message Plain 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 InsertTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from an InsertTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertTargetVpnGatewayRequest. */
                interface IInsertTargetVpnGatewayRequest {

                    /** InsertTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** InsertTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** InsertTargetVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** InsertTargetVpnGatewayRequest targetVpnGatewayResource */
                    targetVpnGatewayResource?: (google.cloud.compute.v1beta.ITargetVpnGateway|null);
                }

                /** Represents an InsertTargetVpnGatewayRequest. */
                class InsertTargetVpnGatewayRequest implements IInsertTargetVpnGatewayRequest {

                    /**
                     * Constructs a new InsertTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertTargetVpnGatewayRequest);

                    /** InsertTargetVpnGatewayRequest project. */
                    public project: string;

                    /** InsertTargetVpnGatewayRequest region. */
                    public region: string;

                    /** InsertTargetVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertTargetVpnGatewayRequest targetVpnGatewayResource. */
                    public targetVpnGatewayResource?: (google.cloud.compute.v1beta.ITargetVpnGateway|null);

                    /**
                     * Creates a new InsertTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertTargetVpnGatewayRequest): google.cloud.compute.v1beta.InsertTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified InsertTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertTargetVpnGatewayRequest;

                    /**
                     * Decodes an InsertTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertTargetVpnGatewayRequest;

                    /**
                     * Verifies an InsertTargetVpnGatewayRequest message.
                     * @param message Plain 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 InsertTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from an InsertTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message InsertTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertUrlMapRequest. */
                interface IInsertUrlMapRequest {

                    /** InsertUrlMapRequest project */
                    project?: (string|null);

                    /** InsertUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** InsertUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);
                }

                /** Represents an InsertUrlMapRequest. */
                class InsertUrlMapRequest implements IInsertUrlMapRequest {

                    /**
                     * Constructs a new InsertUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertUrlMapRequest);

                    /** InsertUrlMapRequest project. */
                    public project: string;

                    /** InsertUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);

                    /**
                     * Creates a new InsertUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertUrlMapRequest): google.cloud.compute.v1beta.InsertUrlMapRequest;

                    /**
                     * Encodes the specified InsertUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertUrlMapRequest.verify|verify} messages.
                     * @param message InsertUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertUrlMapRequest.verify|verify} messages.
                     * @param message InsertUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertUrlMapRequest;

                    /**
                     * Decodes an InsertUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertUrlMapRequest;

                    /**
                     * Verifies an InsertUrlMapRequest message.
                     * @param message Plain 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 InsertUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertUrlMapRequest;

                    /**
                     * Creates a plain object from an InsertUrlMapRequest message. Also converts values to other types if specified.
                     * @param message InsertUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertVpnGatewayRequest. */
                interface IInsertVpnGatewayRequest {

                    /** InsertVpnGatewayRequest project */
                    project?: (string|null);

                    /** InsertVpnGatewayRequest region */
                    region?: (string|null);

                    /** InsertVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** InsertVpnGatewayRequest vpnGatewayResource */
                    vpnGatewayResource?: (google.cloud.compute.v1beta.IVpnGateway|null);
                }

                /** Represents an InsertVpnGatewayRequest. */
                class InsertVpnGatewayRequest implements IInsertVpnGatewayRequest {

                    /**
                     * Constructs a new InsertVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertVpnGatewayRequest);

                    /** InsertVpnGatewayRequest project. */
                    public project: string;

                    /** InsertVpnGatewayRequest region. */
                    public region: string;

                    /** InsertVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertVpnGatewayRequest vpnGatewayResource. */
                    public vpnGatewayResource?: (google.cloud.compute.v1beta.IVpnGateway|null);

                    /**
                     * Creates a new InsertVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertVpnGatewayRequest): google.cloud.compute.v1beta.InsertVpnGatewayRequest;

                    /**
                     * Encodes the specified InsertVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertVpnGatewayRequest.verify|verify} messages.
                     * @param message InsertVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertVpnGatewayRequest;

                    /**
                     * Decodes an InsertVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertVpnGatewayRequest;

                    /**
                     * Verifies an InsertVpnGatewayRequest message.
                     * @param message Plain 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 InsertVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertVpnGatewayRequest;

                    /**
                     * Creates a plain object from an InsertVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message InsertVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertVpnTunnelRequest. */
                interface IInsertVpnTunnelRequest {

                    /** InsertVpnTunnelRequest project */
                    project?: (string|null);

                    /** InsertVpnTunnelRequest region */
                    region?: (string|null);

                    /** InsertVpnTunnelRequest requestId */
                    requestId?: (string|null);

                    /** InsertVpnTunnelRequest vpnTunnelResource */
                    vpnTunnelResource?: (google.cloud.compute.v1beta.IVpnTunnel|null);
                }

                /** Represents an InsertVpnTunnelRequest. */
                class InsertVpnTunnelRequest implements IInsertVpnTunnelRequest {

                    /**
                     * Constructs a new InsertVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertVpnTunnelRequest);

                    /** InsertVpnTunnelRequest project. */
                    public project: string;

                    /** InsertVpnTunnelRequest region. */
                    public region: string;

                    /** InsertVpnTunnelRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertVpnTunnelRequest vpnTunnelResource. */
                    public vpnTunnelResource?: (google.cloud.compute.v1beta.IVpnTunnel|null);

                    /**
                     * Creates a new InsertVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertVpnTunnelRequest): google.cloud.compute.v1beta.InsertVpnTunnelRequest;

                    /**
                     * Encodes the specified InsertVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertVpnTunnelRequest.verify|verify} messages.
                     * @param message InsertVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertVpnTunnelRequest.verify|verify} messages.
                     * @param message InsertVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertVpnTunnelRequest;

                    /**
                     * Decodes an InsertVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertVpnTunnelRequest;

                    /**
                     * Verifies an InsertVpnTunnelRequest message.
                     * @param message Plain 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 InsertVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertVpnTunnelRequest;

                    /**
                     * Creates a plain object from an InsertVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message InsertVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertWireGroupRequest. */
                interface IInsertWireGroupRequest {

                    /** InsertWireGroupRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** InsertWireGroupRequest project */
                    project?: (string|null);

                    /** InsertWireGroupRequest requestId */
                    requestId?: (string|null);

                    /** InsertWireGroupRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** InsertWireGroupRequest wireGroupResource */
                    wireGroupResource?: (google.cloud.compute.v1beta.IWireGroup|null);
                }

                /** Represents an InsertWireGroupRequest. */
                class InsertWireGroupRequest implements IInsertWireGroupRequest {

                    /**
                     * Constructs a new InsertWireGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertWireGroupRequest);

                    /** InsertWireGroupRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** InsertWireGroupRequest project. */
                    public project: string;

                    /** InsertWireGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertWireGroupRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /** InsertWireGroupRequest wireGroupResource. */
                    public wireGroupResource?: (google.cloud.compute.v1beta.IWireGroup|null);

                    /**
                     * Creates a new InsertWireGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertWireGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertWireGroupRequest): google.cloud.compute.v1beta.InsertWireGroupRequest;

                    /**
                     * Encodes the specified InsertWireGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertWireGroupRequest.verify|verify} messages.
                     * @param message InsertWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertWireGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertWireGroupRequest.verify|verify} messages.
                     * @param message InsertWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertWireGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertWireGroupRequest;

                    /**
                     * Decodes an InsertWireGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertWireGroupRequest;

                    /**
                     * Verifies an InsertWireGroupRequest message.
                     * @param message Plain 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 InsertWireGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertWireGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertWireGroupRequest;

                    /**
                     * Creates a plain object from an InsertWireGroupRequest message. Also converts values to other types if specified.
                     * @param message InsertWireGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertWireGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertWireGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertWireGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertZoneVmExtensionPolicyRequest. */
                interface IInsertZoneVmExtensionPolicyRequest {

                    /** InsertZoneVmExtensionPolicyRequest project */
                    project?: (string|null);

                    /** InsertZoneVmExtensionPolicyRequest requestId */
                    requestId?: (string|null);

                    /** InsertZoneVmExtensionPolicyRequest vmExtensionPolicyResource */
                    vmExtensionPolicyResource?: (google.cloud.compute.v1beta.IVmExtensionPolicy|null);

                    /** InsertZoneVmExtensionPolicyRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InsertZoneVmExtensionPolicyRequest. */
                class InsertZoneVmExtensionPolicyRequest implements IInsertZoneVmExtensionPolicyRequest {

                    /**
                     * Constructs a new InsertZoneVmExtensionPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInsertZoneVmExtensionPolicyRequest);

                    /** InsertZoneVmExtensionPolicyRequest project. */
                    public project: string;

                    /** InsertZoneVmExtensionPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** InsertZoneVmExtensionPolicyRequest vmExtensionPolicyResource. */
                    public vmExtensionPolicyResource?: (google.cloud.compute.v1beta.IVmExtensionPolicy|null);

                    /** InsertZoneVmExtensionPolicyRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new InsertZoneVmExtensionPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertZoneVmExtensionPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInsertZoneVmExtensionPolicyRequest): google.cloud.compute.v1beta.InsertZoneVmExtensionPolicyRequest;

                    /**
                     * Encodes the specified InsertZoneVmExtensionPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InsertZoneVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message InsertZoneVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInsertZoneVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertZoneVmExtensionPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InsertZoneVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message InsertZoneVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInsertZoneVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertZoneVmExtensionPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertZoneVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InsertZoneVmExtensionPolicyRequest;

                    /**
                     * Decodes an InsertZoneVmExtensionPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertZoneVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InsertZoneVmExtensionPolicyRequest;

                    /**
                     * Verifies an InsertZoneVmExtensionPolicyRequest message.
                     * @param message Plain 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 InsertZoneVmExtensionPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertZoneVmExtensionPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InsertZoneVmExtensionPolicyRequest;

                    /**
                     * Creates a plain object from an InsertZoneVmExtensionPolicyRequest message. Also converts values to other types if specified.
                     * @param message InsertZoneVmExtensionPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InsertZoneVmExtensionPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertZoneVmExtensionPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertZoneVmExtensionPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Instance. */
                interface IInstance {

                    /** Instance advancedMachineFeatures */
                    advancedMachineFeatures?: (google.cloud.compute.v1beta.IAdvancedMachineFeatures|null);

                    /** Instance canIpForward */
                    canIpForward?: (boolean|null);

                    /** Instance confidentialInstanceConfig */
                    confidentialInstanceConfig?: (google.cloud.compute.v1beta.IConfidentialInstanceConfig|null);

                    /** Instance cpuPlatform */
                    cpuPlatform?: (string|null);

                    /** Instance creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Instance deletionProtection */
                    deletionProtection?: (boolean|null);

                    /** Instance description */
                    description?: (string|null);

                    /** Instance disks */
                    disks?: (google.cloud.compute.v1beta.IAttachedDisk[]|null);

                    /** Instance displayDevice */
                    displayDevice?: (google.cloud.compute.v1beta.IDisplayDevice|null);

                    /** Instance eraseWindowsVssSignature */
                    eraseWindowsVssSignature?: (boolean|null);

                    /** Instance fingerprint */
                    fingerprint?: (string|null);

                    /** Instance guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1beta.IAcceleratorConfig[]|null);

                    /** Instance hostname */
                    hostname?: (string|null);

                    /** Instance id */
                    id?: (number|Long|string|null);

                    /** Instance instanceEncryptionKey */
                    instanceEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Instance keyRevocationActionType */
                    keyRevocationActionType?: (string|null);

                    /** Instance kind */
                    kind?: (string|null);

                    /** Instance labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Instance labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Instance lastStartTimestamp */
                    lastStartTimestamp?: (string|null);

                    /** Instance lastStopTimestamp */
                    lastStopTimestamp?: (string|null);

                    /** Instance lastSuspendedTimestamp */
                    lastSuspendedTimestamp?: (string|null);

                    /** Instance machineType */
                    machineType?: (string|null);

                    /** Instance metadata */
                    metadata?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** Instance minCpuPlatform */
                    minCpuPlatform?: (string|null);

                    /** Instance name */
                    name?: (string|null);

                    /** Instance networkInterfaces */
                    networkInterfaces?: (google.cloud.compute.v1beta.INetworkInterface[]|null);

                    /** Instance networkPerformanceConfig */
                    networkPerformanceConfig?: (google.cloud.compute.v1beta.INetworkPerformanceConfig|null);

                    /** Instance params */
                    params?: (google.cloud.compute.v1beta.IInstanceParams|null);

                    /** Instance partnerMetadata */
                    partnerMetadata?: ({ [k: string]: google.cloud.compute.v1beta.IStructuredEntries }|null);

                    /** Instance postKeyRevocationActionType */
                    postKeyRevocationActionType?: (string|null);

                    /** Instance privateIpv6GoogleAccess */
                    privateIpv6GoogleAccess?: (string|null);

                    /** Instance reservationAffinity */
                    reservationAffinity?: (google.cloud.compute.v1beta.IReservationAffinity|null);

                    /** Instance resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** Instance resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1beta.IResourceStatus|null);

                    /** Instance satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** Instance satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Instance scheduling */
                    scheduling?: (google.cloud.compute.v1beta.IScheduling|null);

                    /** Instance selfLink */
                    selfLink?: (string|null);

                    /** Instance serviceAccounts */
                    serviceAccounts?: (google.cloud.compute.v1beta.IServiceAccount[]|null);

                    /** Instance shieldedInstanceConfig */
                    shieldedInstanceConfig?: (google.cloud.compute.v1beta.IShieldedInstanceConfig|null);

                    /** Instance shieldedInstanceIntegrityPolicy */
                    shieldedInstanceIntegrityPolicy?: (google.cloud.compute.v1beta.IShieldedInstanceIntegrityPolicy|null);

                    /** Instance shieldedVmConfig */
                    shieldedVmConfig?: (google.cloud.compute.v1beta.IShieldedVmConfig|null);

                    /** Instance shieldedVmIntegrityPolicy */
                    shieldedVmIntegrityPolicy?: (google.cloud.compute.v1beta.IShieldedVmIntegrityPolicy|null);

                    /** Instance sourceMachineImage */
                    sourceMachineImage?: (string|null);

                    /** Instance sourceMachineImageEncryptionKey */
                    sourceMachineImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Instance startRestricted */
                    startRestricted?: (boolean|null);

                    /** Instance status */
                    status?: (string|null);

                    /** Instance statusMessage */
                    statusMessage?: (string|null);

                    /** Instance tags */
                    tags?: (google.cloud.compute.v1beta.ITags|null);

                    /** Instance workloadIdentityConfig */
                    workloadIdentityConfig?: (google.cloud.compute.v1beta.IWorkloadIdentityConfig|null);

                    /** Instance zone */
                    zone?: (string|null);
                }

                /** Represents an Instance. */
                class Instance implements IInstance {

                    /**
                     * Constructs a new Instance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstance);

                    /** Instance advancedMachineFeatures. */
                    public advancedMachineFeatures?: (google.cloud.compute.v1beta.IAdvancedMachineFeatures|null);

                    /** Instance canIpForward. */
                    public canIpForward?: (boolean|null);

                    /** Instance confidentialInstanceConfig. */
                    public confidentialInstanceConfig?: (google.cloud.compute.v1beta.IConfidentialInstanceConfig|null);

                    /** Instance cpuPlatform. */
                    public cpuPlatform?: (string|null);

                    /** Instance creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Instance deletionProtection. */
                    public deletionProtection?: (boolean|null);

                    /** Instance description. */
                    public description?: (string|null);

                    /** Instance disks. */
                    public disks: google.cloud.compute.v1beta.IAttachedDisk[];

                    /** Instance displayDevice. */
                    public displayDevice?: (google.cloud.compute.v1beta.IDisplayDevice|null);

                    /** Instance eraseWindowsVssSignature. */
                    public eraseWindowsVssSignature?: (boolean|null);

                    /** Instance fingerprint. */
                    public fingerprint?: (string|null);

                    /** Instance guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1beta.IAcceleratorConfig[];

                    /** Instance hostname. */
                    public hostname?: (string|null);

                    /** Instance id. */
                    public id?: (number|Long|string|null);

                    /** Instance instanceEncryptionKey. */
                    public instanceEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Instance keyRevocationActionType. */
                    public keyRevocationActionType?: (string|null);

                    /** Instance kind. */
                    public kind?: (string|null);

                    /** Instance labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Instance labels. */
                    public labels: { [k: string]: string };

                    /** Instance lastStartTimestamp. */
                    public lastStartTimestamp?: (string|null);

                    /** Instance lastStopTimestamp. */
                    public lastStopTimestamp?: (string|null);

                    /** Instance lastSuspendedTimestamp. */
                    public lastSuspendedTimestamp?: (string|null);

                    /** Instance machineType. */
                    public machineType?: (string|null);

                    /** Instance metadata. */
                    public metadata?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** Instance minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /** Instance name. */
                    public name?: (string|null);

                    /** Instance networkInterfaces. */
                    public networkInterfaces: google.cloud.compute.v1beta.INetworkInterface[];

                    /** Instance networkPerformanceConfig. */
                    public networkPerformanceConfig?: (google.cloud.compute.v1beta.INetworkPerformanceConfig|null);

                    /** Instance params. */
                    public params?: (google.cloud.compute.v1beta.IInstanceParams|null);

                    /** Instance partnerMetadata. */
                    public partnerMetadata: { [k: string]: google.cloud.compute.v1beta.IStructuredEntries };

                    /** Instance postKeyRevocationActionType. */
                    public postKeyRevocationActionType?: (string|null);

                    /** Instance privateIpv6GoogleAccess. */
                    public privateIpv6GoogleAccess?: (string|null);

                    /** Instance reservationAffinity. */
                    public reservationAffinity?: (google.cloud.compute.v1beta.IReservationAffinity|null);

                    /** Instance resourcePolicies. */
                    public resourcePolicies: string[];

                    /** Instance resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1beta.IResourceStatus|null);

                    /** Instance satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Instance satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Instance scheduling. */
                    public scheduling?: (google.cloud.compute.v1beta.IScheduling|null);

                    /** Instance selfLink. */
                    public selfLink?: (string|null);

                    /** Instance serviceAccounts. */
                    public serviceAccounts: google.cloud.compute.v1beta.IServiceAccount[];

                    /** Instance shieldedInstanceConfig. */
                    public shieldedInstanceConfig?: (google.cloud.compute.v1beta.IShieldedInstanceConfig|null);

                    /** Instance shieldedInstanceIntegrityPolicy. */
                    public shieldedInstanceIntegrityPolicy?: (google.cloud.compute.v1beta.IShieldedInstanceIntegrityPolicy|null);

                    /** Instance shieldedVmConfig. */
                    public shieldedVmConfig?: (google.cloud.compute.v1beta.IShieldedVmConfig|null);

                    /** Instance shieldedVmIntegrityPolicy. */
                    public shieldedVmIntegrityPolicy?: (google.cloud.compute.v1beta.IShieldedVmIntegrityPolicy|null);

                    /** Instance sourceMachineImage. */
                    public sourceMachineImage?: (string|null);

                    /** Instance sourceMachineImageEncryptionKey. */
                    public sourceMachineImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Instance startRestricted. */
                    public startRestricted?: (boolean|null);

                    /** Instance status. */
                    public status?: (string|null);

                    /** Instance statusMessage. */
                    public statusMessage?: (string|null);

                    /** Instance tags. */
                    public tags?: (google.cloud.compute.v1beta.ITags|null);

                    /** Instance workloadIdentityConfig. */
                    public workloadIdentityConfig?: (google.cloud.compute.v1beta.IWorkloadIdentityConfig|null);

                    /** Instance zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Instance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Instance instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstance): google.cloud.compute.v1beta.Instance;

                    /**
                     * Encodes the specified Instance message. Does not implicitly {@link google.cloud.compute.v1beta.Instance.verify|verify} messages.
                     * @param message Instance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Instance message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Instance.verify|verify} messages.
                     * @param message Instance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Instance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Instance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Instance;

                    /**
                     * Decodes an Instance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Instance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Instance;

                    /**
                     * Verifies an Instance message.
                     * @param message Plain 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 Instance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Instance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Instance;

                    /**
                     * Creates a plain object from an Instance message. Also converts values to other types if specified.
                     * @param message Instance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Instance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Instance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Instance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Instance {

                    /** KeyRevocationActionType enum. */
                    enum KeyRevocationActionType {
                        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0,
                        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106,
                        NONE = 2402104,
                        STOP = 2555906
                    }

                    /** PostKeyRevocationActionType enum. */
                    enum PostKeyRevocationActionType {
                        UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE = 0,
                        NOOP = 2402146,
                        POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 228738393,
                        SHUTDOWN = 76412502
                    }

                    /** PrivateIpv6GoogleAccess enum. */
                    enum PrivateIpv6GoogleAccess {
                        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0,
                        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994,
                        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263,
                        INHERIT_FROM_SUBNETWORK = 530256959
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DEPROVISIONING = 428935662,
                        PENDING = 35394935,
                        PENDING_STOP = 362509770,
                        PROVISIONING = 290896621,
                        REPAIRING = 413483285,
                        RUNNING = 121282975,
                        STAGING = 431072283,
                        STOPPED = 444276141,
                        STOPPING = 350791796,
                        SUSPENDED = 51223995,
                        SUSPENDING = 514206246,
                        TERMINATED = 250018339
                    }
                }

                /** Properties of an InstanceAggregatedList. */
                interface IInstanceAggregatedList {

                    /** InstanceAggregatedList id */
                    id?: (string|null);

                    /** InstanceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IInstancesScopedList }|null);

                    /** InstanceAggregatedList kind */
                    kind?: (string|null);

                    /** InstanceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstanceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InstanceAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceAggregatedList. */
                class InstanceAggregatedList implements IInstanceAggregatedList {

                    /**
                     * Constructs a new InstanceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceAggregatedList);

                    /** InstanceAggregatedList id. */
                    public id?: (string|null);

                    /** InstanceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IInstancesScopedList };

                    /** InstanceAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstanceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InstanceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceAggregatedList): google.cloud.compute.v1beta.InstanceAggregatedList;

                    /**
                     * Encodes the specified InstanceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceAggregatedList.verify|verify} messages.
                     * @param message InstanceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceAggregatedList.verify|verify} messages.
                     * @param message InstanceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceAggregatedList;

                    /**
                     * Decodes an InstanceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceAggregatedList;

                    /**
                     * Verifies an InstanceAggregatedList message.
                     * @param message Plain 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 InstanceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceAggregatedList;

                    /**
                     * Creates a plain object from an InstanceAggregatedList message. Also converts values to other types if specified.
                     * @param message InstanceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceConsumptionData. */
                interface IInstanceConsumptionData {

                    /** InstanceConsumptionData consumptionInfo */
                    consumptionInfo?: (google.cloud.compute.v1beta.IInstanceConsumptionInfo|null);

                    /** InstanceConsumptionData instance */
                    instance?: (string|null);
                }

                /** Represents an InstanceConsumptionData. */
                class InstanceConsumptionData implements IInstanceConsumptionData {

                    /**
                     * Constructs a new InstanceConsumptionData.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceConsumptionData);

                    /** InstanceConsumptionData consumptionInfo. */
                    public consumptionInfo?: (google.cloud.compute.v1beta.IInstanceConsumptionInfo|null);

                    /** InstanceConsumptionData instance. */
                    public instance?: (string|null);

                    /**
                     * Creates a new InstanceConsumptionData instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceConsumptionData instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceConsumptionData): google.cloud.compute.v1beta.InstanceConsumptionData;

                    /**
                     * Encodes the specified InstanceConsumptionData message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceConsumptionData.verify|verify} messages.
                     * @param message InstanceConsumptionData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceConsumptionData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceConsumptionData message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceConsumptionData.verify|verify} messages.
                     * @param message InstanceConsumptionData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceConsumptionData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceConsumptionData message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceConsumptionData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceConsumptionData;

                    /**
                     * Decodes an InstanceConsumptionData message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceConsumptionData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceConsumptionData;

                    /**
                     * Verifies an InstanceConsumptionData message.
                     * @param message Plain 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 InstanceConsumptionData message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceConsumptionData
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceConsumptionData;

                    /**
                     * Creates a plain object from an InstanceConsumptionData message. Also converts values to other types if specified.
                     * @param message InstanceConsumptionData
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceConsumptionData, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceConsumptionData to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceConsumptionData
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceConsumptionInfo. */
                interface IInstanceConsumptionInfo {

                    /** InstanceConsumptionInfo guestCpus */
                    guestCpus?: (number|null);

                    /** InstanceConsumptionInfo localSsdGb */
                    localSsdGb?: (number|null);

                    /** InstanceConsumptionInfo memoryMb */
                    memoryMb?: (number|null);

                    /** InstanceConsumptionInfo minNodeCpus */
                    minNodeCpus?: (number|null);
                }

                /** Represents an InstanceConsumptionInfo. */
                class InstanceConsumptionInfo implements IInstanceConsumptionInfo {

                    /**
                     * Constructs a new InstanceConsumptionInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceConsumptionInfo);

                    /** InstanceConsumptionInfo guestCpus. */
                    public guestCpus?: (number|null);

                    /** InstanceConsumptionInfo localSsdGb. */
                    public localSsdGb?: (number|null);

                    /** InstanceConsumptionInfo memoryMb. */
                    public memoryMb?: (number|null);

                    /** InstanceConsumptionInfo minNodeCpus. */
                    public minNodeCpus?: (number|null);

                    /**
                     * Creates a new InstanceConsumptionInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceConsumptionInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceConsumptionInfo): google.cloud.compute.v1beta.InstanceConsumptionInfo;

                    /**
                     * Encodes the specified InstanceConsumptionInfo message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceConsumptionInfo.verify|verify} messages.
                     * @param message InstanceConsumptionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceConsumptionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceConsumptionInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceConsumptionInfo.verify|verify} messages.
                     * @param message InstanceConsumptionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceConsumptionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceConsumptionInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceConsumptionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceConsumptionInfo;

                    /**
                     * Decodes an InstanceConsumptionInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceConsumptionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceConsumptionInfo;

                    /**
                     * Verifies an InstanceConsumptionInfo message.
                     * @param message Plain 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 InstanceConsumptionInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceConsumptionInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceConsumptionInfo;

                    /**
                     * Creates a plain object from an InstanceConsumptionInfo message. Also converts values to other types if specified.
                     * @param message InstanceConsumptionInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceConsumptionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceConsumptionInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceConsumptionInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceFlexibilityPolicy. */
                interface IInstanceFlexibilityPolicy {

                    /** InstanceFlexibilityPolicy instanceSelections */
                    instanceSelections?: ({ [k: string]: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection }|null);
                }

                /** Represents an InstanceFlexibilityPolicy. */
                class InstanceFlexibilityPolicy implements IInstanceFlexibilityPolicy {

                    /**
                     * Constructs a new InstanceFlexibilityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceFlexibilityPolicy);

                    /** InstanceFlexibilityPolicy instanceSelections. */
                    public instanceSelections: { [k: string]: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection };

                    /**
                     * Creates a new InstanceFlexibilityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceFlexibilityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceFlexibilityPolicy): google.cloud.compute.v1beta.InstanceFlexibilityPolicy;

                    /**
                     * Encodes the specified InstanceFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicy.verify|verify} messages.
                     * @param message InstanceFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicy.verify|verify} messages.
                     * @param message InstanceFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceFlexibilityPolicy;

                    /**
                     * Decodes an InstanceFlexibilityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceFlexibilityPolicy;

                    /**
                     * Verifies an InstanceFlexibilityPolicy message.
                     * @param message Plain 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 InstanceFlexibilityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceFlexibilityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceFlexibilityPolicy;

                    /**
                     * Creates a plain object from an InstanceFlexibilityPolicy message. Also converts values to other types if specified.
                     * @param message InstanceFlexibilityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceFlexibilityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceFlexibilityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceFlexibilityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceFlexibilityPolicyInstanceSelection. */
                interface IInstanceFlexibilityPolicyInstanceSelection {

                    /** InstanceFlexibilityPolicyInstanceSelection disks */
                    disks?: (google.cloud.compute.v1beta.IAttachedDisk[]|null);

                    /** InstanceFlexibilityPolicyInstanceSelection machineTypes */
                    machineTypes?: (string[]|null);

                    /** InstanceFlexibilityPolicyInstanceSelection rank */
                    rank?: (number|Long|string|null);
                }

                /** Represents an InstanceFlexibilityPolicyInstanceSelection. */
                class InstanceFlexibilityPolicyInstanceSelection implements IInstanceFlexibilityPolicyInstanceSelection {

                    /**
                     * Constructs a new InstanceFlexibilityPolicyInstanceSelection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection);

                    /** InstanceFlexibilityPolicyInstanceSelection disks. */
                    public disks: google.cloud.compute.v1beta.IAttachedDisk[];

                    /** InstanceFlexibilityPolicyInstanceSelection machineTypes. */
                    public machineTypes: string[];

                    /** InstanceFlexibilityPolicyInstanceSelection rank. */
                    public rank?: (number|Long|string|null);

                    /**
                     * Creates a new InstanceFlexibilityPolicyInstanceSelection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceFlexibilityPolicyInstanceSelection instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection): google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages.
                     * @param message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceFlexibilityPolicyInstanceSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection.verify|verify} messages.
                     * @param message InstanceFlexibilityPolicyInstanceSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceFlexibilityPolicyInstanceSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Decodes an InstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceFlexibilityPolicyInstanceSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Verifies an InstanceFlexibilityPolicyInstanceSelection message.
                     * @param message Plain 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 InstanceFlexibilityPolicyInstanceSelection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceFlexibilityPolicyInstanceSelection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Creates a plain object from an InstanceFlexibilityPolicyInstanceSelection message. Also converts values to other types if specified.
                     * @param message InstanceFlexibilityPolicyInstanceSelection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceFlexibilityPolicyInstanceSelection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceFlexibilityPolicyInstanceSelection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceFlexibilityPolicyInstanceSelection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroup. */
                interface IInstanceGroup {

                    /** InstanceGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstanceGroup description */
                    description?: (string|null);

                    /** InstanceGroup fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceGroup id */
                    id?: (number|Long|string|null);

                    /** InstanceGroup kind */
                    kind?: (string|null);

                    /** InstanceGroup name */
                    name?: (string|null);

                    /** InstanceGroup namedPorts */
                    namedPorts?: (google.cloud.compute.v1beta.INamedPort[]|null);

                    /** InstanceGroup network */
                    network?: (string|null);

                    /** InstanceGroup region */
                    region?: (string|null);

                    /** InstanceGroup selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroup size */
                    size?: (number|null);

                    /** InstanceGroup subnetwork */
                    subnetwork?: (string|null);

                    /** InstanceGroup zone */
                    zone?: (string|null);
                }

                /** Represents an InstanceGroup. */
                class InstanceGroup implements IInstanceGroup {

                    /**
                     * Constructs a new InstanceGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroup);

                    /** InstanceGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstanceGroup description. */
                    public description?: (string|null);

                    /** InstanceGroup fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceGroup id. */
                    public id?: (number|Long|string|null);

                    /** InstanceGroup kind. */
                    public kind?: (string|null);

                    /** InstanceGroup name. */
                    public name?: (string|null);

                    /** InstanceGroup namedPorts. */
                    public namedPorts: google.cloud.compute.v1beta.INamedPort[];

                    /** InstanceGroup network. */
                    public network?: (string|null);

                    /** InstanceGroup region. */
                    public region?: (string|null);

                    /** InstanceGroup selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroup size. */
                    public size?: (number|null);

                    /** InstanceGroup subnetwork. */
                    public subnetwork?: (string|null);

                    /** InstanceGroup zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstanceGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroup): google.cloud.compute.v1beta.InstanceGroup;

                    /**
                     * Encodes the specified InstanceGroup message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroup.verify|verify} messages.
                     * @param message InstanceGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroup.verify|verify} messages.
                     * @param message InstanceGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroup;

                    /**
                     * Decodes an InstanceGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroup;

                    /**
                     * Verifies an InstanceGroup message.
                     * @param message Plain 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 InstanceGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroup;

                    /**
                     * Creates a plain object from an InstanceGroup message. Also converts values to other types if specified.
                     * @param message InstanceGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupAggregatedList. */
                interface IInstanceGroupAggregatedList {

                    /** InstanceGroupAggregatedList id */
                    id?: (string|null);

                    /** InstanceGroupAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IInstanceGroupsScopedList }|null);

                    /** InstanceGroupAggregatedList kind */
                    kind?: (string|null);

                    /** InstanceGroupAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InstanceGroupAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupAggregatedList. */
                class InstanceGroupAggregatedList implements IInstanceGroupAggregatedList {

                    /**
                     * Constructs a new InstanceGroupAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupAggregatedList);

                    /** InstanceGroupAggregatedList id. */
                    public id?: (string|null);

                    /** InstanceGroupAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IInstanceGroupsScopedList };

                    /** InstanceGroupAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstanceGroupAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InstanceGroupAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupAggregatedList): google.cloud.compute.v1beta.InstanceGroupAggregatedList;

                    /**
                     * Encodes the specified InstanceGroupAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupAggregatedList.verify|verify} messages.
                     * @param message InstanceGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupAggregatedList.verify|verify} messages.
                     * @param message InstanceGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupAggregatedList;

                    /**
                     * Decodes an InstanceGroupAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupAggregatedList;

                    /**
                     * Verifies an InstanceGroupAggregatedList message.
                     * @param message Plain 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 InstanceGroupAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupAggregatedList;

                    /**
                     * Creates a plain object from an InstanceGroupAggregatedList message. Also converts values to other types if specified.
                     * @param message InstanceGroupAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupList. */
                interface IInstanceGroupList {

                    /** InstanceGroupList id */
                    id?: (string|null);

                    /** InstanceGroupList items */
                    items?: (google.cloud.compute.v1beta.IInstanceGroup[]|null);

                    /** InstanceGroupList kind */
                    kind?: (string|null);

                    /** InstanceGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupList selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupList. */
                class InstanceGroupList implements IInstanceGroupList {

                    /**
                     * Constructs a new InstanceGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupList);

                    /** InstanceGroupList id. */
                    public id?: (string|null);

                    /** InstanceGroupList items. */
                    public items: google.cloud.compute.v1beta.IInstanceGroup[];

                    /** InstanceGroupList kind. */
                    public kind?: (string|null);

                    /** InstanceGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupList): google.cloud.compute.v1beta.InstanceGroupList;

                    /**
                     * Encodes the specified InstanceGroupList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupList.verify|verify} messages.
                     * @param message InstanceGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupList.verify|verify} messages.
                     * @param message InstanceGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupList;

                    /**
                     * Decodes an InstanceGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupList;

                    /**
                     * Verifies an InstanceGroupList message.
                     * @param message Plain 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 InstanceGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupList;

                    /**
                     * Creates a plain object from an InstanceGroupList message. Also converts values to other types if specified.
                     * @param message InstanceGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManager. */
                interface IInstanceGroupManager {

                    /** InstanceGroupManager allInstancesConfig */
                    allInstancesConfig?: (google.cloud.compute.v1beta.IInstanceGroupManagerAllInstancesConfig|null);

                    /** InstanceGroupManager autoHealingPolicies */
                    autoHealingPolicies?: (google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy[]|null);

                    /** InstanceGroupManager baseInstanceName */
                    baseInstanceName?: (string|null);

                    /** InstanceGroupManager creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstanceGroupManager currentActions */
                    currentActions?: (google.cloud.compute.v1beta.IInstanceGroupManagerActionsSummary|null);

                    /** InstanceGroupManager description */
                    description?: (string|null);

                    /** InstanceGroupManager distributionPolicy */
                    distributionPolicy?: (google.cloud.compute.v1beta.IDistributionPolicy|null);

                    /** InstanceGroupManager failoverAction */
                    failoverAction?: (string|null);

                    /** InstanceGroupManager fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceGroupManager id */
                    id?: (number|Long|string|null);

                    /** InstanceGroupManager instanceFlexibilityPolicy */
                    instanceFlexibilityPolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicy|null);

                    /** InstanceGroupManager instanceGroup */
                    instanceGroup?: (string|null);

                    /** InstanceGroupManager instanceLifecyclePolicy */
                    instanceLifecyclePolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicy|null);

                    /** InstanceGroupManager instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** InstanceGroupManager kind */
                    kind?: (string|null);

                    /** InstanceGroupManager listManagedInstancesResults */
                    listManagedInstancesResults?: (string|null);

                    /** InstanceGroupManager multiMig */
                    multiMig?: (string|null);

                    /** InstanceGroupManager name */
                    name?: (string|null);

                    /** InstanceGroupManager namedPorts */
                    namedPorts?: (google.cloud.compute.v1beta.INamedPort[]|null);

                    /** InstanceGroupManager params */
                    params?: (google.cloud.compute.v1beta.IInstanceGroupManagerParams|null);

                    /** InstanceGroupManager region */
                    region?: (string|null);

                    /** InstanceGroupManager resourcePolicies */
                    resourcePolicies?: (google.cloud.compute.v1beta.IInstanceGroupManagerResourcePolicies|null);

                    /** InstanceGroupManager satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** InstanceGroupManager satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** InstanceGroupManager selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManager serviceAccount */
                    serviceAccount?: (string|null);

                    /** InstanceGroupManager standbyPolicy */
                    standbyPolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerStandbyPolicy|null);

                    /** InstanceGroupManager statefulPolicy */
                    statefulPolicy?: (google.cloud.compute.v1beta.IStatefulPolicy|null);

                    /** InstanceGroupManager status */
                    status?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatus|null);

                    /** InstanceGroupManager targetPools */
                    targetPools?: (string[]|null);

                    /** InstanceGroupManager targetSize */
                    targetSize?: (number|null);

                    /** InstanceGroupManager targetSizePolicy */
                    targetSizePolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerTargetSizePolicy|null);

                    /** InstanceGroupManager targetStoppedSize */
                    targetStoppedSize?: (number|null);

                    /** InstanceGroupManager targetSuspendedSize */
                    targetSuspendedSize?: (number|null);

                    /** InstanceGroupManager updatePolicy */
                    updatePolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerUpdatePolicy|null);

                    /** InstanceGroupManager versions */
                    versions?: (google.cloud.compute.v1beta.IInstanceGroupManagerVersion[]|null);

                    /** InstanceGroupManager zone */
                    zone?: (string|null);
                }

                /** Represents an InstanceGroupManager. */
                class InstanceGroupManager implements IInstanceGroupManager {

                    /**
                     * Constructs a new InstanceGroupManager.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManager);

                    /** InstanceGroupManager allInstancesConfig. */
                    public allInstancesConfig?: (google.cloud.compute.v1beta.IInstanceGroupManagerAllInstancesConfig|null);

                    /** InstanceGroupManager autoHealingPolicies. */
                    public autoHealingPolicies: google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy[];

                    /** InstanceGroupManager baseInstanceName. */
                    public baseInstanceName?: (string|null);

                    /** InstanceGroupManager creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstanceGroupManager currentActions. */
                    public currentActions?: (google.cloud.compute.v1beta.IInstanceGroupManagerActionsSummary|null);

                    /** InstanceGroupManager description. */
                    public description?: (string|null);

                    /** InstanceGroupManager distributionPolicy. */
                    public distributionPolicy?: (google.cloud.compute.v1beta.IDistributionPolicy|null);

                    /** InstanceGroupManager failoverAction. */
                    public failoverAction?: (string|null);

                    /** InstanceGroupManager fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceGroupManager id. */
                    public id?: (number|Long|string|null);

                    /** InstanceGroupManager instanceFlexibilityPolicy. */
                    public instanceFlexibilityPolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicy|null);

                    /** InstanceGroupManager instanceGroup. */
                    public instanceGroup?: (string|null);

                    /** InstanceGroupManager instanceLifecyclePolicy. */
                    public instanceLifecyclePolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicy|null);

                    /** InstanceGroupManager instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /** InstanceGroupManager kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManager listManagedInstancesResults. */
                    public listManagedInstancesResults?: (string|null);

                    /** InstanceGroupManager multiMig. */
                    public multiMig?: (string|null);

                    /** InstanceGroupManager name. */
                    public name?: (string|null);

                    /** InstanceGroupManager namedPorts. */
                    public namedPorts: google.cloud.compute.v1beta.INamedPort[];

                    /** InstanceGroupManager params. */
                    public params?: (google.cloud.compute.v1beta.IInstanceGroupManagerParams|null);

                    /** InstanceGroupManager region. */
                    public region?: (string|null);

                    /** InstanceGroupManager resourcePolicies. */
                    public resourcePolicies?: (google.cloud.compute.v1beta.IInstanceGroupManagerResourcePolicies|null);

                    /** InstanceGroupManager satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** InstanceGroupManager satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** InstanceGroupManager selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManager serviceAccount. */
                    public serviceAccount?: (string|null);

                    /** InstanceGroupManager standbyPolicy. */
                    public standbyPolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerStandbyPolicy|null);

                    /** InstanceGroupManager statefulPolicy. */
                    public statefulPolicy?: (google.cloud.compute.v1beta.IStatefulPolicy|null);

                    /** InstanceGroupManager status. */
                    public status?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatus|null);

                    /** InstanceGroupManager targetPools. */
                    public targetPools: string[];

                    /** InstanceGroupManager targetSize. */
                    public targetSize?: (number|null);

                    /** InstanceGroupManager targetSizePolicy. */
                    public targetSizePolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerTargetSizePolicy|null);

                    /** InstanceGroupManager targetStoppedSize. */
                    public targetStoppedSize?: (number|null);

                    /** InstanceGroupManager targetSuspendedSize. */
                    public targetSuspendedSize?: (number|null);

                    /** InstanceGroupManager updatePolicy. */
                    public updatePolicy?: (google.cloud.compute.v1beta.IInstanceGroupManagerUpdatePolicy|null);

                    /** InstanceGroupManager versions. */
                    public versions: google.cloud.compute.v1beta.IInstanceGroupManagerVersion[];

                    /** InstanceGroupManager zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstanceGroupManager instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManager instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManager): google.cloud.compute.v1beta.InstanceGroupManager;

                    /**
                     * Encodes the specified InstanceGroupManager message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManager.verify|verify} messages.
                     * @param message InstanceGroupManager message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManager, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManager message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManager.verify|verify} messages.
                     * @param message InstanceGroupManager message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManager, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManager message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManager
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManager;

                    /**
                     * Decodes an InstanceGroupManager message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManager
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManager;

                    /**
                     * Verifies an InstanceGroupManager message.
                     * @param message Plain 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 InstanceGroupManager message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManager
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManager;

                    /**
                     * Creates a plain object from an InstanceGroupManager message. Also converts values to other types if specified.
                     * @param message InstanceGroupManager
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManager, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManager to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManager
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManager {

                    /** FailoverAction enum. */
                    enum FailoverAction {
                        UNDEFINED_FAILOVER_ACTION = 0,
                        NO_FAILOVER = 480957872,
                        UNKNOWN = 433141802
                    }

                    /** ListManagedInstancesResults enum. */
                    enum ListManagedInstancesResults {
                        UNDEFINED_LIST_MANAGED_INSTANCES_RESULTS = 0,
                        PAGELESS = 32183464,
                        PAGINATED = 40190637
                    }
                }

                /** Properties of an InstanceGroupManagerActionsSummary. */
                interface IInstanceGroupManagerActionsSummary {

                    /** InstanceGroupManagerActionsSummary abandoning */
                    abandoning?: (number|null);

                    /** InstanceGroupManagerActionsSummary adopting */
                    adopting?: (number|null);

                    /** InstanceGroupManagerActionsSummary creating */
                    creating?: (number|null);

                    /** InstanceGroupManagerActionsSummary creatingWithoutRetries */
                    creatingWithoutRetries?: (number|null);

                    /** InstanceGroupManagerActionsSummary deleting */
                    deleting?: (number|null);

                    /** InstanceGroupManagerActionsSummary none */
                    none?: (number|null);

                    /** InstanceGroupManagerActionsSummary recreating */
                    recreating?: (number|null);

                    /** InstanceGroupManagerActionsSummary refreshing */
                    refreshing?: (number|null);

                    /** InstanceGroupManagerActionsSummary restarting */
                    restarting?: (number|null);

                    /** InstanceGroupManagerActionsSummary resuming */
                    resuming?: (number|null);

                    /** InstanceGroupManagerActionsSummary starting */
                    starting?: (number|null);

                    /** InstanceGroupManagerActionsSummary stopping */
                    stopping?: (number|null);

                    /** InstanceGroupManagerActionsSummary suspending */
                    suspending?: (number|null);

                    /** InstanceGroupManagerActionsSummary verifying */
                    verifying?: (number|null);
                }

                /** Represents an InstanceGroupManagerActionsSummary. */
                class InstanceGroupManagerActionsSummary implements IInstanceGroupManagerActionsSummary {

                    /**
                     * Constructs a new InstanceGroupManagerActionsSummary.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerActionsSummary);

                    /** InstanceGroupManagerActionsSummary abandoning. */
                    public abandoning?: (number|null);

                    /** InstanceGroupManagerActionsSummary adopting. */
                    public adopting?: (number|null);

                    /** InstanceGroupManagerActionsSummary creating. */
                    public creating?: (number|null);

                    /** InstanceGroupManagerActionsSummary creatingWithoutRetries. */
                    public creatingWithoutRetries?: (number|null);

                    /** InstanceGroupManagerActionsSummary deleting. */
                    public deleting?: (number|null);

                    /** InstanceGroupManagerActionsSummary none. */
                    public none?: (number|null);

                    /** InstanceGroupManagerActionsSummary recreating. */
                    public recreating?: (number|null);

                    /** InstanceGroupManagerActionsSummary refreshing. */
                    public refreshing?: (number|null);

                    /** InstanceGroupManagerActionsSummary restarting. */
                    public restarting?: (number|null);

                    /** InstanceGroupManagerActionsSummary resuming. */
                    public resuming?: (number|null);

                    /** InstanceGroupManagerActionsSummary starting. */
                    public starting?: (number|null);

                    /** InstanceGroupManagerActionsSummary stopping. */
                    public stopping?: (number|null);

                    /** InstanceGroupManagerActionsSummary suspending. */
                    public suspending?: (number|null);

                    /** InstanceGroupManagerActionsSummary verifying. */
                    public verifying?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagerActionsSummary instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerActionsSummary instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerActionsSummary): google.cloud.compute.v1beta.InstanceGroupManagerActionsSummary;

                    /**
                     * Encodes the specified InstanceGroupManagerActionsSummary message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerActionsSummary.verify|verify} messages.
                     * @param message InstanceGroupManagerActionsSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerActionsSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerActionsSummary message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerActionsSummary.verify|verify} messages.
                     * @param message InstanceGroupManagerActionsSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerActionsSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerActionsSummary message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerActionsSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerActionsSummary;

                    /**
                     * Decodes an InstanceGroupManagerActionsSummary message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerActionsSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerActionsSummary;

                    /**
                     * Verifies an InstanceGroupManagerActionsSummary message.
                     * @param message Plain 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 InstanceGroupManagerActionsSummary message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerActionsSummary
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerActionsSummary;

                    /**
                     * Creates a plain object from an InstanceGroupManagerActionsSummary message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerActionsSummary
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerActionsSummary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerActionsSummary to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerActionsSummary
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerAggregatedList. */
                interface IInstanceGroupManagerAggregatedList {

                    /** InstanceGroupManagerAggregatedList id */
                    id?: (string|null);

                    /** InstanceGroupManagerAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IInstanceGroupManagersScopedList }|null);

                    /** InstanceGroupManagerAggregatedList kind */
                    kind?: (string|null);

                    /** InstanceGroupManagerAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupManagerAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManagerAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InstanceGroupManagerAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupManagerAggregatedList. */
                class InstanceGroupManagerAggregatedList implements IInstanceGroupManagerAggregatedList {

                    /**
                     * Constructs a new InstanceGroupManagerAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerAggregatedList);

                    /** InstanceGroupManagerAggregatedList id. */
                    public id?: (string|null);

                    /** InstanceGroupManagerAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IInstanceGroupManagersScopedList };

                    /** InstanceGroupManagerAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManagerAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupManagerAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManagerAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InstanceGroupManagerAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagerAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerAggregatedList): google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList;

                    /**
                     * Encodes the specified InstanceGroupManagerAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList.verify|verify} messages.
                     * @param message InstanceGroupManagerAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList.verify|verify} messages.
                     * @param message InstanceGroupManagerAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList;

                    /**
                     * Decodes an InstanceGroupManagerAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList;

                    /**
                     * Verifies an InstanceGroupManagerAggregatedList message.
                     * @param message Plain 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 InstanceGroupManagerAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList;

                    /**
                     * Creates a plain object from an InstanceGroupManagerAggregatedList message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerAllInstancesConfig. */
                interface IInstanceGroupManagerAllInstancesConfig {

                    /** InstanceGroupManagerAllInstancesConfig properties */
                    properties?: (google.cloud.compute.v1beta.IInstancePropertiesPatch|null);
                }

                /** Represents an InstanceGroupManagerAllInstancesConfig. */
                class InstanceGroupManagerAllInstancesConfig implements IInstanceGroupManagerAllInstancesConfig {

                    /**
                     * Constructs a new InstanceGroupManagerAllInstancesConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerAllInstancesConfig);

                    /** InstanceGroupManagerAllInstancesConfig properties. */
                    public properties?: (google.cloud.compute.v1beta.IInstancePropertiesPatch|null);

                    /**
                     * Creates a new InstanceGroupManagerAllInstancesConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerAllInstancesConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerAllInstancesConfig): google.cloud.compute.v1beta.InstanceGroupManagerAllInstancesConfig;

                    /**
                     * Encodes the specified InstanceGroupManagerAllInstancesConfig message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerAllInstancesConfig.verify|verify} messages.
                     * @param message InstanceGroupManagerAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerAllInstancesConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerAllInstancesConfig.verify|verify} messages.
                     * @param message InstanceGroupManagerAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerAllInstancesConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerAllInstancesConfig;

                    /**
                     * Decodes an InstanceGroupManagerAllInstancesConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerAllInstancesConfig;

                    /**
                     * Verifies an InstanceGroupManagerAllInstancesConfig message.
                     * @param message Plain 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 InstanceGroupManagerAllInstancesConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerAllInstancesConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerAllInstancesConfig;

                    /**
                     * Creates a plain object from an InstanceGroupManagerAllInstancesConfig message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerAllInstancesConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerAllInstancesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerAllInstancesConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerAllInstancesConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerAutoHealingPolicy. */
                interface IInstanceGroupManagerAutoHealingPolicy {

                    /** InstanceGroupManagerAutoHealingPolicy healthCheck */
                    healthCheck?: (string|null);

                    /** InstanceGroupManagerAutoHealingPolicy initialDelaySec */
                    initialDelaySec?: (number|null);
                }

                /** Represents an InstanceGroupManagerAutoHealingPolicy. */
                class InstanceGroupManagerAutoHealingPolicy implements IInstanceGroupManagerAutoHealingPolicy {

                    /**
                     * Constructs a new InstanceGroupManagerAutoHealingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy);

                    /** InstanceGroupManagerAutoHealingPolicy healthCheck. */
                    public healthCheck?: (string|null);

                    /** InstanceGroupManagerAutoHealingPolicy initialDelaySec. */
                    public initialDelaySec?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagerAutoHealingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerAutoHealingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy): google.cloud.compute.v1beta.InstanceGroupManagerAutoHealingPolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerAutoHealingPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerAutoHealingPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerAutoHealingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerAutoHealingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerAutoHealingPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerAutoHealingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerAutoHealingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerAutoHealingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerAutoHealingPolicy;

                    /**
                     * Decodes an InstanceGroupManagerAutoHealingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerAutoHealingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerAutoHealingPolicy;

                    /**
                     * Verifies an InstanceGroupManagerAutoHealingPolicy message.
                     * @param message Plain 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 InstanceGroupManagerAutoHealingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerAutoHealingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerAutoHealingPolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerAutoHealingPolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerAutoHealingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerAutoHealingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerAutoHealingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerAutoHealingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerInstanceFlexibilityPolicy. */
                interface IInstanceGroupManagerInstanceFlexibilityPolicy {

                    /** InstanceGroupManagerInstanceFlexibilityPolicy instanceSelections */
                    instanceSelections?: ({ [k: string]: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection }|null);

                    /** InstanceGroupManagerInstanceFlexibilityPolicy provisioningModelMix */
                    provisioningModelMix?: (google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix|null);
                }

                /** Represents an InstanceGroupManagerInstanceFlexibilityPolicy. */
                class InstanceGroupManagerInstanceFlexibilityPolicy implements IInstanceGroupManagerInstanceFlexibilityPolicy {

                    /**
                     * Constructs a new InstanceGroupManagerInstanceFlexibilityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicy);

                    /** InstanceGroupManagerInstanceFlexibilityPolicy instanceSelections. */
                    public instanceSelections: { [k: string]: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection };

                    /** InstanceGroupManagerInstanceFlexibilityPolicy provisioningModelMix. */
                    public provisioningModelMix?: (google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix|null);

                    /**
                     * Creates a new InstanceGroupManagerInstanceFlexibilityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicy): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicy;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicy;

                    /**
                     * Verifies an InstanceGroupManagerInstanceFlexibilityPolicy message.
                     * @param message Plain 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 InstanceGroupManagerInstanceFlexibilityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerInstanceFlexibilityPolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerInstanceFlexibilityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerInstanceFlexibilityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection. */
                interface IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection {

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection disks */
                    disks?: (google.cloud.compute.v1beta.IAttachedDisk[]|null);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection machineTypes */
                    machineTypes?: (string[]|null);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection minCpuPlatform */
                    minCpuPlatform?: (string|null);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection rank */
                    rank?: (number|null);
                }

                /** Represents an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection. */
                class InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection implements IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection {

                    /**
                     * Constructs a new InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection disks. */
                    public disks: google.cloud.compute.v1beta.IAttachedDisk[];

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection machineTypes. */
                    public machineTypes: string[];

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection rank. */
                    public rank?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Verifies an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message.
                     * @param message Plain 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 InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection;

                    /**
                     * Creates a plain object from an InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix. */
                interface IInstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix {

                    /** InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix standardCapacityBase */
                    standardCapacityBase?: (number|null);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix standardCapacityPercentAboveBase */
                    standardCapacityPercentAboveBase?: (number|null);
                }

                /** Represents an InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix. */
                class InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix implements IInstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix {

                    /**
                     * Constructs a new InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix standardCapacityBase. */
                    public standardCapacityBase?: (number|null);

                    /** InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix standardCapacityPercentAboveBase. */
                    public standardCapacityPercentAboveBase?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix;

                    /**
                     * Decodes an InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix;

                    /**
                     * Verifies an InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message.
                     * @param message Plain 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 InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix;

                    /**
                     * Creates a plain object from an InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerInstanceLifecyclePolicy. */
                interface IInstanceGroupManagerInstanceLifecyclePolicy {

                    /** InstanceGroupManagerInstanceLifecyclePolicy defaultActionOnFailure */
                    defaultActionOnFailure?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy forceUpdateOnRepair */
                    forceUpdateOnRepair?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy onFailedHealthCheck */
                    onFailedHealthCheck?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy onRepair */
                    onRepair?: (google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicyOnRepair|null);
                }

                /** Represents an InstanceGroupManagerInstanceLifecyclePolicy. */
                class InstanceGroupManagerInstanceLifecyclePolicy implements IInstanceGroupManagerInstanceLifecyclePolicy {

                    /**
                     * Constructs a new InstanceGroupManagerInstanceLifecyclePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicy);

                    /** InstanceGroupManagerInstanceLifecyclePolicy defaultActionOnFailure. */
                    public defaultActionOnFailure?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy forceUpdateOnRepair. */
                    public forceUpdateOnRepair?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy onFailedHealthCheck. */
                    public onFailedHealthCheck?: (string|null);

                    /** InstanceGroupManagerInstanceLifecyclePolicy onRepair. */
                    public onRepair?: (google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicyOnRepair|null);

                    /**
                     * Creates a new InstanceGroupManagerInstanceLifecyclePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerInstanceLifecyclePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicy): google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceLifecyclePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceLifecyclePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerInstanceLifecyclePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerInstanceLifecyclePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicy;

                    /**
                     * Decodes an InstanceGroupManagerInstanceLifecyclePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerInstanceLifecyclePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicy;

                    /**
                     * Verifies an InstanceGroupManagerInstanceLifecyclePolicy message.
                     * @param message Plain 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 InstanceGroupManagerInstanceLifecyclePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerInstanceLifecyclePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerInstanceLifecyclePolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerInstanceLifecyclePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerInstanceLifecyclePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerInstanceLifecyclePolicy {

                    /** DefaultActionOnFailure enum. */
                    enum DefaultActionOnFailure {
                        UNDEFINED_DEFAULT_ACTION_ON_FAILURE = 0,
                        DELETE = 402225579,
                        DO_NOTHING = 451307513,
                        REPAIR = 266277773
                    }

                    /** ForceUpdateOnRepair enum. */
                    enum ForceUpdateOnRepair {
                        UNDEFINED_FORCE_UPDATE_ON_REPAIR = 0,
                        NO = 2497,
                        YES = 87751
                    }

                    /** OnFailedHealthCheck enum. */
                    enum OnFailedHealthCheck {
                        UNDEFINED_ON_FAILED_HEALTH_CHECK = 0,
                        DEFAULT_ACTION = 463967764
                    }
                }

                /** Properties of an InstanceGroupManagerInstanceLifecyclePolicyOnRepair. */
                interface IInstanceGroupManagerInstanceLifecyclePolicyOnRepair {

                    /** InstanceGroupManagerInstanceLifecyclePolicyOnRepair allowChangingZone */
                    allowChangingZone?: (string|null);
                }

                /** Represents an InstanceGroupManagerInstanceLifecyclePolicyOnRepair. */
                class InstanceGroupManagerInstanceLifecyclePolicyOnRepair implements IInstanceGroupManagerInstanceLifecyclePolicyOnRepair {

                    /**
                     * Constructs a new InstanceGroupManagerInstanceLifecyclePolicyOnRepair.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicyOnRepair);

                    /** InstanceGroupManagerInstanceLifecyclePolicyOnRepair allowChangingZone. */
                    public allowChangingZone?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerInstanceLifecyclePolicyOnRepair instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerInstanceLifecyclePolicyOnRepair instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicyOnRepair): google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicyOnRepair;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceLifecyclePolicyOnRepair message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicyOnRepair.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicyOnRepair message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicyOnRepair, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerInstanceLifecyclePolicyOnRepair message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicyOnRepair.verify|verify} messages.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicyOnRepair message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerInstanceLifecyclePolicyOnRepair, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerInstanceLifecyclePolicyOnRepair message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerInstanceLifecyclePolicyOnRepair
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicyOnRepair;

                    /**
                     * Decodes an InstanceGroupManagerInstanceLifecyclePolicyOnRepair message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerInstanceLifecyclePolicyOnRepair
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicyOnRepair;

                    /**
                     * Verifies an InstanceGroupManagerInstanceLifecyclePolicyOnRepair message.
                     * @param message Plain 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 InstanceGroupManagerInstanceLifecyclePolicyOnRepair message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerInstanceLifecyclePolicyOnRepair
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicyOnRepair;

                    /**
                     * Creates a plain object from an InstanceGroupManagerInstanceLifecyclePolicyOnRepair message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerInstanceLifecyclePolicyOnRepair
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerInstanceLifecyclePolicyOnRepair, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerInstanceLifecyclePolicyOnRepair to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerInstanceLifecyclePolicyOnRepair
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerInstanceLifecyclePolicyOnRepair {

                    /** AllowChangingZone enum. */
                    enum AllowChangingZone {
                        UNDEFINED_ALLOW_CHANGING_ZONE = 0,
                        NO = 2497,
                        YES = 87751
                    }
                }

                /** Properties of an InstanceGroupManagerList. */
                interface IInstanceGroupManagerList {

                    /** InstanceGroupManagerList id */
                    id?: (string|null);

                    /** InstanceGroupManagerList items */
                    items?: (google.cloud.compute.v1beta.IInstanceGroupManager[]|null);

                    /** InstanceGroupManagerList kind */
                    kind?: (string|null);

                    /** InstanceGroupManagerList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupManagerList selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManagerList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupManagerList. */
                class InstanceGroupManagerList implements IInstanceGroupManagerList {

                    /**
                     * Constructs a new InstanceGroupManagerList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerList);

                    /** InstanceGroupManagerList id. */
                    public id?: (string|null);

                    /** InstanceGroupManagerList items. */
                    public items: google.cloud.compute.v1beta.IInstanceGroupManager[];

                    /** InstanceGroupManagerList kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManagerList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupManagerList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManagerList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagerList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerList): google.cloud.compute.v1beta.InstanceGroupManagerList;

                    /**
                     * Encodes the specified InstanceGroupManagerList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerList.verify|verify} messages.
                     * @param message InstanceGroupManagerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerList.verify|verify} messages.
                     * @param message InstanceGroupManagerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerList;

                    /**
                     * Decodes an InstanceGroupManagerList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerList;

                    /**
                     * Verifies an InstanceGroupManagerList message.
                     * @param message Plain 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 InstanceGroupManagerList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerList;

                    /**
                     * Creates a plain object from an InstanceGroupManagerList message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerParams. */
                interface IInstanceGroupManagerParams {

                    /** InstanceGroupManagerParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InstanceGroupManagerParams. */
                class InstanceGroupManagerParams implements IInstanceGroupManagerParams {

                    /**
                     * Constructs a new InstanceGroupManagerParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerParams);

                    /** InstanceGroupManagerParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InstanceGroupManagerParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerParams): google.cloud.compute.v1beta.InstanceGroupManagerParams;

                    /**
                     * Encodes the specified InstanceGroupManagerParams message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerParams.verify|verify} messages.
                     * @param message InstanceGroupManagerParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerParams.verify|verify} messages.
                     * @param message InstanceGroupManagerParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerParams;

                    /**
                     * Decodes an InstanceGroupManagerParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerParams;

                    /**
                     * Verifies an InstanceGroupManagerParams message.
                     * @param message Plain 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 InstanceGroupManagerParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerParams;

                    /**
                     * Creates a plain object from an InstanceGroupManagerParams message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerResizeRequest. */
                interface IInstanceGroupManagerResizeRequest {

                    /** InstanceGroupManagerResizeRequest count */
                    count?: (number|null);

                    /** InstanceGroupManagerResizeRequest creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstanceGroupManagerResizeRequest description */
                    description?: (string|null);

                    /** InstanceGroupManagerResizeRequest id */
                    id?: (number|Long|string|null);

                    /** InstanceGroupManagerResizeRequest instances */
                    instances?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);

                    /** InstanceGroupManagerResizeRequest kind */
                    kind?: (string|null);

                    /** InstanceGroupManagerResizeRequest name */
                    name?: (string|null);

                    /** InstanceGroupManagerResizeRequest region */
                    region?: (string|null);

                    /** InstanceGroupManagerResizeRequest requestedRunDuration */
                    requestedRunDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** InstanceGroupManagerResizeRequest resizeBy */
                    resizeBy?: (number|null);

                    /** InstanceGroupManagerResizeRequest selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManagerResizeRequest selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** InstanceGroupManagerResizeRequest state */
                    state?: (string|null);

                    /** InstanceGroupManagerResizeRequest status */
                    status?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatus|null);

                    /** InstanceGroupManagerResizeRequest zone */
                    zone?: (string|null);
                }

                /** Represents an InstanceGroupManagerResizeRequest. */
                class InstanceGroupManagerResizeRequest implements IInstanceGroupManagerResizeRequest {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest);

                    /** InstanceGroupManagerResizeRequest count. */
                    public count?: (number|null);

                    /** InstanceGroupManagerResizeRequest creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstanceGroupManagerResizeRequest description. */
                    public description?: (string|null);

                    /** InstanceGroupManagerResizeRequest id. */
                    public id?: (number|Long|string|null);

                    /** InstanceGroupManagerResizeRequest instances. */
                    public instances: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /** InstanceGroupManagerResizeRequest kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManagerResizeRequest name. */
                    public name?: (string|null);

                    /** InstanceGroupManagerResizeRequest region. */
                    public region?: (string|null);

                    /** InstanceGroupManagerResizeRequest requestedRunDuration. */
                    public requestedRunDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** InstanceGroupManagerResizeRequest resizeBy. */
                    public resizeBy?: (number|null);

                    /** InstanceGroupManagerResizeRequest selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManagerResizeRequest selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** InstanceGroupManagerResizeRequest state. */
                    public state?: (string|null);

                    /** InstanceGroupManagerResizeRequest status. */
                    public status?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatus|null);

                    /** InstanceGroupManagerResizeRequest zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerResizeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResizeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest;

                    /**
                     * Verifies an InstanceGroupManagerResizeRequest message.
                     * @param message Plain 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 InstanceGroupManagerResizeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResizeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResizeRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResizeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResizeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResizeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerResizeRequest {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACCEPTED = 246714279,
                        CANCELLED = 41957681,
                        CREATING = 455564985,
                        FAILED = 455706685,
                        PROVISIONING = 290896621,
                        STATE_UNSPECIFIED = 470755401,
                        SUCCEEDED = 511103553
                    }
                }

                /** Properties of an InstanceGroupManagerResizeRequestStatus. */
                interface IInstanceGroupManagerResizeRequestStatus {

                    /** InstanceGroupManagerResizeRequestStatus error */
                    error?: (google.cloud.compute.v1beta.IError|null);

                    /** InstanceGroupManagerResizeRequestStatus lastAttempt */
                    lastAttempt?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatusLastAttempt|null);
                }

                /** Represents an InstanceGroupManagerResizeRequestStatus. */
                class InstanceGroupManagerResizeRequestStatus implements IInstanceGroupManagerResizeRequestStatus {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequestStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatus);

                    /** InstanceGroupManagerResizeRequestStatus error. */
                    public error?: (google.cloud.compute.v1beta.IError|null);

                    /** InstanceGroupManagerResizeRequestStatus lastAttempt. */
                    public lastAttempt?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatusLastAttempt|null);

                    /**
                     * Creates a new InstanceGroupManagerResizeRequestStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResizeRequestStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatus): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatus;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatus.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatus.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResizeRequestStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatus;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResizeRequestStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatus;

                    /**
                     * Verifies an InstanceGroupManagerResizeRequestStatus message.
                     * @param message Plain 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 InstanceGroupManagerResizeRequestStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResizeRequestStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatus;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResizeRequestStatus message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResizeRequestStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResizeRequestStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResizeRequestStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerResizeRequestStatusLastAttempt. */
                interface IInstanceGroupManagerResizeRequestStatusLastAttempt {

                    /** InstanceGroupManagerResizeRequestStatusLastAttempt error */
                    error?: (google.cloud.compute.v1beta.IError|null);
                }

                /** Represents an InstanceGroupManagerResizeRequestStatusLastAttempt. */
                class InstanceGroupManagerResizeRequestStatusLastAttempt implements IInstanceGroupManagerResizeRequestStatusLastAttempt {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequestStatusLastAttempt.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatusLastAttempt);

                    /** InstanceGroupManagerResizeRequestStatusLastAttempt error. */
                    public error?: (google.cloud.compute.v1beta.IError|null);

                    /**
                     * Creates a new InstanceGroupManagerResizeRequestStatusLastAttempt instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResizeRequestStatusLastAttempt instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatusLastAttempt): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatusLastAttempt;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestStatusLastAttempt message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatusLastAttempt.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestStatusLastAttempt message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatusLastAttempt, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestStatusLastAttempt message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatusLastAttempt.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestStatusLastAttempt message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestStatusLastAttempt, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestStatusLastAttempt message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResizeRequestStatusLastAttempt
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatusLastAttempt;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestStatusLastAttempt message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResizeRequestStatusLastAttempt
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatusLastAttempt;

                    /**
                     * Verifies an InstanceGroupManagerResizeRequestStatusLastAttempt message.
                     * @param message Plain 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 InstanceGroupManagerResizeRequestStatusLastAttempt message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResizeRequestStatusLastAttempt
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatusLastAttempt;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResizeRequestStatusLastAttempt message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResizeRequestStatusLastAttempt
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestStatusLastAttempt, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResizeRequestStatusLastAttempt to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResizeRequestStatusLastAttempt
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerResizeRequestsListResponse. */
                interface IInstanceGroupManagerResizeRequestsListResponse {

                    /** InstanceGroupManagerResizeRequestsListResponse id */
                    id?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse items */
                    items?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest[]|null);

                    /** InstanceGroupManagerResizeRequestsListResponse kind */
                    kind?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupManagerResizeRequestsListResponse. */
                class InstanceGroupManagerResizeRequestsListResponse implements IInstanceGroupManagerResizeRequestsListResponse {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequestsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestsListResponse);

                    /** InstanceGroupManagerResizeRequestsListResponse id. */
                    public id?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse items. */
                    public items: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest[];

                    /** InstanceGroupManagerResizeRequestsListResponse kind. */
                    public kind?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupManagerResizeRequestsListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagerResizeRequestsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResizeRequestsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestsListResponse): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestsListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResizeRequestsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse.verify|verify} messages.
                     * @param message InstanceGroupManagerResizeRequestsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequestsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResizeRequestsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Decodes an InstanceGroupManagerResizeRequestsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResizeRequestsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Verifies an InstanceGroupManagerResizeRequestsListResponse message.
                     * @param message Plain 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 InstanceGroupManagerResizeRequestsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResizeRequestsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResizeRequestsListResponse message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResizeRequestsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResizeRequestsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResizeRequestsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerResourcePolicies. */
                interface IInstanceGroupManagerResourcePolicies {

                    /** InstanceGroupManagerResourcePolicies workloadPolicy */
                    workloadPolicy?: (string|null);
                }

                /** Represents an InstanceGroupManagerResourcePolicies. */
                class InstanceGroupManagerResourcePolicies implements IInstanceGroupManagerResourcePolicies {

                    /**
                     * Constructs a new InstanceGroupManagerResourcePolicies.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResourcePolicies);

                    /** InstanceGroupManagerResourcePolicies workloadPolicy. */
                    public workloadPolicy?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerResourcePolicies instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerResourcePolicies instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerResourcePolicies): google.cloud.compute.v1beta.InstanceGroupManagerResourcePolicies;

                    /**
                     * Encodes the specified InstanceGroupManagerResourcePolicies message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResourcePolicies.verify|verify} messages.
                     * @param message InstanceGroupManagerResourcePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerResourcePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerResourcePolicies message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerResourcePolicies.verify|verify} messages.
                     * @param message InstanceGroupManagerResourcePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerResourcePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerResourcePolicies message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerResourcePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerResourcePolicies;

                    /**
                     * Decodes an InstanceGroupManagerResourcePolicies message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerResourcePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerResourcePolicies;

                    /**
                     * Verifies an InstanceGroupManagerResourcePolicies message.
                     * @param message Plain 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 InstanceGroupManagerResourcePolicies message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerResourcePolicies
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerResourcePolicies;

                    /**
                     * Creates a plain object from an InstanceGroupManagerResourcePolicies message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerResourcePolicies
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerResourcePolicies, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerResourcePolicies to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerResourcePolicies
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStandbyPolicy. */
                interface IInstanceGroupManagerStandbyPolicy {

                    /** InstanceGroupManagerStandbyPolicy initialDelaySec */
                    initialDelaySec?: (number|null);

                    /** InstanceGroupManagerStandbyPolicy mode */
                    mode?: (string|null);
                }

                /** Represents an InstanceGroupManagerStandbyPolicy. */
                class InstanceGroupManagerStandbyPolicy implements IInstanceGroupManagerStandbyPolicy {

                    /**
                     * Constructs a new InstanceGroupManagerStandbyPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStandbyPolicy);

                    /** InstanceGroupManagerStandbyPolicy initialDelaySec. */
                    public initialDelaySec?: (number|null);

                    /** InstanceGroupManagerStandbyPolicy mode. */
                    public mode?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerStandbyPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStandbyPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStandbyPolicy): google.cloud.compute.v1beta.InstanceGroupManagerStandbyPolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerStandbyPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStandbyPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerStandbyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStandbyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStandbyPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStandbyPolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerStandbyPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStandbyPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStandbyPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStandbyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStandbyPolicy;

                    /**
                     * Decodes an InstanceGroupManagerStandbyPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStandbyPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStandbyPolicy;

                    /**
                     * Verifies an InstanceGroupManagerStandbyPolicy message.
                     * @param message Plain 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 InstanceGroupManagerStandbyPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStandbyPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStandbyPolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStandbyPolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStandbyPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStandbyPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStandbyPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStandbyPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerStandbyPolicy {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        MANUAL = 119397318,
                        SCALE_OUT_POOL = 635394
                    }
                }

                /** Properties of an InstanceGroupManagerStatus. */
                interface IInstanceGroupManagerStatus {

                    /** InstanceGroupManagerStatus allInstancesConfig */
                    allInstancesConfig?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusAllInstancesConfig|null);

                    /** InstanceGroupManagerStatus appliedAcceleratorTopologies */
                    appliedAcceleratorTopologies?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopology[]|null);

                    /** InstanceGroupManagerStatus autoscaler */
                    autoscaler?: (string|null);

                    /** InstanceGroupManagerStatus bulkInstanceOperation */
                    bulkInstanceOperation?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperation|null);

                    /** InstanceGroupManagerStatus currentInstanceStatuses */
                    currentInstanceStatuses?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusInstanceStatusSummary|null);

                    /** InstanceGroupManagerStatus isStable */
                    isStable?: (boolean|null);

                    /** InstanceGroupManagerStatus stateful */
                    stateful?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusStateful|null);

                    /** InstanceGroupManagerStatus versionTarget */
                    versionTarget?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusVersionTarget|null);
                }

                /** Represents an InstanceGroupManagerStatus. */
                class InstanceGroupManagerStatus implements IInstanceGroupManagerStatus {

                    /**
                     * Constructs a new InstanceGroupManagerStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatus);

                    /** InstanceGroupManagerStatus allInstancesConfig. */
                    public allInstancesConfig?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusAllInstancesConfig|null);

                    /** InstanceGroupManagerStatus appliedAcceleratorTopologies. */
                    public appliedAcceleratorTopologies: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopology[];

                    /** InstanceGroupManagerStatus autoscaler. */
                    public autoscaler?: (string|null);

                    /** InstanceGroupManagerStatus bulkInstanceOperation. */
                    public bulkInstanceOperation?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperation|null);

                    /** InstanceGroupManagerStatus currentInstanceStatuses. */
                    public currentInstanceStatuses?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusInstanceStatusSummary|null);

                    /** InstanceGroupManagerStatus isStable. */
                    public isStable?: (boolean|null);

                    /** InstanceGroupManagerStatus stateful. */
                    public stateful?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusStateful|null);

                    /** InstanceGroupManagerStatus versionTarget. */
                    public versionTarget?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusVersionTarget|null);

                    /**
                     * Creates a new InstanceGroupManagerStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatus): google.cloud.compute.v1beta.InstanceGroupManagerStatus;

                    /**
                     * Encodes the specified InstanceGroupManagerStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatus.verify|verify} messages.
                     * @param message InstanceGroupManagerStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatus.verify|verify} messages.
                     * @param message InstanceGroupManagerStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatus;

                    /**
                     * Decodes an InstanceGroupManagerStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatus;

                    /**
                     * Verifies an InstanceGroupManagerStatus message.
                     * @param message Plain 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 InstanceGroupManagerStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatus;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatus message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusAcceleratorTopology. */
                interface IInstanceGroupManagerStatusAcceleratorTopology {

                    /** InstanceGroupManagerStatusAcceleratorTopology acceleratorTopology */
                    acceleratorTopology?: (string|null);

                    /** InstanceGroupManagerStatusAcceleratorTopology state */
                    state?: (string|null);

                    /** InstanceGroupManagerStatusAcceleratorTopology stateDetails */
                    stateDetails?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails|null);
                }

                /** Represents an InstanceGroupManagerStatusAcceleratorTopology. */
                class InstanceGroupManagerStatusAcceleratorTopology implements IInstanceGroupManagerStatusAcceleratorTopology {

                    /**
                     * Constructs a new InstanceGroupManagerStatusAcceleratorTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopology);

                    /** InstanceGroupManagerStatusAcceleratorTopology acceleratorTopology. */
                    public acceleratorTopology?: (string|null);

                    /** InstanceGroupManagerStatusAcceleratorTopology state. */
                    public state?: (string|null);

                    /** InstanceGroupManagerStatusAcceleratorTopology stateDetails. */
                    public stateDetails?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusAcceleratorTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusAcceleratorTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopology): google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopology;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAcceleratorTopology message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopology.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAcceleratorTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAcceleratorTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopology.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAcceleratorTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusAcceleratorTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusAcceleratorTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopology;

                    /**
                     * Decodes an InstanceGroupManagerStatusAcceleratorTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusAcceleratorTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopology;

                    /**
                     * Verifies an InstanceGroupManagerStatusAcceleratorTopology message.
                     * @param message Plain 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 InstanceGroupManagerStatusAcceleratorTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusAcceleratorTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopology;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusAcceleratorTopology message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusAcceleratorTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusAcceleratorTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusAcceleratorTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerStatusAcceleratorTopology {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVATING = 378825968,
                        ACTIVE = 314733318,
                        DEACTIVATING = 57182257,
                        FAILED = 455706685,
                        INCOMPLETE = 11941214,
                        REACTIVATING = 253727587
                    }
                }

                /** Properties of an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails. */
                interface IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails {

                    /** InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails error */
                    error?: (google.cloud.compute.v1beta.IError|null);

                    /** InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails timestamp */
                    timestamp?: (string|null);
                }

                /** Represents an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails. */
                class InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails implements IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails {

                    /**
                     * Constructs a new InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails);

                    /** InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails error. */
                    public error?: (google.cloud.compute.v1beta.IError|null);

                    /** InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails): google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails;

                    /**
                     * Decodes an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails;

                    /**
                     * Verifies an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message.
                     * @param message Plain 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 InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusAllInstancesConfig. */
                interface IInstanceGroupManagerStatusAllInstancesConfig {

                    /** InstanceGroupManagerStatusAllInstancesConfig currentRevision */
                    currentRevision?: (string|null);

                    /** InstanceGroupManagerStatusAllInstancesConfig effective */
                    effective?: (boolean|null);
                }

                /** Represents an InstanceGroupManagerStatusAllInstancesConfig. */
                class InstanceGroupManagerStatusAllInstancesConfig implements IInstanceGroupManagerStatusAllInstancesConfig {

                    /**
                     * Constructs a new InstanceGroupManagerStatusAllInstancesConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAllInstancesConfig);

                    /** InstanceGroupManagerStatusAllInstancesConfig currentRevision. */
                    public currentRevision?: (string|null);

                    /** InstanceGroupManagerStatusAllInstancesConfig effective. */
                    public effective?: (boolean|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusAllInstancesConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusAllInstancesConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAllInstancesConfig): google.cloud.compute.v1beta.InstanceGroupManagerStatusAllInstancesConfig;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAllInstancesConfig message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusAllInstancesConfig.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusAllInstancesConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusAllInstancesConfig.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusAllInstancesConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusAllInstancesConfig;

                    /**
                     * Decodes an InstanceGroupManagerStatusAllInstancesConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusAllInstancesConfig;

                    /**
                     * Verifies an InstanceGroupManagerStatusAllInstancesConfig message.
                     * @param message Plain 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 InstanceGroupManagerStatusAllInstancesConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusAllInstancesConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusAllInstancesConfig;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusAllInstancesConfig message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusAllInstancesConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusAllInstancesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusAllInstancesConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusAllInstancesConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusBulkInstanceOperation. */
                interface IInstanceGroupManagerStatusBulkInstanceOperation {

                    /** InstanceGroupManagerStatusBulkInstanceOperation inProgress */
                    inProgress?: (boolean|null);

                    /** InstanceGroupManagerStatusBulkInstanceOperation lastProgressCheck */
                    lastProgressCheck?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck|null);
                }

                /** Represents an InstanceGroupManagerStatusBulkInstanceOperation. */
                class InstanceGroupManagerStatusBulkInstanceOperation implements IInstanceGroupManagerStatusBulkInstanceOperation {

                    /**
                     * Constructs a new InstanceGroupManagerStatusBulkInstanceOperation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperation);

                    /** InstanceGroupManagerStatusBulkInstanceOperation inProgress. */
                    public inProgress?: (boolean|null);

                    /** InstanceGroupManagerStatusBulkInstanceOperation lastProgressCheck. */
                    public lastProgressCheck?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusBulkInstanceOperation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusBulkInstanceOperation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperation): google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperation;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusBulkInstanceOperation message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperation.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusBulkInstanceOperation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperation.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusBulkInstanceOperation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusBulkInstanceOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperation;

                    /**
                     * Decodes an InstanceGroupManagerStatusBulkInstanceOperation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusBulkInstanceOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperation;

                    /**
                     * Verifies an InstanceGroupManagerStatusBulkInstanceOperation message.
                     * @param message Plain 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 InstanceGroupManagerStatusBulkInstanceOperation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusBulkInstanceOperation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperation;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusBulkInstanceOperation message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusBulkInstanceOperation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusBulkInstanceOperation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck. */
                interface IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck {

                    /** InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck error */
                    error?: (google.cloud.compute.v1beta.IError|null);

                    /** InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck timestamp */
                    timestamp?: (string|null);
                }

                /** Represents an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck. */
                class InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck implements IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck {

                    /**
                     * Constructs a new InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck);

                    /** InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck error. */
                    public error?: (google.cloud.compute.v1beta.IError|null);

                    /** InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck): google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck;

                    /**
                     * Decodes an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck;

                    /**
                     * Verifies an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message.
                     * @param message Plain 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 InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusInstanceStatusSummary. */
                interface IInstanceGroupManagerStatusInstanceStatusSummary {

                    /** InstanceGroupManagerStatusInstanceStatusSummary deprovisioning */
                    deprovisioning?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary nonExistent */
                    nonExistent?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary pending */
                    pending?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary pendingStop */
                    pendingStop?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary provisioning */
                    provisioning?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary repairing */
                    repairing?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary running */
                    running?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary staging */
                    staging?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary stopped */
                    stopped?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary stopping */
                    stopping?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary suspended */
                    suspended?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary suspending */
                    suspending?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary terminated */
                    terminated?: (number|null);
                }

                /** Represents an InstanceGroupManagerStatusInstanceStatusSummary. */
                class InstanceGroupManagerStatusInstanceStatusSummary implements IInstanceGroupManagerStatusInstanceStatusSummary {

                    /**
                     * Constructs a new InstanceGroupManagerStatusInstanceStatusSummary.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusInstanceStatusSummary);

                    /** InstanceGroupManagerStatusInstanceStatusSummary deprovisioning. */
                    public deprovisioning?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary nonExistent. */
                    public nonExistent?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary pending. */
                    public pending?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary pendingStop. */
                    public pendingStop?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary provisioning. */
                    public provisioning?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary repairing. */
                    public repairing?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary running. */
                    public running?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary staging. */
                    public staging?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary stopped. */
                    public stopped?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary stopping. */
                    public stopping?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary suspended. */
                    public suspended?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary suspending. */
                    public suspending?: (number|null);

                    /** InstanceGroupManagerStatusInstanceStatusSummary terminated. */
                    public terminated?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusInstanceStatusSummary instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusInstanceStatusSummary instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusInstanceStatusSummary): google.cloud.compute.v1beta.InstanceGroupManagerStatusInstanceStatusSummary;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusInstanceStatusSummary message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusInstanceStatusSummary.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusInstanceStatusSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusInstanceStatusSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusInstanceStatusSummary message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusInstanceStatusSummary.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusInstanceStatusSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusInstanceStatusSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusInstanceStatusSummary message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusInstanceStatusSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusInstanceStatusSummary;

                    /**
                     * Decodes an InstanceGroupManagerStatusInstanceStatusSummary message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusInstanceStatusSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusInstanceStatusSummary;

                    /**
                     * Verifies an InstanceGroupManagerStatusInstanceStatusSummary message.
                     * @param message Plain 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 InstanceGroupManagerStatusInstanceStatusSummary message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusInstanceStatusSummary
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusInstanceStatusSummary;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusInstanceStatusSummary message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusInstanceStatusSummary
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusInstanceStatusSummary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusInstanceStatusSummary to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusInstanceStatusSummary
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusStateful. */
                interface IInstanceGroupManagerStatusStateful {

                    /** InstanceGroupManagerStatusStateful hasStatefulConfig */
                    hasStatefulConfig?: (boolean|null);

                    /** InstanceGroupManagerStatusStateful isStateful */
                    isStateful?: (boolean|null);

                    /** InstanceGroupManagerStatusStateful perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusStatefulPerInstanceConfigs|null);
                }

                /** Represents an InstanceGroupManagerStatusStateful. */
                class InstanceGroupManagerStatusStateful implements IInstanceGroupManagerStatusStateful {

                    /**
                     * Constructs a new InstanceGroupManagerStatusStateful.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusStateful);

                    /** InstanceGroupManagerStatusStateful hasStatefulConfig. */
                    public hasStatefulConfig?: (boolean|null);

                    /** InstanceGroupManagerStatusStateful isStateful. */
                    public isStateful?: (boolean|null);

                    /** InstanceGroupManagerStatusStateful perInstanceConfigs. */
                    public perInstanceConfigs?: (google.cloud.compute.v1beta.IInstanceGroupManagerStatusStatefulPerInstanceConfigs|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusStateful instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusStateful instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusStateful): google.cloud.compute.v1beta.InstanceGroupManagerStatusStateful;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusStateful message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusStateful.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusStateful message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusStateful, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusStateful message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusStateful.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusStateful message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusStateful, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusStateful message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusStateful
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusStateful;

                    /**
                     * Decodes an InstanceGroupManagerStatusStateful message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusStateful
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusStateful;

                    /**
                     * Verifies an InstanceGroupManagerStatusStateful message.
                     * @param message Plain 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 InstanceGroupManagerStatusStateful message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusStateful
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusStateful;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusStateful message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusStateful
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusStateful, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusStateful to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusStateful
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusStatefulPerInstanceConfigs. */
                interface IInstanceGroupManagerStatusStatefulPerInstanceConfigs {

                    /** InstanceGroupManagerStatusStatefulPerInstanceConfigs allEffective */
                    allEffective?: (boolean|null);
                }

                /** Represents an InstanceGroupManagerStatusStatefulPerInstanceConfigs. */
                class InstanceGroupManagerStatusStatefulPerInstanceConfigs implements IInstanceGroupManagerStatusStatefulPerInstanceConfigs {

                    /**
                     * Constructs a new InstanceGroupManagerStatusStatefulPerInstanceConfigs.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusStatefulPerInstanceConfigs);

                    /** InstanceGroupManagerStatusStatefulPerInstanceConfigs allEffective. */
                    public allEffective?: (boolean|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusStatefulPerInstanceConfigs instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusStatefulPerInstanceConfigs instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusStatefulPerInstanceConfigs): google.cloud.compute.v1beta.InstanceGroupManagerStatusStatefulPerInstanceConfigs;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusStatefulPerInstanceConfigs message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusStatefulPerInstanceConfigs.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusStatefulPerInstanceConfigs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusStatefulPerInstanceConfigs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusStatefulPerInstanceConfigs message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusStatefulPerInstanceConfigs.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusStatefulPerInstanceConfigs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusStatefulPerInstanceConfigs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusStatefulPerInstanceConfigs message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusStatefulPerInstanceConfigs;

                    /**
                     * Decodes an InstanceGroupManagerStatusStatefulPerInstanceConfigs message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusStatefulPerInstanceConfigs;

                    /**
                     * Verifies an InstanceGroupManagerStatusStatefulPerInstanceConfigs message.
                     * @param message Plain 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 InstanceGroupManagerStatusStatefulPerInstanceConfigs message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusStatefulPerInstanceConfigs;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusStatefulPerInstanceConfigs message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusStatefulPerInstanceConfigs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusStatefulPerInstanceConfigs to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusStatefulPerInstanceConfigs
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerStatusVersionTarget. */
                interface IInstanceGroupManagerStatusVersionTarget {

                    /** InstanceGroupManagerStatusVersionTarget isReached */
                    isReached?: (boolean|null);
                }

                /** Represents an InstanceGroupManagerStatusVersionTarget. */
                class InstanceGroupManagerStatusVersionTarget implements IInstanceGroupManagerStatusVersionTarget {

                    /**
                     * Constructs a new InstanceGroupManagerStatusVersionTarget.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusVersionTarget);

                    /** InstanceGroupManagerStatusVersionTarget isReached. */
                    public isReached?: (boolean|null);

                    /**
                     * Creates a new InstanceGroupManagerStatusVersionTarget instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerStatusVersionTarget instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerStatusVersionTarget): google.cloud.compute.v1beta.InstanceGroupManagerStatusVersionTarget;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusVersionTarget message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusVersionTarget.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusVersionTarget message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusVersionTarget, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerStatusVersionTarget message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerStatusVersionTarget.verify|verify} messages.
                     * @param message InstanceGroupManagerStatusVersionTarget message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerStatusVersionTarget, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerStatusVersionTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerStatusVersionTarget
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerStatusVersionTarget;

                    /**
                     * Decodes an InstanceGroupManagerStatusVersionTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerStatusVersionTarget
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerStatusVersionTarget;

                    /**
                     * Verifies an InstanceGroupManagerStatusVersionTarget message.
                     * @param message Plain 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 InstanceGroupManagerStatusVersionTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerStatusVersionTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerStatusVersionTarget;

                    /**
                     * Creates a plain object from an InstanceGroupManagerStatusVersionTarget message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerStatusVersionTarget
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerStatusVersionTarget, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerStatusVersionTarget to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerStatusVersionTarget
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagerTargetSizePolicy. */
                interface IInstanceGroupManagerTargetSizePolicy {

                    /** InstanceGroupManagerTargetSizePolicy mode */
                    mode?: (string|null);
                }

                /** Represents an InstanceGroupManagerTargetSizePolicy. */
                class InstanceGroupManagerTargetSizePolicy implements IInstanceGroupManagerTargetSizePolicy {

                    /**
                     * Constructs a new InstanceGroupManagerTargetSizePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerTargetSizePolicy);

                    /** InstanceGroupManagerTargetSizePolicy mode. */
                    public mode?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerTargetSizePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerTargetSizePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerTargetSizePolicy): google.cloud.compute.v1beta.InstanceGroupManagerTargetSizePolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerTargetSizePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerTargetSizePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerTargetSizePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerTargetSizePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerTargetSizePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerTargetSizePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerTargetSizePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerTargetSizePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerTargetSizePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerTargetSizePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerTargetSizePolicy;

                    /**
                     * Decodes an InstanceGroupManagerTargetSizePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerTargetSizePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerTargetSizePolicy;

                    /**
                     * Verifies an InstanceGroupManagerTargetSizePolicy message.
                     * @param message Plain 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 InstanceGroupManagerTargetSizePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerTargetSizePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerTargetSizePolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerTargetSizePolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerTargetSizePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerTargetSizePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerTargetSizePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerTargetSizePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerTargetSizePolicy {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        BULK = 2050322,
                        INDIVIDUAL = 438800025,
                        UNSPECIFIED_MODE = 53715403
                    }
                }

                /** Properties of an InstanceGroupManagerUpdatePolicy. */
                interface IInstanceGroupManagerUpdatePolicy {

                    /** InstanceGroupManagerUpdatePolicy instanceRedistributionType */
                    instanceRedistributionType?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy maxSurge */
                    maxSurge?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /** InstanceGroupManagerUpdatePolicy maxUnavailable */
                    maxUnavailable?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /** InstanceGroupManagerUpdatePolicy minReadySec */
                    minReadySec?: (number|null);

                    /** InstanceGroupManagerUpdatePolicy minimalAction */
                    minimalAction?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy mostDisruptiveAllowedAction */
                    mostDisruptiveAllowedAction?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy replacementMethod */
                    replacementMethod?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy type */
                    type?: (string|null);
                }

                /** Represents an InstanceGroupManagerUpdatePolicy. */
                class InstanceGroupManagerUpdatePolicy implements IInstanceGroupManagerUpdatePolicy {

                    /**
                     * Constructs a new InstanceGroupManagerUpdatePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerUpdatePolicy);

                    /** InstanceGroupManagerUpdatePolicy instanceRedistributionType. */
                    public instanceRedistributionType?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy maxSurge. */
                    public maxSurge?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /** InstanceGroupManagerUpdatePolicy maxUnavailable. */
                    public maxUnavailable?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /** InstanceGroupManagerUpdatePolicy minReadySec. */
                    public minReadySec?: (number|null);

                    /** InstanceGroupManagerUpdatePolicy minimalAction. */
                    public minimalAction?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy mostDisruptiveAllowedAction. */
                    public mostDisruptiveAllowedAction?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy replacementMethod. */
                    public replacementMethod?: (string|null);

                    /** InstanceGroupManagerUpdatePolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagerUpdatePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerUpdatePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerUpdatePolicy): google.cloud.compute.v1beta.InstanceGroupManagerUpdatePolicy;

                    /**
                     * Encodes the specified InstanceGroupManagerUpdatePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerUpdatePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerUpdatePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerUpdatePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerUpdatePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerUpdatePolicy.verify|verify} messages.
                     * @param message InstanceGroupManagerUpdatePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerUpdatePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerUpdatePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerUpdatePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerUpdatePolicy;

                    /**
                     * Decodes an InstanceGroupManagerUpdatePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerUpdatePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerUpdatePolicy;

                    /**
                     * Verifies an InstanceGroupManagerUpdatePolicy message.
                     * @param message Plain 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 InstanceGroupManagerUpdatePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerUpdatePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerUpdatePolicy;

                    /**
                     * Creates a plain object from an InstanceGroupManagerUpdatePolicy message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerUpdatePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerUpdatePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerUpdatePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerUpdatePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagerUpdatePolicy {

                    /** InstanceRedistributionType enum. */
                    enum InstanceRedistributionType {
                        UNDEFINED_INSTANCE_REDISTRIBUTION_TYPE = 0
                    }

                    /** MinimalAction enum. */
                    enum MinimalAction {
                        UNDEFINED_MINIMAL_ACTION = 0
                    }

                    /** MostDisruptiveAllowedAction enum. */
                    enum MostDisruptiveAllowedAction {
                        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0
                    }

                    /** ReplacementMethod enum. */
                    enum ReplacementMethod {
                        UNDEFINED_REPLACEMENT_METHOD = 0,
                        RECREATE = 522644719,
                        SUBSTITUTE = 280924314
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        OPPORTUNISTIC = 429530089
                    }
                }

                /** Properties of an InstanceGroupManagerVersion. */
                interface IInstanceGroupManagerVersion {

                    /** InstanceGroupManagerVersion instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** InstanceGroupManagerVersion name */
                    name?: (string|null);

                    /** InstanceGroupManagerVersion targetSize */
                    targetSize?: (google.cloud.compute.v1beta.IFixedOrPercent|null);
                }

                /** Represents an InstanceGroupManagerVersion. */
                class InstanceGroupManagerVersion implements IInstanceGroupManagerVersion {

                    /**
                     * Constructs a new InstanceGroupManagerVersion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerVersion);

                    /** InstanceGroupManagerVersion instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /** InstanceGroupManagerVersion name. */
                    public name?: (string|null);

                    /** InstanceGroupManagerVersion targetSize. */
                    public targetSize?: (google.cloud.compute.v1beta.IFixedOrPercent|null);

                    /**
                     * Creates a new InstanceGroupManagerVersion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagerVersion instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagerVersion): google.cloud.compute.v1beta.InstanceGroupManagerVersion;

                    /**
                     * Encodes the specified InstanceGroupManagerVersion message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerVersion.verify|verify} messages.
                     * @param message InstanceGroupManagerVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagerVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagerVersion message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagerVersion.verify|verify} messages.
                     * @param message InstanceGroupManagerVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagerVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagerVersion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagerVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagerVersion;

                    /**
                     * Decodes an InstanceGroupManagerVersion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagerVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagerVersion;

                    /**
                     * Verifies an InstanceGroupManagerVersion message.
                     * @param message Plain 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 InstanceGroupManagerVersion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagerVersion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagerVersion;

                    /**
                     * Creates a plain object from an InstanceGroupManagerVersion message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagerVersion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagerVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagerVersion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagerVersion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersAbandonInstancesRequest. */
                interface IInstanceGroupManagersAbandonInstancesRequest {

                    /** InstanceGroupManagersAbandonInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersAbandonInstancesRequest. */
                class InstanceGroupManagersAbandonInstancesRequest implements IInstanceGroupManagersAbandonInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersAbandonInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersAbandonInstancesRequest);

                    /** InstanceGroupManagersAbandonInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersAbandonInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersAbandonInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersAbandonInstancesRequest): google.cloud.compute.v1beta.InstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersAbandonInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersAbandonInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersAbandonInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersAbandonInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersAbandonInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersAbandonInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersAbandonInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersAbandonInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersAbandonInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersAbandonInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersAbandonInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersAbandonInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersAbandonInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersAbandonInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersAbandonInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersAbandonInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersAbandonInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersAbandonInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersAbandonInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersAbandonInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersApplyUpdatesRequest. */
                interface IInstanceGroupManagersApplyUpdatesRequest {

                    /** InstanceGroupManagersApplyUpdatesRequest allInstances */
                    allInstances?: (boolean|null);

                    /** InstanceGroupManagersApplyUpdatesRequest instances */
                    instances?: (string[]|null);

                    /** InstanceGroupManagersApplyUpdatesRequest minimalAction */
                    minimalAction?: (string|null);

                    /** InstanceGroupManagersApplyUpdatesRequest mostDisruptiveAllowedAction */
                    mostDisruptiveAllowedAction?: (string|null);
                }

                /** Represents an InstanceGroupManagersApplyUpdatesRequest. */
                class InstanceGroupManagersApplyUpdatesRequest implements IInstanceGroupManagersApplyUpdatesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersApplyUpdatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersApplyUpdatesRequest);

                    /** InstanceGroupManagersApplyUpdatesRequest allInstances. */
                    public allInstances?: (boolean|null);

                    /** InstanceGroupManagersApplyUpdatesRequest instances. */
                    public instances: string[];

                    /** InstanceGroupManagersApplyUpdatesRequest minimalAction. */
                    public minimalAction?: (string|null);

                    /** InstanceGroupManagersApplyUpdatesRequest mostDisruptiveAllowedAction. */
                    public mostDisruptiveAllowedAction?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersApplyUpdatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersApplyUpdatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersApplyUpdatesRequest): google.cloud.compute.v1beta.InstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersApplyUpdatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersApplyUpdatesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersApplyUpdatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersApplyUpdatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersApplyUpdatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersApplyUpdatesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersApplyUpdatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersApplyUpdatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersApplyUpdatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersApplyUpdatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Decodes an InstanceGroupManagersApplyUpdatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersApplyUpdatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Verifies an InstanceGroupManagersApplyUpdatesRequest message.
                     * @param message Plain 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 InstanceGroupManagersApplyUpdatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersApplyUpdatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersApplyUpdatesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersApplyUpdatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersApplyUpdatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersApplyUpdatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersApplyUpdatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagersApplyUpdatesRequest {

                    /** MinimalAction enum. */
                    enum MinimalAction {
                        UNDEFINED_MINIMAL_ACTION = 0
                    }

                    /** MostDisruptiveAllowedAction enum. */
                    enum MostDisruptiveAllowedAction {
                        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0
                    }
                }

                /** Properties of an InstanceGroupManagersConfigureAcceleratorTopologiesRequest. */
                interface IInstanceGroupManagersConfigureAcceleratorTopologiesRequest {

                    /** InstanceGroupManagersConfigureAcceleratorTopologiesRequest acceleratorTopologyActions */
                    acceleratorTopologyActions?: ({ [k: string]: string }|null);
                }

                /** Represents an InstanceGroupManagersConfigureAcceleratorTopologiesRequest. */
                class InstanceGroupManagersConfigureAcceleratorTopologiesRequest implements IInstanceGroupManagersConfigureAcceleratorTopologiesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersConfigureAcceleratorTopologiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersConfigureAcceleratorTopologiesRequest);

                    /** InstanceGroupManagersConfigureAcceleratorTopologiesRequest acceleratorTopologyActions. */
                    public acceleratorTopologyActions: { [k: string]: string };

                    /**
                     * Creates a new InstanceGroupManagersConfigureAcceleratorTopologiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersConfigureAcceleratorTopologiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersConfigureAcceleratorTopologiesRequest): google.cloud.compute.v1beta.InstanceGroupManagersConfigureAcceleratorTopologiesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersConfigureAcceleratorTopologiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersConfigureAcceleratorTopologiesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersConfigureAcceleratorTopologiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersConfigureAcceleratorTopologiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersConfigureAcceleratorTopologiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersConfigureAcceleratorTopologiesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersConfigureAcceleratorTopologiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersConfigureAcceleratorTopologiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersConfigureAcceleratorTopologiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersConfigureAcceleratorTopologiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersConfigureAcceleratorTopologiesRequest;

                    /**
                     * Decodes an InstanceGroupManagersConfigureAcceleratorTopologiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersConfigureAcceleratorTopologiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersConfigureAcceleratorTopologiesRequest;

                    /**
                     * Verifies an InstanceGroupManagersConfigureAcceleratorTopologiesRequest message.
                     * @param message Plain 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 InstanceGroupManagersConfigureAcceleratorTopologiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersConfigureAcceleratorTopologiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersConfigureAcceleratorTopologiesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersConfigureAcceleratorTopologiesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersConfigureAcceleratorTopologiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersConfigureAcceleratorTopologiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersConfigureAcceleratorTopologiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersConfigureAcceleratorTopologiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersCreateInstancesRequest. */
                interface IInstanceGroupManagersCreateInstancesRequest {

                    /** InstanceGroupManagersCreateInstancesRequest instances */
                    instances?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);
                }

                /** Represents an InstanceGroupManagersCreateInstancesRequest. */
                class InstanceGroupManagersCreateInstancesRequest implements IInstanceGroupManagersCreateInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersCreateInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersCreateInstancesRequest);

                    /** InstanceGroupManagersCreateInstancesRequest instances. */
                    public instances: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /**
                     * Creates a new InstanceGroupManagersCreateInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersCreateInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersCreateInstancesRequest): google.cloud.compute.v1beta.InstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersCreateInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersCreateInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersCreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersCreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersCreateInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersCreateInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersCreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersCreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersCreateInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersCreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersCreateInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersCreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersCreateInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersCreateInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersCreateInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersCreateInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersCreateInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersCreateInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersCreateInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersCreateInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersDeleteInstancesRequest. */
                interface IInstanceGroupManagersDeleteInstancesRequest {

                    /** InstanceGroupManagersDeleteInstancesRequest instances */
                    instances?: (string[]|null);

                    /** InstanceGroupManagersDeleteInstancesRequest skipInstancesOnValidationError */
                    skipInstancesOnValidationError?: (boolean|null);
                }

                /** Represents an InstanceGroupManagersDeleteInstancesRequest. */
                class InstanceGroupManagersDeleteInstancesRequest implements IInstanceGroupManagersDeleteInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersDeleteInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersDeleteInstancesRequest);

                    /** InstanceGroupManagersDeleteInstancesRequest instances. */
                    public instances: string[];

                    /** InstanceGroupManagersDeleteInstancesRequest skipInstancesOnValidationError. */
                    public skipInstancesOnValidationError?: (boolean|null);

                    /**
                     * Creates a new InstanceGroupManagersDeleteInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersDeleteInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersDeleteInstancesRequest): google.cloud.compute.v1beta.InstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersDeleteInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersDeleteInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersDeleteInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersDeleteInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersDeleteInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersDeleteInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersDeleteInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersDeleteInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersDeleteInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersDeleteInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersDeleteInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersDeleteInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersDeleteInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersDeleteInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersDeleteInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersDeleteInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersDeleteInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersDeleteInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersDeleteInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersDeleteInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersDeletePerInstanceConfigsReq. */
                interface IInstanceGroupManagersDeletePerInstanceConfigsReq {

                    /** InstanceGroupManagersDeletePerInstanceConfigsReq names */
                    names?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersDeletePerInstanceConfigsReq. */
                class InstanceGroupManagersDeletePerInstanceConfigsReq implements IInstanceGroupManagersDeletePerInstanceConfigsReq {

                    /**
                     * Constructs a new InstanceGroupManagersDeletePerInstanceConfigsReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersDeletePerInstanceConfigsReq);

                    /** InstanceGroupManagersDeletePerInstanceConfigsReq names. */
                    public names: string[];

                    /**
                     * Creates a new InstanceGroupManagersDeletePerInstanceConfigsReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersDeletePerInstanceConfigsReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersDeletePerInstanceConfigsReq): google.cloud.compute.v1beta.InstanceGroupManagersDeletePerInstanceConfigsReq;

                    /**
                     * Encodes the specified InstanceGroupManagersDeletePerInstanceConfigsReq message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersDeletePerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersDeletePerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersDeletePerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersDeletePerInstanceConfigsReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersDeletePerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersDeletePerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersDeletePerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersDeletePerInstanceConfigsReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersDeletePerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersDeletePerInstanceConfigsReq;

                    /**
                     * Decodes an InstanceGroupManagersDeletePerInstanceConfigsReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersDeletePerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersDeletePerInstanceConfigsReq;

                    /**
                     * Verifies an InstanceGroupManagersDeletePerInstanceConfigsReq message.
                     * @param message Plain 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 InstanceGroupManagersDeletePerInstanceConfigsReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersDeletePerInstanceConfigsReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersDeletePerInstanceConfigsReq;

                    /**
                     * Creates a plain object from an InstanceGroupManagersDeletePerInstanceConfigsReq message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersDeletePerInstanceConfigsReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersDeletePerInstanceConfigsReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersDeletePerInstanceConfigsReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersDeletePerInstanceConfigsReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse. */
                interface IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponse {

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse acceleratorTopologiesInfo */
                    acceleratorTopologiesInfo?: ({ [k: string]: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo }|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse multiMig */
                    multiMig?: (string|null);
                }

                /** Represents an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse. */
                class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse implements IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponse {

                    /**
                     * Constructs a new InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponse);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse acceleratorTopologiesInfo. */
                    public acceleratorTopologiesInfo: { [k: string]: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo };

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse multiMig. */
                    public multiMig?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponse): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse;

                    /**
                     * Encodes the specified InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse;

                    /**
                     * Decodes an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse;

                    /**
                     * Verifies an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message.
                     * @param message Plain 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 InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse;

                    /**
                     * Creates a plain object from an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo. */
                interface IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo {

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo acceleratorTopology */
                    acceleratorTopology?: (string|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo acceleratorTopologyHealth */
                    acceleratorTopologyHealth?: (string|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo acceleratorTopologyState */
                    acceleratorTopologyState?: (google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo instancesHealth */
                    instancesHealth?: (string|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo parent */
                    parent?: (string|null);
                }

                /** Represents an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo. */
                class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo implements IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo {

                    /**
                     * Constructs a new InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo acceleratorTopology. */
                    public acceleratorTopology?: (string|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo acceleratorTopologyHealth. */
                    public acceleratorTopologyHealth?: (string|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo acceleratorTopologyState. */
                    public acceleratorTopologyState?: (google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo instancesHealth. */
                    public instancesHealth?: (string|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo parent. */
                    public parent?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo;

                    /**
                     * Encodes the specified InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo.verify|verify} messages.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo.verify|verify} messages.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo;

                    /**
                     * Decodes an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo;

                    /**
                     * Verifies an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message.
                     * @param message Plain 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 InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo;

                    /**
                     * Creates a plain object from an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo {

                    /** AcceleratorTopologyHealth enum. */
                    enum AcceleratorTopologyHealth {
                        UNDEFINED_ACCELERATOR_TOPOLOGY_HEALTH = 0,
                        DEGRADED = 396890926,
                        HEALTHY = 439801213,
                        UNHEALTHY = 462118084,
                        UNKNOWN = 433141802
                    }

                    /** InstancesHealth enum. */
                    enum InstancesHealth {
                        UNDEFINED_INSTANCES_HEALTH = 0,
                        ALL_HEALTHY = 519465151,
                        UNHEALTHY_OR_MISSING = 59982149
                    }
                }

                /** Properties of an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState. */
                interface IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState {

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState currentState */
                    currentState?: (string|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState error */
                    error?: (google.cloud.compute.v1beta.IError|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState errorTimestamp */
                    errorTimestamp?: (string|null);
                }

                /** Represents an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState. */
                class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState implements IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState {

                    /**
                     * Constructs a new InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState currentState. */
                    public currentState?: (string|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState error. */
                    public error?: (google.cloud.compute.v1beta.IError|null);

                    /** InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState errorTimestamp. */
                    public errorTimestamp?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState;

                    /**
                     * Encodes the specified InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState.verify|verify} messages.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState.verify|verify} messages.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState;

                    /**
                     * Decodes an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState;

                    /**
                     * Verifies an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message.
                     * @param message Plain 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 InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState;

                    /**
                     * Creates a plain object from an InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyState {

                    /** CurrentState enum. */
                    enum CurrentState {
                        UNDEFINED_CURRENT_STATE = 0,
                        ACTIVATING = 378825968,
                        ACTIVE = 314733318,
                        ACTIVE_DEGRADED = 471128135,
                        DEACTIVATING = 57182257,
                        FAILED = 455706685,
                        INACTIVE = 270421099,
                        INCOMPLETE = 11941214
                    }
                }

                /** Properties of an InstanceGroupManagersListErrorsResponse. */
                interface IInstanceGroupManagersListErrorsResponse {

                    /** InstanceGroupManagersListErrorsResponse items */
                    items?: (google.cloud.compute.v1beta.IInstanceManagedByIgmError[]|null);

                    /** InstanceGroupManagersListErrorsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents an InstanceGroupManagersListErrorsResponse. */
                class InstanceGroupManagersListErrorsResponse implements IInstanceGroupManagersListErrorsResponse {

                    /**
                     * Constructs a new InstanceGroupManagersListErrorsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersListErrorsResponse);

                    /** InstanceGroupManagersListErrorsResponse items. */
                    public items: google.cloud.compute.v1beta.IInstanceManagedByIgmError[];

                    /** InstanceGroupManagersListErrorsResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersListErrorsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersListErrorsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersListErrorsResponse): google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse;

                    /**
                     * Encodes the specified InstanceGroupManagersListErrorsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersListErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersListErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersListErrorsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersListErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersListErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersListErrorsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersListErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse;

                    /**
                     * Decodes an InstanceGroupManagersListErrorsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersListErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse;

                    /**
                     * Verifies an InstanceGroupManagersListErrorsResponse message.
                     * @param message Plain 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 InstanceGroupManagersListErrorsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersListErrorsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse;

                    /**
                     * Creates a plain object from an InstanceGroupManagersListErrorsResponse message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersListErrorsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersListErrorsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersListErrorsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersListManagedInstancesResponse. */
                interface IInstanceGroupManagersListManagedInstancesResponse {

                    /** InstanceGroupManagersListManagedInstancesResponse managedInstances */
                    managedInstances?: (google.cloud.compute.v1beta.IManagedInstance[]|null);

                    /** InstanceGroupManagersListManagedInstancesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents an InstanceGroupManagersListManagedInstancesResponse. */
                class InstanceGroupManagersListManagedInstancesResponse implements IInstanceGroupManagersListManagedInstancesResponse {

                    /**
                     * Constructs a new InstanceGroupManagersListManagedInstancesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersListManagedInstancesResponse);

                    /** InstanceGroupManagersListManagedInstancesResponse managedInstances. */
                    public managedInstances: google.cloud.compute.v1beta.IManagedInstance[];

                    /** InstanceGroupManagersListManagedInstancesResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersListManagedInstancesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersListManagedInstancesResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersListManagedInstancesResponse): google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse;

                    /**
                     * Encodes the specified InstanceGroupManagersListManagedInstancesResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersListManagedInstancesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersListManagedInstancesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersListManagedInstancesResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse.verify|verify} messages.
                     * @param message InstanceGroupManagersListManagedInstancesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersListManagedInstancesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersListManagedInstancesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersListManagedInstancesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse;

                    /**
                     * Decodes an InstanceGroupManagersListManagedInstancesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersListManagedInstancesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse;

                    /**
                     * Verifies an InstanceGroupManagersListManagedInstancesResponse message.
                     * @param message Plain 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 InstanceGroupManagersListManagedInstancesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersListManagedInstancesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse;

                    /**
                     * Creates a plain object from an InstanceGroupManagersListManagedInstancesResponse message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersListManagedInstancesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersListManagedInstancesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersListManagedInstancesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersListPerInstanceConfigsResp. */
                interface IInstanceGroupManagersListPerInstanceConfigsResp {

                    /** InstanceGroupManagersListPerInstanceConfigsResp items */
                    items?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);

                    /** InstanceGroupManagersListPerInstanceConfigsResp nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupManagersListPerInstanceConfigsResp warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupManagersListPerInstanceConfigsResp. */
                class InstanceGroupManagersListPerInstanceConfigsResp implements IInstanceGroupManagersListPerInstanceConfigsResp {

                    /**
                     * Constructs a new InstanceGroupManagersListPerInstanceConfigsResp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersListPerInstanceConfigsResp);

                    /** InstanceGroupManagersListPerInstanceConfigsResp items. */
                    public items: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /** InstanceGroupManagersListPerInstanceConfigsResp nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupManagersListPerInstanceConfigsResp warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagersListPerInstanceConfigsResp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersListPerInstanceConfigsResp instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersListPerInstanceConfigsResp): google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp;

                    /**
                     * Encodes the specified InstanceGroupManagersListPerInstanceConfigsResp message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp.verify|verify} messages.
                     * @param message InstanceGroupManagersListPerInstanceConfigsResp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersListPerInstanceConfigsResp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersListPerInstanceConfigsResp message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp.verify|verify} messages.
                     * @param message InstanceGroupManagersListPerInstanceConfigsResp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersListPerInstanceConfigsResp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersListPerInstanceConfigsResp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersListPerInstanceConfigsResp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp;

                    /**
                     * Decodes an InstanceGroupManagersListPerInstanceConfigsResp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersListPerInstanceConfigsResp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp;

                    /**
                     * Verifies an InstanceGroupManagersListPerInstanceConfigsResp message.
                     * @param message Plain 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 InstanceGroupManagersListPerInstanceConfigsResp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersListPerInstanceConfigsResp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp;

                    /**
                     * Creates a plain object from an InstanceGroupManagersListPerInstanceConfigsResp message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersListPerInstanceConfigsResp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersListPerInstanceConfigsResp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersListPerInstanceConfigsResp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersPatchPerInstanceConfigsReq. */
                interface IInstanceGroupManagersPatchPerInstanceConfigsReq {

                    /** InstanceGroupManagersPatchPerInstanceConfigsReq perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);
                }

                /** Represents an InstanceGroupManagersPatchPerInstanceConfigsReq. */
                class InstanceGroupManagersPatchPerInstanceConfigsReq implements IInstanceGroupManagersPatchPerInstanceConfigsReq {

                    /**
                     * Constructs a new InstanceGroupManagersPatchPerInstanceConfigsReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersPatchPerInstanceConfigsReq);

                    /** InstanceGroupManagersPatchPerInstanceConfigsReq perInstanceConfigs. */
                    public perInstanceConfigs: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /**
                     * Creates a new InstanceGroupManagersPatchPerInstanceConfigsReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersPatchPerInstanceConfigsReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersPatchPerInstanceConfigsReq): google.cloud.compute.v1beta.InstanceGroupManagersPatchPerInstanceConfigsReq;

                    /**
                     * Encodes the specified InstanceGroupManagersPatchPerInstanceConfigsReq message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersPatchPerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersPatchPerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersPatchPerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersPatchPerInstanceConfigsReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersPatchPerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersPatchPerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersPatchPerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersPatchPerInstanceConfigsReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersPatchPerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersPatchPerInstanceConfigsReq;

                    /**
                     * Decodes an InstanceGroupManagersPatchPerInstanceConfigsReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersPatchPerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersPatchPerInstanceConfigsReq;

                    /**
                     * Verifies an InstanceGroupManagersPatchPerInstanceConfigsReq message.
                     * @param message Plain 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 InstanceGroupManagersPatchPerInstanceConfigsReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersPatchPerInstanceConfigsReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersPatchPerInstanceConfigsReq;

                    /**
                     * Creates a plain object from an InstanceGroupManagersPatchPerInstanceConfigsReq message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersPatchPerInstanceConfigsReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersPatchPerInstanceConfigsReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersPatchPerInstanceConfigsReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersPatchPerInstanceConfigsReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersRecreateInstancesRequest. */
                interface IInstanceGroupManagersRecreateInstancesRequest {

                    /** InstanceGroupManagersRecreateInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersRecreateInstancesRequest. */
                class InstanceGroupManagersRecreateInstancesRequest implements IInstanceGroupManagersRecreateInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersRecreateInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersRecreateInstancesRequest);

                    /** InstanceGroupManagersRecreateInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersRecreateInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersRecreateInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersRecreateInstancesRequest): google.cloud.compute.v1beta.InstanceGroupManagersRecreateInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersRecreateInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersRecreateInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersRecreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersRecreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersRecreateInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersRecreateInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersRecreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersRecreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersRecreateInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersRecreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersRecreateInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersRecreateInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersRecreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersRecreateInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersRecreateInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersRecreateInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersRecreateInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersRecreateInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersRecreateInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersRecreateInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersRecreateInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersRecreateInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersRecreateInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersResizeAdvancedRequest. */
                interface IInstanceGroupManagersResizeAdvancedRequest {

                    /** InstanceGroupManagersResizeAdvancedRequest noCreationRetries */
                    noCreationRetries?: (boolean|null);

                    /** InstanceGroupManagersResizeAdvancedRequest targetSize */
                    targetSize?: (number|null);
                }

                /** Represents an InstanceGroupManagersResizeAdvancedRequest. */
                class InstanceGroupManagersResizeAdvancedRequest implements IInstanceGroupManagersResizeAdvancedRequest {

                    /**
                     * Constructs a new InstanceGroupManagersResizeAdvancedRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersResizeAdvancedRequest);

                    /** InstanceGroupManagersResizeAdvancedRequest noCreationRetries. */
                    public noCreationRetries?: (boolean|null);

                    /** InstanceGroupManagersResizeAdvancedRequest targetSize. */
                    public targetSize?: (number|null);

                    /**
                     * Creates a new InstanceGroupManagersResizeAdvancedRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersResizeAdvancedRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersResizeAdvancedRequest): google.cloud.compute.v1beta.InstanceGroupManagersResizeAdvancedRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersResizeAdvancedRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersResizeAdvancedRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersResizeAdvancedRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersResizeAdvancedRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersResizeAdvancedRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersResizeAdvancedRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersResizeAdvancedRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersResizeAdvancedRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersResizeAdvancedRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersResizeAdvancedRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersResizeAdvancedRequest;

                    /**
                     * Decodes an InstanceGroupManagersResizeAdvancedRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersResizeAdvancedRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersResizeAdvancedRequest;

                    /**
                     * Verifies an InstanceGroupManagersResizeAdvancedRequest message.
                     * @param message Plain 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 InstanceGroupManagersResizeAdvancedRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersResizeAdvancedRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersResizeAdvancedRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersResizeAdvancedRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersResizeAdvancedRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersResizeAdvancedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersResizeAdvancedRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersResizeAdvancedRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersResumeInstancesRequest. */
                interface IInstanceGroupManagersResumeInstancesRequest {

                    /** InstanceGroupManagersResumeInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersResumeInstancesRequest. */
                class InstanceGroupManagersResumeInstancesRequest implements IInstanceGroupManagersResumeInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersResumeInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersResumeInstancesRequest);

                    /** InstanceGroupManagersResumeInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersResumeInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersResumeInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersResumeInstancesRequest): google.cloud.compute.v1beta.InstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersResumeInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersResumeInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersResumeInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersResumeInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersResumeInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersResumeInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersResumeInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersResumeInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersResumeInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersResumeInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersResumeInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersResumeInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersResumeInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersResumeInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersResumeInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersResumeInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersResumeInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersResumeInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersResumeInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersResumeInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersScopedList. */
                interface IInstanceGroupManagersScopedList {

                    /** InstanceGroupManagersScopedList instanceGroupManagers */
                    instanceGroupManagers?: (google.cloud.compute.v1beta.IInstanceGroupManager[]|null);

                    /** InstanceGroupManagersScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupManagersScopedList. */
                class InstanceGroupManagersScopedList implements IInstanceGroupManagersScopedList {

                    /**
                     * Constructs a new InstanceGroupManagersScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersScopedList);

                    /** InstanceGroupManagersScopedList instanceGroupManagers. */
                    public instanceGroupManagers: google.cloud.compute.v1beta.IInstanceGroupManager[];

                    /** InstanceGroupManagersScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupManagersScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersScopedList): google.cloud.compute.v1beta.InstanceGroupManagersScopedList;

                    /**
                     * Encodes the specified InstanceGroupManagersScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersScopedList.verify|verify} messages.
                     * @param message InstanceGroupManagersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersScopedList.verify|verify} messages.
                     * @param message InstanceGroupManagersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersScopedList;

                    /**
                     * Decodes an InstanceGroupManagersScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersScopedList;

                    /**
                     * Verifies an InstanceGroupManagersScopedList message.
                     * @param message Plain 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 InstanceGroupManagersScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersScopedList;

                    /**
                     * Creates a plain object from an InstanceGroupManagersScopedList message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersSetAutoHealingRequest. */
                interface IInstanceGroupManagersSetAutoHealingRequest {

                    /** InstanceGroupManagersSetAutoHealingRequest autoHealingPolicies */
                    autoHealingPolicies?: (google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy[]|null);
                }

                /** Represents an InstanceGroupManagersSetAutoHealingRequest. */
                class InstanceGroupManagersSetAutoHealingRequest implements IInstanceGroupManagersSetAutoHealingRequest {

                    /**
                     * Constructs a new InstanceGroupManagersSetAutoHealingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersSetAutoHealingRequest);

                    /** InstanceGroupManagersSetAutoHealingRequest autoHealingPolicies. */
                    public autoHealingPolicies: google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy[];

                    /**
                     * Creates a new InstanceGroupManagersSetAutoHealingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersSetAutoHealingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersSetAutoHealingRequest): google.cloud.compute.v1beta.InstanceGroupManagersSetAutoHealingRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersSetAutoHealingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersSetAutoHealingRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetAutoHealingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersSetAutoHealingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersSetAutoHealingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersSetAutoHealingRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetAutoHealingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersSetAutoHealingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersSetAutoHealingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersSetAutoHealingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersSetAutoHealingRequest;

                    /**
                     * Decodes an InstanceGroupManagersSetAutoHealingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersSetAutoHealingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersSetAutoHealingRequest;

                    /**
                     * Verifies an InstanceGroupManagersSetAutoHealingRequest message.
                     * @param message Plain 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 InstanceGroupManagersSetAutoHealingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersSetAutoHealingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersSetAutoHealingRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersSetAutoHealingRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersSetAutoHealingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersSetAutoHealingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersSetAutoHealingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersSetAutoHealingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersSetInstanceTemplateRequest. */
                interface IInstanceGroupManagersSetInstanceTemplateRequest {

                    /** InstanceGroupManagersSetInstanceTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);
                }

                /** Represents an InstanceGroupManagersSetInstanceTemplateRequest. */
                class InstanceGroupManagersSetInstanceTemplateRequest implements IInstanceGroupManagersSetInstanceTemplateRequest {

                    /**
                     * Constructs a new InstanceGroupManagersSetInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersSetInstanceTemplateRequest);

                    /** InstanceGroupManagersSetInstanceTemplateRequest instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /**
                     * Creates a new InstanceGroupManagersSetInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersSetInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersSetInstanceTemplateRequest): google.cloud.compute.v1beta.InstanceGroupManagersSetInstanceTemplateRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersSetInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersSetInstanceTemplateRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersSetInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersSetInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersSetInstanceTemplateRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersSetInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersSetInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersSetInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersSetInstanceTemplateRequest;

                    /**
                     * Decodes an InstanceGroupManagersSetInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersSetInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersSetInstanceTemplateRequest;

                    /**
                     * Verifies an InstanceGroupManagersSetInstanceTemplateRequest message.
                     * @param message Plain 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 InstanceGroupManagersSetInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersSetInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersSetInstanceTemplateRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersSetInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersSetInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersSetInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersSetInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersSetInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersSetTargetPoolsRequest. */
                interface IInstanceGroupManagersSetTargetPoolsRequest {

                    /** InstanceGroupManagersSetTargetPoolsRequest fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceGroupManagersSetTargetPoolsRequest targetPools */
                    targetPools?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersSetTargetPoolsRequest. */
                class InstanceGroupManagersSetTargetPoolsRequest implements IInstanceGroupManagersSetTargetPoolsRequest {

                    /**
                     * Constructs a new InstanceGroupManagersSetTargetPoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersSetTargetPoolsRequest);

                    /** InstanceGroupManagersSetTargetPoolsRequest fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceGroupManagersSetTargetPoolsRequest targetPools. */
                    public targetPools: string[];

                    /**
                     * Creates a new InstanceGroupManagersSetTargetPoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersSetTargetPoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersSetTargetPoolsRequest): google.cloud.compute.v1beta.InstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersSetTargetPoolsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersSetTargetPoolsRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersSetTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersSetTargetPoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersSetTargetPoolsRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSetTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersSetTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersSetTargetPoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersSetTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Decodes an InstanceGroupManagersSetTargetPoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersSetTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Verifies an InstanceGroupManagersSetTargetPoolsRequest message.
                     * @param message Plain 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 InstanceGroupManagersSetTargetPoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersSetTargetPoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersSetTargetPoolsRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersSetTargetPoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersSetTargetPoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersSetTargetPoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersSetTargetPoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersStartInstancesRequest. */
                interface IInstanceGroupManagersStartInstancesRequest {

                    /** InstanceGroupManagersStartInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersStartInstancesRequest. */
                class InstanceGroupManagersStartInstancesRequest implements IInstanceGroupManagersStartInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersStartInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersStartInstancesRequest);

                    /** InstanceGroupManagersStartInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersStartInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersStartInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersStartInstancesRequest): google.cloud.compute.v1beta.InstanceGroupManagersStartInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersStartInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersStartInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersStartInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersStartInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersStartInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersStartInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersStartInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersStartInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersStartInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersStartInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersStartInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersStartInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersStartInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersStartInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersStartInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersStartInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersStartInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersStartInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersStartInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersStartInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersStartInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersStartInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersStartInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersStopInstancesRequest. */
                interface IInstanceGroupManagersStopInstancesRequest {

                    /** InstanceGroupManagersStopInstancesRequest forceStop */
                    forceStop?: (boolean|null);

                    /** InstanceGroupManagersStopInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersStopInstancesRequest. */
                class InstanceGroupManagersStopInstancesRequest implements IInstanceGroupManagersStopInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersStopInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersStopInstancesRequest);

                    /** InstanceGroupManagersStopInstancesRequest forceStop. */
                    public forceStop?: (boolean|null);

                    /** InstanceGroupManagersStopInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersStopInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersStopInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersStopInstancesRequest): google.cloud.compute.v1beta.InstanceGroupManagersStopInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersStopInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersStopInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersStopInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersStopInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersStopInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersStopInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersStopInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersStopInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersStopInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersStopInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersStopInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersStopInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersStopInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersStopInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersStopInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersStopInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersStopInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersStopInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersStopInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersStopInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersStopInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersStopInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersStopInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersSuspendInstancesRequest. */
                interface IInstanceGroupManagersSuspendInstancesRequest {

                    /** InstanceGroupManagersSuspendInstancesRequest forceSuspend */
                    forceSuspend?: (boolean|null);

                    /** InstanceGroupManagersSuspendInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents an InstanceGroupManagersSuspendInstancesRequest. */
                class InstanceGroupManagersSuspendInstancesRequest implements IInstanceGroupManagersSuspendInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupManagersSuspendInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersSuspendInstancesRequest);

                    /** InstanceGroupManagersSuspendInstancesRequest forceSuspend. */
                    public forceSuspend?: (boolean|null);

                    /** InstanceGroupManagersSuspendInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new InstanceGroupManagersSuspendInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersSuspendInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersSuspendInstancesRequest): google.cloud.compute.v1beta.InstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupManagersSuspendInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersSuspendInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSuspendInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersSuspendInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersSuspendInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersSuspendInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupManagersSuspendInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersSuspendInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersSuspendInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersSuspendInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Decodes an InstanceGroupManagersSuspendInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersSuspendInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Verifies an InstanceGroupManagersSuspendInstancesRequest message.
                     * @param message Plain 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 InstanceGroupManagersSuspendInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersSuspendInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupManagersSuspendInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersSuspendInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersSuspendInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersSuspendInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersSuspendInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupManagersUpdatePerInstanceConfigsReq. */
                interface IInstanceGroupManagersUpdatePerInstanceConfigsReq {

                    /** InstanceGroupManagersUpdatePerInstanceConfigsReq perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);
                }

                /** Represents an InstanceGroupManagersUpdatePerInstanceConfigsReq. */
                class InstanceGroupManagersUpdatePerInstanceConfigsReq implements IInstanceGroupManagersUpdatePerInstanceConfigsReq {

                    /**
                     * Constructs a new InstanceGroupManagersUpdatePerInstanceConfigsReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersUpdatePerInstanceConfigsReq);

                    /** InstanceGroupManagersUpdatePerInstanceConfigsReq perInstanceConfigs. */
                    public perInstanceConfigs: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /**
                     * Creates a new InstanceGroupManagersUpdatePerInstanceConfigsReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupManagersUpdatePerInstanceConfigsReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupManagersUpdatePerInstanceConfigsReq): google.cloud.compute.v1beta.InstanceGroupManagersUpdatePerInstanceConfigsReq;

                    /**
                     * Encodes the specified InstanceGroupManagersUpdatePerInstanceConfigsReq message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersUpdatePerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersUpdatePerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupManagersUpdatePerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupManagersUpdatePerInstanceConfigsReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupManagersUpdatePerInstanceConfigsReq.verify|verify} messages.
                     * @param message InstanceGroupManagersUpdatePerInstanceConfigsReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupManagersUpdatePerInstanceConfigsReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupManagersUpdatePerInstanceConfigsReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupManagersUpdatePerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupManagersUpdatePerInstanceConfigsReq;

                    /**
                     * Decodes an InstanceGroupManagersUpdatePerInstanceConfigsReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupManagersUpdatePerInstanceConfigsReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupManagersUpdatePerInstanceConfigsReq;

                    /**
                     * Verifies an InstanceGroupManagersUpdatePerInstanceConfigsReq message.
                     * @param message Plain 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 InstanceGroupManagersUpdatePerInstanceConfigsReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupManagersUpdatePerInstanceConfigsReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupManagersUpdatePerInstanceConfigsReq;

                    /**
                     * Creates a plain object from an InstanceGroupManagersUpdatePerInstanceConfigsReq message. Also converts values to other types if specified.
                     * @param message InstanceGroupManagersUpdatePerInstanceConfigsReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupManagersUpdatePerInstanceConfigsReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupManagersUpdatePerInstanceConfigsReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupManagersUpdatePerInstanceConfigsReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsAddInstancesRequest. */
                interface IInstanceGroupsAddInstancesRequest {

                    /** InstanceGroupsAddInstancesRequest instances */
                    instances?: (google.cloud.compute.v1beta.IInstanceReference[]|null);
                }

                /** Represents an InstanceGroupsAddInstancesRequest. */
                class InstanceGroupsAddInstancesRequest implements IInstanceGroupsAddInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupsAddInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupsAddInstancesRequest);

                    /** InstanceGroupsAddInstancesRequest instances. */
                    public instances: google.cloud.compute.v1beta.IInstanceReference[];

                    /**
                     * Creates a new InstanceGroupsAddInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsAddInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupsAddInstancesRequest): google.cloud.compute.v1beta.InstanceGroupsAddInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupsAddInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsAddInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsAddInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupsAddInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsAddInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsAddInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsAddInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupsAddInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsAddInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsAddInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupsAddInstancesRequest;

                    /**
                     * Decodes an InstanceGroupsAddInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsAddInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupsAddInstancesRequest;

                    /**
                     * Verifies an InstanceGroupsAddInstancesRequest message.
                     * @param message Plain 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 InstanceGroupsAddInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsAddInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupsAddInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupsAddInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupsAddInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupsAddInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsAddInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsAddInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsListInstances. */
                interface IInstanceGroupsListInstances {

                    /** InstanceGroupsListInstances id */
                    id?: (string|null);

                    /** InstanceGroupsListInstances items */
                    items?: (google.cloud.compute.v1beta.IInstanceWithNamedPorts[]|null);

                    /** InstanceGroupsListInstances kind */
                    kind?: (string|null);

                    /** InstanceGroupsListInstances nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceGroupsListInstances selfLink */
                    selfLink?: (string|null);

                    /** InstanceGroupsListInstances warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupsListInstances. */
                class InstanceGroupsListInstances implements IInstanceGroupsListInstances {

                    /**
                     * Constructs a new InstanceGroupsListInstances.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupsListInstances);

                    /** InstanceGroupsListInstances id. */
                    public id?: (string|null);

                    /** InstanceGroupsListInstances items. */
                    public items: google.cloud.compute.v1beta.IInstanceWithNamedPorts[];

                    /** InstanceGroupsListInstances kind. */
                    public kind?: (string|null);

                    /** InstanceGroupsListInstances nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceGroupsListInstances selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceGroupsListInstances warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupsListInstances instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsListInstances instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupsListInstances): google.cloud.compute.v1beta.InstanceGroupsListInstances;

                    /**
                     * Encodes the specified InstanceGroupsListInstances message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsListInstances.verify|verify} messages.
                     * @param message InstanceGroupsListInstances message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupsListInstances, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsListInstances message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsListInstances.verify|verify} messages.
                     * @param message InstanceGroupsListInstances message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupsListInstances, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsListInstances message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsListInstances
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupsListInstances;

                    /**
                     * Decodes an InstanceGroupsListInstances message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsListInstances
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupsListInstances;

                    /**
                     * Verifies an InstanceGroupsListInstances message.
                     * @param message Plain 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 InstanceGroupsListInstances message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsListInstances
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupsListInstances;

                    /**
                     * Creates a plain object from an InstanceGroupsListInstances message. Also converts values to other types if specified.
                     * @param message InstanceGroupsListInstances
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupsListInstances, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsListInstances to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsListInstances
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsListInstancesRequest. */
                interface IInstanceGroupsListInstancesRequest {

                    /** InstanceGroupsListInstancesRequest instanceState */
                    instanceState?: (string|null);
                }

                /** Represents an InstanceGroupsListInstancesRequest. */
                class InstanceGroupsListInstancesRequest implements IInstanceGroupsListInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupsListInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupsListInstancesRequest);

                    /** InstanceGroupsListInstancesRequest instanceState. */
                    public instanceState?: (string|null);

                    /**
                     * Creates a new InstanceGroupsListInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsListInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupsListInstancesRequest): google.cloud.compute.v1beta.InstanceGroupsListInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupsListInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsListInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupsListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsListInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsListInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupsListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsListInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupsListInstancesRequest;

                    /**
                     * Decodes an InstanceGroupsListInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupsListInstancesRequest;

                    /**
                     * Verifies an InstanceGroupsListInstancesRequest message.
                     * @param message Plain 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 InstanceGroupsListInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsListInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupsListInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupsListInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupsListInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupsListInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsListInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsListInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceGroupsListInstancesRequest {

                    /** InstanceState enum. */
                    enum InstanceState {
                        UNDEFINED_INSTANCE_STATE = 0,
                        ALL = 64897,
                        RUNNING = 121282975
                    }
                }

                /** Properties of an InstanceGroupsRemoveInstancesRequest. */
                interface IInstanceGroupsRemoveInstancesRequest {

                    /** InstanceGroupsRemoveInstancesRequest instances */
                    instances?: (google.cloud.compute.v1beta.IInstanceReference[]|null);
                }

                /** Represents an InstanceGroupsRemoveInstancesRequest. */
                class InstanceGroupsRemoveInstancesRequest implements IInstanceGroupsRemoveInstancesRequest {

                    /**
                     * Constructs a new InstanceGroupsRemoveInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupsRemoveInstancesRequest);

                    /** InstanceGroupsRemoveInstancesRequest instances. */
                    public instances: google.cloud.compute.v1beta.IInstanceReference[];

                    /**
                     * Creates a new InstanceGroupsRemoveInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsRemoveInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupsRemoveInstancesRequest): google.cloud.compute.v1beta.InstanceGroupsRemoveInstancesRequest;

                    /**
                     * Encodes the specified InstanceGroupsRemoveInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsRemoveInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsRemoveInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupsRemoveInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsRemoveInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsRemoveInstancesRequest.verify|verify} messages.
                     * @param message InstanceGroupsRemoveInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupsRemoveInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsRemoveInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsRemoveInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupsRemoveInstancesRequest;

                    /**
                     * Decodes an InstanceGroupsRemoveInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsRemoveInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupsRemoveInstancesRequest;

                    /**
                     * Verifies an InstanceGroupsRemoveInstancesRequest message.
                     * @param message Plain 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 InstanceGroupsRemoveInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsRemoveInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupsRemoveInstancesRequest;

                    /**
                     * Creates a plain object from an InstanceGroupsRemoveInstancesRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupsRemoveInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupsRemoveInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsRemoveInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsRemoveInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsScopedList. */
                interface IInstanceGroupsScopedList {

                    /** InstanceGroupsScopedList instanceGroups */
                    instanceGroups?: (google.cloud.compute.v1beta.IInstanceGroup[]|null);

                    /** InstanceGroupsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceGroupsScopedList. */
                class InstanceGroupsScopedList implements IInstanceGroupsScopedList {

                    /**
                     * Constructs a new InstanceGroupsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupsScopedList);

                    /** InstanceGroupsScopedList instanceGroups. */
                    public instanceGroups: google.cloud.compute.v1beta.IInstanceGroup[];

                    /** InstanceGroupsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceGroupsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupsScopedList): google.cloud.compute.v1beta.InstanceGroupsScopedList;

                    /**
                     * Encodes the specified InstanceGroupsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsScopedList.verify|verify} messages.
                     * @param message InstanceGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsScopedList.verify|verify} messages.
                     * @param message InstanceGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupsScopedList;

                    /**
                     * Decodes an InstanceGroupsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupsScopedList;

                    /**
                     * Verifies an InstanceGroupsScopedList message.
                     * @param message Plain 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 InstanceGroupsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupsScopedList;

                    /**
                     * Creates a plain object from an InstanceGroupsScopedList message. Also converts values to other types if specified.
                     * @param message InstanceGroupsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceGroupsSetNamedPortsRequest. */
                interface IInstanceGroupsSetNamedPortsRequest {

                    /** InstanceGroupsSetNamedPortsRequest fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceGroupsSetNamedPortsRequest namedPorts */
                    namedPorts?: (google.cloud.compute.v1beta.INamedPort[]|null);
                }

                /** Represents an InstanceGroupsSetNamedPortsRequest. */
                class InstanceGroupsSetNamedPortsRequest implements IInstanceGroupsSetNamedPortsRequest {

                    /**
                     * Constructs a new InstanceGroupsSetNamedPortsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceGroupsSetNamedPortsRequest);

                    /** InstanceGroupsSetNamedPortsRequest fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceGroupsSetNamedPortsRequest namedPorts. */
                    public namedPorts: google.cloud.compute.v1beta.INamedPort[];

                    /**
                     * Creates a new InstanceGroupsSetNamedPortsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceGroupsSetNamedPortsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceGroupsSetNamedPortsRequest): google.cloud.compute.v1beta.InstanceGroupsSetNamedPortsRequest;

                    /**
                     * Encodes the specified InstanceGroupsSetNamedPortsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsSetNamedPortsRequest.verify|verify} messages.
                     * @param message InstanceGroupsSetNamedPortsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceGroupsSetNamedPortsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceGroupsSetNamedPortsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceGroupsSetNamedPortsRequest.verify|verify} messages.
                     * @param message InstanceGroupsSetNamedPortsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceGroupsSetNamedPortsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceGroupsSetNamedPortsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceGroupsSetNamedPortsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceGroupsSetNamedPortsRequest;

                    /**
                     * Decodes an InstanceGroupsSetNamedPortsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceGroupsSetNamedPortsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceGroupsSetNamedPortsRequest;

                    /**
                     * Verifies an InstanceGroupsSetNamedPortsRequest message.
                     * @param message Plain 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 InstanceGroupsSetNamedPortsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceGroupsSetNamedPortsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceGroupsSetNamedPortsRequest;

                    /**
                     * Creates a plain object from an InstanceGroupsSetNamedPortsRequest message. Also converts values to other types if specified.
                     * @param message InstanceGroupsSetNamedPortsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceGroupsSetNamedPortsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceGroupsSetNamedPortsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceGroupsSetNamedPortsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceList. */
                interface IInstanceList {

                    /** InstanceList id */
                    id?: (string|null);

                    /** InstanceList items */
                    items?: (google.cloud.compute.v1beta.IInstance[]|null);

                    /** InstanceList kind */
                    kind?: (string|null);

                    /** InstanceList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceList selfLink */
                    selfLink?: (string|null);

                    /** InstanceList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceList. */
                class InstanceList implements IInstanceList {

                    /**
                     * Constructs a new InstanceList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceList);

                    /** InstanceList id. */
                    public id?: (string|null);

                    /** InstanceList items. */
                    public items: google.cloud.compute.v1beta.IInstance[];

                    /** InstanceList kind. */
                    public kind?: (string|null);

                    /** InstanceList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceList): google.cloud.compute.v1beta.InstanceList;

                    /**
                     * Encodes the specified InstanceList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceList.verify|verify} messages.
                     * @param message InstanceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceList.verify|verify} messages.
                     * @param message InstanceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceList;

                    /**
                     * Decodes an InstanceList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceList;

                    /**
                     * Verifies an InstanceList message.
                     * @param message Plain 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 InstanceList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceList;

                    /**
                     * Creates a plain object from an InstanceList message. Also converts values to other types if specified.
                     * @param message InstanceList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceListReferrers. */
                interface IInstanceListReferrers {

                    /** InstanceListReferrers id */
                    id?: (string|null);

                    /** InstanceListReferrers items */
                    items?: (google.cloud.compute.v1beta.IReference[]|null);

                    /** InstanceListReferrers kind */
                    kind?: (string|null);

                    /** InstanceListReferrers nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceListReferrers selfLink */
                    selfLink?: (string|null);

                    /** InstanceListReferrers warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceListReferrers. */
                class InstanceListReferrers implements IInstanceListReferrers {

                    /**
                     * Constructs a new InstanceListReferrers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceListReferrers);

                    /** InstanceListReferrers id. */
                    public id?: (string|null);

                    /** InstanceListReferrers items. */
                    public items: google.cloud.compute.v1beta.IReference[];

                    /** InstanceListReferrers kind. */
                    public kind?: (string|null);

                    /** InstanceListReferrers nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceListReferrers selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceListReferrers warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceListReferrers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceListReferrers instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceListReferrers): google.cloud.compute.v1beta.InstanceListReferrers;

                    /**
                     * Encodes the specified InstanceListReferrers message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceListReferrers.verify|verify} messages.
                     * @param message InstanceListReferrers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceListReferrers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceListReferrers message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceListReferrers.verify|verify} messages.
                     * @param message InstanceListReferrers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceListReferrers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceListReferrers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceListReferrers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceListReferrers;

                    /**
                     * Decodes an InstanceListReferrers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceListReferrers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceListReferrers;

                    /**
                     * Verifies an InstanceListReferrers message.
                     * @param message Plain 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 InstanceListReferrers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceListReferrers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceListReferrers;

                    /**
                     * Creates a plain object from an InstanceListReferrers message. Also converts values to other types if specified.
                     * @param message InstanceListReferrers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceListReferrers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceListReferrers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceListReferrers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceManagedByIgmError. */
                interface IInstanceManagedByIgmError {

                    /** InstanceManagedByIgmError error */
                    error?: (google.cloud.compute.v1beta.IInstanceManagedByIgmErrorManagedInstanceError|null);

                    /** InstanceManagedByIgmError instanceActionDetails */
                    instanceActionDetails?: (google.cloud.compute.v1beta.IInstanceManagedByIgmErrorInstanceActionDetails|null);

                    /** InstanceManagedByIgmError timestamp */
                    timestamp?: (string|null);
                }

                /** Represents an InstanceManagedByIgmError. */
                class InstanceManagedByIgmError implements IInstanceManagedByIgmError {

                    /**
                     * Constructs a new InstanceManagedByIgmError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceManagedByIgmError);

                    /** InstanceManagedByIgmError error. */
                    public error?: (google.cloud.compute.v1beta.IInstanceManagedByIgmErrorManagedInstanceError|null);

                    /** InstanceManagedByIgmError instanceActionDetails. */
                    public instanceActionDetails?: (google.cloud.compute.v1beta.IInstanceManagedByIgmErrorInstanceActionDetails|null);

                    /** InstanceManagedByIgmError timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new InstanceManagedByIgmError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceManagedByIgmError instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceManagedByIgmError): google.cloud.compute.v1beta.InstanceManagedByIgmError;

                    /**
                     * Encodes the specified InstanceManagedByIgmError message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceManagedByIgmError.verify|verify} messages.
                     * @param message InstanceManagedByIgmError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceManagedByIgmError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceManagedByIgmError message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceManagedByIgmError.verify|verify} messages.
                     * @param message InstanceManagedByIgmError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceManagedByIgmError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceManagedByIgmError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceManagedByIgmError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceManagedByIgmError;

                    /**
                     * Decodes an InstanceManagedByIgmError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceManagedByIgmError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceManagedByIgmError;

                    /**
                     * Verifies an InstanceManagedByIgmError message.
                     * @param message Plain 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 InstanceManagedByIgmError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceManagedByIgmError
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceManagedByIgmError;

                    /**
                     * Creates a plain object from an InstanceManagedByIgmError message. Also converts values to other types if specified.
                     * @param message InstanceManagedByIgmError
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceManagedByIgmError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceManagedByIgmError to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceManagedByIgmError
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceManagedByIgmErrorInstanceActionDetails. */
                interface IInstanceManagedByIgmErrorInstanceActionDetails {

                    /** InstanceManagedByIgmErrorInstanceActionDetails action */
                    action?: (string|null);

                    /** InstanceManagedByIgmErrorInstanceActionDetails instance */
                    instance?: (string|null);

                    /** InstanceManagedByIgmErrorInstanceActionDetails version */
                    version?: (google.cloud.compute.v1beta.IManagedInstanceVersion|null);
                }

                /** Represents an InstanceManagedByIgmErrorInstanceActionDetails. */
                class InstanceManagedByIgmErrorInstanceActionDetails implements IInstanceManagedByIgmErrorInstanceActionDetails {

                    /**
                     * Constructs a new InstanceManagedByIgmErrorInstanceActionDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceManagedByIgmErrorInstanceActionDetails);

                    /** InstanceManagedByIgmErrorInstanceActionDetails action. */
                    public action?: (string|null);

                    /** InstanceManagedByIgmErrorInstanceActionDetails instance. */
                    public instance?: (string|null);

                    /** InstanceManagedByIgmErrorInstanceActionDetails version. */
                    public version?: (google.cloud.compute.v1beta.IManagedInstanceVersion|null);

                    /**
                     * Creates a new InstanceManagedByIgmErrorInstanceActionDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceManagedByIgmErrorInstanceActionDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceManagedByIgmErrorInstanceActionDetails): google.cloud.compute.v1beta.InstanceManagedByIgmErrorInstanceActionDetails;

                    /**
                     * Encodes the specified InstanceManagedByIgmErrorInstanceActionDetails message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceManagedByIgmErrorInstanceActionDetails.verify|verify} messages.
                     * @param message InstanceManagedByIgmErrorInstanceActionDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceManagedByIgmErrorInstanceActionDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceManagedByIgmErrorInstanceActionDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceManagedByIgmErrorInstanceActionDetails.verify|verify} messages.
                     * @param message InstanceManagedByIgmErrorInstanceActionDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceManagedByIgmErrorInstanceActionDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceManagedByIgmErrorInstanceActionDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceManagedByIgmErrorInstanceActionDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceManagedByIgmErrorInstanceActionDetails;

                    /**
                     * Decodes an InstanceManagedByIgmErrorInstanceActionDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceManagedByIgmErrorInstanceActionDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceManagedByIgmErrorInstanceActionDetails;

                    /**
                     * Verifies an InstanceManagedByIgmErrorInstanceActionDetails message.
                     * @param message Plain 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 InstanceManagedByIgmErrorInstanceActionDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceManagedByIgmErrorInstanceActionDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceManagedByIgmErrorInstanceActionDetails;

                    /**
                     * Creates a plain object from an InstanceManagedByIgmErrorInstanceActionDetails message. Also converts values to other types if specified.
                     * @param message InstanceManagedByIgmErrorInstanceActionDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceManagedByIgmErrorInstanceActionDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceManagedByIgmErrorInstanceActionDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceManagedByIgmErrorInstanceActionDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceManagedByIgmErrorInstanceActionDetails {

                    /** Action enum. */
                    enum Action {
                        UNDEFINED_ACTION = 0,
                        ABANDONING = 388244813,
                        ADOPTING = 414293554,
                        CREATING = 455564985,
                        CREATING_WITHOUT_RETRIES = 428843785,
                        DELETING = 528602024,
                        NONE = 2402104,
                        RECREATING = 287278572,
                        REFRESHING = 163266343,
                        RESTARTING = 320534387,
                        RESUMING = 446856618,
                        STARTING = 488820800,
                        STOPPING = 350791796,
                        SUSPENDING = 514206246,
                        VERIFYING = 16982185
                    }
                }

                /** Properties of an InstanceManagedByIgmErrorManagedInstanceError. */
                interface IInstanceManagedByIgmErrorManagedInstanceError {

                    /** InstanceManagedByIgmErrorManagedInstanceError code */
                    code?: (string|null);

                    /** InstanceManagedByIgmErrorManagedInstanceError message */
                    message?: (string|null);
                }

                /** Represents an InstanceManagedByIgmErrorManagedInstanceError. */
                class InstanceManagedByIgmErrorManagedInstanceError implements IInstanceManagedByIgmErrorManagedInstanceError {

                    /**
                     * Constructs a new InstanceManagedByIgmErrorManagedInstanceError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceManagedByIgmErrorManagedInstanceError);

                    /** InstanceManagedByIgmErrorManagedInstanceError code. */
                    public code?: (string|null);

                    /** InstanceManagedByIgmErrorManagedInstanceError message. */
                    public message?: (string|null);

                    /**
                     * Creates a new InstanceManagedByIgmErrorManagedInstanceError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceManagedByIgmErrorManagedInstanceError instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceManagedByIgmErrorManagedInstanceError): google.cloud.compute.v1beta.InstanceManagedByIgmErrorManagedInstanceError;

                    /**
                     * Encodes the specified InstanceManagedByIgmErrorManagedInstanceError message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceManagedByIgmErrorManagedInstanceError.verify|verify} messages.
                     * @param message InstanceManagedByIgmErrorManagedInstanceError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceManagedByIgmErrorManagedInstanceError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceManagedByIgmErrorManagedInstanceError message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceManagedByIgmErrorManagedInstanceError.verify|verify} messages.
                     * @param message InstanceManagedByIgmErrorManagedInstanceError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceManagedByIgmErrorManagedInstanceError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceManagedByIgmErrorManagedInstanceError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceManagedByIgmErrorManagedInstanceError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceManagedByIgmErrorManagedInstanceError;

                    /**
                     * Decodes an InstanceManagedByIgmErrorManagedInstanceError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceManagedByIgmErrorManagedInstanceError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceManagedByIgmErrorManagedInstanceError;

                    /**
                     * Verifies an InstanceManagedByIgmErrorManagedInstanceError message.
                     * @param message Plain 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 InstanceManagedByIgmErrorManagedInstanceError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceManagedByIgmErrorManagedInstanceError
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceManagedByIgmErrorManagedInstanceError;

                    /**
                     * Creates a plain object from an InstanceManagedByIgmErrorManagedInstanceError message. Also converts values to other types if specified.
                     * @param message InstanceManagedByIgmErrorManagedInstanceError
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceManagedByIgmErrorManagedInstanceError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceManagedByIgmErrorManagedInstanceError to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceManagedByIgmErrorManagedInstanceError
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceMoveRequest. */
                interface IInstanceMoveRequest {

                    /** InstanceMoveRequest destinationZone */
                    destinationZone?: (string|null);

                    /** InstanceMoveRequest targetInstance */
                    targetInstance?: (string|null);
                }

                /** Represents an InstanceMoveRequest. */
                class InstanceMoveRequest implements IInstanceMoveRequest {

                    /**
                     * Constructs a new InstanceMoveRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceMoveRequest);

                    /** InstanceMoveRequest destinationZone. */
                    public destinationZone?: (string|null);

                    /** InstanceMoveRequest targetInstance. */
                    public targetInstance?: (string|null);

                    /**
                     * Creates a new InstanceMoveRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceMoveRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceMoveRequest): google.cloud.compute.v1beta.InstanceMoveRequest;

                    /**
                     * Encodes the specified InstanceMoveRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceMoveRequest.verify|verify} messages.
                     * @param message InstanceMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceMoveRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceMoveRequest.verify|verify} messages.
                     * @param message InstanceMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceMoveRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceMoveRequest;

                    /**
                     * Decodes an InstanceMoveRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceMoveRequest;

                    /**
                     * Verifies an InstanceMoveRequest message.
                     * @param message Plain 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 InstanceMoveRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceMoveRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceMoveRequest;

                    /**
                     * Creates a plain object from an InstanceMoveRequest message. Also converts values to other types if specified.
                     * @param message InstanceMoveRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceMoveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceMoveRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceMoveRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceParams. */
                interface IInstanceParams {

                    /** InstanceParams requestValidForDuration */
                    requestValidForDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** InstanceParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InstanceParams. */
                class InstanceParams implements IInstanceParams {

                    /**
                     * Constructs a new InstanceParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceParams);

                    /** InstanceParams requestValidForDuration. */
                    public requestValidForDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** InstanceParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InstanceParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceParams): google.cloud.compute.v1beta.InstanceParams;

                    /**
                     * Encodes the specified InstanceParams message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceParams.verify|verify} messages.
                     * @param message InstanceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceParams.verify|verify} messages.
                     * @param message InstanceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceParams;

                    /**
                     * Decodes an InstanceParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceParams;

                    /**
                     * Verifies an InstanceParams message.
                     * @param message Plain 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 InstanceParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceParams;

                    /**
                     * Creates a plain object from an InstanceParams message. Also converts values to other types if specified.
                     * @param message InstanceParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceProperties. */
                interface IInstanceProperties {

                    /** InstanceProperties advancedMachineFeatures */
                    advancedMachineFeatures?: (google.cloud.compute.v1beta.IAdvancedMachineFeatures|null);

                    /** InstanceProperties canIpForward */
                    canIpForward?: (boolean|null);

                    /** InstanceProperties confidentialInstanceConfig */
                    confidentialInstanceConfig?: (google.cloud.compute.v1beta.IConfidentialInstanceConfig|null);

                    /** InstanceProperties description */
                    description?: (string|null);

                    /** InstanceProperties disks */
                    disks?: (google.cloud.compute.v1beta.IAttachedDisk[]|null);

                    /** InstanceProperties displayDevice */
                    displayDevice?: (google.cloud.compute.v1beta.IDisplayDevice|null);

                    /** InstanceProperties guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1beta.IAcceleratorConfig[]|null);

                    /** InstanceProperties keyRevocationActionType */
                    keyRevocationActionType?: (string|null);

                    /** InstanceProperties labels */
                    labels?: ({ [k: string]: string }|null);

                    /** InstanceProperties machineType */
                    machineType?: (string|null);

                    /** InstanceProperties metadata */
                    metadata?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** InstanceProperties minCpuPlatform */
                    minCpuPlatform?: (string|null);

                    /** InstanceProperties networkInterfaces */
                    networkInterfaces?: (google.cloud.compute.v1beta.INetworkInterface[]|null);

                    /** InstanceProperties networkPerformanceConfig */
                    networkPerformanceConfig?: (google.cloud.compute.v1beta.INetworkPerformanceConfig|null);

                    /** InstanceProperties partnerMetadata */
                    partnerMetadata?: ({ [k: string]: google.cloud.compute.v1beta.IStructuredEntries }|null);

                    /** InstanceProperties postKeyRevocationActionType */
                    postKeyRevocationActionType?: (string|null);

                    /** InstanceProperties privateIpv6GoogleAccess */
                    privateIpv6GoogleAccess?: (string|null);

                    /** InstanceProperties reservationAffinity */
                    reservationAffinity?: (google.cloud.compute.v1beta.IReservationAffinity|null);

                    /** InstanceProperties resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);

                    /** InstanceProperties resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** InstanceProperties scheduling */
                    scheduling?: (google.cloud.compute.v1beta.IScheduling|null);

                    /** InstanceProperties serviceAccounts */
                    serviceAccounts?: (google.cloud.compute.v1beta.IServiceAccount[]|null);

                    /** InstanceProperties shieldedInstanceConfig */
                    shieldedInstanceConfig?: (google.cloud.compute.v1beta.IShieldedInstanceConfig|null);

                    /** InstanceProperties shieldedVmConfig */
                    shieldedVmConfig?: (google.cloud.compute.v1beta.IShieldedVmConfig|null);

                    /** InstanceProperties tags */
                    tags?: (google.cloud.compute.v1beta.ITags|null);

                    /** InstanceProperties workloadIdentityConfig */
                    workloadIdentityConfig?: (google.cloud.compute.v1beta.IWorkloadIdentityConfig|null);
                }

                /** Represents an InstanceProperties. */
                class InstanceProperties implements IInstanceProperties {

                    /**
                     * Constructs a new InstanceProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceProperties);

                    /** InstanceProperties advancedMachineFeatures. */
                    public advancedMachineFeatures?: (google.cloud.compute.v1beta.IAdvancedMachineFeatures|null);

                    /** InstanceProperties canIpForward. */
                    public canIpForward?: (boolean|null);

                    /** InstanceProperties confidentialInstanceConfig. */
                    public confidentialInstanceConfig?: (google.cloud.compute.v1beta.IConfidentialInstanceConfig|null);

                    /** InstanceProperties description. */
                    public description?: (string|null);

                    /** InstanceProperties disks. */
                    public disks: google.cloud.compute.v1beta.IAttachedDisk[];

                    /** InstanceProperties displayDevice. */
                    public displayDevice?: (google.cloud.compute.v1beta.IDisplayDevice|null);

                    /** InstanceProperties guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1beta.IAcceleratorConfig[];

                    /** InstanceProperties keyRevocationActionType. */
                    public keyRevocationActionType?: (string|null);

                    /** InstanceProperties labels. */
                    public labels: { [k: string]: string };

                    /** InstanceProperties machineType. */
                    public machineType?: (string|null);

                    /** InstanceProperties metadata. */
                    public metadata?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** InstanceProperties minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /** InstanceProperties networkInterfaces. */
                    public networkInterfaces: google.cloud.compute.v1beta.INetworkInterface[];

                    /** InstanceProperties networkPerformanceConfig. */
                    public networkPerformanceConfig?: (google.cloud.compute.v1beta.INetworkPerformanceConfig|null);

                    /** InstanceProperties partnerMetadata. */
                    public partnerMetadata: { [k: string]: google.cloud.compute.v1beta.IStructuredEntries };

                    /** InstanceProperties postKeyRevocationActionType. */
                    public postKeyRevocationActionType?: (string|null);

                    /** InstanceProperties privateIpv6GoogleAccess. */
                    public privateIpv6GoogleAccess?: (string|null);

                    /** InstanceProperties reservationAffinity. */
                    public reservationAffinity?: (google.cloud.compute.v1beta.IReservationAffinity|null);

                    /** InstanceProperties resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /** InstanceProperties resourcePolicies. */
                    public resourcePolicies: string[];

                    /** InstanceProperties scheduling. */
                    public scheduling?: (google.cloud.compute.v1beta.IScheduling|null);

                    /** InstanceProperties serviceAccounts. */
                    public serviceAccounts: google.cloud.compute.v1beta.IServiceAccount[];

                    /** InstanceProperties shieldedInstanceConfig. */
                    public shieldedInstanceConfig?: (google.cloud.compute.v1beta.IShieldedInstanceConfig|null);

                    /** InstanceProperties shieldedVmConfig. */
                    public shieldedVmConfig?: (google.cloud.compute.v1beta.IShieldedVmConfig|null);

                    /** InstanceProperties tags. */
                    public tags?: (google.cloud.compute.v1beta.ITags|null);

                    /** InstanceProperties workloadIdentityConfig. */
                    public workloadIdentityConfig?: (google.cloud.compute.v1beta.IWorkloadIdentityConfig|null);

                    /**
                     * Creates a new InstanceProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceProperties): google.cloud.compute.v1beta.InstanceProperties;

                    /**
                     * Encodes the specified InstanceProperties message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceProperties.verify|verify} messages.
                     * @param message InstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceProperties.verify|verify} messages.
                     * @param message InstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceProperties;

                    /**
                     * Decodes an InstanceProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceProperties;

                    /**
                     * Verifies an InstanceProperties message.
                     * @param message Plain 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 InstanceProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceProperties;

                    /**
                     * Creates a plain object from an InstanceProperties message. Also converts values to other types if specified.
                     * @param message InstanceProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceProperties {

                    /** KeyRevocationActionType enum. */
                    enum KeyRevocationActionType {
                        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0,
                        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106,
                        NONE = 2402104,
                        STOP = 2555906
                    }

                    /** PostKeyRevocationActionType enum. */
                    enum PostKeyRevocationActionType {
                        UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE = 0,
                        NOOP = 2402146,
                        POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 228738393,
                        SHUTDOWN = 76412502
                    }

                    /** PrivateIpv6GoogleAccess enum. */
                    enum PrivateIpv6GoogleAccess {
                        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0,
                        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994,
                        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263,
                        INHERIT_FROM_SUBNETWORK = 530256959
                    }
                }

                /** Properties of an InstancePropertiesPatch. */
                interface IInstancePropertiesPatch {

                    /** InstancePropertiesPatch labels */
                    labels?: ({ [k: string]: string }|null);

                    /** InstancePropertiesPatch metadata */
                    metadata?: ({ [k: string]: string }|null);
                }

                /** Represents an InstancePropertiesPatch. */
                class InstancePropertiesPatch implements IInstancePropertiesPatch {

                    /**
                     * Constructs a new InstancePropertiesPatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancePropertiesPatch);

                    /** InstancePropertiesPatch labels. */
                    public labels: { [k: string]: string };

                    /** InstancePropertiesPatch metadata. */
                    public metadata: { [k: string]: string };

                    /**
                     * Creates a new InstancePropertiesPatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancePropertiesPatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancePropertiesPatch): google.cloud.compute.v1beta.InstancePropertiesPatch;

                    /**
                     * Encodes the specified InstancePropertiesPatch message. Does not implicitly {@link google.cloud.compute.v1beta.InstancePropertiesPatch.verify|verify} messages.
                     * @param message InstancePropertiesPatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancePropertiesPatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancePropertiesPatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancePropertiesPatch.verify|verify} messages.
                     * @param message InstancePropertiesPatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancePropertiesPatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancePropertiesPatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancePropertiesPatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancePropertiesPatch;

                    /**
                     * Decodes an InstancePropertiesPatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancePropertiesPatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancePropertiesPatch;

                    /**
                     * Verifies an InstancePropertiesPatch message.
                     * @param message Plain 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 InstancePropertiesPatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancePropertiesPatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancePropertiesPatch;

                    /**
                     * Creates a plain object from an InstancePropertiesPatch message. Also converts values to other types if specified.
                     * @param message InstancePropertiesPatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancePropertiesPatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancePropertiesPatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancePropertiesPatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceReference. */
                interface IInstanceReference {

                    /** InstanceReference instance */
                    instance?: (string|null);
                }

                /** Represents an InstanceReference. */
                class InstanceReference implements IInstanceReference {

                    /**
                     * Constructs a new InstanceReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceReference);

                    /** InstanceReference instance. */
                    public instance?: (string|null);

                    /**
                     * Creates a new InstanceReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceReference): google.cloud.compute.v1beta.InstanceReference;

                    /**
                     * Encodes the specified InstanceReference message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceReference.verify|verify} messages.
                     * @param message InstanceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceReference.verify|verify} messages.
                     * @param message InstanceReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceReference;

                    /**
                     * Decodes an InstanceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceReference;

                    /**
                     * Verifies an InstanceReference message.
                     * @param message Plain 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 InstanceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceReference;

                    /**
                     * Creates a plain object from an InstanceReference message. Also converts values to other types if specified.
                     * @param message InstanceReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceSettings. */
                interface IInstanceSettings {

                    /** InstanceSettings fingerprint */
                    fingerprint?: (string|null);

                    /** InstanceSettings kind */
                    kind?: (string|null);

                    /** InstanceSettings metadata */
                    metadata?: (google.cloud.compute.v1beta.IInstanceSettingsMetadata|null);

                    /** InstanceSettings zone */
                    zone?: (string|null);
                }

                /** Represents an InstanceSettings. */
                class InstanceSettings implements IInstanceSettings {

                    /**
                     * Constructs a new InstanceSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceSettings);

                    /** InstanceSettings fingerprint. */
                    public fingerprint?: (string|null);

                    /** InstanceSettings kind. */
                    public kind?: (string|null);

                    /** InstanceSettings metadata. */
                    public metadata?: (google.cloud.compute.v1beta.IInstanceSettingsMetadata|null);

                    /** InstanceSettings zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstanceSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceSettings): google.cloud.compute.v1beta.InstanceSettings;

                    /**
                     * Encodes the specified InstanceSettings message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceSettings.verify|verify} messages.
                     * @param message InstanceSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceSettings.verify|verify} messages.
                     * @param message InstanceSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceSettings;

                    /**
                     * Decodes an InstanceSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceSettings;

                    /**
                     * Verifies an InstanceSettings message.
                     * @param message Plain 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 InstanceSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceSettings;

                    /**
                     * Creates a plain object from an InstanceSettings message. Also converts values to other types if specified.
                     * @param message InstanceSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceSettingsMetadata. */
                interface IInstanceSettingsMetadata {

                    /** InstanceSettingsMetadata items */
                    items?: ({ [k: string]: string }|null);

                    /** InstanceSettingsMetadata kind */
                    kind?: (string|null);
                }

                /** Represents an InstanceSettingsMetadata. */
                class InstanceSettingsMetadata implements IInstanceSettingsMetadata {

                    /**
                     * Constructs a new InstanceSettingsMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceSettingsMetadata);

                    /** InstanceSettingsMetadata items. */
                    public items: { [k: string]: string };

                    /** InstanceSettingsMetadata kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new InstanceSettingsMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceSettingsMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceSettingsMetadata): google.cloud.compute.v1beta.InstanceSettingsMetadata;

                    /**
                     * Encodes the specified InstanceSettingsMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceSettingsMetadata.verify|verify} messages.
                     * @param message InstanceSettingsMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceSettingsMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceSettingsMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceSettingsMetadata.verify|verify} messages.
                     * @param message InstanceSettingsMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceSettingsMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceSettingsMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceSettingsMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceSettingsMetadata;

                    /**
                     * Decodes an InstanceSettingsMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceSettingsMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceSettingsMetadata;

                    /**
                     * Verifies an InstanceSettingsMetadata message.
                     * @param message Plain 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 InstanceSettingsMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceSettingsMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceSettingsMetadata;

                    /**
                     * Creates a plain object from an InstanceSettingsMetadata message. Also converts values to other types if specified.
                     * @param message InstanceSettingsMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceSettingsMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceSettingsMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceSettingsMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceTemplate. */
                interface IInstanceTemplate {

                    /** InstanceTemplate creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstanceTemplate description */
                    description?: (string|null);

                    /** InstanceTemplate id */
                    id?: (number|Long|string|null);

                    /** InstanceTemplate kind */
                    kind?: (string|null);

                    /** InstanceTemplate name */
                    name?: (string|null);

                    /** InstanceTemplate properties */
                    properties?: (google.cloud.compute.v1beta.IInstanceProperties|null);

                    /** InstanceTemplate region */
                    region?: (string|null);

                    /** InstanceTemplate selfLink */
                    selfLink?: (string|null);

                    /** InstanceTemplate sourceInstance */
                    sourceInstance?: (string|null);

                    /** InstanceTemplate sourceInstanceParams */
                    sourceInstanceParams?: (google.cloud.compute.v1beta.ISourceInstanceParams|null);
                }

                /** Represents an InstanceTemplate. */
                class InstanceTemplate implements IInstanceTemplate {

                    /**
                     * Constructs a new InstanceTemplate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceTemplate);

                    /** InstanceTemplate creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstanceTemplate description. */
                    public description?: (string|null);

                    /** InstanceTemplate id. */
                    public id?: (number|Long|string|null);

                    /** InstanceTemplate kind. */
                    public kind?: (string|null);

                    /** InstanceTemplate name. */
                    public name?: (string|null);

                    /** InstanceTemplate properties. */
                    public properties?: (google.cloud.compute.v1beta.IInstanceProperties|null);

                    /** InstanceTemplate region. */
                    public region?: (string|null);

                    /** InstanceTemplate selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceTemplate sourceInstance. */
                    public sourceInstance?: (string|null);

                    /** InstanceTemplate sourceInstanceParams. */
                    public sourceInstanceParams?: (google.cloud.compute.v1beta.ISourceInstanceParams|null);

                    /**
                     * Creates a new InstanceTemplate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceTemplate instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceTemplate): google.cloud.compute.v1beta.InstanceTemplate;

                    /**
                     * Encodes the specified InstanceTemplate message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceTemplate.verify|verify} messages.
                     * @param message InstanceTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceTemplate message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceTemplate.verify|verify} messages.
                     * @param message InstanceTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceTemplate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceTemplate;

                    /**
                     * Decodes an InstanceTemplate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceTemplate;

                    /**
                     * Verifies an InstanceTemplate message.
                     * @param message Plain 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 InstanceTemplate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceTemplate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceTemplate;

                    /**
                     * Creates a plain object from an InstanceTemplate message. Also converts values to other types if specified.
                     * @param message InstanceTemplate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceTemplate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceTemplate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceTemplateAggregatedList. */
                interface IInstanceTemplateAggregatedList {

                    /** InstanceTemplateAggregatedList id */
                    id?: (string|null);

                    /** InstanceTemplateAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IInstanceTemplatesScopedList }|null);

                    /** InstanceTemplateAggregatedList kind */
                    kind?: (string|null);

                    /** InstanceTemplateAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceTemplateAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstanceTemplateAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceTemplateAggregatedList. */
                class InstanceTemplateAggregatedList implements IInstanceTemplateAggregatedList {

                    /**
                     * Constructs a new InstanceTemplateAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceTemplateAggregatedList);

                    /** InstanceTemplateAggregatedList id. */
                    public id?: (string|null);

                    /** InstanceTemplateAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IInstanceTemplatesScopedList };

                    /** InstanceTemplateAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstanceTemplateAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceTemplateAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceTemplateAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceTemplateAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceTemplateAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceTemplateAggregatedList): google.cloud.compute.v1beta.InstanceTemplateAggregatedList;

                    /**
                     * Encodes the specified InstanceTemplateAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceTemplateAggregatedList.verify|verify} messages.
                     * @param message InstanceTemplateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceTemplateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceTemplateAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceTemplateAggregatedList.verify|verify} messages.
                     * @param message InstanceTemplateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceTemplateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceTemplateAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceTemplateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceTemplateAggregatedList;

                    /**
                     * Decodes an InstanceTemplateAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceTemplateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceTemplateAggregatedList;

                    /**
                     * Verifies an InstanceTemplateAggregatedList message.
                     * @param message Plain 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 InstanceTemplateAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceTemplateAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceTemplateAggregatedList;

                    /**
                     * Creates a plain object from an InstanceTemplateAggregatedList message. Also converts values to other types if specified.
                     * @param message InstanceTemplateAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceTemplateAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceTemplateAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceTemplateAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceTemplateList. */
                interface IInstanceTemplateList {

                    /** InstanceTemplateList id */
                    id?: (string|null);

                    /** InstanceTemplateList items */
                    items?: (google.cloud.compute.v1beta.IInstanceTemplate[]|null);

                    /** InstanceTemplateList kind */
                    kind?: (string|null);

                    /** InstanceTemplateList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstanceTemplateList selfLink */
                    selfLink?: (string|null);

                    /** InstanceTemplateList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceTemplateList. */
                class InstanceTemplateList implements IInstanceTemplateList {

                    /**
                     * Constructs a new InstanceTemplateList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceTemplateList);

                    /** InstanceTemplateList id. */
                    public id?: (string|null);

                    /** InstanceTemplateList items. */
                    public items: google.cloud.compute.v1beta.IInstanceTemplate[];

                    /** InstanceTemplateList kind. */
                    public kind?: (string|null);

                    /** InstanceTemplateList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstanceTemplateList selfLink. */
                    public selfLink?: (string|null);

                    /** InstanceTemplateList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceTemplateList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceTemplateList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceTemplateList): google.cloud.compute.v1beta.InstanceTemplateList;

                    /**
                     * Encodes the specified InstanceTemplateList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceTemplateList.verify|verify} messages.
                     * @param message InstanceTemplateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceTemplateList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceTemplateList.verify|verify} messages.
                     * @param message InstanceTemplateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceTemplateList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceTemplateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceTemplateList;

                    /**
                     * Decodes an InstanceTemplateList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceTemplateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceTemplateList;

                    /**
                     * Verifies an InstanceTemplateList message.
                     * @param message Plain 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 InstanceTemplateList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceTemplateList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceTemplateList;

                    /**
                     * Creates a plain object from an InstanceTemplateList message. Also converts values to other types if specified.
                     * @param message InstanceTemplateList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceTemplateList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceTemplateList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceTemplateList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceTemplatesScopedList. */
                interface IInstanceTemplatesScopedList {

                    /** InstanceTemplatesScopedList instanceTemplates */
                    instanceTemplates?: (google.cloud.compute.v1beta.IInstanceTemplate[]|null);

                    /** InstanceTemplatesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstanceTemplatesScopedList. */
                class InstanceTemplatesScopedList implements IInstanceTemplatesScopedList {

                    /**
                     * Constructs a new InstanceTemplatesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceTemplatesScopedList);

                    /** InstanceTemplatesScopedList instanceTemplates. */
                    public instanceTemplates: google.cloud.compute.v1beta.IInstanceTemplate[];

                    /** InstanceTemplatesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstanceTemplatesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceTemplatesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceTemplatesScopedList): google.cloud.compute.v1beta.InstanceTemplatesScopedList;

                    /**
                     * Encodes the specified InstanceTemplatesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceTemplatesScopedList.verify|verify} messages.
                     * @param message InstanceTemplatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceTemplatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceTemplatesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceTemplatesScopedList.verify|verify} messages.
                     * @param message InstanceTemplatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceTemplatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceTemplatesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceTemplatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceTemplatesScopedList;

                    /**
                     * Decodes an InstanceTemplatesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceTemplatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceTemplatesScopedList;

                    /**
                     * Verifies an InstanceTemplatesScopedList message.
                     * @param message Plain 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 InstanceTemplatesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceTemplatesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceTemplatesScopedList;

                    /**
                     * Creates a plain object from an InstanceTemplatesScopedList message. Also converts values to other types if specified.
                     * @param message InstanceTemplatesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceTemplatesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceTemplatesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceTemplatesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstanceWithNamedPorts. */
                interface IInstanceWithNamedPorts {

                    /** InstanceWithNamedPorts instance */
                    instance?: (string|null);

                    /** InstanceWithNamedPorts namedPorts */
                    namedPorts?: (google.cloud.compute.v1beta.INamedPort[]|null);

                    /** InstanceWithNamedPorts status */
                    status?: (string|null);
                }

                /** Represents an InstanceWithNamedPorts. */
                class InstanceWithNamedPorts implements IInstanceWithNamedPorts {

                    /**
                     * Constructs a new InstanceWithNamedPorts.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstanceWithNamedPorts);

                    /** InstanceWithNamedPorts instance. */
                    public instance?: (string|null);

                    /** InstanceWithNamedPorts namedPorts. */
                    public namedPorts: google.cloud.compute.v1beta.INamedPort[];

                    /** InstanceWithNamedPorts status. */
                    public status?: (string|null);

                    /**
                     * Creates a new InstanceWithNamedPorts instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstanceWithNamedPorts instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstanceWithNamedPorts): google.cloud.compute.v1beta.InstanceWithNamedPorts;

                    /**
                     * Encodes the specified InstanceWithNamedPorts message. Does not implicitly {@link google.cloud.compute.v1beta.InstanceWithNamedPorts.verify|verify} messages.
                     * @param message InstanceWithNamedPorts message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstanceWithNamedPorts, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstanceWithNamedPorts message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstanceWithNamedPorts.verify|verify} messages.
                     * @param message InstanceWithNamedPorts message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstanceWithNamedPorts, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstanceWithNamedPorts message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstanceWithNamedPorts
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstanceWithNamedPorts;

                    /**
                     * Decodes an InstanceWithNamedPorts message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstanceWithNamedPorts
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstanceWithNamedPorts;

                    /**
                     * Verifies an InstanceWithNamedPorts message.
                     * @param message Plain 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 InstanceWithNamedPorts message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstanceWithNamedPorts
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstanceWithNamedPorts;

                    /**
                     * Creates a plain object from an InstanceWithNamedPorts message. Also converts values to other types if specified.
                     * @param message InstanceWithNamedPorts
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstanceWithNamedPorts, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstanceWithNamedPorts to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstanceWithNamedPorts
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstanceWithNamedPorts {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DEPROVISIONING = 428935662,
                        PENDING = 35394935,
                        PENDING_STOP = 362509770,
                        PROVISIONING = 290896621,
                        REPAIRING = 413483285,
                        RUNNING = 121282975,
                        STAGING = 431072283,
                        STOPPED = 444276141,
                        STOPPING = 350791796,
                        SUSPENDED = 51223995,
                        SUSPENDING = 514206246,
                        TERMINATED = 250018339
                    }
                }

                /** Properties of an InstancesAddResourcePoliciesRequest. */
                interface IInstancesAddResourcePoliciesRequest {

                    /** InstancesAddResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents an InstancesAddResourcePoliciesRequest. */
                class InstancesAddResourcePoliciesRequest implements IInstancesAddResourcePoliciesRequest {

                    /**
                     * Constructs a new InstancesAddResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesAddResourcePoliciesRequest);

                    /** InstancesAddResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new InstancesAddResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesAddResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesAddResourcePoliciesRequest): google.cloud.compute.v1beta.InstancesAddResourcePoliciesRequest;

                    /**
                     * Encodes the specified InstancesAddResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message InstancesAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesAddResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message InstancesAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesAddResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesAddResourcePoliciesRequest;

                    /**
                     * Decodes an InstancesAddResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesAddResourcePoliciesRequest;

                    /**
                     * Verifies an InstancesAddResourcePoliciesRequest message.
                     * @param message Plain 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 InstancesAddResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesAddResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesAddResourcePoliciesRequest;

                    /**
                     * Creates a plain object from an InstancesAddResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message InstancesAddResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesAddResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesAddResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesAddResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesBulkInsertOperationMetadata. */
                interface IInstancesBulkInsertOperationMetadata {

                    /** InstancesBulkInsertOperationMetadata perLocationStatus */
                    perLocationStatus?: ({ [k: string]: google.cloud.compute.v1beta.IBulkInsertOperationStatus }|null);
                }

                /** Represents an InstancesBulkInsertOperationMetadata. */
                class InstancesBulkInsertOperationMetadata implements IInstancesBulkInsertOperationMetadata {

                    /**
                     * Constructs a new InstancesBulkInsertOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesBulkInsertOperationMetadata);

                    /** InstancesBulkInsertOperationMetadata perLocationStatus. */
                    public perLocationStatus: { [k: string]: google.cloud.compute.v1beta.IBulkInsertOperationStatus };

                    /**
                     * Creates a new InstancesBulkInsertOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesBulkInsertOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesBulkInsertOperationMetadata): google.cloud.compute.v1beta.InstancesBulkInsertOperationMetadata;

                    /**
                     * Encodes the specified InstancesBulkInsertOperationMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesBulkInsertOperationMetadata.verify|verify} messages.
                     * @param message InstancesBulkInsertOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesBulkInsertOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesBulkInsertOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesBulkInsertOperationMetadata.verify|verify} messages.
                     * @param message InstancesBulkInsertOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesBulkInsertOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesBulkInsertOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesBulkInsertOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesBulkInsertOperationMetadata;

                    /**
                     * Decodes an InstancesBulkInsertOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesBulkInsertOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesBulkInsertOperationMetadata;

                    /**
                     * Verifies an InstancesBulkInsertOperationMetadata message.
                     * @param message Plain 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 InstancesBulkInsertOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesBulkInsertOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesBulkInsertOperationMetadata;

                    /**
                     * Creates a plain object from an InstancesBulkInsertOperationMetadata message. Also converts values to other types if specified.
                     * @param message InstancesBulkInsertOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesBulkInsertOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesBulkInsertOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesBulkInsertOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesGetEffectiveFirewallsResponse. */
                interface IInstancesGetEffectiveFirewallsResponse {

                    /** InstancesGetEffectiveFirewallsResponse firewallPolicys */
                    firewallPolicys?: (google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy[]|null);

                    /** InstancesGetEffectiveFirewallsResponse firewalls */
                    firewalls?: (google.cloud.compute.v1beta.IFirewall[]|null);

                    /** InstancesGetEffectiveFirewallsResponse organizationFirewalls */
                    organizationFirewalls?: (google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy[]|null);
                }

                /** Represents an InstancesGetEffectiveFirewallsResponse. */
                class InstancesGetEffectiveFirewallsResponse implements IInstancesGetEffectiveFirewallsResponse {

                    /**
                     * Constructs a new InstancesGetEffectiveFirewallsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponse);

                    /** InstancesGetEffectiveFirewallsResponse firewallPolicys. */
                    public firewallPolicys: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy[];

                    /** InstancesGetEffectiveFirewallsResponse firewalls. */
                    public firewalls: google.cloud.compute.v1beta.IFirewall[];

                    /** InstancesGetEffectiveFirewallsResponse organizationFirewalls. */
                    public organizationFirewalls: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy[];

                    /**
                     * Creates a new InstancesGetEffectiveFirewallsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesGetEffectiveFirewallsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponse): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse;

                    /**
                     * Verifies an InstancesGetEffectiveFirewallsResponse message.
                     * @param message Plain 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 InstancesGetEffectiveFirewallsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesGetEffectiveFirewallsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse;

                    /**
                     * Creates a plain object from an InstancesGetEffectiveFirewallsResponse message. Also converts values to other types if specified.
                     * @param message InstancesGetEffectiveFirewallsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesGetEffectiveFirewallsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesGetEffectiveFirewallsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                interface IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName */
                    displayName?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy name */
                    name?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules */
                    packetMirroringRules?: (google.cloud.compute.v1beta.IFirewallPolicyRule[]|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority */
                    priority?: (number|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules */
                    rules?: (google.cloud.compute.v1beta.IFirewallPolicyRule[]|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy shortName */
                    shortName?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy type */
                    type?: (string|null);
                }

                /** Represents an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy implements IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /**
                     * Constructs a new InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName. */
                    public displayName?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy name. */
                    public name?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules. */
                    public packetMirroringRules: google.cloud.compute.v1beta.IFirewallPolicyRule[];

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority. */
                    public priority?: (number|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules. */
                    public rules: google.cloud.compute.v1beta.IFirewallPolicyRule[];

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy shortName. */
                    public shortName?: (string|null);

                    /** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Verifies an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message.
                     * @param message Plain 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 InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Creates a plain object from an InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Also converts values to other types if specified.
                     * @param message InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HIERARCHY = 69902869,
                        NETWORK = 413984270,
                        NETWORK_REGIONAL = 190804272,
                        SYSTEM_GLOBAL = 60099507,
                        SYSTEM_REGIONAL = 161777199,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy. */
                interface IInstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy {

                    /** InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy id */
                    id?: (number|Long|string|null);

                    /** InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy rules */
                    rules?: (google.cloud.compute.v1beta.ISecurityPolicyRule[]|null);
                }

                /** Represents an InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy. */
                class InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy implements IInstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy {

                    /**
                     * Constructs a new InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy);

                    /** InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy id. */
                    public id?: (number|Long|string|null);

                    /** InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy rules. */
                    public rules: google.cloud.compute.v1beta.ISecurityPolicyRule[];

                    /**
                     * Creates a new InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy.verify|verify} messages.
                     * @param message InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy;

                    /**
                     * Decodes an InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy;

                    /**
                     * Verifies an InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message.
                     * @param message Plain 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 InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy;

                    /**
                     * Creates a plain object from an InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy message. Also converts values to other types if specified.
                     * @param message InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesRemoveResourcePoliciesRequest. */
                interface IInstancesRemoveResourcePoliciesRequest {

                    /** InstancesRemoveResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents an InstancesRemoveResourcePoliciesRequest. */
                class InstancesRemoveResourcePoliciesRequest implements IInstancesRemoveResourcePoliciesRequest {

                    /**
                     * Constructs a new InstancesRemoveResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesRemoveResourcePoliciesRequest);

                    /** InstancesRemoveResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new InstancesRemoveResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesRemoveResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesRemoveResourcePoliciesRequest): google.cloud.compute.v1beta.InstancesRemoveResourcePoliciesRequest;

                    /**
                     * Encodes the specified InstancesRemoveResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message InstancesRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesRemoveResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message InstancesRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesRemoveResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesRemoveResourcePoliciesRequest;

                    /**
                     * Decodes an InstancesRemoveResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesRemoveResourcePoliciesRequest;

                    /**
                     * Verifies an InstancesRemoveResourcePoliciesRequest message.
                     * @param message Plain 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 InstancesRemoveResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesRemoveResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesRemoveResourcePoliciesRequest;

                    /**
                     * Creates a plain object from an InstancesRemoveResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message InstancesRemoveResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesRemoveResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesRemoveResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesRemoveResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesReportHostAsFaultyRequest. */
                interface IInstancesReportHostAsFaultyRequest {

                    /** InstancesReportHostAsFaultyRequest disruptionSchedule */
                    disruptionSchedule?: (string|null);

                    /** InstancesReportHostAsFaultyRequest faultReasons */
                    faultReasons?: (google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequestFaultReason[]|null);
                }

                /** Represents an InstancesReportHostAsFaultyRequest. */
                class InstancesReportHostAsFaultyRequest implements IInstancesReportHostAsFaultyRequest {

                    /**
                     * Constructs a new InstancesReportHostAsFaultyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequest);

                    /** InstancesReportHostAsFaultyRequest disruptionSchedule. */
                    public disruptionSchedule?: (string|null);

                    /** InstancesReportHostAsFaultyRequest faultReasons. */
                    public faultReasons: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequestFaultReason[];

                    /**
                     * Creates a new InstancesReportHostAsFaultyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesReportHostAsFaultyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequest): google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequest;

                    /**
                     * Encodes the specified InstancesReportHostAsFaultyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequest.verify|verify} messages.
                     * @param message InstancesReportHostAsFaultyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesReportHostAsFaultyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequest.verify|verify} messages.
                     * @param message InstancesReportHostAsFaultyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesReportHostAsFaultyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesReportHostAsFaultyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequest;

                    /**
                     * Decodes an InstancesReportHostAsFaultyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesReportHostAsFaultyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequest;

                    /**
                     * Verifies an InstancesReportHostAsFaultyRequest message.
                     * @param message Plain 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 InstancesReportHostAsFaultyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesReportHostAsFaultyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequest;

                    /**
                     * Creates a plain object from an InstancesReportHostAsFaultyRequest message. Also converts values to other types if specified.
                     * @param message InstancesReportHostAsFaultyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesReportHostAsFaultyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesReportHostAsFaultyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstancesReportHostAsFaultyRequest {

                    /** DisruptionSchedule enum. */
                    enum DisruptionSchedule {
                        UNDEFINED_DISRUPTION_SCHEDULE = 0,
                        DISRUPTION_SCHEDULE_UNSPECIFIED = 332543835,
                        FUTURE = 474513859,
                        IMMEDIATE = 152881041
                    }
                }

                /** Properties of an InstancesReportHostAsFaultyRequestFaultReason. */
                interface IInstancesReportHostAsFaultyRequestFaultReason {

                    /** InstancesReportHostAsFaultyRequestFaultReason behavior */
                    behavior?: (string|null);

                    /** InstancesReportHostAsFaultyRequestFaultReason description */
                    description?: (string|null);
                }

                /** Represents an InstancesReportHostAsFaultyRequestFaultReason. */
                class InstancesReportHostAsFaultyRequestFaultReason implements IInstancesReportHostAsFaultyRequestFaultReason {

                    /**
                     * Constructs a new InstancesReportHostAsFaultyRequestFaultReason.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequestFaultReason);

                    /** InstancesReportHostAsFaultyRequestFaultReason behavior. */
                    public behavior?: (string|null);

                    /** InstancesReportHostAsFaultyRequestFaultReason description. */
                    public description?: (string|null);

                    /**
                     * Creates a new InstancesReportHostAsFaultyRequestFaultReason instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesReportHostAsFaultyRequestFaultReason instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequestFaultReason): google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequestFaultReason;

                    /**
                     * Encodes the specified InstancesReportHostAsFaultyRequestFaultReason message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequestFaultReason.verify|verify} messages.
                     * @param message InstancesReportHostAsFaultyRequestFaultReason message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequestFaultReason, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesReportHostAsFaultyRequestFaultReason message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequestFaultReason.verify|verify} messages.
                     * @param message InstancesReportHostAsFaultyRequestFaultReason message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequestFaultReason, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesReportHostAsFaultyRequestFaultReason message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesReportHostAsFaultyRequestFaultReason
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequestFaultReason;

                    /**
                     * Decodes an InstancesReportHostAsFaultyRequestFaultReason message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesReportHostAsFaultyRequestFaultReason
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequestFaultReason;

                    /**
                     * Verifies an InstancesReportHostAsFaultyRequestFaultReason message.
                     * @param message Plain 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 InstancesReportHostAsFaultyRequestFaultReason message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesReportHostAsFaultyRequestFaultReason
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequestFaultReason;

                    /**
                     * Creates a plain object from an InstancesReportHostAsFaultyRequestFaultReason message. Also converts values to other types if specified.
                     * @param message InstancesReportHostAsFaultyRequestFaultReason
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequestFaultReason, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesReportHostAsFaultyRequestFaultReason to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesReportHostAsFaultyRequestFaultReason
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstancesReportHostAsFaultyRequestFaultReason {

                    /** Behavior enum. */
                    enum Behavior {
                        UNDEFINED_BEHAVIOR = 0,
                        BEHAVIOR_UNSPECIFIED = 85734570,
                        CHIP_ERROR = 263151669,
                        PERFORMANCE = 135701520,
                        SILENT_DATA_CORRUPTION = 111360678,
                        UNRECOVERABLE_GPU_ERROR = 363710747
                    }
                }

                /** Properties of an InstancesResumeRequest. */
                interface IInstancesResumeRequest {

                    /** InstancesResumeRequest disks */
                    disks?: (google.cloud.compute.v1beta.ICustomerEncryptionKeyProtectedDisk[]|null);

                    /** InstancesResumeRequest instanceEncryptionKey */
                    instanceEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);
                }

                /** Represents an InstancesResumeRequest. */
                class InstancesResumeRequest implements IInstancesResumeRequest {

                    /**
                     * Constructs a new InstancesResumeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesResumeRequest);

                    /** InstancesResumeRequest disks. */
                    public disks: google.cloud.compute.v1beta.ICustomerEncryptionKeyProtectedDisk[];

                    /** InstancesResumeRequest instanceEncryptionKey. */
                    public instanceEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /**
                     * Creates a new InstancesResumeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesResumeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesResumeRequest): google.cloud.compute.v1beta.InstancesResumeRequest;

                    /**
                     * Encodes the specified InstancesResumeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesResumeRequest.verify|verify} messages.
                     * @param message InstancesResumeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesResumeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesResumeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesResumeRequest.verify|verify} messages.
                     * @param message InstancesResumeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesResumeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesResumeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesResumeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesResumeRequest;

                    /**
                     * Decodes an InstancesResumeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesResumeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesResumeRequest;

                    /**
                     * Verifies an InstancesResumeRequest message.
                     * @param message Plain 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 InstancesResumeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesResumeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesResumeRequest;

                    /**
                     * Creates a plain object from an InstancesResumeRequest message. Also converts values to other types if specified.
                     * @param message InstancesResumeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesResumeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesResumeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesResumeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesScopedList. */
                interface IInstancesScopedList {

                    /** InstancesScopedList instances */
                    instances?: (google.cloud.compute.v1beta.IInstance[]|null);

                    /** InstancesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstancesScopedList. */
                class InstancesScopedList implements IInstancesScopedList {

                    /**
                     * Constructs a new InstancesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesScopedList);

                    /** InstancesScopedList instances. */
                    public instances: google.cloud.compute.v1beta.IInstance[];

                    /** InstancesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstancesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesScopedList): google.cloud.compute.v1beta.InstancesScopedList;

                    /**
                     * Encodes the specified InstancesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesScopedList.verify|verify} messages.
                     * @param message InstancesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesScopedList.verify|verify} messages.
                     * @param message InstancesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesScopedList;

                    /**
                     * Decodes an InstancesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesScopedList;

                    /**
                     * Verifies an InstancesScopedList message.
                     * @param message Plain 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 InstancesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesScopedList;

                    /**
                     * Creates a plain object from an InstancesScopedList message. Also converts values to other types if specified.
                     * @param message InstancesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetLabelsRequest. */
                interface IInstancesSetLabelsRequest {

                    /** InstancesSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** InstancesSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents an InstancesSetLabelsRequest. */
                class InstancesSetLabelsRequest implements IInstancesSetLabelsRequest {

                    /**
                     * Constructs a new InstancesSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesSetLabelsRequest);

                    /** InstancesSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** InstancesSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new InstancesSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesSetLabelsRequest): google.cloud.compute.v1beta.InstancesSetLabelsRequest;

                    /**
                     * Encodes the specified InstancesSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetLabelsRequest.verify|verify} messages.
                     * @param message InstancesSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetLabelsRequest.verify|verify} messages.
                     * @param message InstancesSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesSetLabelsRequest;

                    /**
                     * Decodes an InstancesSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesSetLabelsRequest;

                    /**
                     * Verifies an InstancesSetLabelsRequest message.
                     * @param message Plain 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 InstancesSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesSetLabelsRequest;

                    /**
                     * Creates a plain object from an InstancesSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetMachineResourcesRequest. */
                interface IInstancesSetMachineResourcesRequest {

                    /** InstancesSetMachineResourcesRequest guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1beta.IAcceleratorConfig[]|null);
                }

                /** Represents an InstancesSetMachineResourcesRequest. */
                class InstancesSetMachineResourcesRequest implements IInstancesSetMachineResourcesRequest {

                    /**
                     * Constructs a new InstancesSetMachineResourcesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesSetMachineResourcesRequest);

                    /** InstancesSetMachineResourcesRequest guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1beta.IAcceleratorConfig[];

                    /**
                     * Creates a new InstancesSetMachineResourcesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetMachineResourcesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesSetMachineResourcesRequest): google.cloud.compute.v1beta.InstancesSetMachineResourcesRequest;

                    /**
                     * Encodes the specified InstancesSetMachineResourcesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetMachineResourcesRequest.verify|verify} messages.
                     * @param message InstancesSetMachineResourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesSetMachineResourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetMachineResourcesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetMachineResourcesRequest.verify|verify} messages.
                     * @param message InstancesSetMachineResourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesSetMachineResourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetMachineResourcesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetMachineResourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesSetMachineResourcesRequest;

                    /**
                     * Decodes an InstancesSetMachineResourcesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetMachineResourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesSetMachineResourcesRequest;

                    /**
                     * Verifies an InstancesSetMachineResourcesRequest message.
                     * @param message Plain 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 InstancesSetMachineResourcesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetMachineResourcesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesSetMachineResourcesRequest;

                    /**
                     * Creates a plain object from an InstancesSetMachineResourcesRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetMachineResourcesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesSetMachineResourcesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetMachineResourcesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetMachineResourcesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetMachineTypeRequest. */
                interface IInstancesSetMachineTypeRequest {

                    /** InstancesSetMachineTypeRequest machineType */
                    machineType?: (string|null);
                }

                /** Represents an InstancesSetMachineTypeRequest. */
                class InstancesSetMachineTypeRequest implements IInstancesSetMachineTypeRequest {

                    /**
                     * Constructs a new InstancesSetMachineTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesSetMachineTypeRequest);

                    /** InstancesSetMachineTypeRequest machineType. */
                    public machineType?: (string|null);

                    /**
                     * Creates a new InstancesSetMachineTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetMachineTypeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesSetMachineTypeRequest): google.cloud.compute.v1beta.InstancesSetMachineTypeRequest;

                    /**
                     * Encodes the specified InstancesSetMachineTypeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetMachineTypeRequest.verify|verify} messages.
                     * @param message InstancesSetMachineTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesSetMachineTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetMachineTypeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetMachineTypeRequest.verify|verify} messages.
                     * @param message InstancesSetMachineTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesSetMachineTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetMachineTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetMachineTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesSetMachineTypeRequest;

                    /**
                     * Decodes an InstancesSetMachineTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetMachineTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesSetMachineTypeRequest;

                    /**
                     * Verifies an InstancesSetMachineTypeRequest message.
                     * @param message Plain 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 InstancesSetMachineTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetMachineTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesSetMachineTypeRequest;

                    /**
                     * Creates a plain object from an InstancesSetMachineTypeRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetMachineTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesSetMachineTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetMachineTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetMachineTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetMinCpuPlatformRequest. */
                interface IInstancesSetMinCpuPlatformRequest {

                    /** InstancesSetMinCpuPlatformRequest minCpuPlatform */
                    minCpuPlatform?: (string|null);
                }

                /** Represents an InstancesSetMinCpuPlatformRequest. */
                class InstancesSetMinCpuPlatformRequest implements IInstancesSetMinCpuPlatformRequest {

                    /**
                     * Constructs a new InstancesSetMinCpuPlatformRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesSetMinCpuPlatformRequest);

                    /** InstancesSetMinCpuPlatformRequest minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /**
                     * Creates a new InstancesSetMinCpuPlatformRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetMinCpuPlatformRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesSetMinCpuPlatformRequest): google.cloud.compute.v1beta.InstancesSetMinCpuPlatformRequest;

                    /**
                     * Encodes the specified InstancesSetMinCpuPlatformRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetMinCpuPlatformRequest.verify|verify} messages.
                     * @param message InstancesSetMinCpuPlatformRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesSetMinCpuPlatformRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetMinCpuPlatformRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetMinCpuPlatformRequest.verify|verify} messages.
                     * @param message InstancesSetMinCpuPlatformRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesSetMinCpuPlatformRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetMinCpuPlatformRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetMinCpuPlatformRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesSetMinCpuPlatformRequest;

                    /**
                     * Decodes an InstancesSetMinCpuPlatformRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetMinCpuPlatformRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesSetMinCpuPlatformRequest;

                    /**
                     * Verifies an InstancesSetMinCpuPlatformRequest message.
                     * @param message Plain 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 InstancesSetMinCpuPlatformRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetMinCpuPlatformRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesSetMinCpuPlatformRequest;

                    /**
                     * Creates a plain object from an InstancesSetMinCpuPlatformRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetMinCpuPlatformRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesSetMinCpuPlatformRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetMinCpuPlatformRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetMinCpuPlatformRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetNameRequest. */
                interface IInstancesSetNameRequest {

                    /** InstancesSetNameRequest currentName */
                    currentName?: (string|null);

                    /** InstancesSetNameRequest name */
                    name?: (string|null);
                }

                /** Represents an InstancesSetNameRequest. */
                class InstancesSetNameRequest implements IInstancesSetNameRequest {

                    /**
                     * Constructs a new InstancesSetNameRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesSetNameRequest);

                    /** InstancesSetNameRequest currentName. */
                    public currentName?: (string|null);

                    /** InstancesSetNameRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new InstancesSetNameRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetNameRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesSetNameRequest): google.cloud.compute.v1beta.InstancesSetNameRequest;

                    /**
                     * Encodes the specified InstancesSetNameRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetNameRequest.verify|verify} messages.
                     * @param message InstancesSetNameRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesSetNameRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetNameRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetNameRequest.verify|verify} messages.
                     * @param message InstancesSetNameRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesSetNameRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetNameRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetNameRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesSetNameRequest;

                    /**
                     * Decodes an InstancesSetNameRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetNameRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesSetNameRequest;

                    /**
                     * Verifies an InstancesSetNameRequest message.
                     * @param message Plain 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 InstancesSetNameRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetNameRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesSetNameRequest;

                    /**
                     * Creates a plain object from an InstancesSetNameRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetNameRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesSetNameRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetNameRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetNameRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetSecurityPolicyRequest. */
                interface IInstancesSetSecurityPolicyRequest {

                    /** InstancesSetSecurityPolicyRequest networkInterfaces */
                    networkInterfaces?: (string[]|null);

                    /** InstancesSetSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents an InstancesSetSecurityPolicyRequest. */
                class InstancesSetSecurityPolicyRequest implements IInstancesSetSecurityPolicyRequest {

                    /**
                     * Constructs a new InstancesSetSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesSetSecurityPolicyRequest);

                    /** InstancesSetSecurityPolicyRequest networkInterfaces. */
                    public networkInterfaces: string[];

                    /** InstancesSetSecurityPolicyRequest securityPolicy. */
                    public securityPolicy?: (string|null);

                    /**
                     * Creates a new InstancesSetSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesSetSecurityPolicyRequest): google.cloud.compute.v1beta.InstancesSetSecurityPolicyRequest;

                    /**
                     * Encodes the specified InstancesSetSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetSecurityPolicyRequest.verify|verify} messages.
                     * @param message InstancesSetSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesSetSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetSecurityPolicyRequest.verify|verify} messages.
                     * @param message InstancesSetSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesSetSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesSetSecurityPolicyRequest;

                    /**
                     * Decodes an InstancesSetSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesSetSecurityPolicyRequest;

                    /**
                     * Verifies an InstancesSetSecurityPolicyRequest message.
                     * @param message Plain 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 InstancesSetSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesSetSecurityPolicyRequest;

                    /**
                     * Creates a plain object from an InstancesSetSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesSetSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesSetServiceAccountRequest. */
                interface IInstancesSetServiceAccountRequest {

                    /** InstancesSetServiceAccountRequest email */
                    email?: (string|null);

                    /** InstancesSetServiceAccountRequest scopes */
                    scopes?: (string[]|null);
                }

                /** Represents an InstancesSetServiceAccountRequest. */
                class InstancesSetServiceAccountRequest implements IInstancesSetServiceAccountRequest {

                    /**
                     * Constructs a new InstancesSetServiceAccountRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesSetServiceAccountRequest);

                    /** InstancesSetServiceAccountRequest email. */
                    public email?: (string|null);

                    /** InstancesSetServiceAccountRequest scopes. */
                    public scopes: string[];

                    /**
                     * Creates a new InstancesSetServiceAccountRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesSetServiceAccountRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesSetServiceAccountRequest): google.cloud.compute.v1beta.InstancesSetServiceAccountRequest;

                    /**
                     * Encodes the specified InstancesSetServiceAccountRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetServiceAccountRequest.verify|verify} messages.
                     * @param message InstancesSetServiceAccountRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesSetServiceAccountRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesSetServiceAccountRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesSetServiceAccountRequest.verify|verify} messages.
                     * @param message InstancesSetServiceAccountRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesSetServiceAccountRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesSetServiceAccountRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesSetServiceAccountRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesSetServiceAccountRequest;

                    /**
                     * Decodes an InstancesSetServiceAccountRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesSetServiceAccountRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesSetServiceAccountRequest;

                    /**
                     * Verifies an InstancesSetServiceAccountRequest message.
                     * @param message Plain 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 InstancesSetServiceAccountRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesSetServiceAccountRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesSetServiceAccountRequest;

                    /**
                     * Creates a plain object from an InstancesSetServiceAccountRequest message. Also converts values to other types if specified.
                     * @param message InstancesSetServiceAccountRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesSetServiceAccountRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesSetServiceAccountRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesSetServiceAccountRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstancesStartWithEncryptionKeyRequest. */
                interface IInstancesStartWithEncryptionKeyRequest {

                    /** InstancesStartWithEncryptionKeyRequest disks */
                    disks?: (google.cloud.compute.v1beta.ICustomerEncryptionKeyProtectedDisk[]|null);
                }

                /** Represents an InstancesStartWithEncryptionKeyRequest. */
                class InstancesStartWithEncryptionKeyRequest implements IInstancesStartWithEncryptionKeyRequest {

                    /**
                     * Constructs a new InstancesStartWithEncryptionKeyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstancesStartWithEncryptionKeyRequest);

                    /** InstancesStartWithEncryptionKeyRequest disks. */
                    public disks: google.cloud.compute.v1beta.ICustomerEncryptionKeyProtectedDisk[];

                    /**
                     * Creates a new InstancesStartWithEncryptionKeyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstancesStartWithEncryptionKeyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstancesStartWithEncryptionKeyRequest): google.cloud.compute.v1beta.InstancesStartWithEncryptionKeyRequest;

                    /**
                     * Encodes the specified InstancesStartWithEncryptionKeyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InstancesStartWithEncryptionKeyRequest.verify|verify} messages.
                     * @param message InstancesStartWithEncryptionKeyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstancesStartWithEncryptionKeyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstancesStartWithEncryptionKeyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstancesStartWithEncryptionKeyRequest.verify|verify} messages.
                     * @param message InstancesStartWithEncryptionKeyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstancesStartWithEncryptionKeyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstancesStartWithEncryptionKeyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstancesStartWithEncryptionKeyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstancesStartWithEncryptionKeyRequest;

                    /**
                     * Decodes an InstancesStartWithEncryptionKeyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstancesStartWithEncryptionKeyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstancesStartWithEncryptionKeyRequest;

                    /**
                     * Verifies an InstancesStartWithEncryptionKeyRequest message.
                     * @param message Plain 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 InstancesStartWithEncryptionKeyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstancesStartWithEncryptionKeyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstancesStartWithEncryptionKeyRequest;

                    /**
                     * Creates a plain object from an InstancesStartWithEncryptionKeyRequest message. Also converts values to other types if specified.
                     * @param message InstancesStartWithEncryptionKeyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstancesStartWithEncryptionKeyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstancesStartWithEncryptionKeyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstancesStartWithEncryptionKeyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshot. */
                interface IInstantSnapshot {

                    /** InstantSnapshot architecture */
                    architecture?: (string|null);

                    /** InstantSnapshot creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstantSnapshot description */
                    description?: (string|null);

                    /** InstantSnapshot diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** InstantSnapshot id */
                    id?: (number|Long|string|null);

                    /** InstantSnapshot kind */
                    kind?: (string|null);

                    /** InstantSnapshot labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** InstantSnapshot labels */
                    labels?: ({ [k: string]: string }|null);

                    /** InstantSnapshot name */
                    name?: (string|null);

                    /** InstantSnapshot params */
                    params?: (google.cloud.compute.v1beta.IInstantSnapshotParams|null);

                    /** InstantSnapshot region */
                    region?: (string|null);

                    /** InstantSnapshot resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1beta.IInstantSnapshotResourceStatus|null);

                    /** InstantSnapshot satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** InstantSnapshot satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** InstantSnapshot selfLink */
                    selfLink?: (string|null);

                    /** InstantSnapshot selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** InstantSnapshot sourceDisk */
                    sourceDisk?: (string|null);

                    /** InstantSnapshot sourceDiskId */
                    sourceDiskId?: (string|null);

                    /** InstantSnapshot sourceInstantSnapshotGroup */
                    sourceInstantSnapshotGroup?: (string|null);

                    /** InstantSnapshot sourceInstantSnapshotGroupId */
                    sourceInstantSnapshotGroupId?: (string|null);

                    /** InstantSnapshot status */
                    status?: (string|null);

                    /** InstantSnapshot zone */
                    zone?: (string|null);
                }

                /** Represents an InstantSnapshot. */
                class InstantSnapshot implements IInstantSnapshot {

                    /**
                     * Constructs a new InstantSnapshot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshot);

                    /** InstantSnapshot architecture. */
                    public architecture?: (string|null);

                    /** InstantSnapshot creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstantSnapshot description. */
                    public description?: (string|null);

                    /** InstantSnapshot diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** InstantSnapshot id. */
                    public id?: (number|Long|string|null);

                    /** InstantSnapshot kind. */
                    public kind?: (string|null);

                    /** InstantSnapshot labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** InstantSnapshot labels. */
                    public labels: { [k: string]: string };

                    /** InstantSnapshot name. */
                    public name?: (string|null);

                    /** InstantSnapshot params. */
                    public params?: (google.cloud.compute.v1beta.IInstantSnapshotParams|null);

                    /** InstantSnapshot region. */
                    public region?: (string|null);

                    /** InstantSnapshot resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1beta.IInstantSnapshotResourceStatus|null);

                    /** InstantSnapshot satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** InstantSnapshot satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** InstantSnapshot selfLink. */
                    public selfLink?: (string|null);

                    /** InstantSnapshot selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** InstantSnapshot sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** InstantSnapshot sourceDiskId. */
                    public sourceDiskId?: (string|null);

                    /** InstantSnapshot sourceInstantSnapshotGroup. */
                    public sourceInstantSnapshotGroup?: (string|null);

                    /** InstantSnapshot sourceInstantSnapshotGroupId. */
                    public sourceInstantSnapshotGroupId?: (string|null);

                    /** InstantSnapshot status. */
                    public status?: (string|null);

                    /** InstantSnapshot zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstantSnapshot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshot instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshot): google.cloud.compute.v1beta.InstantSnapshot;

                    /**
                     * Encodes the specified InstantSnapshot message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshot.verify|verify} messages.
                     * @param message InstantSnapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshot message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshot.verify|verify} messages.
                     * @param message InstantSnapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshot;

                    /**
                     * Decodes an InstantSnapshot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshot;

                    /**
                     * Verifies an InstantSnapshot message.
                     * @param message Plain 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 InstantSnapshot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshot
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshot;

                    /**
                     * Creates a plain object from an InstantSnapshot message. Also converts values to other types if specified.
                     * @param message InstantSnapshot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstantSnapshot {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963,
                        UNAVAILABLE = 413756464
                    }
                }

                /** Properties of an InstantSnapshotAggregatedList. */
                interface IInstantSnapshotAggregatedList {

                    /** InstantSnapshotAggregatedList id */
                    id?: (string|null);

                    /** InstantSnapshotAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IInstantSnapshotsScopedList }|null);

                    /** InstantSnapshotAggregatedList kind */
                    kind?: (string|null);

                    /** InstantSnapshotAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstantSnapshotAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InstantSnapshotAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InstantSnapshotAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstantSnapshotAggregatedList. */
                class InstantSnapshotAggregatedList implements IInstantSnapshotAggregatedList {

                    /**
                     * Constructs a new InstantSnapshotAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotAggregatedList);

                    /** InstantSnapshotAggregatedList id. */
                    public id?: (string|null);

                    /** InstantSnapshotAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IInstantSnapshotsScopedList };

                    /** InstantSnapshotAggregatedList kind. */
                    public kind?: (string|null);

                    /** InstantSnapshotAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstantSnapshotAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InstantSnapshotAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InstantSnapshotAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstantSnapshotAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotAggregatedList): google.cloud.compute.v1beta.InstantSnapshotAggregatedList;

                    /**
                     * Encodes the specified InstantSnapshotAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotAggregatedList.verify|verify} messages.
                     * @param message InstantSnapshotAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotAggregatedList.verify|verify} messages.
                     * @param message InstantSnapshotAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotAggregatedList;

                    /**
                     * Decodes an InstantSnapshotAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotAggregatedList;

                    /**
                     * Verifies an InstantSnapshotAggregatedList message.
                     * @param message Plain 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 InstantSnapshotAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotAggregatedList;

                    /**
                     * Creates a plain object from an InstantSnapshotAggregatedList message. Also converts values to other types if specified.
                     * @param message InstantSnapshotAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotGroup. */
                interface IInstantSnapshotGroup {

                    /** InstantSnapshotGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InstantSnapshotGroup description */
                    description?: (string|null);

                    /** InstantSnapshotGroup id */
                    id?: (number|Long|string|null);

                    /** InstantSnapshotGroup kind */
                    kind?: (string|null);

                    /** InstantSnapshotGroup name */
                    name?: (string|null);

                    /** InstantSnapshotGroup region */
                    region?: (string|null);

                    /** InstantSnapshotGroup resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1beta.IInstantSnapshotGroupResourceStatus|null);

                    /** InstantSnapshotGroup selfLink */
                    selfLink?: (string|null);

                    /** InstantSnapshotGroup selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** InstantSnapshotGroup sourceConsistencyGroup */
                    sourceConsistencyGroup?: (string|null);

                    /** InstantSnapshotGroup status */
                    status?: (string|null);

                    /** InstantSnapshotGroup zone */
                    zone?: (string|null);
                }

                /** Represents an InstantSnapshotGroup. */
                class InstantSnapshotGroup implements IInstantSnapshotGroup {

                    /**
                     * Constructs a new InstantSnapshotGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotGroup);

                    /** InstantSnapshotGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InstantSnapshotGroup description. */
                    public description?: (string|null);

                    /** InstantSnapshotGroup id. */
                    public id?: (number|Long|string|null);

                    /** InstantSnapshotGroup kind. */
                    public kind?: (string|null);

                    /** InstantSnapshotGroup name. */
                    public name?: (string|null);

                    /** InstantSnapshotGroup region. */
                    public region?: (string|null);

                    /** InstantSnapshotGroup resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1beta.IInstantSnapshotGroupResourceStatus|null);

                    /** InstantSnapshotGroup selfLink. */
                    public selfLink?: (string|null);

                    /** InstantSnapshotGroup selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** InstantSnapshotGroup sourceConsistencyGroup. */
                    public sourceConsistencyGroup?: (string|null);

                    /** InstantSnapshotGroup status. */
                    public status?: (string|null);

                    /** InstantSnapshotGroup zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InstantSnapshotGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotGroup): google.cloud.compute.v1beta.InstantSnapshotGroup;

                    /**
                     * Encodes the specified InstantSnapshotGroup message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotGroup.verify|verify} messages.
                     * @param message InstantSnapshotGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotGroup.verify|verify} messages.
                     * @param message InstantSnapshotGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotGroup;

                    /**
                     * Decodes an InstantSnapshotGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotGroup;

                    /**
                     * Verifies an InstantSnapshotGroup message.
                     * @param message Plain 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 InstantSnapshotGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotGroup;

                    /**
                     * Creates a plain object from an InstantSnapshotGroup message. Also converts values to other types if specified.
                     * @param message InstantSnapshotGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InstantSnapshotGroup {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        INVALID = 530283991,
                        READY = 77848963,
                        UNKNOWN = 433141802
                    }
                }

                /** Properties of an InstantSnapshotGroupParameters. */
                interface IInstantSnapshotGroupParameters {

                    /** InstantSnapshotGroupParameters sourceInstantSnapshotGroup */
                    sourceInstantSnapshotGroup?: (string|null);
                }

                /** Represents an InstantSnapshotGroupParameters. */
                class InstantSnapshotGroupParameters implements IInstantSnapshotGroupParameters {

                    /**
                     * Constructs a new InstantSnapshotGroupParameters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotGroupParameters);

                    /** InstantSnapshotGroupParameters sourceInstantSnapshotGroup. */
                    public sourceInstantSnapshotGroup?: (string|null);

                    /**
                     * Creates a new InstantSnapshotGroupParameters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotGroupParameters instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotGroupParameters): google.cloud.compute.v1beta.InstantSnapshotGroupParameters;

                    /**
                     * Encodes the specified InstantSnapshotGroupParameters message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotGroupParameters.verify|verify} messages.
                     * @param message InstantSnapshotGroupParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotGroupParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotGroupParameters message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotGroupParameters.verify|verify} messages.
                     * @param message InstantSnapshotGroupParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotGroupParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotGroupParameters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotGroupParameters
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotGroupParameters;

                    /**
                     * Decodes an InstantSnapshotGroupParameters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotGroupParameters
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotGroupParameters;

                    /**
                     * Verifies an InstantSnapshotGroupParameters message.
                     * @param message Plain 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 InstantSnapshotGroupParameters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotGroupParameters
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotGroupParameters;

                    /**
                     * Creates a plain object from an InstantSnapshotGroupParameters message. Also converts values to other types if specified.
                     * @param message InstantSnapshotGroupParameters
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotGroupParameters, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotGroupParameters to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotGroupParameters
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotGroupResourceStatus. */
                interface IInstantSnapshotGroupResourceStatus {

                    /** InstantSnapshotGroupResourceStatus consistencyMembershipResolutionTime */
                    consistencyMembershipResolutionTime?: (string|null);

                    /** InstantSnapshotGroupResourceStatus sourceInfo */
                    sourceInfo?: (google.cloud.compute.v1beta.IInstantSnapshotGroupSourceInfo|null);
                }

                /** Represents an InstantSnapshotGroupResourceStatus. */
                class InstantSnapshotGroupResourceStatus implements IInstantSnapshotGroupResourceStatus {

                    /**
                     * Constructs a new InstantSnapshotGroupResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotGroupResourceStatus);

                    /** InstantSnapshotGroupResourceStatus consistencyMembershipResolutionTime. */
                    public consistencyMembershipResolutionTime?: (string|null);

                    /** InstantSnapshotGroupResourceStatus sourceInfo. */
                    public sourceInfo?: (google.cloud.compute.v1beta.IInstantSnapshotGroupSourceInfo|null);

                    /**
                     * Creates a new InstantSnapshotGroupResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotGroupResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotGroupResourceStatus): google.cloud.compute.v1beta.InstantSnapshotGroupResourceStatus;

                    /**
                     * Encodes the specified InstantSnapshotGroupResourceStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotGroupResourceStatus.verify|verify} messages.
                     * @param message InstantSnapshotGroupResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotGroupResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotGroupResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotGroupResourceStatus.verify|verify} messages.
                     * @param message InstantSnapshotGroupResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotGroupResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotGroupResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotGroupResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotGroupResourceStatus;

                    /**
                     * Decodes an InstantSnapshotGroupResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotGroupResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotGroupResourceStatus;

                    /**
                     * Verifies an InstantSnapshotGroupResourceStatus message.
                     * @param message Plain 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 InstantSnapshotGroupResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotGroupResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotGroupResourceStatus;

                    /**
                     * Creates a plain object from an InstantSnapshotGroupResourceStatus message. Also converts values to other types if specified.
                     * @param message InstantSnapshotGroupResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotGroupResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotGroupResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotGroupResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotGroupSourceInfo. */
                interface IInstantSnapshotGroupSourceInfo {

                    /** InstantSnapshotGroupSourceInfo consistencyGroup */
                    consistencyGroup?: (string|null);

                    /** InstantSnapshotGroupSourceInfo consistencyGroupId */
                    consistencyGroupId?: (string|null);
                }

                /** Represents an InstantSnapshotGroupSourceInfo. */
                class InstantSnapshotGroupSourceInfo implements IInstantSnapshotGroupSourceInfo {

                    /**
                     * Constructs a new InstantSnapshotGroupSourceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotGroupSourceInfo);

                    /** InstantSnapshotGroupSourceInfo consistencyGroup. */
                    public consistencyGroup?: (string|null);

                    /** InstantSnapshotGroupSourceInfo consistencyGroupId. */
                    public consistencyGroupId?: (string|null);

                    /**
                     * Creates a new InstantSnapshotGroupSourceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotGroupSourceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotGroupSourceInfo): google.cloud.compute.v1beta.InstantSnapshotGroupSourceInfo;

                    /**
                     * Encodes the specified InstantSnapshotGroupSourceInfo message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotGroupSourceInfo.verify|verify} messages.
                     * @param message InstantSnapshotGroupSourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotGroupSourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotGroupSourceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotGroupSourceInfo.verify|verify} messages.
                     * @param message InstantSnapshotGroupSourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotGroupSourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotGroupSourceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotGroupSourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotGroupSourceInfo;

                    /**
                     * Decodes an InstantSnapshotGroupSourceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotGroupSourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotGroupSourceInfo;

                    /**
                     * Verifies an InstantSnapshotGroupSourceInfo message.
                     * @param message Plain 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 InstantSnapshotGroupSourceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotGroupSourceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotGroupSourceInfo;

                    /**
                     * Creates a plain object from an InstantSnapshotGroupSourceInfo message. Also converts values to other types if specified.
                     * @param message InstantSnapshotGroupSourceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotGroupSourceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotGroupSourceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotGroupSourceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotList. */
                interface IInstantSnapshotList {

                    /** InstantSnapshotList id */
                    id?: (string|null);

                    /** InstantSnapshotList items */
                    items?: (google.cloud.compute.v1beta.IInstantSnapshot[]|null);

                    /** InstantSnapshotList kind */
                    kind?: (string|null);

                    /** InstantSnapshotList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InstantSnapshotList selfLink */
                    selfLink?: (string|null);

                    /** InstantSnapshotList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstantSnapshotList. */
                class InstantSnapshotList implements IInstantSnapshotList {

                    /**
                     * Constructs a new InstantSnapshotList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotList);

                    /** InstantSnapshotList id. */
                    public id?: (string|null);

                    /** InstantSnapshotList items. */
                    public items: google.cloud.compute.v1beta.IInstantSnapshot[];

                    /** InstantSnapshotList kind. */
                    public kind?: (string|null);

                    /** InstantSnapshotList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InstantSnapshotList selfLink. */
                    public selfLink?: (string|null);

                    /** InstantSnapshotList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstantSnapshotList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotList): google.cloud.compute.v1beta.InstantSnapshotList;

                    /**
                     * Encodes the specified InstantSnapshotList message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotList.verify|verify} messages.
                     * @param message InstantSnapshotList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotList.verify|verify} messages.
                     * @param message InstantSnapshotList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotList;

                    /**
                     * Decodes an InstantSnapshotList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotList;

                    /**
                     * Verifies an InstantSnapshotList message.
                     * @param message Plain 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 InstantSnapshotList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotList;

                    /**
                     * Creates a plain object from an InstantSnapshotList message. Also converts values to other types if specified.
                     * @param message InstantSnapshotList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotParams. */
                interface IInstantSnapshotParams {

                    /** InstantSnapshotParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InstantSnapshotParams. */
                class InstantSnapshotParams implements IInstantSnapshotParams {

                    /**
                     * Constructs a new InstantSnapshotParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotParams);

                    /** InstantSnapshotParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InstantSnapshotParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotParams): google.cloud.compute.v1beta.InstantSnapshotParams;

                    /**
                     * Encodes the specified InstantSnapshotParams message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotParams.verify|verify} messages.
                     * @param message InstantSnapshotParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotParams.verify|verify} messages.
                     * @param message InstantSnapshotParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotParams;

                    /**
                     * Decodes an InstantSnapshotParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotParams;

                    /**
                     * Verifies an InstantSnapshotParams message.
                     * @param message Plain 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 InstantSnapshotParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotParams;

                    /**
                     * Creates a plain object from an InstantSnapshotParams message. Also converts values to other types if specified.
                     * @param message InstantSnapshotParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotResourceStatus. */
                interface IInstantSnapshotResourceStatus {

                    /** InstantSnapshotResourceStatus storageSizeBytes */
                    storageSizeBytes?: (number|Long|string|null);
                }

                /** Represents an InstantSnapshotResourceStatus. */
                class InstantSnapshotResourceStatus implements IInstantSnapshotResourceStatus {

                    /**
                     * Constructs a new InstantSnapshotResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotResourceStatus);

                    /** InstantSnapshotResourceStatus storageSizeBytes. */
                    public storageSizeBytes?: (number|Long|string|null);

                    /**
                     * Creates a new InstantSnapshotResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotResourceStatus): google.cloud.compute.v1beta.InstantSnapshotResourceStatus;

                    /**
                     * Encodes the specified InstantSnapshotResourceStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotResourceStatus.verify|verify} messages.
                     * @param message InstantSnapshotResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotResourceStatus.verify|verify} messages.
                     * @param message InstantSnapshotResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotResourceStatus;

                    /**
                     * Decodes an InstantSnapshotResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotResourceStatus;

                    /**
                     * Verifies an InstantSnapshotResourceStatus message.
                     * @param message Plain 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 InstantSnapshotResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotResourceStatus;

                    /**
                     * Creates a plain object from an InstantSnapshotResourceStatus message. Also converts values to other types if specified.
                     * @param message InstantSnapshotResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InstantSnapshotsScopedList. */
                interface IInstantSnapshotsScopedList {

                    /** InstantSnapshotsScopedList instantSnapshots */
                    instantSnapshots?: (google.cloud.compute.v1beta.IInstantSnapshot[]|null);

                    /** InstantSnapshotsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InstantSnapshotsScopedList. */
                class InstantSnapshotsScopedList implements IInstantSnapshotsScopedList {

                    /**
                     * Constructs a new InstantSnapshotsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInstantSnapshotsScopedList);

                    /** InstantSnapshotsScopedList instantSnapshots. */
                    public instantSnapshots: google.cloud.compute.v1beta.IInstantSnapshot[];

                    /** InstantSnapshotsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InstantSnapshotsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InstantSnapshotsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInstantSnapshotsScopedList): google.cloud.compute.v1beta.InstantSnapshotsScopedList;

                    /**
                     * Encodes the specified InstantSnapshotsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotsScopedList.verify|verify} messages.
                     * @param message InstantSnapshotsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInstantSnapshotsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InstantSnapshotsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InstantSnapshotsScopedList.verify|verify} messages.
                     * @param message InstantSnapshotsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInstantSnapshotsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InstantSnapshotsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InstantSnapshotsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InstantSnapshotsScopedList;

                    /**
                     * Decodes an InstantSnapshotsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InstantSnapshotsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InstantSnapshotsScopedList;

                    /**
                     * Verifies an InstantSnapshotsScopedList message.
                     * @param message Plain 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 InstantSnapshotsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InstantSnapshotsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InstantSnapshotsScopedList;

                    /**
                     * Creates a plain object from an InstantSnapshotsScopedList message. Also converts values to other types if specified.
                     * @param message InstantSnapshotsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InstantSnapshotsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InstantSnapshotsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InstantSnapshotsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Int64RangeMatch. */
                interface IInt64RangeMatch {

                    /** Int64RangeMatch rangeEnd */
                    rangeEnd?: (number|Long|string|null);

                    /** Int64RangeMatch rangeStart */
                    rangeStart?: (number|Long|string|null);
                }

                /** Represents an Int64RangeMatch. */
                class Int64RangeMatch implements IInt64RangeMatch {

                    /**
                     * Constructs a new Int64RangeMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInt64RangeMatch);

                    /** Int64RangeMatch rangeEnd. */
                    public rangeEnd?: (number|Long|string|null);

                    /** Int64RangeMatch rangeStart. */
                    public rangeStart?: (number|Long|string|null);

                    /**
                     * Creates a new Int64RangeMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Int64RangeMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInt64RangeMatch): google.cloud.compute.v1beta.Int64RangeMatch;

                    /**
                     * Encodes the specified Int64RangeMatch message. Does not implicitly {@link google.cloud.compute.v1beta.Int64RangeMatch.verify|verify} messages.
                     * @param message Int64RangeMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInt64RangeMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Int64RangeMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Int64RangeMatch.verify|verify} messages.
                     * @param message Int64RangeMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInt64RangeMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Int64RangeMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Int64RangeMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Int64RangeMatch;

                    /**
                     * Decodes an Int64RangeMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Int64RangeMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Int64RangeMatch;

                    /**
                     * Verifies an Int64RangeMatch message.
                     * @param message Plain 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 Int64RangeMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Int64RangeMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Int64RangeMatch;

                    /**
                     * Creates a plain object from an Int64RangeMatch message. Also converts values to other types if specified.
                     * @param message Int64RangeMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Int64RangeMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Int64RangeMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Int64RangeMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Interconnect. */
                interface IInterconnect {

                    /** Interconnect aaiEnabled */
                    aaiEnabled?: (boolean|null);

                    /** Interconnect adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** Interconnect applicationAwareInterconnect */
                    applicationAwareInterconnect?: (google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnect|null);

                    /** Interconnect availableFeatures */
                    availableFeatures?: (string[]|null);

                    /** Interconnect circuitInfos */
                    circuitInfos?: (google.cloud.compute.v1beta.IInterconnectCircuitInfo[]|null);

                    /** Interconnect creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Interconnect customerName */
                    customerName?: (string|null);

                    /** Interconnect description */
                    description?: (string|null);

                    /** Interconnect expectedOutages */
                    expectedOutages?: (google.cloud.compute.v1beta.IInterconnectOutageNotification[]|null);

                    /** Interconnect googleIpAddress */
                    googleIpAddress?: (string|null);

                    /** Interconnect googleReferenceId */
                    googleReferenceId?: (string|null);

                    /** Interconnect id */
                    id?: (number|Long|string|null);

                    /** Interconnect interconnectAttachments */
                    interconnectAttachments?: (string[]|null);

                    /** Interconnect interconnectGroups */
                    interconnectGroups?: (string[]|null);

                    /** Interconnect interconnectType */
                    interconnectType?: (string|null);

                    /** Interconnect kind */
                    kind?: (string|null);

                    /** Interconnect labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Interconnect labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Interconnect linkType */
                    linkType?: (string|null);

                    /** Interconnect location */
                    location?: (string|null);

                    /** Interconnect macsec */
                    macsec?: (google.cloud.compute.v1beta.IInterconnectMacsec|null);

                    /** Interconnect macsecEnabled */
                    macsecEnabled?: (boolean|null);

                    /** Interconnect name */
                    name?: (string|null);

                    /** Interconnect nocContactEmail */
                    nocContactEmail?: (string|null);

                    /** Interconnect operationalStatus */
                    operationalStatus?: (string|null);

                    /** Interconnect params */
                    params?: (google.cloud.compute.v1beta.IInterconnectParams|null);

                    /** Interconnect peerIpAddress */
                    peerIpAddress?: (string|null);

                    /** Interconnect provisionedLinkCount */
                    provisionedLinkCount?: (number|null);

                    /** Interconnect remoteLocation */
                    remoteLocation?: (string|null);

                    /** Interconnect requestedFeatures */
                    requestedFeatures?: (string[]|null);

                    /** Interconnect requestedLinkCount */
                    requestedLinkCount?: (number|null);

                    /** Interconnect satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Interconnect selfLink */
                    selfLink?: (string|null);

                    /** Interconnect state */
                    state?: (string|null);

                    /** Interconnect subzone */
                    subzone?: (string|null);

                    /** Interconnect wireGroups */
                    wireGroups?: (string[]|null);
                }

                /** Represents an Interconnect. */
                class Interconnect implements IInterconnect {

                    /**
                     * Constructs a new Interconnect.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnect);

                    /** Interconnect aaiEnabled. */
                    public aaiEnabled?: (boolean|null);

                    /** Interconnect adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** Interconnect applicationAwareInterconnect. */
                    public applicationAwareInterconnect?: (google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnect|null);

                    /** Interconnect availableFeatures. */
                    public availableFeatures: string[];

                    /** Interconnect circuitInfos. */
                    public circuitInfos: google.cloud.compute.v1beta.IInterconnectCircuitInfo[];

                    /** Interconnect creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Interconnect customerName. */
                    public customerName?: (string|null);

                    /** Interconnect description. */
                    public description?: (string|null);

                    /** Interconnect expectedOutages. */
                    public expectedOutages: google.cloud.compute.v1beta.IInterconnectOutageNotification[];

                    /** Interconnect googleIpAddress. */
                    public googleIpAddress?: (string|null);

                    /** Interconnect googleReferenceId. */
                    public googleReferenceId?: (string|null);

                    /** Interconnect id. */
                    public id?: (number|Long|string|null);

                    /** Interconnect interconnectAttachments. */
                    public interconnectAttachments: string[];

                    /** Interconnect interconnectGroups. */
                    public interconnectGroups: string[];

                    /** Interconnect interconnectType. */
                    public interconnectType?: (string|null);

                    /** Interconnect kind. */
                    public kind?: (string|null);

                    /** Interconnect labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Interconnect labels. */
                    public labels: { [k: string]: string };

                    /** Interconnect linkType. */
                    public linkType?: (string|null);

                    /** Interconnect location. */
                    public location?: (string|null);

                    /** Interconnect macsec. */
                    public macsec?: (google.cloud.compute.v1beta.IInterconnectMacsec|null);

                    /** Interconnect macsecEnabled. */
                    public macsecEnabled?: (boolean|null);

                    /** Interconnect name. */
                    public name?: (string|null);

                    /** Interconnect nocContactEmail. */
                    public nocContactEmail?: (string|null);

                    /** Interconnect operationalStatus. */
                    public operationalStatus?: (string|null);

                    /** Interconnect params. */
                    public params?: (google.cloud.compute.v1beta.IInterconnectParams|null);

                    /** Interconnect peerIpAddress. */
                    public peerIpAddress?: (string|null);

                    /** Interconnect provisionedLinkCount. */
                    public provisionedLinkCount?: (number|null);

                    /** Interconnect remoteLocation. */
                    public remoteLocation?: (string|null);

                    /** Interconnect requestedFeatures. */
                    public requestedFeatures: string[];

                    /** Interconnect requestedLinkCount. */
                    public requestedLinkCount?: (number|null);

                    /** Interconnect satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Interconnect selfLink. */
                    public selfLink?: (string|null);

                    /** Interconnect state. */
                    public state?: (string|null);

                    /** Interconnect subzone. */
                    public subzone?: (string|null);

                    /** Interconnect wireGroups. */
                    public wireGroups: string[];

                    /**
                     * Creates a new Interconnect instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Interconnect instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnect): google.cloud.compute.v1beta.Interconnect;

                    /**
                     * Encodes the specified Interconnect message. Does not implicitly {@link google.cloud.compute.v1beta.Interconnect.verify|verify} messages.
                     * @param message Interconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Interconnect message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Interconnect.verify|verify} messages.
                     * @param message Interconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Interconnect message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Interconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Interconnect;

                    /**
                     * Decodes an Interconnect message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Interconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Interconnect;

                    /**
                     * Verifies an Interconnect message.
                     * @param message Plain 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 Interconnect message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Interconnect
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Interconnect;

                    /**
                     * Creates a plain object from an Interconnect message. Also converts values to other types if specified.
                     * @param message Interconnect
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Interconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Interconnect to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Interconnect
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Interconnect {

                    /** AvailableFeatures enum. */
                    enum AvailableFeatures {
                        UNDEFINED_AVAILABLE_FEATURES = 0
                    }

                    /** InterconnectType enum. */
                    enum InterconnectType {
                        UNDEFINED_INTERCONNECT_TYPE = 0,
                        DEDICATED = 258411983,
                        IT_PRIVATE = 335677007,
                        PARTNER = 461924520
                    }

                    /** LinkType enum. */
                    enum LinkType {
                        UNDEFINED_LINK_TYPE = 0,
                        LINK_TYPE_ETHERNET_100G_LR = 337672551,
                        LINK_TYPE_ETHERNET_10G_LR = 236739749,
                        LINK_TYPE_ETHERNET_400G_LR4 = 127023690
                    }

                    /** OperationalStatus enum. */
                    enum OperationalStatus {
                        UNDEFINED_OPERATIONAL_STATUS = 0,
                        OS_ACTIVE = 55721409,
                        OS_UNPROVISIONED = 239771840
                    }

                    /** RequestedFeatures enum. */
                    enum RequestedFeatures {
                        UNDEFINED_REQUESTED_FEATURES = 0
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        UNPROVISIONED = 517333979
                    }

                    /** Subzone enum. */
                    enum Subzone {
                        UNDEFINED_SUBZONE = 0,
                        SUBZONE_A = 291575438,
                        SUBZONE_B = 291575439
                    }
                }

                /** Properties of an InterconnectApplicationAwareInterconnect. */
                interface IInterconnectApplicationAwareInterconnect {

                    /** InterconnectApplicationAwareInterconnect bandwidthPercentagePolicy */
                    bandwidthPercentagePolicy?: (google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy|null);

                    /** InterconnectApplicationAwareInterconnect profileDescription */
                    profileDescription?: (string|null);

                    /** InterconnectApplicationAwareInterconnect shapeAveragePercentages */
                    shapeAveragePercentages?: (google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentage[]|null);

                    /** InterconnectApplicationAwareInterconnect strictPriorityPolicy */
                    strictPriorityPolicy?: (google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy|null);
                }

                /** Represents an InterconnectApplicationAwareInterconnect. */
                class InterconnectApplicationAwareInterconnect implements IInterconnectApplicationAwareInterconnect {

                    /**
                     * Constructs a new InterconnectApplicationAwareInterconnect.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnect);

                    /** InterconnectApplicationAwareInterconnect bandwidthPercentagePolicy. */
                    public bandwidthPercentagePolicy?: (google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy|null);

                    /** InterconnectApplicationAwareInterconnect profileDescription. */
                    public profileDescription?: (string|null);

                    /** InterconnectApplicationAwareInterconnect shapeAveragePercentages. */
                    public shapeAveragePercentages: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentage[];

                    /** InterconnectApplicationAwareInterconnect strictPriorityPolicy. */
                    public strictPriorityPolicy?: (google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy|null);

                    /**
                     * Creates a new InterconnectApplicationAwareInterconnect instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectApplicationAwareInterconnect instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnect): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnect;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnect message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnect.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnect message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnect.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnect message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectApplicationAwareInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnect;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnect message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectApplicationAwareInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnect;

                    /**
                     * Verifies an InterconnectApplicationAwareInterconnect message.
                     * @param message Plain 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 InterconnectApplicationAwareInterconnect message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectApplicationAwareInterconnect
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnect;

                    /**
                     * Creates a plain object from an InterconnectApplicationAwareInterconnect message. Also converts values to other types if specified.
                     * @param message InterconnectApplicationAwareInterconnect
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectApplicationAwareInterconnect to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectApplicationAwareInterconnect
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectApplicationAwareInterconnectBandwidthPercentage. */
                interface IInterconnectApplicationAwareInterconnectBandwidthPercentage {

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentage percentage */
                    percentage?: (number|null);

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentage trafficClass */
                    trafficClass?: (string|null);
                }

                /** Represents an InterconnectApplicationAwareInterconnectBandwidthPercentage. */
                class InterconnectApplicationAwareInterconnectBandwidthPercentage implements IInterconnectApplicationAwareInterconnectBandwidthPercentage {

                    /**
                     * Constructs a new InterconnectApplicationAwareInterconnectBandwidthPercentage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentage);

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentage percentage. */
                    public percentage?: (number|null);

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentage trafficClass. */
                    public trafficClass?: (string|null);

                    /**
                     * Creates a new InterconnectApplicationAwareInterconnectBandwidthPercentage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentage instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentage): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentage;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectBandwidthPercentage message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentage.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectBandwidthPercentage message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentage.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectBandwidthPercentage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentage;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectBandwidthPercentage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentage;

                    /**
                     * Verifies an InterconnectApplicationAwareInterconnectBandwidthPercentage message.
                     * @param message Plain 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 InterconnectApplicationAwareInterconnectBandwidthPercentage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentage;

                    /**
                     * Creates a plain object from an InterconnectApplicationAwareInterconnectBandwidthPercentage message. Also converts values to other types if specified.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectApplicationAwareInterconnectBandwidthPercentage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectApplicationAwareInterconnectBandwidthPercentage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectApplicationAwareInterconnectBandwidthPercentage {

                    /** TrafficClass enum. */
                    enum TrafficClass {
                        UNDEFINED_TRAFFIC_CLASS = 0,
                        TC1 = 82850,
                        TC2 = 82851,
                        TC3 = 82852,
                        TC4 = 82853,
                        TC5 = 82854,
                        TC6 = 82855
                    }
                }

                /** Properties of an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy. */
                interface IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy {

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy bandwidthPercentages */
                    bandwidthPercentages?: (google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentage[]|null);
                }

                /** Represents an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy. */
                class InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy implements IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy {

                    /**
                     * Constructs a new InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy);

                    /** InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy bandwidthPercentages. */
                    public bandwidthPercentages: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentage[];

                    /**
                     * Creates a new InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy;

                    /**
                     * Verifies an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message.
                     * @param message Plain 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 InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy;

                    /**
                     * Creates a plain object from an InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy message. Also converts values to other types if specified.
                     * @param message InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectApplicationAwareInterconnectStrictPriorityPolicy. */
                interface IInterconnectApplicationAwareInterconnectStrictPriorityPolicy {
                }

                /** Represents an InterconnectApplicationAwareInterconnectStrictPriorityPolicy. */
                class InterconnectApplicationAwareInterconnectStrictPriorityPolicy implements IInterconnectApplicationAwareInterconnectStrictPriorityPolicy {

                    /**
                     * Constructs a new InterconnectApplicationAwareInterconnectStrictPriorityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy);

                    /**
                     * Creates a new InterconnectApplicationAwareInterconnectStrictPriorityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectApplicationAwareInterconnectStrictPriorityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectStrictPriorityPolicy;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectStrictPriorityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectStrictPriorityPolicy.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectStrictPriorityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectApplicationAwareInterconnectStrictPriorityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectStrictPriorityPolicy.verify|verify} messages.
                     * @param message InterconnectApplicationAwareInterconnectStrictPriorityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectApplicationAwareInterconnectStrictPriorityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectStrictPriorityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectStrictPriorityPolicy;

                    /**
                     * Decodes an InterconnectApplicationAwareInterconnectStrictPriorityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectStrictPriorityPolicy;

                    /**
                     * Verifies an InterconnectApplicationAwareInterconnectStrictPriorityPolicy message.
                     * @param message Plain 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 InterconnectApplicationAwareInterconnectStrictPriorityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectStrictPriorityPolicy;

                    /**
                     * Creates a plain object from an InterconnectApplicationAwareInterconnectStrictPriorityPolicy message. Also converts values to other types if specified.
                     * @param message InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectApplicationAwareInterconnectStrictPriorityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectApplicationAwareInterconnectStrictPriorityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectApplicationAwareInterconnectStrictPriorityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachment. */
                interface IInterconnectAttachment {

                    /** InterconnectAttachment adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** InterconnectAttachment attachmentGroup */
                    attachmentGroup?: (string|null);

                    /** InterconnectAttachment bandwidth */
                    bandwidth?: (string|null);

                    /** InterconnectAttachment candidateCloudRouterIpAddress */
                    candidateCloudRouterIpAddress?: (string|null);

                    /** InterconnectAttachment candidateCloudRouterIpv6Address */
                    candidateCloudRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment candidateCustomerRouterIpAddress */
                    candidateCustomerRouterIpAddress?: (string|null);

                    /** InterconnectAttachment candidateCustomerRouterIpv6Address */
                    candidateCustomerRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment candidateIpv6Subnets */
                    candidateIpv6Subnets?: (string[]|null);

                    /** InterconnectAttachment candidateSubnets */
                    candidateSubnets?: (string[]|null);

                    /** InterconnectAttachment cloudRouterIpAddress */
                    cloudRouterIpAddress?: (string|null);

                    /** InterconnectAttachment cloudRouterIpv6Address */
                    cloudRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment cloudRouterIpv6InterfaceId */
                    cloudRouterIpv6InterfaceId?: (string|null);

                    /** InterconnectAttachment configurationConstraints */
                    configurationConstraints?: (google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraints|null);

                    /** InterconnectAttachment creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectAttachment customerRouterIpAddress */
                    customerRouterIpAddress?: (string|null);

                    /** InterconnectAttachment customerRouterIpv6Address */
                    customerRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment customerRouterIpv6InterfaceId */
                    customerRouterIpv6InterfaceId?: (string|null);

                    /** InterconnectAttachment dataplaneVersion */
                    dataplaneVersion?: (number|null);

                    /** InterconnectAttachment description */
                    description?: (string|null);

                    /** InterconnectAttachment edgeAvailabilityDomain */
                    edgeAvailabilityDomain?: (string|null);

                    /** InterconnectAttachment encryption */
                    encryption?: (string|null);

                    /** InterconnectAttachment googleReferenceId */
                    googleReferenceId?: (string|null);

                    /** InterconnectAttachment id */
                    id?: (number|Long|string|null);

                    /** InterconnectAttachment interconnect */
                    interconnect?: (string|null);

                    /** InterconnectAttachment ipsecInternalAddresses */
                    ipsecInternalAddresses?: (string[]|null);

                    /** InterconnectAttachment kind */
                    kind?: (string|null);

                    /** InterconnectAttachment l2Forwarding */
                    l2Forwarding?: (google.cloud.compute.v1beta.IInterconnectAttachmentL2Forwarding|null);

                    /** InterconnectAttachment labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** InterconnectAttachment labels */
                    labels?: ({ [k: string]: string }|null);

                    /** InterconnectAttachment mtu */
                    mtu?: (number|null);

                    /** InterconnectAttachment name */
                    name?: (string|null);

                    /** InterconnectAttachment operationalStatus */
                    operationalStatus?: (string|null);

                    /** InterconnectAttachment pairingKey */
                    pairingKey?: (string|null);

                    /** InterconnectAttachment params */
                    params?: (google.cloud.compute.v1beta.IInterconnectAttachmentParams|null);

                    /** InterconnectAttachment partnerAsn */
                    partnerAsn?: (number|Long|string|null);

                    /** InterconnectAttachment partnerMetadata */
                    partnerMetadata?: (google.cloud.compute.v1beta.IInterconnectAttachmentPartnerMetadata|null);

                    /** InterconnectAttachment privateInterconnectInfo */
                    privateInterconnectInfo?: (google.cloud.compute.v1beta.IInterconnectAttachmentPrivateInfo|null);

                    /** InterconnectAttachment region */
                    region?: (string|null);

                    /** InterconnectAttachment remoteService */
                    remoteService?: (string|null);

                    /** InterconnectAttachment router */
                    router?: (string|null);

                    /** InterconnectAttachment satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** InterconnectAttachment selfLink */
                    selfLink?: (string|null);

                    /** InterconnectAttachment stackType */
                    stackType?: (string|null);

                    /** InterconnectAttachment state */
                    state?: (string|null);

                    /** InterconnectAttachment subnetLength */
                    subnetLength?: (number|null);

                    /** InterconnectAttachment type */
                    type?: (string|null);

                    /** InterconnectAttachment vlanTag8021q */
                    vlanTag8021q?: (number|null);
                }

                /** Represents an InterconnectAttachment. */
                class InterconnectAttachment implements IInterconnectAttachment {

                    /**
                     * Constructs a new InterconnectAttachment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachment);

                    /** InterconnectAttachment adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** InterconnectAttachment attachmentGroup. */
                    public attachmentGroup?: (string|null);

                    /** InterconnectAttachment bandwidth. */
                    public bandwidth?: (string|null);

                    /** InterconnectAttachment candidateCloudRouterIpAddress. */
                    public candidateCloudRouterIpAddress?: (string|null);

                    /** InterconnectAttachment candidateCloudRouterIpv6Address. */
                    public candidateCloudRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment candidateCustomerRouterIpAddress. */
                    public candidateCustomerRouterIpAddress?: (string|null);

                    /** InterconnectAttachment candidateCustomerRouterIpv6Address. */
                    public candidateCustomerRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment candidateIpv6Subnets. */
                    public candidateIpv6Subnets: string[];

                    /** InterconnectAttachment candidateSubnets. */
                    public candidateSubnets: string[];

                    /** InterconnectAttachment cloudRouterIpAddress. */
                    public cloudRouterIpAddress?: (string|null);

                    /** InterconnectAttachment cloudRouterIpv6Address. */
                    public cloudRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment cloudRouterIpv6InterfaceId. */
                    public cloudRouterIpv6InterfaceId?: (string|null);

                    /** InterconnectAttachment configurationConstraints. */
                    public configurationConstraints?: (google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraints|null);

                    /** InterconnectAttachment creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectAttachment customerRouterIpAddress. */
                    public customerRouterIpAddress?: (string|null);

                    /** InterconnectAttachment customerRouterIpv6Address. */
                    public customerRouterIpv6Address?: (string|null);

                    /** InterconnectAttachment customerRouterIpv6InterfaceId. */
                    public customerRouterIpv6InterfaceId?: (string|null);

                    /** InterconnectAttachment dataplaneVersion. */
                    public dataplaneVersion?: (number|null);

                    /** InterconnectAttachment description. */
                    public description?: (string|null);

                    /** InterconnectAttachment edgeAvailabilityDomain. */
                    public edgeAvailabilityDomain?: (string|null);

                    /** InterconnectAttachment encryption. */
                    public encryption?: (string|null);

                    /** InterconnectAttachment googleReferenceId. */
                    public googleReferenceId?: (string|null);

                    /** InterconnectAttachment id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectAttachment interconnect. */
                    public interconnect?: (string|null);

                    /** InterconnectAttachment ipsecInternalAddresses. */
                    public ipsecInternalAddresses: string[];

                    /** InterconnectAttachment kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachment l2Forwarding. */
                    public l2Forwarding?: (google.cloud.compute.v1beta.IInterconnectAttachmentL2Forwarding|null);

                    /** InterconnectAttachment labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** InterconnectAttachment labels. */
                    public labels: { [k: string]: string };

                    /** InterconnectAttachment mtu. */
                    public mtu?: (number|null);

                    /** InterconnectAttachment name. */
                    public name?: (string|null);

                    /** InterconnectAttachment operationalStatus. */
                    public operationalStatus?: (string|null);

                    /** InterconnectAttachment pairingKey. */
                    public pairingKey?: (string|null);

                    /** InterconnectAttachment params. */
                    public params?: (google.cloud.compute.v1beta.IInterconnectAttachmentParams|null);

                    /** InterconnectAttachment partnerAsn. */
                    public partnerAsn?: (number|Long|string|null);

                    /** InterconnectAttachment partnerMetadata. */
                    public partnerMetadata?: (google.cloud.compute.v1beta.IInterconnectAttachmentPartnerMetadata|null);

                    /** InterconnectAttachment privateInterconnectInfo. */
                    public privateInterconnectInfo?: (google.cloud.compute.v1beta.IInterconnectAttachmentPrivateInfo|null);

                    /** InterconnectAttachment region. */
                    public region?: (string|null);

                    /** InterconnectAttachment remoteService. */
                    public remoteService?: (string|null);

                    /** InterconnectAttachment router. */
                    public router?: (string|null);

                    /** InterconnectAttachment satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** InterconnectAttachment selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectAttachment stackType. */
                    public stackType?: (string|null);

                    /** InterconnectAttachment state. */
                    public state?: (string|null);

                    /** InterconnectAttachment subnetLength. */
                    public subnetLength?: (number|null);

                    /** InterconnectAttachment type. */
                    public type?: (string|null);

                    /** InterconnectAttachment vlanTag8021q. */
                    public vlanTag8021q?: (number|null);

                    /**
                     * Creates a new InterconnectAttachment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachment instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachment): google.cloud.compute.v1beta.InterconnectAttachment;

                    /**
                     * Encodes the specified InterconnectAttachment message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachment.verify|verify} messages.
                     * @param message InterconnectAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachment message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachment.verify|verify} messages.
                     * @param message InterconnectAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachment;

                    /**
                     * Decodes an InterconnectAttachment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachment;

                    /**
                     * Verifies an InterconnectAttachment message.
                     * @param message Plain 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 InterconnectAttachment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachment;

                    /**
                     * Creates a plain object from an InterconnectAttachment message. Also converts values to other types if specified.
                     * @param message InterconnectAttachment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachment {

                    /** Bandwidth enum. */
                    enum Bandwidth {
                        UNDEFINED_BANDWIDTH = 0,
                        BPS_100G = 49547952,
                        BPS_100M = 49547958,
                        BPS_10G = 278693006,
                        BPS_1G = 355358448,
                        BPS_200M = 49577749,
                        BPS_20G = 278693967,
                        BPS_2G = 355358479,
                        BPS_300M = 49607540,
                        BPS_400G = 49637325,
                        BPS_400M = 49637331,
                        BPS_500M = 49667122,
                        BPS_50G = 278696850,
                        BPS_50M = 278696856,
                        BPS_5G = 355358572
                    }

                    /** EdgeAvailabilityDomain enum. */
                    enum EdgeAvailabilityDomain {
                        UNDEFINED_EDGE_AVAILABILITY_DOMAIN = 0,
                        AVAILABILITY_DOMAIN_1 = 349552090,
                        AVAILABILITY_DOMAIN_2 = 349552091,
                        AVAILABILITY_DOMAIN_ANY = 375256373
                    }

                    /** Encryption enum. */
                    enum Encryption {
                        UNDEFINED_ENCRYPTION = 0,
                        IPSEC = 69882282,
                        NONE = 2402104
                    }

                    /** OperationalStatus enum. */
                    enum OperationalStatus {
                        UNDEFINED_OPERATIONAL_STATUS = 0,
                        OS_ACTIVE = 55721409,
                        OS_UNPROVISIONED = 239771840
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DEFUNCT = 115891759,
                        PARTNER_REQUEST_RECEIVED = 513587304,
                        PENDING_CUSTOMER = 167494054,
                        PENDING_PARTNER = 387890656,
                        STATE_UNSPECIFIED = 470755401,
                        UNPROVISIONED = 517333979
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        DEDICATED = 258411983,
                        L2_DEDICATED = 336595510,
                        PARTNER = 461924520,
                        PARTNER_PROVIDER = 483261352
                    }
                }

                /** Properties of an InterconnectAttachmentAggregatedList. */
                interface IInterconnectAttachmentAggregatedList {

                    /** InterconnectAttachmentAggregatedList id */
                    id?: (string|null);

                    /** InterconnectAttachmentAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IInterconnectAttachmentsScopedList }|null);

                    /** InterconnectAttachmentAggregatedList kind */
                    kind?: (string|null);

                    /** InterconnectAttachmentAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectAttachmentAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectAttachmentAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** InterconnectAttachmentAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InterconnectAttachmentAggregatedList. */
                class InterconnectAttachmentAggregatedList implements IInterconnectAttachmentAggregatedList {

                    /**
                     * Constructs a new InterconnectAttachmentAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentAggregatedList);

                    /** InterconnectAttachmentAggregatedList id. */
                    public id?: (string|null);

                    /** InterconnectAttachmentAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IInterconnectAttachmentsScopedList };

                    /** InterconnectAttachmentAggregatedList kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachmentAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectAttachmentAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectAttachmentAggregatedList unreachables. */
                    public unreachables: string[];

                    /** InterconnectAttachmentAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InterconnectAttachmentAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentAggregatedList): google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList;

                    /**
                     * Encodes the specified InterconnectAttachmentAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList.verify|verify} messages.
                     * @param message InterconnectAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList.verify|verify} messages.
                     * @param message InterconnectAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList;

                    /**
                     * Decodes an InterconnectAttachmentAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList;

                    /**
                     * Verifies an InterconnectAttachmentAggregatedList message.
                     * @param message Plain 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 InterconnectAttachmentAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList;

                    /**
                     * Creates a plain object from an InterconnectAttachmentAggregatedList message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentConfigurationConstraints. */
                interface IInterconnectAttachmentConfigurationConstraints {

                    /** InterconnectAttachmentConfigurationConstraints bgpMd5 */
                    bgpMd5?: (string|null);

                    /** InterconnectAttachmentConfigurationConstraints bgpPeerAsnRanges */
                    bgpPeerAsnRanges?: (google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange[]|null);
                }

                /** Represents an InterconnectAttachmentConfigurationConstraints. */
                class InterconnectAttachmentConfigurationConstraints implements IInterconnectAttachmentConfigurationConstraints {

                    /**
                     * Constructs a new InterconnectAttachmentConfigurationConstraints.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraints);

                    /** InterconnectAttachmentConfigurationConstraints bgpMd5. */
                    public bgpMd5?: (string|null);

                    /** InterconnectAttachmentConfigurationConstraints bgpPeerAsnRanges. */
                    public bgpPeerAsnRanges: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange[];

                    /**
                     * Creates a new InterconnectAttachmentConfigurationConstraints instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentConfigurationConstraints instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraints): google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraints;

                    /**
                     * Encodes the specified InterconnectAttachmentConfigurationConstraints message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraints.verify|verify} messages.
                     * @param message InterconnectAttachmentConfigurationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentConfigurationConstraints message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraints.verify|verify} messages.
                     * @param message InterconnectAttachmentConfigurationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentConfigurationConstraints message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentConfigurationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraints;

                    /**
                     * Decodes an InterconnectAttachmentConfigurationConstraints message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentConfigurationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraints;

                    /**
                     * Verifies an InterconnectAttachmentConfigurationConstraints message.
                     * @param message Plain 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 InterconnectAttachmentConfigurationConstraints message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentConfigurationConstraints
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraints;

                    /**
                     * Creates a plain object from an InterconnectAttachmentConfigurationConstraints message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentConfigurationConstraints
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentConfigurationConstraints to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentConfigurationConstraints
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentConfigurationConstraints {

                    /** BgpMd5 enum. */
                    enum BgpMd5 {
                        UNDEFINED_BGP_MD5 = 0,
                        MD5_OPTIONAL = 532156673,
                        MD5_REQUIRED = 218034496,
                        MD5_UNSUPPORTED = 86962388
                    }
                }

                /** Properties of an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange. */
                interface IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange {

                    /** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange max */
                    max?: (number|null);

                    /** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange min */
                    min?: (number|null);
                }

                /** Represents an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange. */
                class InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange implements IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange {

                    /**
                     * Constructs a new InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange);

                    /** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange max. */
                    public max?: (number|null);

                    /** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange min. */
                    public min?: (number|null);

                    /**
                     * Creates a new InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange): google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange;

                    /**
                     * Encodes the specified InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange.verify|verify} messages.
                     * @param message InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange.verify|verify} messages.
                     * @param message InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange;

                    /**
                     * Decodes an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange;

                    /**
                     * Verifies an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message.
                     * @param message Plain 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 InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange;

                    /**
                     * Creates a plain object from an InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroup. */
                interface IInterconnectAttachmentGroup {

                    /** InterconnectAttachmentGroup attachments */
                    attachments?: ({ [k: string]: google.cloud.compute.v1beta.IInterconnectAttachmentGroupAttachment }|null);

                    /** InterconnectAttachmentGroup configured */
                    configured?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured|null);

                    /** InterconnectAttachmentGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectAttachmentGroup description */
                    description?: (string|null);

                    /** InterconnectAttachmentGroup etag */
                    etag?: (string|null);

                    /** InterconnectAttachmentGroup id */
                    id?: (number|Long|string|null);

                    /** InterconnectAttachmentGroup intent */
                    intent?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupIntent|null);

                    /** InterconnectAttachmentGroup interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** InterconnectAttachmentGroup kind */
                    kind?: (string|null);

                    /** InterconnectAttachmentGroup logicalStructure */
                    logicalStructure?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructure|null);

                    /** InterconnectAttachmentGroup name */
                    name?: (string|null);

                    /** InterconnectAttachmentGroup selfLink */
                    selfLink?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroup. */
                class InterconnectAttachmentGroup implements IInterconnectAttachmentGroup {

                    /**
                     * Constructs a new InterconnectAttachmentGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroup);

                    /** InterconnectAttachmentGroup attachments. */
                    public attachments: { [k: string]: google.cloud.compute.v1beta.IInterconnectAttachmentGroupAttachment };

                    /** InterconnectAttachmentGroup configured. */
                    public configured?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured|null);

                    /** InterconnectAttachmentGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectAttachmentGroup description. */
                    public description?: (string|null);

                    /** InterconnectAttachmentGroup etag. */
                    public etag?: (string|null);

                    /** InterconnectAttachmentGroup id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectAttachmentGroup intent. */
                    public intent?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupIntent|null);

                    /** InterconnectAttachmentGroup interconnectGroup. */
                    public interconnectGroup?: (string|null);

                    /** InterconnectAttachmentGroup kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachmentGroup logicalStructure. */
                    public logicalStructure?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructure|null);

                    /** InterconnectAttachmentGroup name. */
                    public name?: (string|null);

                    /** InterconnectAttachmentGroup selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroup): google.cloud.compute.v1beta.InterconnectAttachmentGroup;

                    /**
                     * Encodes the specified InterconnectAttachmentGroup message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroup.verify|verify} messages.
                     * @param message InterconnectAttachmentGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroup.verify|verify} messages.
                     * @param message InterconnectAttachmentGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroup;

                    /**
                     * Decodes an InterconnectAttachmentGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroup;

                    /**
                     * Verifies an InterconnectAttachmentGroup message.
                     * @param message Plain 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 InterconnectAttachmentGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroup;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroup message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupAttachment. */
                interface IInterconnectAttachmentGroupAttachment {

                    /** InterconnectAttachmentGroupAttachment attachment */
                    attachment?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupAttachment. */
                class InterconnectAttachmentGroupAttachment implements IInterconnectAttachmentGroupAttachment {

                    /**
                     * Constructs a new InterconnectAttachmentGroupAttachment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupAttachment);

                    /** InterconnectAttachmentGroupAttachment attachment. */
                    public attachment?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupAttachment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupAttachment instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupAttachment): google.cloud.compute.v1beta.InterconnectAttachmentGroupAttachment;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupAttachment message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupAttachment.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupAttachment message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupAttachment.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupAttachment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupAttachment;

                    /**
                     * Decodes an InterconnectAttachmentGroupAttachment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupAttachment;

                    /**
                     * Verifies an InterconnectAttachmentGroupAttachment message.
                     * @param message Plain 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 InterconnectAttachmentGroupAttachment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupAttachment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupAttachment;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupAttachment message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupAttachment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupAttachment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupAttachment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupConfigured. */
                interface IInterconnectAttachmentGroupConfigured {

                    /** InterconnectAttachmentGroupConfigured availabilitySla */
                    availabilitySla?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLA|null);
                }

                /** Represents an InterconnectAttachmentGroupConfigured. */
                class InterconnectAttachmentGroupConfigured implements IInterconnectAttachmentGroupConfigured {

                    /**
                     * Constructs a new InterconnectAttachmentGroupConfigured.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured);

                    /** InterconnectAttachmentGroupConfigured availabilitySla. */
                    public availabilitySla?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLA|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupConfigured instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupConfigured instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfigured;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfigured message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupConfigured.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfigured message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfigured message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupConfigured.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfigured message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfigured message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupConfigured
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfigured;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfigured message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupConfigured
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfigured;

                    /**
                     * Verifies an InterconnectAttachmentGroupConfigured message.
                     * @param message Plain 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 InterconnectAttachmentGroupConfigured message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupConfigured
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfigured;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupConfigured message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupConfigured
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupConfigured, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupConfigured to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupConfigured
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupConfiguredAvailabilitySLA. */
                interface IInterconnectAttachmentGroupConfiguredAvailabilitySLA {

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLA effectiveSla */
                    effectiveSla?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLA intendedSlaBlockers */
                    intendedSlaBlockers?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers[]|null);
                }

                /** Represents an InterconnectAttachmentGroupConfiguredAvailabilitySLA. */
                class InterconnectAttachmentGroupConfiguredAvailabilitySLA implements IInterconnectAttachmentGroupConfiguredAvailabilitySLA {

                    /**
                     * Constructs a new InterconnectAttachmentGroupConfiguredAvailabilitySLA.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLA);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLA effectiveSla. */
                    public effectiveSla?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLA intendedSlaBlockers. */
                    public intendedSlaBlockers: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers[];

                    /**
                     * Creates a new InterconnectAttachmentGroupConfiguredAvailabilitySLA instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLA instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLA): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLA;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfiguredAvailabilitySLA message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLA.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLA message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLA, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfiguredAvailabilitySLA message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLA.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLA message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLA, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfiguredAvailabilitySLA message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLA;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfiguredAvailabilitySLA message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLA;

                    /**
                     * Verifies an InterconnectAttachmentGroupConfiguredAvailabilitySLA message.
                     * @param message Plain 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 InterconnectAttachmentGroupConfiguredAvailabilitySLA message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLA;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupConfiguredAvailabilitySLA message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLA, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupConfiguredAvailabilitySLA to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupConfiguredAvailabilitySLA
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupConfiguredAvailabilitySLA {

                    /** EffectiveSla enum. */
                    enum EffectiveSla {
                        UNDEFINED_EFFECTIVE_SLA = 0,
                        EFFECTIVE_SLA_UNSPECIFIED = 491000744,
                        NO_SLA = 161460618,
                        PRODUCTION_CRITICAL = 470416485,
                        PRODUCTION_NON_CRITICAL = 117399223
                    }
                }

                /** Properties of an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers. */
                interface IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers {

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers attachments */
                    attachments?: (string[]|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers blockerType */
                    blockerType?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers documentationLink */
                    documentationLink?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers explanation */
                    explanation?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers metros */
                    metros?: (string[]|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers regions */
                    regions?: (string[]|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers zones */
                    zones?: (string[]|null);
                }

                /** Represents an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers. */
                class InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers implements IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers {

                    /**
                     * Constructs a new InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers attachments. */
                    public attachments: string[];

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers blockerType. */
                    public blockerType?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers documentationLink. */
                    public documentationLink?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers explanation. */
                    public explanation?: (string|null);

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers metros. */
                    public metros: string[];

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers regions. */
                    public regions: string[];

                    /** InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers zones. */
                    public zones: string[];

                    /**
                     * Creates a new InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers;

                    /**
                     * Decodes an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers;

                    /**
                     * Verifies an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message.
                     * @param message Plain 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 InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers {

                    /** BlockerType enum. */
                    enum BlockerType {
                        UNDEFINED_BLOCKER_TYPE = 0,
                        BLOCKER_TYPE_UNSPECIFIED = 429793623,
                        INCOMPATIBLE_METROS = 290410432,
                        INCOMPATIBLE_REGIONS = 6195033,
                        MISSING_GLOBAL_ROUTING = 165913635,
                        NO_ATTACHMENTS = 456535570,
                        NO_ATTACHMENTS_IN_METRO_AND_ZONE = 51684135,
                        OTHER = 75532016
                    }
                }

                /** Properties of an InterconnectAttachmentGroupIntent. */
                interface IInterconnectAttachmentGroupIntent {

                    /** InterconnectAttachmentGroupIntent availabilitySla */
                    availabilitySla?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupIntent. */
                class InterconnectAttachmentGroupIntent implements IInterconnectAttachmentGroupIntent {

                    /**
                     * Constructs a new InterconnectAttachmentGroupIntent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupIntent);

                    /** InterconnectAttachmentGroupIntent availabilitySla. */
                    public availabilitySla?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupIntent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupIntent instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupIntent): google.cloud.compute.v1beta.InterconnectAttachmentGroupIntent;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupIntent message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupIntent.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupIntent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupIntent message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupIntent.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupIntent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupIntent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupIntent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupIntent;

                    /**
                     * Decodes an InterconnectAttachmentGroupIntent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupIntent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupIntent;

                    /**
                     * Verifies an InterconnectAttachmentGroupIntent message.
                     * @param message Plain 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 InterconnectAttachmentGroupIntent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupIntent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupIntent;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupIntent message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupIntent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupIntent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupIntent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupIntent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupIntent {

                    /** AvailabilitySla enum. */
                    enum AvailabilitySla {
                        UNDEFINED_AVAILABILITY_SLA = 0,
                        AVAILABILITY_SLA_UNSPECIFIED = 11186044,
                        NO_SLA = 161460618,
                        PRODUCTION_CRITICAL = 470416485,
                        PRODUCTION_NON_CRITICAL = 117399223
                    }
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructure. */
                interface IInterconnectAttachmentGroupLogicalStructure {

                    /** InterconnectAttachmentGroupLogicalStructure regions */
                    regions?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegion[]|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructure. */
                class InterconnectAttachmentGroupLogicalStructure implements IInterconnectAttachmentGroupLogicalStructure {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructure.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructure);

                    /** InterconnectAttachmentGroupLogicalStructure regions. */
                    public regions: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegion[];

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructure instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructure instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructure): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructure;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructure message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructure.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructure message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructure.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructure message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructure;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructure message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructure;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructure message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructure message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructure
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructure;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructure message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructure
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructure, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructure to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructure
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructureRegion. */
                interface IInterconnectAttachmentGroupLogicalStructureRegion {

                    /** InterconnectAttachmentGroupLogicalStructureRegion metros */
                    metros?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetro[]|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegion region */
                    region?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructureRegion. */
                class InterconnectAttachmentGroupLogicalStructureRegion implements IInterconnectAttachmentGroupLogicalStructureRegion {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructureRegion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegion);

                    /** InterconnectAttachmentGroupLogicalStructureRegion metros. */
                    public metros: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetro[];

                    /** InterconnectAttachmentGroupLogicalStructureRegion region. */
                    public region?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructureRegion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructureRegion instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegion): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegion;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegion message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegion.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegion message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegion.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructureRegion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegion;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructureRegion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegion;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructureRegion message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructureRegion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructureRegion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegion;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructureRegion message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructureRegion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructureRegion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructureRegionMetro. */
                interface IInterconnectAttachmentGroupLogicalStructureRegionMetro {

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetro facilities */
                    facilities?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility[]|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetro metro */
                    metro?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructureRegionMetro. */
                class InterconnectAttachmentGroupLogicalStructureRegionMetro implements IInterconnectAttachmentGroupLogicalStructureRegionMetro {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructureRegionMetro.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetro);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetro facilities. */
                    public facilities: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility[];

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetro metro. */
                    public metro?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructureRegionMetro instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetro instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetro): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetro;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetro message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetro.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetro message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetro, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetro message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetro.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetro message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetro, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetro message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetro
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetro;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetro message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetro
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetro;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructureRegionMetro message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructureRegionMetro message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetro
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetro;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructureRegionMetro message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetro
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetro, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructureRegionMetro to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructureRegionMetro
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility. */
                interface IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility {

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacility facility */
                    facility?: (string|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacility zones */
                    zones?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone[]|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility. */
                class InterconnectAttachmentGroupLogicalStructureRegionMetroFacility implements IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructureRegionMetroFacility.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacility facility. */
                    public facility?: (string|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacility zones. */
                    public zones: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone[];

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructureRegionMetroFacility instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacility instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacility, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructureRegionMetroFacility message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructureRegionMetroFacility to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructureRegionMetroFacility
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone. */
                interface IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone {

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone attachments */
                    attachments?: (string[]|null);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone zone */
                    zone?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone. */
                class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone implements IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone {

                    /**
                     * Constructs a new InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone);

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone attachments. */
                    public attachments: string[];

                    /** InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone;

                    /**
                     * Decodes an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone;

                    /**
                     * Verifies an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message.
                     * @param message Plain 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 InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupsGetOperationalStatusResponse. */
                interface IInterconnectAttachmentGroupsGetOperationalStatusResponse {

                    /** InterconnectAttachmentGroupsGetOperationalStatusResponse etag */
                    etag?: (string|null);

                    /** InterconnectAttachmentGroupsGetOperationalStatusResponse result */
                    result?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatus|null);
                }

                /** Represents an InterconnectAttachmentGroupsGetOperationalStatusResponse. */
                class InterconnectAttachmentGroupsGetOperationalStatusResponse implements IInterconnectAttachmentGroupsGetOperationalStatusResponse {

                    /**
                     * Constructs a new InterconnectAttachmentGroupsGetOperationalStatusResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsGetOperationalStatusResponse);

                    /** InterconnectAttachmentGroupsGetOperationalStatusResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectAttachmentGroupsGetOperationalStatusResponse result. */
                    public result?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatus|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupsGetOperationalStatusResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupsGetOperationalStatusResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsGetOperationalStatusResponse): google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsGetOperationalStatusResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsGetOperationalStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsGetOperationalStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsGetOperationalStatusResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsGetOperationalStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsGetOperationalStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupsGetOperationalStatusResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupsGetOperationalStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse;

                    /**
                     * Decodes an InterconnectAttachmentGroupsGetOperationalStatusResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupsGetOperationalStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse;

                    /**
                     * Verifies an InterconnectAttachmentGroupsGetOperationalStatusResponse message.
                     * @param message Plain 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 InterconnectAttachmentGroupsGetOperationalStatusResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupsGetOperationalStatusResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupsGetOperationalStatusResponse message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupsGetOperationalStatusResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupsGetOperationalStatusResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupsGetOperationalStatusResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupsListResponse. */
                interface IInterconnectAttachmentGroupsListResponse {

                    /** InterconnectAttachmentGroupsListResponse etag */
                    etag?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse id */
                    id?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse items */
                    items?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroup[]|null);

                    /** InterconnectAttachmentGroupsListResponse kind */
                    kind?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse selfLink */
                    selfLink?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** InterconnectAttachmentGroupsListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InterconnectAttachmentGroupsListResponse. */
                class InterconnectAttachmentGroupsListResponse implements IInterconnectAttachmentGroupsListResponse {

                    /**
                     * Constructs a new InterconnectAttachmentGroupsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsListResponse);

                    /** InterconnectAttachmentGroupsListResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse id. */
                    public id?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse items. */
                    public items: google.cloud.compute.v1beta.IInterconnectAttachmentGroup[];

                    /** InterconnectAttachmentGroupsListResponse kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectAttachmentGroupsListResponse unreachables. */
                    public unreachables: string[];

                    /** InterconnectAttachmentGroupsListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsListResponse): google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse;

                    /**
                     * Decodes an InterconnectAttachmentGroupsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse;

                    /**
                     * Verifies an InterconnectAttachmentGroupsListResponse message.
                     * @param message Plain 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 InterconnectAttachmentGroupsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupsListResponse message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentGroupsOperationalStatus. */
                interface IInterconnectAttachmentGroupsOperationalStatus {

                    /** InterconnectAttachmentGroupsOperationalStatus attachmentStatuses */
                    attachmentStatuses?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus[]|null);

                    /** InterconnectAttachmentGroupsOperationalStatus configured */
                    configured?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured|null);

                    /** InterconnectAttachmentGroupsOperationalStatus groupStatus */
                    groupStatus?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatus intent */
                    intent?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupIntent|null);

                    /** InterconnectAttachmentGroupsOperationalStatus operational */
                    operational?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured|null);
                }

                /** Represents an InterconnectAttachmentGroupsOperationalStatus. */
                class InterconnectAttachmentGroupsOperationalStatus implements IInterconnectAttachmentGroupsOperationalStatus {

                    /**
                     * Constructs a new InterconnectAttachmentGroupsOperationalStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatus);

                    /** InterconnectAttachmentGroupsOperationalStatus attachmentStatuses. */
                    public attachmentStatuses: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus[];

                    /** InterconnectAttachmentGroupsOperationalStatus configured. */
                    public configured?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured|null);

                    /** InterconnectAttachmentGroupsOperationalStatus groupStatus. */
                    public groupStatus?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatus intent. */
                    public intent?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupIntent|null);

                    /** InterconnectAttachmentGroupsOperationalStatus operational. */
                    public operational?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroupConfigured|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupsOperationalStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupsOperationalStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatus): google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatus;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsOperationalStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatus.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsOperationalStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsOperationalStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatus.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsOperationalStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupsOperationalStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupsOperationalStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatus;

                    /**
                     * Decodes an InterconnectAttachmentGroupsOperationalStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupsOperationalStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatus;

                    /**
                     * Verifies an InterconnectAttachmentGroupsOperationalStatus message.
                     * @param message Plain 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 InterconnectAttachmentGroupsOperationalStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupsOperationalStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatus;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupsOperationalStatus message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupsOperationalStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupsOperationalStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupsOperationalStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupsOperationalStatus {

                    /** GroupStatus enum. */
                    enum GroupStatus {
                        UNDEFINED_GROUP_STATUS = 0,
                        DEGRADED = 396890926,
                        FULLY_DOWN = 255514647,
                        FULLY_UP = 504176464,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus. */
                interface IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus {

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus attachment */
                    attachment?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus isActive */
                    isActive?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus status */
                    status?: (string|null);
                }

                /** Represents an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus. */
                class InterconnectAttachmentGroupsOperationalStatusAttachmentStatus implements IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus {

                    /**
                     * Constructs a new InterconnectAttachmentGroupsOperationalStatusAttachmentStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus attachment. */
                    public attachment?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus isActive. */
                    public isActive?: (string|null);

                    /** InterconnectAttachmentGroupsOperationalStatusAttachmentStatus status. */
                    public status?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentGroupsOperationalStatusAttachmentStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentGroupsOperationalStatusAttachmentStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus): google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus.verify|verify} messages.
                     * @param message InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentGroupsOperationalStatusAttachmentStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus;

                    /**
                     * Decodes an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus;

                    /**
                     * Verifies an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message.
                     * @param message Plain 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 InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus;

                    /**
                     * Creates a plain object from an InterconnectAttachmentGroupsOperationalStatusAttachmentStatus message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentGroupsOperationalStatusAttachmentStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentGroupsOperationalStatusAttachmentStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectAttachmentGroupsOperationalStatusAttachmentStatus {

                    /** IsActive enum. */
                    enum IsActive {
                        UNDEFINED_IS_ACTIVE = 0,
                        ACTIVE = 314733318,
                        INACTIVE = 270421099,
                        UNSPECIFIED = 526786327
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ATTACHMENT_STATUS_UNKNOWN = 472477561,
                        CONNECTION_DISABLED = 432687805,
                        CONNECTION_DOWN = 267552099,
                        CONNECTION_UP = 455585692,
                        DEFUNCT = 115891759,
                        IPSEC_CONFIGURATION_NEEDED_STATUS = 455203582,
                        IPSEC_READY_TO_RESUME_FLOW_STATUS = 384830596,
                        IPV4_DOWN_IPV6_UP = 277490992,
                        IPV4_UP_IPV6_DOWN = 316051248,
                        PARTNER_REQUEST_RECEIVED = 513587304,
                        PENDING_CUSTOMER = 167494054,
                        PENDING_PARTNER = 387890656,
                        PROVISIONED = 355751956,
                        ROUTER_CONFIGURATION_BROKEN = 150505108,
                        UNPROVISIONED = 517333979
                    }
                }

                /** Properties of an InterconnectAttachmentL2Forwarding. */
                interface IInterconnectAttachmentL2Forwarding {

                    /** InterconnectAttachmentL2Forwarding applianceMappings */
                    applianceMappings?: ({ [k: string]: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMapping }|null);

                    /** InterconnectAttachmentL2Forwarding defaultApplianceIpAddress */
                    defaultApplianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2Forwarding geneveHeader */
                    geneveHeader?: (google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingGeneveHeader|null);

                    /** InterconnectAttachmentL2Forwarding network */
                    network?: (string|null);

                    /** InterconnectAttachmentL2Forwarding tunnelEndpointIpAddress */
                    tunnelEndpointIpAddress?: (string|null);
                }

                /** Represents an InterconnectAttachmentL2Forwarding. */
                class InterconnectAttachmentL2Forwarding implements IInterconnectAttachmentL2Forwarding {

                    /**
                     * Constructs a new InterconnectAttachmentL2Forwarding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentL2Forwarding);

                    /** InterconnectAttachmentL2Forwarding applianceMappings. */
                    public applianceMappings: { [k: string]: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMapping };

                    /** InterconnectAttachmentL2Forwarding defaultApplianceIpAddress. */
                    public defaultApplianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2Forwarding geneveHeader. */
                    public geneveHeader?: (google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingGeneveHeader|null);

                    /** InterconnectAttachmentL2Forwarding network. */
                    public network?: (string|null);

                    /** InterconnectAttachmentL2Forwarding tunnelEndpointIpAddress. */
                    public tunnelEndpointIpAddress?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentL2Forwarding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentL2Forwarding instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentL2Forwarding): google.cloud.compute.v1beta.InterconnectAttachmentL2Forwarding;

                    /**
                     * Encodes the specified InterconnectAttachmentL2Forwarding message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentL2Forwarding.verify|verify} messages.
                     * @param message InterconnectAttachmentL2Forwarding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentL2Forwarding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentL2Forwarding message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentL2Forwarding.verify|verify} messages.
                     * @param message InterconnectAttachmentL2Forwarding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentL2Forwarding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentL2Forwarding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentL2Forwarding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentL2Forwarding;

                    /**
                     * Decodes an InterconnectAttachmentL2Forwarding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentL2Forwarding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentL2Forwarding;

                    /**
                     * Verifies an InterconnectAttachmentL2Forwarding message.
                     * @param message Plain 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 InterconnectAttachmentL2Forwarding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentL2Forwarding
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentL2Forwarding;

                    /**
                     * Creates a plain object from an InterconnectAttachmentL2Forwarding message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentL2Forwarding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentL2Forwarding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentL2Forwarding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentL2Forwarding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentL2ForwardingApplianceMapping. */
                interface IInterconnectAttachmentL2ForwardingApplianceMapping {

                    /** InterconnectAttachmentL2ForwardingApplianceMapping applianceIpAddress */
                    applianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMapping innerVlanToApplianceMappings */
                    innerVlanToApplianceMappings?: (google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping[]|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMapping name */
                    name?: (string|null);
                }

                /** Represents an InterconnectAttachmentL2ForwardingApplianceMapping. */
                class InterconnectAttachmentL2ForwardingApplianceMapping implements IInterconnectAttachmentL2ForwardingApplianceMapping {

                    /**
                     * Constructs a new InterconnectAttachmentL2ForwardingApplianceMapping.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMapping);

                    /** InterconnectAttachmentL2ForwardingApplianceMapping applianceIpAddress. */
                    public applianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMapping innerVlanToApplianceMappings. */
                    public innerVlanToApplianceMappings: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping[];

                    /** InterconnectAttachmentL2ForwardingApplianceMapping name. */
                    public name?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentL2ForwardingApplianceMapping instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentL2ForwardingApplianceMapping instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMapping): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMapping;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingApplianceMapping message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMapping.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingApplianceMapping message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMapping.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingApplianceMapping message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentL2ForwardingApplianceMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMapping;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingApplianceMapping message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentL2ForwardingApplianceMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMapping;

                    /**
                     * Verifies an InterconnectAttachmentL2ForwardingApplianceMapping message.
                     * @param message Plain 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 InterconnectAttachmentL2ForwardingApplianceMapping message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentL2ForwardingApplianceMapping
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMapping;

                    /**
                     * Creates a plain object from an InterconnectAttachmentL2ForwardingApplianceMapping message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMapping
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMapping, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentL2ForwardingApplianceMapping to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentL2ForwardingApplianceMapping
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping. */
                interface IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping {

                    /** InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping innerApplianceIpAddress */
                    innerApplianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping innerVlanTags */
                    innerVlanTags?: (string[]|null);
                }

                /** Represents an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping. */
                class InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping implements IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping {

                    /**
                     * Constructs a new InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping);

                    /** InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping innerApplianceIpAddress. */
                    public innerApplianceIpAddress?: (string|null);

                    /** InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping innerVlanTags. */
                    public innerVlanTags: string[];

                    /**
                     * Creates a new InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping;

                    /**
                     * Verifies an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message.
                     * @param message Plain 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 InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping;

                    /**
                     * Creates a plain object from an InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentL2ForwardingGeneveHeader. */
                interface IInterconnectAttachmentL2ForwardingGeneveHeader {

                    /** InterconnectAttachmentL2ForwardingGeneveHeader vni */
                    vni?: (number|null);
                }

                /** Represents an InterconnectAttachmentL2ForwardingGeneveHeader. */
                class InterconnectAttachmentL2ForwardingGeneveHeader implements IInterconnectAttachmentL2ForwardingGeneveHeader {

                    /**
                     * Constructs a new InterconnectAttachmentL2ForwardingGeneveHeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingGeneveHeader);

                    /** InterconnectAttachmentL2ForwardingGeneveHeader vni. */
                    public vni?: (number|null);

                    /**
                     * Creates a new InterconnectAttachmentL2ForwardingGeneveHeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentL2ForwardingGeneveHeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingGeneveHeader): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingGeneveHeader;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingGeneveHeader message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingGeneveHeader.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingGeneveHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingGeneveHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentL2ForwardingGeneveHeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingGeneveHeader.verify|verify} messages.
                     * @param message InterconnectAttachmentL2ForwardingGeneveHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentL2ForwardingGeneveHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingGeneveHeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentL2ForwardingGeneveHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingGeneveHeader;

                    /**
                     * Decodes an InterconnectAttachmentL2ForwardingGeneveHeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentL2ForwardingGeneveHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingGeneveHeader;

                    /**
                     * Verifies an InterconnectAttachmentL2ForwardingGeneveHeader message.
                     * @param message Plain 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 InterconnectAttachmentL2ForwardingGeneveHeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentL2ForwardingGeneveHeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingGeneveHeader;

                    /**
                     * Creates a plain object from an InterconnectAttachmentL2ForwardingGeneveHeader message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentL2ForwardingGeneveHeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentL2ForwardingGeneveHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentL2ForwardingGeneveHeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentL2ForwardingGeneveHeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentList. */
                interface IInterconnectAttachmentList {

                    /** InterconnectAttachmentList id */
                    id?: (string|null);

                    /** InterconnectAttachmentList items */
                    items?: (google.cloud.compute.v1beta.IInterconnectAttachment[]|null);

                    /** InterconnectAttachmentList kind */
                    kind?: (string|null);

                    /** InterconnectAttachmentList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectAttachmentList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectAttachmentList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InterconnectAttachmentList. */
                class InterconnectAttachmentList implements IInterconnectAttachmentList {

                    /**
                     * Constructs a new InterconnectAttachmentList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentList);

                    /** InterconnectAttachmentList id. */
                    public id?: (string|null);

                    /** InterconnectAttachmentList items. */
                    public items: google.cloud.compute.v1beta.IInterconnectAttachment[];

                    /** InterconnectAttachmentList kind. */
                    public kind?: (string|null);

                    /** InterconnectAttachmentList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectAttachmentList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectAttachmentList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InterconnectAttachmentList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentList): google.cloud.compute.v1beta.InterconnectAttachmentList;

                    /**
                     * Encodes the specified InterconnectAttachmentList message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentList.verify|verify} messages.
                     * @param message InterconnectAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentList.verify|verify} messages.
                     * @param message InterconnectAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentList;

                    /**
                     * Decodes an InterconnectAttachmentList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentList;

                    /**
                     * Verifies an InterconnectAttachmentList message.
                     * @param message Plain 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 InterconnectAttachmentList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentList;

                    /**
                     * Creates a plain object from an InterconnectAttachmentList message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentParams. */
                interface IInterconnectAttachmentParams {

                    /** InterconnectAttachmentParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InterconnectAttachmentParams. */
                class InterconnectAttachmentParams implements IInterconnectAttachmentParams {

                    /**
                     * Constructs a new InterconnectAttachmentParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentParams);

                    /** InterconnectAttachmentParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InterconnectAttachmentParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentParams): google.cloud.compute.v1beta.InterconnectAttachmentParams;

                    /**
                     * Encodes the specified InterconnectAttachmentParams message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentParams.verify|verify} messages.
                     * @param message InterconnectAttachmentParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentParams.verify|verify} messages.
                     * @param message InterconnectAttachmentParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentParams;

                    /**
                     * Decodes an InterconnectAttachmentParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentParams;

                    /**
                     * Verifies an InterconnectAttachmentParams message.
                     * @param message Plain 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 InterconnectAttachmentParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentParams;

                    /**
                     * Creates a plain object from an InterconnectAttachmentParams message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentPartnerMetadata. */
                interface IInterconnectAttachmentPartnerMetadata {

                    /** InterconnectAttachmentPartnerMetadata interconnectName */
                    interconnectName?: (string|null);

                    /** InterconnectAttachmentPartnerMetadata partnerName */
                    partnerName?: (string|null);

                    /** InterconnectAttachmentPartnerMetadata portalUrl */
                    portalUrl?: (string|null);
                }

                /** Represents an InterconnectAttachmentPartnerMetadata. */
                class InterconnectAttachmentPartnerMetadata implements IInterconnectAttachmentPartnerMetadata {

                    /**
                     * Constructs a new InterconnectAttachmentPartnerMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentPartnerMetadata);

                    /** InterconnectAttachmentPartnerMetadata interconnectName. */
                    public interconnectName?: (string|null);

                    /** InterconnectAttachmentPartnerMetadata partnerName. */
                    public partnerName?: (string|null);

                    /** InterconnectAttachmentPartnerMetadata portalUrl. */
                    public portalUrl?: (string|null);

                    /**
                     * Creates a new InterconnectAttachmentPartnerMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentPartnerMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentPartnerMetadata): google.cloud.compute.v1beta.InterconnectAttachmentPartnerMetadata;

                    /**
                     * Encodes the specified InterconnectAttachmentPartnerMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentPartnerMetadata.verify|verify} messages.
                     * @param message InterconnectAttachmentPartnerMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentPartnerMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentPartnerMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentPartnerMetadata.verify|verify} messages.
                     * @param message InterconnectAttachmentPartnerMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentPartnerMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentPartnerMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentPartnerMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentPartnerMetadata;

                    /**
                     * Decodes an InterconnectAttachmentPartnerMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentPartnerMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentPartnerMetadata;

                    /**
                     * Verifies an InterconnectAttachmentPartnerMetadata message.
                     * @param message Plain 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 InterconnectAttachmentPartnerMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentPartnerMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentPartnerMetadata;

                    /**
                     * Creates a plain object from an InterconnectAttachmentPartnerMetadata message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentPartnerMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentPartnerMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentPartnerMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentPartnerMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentPrivateInfo. */
                interface IInterconnectAttachmentPrivateInfo {

                    /** InterconnectAttachmentPrivateInfo tag8021q */
                    tag8021q?: (number|null);
                }

                /** Represents an InterconnectAttachmentPrivateInfo. */
                class InterconnectAttachmentPrivateInfo implements IInterconnectAttachmentPrivateInfo {

                    /**
                     * Constructs a new InterconnectAttachmentPrivateInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentPrivateInfo);

                    /** InterconnectAttachmentPrivateInfo tag8021q. */
                    public tag8021q?: (number|null);

                    /**
                     * Creates a new InterconnectAttachmentPrivateInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentPrivateInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentPrivateInfo): google.cloud.compute.v1beta.InterconnectAttachmentPrivateInfo;

                    /**
                     * Encodes the specified InterconnectAttachmentPrivateInfo message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentPrivateInfo.verify|verify} messages.
                     * @param message InterconnectAttachmentPrivateInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentPrivateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentPrivateInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentPrivateInfo.verify|verify} messages.
                     * @param message InterconnectAttachmentPrivateInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentPrivateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentPrivateInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentPrivateInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentPrivateInfo;

                    /**
                     * Decodes an InterconnectAttachmentPrivateInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentPrivateInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentPrivateInfo;

                    /**
                     * Verifies an InterconnectAttachmentPrivateInfo message.
                     * @param message Plain 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 InterconnectAttachmentPrivateInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentPrivateInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentPrivateInfo;

                    /**
                     * Creates a plain object from an InterconnectAttachmentPrivateInfo message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentPrivateInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentPrivateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentPrivateInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentPrivateInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectAttachmentsScopedList. */
                interface IInterconnectAttachmentsScopedList {

                    /** InterconnectAttachmentsScopedList interconnectAttachments */
                    interconnectAttachments?: (google.cloud.compute.v1beta.IInterconnectAttachment[]|null);

                    /** InterconnectAttachmentsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InterconnectAttachmentsScopedList. */
                class InterconnectAttachmentsScopedList implements IInterconnectAttachmentsScopedList {

                    /**
                     * Constructs a new InterconnectAttachmentsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentsScopedList);

                    /** InterconnectAttachmentsScopedList interconnectAttachments. */
                    public interconnectAttachments: google.cloud.compute.v1beta.IInterconnectAttachment[];

                    /** InterconnectAttachmentsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InterconnectAttachmentsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectAttachmentsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectAttachmentsScopedList): google.cloud.compute.v1beta.InterconnectAttachmentsScopedList;

                    /**
                     * Encodes the specified InterconnectAttachmentsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentsScopedList.verify|verify} messages.
                     * @param message InterconnectAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectAttachmentsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectAttachmentsScopedList.verify|verify} messages.
                     * @param message InterconnectAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectAttachmentsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectAttachmentsScopedList;

                    /**
                     * Decodes an InterconnectAttachmentsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectAttachmentsScopedList;

                    /**
                     * Verifies an InterconnectAttachmentsScopedList message.
                     * @param message Plain 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 InterconnectAttachmentsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectAttachmentsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectAttachmentsScopedList;

                    /**
                     * Creates a plain object from an InterconnectAttachmentsScopedList message. Also converts values to other types if specified.
                     * @param message InterconnectAttachmentsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectAttachmentsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectAttachmentsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectAttachmentsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectCircuitInfo. */
                interface IInterconnectCircuitInfo {

                    /** InterconnectCircuitInfo customerDemarcId */
                    customerDemarcId?: (string|null);

                    /** InterconnectCircuitInfo googleCircuitId */
                    googleCircuitId?: (string|null);

                    /** InterconnectCircuitInfo googleDemarcId */
                    googleDemarcId?: (string|null);
                }

                /** Represents an InterconnectCircuitInfo. */
                class InterconnectCircuitInfo implements IInterconnectCircuitInfo {

                    /**
                     * Constructs a new InterconnectCircuitInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectCircuitInfo);

                    /** InterconnectCircuitInfo customerDemarcId. */
                    public customerDemarcId?: (string|null);

                    /** InterconnectCircuitInfo googleCircuitId. */
                    public googleCircuitId?: (string|null);

                    /** InterconnectCircuitInfo googleDemarcId. */
                    public googleDemarcId?: (string|null);

                    /**
                     * Creates a new InterconnectCircuitInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectCircuitInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectCircuitInfo): google.cloud.compute.v1beta.InterconnectCircuitInfo;

                    /**
                     * Encodes the specified InterconnectCircuitInfo message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectCircuitInfo.verify|verify} messages.
                     * @param message InterconnectCircuitInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectCircuitInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectCircuitInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectCircuitInfo.verify|verify} messages.
                     * @param message InterconnectCircuitInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectCircuitInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectCircuitInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectCircuitInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectCircuitInfo;

                    /**
                     * Decodes an InterconnectCircuitInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectCircuitInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectCircuitInfo;

                    /**
                     * Verifies an InterconnectCircuitInfo message.
                     * @param message Plain 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 InterconnectCircuitInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectCircuitInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectCircuitInfo;

                    /**
                     * Creates a plain object from an InterconnectCircuitInfo message. Also converts values to other types if specified.
                     * @param message InterconnectCircuitInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectCircuitInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectCircuitInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectCircuitInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectDiagnostics. */
                interface IInterconnectDiagnostics {

                    /** InterconnectDiagnostics arpCaches */
                    arpCaches?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsARPEntry[]|null);

                    /** InterconnectDiagnostics bundleAggregationType */
                    bundleAggregationType?: (string|null);

                    /** InterconnectDiagnostics bundleOperationalStatus */
                    bundleOperationalStatus?: (string|null);

                    /** InterconnectDiagnostics links */
                    links?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkStatus[]|null);

                    /** InterconnectDiagnostics macAddress */
                    macAddress?: (string|null);
                }

                /** Represents an InterconnectDiagnostics. */
                class InterconnectDiagnostics implements IInterconnectDiagnostics {

                    /**
                     * Constructs a new InterconnectDiagnostics.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectDiagnostics);

                    /** InterconnectDiagnostics arpCaches. */
                    public arpCaches: google.cloud.compute.v1beta.IInterconnectDiagnosticsARPEntry[];

                    /** InterconnectDiagnostics bundleAggregationType. */
                    public bundleAggregationType?: (string|null);

                    /** InterconnectDiagnostics bundleOperationalStatus. */
                    public bundleOperationalStatus?: (string|null);

                    /** InterconnectDiagnostics links. */
                    public links: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkStatus[];

                    /** InterconnectDiagnostics macAddress. */
                    public macAddress?: (string|null);

                    /**
                     * Creates a new InterconnectDiagnostics instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnostics instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectDiagnostics): google.cloud.compute.v1beta.InterconnectDiagnostics;

                    /**
                     * Encodes the specified InterconnectDiagnostics message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnostics.verify|verify} messages.
                     * @param message InterconnectDiagnostics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectDiagnostics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnostics message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnostics.verify|verify} messages.
                     * @param message InterconnectDiagnostics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectDiagnostics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnostics message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnostics
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectDiagnostics;

                    /**
                     * Decodes an InterconnectDiagnostics message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnostics
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectDiagnostics;

                    /**
                     * Verifies an InterconnectDiagnostics message.
                     * @param message Plain 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 InterconnectDiagnostics message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnostics
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectDiagnostics;

                    /**
                     * Creates a plain object from an InterconnectDiagnostics message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnostics
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectDiagnostics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnostics to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnostics
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectDiagnostics {

                    /** BundleAggregationType enum. */
                    enum BundleAggregationType {
                        UNDEFINED_BUNDLE_AGGREGATION_TYPE = 0,
                        BUNDLE_AGGREGATION_TYPE_LACP = 27758925,
                        BUNDLE_AGGREGATION_TYPE_STATIC = 50678873
                    }

                    /** BundleOperationalStatus enum. */
                    enum BundleOperationalStatus {
                        UNDEFINED_BUNDLE_OPERATIONAL_STATUS = 0,
                        BUNDLE_OPERATIONAL_STATUS_DOWN = 453842693,
                        BUNDLE_OPERATIONAL_STATUS_UP = 161366462
                    }
                }

                /** Properties of an InterconnectDiagnosticsARPEntry. */
                interface IInterconnectDiagnosticsARPEntry {

                    /** InterconnectDiagnosticsARPEntry ipAddress */
                    ipAddress?: (string|null);

                    /** InterconnectDiagnosticsARPEntry macAddress */
                    macAddress?: (string|null);
                }

                /** Represents an InterconnectDiagnosticsARPEntry. */
                class InterconnectDiagnosticsARPEntry implements IInterconnectDiagnosticsARPEntry {

                    /**
                     * Constructs a new InterconnectDiagnosticsARPEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsARPEntry);

                    /** InterconnectDiagnosticsARPEntry ipAddress. */
                    public ipAddress?: (string|null);

                    /** InterconnectDiagnosticsARPEntry macAddress. */
                    public macAddress?: (string|null);

                    /**
                     * Creates a new InterconnectDiagnosticsARPEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsARPEntry instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsARPEntry): google.cloud.compute.v1beta.InterconnectDiagnosticsARPEntry;

                    /**
                     * Encodes the specified InterconnectDiagnosticsARPEntry message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsARPEntry.verify|verify} messages.
                     * @param message InterconnectDiagnosticsARPEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsARPEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsARPEntry message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsARPEntry.verify|verify} messages.
                     * @param message InterconnectDiagnosticsARPEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsARPEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsARPEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsARPEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectDiagnosticsARPEntry;

                    /**
                     * Decodes an InterconnectDiagnosticsARPEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsARPEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectDiagnosticsARPEntry;

                    /**
                     * Verifies an InterconnectDiagnosticsARPEntry message.
                     * @param message Plain 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 InterconnectDiagnosticsARPEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsARPEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectDiagnosticsARPEntry;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsARPEntry message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsARPEntry
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectDiagnosticsARPEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsARPEntry to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsARPEntry
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectDiagnosticsLinkLACPStatus. */
                interface IInterconnectDiagnosticsLinkLACPStatus {

                    /** InterconnectDiagnosticsLinkLACPStatus googleSystemId */
                    googleSystemId?: (string|null);

                    /** InterconnectDiagnosticsLinkLACPStatus neighborSystemId */
                    neighborSystemId?: (string|null);

                    /** InterconnectDiagnosticsLinkLACPStatus state */
                    state?: (string|null);
                }

                /** Represents an InterconnectDiagnosticsLinkLACPStatus. */
                class InterconnectDiagnosticsLinkLACPStatus implements IInterconnectDiagnosticsLinkLACPStatus {

                    /**
                     * Constructs a new InterconnectDiagnosticsLinkLACPStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkLACPStatus);

                    /** InterconnectDiagnosticsLinkLACPStatus googleSystemId. */
                    public googleSystemId?: (string|null);

                    /** InterconnectDiagnosticsLinkLACPStatus neighborSystemId. */
                    public neighborSystemId?: (string|null);

                    /** InterconnectDiagnosticsLinkLACPStatus state. */
                    public state?: (string|null);

                    /**
                     * Creates a new InterconnectDiagnosticsLinkLACPStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsLinkLACPStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkLACPStatus): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkLACPStatus;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkLACPStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsLinkLACPStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkLACPStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkLACPStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkLACPStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsLinkLACPStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkLACPStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkLACPStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkLACPStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsLinkLACPStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkLACPStatus;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkLACPStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsLinkLACPStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkLACPStatus;

                    /**
                     * Verifies an InterconnectDiagnosticsLinkLACPStatus message.
                     * @param message Plain 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 InterconnectDiagnosticsLinkLACPStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsLinkLACPStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkLACPStatus;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsLinkLACPStatus message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsLinkLACPStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectDiagnosticsLinkLACPStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsLinkLACPStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsLinkLACPStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectDiagnosticsLinkLACPStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DETACHED = 216562546
                    }
                }

                /** Properties of an InterconnectDiagnosticsLinkOpticalPower. */
                interface IInterconnectDiagnosticsLinkOpticalPower {

                    /** InterconnectDiagnosticsLinkOpticalPower state */
                    state?: (string|null);

                    /** InterconnectDiagnosticsLinkOpticalPower value */
                    value?: (number|null);
                }

                /** Represents an InterconnectDiagnosticsLinkOpticalPower. */
                class InterconnectDiagnosticsLinkOpticalPower implements IInterconnectDiagnosticsLinkOpticalPower {

                    /**
                     * Constructs a new InterconnectDiagnosticsLinkOpticalPower.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkOpticalPower);

                    /** InterconnectDiagnosticsLinkOpticalPower state. */
                    public state?: (string|null);

                    /** InterconnectDiagnosticsLinkOpticalPower value. */
                    public value?: (number|null);

                    /**
                     * Creates a new InterconnectDiagnosticsLinkOpticalPower instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsLinkOpticalPower instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkOpticalPower): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkOpticalPower;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkOpticalPower message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsLinkOpticalPower.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkOpticalPower message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkOpticalPower, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkOpticalPower message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsLinkOpticalPower.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkOpticalPower message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkOpticalPower, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkOpticalPower message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsLinkOpticalPower
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkOpticalPower;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkOpticalPower message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsLinkOpticalPower
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkOpticalPower;

                    /**
                     * Verifies an InterconnectDiagnosticsLinkOpticalPower message.
                     * @param message Plain 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 InterconnectDiagnosticsLinkOpticalPower message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsLinkOpticalPower
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkOpticalPower;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsLinkOpticalPower message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsLinkOpticalPower
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectDiagnosticsLinkOpticalPower, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsLinkOpticalPower to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsLinkOpticalPower
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectDiagnosticsLinkOpticalPower {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        HIGH_ALARM = 305363284,
                        HIGH_WARNING = 220984799,
                        LOW_ALARM = 316659046,
                        LOW_WARNING = 338793841,
                        OK = 2524
                    }
                }

                /** Properties of an InterconnectDiagnosticsLinkStatus. */
                interface IInterconnectDiagnosticsLinkStatus {

                    /** InterconnectDiagnosticsLinkStatus arpCaches */
                    arpCaches?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsARPEntry[]|null);

                    /** InterconnectDiagnosticsLinkStatus circuitId */
                    circuitId?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus googleDemarc */
                    googleDemarc?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus lacpStatus */
                    lacpStatus?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkLACPStatus|null);

                    /** InterconnectDiagnosticsLinkStatus macsec */
                    macsec?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsMacsecStatus|null);

                    /** InterconnectDiagnosticsLinkStatus operationalStatus */
                    operationalStatus?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus receivingOpticalPower */
                    receivingOpticalPower?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkOpticalPower|null);

                    /** InterconnectDiagnosticsLinkStatus transmittingOpticalPower */
                    transmittingOpticalPower?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkOpticalPower|null);
                }

                /** Represents an InterconnectDiagnosticsLinkStatus. */
                class InterconnectDiagnosticsLinkStatus implements IInterconnectDiagnosticsLinkStatus {

                    /**
                     * Constructs a new InterconnectDiagnosticsLinkStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkStatus);

                    /** InterconnectDiagnosticsLinkStatus arpCaches. */
                    public arpCaches: google.cloud.compute.v1beta.IInterconnectDiagnosticsARPEntry[];

                    /** InterconnectDiagnosticsLinkStatus circuitId. */
                    public circuitId?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus googleDemarc. */
                    public googleDemarc?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus lacpStatus. */
                    public lacpStatus?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkLACPStatus|null);

                    /** InterconnectDiagnosticsLinkStatus macsec. */
                    public macsec?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsMacsecStatus|null);

                    /** InterconnectDiagnosticsLinkStatus operationalStatus. */
                    public operationalStatus?: (string|null);

                    /** InterconnectDiagnosticsLinkStatus receivingOpticalPower. */
                    public receivingOpticalPower?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkOpticalPower|null);

                    /** InterconnectDiagnosticsLinkStatus transmittingOpticalPower. */
                    public transmittingOpticalPower?: (google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkOpticalPower|null);

                    /**
                     * Creates a new InterconnectDiagnosticsLinkStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsLinkStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkStatus): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkStatus;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsLinkStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsLinkStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsLinkStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsLinkStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsLinkStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsLinkStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkStatus;

                    /**
                     * Decodes an InterconnectDiagnosticsLinkStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsLinkStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkStatus;

                    /**
                     * Verifies an InterconnectDiagnosticsLinkStatus message.
                     * @param message Plain 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 InterconnectDiagnosticsLinkStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsLinkStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectDiagnosticsLinkStatus;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsLinkStatus message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsLinkStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectDiagnosticsLinkStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsLinkStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsLinkStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectDiagnosticsLinkStatus {

                    /** OperationalStatus enum. */
                    enum OperationalStatus {
                        UNDEFINED_OPERATIONAL_STATUS = 0,
                        LINK_OPERATIONAL_STATUS_DOWN = 281653885,
                        LINK_OPERATIONAL_STATUS_UP = 305879862
                    }
                }

                /** Properties of an InterconnectDiagnosticsMacsecStatus. */
                interface IInterconnectDiagnosticsMacsecStatus {

                    /** InterconnectDiagnosticsMacsecStatus ckn */
                    ckn?: (string|null);

                    /** InterconnectDiagnosticsMacsecStatus operational */
                    operational?: (boolean|null);
                }

                /** Represents an InterconnectDiagnosticsMacsecStatus. */
                class InterconnectDiagnosticsMacsecStatus implements IInterconnectDiagnosticsMacsecStatus {

                    /**
                     * Constructs a new InterconnectDiagnosticsMacsecStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsMacsecStatus);

                    /** InterconnectDiagnosticsMacsecStatus ckn. */
                    public ckn?: (string|null);

                    /** InterconnectDiagnosticsMacsecStatus operational. */
                    public operational?: (boolean|null);

                    /**
                     * Creates a new InterconnectDiagnosticsMacsecStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectDiagnosticsMacsecStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectDiagnosticsMacsecStatus): google.cloud.compute.v1beta.InterconnectDiagnosticsMacsecStatus;

                    /**
                     * Encodes the specified InterconnectDiagnosticsMacsecStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsMacsecStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsMacsecStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsMacsecStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectDiagnosticsMacsecStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectDiagnosticsMacsecStatus.verify|verify} messages.
                     * @param message InterconnectDiagnosticsMacsecStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectDiagnosticsMacsecStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectDiagnosticsMacsecStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectDiagnosticsMacsecStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectDiagnosticsMacsecStatus;

                    /**
                     * Decodes an InterconnectDiagnosticsMacsecStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectDiagnosticsMacsecStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectDiagnosticsMacsecStatus;

                    /**
                     * Verifies an InterconnectDiagnosticsMacsecStatus message.
                     * @param message Plain 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 InterconnectDiagnosticsMacsecStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectDiagnosticsMacsecStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectDiagnosticsMacsecStatus;

                    /**
                     * Creates a plain object from an InterconnectDiagnosticsMacsecStatus message. Also converts values to other types if specified.
                     * @param message InterconnectDiagnosticsMacsecStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectDiagnosticsMacsecStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectDiagnosticsMacsecStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectDiagnosticsMacsecStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroup. */
                interface IInterconnectGroup {

                    /** InterconnectGroup configured */
                    configured?: (google.cloud.compute.v1beta.IInterconnectGroupConfigured|null);

                    /** InterconnectGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectGroup description */
                    description?: (string|null);

                    /** InterconnectGroup etag */
                    etag?: (string|null);

                    /** InterconnectGroup id */
                    id?: (number|Long|string|null);

                    /** InterconnectGroup intent */
                    intent?: (google.cloud.compute.v1beta.IInterconnectGroupIntent|null);

                    /** InterconnectGroup interconnects */
                    interconnects?: ({ [k: string]: google.cloud.compute.v1beta.IInterconnectGroupInterconnect }|null);

                    /** InterconnectGroup kind */
                    kind?: (string|null);

                    /** InterconnectGroup name */
                    name?: (string|null);

                    /** InterconnectGroup physicalStructure */
                    physicalStructure?: (google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructure|null);

                    /** InterconnectGroup selfLink */
                    selfLink?: (string|null);
                }

                /** Represents an InterconnectGroup. */
                class InterconnectGroup implements IInterconnectGroup {

                    /**
                     * Constructs a new InterconnectGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroup);

                    /** InterconnectGroup configured. */
                    public configured?: (google.cloud.compute.v1beta.IInterconnectGroupConfigured|null);

                    /** InterconnectGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectGroup description. */
                    public description?: (string|null);

                    /** InterconnectGroup etag. */
                    public etag?: (string|null);

                    /** InterconnectGroup id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectGroup intent. */
                    public intent?: (google.cloud.compute.v1beta.IInterconnectGroupIntent|null);

                    /** InterconnectGroup interconnects. */
                    public interconnects: { [k: string]: google.cloud.compute.v1beta.IInterconnectGroupInterconnect };

                    /** InterconnectGroup kind. */
                    public kind?: (string|null);

                    /** InterconnectGroup name. */
                    public name?: (string|null);

                    /** InterconnectGroup physicalStructure. */
                    public physicalStructure?: (google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructure|null);

                    /** InterconnectGroup selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new InterconnectGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroup): google.cloud.compute.v1beta.InterconnectGroup;

                    /**
                     * Encodes the specified InterconnectGroup message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroup.verify|verify} messages.
                     * @param message InterconnectGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroup.verify|verify} messages.
                     * @param message InterconnectGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroup;

                    /**
                     * Decodes an InterconnectGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroup;

                    /**
                     * Verifies an InterconnectGroup message.
                     * @param message Plain 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 InterconnectGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroup;

                    /**
                     * Creates a plain object from an InterconnectGroup message. Also converts values to other types if specified.
                     * @param message InterconnectGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupConfigured. */
                interface IInterconnectGroupConfigured {

                    /** InterconnectGroupConfigured topologyCapability */
                    topologyCapability?: (google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapability|null);
                }

                /** Represents an InterconnectGroupConfigured. */
                class InterconnectGroupConfigured implements IInterconnectGroupConfigured {

                    /**
                     * Constructs a new InterconnectGroupConfigured.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupConfigured);

                    /** InterconnectGroupConfigured topologyCapability. */
                    public topologyCapability?: (google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapability|null);

                    /**
                     * Creates a new InterconnectGroupConfigured instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupConfigured instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupConfigured): google.cloud.compute.v1beta.InterconnectGroupConfigured;

                    /**
                     * Encodes the specified InterconnectGroupConfigured message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupConfigured.verify|verify} messages.
                     * @param message InterconnectGroupConfigured message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupConfigured, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupConfigured message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupConfigured.verify|verify} messages.
                     * @param message InterconnectGroupConfigured message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupConfigured, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupConfigured message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupConfigured
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupConfigured;

                    /**
                     * Decodes an InterconnectGroupConfigured message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupConfigured
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupConfigured;

                    /**
                     * Verifies an InterconnectGroupConfigured message.
                     * @param message Plain 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 InterconnectGroupConfigured message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupConfigured
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupConfigured;

                    /**
                     * Creates a plain object from an InterconnectGroupConfigured message. Also converts values to other types if specified.
                     * @param message InterconnectGroupConfigured
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupConfigured, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupConfigured to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupConfigured
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupConfiguredTopologyCapability. */
                interface IInterconnectGroupConfiguredTopologyCapability {

                    /** InterconnectGroupConfiguredTopologyCapability intendedCapabilityBlockers */
                    intendedCapabilityBlockers?: (google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers[]|null);

                    /** InterconnectGroupConfiguredTopologyCapability supportedSla */
                    supportedSla?: (string|null);
                }

                /** Represents an InterconnectGroupConfiguredTopologyCapability. */
                class InterconnectGroupConfiguredTopologyCapability implements IInterconnectGroupConfiguredTopologyCapability {

                    /**
                     * Constructs a new InterconnectGroupConfiguredTopologyCapability.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapability);

                    /** InterconnectGroupConfiguredTopologyCapability intendedCapabilityBlockers. */
                    public intendedCapabilityBlockers: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers[];

                    /** InterconnectGroupConfiguredTopologyCapability supportedSla. */
                    public supportedSla?: (string|null);

                    /**
                     * Creates a new InterconnectGroupConfiguredTopologyCapability instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupConfiguredTopologyCapability instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapability): google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapability;

                    /**
                     * Encodes the specified InterconnectGroupConfiguredTopologyCapability message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapability.verify|verify} messages.
                     * @param message InterconnectGroupConfiguredTopologyCapability message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapability, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupConfiguredTopologyCapability message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapability.verify|verify} messages.
                     * @param message InterconnectGroupConfiguredTopologyCapability message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapability, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupConfiguredTopologyCapability message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupConfiguredTopologyCapability
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapability;

                    /**
                     * Decodes an InterconnectGroupConfiguredTopologyCapability message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupConfiguredTopologyCapability
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapability;

                    /**
                     * Verifies an InterconnectGroupConfiguredTopologyCapability message.
                     * @param message Plain 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 InterconnectGroupConfiguredTopologyCapability message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupConfiguredTopologyCapability
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapability;

                    /**
                     * Creates a plain object from an InterconnectGroupConfiguredTopologyCapability message. Also converts values to other types if specified.
                     * @param message InterconnectGroupConfiguredTopologyCapability
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapability, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupConfiguredTopologyCapability to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupConfiguredTopologyCapability
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupConfiguredTopologyCapability {

                    /** SupportedSla enum. */
                    enum SupportedSla {
                        UNDEFINED_SUPPORTED_SLA = 0,
                        NO_SLA = 161460618,
                        PRODUCTION_CRITICAL = 470416485,
                        PRODUCTION_NON_CRITICAL = 117399223,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers. */
                interface IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers {

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers blockerType */
                    blockerType?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers documentationLink */
                    documentationLink?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers explanation */
                    explanation?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers facilities */
                    facilities?: (string[]|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers interconnects */
                    interconnects?: (string[]|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers metros */
                    metros?: (string[]|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers zones */
                    zones?: (string[]|null);
                }

                /** Represents an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers. */
                class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers implements IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers {

                    /**
                     * Constructs a new InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers blockerType. */
                    public blockerType?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers documentationLink. */
                    public documentationLink?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers explanation. */
                    public explanation?: (string|null);

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers facilities. */
                    public facilities: string[];

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers interconnects. */
                    public interconnects: string[];

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers metros. */
                    public metros: string[];

                    /** InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers zones. */
                    public zones: string[];

                    /**
                     * Creates a new InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers): google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers;

                    /**
                     * Encodes the specified InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers.verify|verify} messages.
                     * @param message InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers.verify|verify} messages.
                     * @param message InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers;

                    /**
                     * Decodes an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers;

                    /**
                     * Verifies an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message.
                     * @param message Plain 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 InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers;

                    /**
                     * Creates a plain object from an InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers message. Also converts values to other types if specified.
                     * @param message InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers {

                    /** BlockerType enum. */
                    enum BlockerType {
                        UNDEFINED_BLOCKER_TYPE = 0,
                        INCOMPATIBLE_METROS = 290410432,
                        NOT_AVAILABLE = 140722205,
                        NO_INTERCONNECTS = 523549575,
                        NO_INTERCONNECTS_IN_METRO_AND_ZONE = 440966492,
                        OTHER = 75532016,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectGroupIntent. */
                interface IInterconnectGroupIntent {

                    /** InterconnectGroupIntent topologyCapability */
                    topologyCapability?: (string|null);
                }

                /** Represents an InterconnectGroupIntent. */
                class InterconnectGroupIntent implements IInterconnectGroupIntent {

                    /**
                     * Constructs a new InterconnectGroupIntent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupIntent);

                    /** InterconnectGroupIntent topologyCapability. */
                    public topologyCapability?: (string|null);

                    /**
                     * Creates a new InterconnectGroupIntent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupIntent instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupIntent): google.cloud.compute.v1beta.InterconnectGroupIntent;

                    /**
                     * Encodes the specified InterconnectGroupIntent message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupIntent.verify|verify} messages.
                     * @param message InterconnectGroupIntent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupIntent message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupIntent.verify|verify} messages.
                     * @param message InterconnectGroupIntent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupIntent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupIntent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupIntent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupIntent;

                    /**
                     * Decodes an InterconnectGroupIntent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupIntent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupIntent;

                    /**
                     * Verifies an InterconnectGroupIntent message.
                     * @param message Plain 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 InterconnectGroupIntent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupIntent
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupIntent;

                    /**
                     * Creates a plain object from an InterconnectGroupIntent message. Also converts values to other types if specified.
                     * @param message InterconnectGroupIntent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupIntent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupIntent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupIntent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupIntent {

                    /** TopologyCapability enum. */
                    enum TopologyCapability {
                        UNDEFINED_TOPOLOGY_CAPABILITY = 0,
                        NO_SLA = 161460618,
                        PRODUCTION_CRITICAL = 470416485,
                        PRODUCTION_NON_CRITICAL = 117399223,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectGroupInterconnect. */
                interface IInterconnectGroupInterconnect {

                    /** InterconnectGroupInterconnect interconnect */
                    interconnect?: (string|null);
                }

                /** Represents an InterconnectGroupInterconnect. */
                class InterconnectGroupInterconnect implements IInterconnectGroupInterconnect {

                    /**
                     * Constructs a new InterconnectGroupInterconnect.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupInterconnect);

                    /** InterconnectGroupInterconnect interconnect. */
                    public interconnect?: (string|null);

                    /**
                     * Creates a new InterconnectGroupInterconnect instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupInterconnect instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupInterconnect): google.cloud.compute.v1beta.InterconnectGroupInterconnect;

                    /**
                     * Encodes the specified InterconnectGroupInterconnect message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupInterconnect.verify|verify} messages.
                     * @param message InterconnectGroupInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupInterconnect message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupInterconnect.verify|verify} messages.
                     * @param message InterconnectGroupInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupInterconnect message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupInterconnect;

                    /**
                     * Decodes an InterconnectGroupInterconnect message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupInterconnect;

                    /**
                     * Verifies an InterconnectGroupInterconnect message.
                     * @param message Plain 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 InterconnectGroupInterconnect message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupInterconnect
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupInterconnect;

                    /**
                     * Creates a plain object from an InterconnectGroupInterconnect message. Also converts values to other types if specified.
                     * @param message InterconnectGroupInterconnect
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupInterconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupInterconnect to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupInterconnect
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupPhysicalStructure. */
                interface IInterconnectGroupPhysicalStructure {

                    /** InterconnectGroupPhysicalStructure metros */
                    metros?: (google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetros[]|null);
                }

                /** Represents an InterconnectGroupPhysicalStructure. */
                class InterconnectGroupPhysicalStructure implements IInterconnectGroupPhysicalStructure {

                    /**
                     * Constructs a new InterconnectGroupPhysicalStructure.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructure);

                    /** InterconnectGroupPhysicalStructure metros. */
                    public metros: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetros[];

                    /**
                     * Creates a new InterconnectGroupPhysicalStructure instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupPhysicalStructure instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructure): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructure;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructure message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupPhysicalStructure.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructure message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupPhysicalStructure.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructure message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupPhysicalStructure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructure;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructure message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupPhysicalStructure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructure;

                    /**
                     * Verifies an InterconnectGroupPhysicalStructure message.
                     * @param message Plain 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 InterconnectGroupPhysicalStructure message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupPhysicalStructure
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructure;

                    /**
                     * Creates a plain object from an InterconnectGroupPhysicalStructure message. Also converts values to other types if specified.
                     * @param message InterconnectGroupPhysicalStructure
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupPhysicalStructure, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupPhysicalStructure to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupPhysicalStructure
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupPhysicalStructureMetros. */
                interface IInterconnectGroupPhysicalStructureMetros {

                    /** InterconnectGroupPhysicalStructureMetros facilities */
                    facilities?: (google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilities[]|null);

                    /** InterconnectGroupPhysicalStructureMetros metro */
                    metro?: (string|null);
                }

                /** Represents an InterconnectGroupPhysicalStructureMetros. */
                class InterconnectGroupPhysicalStructureMetros implements IInterconnectGroupPhysicalStructureMetros {

                    /**
                     * Constructs a new InterconnectGroupPhysicalStructureMetros.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetros);

                    /** InterconnectGroupPhysicalStructureMetros facilities. */
                    public facilities: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilities[];

                    /** InterconnectGroupPhysicalStructureMetros metro. */
                    public metro?: (string|null);

                    /**
                     * Creates a new InterconnectGroupPhysicalStructureMetros instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupPhysicalStructureMetros instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetros): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetros;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetros message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetros.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetros message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetros, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetros message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetros.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetros message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetros, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetros message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupPhysicalStructureMetros
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetros;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetros message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupPhysicalStructureMetros
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetros;

                    /**
                     * Verifies an InterconnectGroupPhysicalStructureMetros message.
                     * @param message Plain 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 InterconnectGroupPhysicalStructureMetros message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupPhysicalStructureMetros
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetros;

                    /**
                     * Creates a plain object from an InterconnectGroupPhysicalStructureMetros message. Also converts values to other types if specified.
                     * @param message InterconnectGroupPhysicalStructureMetros
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetros, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupPhysicalStructureMetros to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupPhysicalStructureMetros
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupPhysicalStructureMetrosFacilities. */
                interface IInterconnectGroupPhysicalStructureMetrosFacilities {

                    /** InterconnectGroupPhysicalStructureMetrosFacilities facility */
                    facility?: (string|null);

                    /** InterconnectGroupPhysicalStructureMetrosFacilities zones */
                    zones?: (google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones[]|null);
                }

                /** Represents an InterconnectGroupPhysicalStructureMetrosFacilities. */
                class InterconnectGroupPhysicalStructureMetrosFacilities implements IInterconnectGroupPhysicalStructureMetrosFacilities {

                    /**
                     * Constructs a new InterconnectGroupPhysicalStructureMetrosFacilities.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilities);

                    /** InterconnectGroupPhysicalStructureMetrosFacilities facility. */
                    public facility?: (string|null);

                    /** InterconnectGroupPhysicalStructureMetrosFacilities zones. */
                    public zones: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones[];

                    /**
                     * Creates a new InterconnectGroupPhysicalStructureMetrosFacilities instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilities instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilities): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilities;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetrosFacilities message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilities.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilities message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilities, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetrosFacilities message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilities.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilities message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilities, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetrosFacilities message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilities
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilities;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetrosFacilities message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilities
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilities;

                    /**
                     * Verifies an InterconnectGroupPhysicalStructureMetrosFacilities message.
                     * @param message Plain 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 InterconnectGroupPhysicalStructureMetrosFacilities message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilities
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilities;

                    /**
                     * Creates a plain object from an InterconnectGroupPhysicalStructureMetrosFacilities message. Also converts values to other types if specified.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilities
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilities, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupPhysicalStructureMetrosFacilities to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupPhysicalStructureMetrosFacilities
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupPhysicalStructureMetrosFacilitiesZones. */
                interface IInterconnectGroupPhysicalStructureMetrosFacilitiesZones {

                    /** InterconnectGroupPhysicalStructureMetrosFacilitiesZones interconnects */
                    interconnects?: (string[]|null);

                    /** InterconnectGroupPhysicalStructureMetrosFacilitiesZones zone */
                    zone?: (string|null);
                }

                /** Represents an InterconnectGroupPhysicalStructureMetrosFacilitiesZones. */
                class InterconnectGroupPhysicalStructureMetrosFacilitiesZones implements IInterconnectGroupPhysicalStructureMetrosFacilitiesZones {

                    /**
                     * Constructs a new InterconnectGroupPhysicalStructureMetrosFacilitiesZones.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones);

                    /** InterconnectGroupPhysicalStructureMetrosFacilitiesZones interconnects. */
                    public interconnects: string[];

                    /** InterconnectGroupPhysicalStructureMetrosFacilitiesZones zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new InterconnectGroupPhysicalStructureMetrosFacilitiesZones instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilitiesZones instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilitiesZones;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetrosFacilitiesZones message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilitiesZones.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilitiesZones message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupPhysicalStructureMetrosFacilitiesZones message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilitiesZones.verify|verify} messages.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilitiesZones message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupPhysicalStructureMetrosFacilitiesZones, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetrosFacilitiesZones message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilitiesZones;

                    /**
                     * Decodes an InterconnectGroupPhysicalStructureMetrosFacilitiesZones message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilitiesZones;

                    /**
                     * Verifies an InterconnectGroupPhysicalStructureMetrosFacilitiesZones message.
                     * @param message Plain 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 InterconnectGroupPhysicalStructureMetrosFacilitiesZones message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilitiesZones;

                    /**
                     * Creates a plain object from an InterconnectGroupPhysicalStructureMetrosFacilitiesZones message. Also converts values to other types if specified.
                     * @param message InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupPhysicalStructureMetrosFacilitiesZones, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupPhysicalStructureMetrosFacilitiesZones to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupPhysicalStructureMetrosFacilitiesZones
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupsCreateMembers. */
                interface IInterconnectGroupsCreateMembers {

                    /** InterconnectGroupsCreateMembers intentMismatchBehavior */
                    intentMismatchBehavior?: (string|null);

                    /** InterconnectGroupsCreateMembers interconnects */
                    interconnects?: (google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersInterconnectInput[]|null);

                    /** InterconnectGroupsCreateMembers templateInterconnect */
                    templateInterconnect?: (google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersInterconnectInput|null);
                }

                /** Represents an InterconnectGroupsCreateMembers. */
                class InterconnectGroupsCreateMembers implements IInterconnectGroupsCreateMembers {

                    /**
                     * Constructs a new InterconnectGroupsCreateMembers.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembers);

                    /** InterconnectGroupsCreateMembers intentMismatchBehavior. */
                    public intentMismatchBehavior?: (string|null);

                    /** InterconnectGroupsCreateMembers interconnects. */
                    public interconnects: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersInterconnectInput[];

                    /** InterconnectGroupsCreateMembers templateInterconnect. */
                    public templateInterconnect?: (google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersInterconnectInput|null);

                    /**
                     * Creates a new InterconnectGroupsCreateMembers instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsCreateMembers instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembers): google.cloud.compute.v1beta.InterconnectGroupsCreateMembers;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembers message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsCreateMembers.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembers message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsCreateMembers.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembers message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembers, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsCreateMembers message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsCreateMembers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupsCreateMembers;

                    /**
                     * Decodes an InterconnectGroupsCreateMembers message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsCreateMembers
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupsCreateMembers;

                    /**
                     * Verifies an InterconnectGroupsCreateMembers message.
                     * @param message Plain 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 InterconnectGroupsCreateMembers message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsCreateMembers
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupsCreateMembers;

                    /**
                     * Creates a plain object from an InterconnectGroupsCreateMembers message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsCreateMembers
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupsCreateMembers, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsCreateMembers to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsCreateMembers
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupsCreateMembers {

                    /** IntentMismatchBehavior enum. */
                    enum IntentMismatchBehavior {
                        UNDEFINED_INTENT_MISMATCH_BEHAVIOR = 0,
                        CREATE = 385389820,
                        REJECT = 266102687,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of an InterconnectGroupsCreateMembersInterconnectInput. */
                interface IInterconnectGroupsCreateMembersInterconnectInput {

                    /** InterconnectGroupsCreateMembersInterconnectInput adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput customerName */
                    customerName?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput description */
                    description?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput facility */
                    facility?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput interconnectType */
                    interconnectType?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput linkType */
                    linkType?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput name */
                    name?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput nocContactEmail */
                    nocContactEmail?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput remoteLocation */
                    remoteLocation?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput requestedFeatures */
                    requestedFeatures?: (string[]|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput requestedLinkCount */
                    requestedLinkCount?: (number|null);
                }

                /** Represents an InterconnectGroupsCreateMembersInterconnectInput. */
                class InterconnectGroupsCreateMembersInterconnectInput implements IInterconnectGroupsCreateMembersInterconnectInput {

                    /**
                     * Constructs a new InterconnectGroupsCreateMembersInterconnectInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersInterconnectInput);

                    /** InterconnectGroupsCreateMembersInterconnectInput adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput customerName. */
                    public customerName?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput description. */
                    public description?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput facility. */
                    public facility?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput interconnectType. */
                    public interconnectType?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput linkType. */
                    public linkType?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput name. */
                    public name?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput nocContactEmail. */
                    public nocContactEmail?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput remoteLocation. */
                    public remoteLocation?: (string|null);

                    /** InterconnectGroupsCreateMembersInterconnectInput requestedFeatures. */
                    public requestedFeatures: string[];

                    /** InterconnectGroupsCreateMembersInterconnectInput requestedLinkCount. */
                    public requestedLinkCount?: (number|null);

                    /**
                     * Creates a new InterconnectGroupsCreateMembersInterconnectInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsCreateMembersInterconnectInput instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersInterconnectInput): google.cloud.compute.v1beta.InterconnectGroupsCreateMembersInterconnectInput;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembersInterconnectInput message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsCreateMembersInterconnectInput.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembersInterconnectInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersInterconnectInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembersInterconnectInput message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsCreateMembersInterconnectInput.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembersInterconnectInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersInterconnectInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsCreateMembersInterconnectInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsCreateMembersInterconnectInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupsCreateMembersInterconnectInput;

                    /**
                     * Decodes an InterconnectGroupsCreateMembersInterconnectInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsCreateMembersInterconnectInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupsCreateMembersInterconnectInput;

                    /**
                     * Verifies an InterconnectGroupsCreateMembersInterconnectInput message.
                     * @param message Plain 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 InterconnectGroupsCreateMembersInterconnectInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsCreateMembersInterconnectInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupsCreateMembersInterconnectInput;

                    /**
                     * Creates a plain object from an InterconnectGroupsCreateMembersInterconnectInput message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsCreateMembersInterconnectInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupsCreateMembersInterconnectInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsCreateMembersInterconnectInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsCreateMembersInterconnectInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupsCreateMembersInterconnectInput {

                    /** InterconnectType enum. */
                    enum InterconnectType {
                        UNDEFINED_INTERCONNECT_TYPE = 0,
                        DEDICATED = 258411983,
                        IT_PRIVATE = 335677007,
                        PARTNER = 461924520
                    }

                    /** LinkType enum. */
                    enum LinkType {
                        UNDEFINED_LINK_TYPE = 0,
                        LINK_TYPE_ETHERNET_100G_LR = 337672551,
                        LINK_TYPE_ETHERNET_10G_LR = 236739749,
                        LINK_TYPE_ETHERNET_400G_LR4 = 127023690
                    }

                    /** RequestedFeatures enum. */
                    enum RequestedFeatures {
                        UNDEFINED_REQUESTED_FEATURES = 0,
                        IF_CROSS_SITE_NETWORK = 469111095,
                        IF_L2_FORWARDING = 125563860,
                        IF_MACSEC = 396279300
                    }
                }

                /** Properties of an InterconnectGroupsCreateMembersRequest. */
                interface IInterconnectGroupsCreateMembersRequest {

                    /** InterconnectGroupsCreateMembersRequest request */
                    request?: (google.cloud.compute.v1beta.IInterconnectGroupsCreateMembers|null);
                }

                /** Represents an InterconnectGroupsCreateMembersRequest. */
                class InterconnectGroupsCreateMembersRequest implements IInterconnectGroupsCreateMembersRequest {

                    /**
                     * Constructs a new InterconnectGroupsCreateMembersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersRequest);

                    /** InterconnectGroupsCreateMembersRequest request. */
                    public request?: (google.cloud.compute.v1beta.IInterconnectGroupsCreateMembers|null);

                    /**
                     * Creates a new InterconnectGroupsCreateMembersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsCreateMembersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersRequest): google.cloud.compute.v1beta.InterconnectGroupsCreateMembersRequest;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsCreateMembersRequest.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsCreateMembersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsCreateMembersRequest.verify|verify} messages.
                     * @param message InterconnectGroupsCreateMembersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupsCreateMembersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsCreateMembersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsCreateMembersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupsCreateMembersRequest;

                    /**
                     * Decodes an InterconnectGroupsCreateMembersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsCreateMembersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupsCreateMembersRequest;

                    /**
                     * Verifies an InterconnectGroupsCreateMembersRequest message.
                     * @param message Plain 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 InterconnectGroupsCreateMembersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsCreateMembersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupsCreateMembersRequest;

                    /**
                     * Creates a plain object from an InterconnectGroupsCreateMembersRequest message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsCreateMembersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupsCreateMembersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsCreateMembersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsCreateMembersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupsGetOperationalStatusResponse. */
                interface IInterconnectGroupsGetOperationalStatusResponse {

                    /** InterconnectGroupsGetOperationalStatusResponse etag */
                    etag?: (string|null);

                    /** InterconnectGroupsGetOperationalStatusResponse result */
                    result?: (google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatus|null);
                }

                /** Represents an InterconnectGroupsGetOperationalStatusResponse. */
                class InterconnectGroupsGetOperationalStatusResponse implements IInterconnectGroupsGetOperationalStatusResponse {

                    /**
                     * Constructs a new InterconnectGroupsGetOperationalStatusResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupsGetOperationalStatusResponse);

                    /** InterconnectGroupsGetOperationalStatusResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectGroupsGetOperationalStatusResponse result. */
                    public result?: (google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatus|null);

                    /**
                     * Creates a new InterconnectGroupsGetOperationalStatusResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsGetOperationalStatusResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupsGetOperationalStatusResponse): google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse;

                    /**
                     * Encodes the specified InterconnectGroupsGetOperationalStatusResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse.verify|verify} messages.
                     * @param message InterconnectGroupsGetOperationalStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupsGetOperationalStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsGetOperationalStatusResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse.verify|verify} messages.
                     * @param message InterconnectGroupsGetOperationalStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupsGetOperationalStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsGetOperationalStatusResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsGetOperationalStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse;

                    /**
                     * Decodes an InterconnectGroupsGetOperationalStatusResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsGetOperationalStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse;

                    /**
                     * Verifies an InterconnectGroupsGetOperationalStatusResponse message.
                     * @param message Plain 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 InterconnectGroupsGetOperationalStatusResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsGetOperationalStatusResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse;

                    /**
                     * Creates a plain object from an InterconnectGroupsGetOperationalStatusResponse message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsGetOperationalStatusResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsGetOperationalStatusResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsGetOperationalStatusResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupsListResponse. */
                interface IInterconnectGroupsListResponse {

                    /** InterconnectGroupsListResponse etag */
                    etag?: (string|null);

                    /** InterconnectGroupsListResponse id */
                    id?: (string|null);

                    /** InterconnectGroupsListResponse items */
                    items?: (google.cloud.compute.v1beta.IInterconnectGroup[]|null);

                    /** InterconnectGroupsListResponse kind */
                    kind?: (string|null);

                    /** InterconnectGroupsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectGroupsListResponse selfLink */
                    selfLink?: (string|null);

                    /** InterconnectGroupsListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** InterconnectGroupsListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InterconnectGroupsListResponse. */
                class InterconnectGroupsListResponse implements IInterconnectGroupsListResponse {

                    /**
                     * Constructs a new InterconnectGroupsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupsListResponse);

                    /** InterconnectGroupsListResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectGroupsListResponse id. */
                    public id?: (string|null);

                    /** InterconnectGroupsListResponse items. */
                    public items: google.cloud.compute.v1beta.IInterconnectGroup[];

                    /** InterconnectGroupsListResponse kind. */
                    public kind?: (string|null);

                    /** InterconnectGroupsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectGroupsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectGroupsListResponse unreachables. */
                    public unreachables: string[];

                    /** InterconnectGroupsListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InterconnectGroupsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupsListResponse): google.cloud.compute.v1beta.InterconnectGroupsListResponse;

                    /**
                     * Encodes the specified InterconnectGroupsListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsListResponse.verify|verify} messages.
                     * @param message InterconnectGroupsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsListResponse.verify|verify} messages.
                     * @param message InterconnectGroupsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupsListResponse;

                    /**
                     * Decodes an InterconnectGroupsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupsListResponse;

                    /**
                     * Verifies an InterconnectGroupsListResponse message.
                     * @param message Plain 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 InterconnectGroupsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupsListResponse;

                    /**
                     * Creates a plain object from an InterconnectGroupsListResponse message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectGroupsOperationalStatus. */
                interface IInterconnectGroupsOperationalStatus {

                    /** InterconnectGroupsOperationalStatus configured */
                    configured?: (google.cloud.compute.v1beta.IInterconnectGroupConfigured|null);

                    /** InterconnectGroupsOperationalStatus groupStatus */
                    groupStatus?: (string|null);

                    /** InterconnectGroupsOperationalStatus intent */
                    intent?: (google.cloud.compute.v1beta.IInterconnectGroupIntent|null);

                    /** InterconnectGroupsOperationalStatus interconnectStatuses */
                    interconnectStatuses?: (google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatusInterconnectStatus[]|null);

                    /** InterconnectGroupsOperationalStatus operational */
                    operational?: (google.cloud.compute.v1beta.IInterconnectGroupConfigured|null);
                }

                /** Represents an InterconnectGroupsOperationalStatus. */
                class InterconnectGroupsOperationalStatus implements IInterconnectGroupsOperationalStatus {

                    /**
                     * Constructs a new InterconnectGroupsOperationalStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatus);

                    /** InterconnectGroupsOperationalStatus configured. */
                    public configured?: (google.cloud.compute.v1beta.IInterconnectGroupConfigured|null);

                    /** InterconnectGroupsOperationalStatus groupStatus. */
                    public groupStatus?: (string|null);

                    /** InterconnectGroupsOperationalStatus intent. */
                    public intent?: (google.cloud.compute.v1beta.IInterconnectGroupIntent|null);

                    /** InterconnectGroupsOperationalStatus interconnectStatuses. */
                    public interconnectStatuses: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatusInterconnectStatus[];

                    /** InterconnectGroupsOperationalStatus operational. */
                    public operational?: (google.cloud.compute.v1beta.IInterconnectGroupConfigured|null);

                    /**
                     * Creates a new InterconnectGroupsOperationalStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsOperationalStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatus): google.cloud.compute.v1beta.InterconnectGroupsOperationalStatus;

                    /**
                     * Encodes the specified InterconnectGroupsOperationalStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsOperationalStatus.verify|verify} messages.
                     * @param message InterconnectGroupsOperationalStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsOperationalStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsOperationalStatus.verify|verify} messages.
                     * @param message InterconnectGroupsOperationalStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsOperationalStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsOperationalStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupsOperationalStatus;

                    /**
                     * Decodes an InterconnectGroupsOperationalStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsOperationalStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupsOperationalStatus;

                    /**
                     * Verifies an InterconnectGroupsOperationalStatus message.
                     * @param message Plain 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 InterconnectGroupsOperationalStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsOperationalStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupsOperationalStatus;

                    /**
                     * Creates a plain object from an InterconnectGroupsOperationalStatus message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsOperationalStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupsOperationalStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsOperationalStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsOperationalStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupsOperationalStatus {

                    /** GroupStatus enum. */
                    enum GroupStatus {
                        UNDEFINED_GROUP_STATUS = 0,
                        DEGRADED = 396890926,
                        FULLY_DOWN = 255514647,
                        FULLY_UP = 504176464,
                        GROUPS_STATUS_UNSPECIFIED = 261932693
                    }
                }

                /** Properties of an InterconnectGroupsOperationalStatusInterconnectStatus. */
                interface IInterconnectGroupsOperationalStatusInterconnectStatus {

                    /** InterconnectGroupsOperationalStatusInterconnectStatus adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus diagnostics */
                    diagnostics?: (google.cloud.compute.v1beta.IInterconnectDiagnostics|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus interconnect */
                    interconnect?: (string|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus isActive */
                    isActive?: (string|null);
                }

                /** Represents an InterconnectGroupsOperationalStatusInterconnectStatus. */
                class InterconnectGroupsOperationalStatusInterconnectStatus implements IInterconnectGroupsOperationalStatusInterconnectStatus {

                    /**
                     * Constructs a new InterconnectGroupsOperationalStatusInterconnectStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatusInterconnectStatus);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus diagnostics. */
                    public diagnostics?: (google.cloud.compute.v1beta.IInterconnectDiagnostics|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus interconnect. */
                    public interconnect?: (string|null);

                    /** InterconnectGroupsOperationalStatusInterconnectStatus isActive. */
                    public isActive?: (string|null);

                    /**
                     * Creates a new InterconnectGroupsOperationalStatusInterconnectStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectGroupsOperationalStatusInterconnectStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatusInterconnectStatus): google.cloud.compute.v1beta.InterconnectGroupsOperationalStatusInterconnectStatus;

                    /**
                     * Encodes the specified InterconnectGroupsOperationalStatusInterconnectStatus message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsOperationalStatusInterconnectStatus.verify|verify} messages.
                     * @param message InterconnectGroupsOperationalStatusInterconnectStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatusInterconnectStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectGroupsOperationalStatusInterconnectStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectGroupsOperationalStatusInterconnectStatus.verify|verify} messages.
                     * @param message InterconnectGroupsOperationalStatusInterconnectStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectGroupsOperationalStatusInterconnectStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectGroupsOperationalStatusInterconnectStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectGroupsOperationalStatusInterconnectStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectGroupsOperationalStatusInterconnectStatus;

                    /**
                     * Decodes an InterconnectGroupsOperationalStatusInterconnectStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectGroupsOperationalStatusInterconnectStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectGroupsOperationalStatusInterconnectStatus;

                    /**
                     * Verifies an InterconnectGroupsOperationalStatusInterconnectStatus message.
                     * @param message Plain 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 InterconnectGroupsOperationalStatusInterconnectStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectGroupsOperationalStatusInterconnectStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectGroupsOperationalStatusInterconnectStatus;

                    /**
                     * Creates a plain object from an InterconnectGroupsOperationalStatusInterconnectStatus message. Also converts values to other types if specified.
                     * @param message InterconnectGroupsOperationalStatusInterconnectStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectGroupsOperationalStatusInterconnectStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectGroupsOperationalStatusInterconnectStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectGroupsOperationalStatusInterconnectStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectGroupsOperationalStatusInterconnectStatus {

                    /** IsActive enum. */
                    enum IsActive {
                        UNDEFINED_IS_ACTIVE = 0,
                        ACTIVE = 314733318,
                        INACTIVE = 270421099,
                        IS_ACTIVE_UNSPECIFIED = 274948243
                    }
                }

                /** Properties of an InterconnectList. */
                interface IInterconnectList {

                    /** InterconnectList id */
                    id?: (string|null);

                    /** InterconnectList items */
                    items?: (google.cloud.compute.v1beta.IInterconnect[]|null);

                    /** InterconnectList kind */
                    kind?: (string|null);

                    /** InterconnectList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InterconnectList. */
                class InterconnectList implements IInterconnectList {

                    /**
                     * Constructs a new InterconnectList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectList);

                    /** InterconnectList id. */
                    public id?: (string|null);

                    /** InterconnectList items. */
                    public items: google.cloud.compute.v1beta.IInterconnect[];

                    /** InterconnectList kind. */
                    public kind?: (string|null);

                    /** InterconnectList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InterconnectList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectList): google.cloud.compute.v1beta.InterconnectList;

                    /**
                     * Encodes the specified InterconnectList message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectList.verify|verify} messages.
                     * @param message InterconnectList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectList.verify|verify} messages.
                     * @param message InterconnectList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectList;

                    /**
                     * Decodes an InterconnectList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectList;

                    /**
                     * Verifies an InterconnectList message.
                     * @param message Plain 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 InterconnectList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectList;

                    /**
                     * Creates a plain object from an InterconnectList message. Also converts values to other types if specified.
                     * @param message InterconnectList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectLocation. */
                interface IInterconnectLocation {

                    /** InterconnectLocation address */
                    address?: (string|null);

                    /** InterconnectLocation availabilityZone */
                    availabilityZone?: (string|null);

                    /** InterconnectLocation availableFeatures */
                    availableFeatures?: (string[]|null);

                    /** InterconnectLocation availableLinkTypes */
                    availableLinkTypes?: (string[]|null);

                    /** InterconnectLocation city */
                    city?: (string|null);

                    /** InterconnectLocation continent */
                    continent?: (string|null);

                    /** InterconnectLocation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectLocation crossSiteInterconnectInfos */
                    crossSiteInterconnectInfos?: (google.cloud.compute.v1beta.IInterconnectLocationCrossSiteInterconnectInfo[]|null);

                    /** InterconnectLocation description */
                    description?: (string|null);

                    /** InterconnectLocation facilityProvider */
                    facilityProvider?: (string|null);

                    /** InterconnectLocation facilityProviderFacilityId */
                    facilityProviderFacilityId?: (string|null);

                    /** InterconnectLocation id */
                    id?: (number|Long|string|null);

                    /** InterconnectLocation kind */
                    kind?: (string|null);

                    /** InterconnectLocation name */
                    name?: (string|null);

                    /** InterconnectLocation peeringdbFacilityId */
                    peeringdbFacilityId?: (string|null);

                    /** InterconnectLocation regionInfos */
                    regionInfos?: (google.cloud.compute.v1beta.IInterconnectLocationRegionInfo[]|null);

                    /** InterconnectLocation selfLink */
                    selfLink?: (string|null);

                    /** InterconnectLocation singleRegionProductionCriticalPeerLocations */
                    singleRegionProductionCriticalPeerLocations?: (string[]|null);

                    /** InterconnectLocation status */
                    status?: (string|null);

                    /** InterconnectLocation supportsPzs */
                    supportsPzs?: (boolean|null);
                }

                /** Represents an InterconnectLocation. */
                class InterconnectLocation implements IInterconnectLocation {

                    /**
                     * Constructs a new InterconnectLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectLocation);

                    /** InterconnectLocation address. */
                    public address?: (string|null);

                    /** InterconnectLocation availabilityZone. */
                    public availabilityZone?: (string|null);

                    /** InterconnectLocation availableFeatures. */
                    public availableFeatures: string[];

                    /** InterconnectLocation availableLinkTypes. */
                    public availableLinkTypes: string[];

                    /** InterconnectLocation city. */
                    public city?: (string|null);

                    /** InterconnectLocation continent. */
                    public continent?: (string|null);

                    /** InterconnectLocation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectLocation crossSiteInterconnectInfos. */
                    public crossSiteInterconnectInfos: google.cloud.compute.v1beta.IInterconnectLocationCrossSiteInterconnectInfo[];

                    /** InterconnectLocation description. */
                    public description?: (string|null);

                    /** InterconnectLocation facilityProvider. */
                    public facilityProvider?: (string|null);

                    /** InterconnectLocation facilityProviderFacilityId. */
                    public facilityProviderFacilityId?: (string|null);

                    /** InterconnectLocation id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectLocation kind. */
                    public kind?: (string|null);

                    /** InterconnectLocation name. */
                    public name?: (string|null);

                    /** InterconnectLocation peeringdbFacilityId. */
                    public peeringdbFacilityId?: (string|null);

                    /** InterconnectLocation regionInfos. */
                    public regionInfos: google.cloud.compute.v1beta.IInterconnectLocationRegionInfo[];

                    /** InterconnectLocation selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectLocation singleRegionProductionCriticalPeerLocations. */
                    public singleRegionProductionCriticalPeerLocations: string[];

                    /** InterconnectLocation status. */
                    public status?: (string|null);

                    /** InterconnectLocation supportsPzs. */
                    public supportsPzs?: (boolean|null);

                    /**
                     * Creates a new InterconnectLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectLocation): google.cloud.compute.v1beta.InterconnectLocation;

                    /**
                     * Encodes the specified InterconnectLocation message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectLocation.verify|verify} messages.
                     * @param message InterconnectLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectLocation.verify|verify} messages.
                     * @param message InterconnectLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectLocation;

                    /**
                     * Decodes an InterconnectLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectLocation;

                    /**
                     * Verifies an InterconnectLocation message.
                     * @param message Plain 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 InterconnectLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectLocation;

                    /**
                     * Creates a plain object from an InterconnectLocation message. Also converts values to other types if specified.
                     * @param message InterconnectLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectLocation {

                    /** AvailableFeatures enum. */
                    enum AvailableFeatures {
                        UNDEFINED_AVAILABLE_FEATURES = 0,
                        IF_CROSS_SITE_NETWORK = 469111095,
                        IF_L2_FORWARDING = 125563860,
                        IF_MACSEC = 396279300
                    }

                    /** AvailableLinkTypes enum. */
                    enum AvailableLinkTypes {
                        UNDEFINED_AVAILABLE_LINK_TYPES = 0,
                        LINK_TYPE_ETHERNET_100G_LR = 337672551,
                        LINK_TYPE_ETHERNET_10G_LR = 236739749,
                        LINK_TYPE_ETHERNET_400G_LR4 = 127023690
                    }

                    /** Continent enum. */
                    enum Continent {
                        UNDEFINED_CONTINENT = 0,
                        AFRICA = 317443706,
                        ASIA_PAC = 119782269,
                        C_AFRICA = 71993846,
                        C_ASIA_PAC = 465668089,
                        C_EUROPE = 200369438,
                        C_NORTH_AMERICA = 275697048,
                        C_SOUTH_AMERICA = 397149792,
                        EUROPE = 445819298,
                        NORTH_AMERICA = 448015508,
                        SOUTH_AMERICA = 32597340
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        AVAILABLE = 442079913,
                        CLOSED = 380163436
                    }
                }

                /** Properties of an InterconnectLocationCrossSiteInterconnectInfo. */
                interface IInterconnectLocationCrossSiteInterconnectInfo {

                    /** InterconnectLocationCrossSiteInterconnectInfo city */
                    city?: (string|null);
                }

                /** Represents an InterconnectLocationCrossSiteInterconnectInfo. */
                class InterconnectLocationCrossSiteInterconnectInfo implements IInterconnectLocationCrossSiteInterconnectInfo {

                    /**
                     * Constructs a new InterconnectLocationCrossSiteInterconnectInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectLocationCrossSiteInterconnectInfo);

                    /** InterconnectLocationCrossSiteInterconnectInfo city. */
                    public city?: (string|null);

                    /**
                     * Creates a new InterconnectLocationCrossSiteInterconnectInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectLocationCrossSiteInterconnectInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectLocationCrossSiteInterconnectInfo): google.cloud.compute.v1beta.InterconnectLocationCrossSiteInterconnectInfo;

                    /**
                     * Encodes the specified InterconnectLocationCrossSiteInterconnectInfo message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectLocationCrossSiteInterconnectInfo.verify|verify} messages.
                     * @param message InterconnectLocationCrossSiteInterconnectInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectLocationCrossSiteInterconnectInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectLocationCrossSiteInterconnectInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectLocationCrossSiteInterconnectInfo.verify|verify} messages.
                     * @param message InterconnectLocationCrossSiteInterconnectInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectLocationCrossSiteInterconnectInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectLocationCrossSiteInterconnectInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectLocationCrossSiteInterconnectInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectLocationCrossSiteInterconnectInfo;

                    /**
                     * Decodes an InterconnectLocationCrossSiteInterconnectInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectLocationCrossSiteInterconnectInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectLocationCrossSiteInterconnectInfo;

                    /**
                     * Verifies an InterconnectLocationCrossSiteInterconnectInfo message.
                     * @param message Plain 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 InterconnectLocationCrossSiteInterconnectInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectLocationCrossSiteInterconnectInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectLocationCrossSiteInterconnectInfo;

                    /**
                     * Creates a plain object from an InterconnectLocationCrossSiteInterconnectInfo message. Also converts values to other types if specified.
                     * @param message InterconnectLocationCrossSiteInterconnectInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectLocationCrossSiteInterconnectInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectLocationCrossSiteInterconnectInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectLocationCrossSiteInterconnectInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectLocationList. */
                interface IInterconnectLocationList {

                    /** InterconnectLocationList id */
                    id?: (string|null);

                    /** InterconnectLocationList items */
                    items?: (google.cloud.compute.v1beta.IInterconnectLocation[]|null);

                    /** InterconnectLocationList kind */
                    kind?: (string|null);

                    /** InterconnectLocationList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectLocationList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectLocationList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InterconnectLocationList. */
                class InterconnectLocationList implements IInterconnectLocationList {

                    /**
                     * Constructs a new InterconnectLocationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectLocationList);

                    /** InterconnectLocationList id. */
                    public id?: (string|null);

                    /** InterconnectLocationList items. */
                    public items: google.cloud.compute.v1beta.IInterconnectLocation[];

                    /** InterconnectLocationList kind. */
                    public kind?: (string|null);

                    /** InterconnectLocationList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectLocationList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectLocationList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InterconnectLocationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectLocationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectLocationList): google.cloud.compute.v1beta.InterconnectLocationList;

                    /**
                     * Encodes the specified InterconnectLocationList message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectLocationList.verify|verify} messages.
                     * @param message InterconnectLocationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectLocationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectLocationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectLocationList.verify|verify} messages.
                     * @param message InterconnectLocationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectLocationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectLocationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectLocationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectLocationList;

                    /**
                     * Decodes an InterconnectLocationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectLocationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectLocationList;

                    /**
                     * Verifies an InterconnectLocationList message.
                     * @param message Plain 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 InterconnectLocationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectLocationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectLocationList;

                    /**
                     * Creates a plain object from an InterconnectLocationList message. Also converts values to other types if specified.
                     * @param message InterconnectLocationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectLocationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectLocationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectLocationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectLocationRegionInfo. */
                interface IInterconnectLocationRegionInfo {

                    /** InterconnectLocationRegionInfo expectedRttMs */
                    expectedRttMs?: (number|Long|string|null);

                    /** InterconnectLocationRegionInfo l2ForwardingEnabled */
                    l2ForwardingEnabled?: (boolean|null);

                    /** InterconnectLocationRegionInfo locationPresence */
                    locationPresence?: (string|null);

                    /** InterconnectLocationRegionInfo region */
                    region?: (string|null);
                }

                /** Represents an InterconnectLocationRegionInfo. */
                class InterconnectLocationRegionInfo implements IInterconnectLocationRegionInfo {

                    /**
                     * Constructs a new InterconnectLocationRegionInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectLocationRegionInfo);

                    /** InterconnectLocationRegionInfo expectedRttMs. */
                    public expectedRttMs?: (number|Long|string|null);

                    /** InterconnectLocationRegionInfo l2ForwardingEnabled. */
                    public l2ForwardingEnabled?: (boolean|null);

                    /** InterconnectLocationRegionInfo locationPresence. */
                    public locationPresence?: (string|null);

                    /** InterconnectLocationRegionInfo region. */
                    public region?: (string|null);

                    /**
                     * Creates a new InterconnectLocationRegionInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectLocationRegionInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectLocationRegionInfo): google.cloud.compute.v1beta.InterconnectLocationRegionInfo;

                    /**
                     * Encodes the specified InterconnectLocationRegionInfo message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectLocationRegionInfo.verify|verify} messages.
                     * @param message InterconnectLocationRegionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectLocationRegionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectLocationRegionInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectLocationRegionInfo.verify|verify} messages.
                     * @param message InterconnectLocationRegionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectLocationRegionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectLocationRegionInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectLocationRegionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectLocationRegionInfo;

                    /**
                     * Decodes an InterconnectLocationRegionInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectLocationRegionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectLocationRegionInfo;

                    /**
                     * Verifies an InterconnectLocationRegionInfo message.
                     * @param message Plain 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 InterconnectLocationRegionInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectLocationRegionInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectLocationRegionInfo;

                    /**
                     * Creates a plain object from an InterconnectLocationRegionInfo message. Also converts values to other types if specified.
                     * @param message InterconnectLocationRegionInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectLocationRegionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectLocationRegionInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectLocationRegionInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectLocationRegionInfo {

                    /** LocationPresence enum. */
                    enum LocationPresence {
                        UNDEFINED_LOCATION_PRESENCE = 0,
                        GLOBAL = 494663587,
                        LOCAL_REGION = 403535464,
                        LP_GLOBAL = 429584062,
                        LP_LOCAL_REGION = 488598851
                    }
                }

                /** Properties of an InterconnectMacsec. */
                interface IInterconnectMacsec {

                    /** InterconnectMacsec failOpen */
                    failOpen?: (boolean|null);

                    /** InterconnectMacsec preSharedKeys */
                    preSharedKeys?: (google.cloud.compute.v1beta.IInterconnectMacsecPreSharedKey[]|null);
                }

                /** Represents an InterconnectMacsec. */
                class InterconnectMacsec implements IInterconnectMacsec {

                    /**
                     * Constructs a new InterconnectMacsec.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectMacsec);

                    /** InterconnectMacsec failOpen. */
                    public failOpen?: (boolean|null);

                    /** InterconnectMacsec preSharedKeys. */
                    public preSharedKeys: google.cloud.compute.v1beta.IInterconnectMacsecPreSharedKey[];

                    /**
                     * Creates a new InterconnectMacsec instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectMacsec instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectMacsec): google.cloud.compute.v1beta.InterconnectMacsec;

                    /**
                     * Encodes the specified InterconnectMacsec message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectMacsec.verify|verify} messages.
                     * @param message InterconnectMacsec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectMacsec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectMacsec message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectMacsec.verify|verify} messages.
                     * @param message InterconnectMacsec message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectMacsec, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectMacsec message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectMacsec
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectMacsec;

                    /**
                     * Decodes an InterconnectMacsec message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectMacsec
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectMacsec;

                    /**
                     * Verifies an InterconnectMacsec message.
                     * @param message Plain 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 InterconnectMacsec message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectMacsec
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectMacsec;

                    /**
                     * Creates a plain object from an InterconnectMacsec message. Also converts values to other types if specified.
                     * @param message InterconnectMacsec
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectMacsec, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectMacsec to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectMacsec
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectMacsecConfig. */
                interface IInterconnectMacsecConfig {

                    /** InterconnectMacsecConfig preSharedKeys */
                    preSharedKeys?: (google.cloud.compute.v1beta.IInterconnectMacsecConfigPreSharedKey[]|null);
                }

                /** Represents an InterconnectMacsecConfig. */
                class InterconnectMacsecConfig implements IInterconnectMacsecConfig {

                    /**
                     * Constructs a new InterconnectMacsecConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectMacsecConfig);

                    /** InterconnectMacsecConfig preSharedKeys. */
                    public preSharedKeys: google.cloud.compute.v1beta.IInterconnectMacsecConfigPreSharedKey[];

                    /**
                     * Creates a new InterconnectMacsecConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectMacsecConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectMacsecConfig): google.cloud.compute.v1beta.InterconnectMacsecConfig;

                    /**
                     * Encodes the specified InterconnectMacsecConfig message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectMacsecConfig.verify|verify} messages.
                     * @param message InterconnectMacsecConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectMacsecConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectMacsecConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectMacsecConfig.verify|verify} messages.
                     * @param message InterconnectMacsecConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectMacsecConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectMacsecConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectMacsecConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectMacsecConfig;

                    /**
                     * Decodes an InterconnectMacsecConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectMacsecConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectMacsecConfig;

                    /**
                     * Verifies an InterconnectMacsecConfig message.
                     * @param message Plain 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 InterconnectMacsecConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectMacsecConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectMacsecConfig;

                    /**
                     * Creates a plain object from an InterconnectMacsecConfig message. Also converts values to other types if specified.
                     * @param message InterconnectMacsecConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectMacsecConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectMacsecConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectMacsecConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectMacsecConfigPreSharedKey. */
                interface IInterconnectMacsecConfigPreSharedKey {

                    /** InterconnectMacsecConfigPreSharedKey cak */
                    cak?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey ckn */
                    ckn?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey name */
                    name?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey startTime */
                    startTime?: (string|null);
                }

                /** Represents an InterconnectMacsecConfigPreSharedKey. */
                class InterconnectMacsecConfigPreSharedKey implements IInterconnectMacsecConfigPreSharedKey {

                    /**
                     * Constructs a new InterconnectMacsecConfigPreSharedKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectMacsecConfigPreSharedKey);

                    /** InterconnectMacsecConfigPreSharedKey cak. */
                    public cak?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey ckn. */
                    public ckn?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey name. */
                    public name?: (string|null);

                    /** InterconnectMacsecConfigPreSharedKey startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new InterconnectMacsecConfigPreSharedKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectMacsecConfigPreSharedKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectMacsecConfigPreSharedKey): google.cloud.compute.v1beta.InterconnectMacsecConfigPreSharedKey;

                    /**
                     * Encodes the specified InterconnectMacsecConfigPreSharedKey message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectMacsecConfigPreSharedKey.verify|verify} messages.
                     * @param message InterconnectMacsecConfigPreSharedKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectMacsecConfigPreSharedKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectMacsecConfigPreSharedKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectMacsecConfigPreSharedKey.verify|verify} messages.
                     * @param message InterconnectMacsecConfigPreSharedKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectMacsecConfigPreSharedKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectMacsecConfigPreSharedKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectMacsecConfigPreSharedKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectMacsecConfigPreSharedKey;

                    /**
                     * Decodes an InterconnectMacsecConfigPreSharedKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectMacsecConfigPreSharedKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectMacsecConfigPreSharedKey;

                    /**
                     * Verifies an InterconnectMacsecConfigPreSharedKey message.
                     * @param message Plain 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 InterconnectMacsecConfigPreSharedKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectMacsecConfigPreSharedKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectMacsecConfigPreSharedKey;

                    /**
                     * Creates a plain object from an InterconnectMacsecConfigPreSharedKey message. Also converts values to other types if specified.
                     * @param message InterconnectMacsecConfigPreSharedKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectMacsecConfigPreSharedKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectMacsecConfigPreSharedKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectMacsecConfigPreSharedKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectMacsecPreSharedKey. */
                interface IInterconnectMacsecPreSharedKey {

                    /** InterconnectMacsecPreSharedKey name */
                    name?: (string|null);

                    /** InterconnectMacsecPreSharedKey startTime */
                    startTime?: (string|null);
                }

                /** Represents an InterconnectMacsecPreSharedKey. */
                class InterconnectMacsecPreSharedKey implements IInterconnectMacsecPreSharedKey {

                    /**
                     * Constructs a new InterconnectMacsecPreSharedKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectMacsecPreSharedKey);

                    /** InterconnectMacsecPreSharedKey name. */
                    public name?: (string|null);

                    /** InterconnectMacsecPreSharedKey startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new InterconnectMacsecPreSharedKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectMacsecPreSharedKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectMacsecPreSharedKey): google.cloud.compute.v1beta.InterconnectMacsecPreSharedKey;

                    /**
                     * Encodes the specified InterconnectMacsecPreSharedKey message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectMacsecPreSharedKey.verify|verify} messages.
                     * @param message InterconnectMacsecPreSharedKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectMacsecPreSharedKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectMacsecPreSharedKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectMacsecPreSharedKey.verify|verify} messages.
                     * @param message InterconnectMacsecPreSharedKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectMacsecPreSharedKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectMacsecPreSharedKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectMacsecPreSharedKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectMacsecPreSharedKey;

                    /**
                     * Decodes an InterconnectMacsecPreSharedKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectMacsecPreSharedKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectMacsecPreSharedKey;

                    /**
                     * Verifies an InterconnectMacsecPreSharedKey message.
                     * @param message Plain 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 InterconnectMacsecPreSharedKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectMacsecPreSharedKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectMacsecPreSharedKey;

                    /**
                     * Creates a plain object from an InterconnectMacsecPreSharedKey message. Also converts values to other types if specified.
                     * @param message InterconnectMacsecPreSharedKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectMacsecPreSharedKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectMacsecPreSharedKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectMacsecPreSharedKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectOutageNotification. */
                interface IInterconnectOutageNotification {

                    /** InterconnectOutageNotification affectedCircuits */
                    affectedCircuits?: (string[]|null);

                    /** InterconnectOutageNotification description */
                    description?: (string|null);

                    /** InterconnectOutageNotification endTime */
                    endTime?: (number|Long|string|null);

                    /** InterconnectOutageNotification issueType */
                    issueType?: (string|null);

                    /** InterconnectOutageNotification name */
                    name?: (string|null);

                    /** InterconnectOutageNotification source */
                    source?: (string|null);

                    /** InterconnectOutageNotification startTime */
                    startTime?: (number|Long|string|null);

                    /** InterconnectOutageNotification state */
                    state?: (string|null);
                }

                /** Represents an InterconnectOutageNotification. */
                class InterconnectOutageNotification implements IInterconnectOutageNotification {

                    /**
                     * Constructs a new InterconnectOutageNotification.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectOutageNotification);

                    /** InterconnectOutageNotification affectedCircuits. */
                    public affectedCircuits: string[];

                    /** InterconnectOutageNotification description. */
                    public description?: (string|null);

                    /** InterconnectOutageNotification endTime. */
                    public endTime?: (number|Long|string|null);

                    /** InterconnectOutageNotification issueType. */
                    public issueType?: (string|null);

                    /** InterconnectOutageNotification name. */
                    public name?: (string|null);

                    /** InterconnectOutageNotification source. */
                    public source?: (string|null);

                    /** InterconnectOutageNotification startTime. */
                    public startTime?: (number|Long|string|null);

                    /** InterconnectOutageNotification state. */
                    public state?: (string|null);

                    /**
                     * Creates a new InterconnectOutageNotification instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectOutageNotification instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectOutageNotification): google.cloud.compute.v1beta.InterconnectOutageNotification;

                    /**
                     * Encodes the specified InterconnectOutageNotification message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectOutageNotification.verify|verify} messages.
                     * @param message InterconnectOutageNotification message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectOutageNotification, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectOutageNotification message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectOutageNotification.verify|verify} messages.
                     * @param message InterconnectOutageNotification message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectOutageNotification, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectOutageNotification message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectOutageNotification
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectOutageNotification;

                    /**
                     * Decodes an InterconnectOutageNotification message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectOutageNotification
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectOutageNotification;

                    /**
                     * Verifies an InterconnectOutageNotification message.
                     * @param message Plain 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 InterconnectOutageNotification message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectOutageNotification
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectOutageNotification;

                    /**
                     * Creates a plain object from an InterconnectOutageNotification message. Also converts values to other types if specified.
                     * @param message InterconnectOutageNotification
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectOutageNotification, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectOutageNotification to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectOutageNotification
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectOutageNotification {

                    /** IssueType enum. */
                    enum IssueType {
                        UNDEFINED_ISSUE_TYPE = 0,
                        IT_OUTAGE = 175779973,
                        IT_PARTIAL_OUTAGE = 92103971,
                        OUTAGE = 195285745,
                        PARTIAL_OUTAGE = 147053455
                    }

                    /** Source enum. */
                    enum Source {
                        UNDEFINED_SOURCE = 0,
                        GOOGLE = 497439289,
                        NSRC_GOOGLE = 510574562
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        CANCELLED = 41957681,
                        COMPLETED = 309921323,
                        NS_ACTIVE = 252563136,
                        NS_CANCELED = 506579411
                    }
                }

                /** Properties of an InterconnectParams. */
                interface IInterconnectParams {

                    /** InterconnectParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents an InterconnectParams. */
                class InterconnectParams implements IInterconnectParams {

                    /**
                     * Constructs a new InterconnectParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectParams);

                    /** InterconnectParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new InterconnectParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectParams): google.cloud.compute.v1beta.InterconnectParams;

                    /**
                     * Encodes the specified InterconnectParams message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectParams.verify|verify} messages.
                     * @param message InterconnectParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectParams.verify|verify} messages.
                     * @param message InterconnectParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectParams;

                    /**
                     * Decodes an InterconnectParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectParams;

                    /**
                     * Verifies an InterconnectParams message.
                     * @param message Plain 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 InterconnectParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectParams;

                    /**
                     * Creates a plain object from an InterconnectParams message. Also converts values to other types if specified.
                     * @param message InterconnectParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectRemoteLocation. */
                interface IInterconnectRemoteLocation {

                    /** InterconnectRemoteLocation address */
                    address?: (string|null);

                    /** InterconnectRemoteLocation attachmentConfigurationConstraints */
                    attachmentConfigurationConstraints?: (google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraints|null);

                    /** InterconnectRemoteLocation city */
                    city?: (string|null);

                    /** InterconnectRemoteLocation constraints */
                    constraints?: (google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraints|null);

                    /** InterconnectRemoteLocation continent */
                    continent?: (string|null);

                    /** InterconnectRemoteLocation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** InterconnectRemoteLocation description */
                    description?: (string|null);

                    /** InterconnectRemoteLocation facilityProvider */
                    facilityProvider?: (string|null);

                    /** InterconnectRemoteLocation facilityProviderFacilityId */
                    facilityProviderFacilityId?: (string|null);

                    /** InterconnectRemoteLocation id */
                    id?: (number|Long|string|null);

                    /** InterconnectRemoteLocation kind */
                    kind?: (string|null);

                    /** InterconnectRemoteLocation lacp */
                    lacp?: (string|null);

                    /** InterconnectRemoteLocation maxLagSize100Gbps */
                    maxLagSize100Gbps?: (number|null);

                    /** InterconnectRemoteLocation maxLagSize10Gbps */
                    maxLagSize10Gbps?: (number|null);

                    /** InterconnectRemoteLocation maxLagSize400Gbps */
                    maxLagSize400Gbps?: (number|null);

                    /** InterconnectRemoteLocation name */
                    name?: (string|null);

                    /** InterconnectRemoteLocation peeringdbFacilityId */
                    peeringdbFacilityId?: (string|null);

                    /** InterconnectRemoteLocation permittedConnections */
                    permittedConnections?: (google.cloud.compute.v1beta.IInterconnectRemoteLocationPermittedConnections[]|null);

                    /** InterconnectRemoteLocation remoteService */
                    remoteService?: (string|null);

                    /** InterconnectRemoteLocation selfLink */
                    selfLink?: (string|null);

                    /** InterconnectRemoteLocation status */
                    status?: (string|null);
                }

                /** Represents an InterconnectRemoteLocation. */
                class InterconnectRemoteLocation implements IInterconnectRemoteLocation {

                    /**
                     * Constructs a new InterconnectRemoteLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocation);

                    /** InterconnectRemoteLocation address. */
                    public address?: (string|null);

                    /** InterconnectRemoteLocation attachmentConfigurationConstraints. */
                    public attachmentConfigurationConstraints?: (google.cloud.compute.v1beta.IInterconnectAttachmentConfigurationConstraints|null);

                    /** InterconnectRemoteLocation city. */
                    public city?: (string|null);

                    /** InterconnectRemoteLocation constraints. */
                    public constraints?: (google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraints|null);

                    /** InterconnectRemoteLocation continent. */
                    public continent?: (string|null);

                    /** InterconnectRemoteLocation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** InterconnectRemoteLocation description. */
                    public description?: (string|null);

                    /** InterconnectRemoteLocation facilityProvider. */
                    public facilityProvider?: (string|null);

                    /** InterconnectRemoteLocation facilityProviderFacilityId. */
                    public facilityProviderFacilityId?: (string|null);

                    /** InterconnectRemoteLocation id. */
                    public id?: (number|Long|string|null);

                    /** InterconnectRemoteLocation kind. */
                    public kind?: (string|null);

                    /** InterconnectRemoteLocation lacp. */
                    public lacp?: (string|null);

                    /** InterconnectRemoteLocation maxLagSize100Gbps. */
                    public maxLagSize100Gbps?: (number|null);

                    /** InterconnectRemoteLocation maxLagSize10Gbps. */
                    public maxLagSize10Gbps?: (number|null);

                    /** InterconnectRemoteLocation maxLagSize400Gbps. */
                    public maxLagSize400Gbps?: (number|null);

                    /** InterconnectRemoteLocation name. */
                    public name?: (string|null);

                    /** InterconnectRemoteLocation peeringdbFacilityId. */
                    public peeringdbFacilityId?: (string|null);

                    /** InterconnectRemoteLocation permittedConnections. */
                    public permittedConnections: google.cloud.compute.v1beta.IInterconnectRemoteLocationPermittedConnections[];

                    /** InterconnectRemoteLocation remoteService. */
                    public remoteService?: (string|null);

                    /** InterconnectRemoteLocation selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectRemoteLocation status. */
                    public status?: (string|null);

                    /**
                     * Creates a new InterconnectRemoteLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocation): google.cloud.compute.v1beta.InterconnectRemoteLocation;

                    /**
                     * Encodes the specified InterconnectRemoteLocation message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocation.verify|verify} messages.
                     * @param message InterconnectRemoteLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectRemoteLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocation.verify|verify} messages.
                     * @param message InterconnectRemoteLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectRemoteLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectRemoteLocation;

                    /**
                     * Decodes an InterconnectRemoteLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectRemoteLocation;

                    /**
                     * Verifies an InterconnectRemoteLocation message.
                     * @param message Plain 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 InterconnectRemoteLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectRemoteLocation;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocation message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectRemoteLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectRemoteLocation {

                    /** Continent enum. */
                    enum Continent {
                        UNDEFINED_CONTINENT = 0,
                        AFRICA = 317443706,
                        ASIA_PAC = 119782269,
                        EUROPE = 445819298,
                        NORTH_AMERICA = 448015508,
                        SOUTH_AMERICA = 32597340
                    }

                    /** Lacp enum. */
                    enum Lacp {
                        UNDEFINED_LACP = 0,
                        LACP_SUPPORTED = 339576113,
                        LACP_UNSUPPORTED = 203930104
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        AVAILABLE = 442079913,
                        CLOSED = 380163436
                    }
                }

                /** Properties of an InterconnectRemoteLocationConstraints. */
                interface IInterconnectRemoteLocationConstraints {

                    /** InterconnectRemoteLocationConstraints portPairRemoteLocation */
                    portPairRemoteLocation?: (string|null);

                    /** InterconnectRemoteLocationConstraints portPairVlan */
                    portPairVlan?: (string|null);

                    /** InterconnectRemoteLocationConstraints subnetLengthRange */
                    subnetLengthRange?: (google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraintsSubnetLengthRange|null);
                }

                /** Represents an InterconnectRemoteLocationConstraints. */
                class InterconnectRemoteLocationConstraints implements IInterconnectRemoteLocationConstraints {

                    /**
                     * Constructs a new InterconnectRemoteLocationConstraints.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraints);

                    /** InterconnectRemoteLocationConstraints portPairRemoteLocation. */
                    public portPairRemoteLocation?: (string|null);

                    /** InterconnectRemoteLocationConstraints portPairVlan. */
                    public portPairVlan?: (string|null);

                    /** InterconnectRemoteLocationConstraints subnetLengthRange. */
                    public subnetLengthRange?: (google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraintsSubnetLengthRange|null);

                    /**
                     * Creates a new InterconnectRemoteLocationConstraints instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocationConstraints instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraints): google.cloud.compute.v1beta.InterconnectRemoteLocationConstraints;

                    /**
                     * Encodes the specified InterconnectRemoteLocationConstraints message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocationConstraints.verify|verify} messages.
                     * @param message InterconnectRemoteLocationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocationConstraints message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocationConstraints.verify|verify} messages.
                     * @param message InterconnectRemoteLocationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocationConstraints message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectRemoteLocationConstraints;

                    /**
                     * Decodes an InterconnectRemoteLocationConstraints message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectRemoteLocationConstraints;

                    /**
                     * Verifies an InterconnectRemoteLocationConstraints message.
                     * @param message Plain 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 InterconnectRemoteLocationConstraints message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocationConstraints
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectRemoteLocationConstraints;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocationConstraints message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocationConstraints
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectRemoteLocationConstraints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocationConstraints to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocationConstraints
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InterconnectRemoteLocationConstraints {

                    /** PortPairRemoteLocation enum. */
                    enum PortPairRemoteLocation {
                        UNDEFINED_PORT_PAIR_REMOTE_LOCATION = 0,
                        PORT_PAIR_MATCHING_REMOTE_LOCATION = 207291859,
                        PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION = 60609829
                    }

                    /** PortPairVlan enum. */
                    enum PortPairVlan {
                        UNDEFINED_PORT_PAIR_VLAN = 0,
                        PORT_PAIR_MATCHING_VLAN = 250295358,
                        PORT_PAIR_UNCONSTRAINED_VLAN = 175227948
                    }
                }

                /** Properties of an InterconnectRemoteLocationConstraintsSubnetLengthRange. */
                interface IInterconnectRemoteLocationConstraintsSubnetLengthRange {

                    /** InterconnectRemoteLocationConstraintsSubnetLengthRange max */
                    max?: (number|null);

                    /** InterconnectRemoteLocationConstraintsSubnetLengthRange min */
                    min?: (number|null);
                }

                /** Represents an InterconnectRemoteLocationConstraintsSubnetLengthRange. */
                class InterconnectRemoteLocationConstraintsSubnetLengthRange implements IInterconnectRemoteLocationConstraintsSubnetLengthRange {

                    /**
                     * Constructs a new InterconnectRemoteLocationConstraintsSubnetLengthRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraintsSubnetLengthRange);

                    /** InterconnectRemoteLocationConstraintsSubnetLengthRange max. */
                    public max?: (number|null);

                    /** InterconnectRemoteLocationConstraintsSubnetLengthRange min. */
                    public min?: (number|null);

                    /**
                     * Creates a new InterconnectRemoteLocationConstraintsSubnetLengthRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocationConstraintsSubnetLengthRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraintsSubnetLengthRange): google.cloud.compute.v1beta.InterconnectRemoteLocationConstraintsSubnetLengthRange;

                    /**
                     * Encodes the specified InterconnectRemoteLocationConstraintsSubnetLengthRange message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocationConstraintsSubnetLengthRange.verify|verify} messages.
                     * @param message InterconnectRemoteLocationConstraintsSubnetLengthRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraintsSubnetLengthRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocationConstraintsSubnetLengthRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocationConstraintsSubnetLengthRange.verify|verify} messages.
                     * @param message InterconnectRemoteLocationConstraintsSubnetLengthRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectRemoteLocationConstraintsSubnetLengthRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocationConstraintsSubnetLengthRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocationConstraintsSubnetLengthRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectRemoteLocationConstraintsSubnetLengthRange;

                    /**
                     * Decodes an InterconnectRemoteLocationConstraintsSubnetLengthRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocationConstraintsSubnetLengthRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectRemoteLocationConstraintsSubnetLengthRange;

                    /**
                     * Verifies an InterconnectRemoteLocationConstraintsSubnetLengthRange message.
                     * @param message Plain 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 InterconnectRemoteLocationConstraintsSubnetLengthRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocationConstraintsSubnetLengthRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectRemoteLocationConstraintsSubnetLengthRange;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocationConstraintsSubnetLengthRange message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocationConstraintsSubnetLengthRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectRemoteLocationConstraintsSubnetLengthRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocationConstraintsSubnetLengthRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocationConstraintsSubnetLengthRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectRemoteLocationList. */
                interface IInterconnectRemoteLocationList {

                    /** InterconnectRemoteLocationList id */
                    id?: (string|null);

                    /** InterconnectRemoteLocationList items */
                    items?: (google.cloud.compute.v1beta.IInterconnectRemoteLocation[]|null);

                    /** InterconnectRemoteLocationList kind */
                    kind?: (string|null);

                    /** InterconnectRemoteLocationList nextPageToken */
                    nextPageToken?: (string|null);

                    /** InterconnectRemoteLocationList selfLink */
                    selfLink?: (string|null);

                    /** InterconnectRemoteLocationList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an InterconnectRemoteLocationList. */
                class InterconnectRemoteLocationList implements IInterconnectRemoteLocationList {

                    /**
                     * Constructs a new InterconnectRemoteLocationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocationList);

                    /** InterconnectRemoteLocationList id. */
                    public id?: (string|null);

                    /** InterconnectRemoteLocationList items. */
                    public items: google.cloud.compute.v1beta.IInterconnectRemoteLocation[];

                    /** InterconnectRemoteLocationList kind. */
                    public kind?: (string|null);

                    /** InterconnectRemoteLocationList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** InterconnectRemoteLocationList selfLink. */
                    public selfLink?: (string|null);

                    /** InterconnectRemoteLocationList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new InterconnectRemoteLocationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocationList): google.cloud.compute.v1beta.InterconnectRemoteLocationList;

                    /**
                     * Encodes the specified InterconnectRemoteLocationList message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocationList.verify|verify} messages.
                     * @param message InterconnectRemoteLocationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectRemoteLocationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocationList.verify|verify} messages.
                     * @param message InterconnectRemoteLocationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectRemoteLocationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectRemoteLocationList;

                    /**
                     * Decodes an InterconnectRemoteLocationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectRemoteLocationList;

                    /**
                     * Verifies an InterconnectRemoteLocationList message.
                     * @param message Plain 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 InterconnectRemoteLocationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectRemoteLocationList;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocationList message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectRemoteLocationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectRemoteLocationPermittedConnections. */
                interface IInterconnectRemoteLocationPermittedConnections {

                    /** InterconnectRemoteLocationPermittedConnections interconnectLocation */
                    interconnectLocation?: (string|null);
                }

                /** Represents an InterconnectRemoteLocationPermittedConnections. */
                class InterconnectRemoteLocationPermittedConnections implements IInterconnectRemoteLocationPermittedConnections {

                    /**
                     * Constructs a new InterconnectRemoteLocationPermittedConnections.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocationPermittedConnections);

                    /** InterconnectRemoteLocationPermittedConnections interconnectLocation. */
                    public interconnectLocation?: (string|null);

                    /**
                     * Creates a new InterconnectRemoteLocationPermittedConnections instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectRemoteLocationPermittedConnections instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectRemoteLocationPermittedConnections): google.cloud.compute.v1beta.InterconnectRemoteLocationPermittedConnections;

                    /**
                     * Encodes the specified InterconnectRemoteLocationPermittedConnections message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocationPermittedConnections.verify|verify} messages.
                     * @param message InterconnectRemoteLocationPermittedConnections message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectRemoteLocationPermittedConnections, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectRemoteLocationPermittedConnections message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectRemoteLocationPermittedConnections.verify|verify} messages.
                     * @param message InterconnectRemoteLocationPermittedConnections message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectRemoteLocationPermittedConnections, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectRemoteLocationPermittedConnections message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectRemoteLocationPermittedConnections
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectRemoteLocationPermittedConnections;

                    /**
                     * Decodes an InterconnectRemoteLocationPermittedConnections message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectRemoteLocationPermittedConnections
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectRemoteLocationPermittedConnections;

                    /**
                     * Verifies an InterconnectRemoteLocationPermittedConnections message.
                     * @param message Plain 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 InterconnectRemoteLocationPermittedConnections message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectRemoteLocationPermittedConnections
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectRemoteLocationPermittedConnections;

                    /**
                     * Creates a plain object from an InterconnectRemoteLocationPermittedConnections message. Also converts values to other types if specified.
                     * @param message InterconnectRemoteLocationPermittedConnections
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectRemoteLocationPermittedConnections, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectRemoteLocationPermittedConnections to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectRemoteLocationPermittedConnections
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectsGetDiagnosticsResponse. */
                interface IInterconnectsGetDiagnosticsResponse {

                    /** InterconnectsGetDiagnosticsResponse result */
                    result?: (google.cloud.compute.v1beta.IInterconnectDiagnostics|null);
                }

                /** Represents an InterconnectsGetDiagnosticsResponse. */
                class InterconnectsGetDiagnosticsResponse implements IInterconnectsGetDiagnosticsResponse {

                    /**
                     * Constructs a new InterconnectsGetDiagnosticsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectsGetDiagnosticsResponse);

                    /** InterconnectsGetDiagnosticsResponse result. */
                    public result?: (google.cloud.compute.v1beta.IInterconnectDiagnostics|null);

                    /**
                     * Creates a new InterconnectsGetDiagnosticsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectsGetDiagnosticsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectsGetDiagnosticsResponse): google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse;

                    /**
                     * Encodes the specified InterconnectsGetDiagnosticsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse.verify|verify} messages.
                     * @param message InterconnectsGetDiagnosticsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectsGetDiagnosticsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectsGetDiagnosticsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse.verify|verify} messages.
                     * @param message InterconnectsGetDiagnosticsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectsGetDiagnosticsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectsGetDiagnosticsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectsGetDiagnosticsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse;

                    /**
                     * Decodes an InterconnectsGetDiagnosticsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectsGetDiagnosticsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse;

                    /**
                     * Verifies an InterconnectsGetDiagnosticsResponse message.
                     * @param message Plain 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 InterconnectsGetDiagnosticsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectsGetDiagnosticsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse;

                    /**
                     * Creates a plain object from an InterconnectsGetDiagnosticsResponse message. Also converts values to other types if specified.
                     * @param message InterconnectsGetDiagnosticsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectsGetDiagnosticsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectsGetDiagnosticsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InterconnectsGetMacsecConfigResponse. */
                interface IInterconnectsGetMacsecConfigResponse {

                    /** InterconnectsGetMacsecConfigResponse etag */
                    etag?: (string|null);

                    /** InterconnectsGetMacsecConfigResponse result */
                    result?: (google.cloud.compute.v1beta.IInterconnectMacsecConfig|null);
                }

                /** Represents an InterconnectsGetMacsecConfigResponse. */
                class InterconnectsGetMacsecConfigResponse implements IInterconnectsGetMacsecConfigResponse {

                    /**
                     * Constructs a new InterconnectsGetMacsecConfigResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInterconnectsGetMacsecConfigResponse);

                    /** InterconnectsGetMacsecConfigResponse etag. */
                    public etag?: (string|null);

                    /** InterconnectsGetMacsecConfigResponse result. */
                    public result?: (google.cloud.compute.v1beta.IInterconnectMacsecConfig|null);

                    /**
                     * Creates a new InterconnectsGetMacsecConfigResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InterconnectsGetMacsecConfigResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInterconnectsGetMacsecConfigResponse): google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse;

                    /**
                     * Encodes the specified InterconnectsGetMacsecConfigResponse message. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse.verify|verify} messages.
                     * @param message InterconnectsGetMacsecConfigResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInterconnectsGetMacsecConfigResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InterconnectsGetMacsecConfigResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse.verify|verify} messages.
                     * @param message InterconnectsGetMacsecConfigResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInterconnectsGetMacsecConfigResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InterconnectsGetMacsecConfigResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InterconnectsGetMacsecConfigResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse;

                    /**
                     * Decodes an InterconnectsGetMacsecConfigResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InterconnectsGetMacsecConfigResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse;

                    /**
                     * Verifies an InterconnectsGetMacsecConfigResponse message.
                     * @param message Plain 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 InterconnectsGetMacsecConfigResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InterconnectsGetMacsecConfigResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse;

                    /**
                     * Creates a plain object from an InterconnectsGetMacsecConfigResponse message. Also converts values to other types if specified.
                     * @param message InterconnectsGetMacsecConfigResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InterconnectsGetMacsecConfigResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InterconnectsGetMacsecConfigResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InvalidateCacheRegionUrlMapRequest. */
                interface IInvalidateCacheRegionUrlMapRequest {

                    /** InvalidateCacheRegionUrlMapRequest cacheInvalidationRuleResource */
                    cacheInvalidationRuleResource?: (google.cloud.compute.v1beta.ICacheInvalidationRule|null);

                    /** InvalidateCacheRegionUrlMapRequest project */
                    project?: (string|null);

                    /** InvalidateCacheRegionUrlMapRequest region */
                    region?: (string|null);

                    /** InvalidateCacheRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** InvalidateCacheRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents an InvalidateCacheRegionUrlMapRequest. */
                class InvalidateCacheRegionUrlMapRequest implements IInvalidateCacheRegionUrlMapRequest {

                    /**
                     * Constructs a new InvalidateCacheRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInvalidateCacheRegionUrlMapRequest);

                    /** InvalidateCacheRegionUrlMapRequest cacheInvalidationRuleResource. */
                    public cacheInvalidationRuleResource?: (google.cloud.compute.v1beta.ICacheInvalidationRule|null);

                    /** InvalidateCacheRegionUrlMapRequest project. */
                    public project: string;

                    /** InvalidateCacheRegionUrlMapRequest region. */
                    public region: string;

                    /** InvalidateCacheRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** InvalidateCacheRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new InvalidateCacheRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InvalidateCacheRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInvalidateCacheRegionUrlMapRequest): google.cloud.compute.v1beta.InvalidateCacheRegionUrlMapRequest;

                    /**
                     * Encodes the specified InvalidateCacheRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InvalidateCacheRegionUrlMapRequest.verify|verify} messages.
                     * @param message InvalidateCacheRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInvalidateCacheRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InvalidateCacheRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InvalidateCacheRegionUrlMapRequest.verify|verify} messages.
                     * @param message InvalidateCacheRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInvalidateCacheRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InvalidateCacheRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InvalidateCacheRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InvalidateCacheRegionUrlMapRequest;

                    /**
                     * Decodes an InvalidateCacheRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InvalidateCacheRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InvalidateCacheRegionUrlMapRequest;

                    /**
                     * Verifies an InvalidateCacheRegionUrlMapRequest message.
                     * @param message Plain 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 InvalidateCacheRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InvalidateCacheRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InvalidateCacheRegionUrlMapRequest;

                    /**
                     * Creates a plain object from an InvalidateCacheRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message InvalidateCacheRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InvalidateCacheRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InvalidateCacheRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InvalidateCacheRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InvalidateCacheUrlMapRequest. */
                interface IInvalidateCacheUrlMapRequest {

                    /** InvalidateCacheUrlMapRequest cacheInvalidationRuleResource */
                    cacheInvalidationRuleResource?: (google.cloud.compute.v1beta.ICacheInvalidationRule|null);

                    /** InvalidateCacheUrlMapRequest project */
                    project?: (string|null);

                    /** InvalidateCacheUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** InvalidateCacheUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents an InvalidateCacheUrlMapRequest. */
                class InvalidateCacheUrlMapRequest implements IInvalidateCacheUrlMapRequest {

                    /**
                     * Constructs a new InvalidateCacheUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IInvalidateCacheUrlMapRequest);

                    /** InvalidateCacheUrlMapRequest cacheInvalidationRuleResource. */
                    public cacheInvalidationRuleResource?: (google.cloud.compute.v1beta.ICacheInvalidationRule|null);

                    /** InvalidateCacheUrlMapRequest project. */
                    public project: string;

                    /** InvalidateCacheUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** InvalidateCacheUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new InvalidateCacheUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InvalidateCacheUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IInvalidateCacheUrlMapRequest): google.cloud.compute.v1beta.InvalidateCacheUrlMapRequest;

                    /**
                     * Encodes the specified InvalidateCacheUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.InvalidateCacheUrlMapRequest.verify|verify} messages.
                     * @param message InvalidateCacheUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IInvalidateCacheUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InvalidateCacheUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.InvalidateCacheUrlMapRequest.verify|verify} messages.
                     * @param message InvalidateCacheUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IInvalidateCacheUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InvalidateCacheUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InvalidateCacheUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.InvalidateCacheUrlMapRequest;

                    /**
                     * Decodes an InvalidateCacheUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InvalidateCacheUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.InvalidateCacheUrlMapRequest;

                    /**
                     * Verifies an InvalidateCacheUrlMapRequest message.
                     * @param message Plain 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 InvalidateCacheUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InvalidateCacheUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.InvalidateCacheUrlMapRequest;

                    /**
                     * Creates a plain object from an InvalidateCacheUrlMapRequest message. Also converts values to other types if specified.
                     * @param message InvalidateCacheUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.InvalidateCacheUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InvalidateCacheUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InvalidateCacheUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Items. */
                interface IItems {

                    /** Items key */
                    key?: (string|null);

                    /** Items value */
                    value?: (string|null);
                }

                /** Represents an Items. */
                class Items implements IItems {

                    /**
                     * Constructs a new Items.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IItems);

                    /** Items key. */
                    public key?: (string|null);

                    /** Items value. */
                    public value?: (string|null);

                    /**
                     * Creates a new Items instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Items instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IItems): google.cloud.compute.v1beta.Items;

                    /**
                     * Encodes the specified Items message. Does not implicitly {@link google.cloud.compute.v1beta.Items.verify|verify} messages.
                     * @param message Items message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IItems, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Items message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Items.verify|verify} messages.
                     * @param message Items message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IItems, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Items message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Items
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Items;

                    /**
                     * Decodes an Items message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Items
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Items;

                    /**
                     * Verifies an Items message.
                     * @param message Plain 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 Items message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Items
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Items;

                    /**
                     * Creates a plain object from an Items message. Also converts values to other types if specified.
                     * @param message Items
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Items, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Items to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Items
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a License. */
                interface ILicense {

                    /** License allowedReplacementLicenses */
                    allowedReplacementLicenses?: (string[]|null);

                    /** License appendableToDisk */
                    appendableToDisk?: (boolean|null);

                    /** License chargesUseFee */
                    chargesUseFee?: (boolean|null);

                    /** License creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** License description */
                    description?: (string|null);

                    /** License id */
                    id?: (number|Long|string|null);

                    /** License incompatibleLicenses */
                    incompatibleLicenses?: (string[]|null);

                    /** License kind */
                    kind?: (string|null);

                    /** License licenseCode */
                    licenseCode?: (number|Long|string|null);

                    /** License minimumRetention */
                    minimumRetention?: (google.cloud.compute.v1beta.IDuration|null);

                    /** License multiTenantOnly */
                    multiTenantOnly?: (boolean|null);

                    /** License name */
                    name?: (string|null);

                    /** License osLicense */
                    osLicense?: (boolean|null);

                    /** License params */
                    params?: (google.cloud.compute.v1beta.ILicenseParams|null);

                    /** License removableFromDisk */
                    removableFromDisk?: (boolean|null);

                    /** License requiredCoattachedLicenses */
                    requiredCoattachedLicenses?: (string[]|null);

                    /** License resourceRequirements */
                    resourceRequirements?: (google.cloud.compute.v1beta.ILicenseResourceRequirements|null);

                    /** License selfLink */
                    selfLink?: (string|null);

                    /** License selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** License soleTenantOnly */
                    soleTenantOnly?: (boolean|null);

                    /** License transferable */
                    transferable?: (boolean|null);

                    /** License updateTimestamp */
                    updateTimestamp?: (string|null);
                }

                /** Represents a License. */
                class License implements ILicense {

                    /**
                     * Constructs a new License.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILicense);

                    /** License allowedReplacementLicenses. */
                    public allowedReplacementLicenses: string[];

                    /** License appendableToDisk. */
                    public appendableToDisk?: (boolean|null);

                    /** License chargesUseFee. */
                    public chargesUseFee?: (boolean|null);

                    /** License creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** License description. */
                    public description?: (string|null);

                    /** License id. */
                    public id?: (number|Long|string|null);

                    /** License incompatibleLicenses. */
                    public incompatibleLicenses: string[];

                    /** License kind. */
                    public kind?: (string|null);

                    /** License licenseCode. */
                    public licenseCode?: (number|Long|string|null);

                    /** License minimumRetention. */
                    public minimumRetention?: (google.cloud.compute.v1beta.IDuration|null);

                    /** License multiTenantOnly. */
                    public multiTenantOnly?: (boolean|null);

                    /** License name. */
                    public name?: (string|null);

                    /** License osLicense. */
                    public osLicense?: (boolean|null);

                    /** License params. */
                    public params?: (google.cloud.compute.v1beta.ILicenseParams|null);

                    /** License removableFromDisk. */
                    public removableFromDisk?: (boolean|null);

                    /** License requiredCoattachedLicenses. */
                    public requiredCoattachedLicenses: string[];

                    /** License resourceRequirements. */
                    public resourceRequirements?: (google.cloud.compute.v1beta.ILicenseResourceRequirements|null);

                    /** License selfLink. */
                    public selfLink?: (string|null);

                    /** License selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** License soleTenantOnly. */
                    public soleTenantOnly?: (boolean|null);

                    /** License transferable. */
                    public transferable?: (boolean|null);

                    /** License updateTimestamp. */
                    public updateTimestamp?: (string|null);

                    /**
                     * Creates a new License instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns License instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILicense): google.cloud.compute.v1beta.License;

                    /**
                     * Encodes the specified License message. Does not implicitly {@link google.cloud.compute.v1beta.License.verify|verify} messages.
                     * @param message License message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILicense, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified License message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.License.verify|verify} messages.
                     * @param message License message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILicense, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a License message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns License
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.License;

                    /**
                     * Decodes a License message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns License
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.License;

                    /**
                     * Verifies a License message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a License message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns License
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.License;

                    /**
                     * Creates a plain object from a License message. Also converts values to other types if specified.
                     * @param message License
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.License, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this License to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for License
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicenseCode. */
                interface ILicenseCode {

                    /** LicenseCode creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** LicenseCode description */
                    description?: (string|null);

                    /** LicenseCode id */
                    id?: (number|Long|string|null);

                    /** LicenseCode kind */
                    kind?: (string|null);

                    /** LicenseCode licenseAlias */
                    licenseAlias?: (google.cloud.compute.v1beta.ILicenseCodeLicenseAlias[]|null);

                    /** LicenseCode name */
                    name?: (string|null);

                    /** LicenseCode selfLink */
                    selfLink?: (string|null);

                    /** LicenseCode state */
                    state?: (string|null);

                    /** LicenseCode transferable */
                    transferable?: (boolean|null);
                }

                /** Represents a LicenseCode. */
                class LicenseCode implements ILicenseCode {

                    /**
                     * Constructs a new LicenseCode.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILicenseCode);

                    /** LicenseCode creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** LicenseCode description. */
                    public description?: (string|null);

                    /** LicenseCode id. */
                    public id?: (number|Long|string|null);

                    /** LicenseCode kind. */
                    public kind?: (string|null);

                    /** LicenseCode licenseAlias. */
                    public licenseAlias: google.cloud.compute.v1beta.ILicenseCodeLicenseAlias[];

                    /** LicenseCode name. */
                    public name?: (string|null);

                    /** LicenseCode selfLink. */
                    public selfLink?: (string|null);

                    /** LicenseCode state. */
                    public state?: (string|null);

                    /** LicenseCode transferable. */
                    public transferable?: (boolean|null);

                    /**
                     * Creates a new LicenseCode instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseCode instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILicenseCode): google.cloud.compute.v1beta.LicenseCode;

                    /**
                     * Encodes the specified LicenseCode message. Does not implicitly {@link google.cloud.compute.v1beta.LicenseCode.verify|verify} messages.
                     * @param message LicenseCode message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILicenseCode, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseCode message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LicenseCode.verify|verify} messages.
                     * @param message LicenseCode message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILicenseCode, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseCode message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseCode
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LicenseCode;

                    /**
                     * Decodes a LicenseCode message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseCode
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LicenseCode;

                    /**
                     * Verifies a LicenseCode message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseCode message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseCode
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LicenseCode;

                    /**
                     * Creates a plain object from a LicenseCode message. Also converts values to other types if specified.
                     * @param message LicenseCode
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LicenseCode, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseCode to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseCode
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace LicenseCode {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        DISABLED = 516696700,
                        ENABLED = 182130465,
                        RESTRICTED = 261551195,
                        STATE_UNSPECIFIED = 470755401,
                        TERMINATED = 250018339
                    }
                }

                /** Properties of a LicenseCodeLicenseAlias. */
                interface ILicenseCodeLicenseAlias {

                    /** LicenseCodeLicenseAlias description */
                    description?: (string|null);

                    /** LicenseCodeLicenseAlias selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a LicenseCodeLicenseAlias. */
                class LicenseCodeLicenseAlias implements ILicenseCodeLicenseAlias {

                    /**
                     * Constructs a new LicenseCodeLicenseAlias.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILicenseCodeLicenseAlias);

                    /** LicenseCodeLicenseAlias description. */
                    public description?: (string|null);

                    /** LicenseCodeLicenseAlias selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new LicenseCodeLicenseAlias instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseCodeLicenseAlias instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILicenseCodeLicenseAlias): google.cloud.compute.v1beta.LicenseCodeLicenseAlias;

                    /**
                     * Encodes the specified LicenseCodeLicenseAlias message. Does not implicitly {@link google.cloud.compute.v1beta.LicenseCodeLicenseAlias.verify|verify} messages.
                     * @param message LicenseCodeLicenseAlias message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILicenseCodeLicenseAlias, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseCodeLicenseAlias message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LicenseCodeLicenseAlias.verify|verify} messages.
                     * @param message LicenseCodeLicenseAlias message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILicenseCodeLicenseAlias, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseCodeLicenseAlias message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseCodeLicenseAlias
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LicenseCodeLicenseAlias;

                    /**
                     * Decodes a LicenseCodeLicenseAlias message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseCodeLicenseAlias
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LicenseCodeLicenseAlias;

                    /**
                     * Verifies a LicenseCodeLicenseAlias message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseCodeLicenseAlias message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseCodeLicenseAlias
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LicenseCodeLicenseAlias;

                    /**
                     * Creates a plain object from a LicenseCodeLicenseAlias message. Also converts values to other types if specified.
                     * @param message LicenseCodeLicenseAlias
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LicenseCodeLicenseAlias, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseCodeLicenseAlias to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseCodeLicenseAlias
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicenseParams. */
                interface ILicenseParams {

                    /** LicenseParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a LicenseParams. */
                class LicenseParams implements ILicenseParams {

                    /**
                     * Constructs a new LicenseParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILicenseParams);

                    /** LicenseParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new LicenseParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILicenseParams): google.cloud.compute.v1beta.LicenseParams;

                    /**
                     * Encodes the specified LicenseParams message. Does not implicitly {@link google.cloud.compute.v1beta.LicenseParams.verify|verify} messages.
                     * @param message LicenseParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILicenseParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LicenseParams.verify|verify} messages.
                     * @param message LicenseParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILicenseParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LicenseParams;

                    /**
                     * Decodes a LicenseParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LicenseParams;

                    /**
                     * Verifies a LicenseParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LicenseParams;

                    /**
                     * Creates a plain object from a LicenseParams message. Also converts values to other types if specified.
                     * @param message LicenseParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LicenseParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicenseResourceCommitment. */
                interface ILicenseResourceCommitment {

                    /** LicenseResourceCommitment amount */
                    amount?: (number|Long|string|null);

                    /** LicenseResourceCommitment coresPerLicense */
                    coresPerLicense?: (string|null);

                    /** LicenseResourceCommitment license */
                    license?: (string|null);
                }

                /** Represents a LicenseResourceCommitment. */
                class LicenseResourceCommitment implements ILicenseResourceCommitment {

                    /**
                     * Constructs a new LicenseResourceCommitment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILicenseResourceCommitment);

                    /** LicenseResourceCommitment amount. */
                    public amount?: (number|Long|string|null);

                    /** LicenseResourceCommitment coresPerLicense. */
                    public coresPerLicense?: (string|null);

                    /** LicenseResourceCommitment license. */
                    public license?: (string|null);

                    /**
                     * Creates a new LicenseResourceCommitment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseResourceCommitment instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILicenseResourceCommitment): google.cloud.compute.v1beta.LicenseResourceCommitment;

                    /**
                     * Encodes the specified LicenseResourceCommitment message. Does not implicitly {@link google.cloud.compute.v1beta.LicenseResourceCommitment.verify|verify} messages.
                     * @param message LicenseResourceCommitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILicenseResourceCommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseResourceCommitment message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LicenseResourceCommitment.verify|verify} messages.
                     * @param message LicenseResourceCommitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILicenseResourceCommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseResourceCommitment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseResourceCommitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LicenseResourceCommitment;

                    /**
                     * Decodes a LicenseResourceCommitment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseResourceCommitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LicenseResourceCommitment;

                    /**
                     * Verifies a LicenseResourceCommitment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseResourceCommitment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseResourceCommitment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LicenseResourceCommitment;

                    /**
                     * Creates a plain object from a LicenseResourceCommitment message. Also converts values to other types if specified.
                     * @param message LicenseResourceCommitment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LicenseResourceCommitment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseResourceCommitment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseResourceCommitment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicenseResourceRequirements. */
                interface ILicenseResourceRequirements {

                    /** LicenseResourceRequirements minGuestCpuCount */
                    minGuestCpuCount?: (number|null);

                    /** LicenseResourceRequirements minMemoryMb */
                    minMemoryMb?: (number|null);
                }

                /** Represents a LicenseResourceRequirements. */
                class LicenseResourceRequirements implements ILicenseResourceRequirements {

                    /**
                     * Constructs a new LicenseResourceRequirements.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILicenseResourceRequirements);

                    /** LicenseResourceRequirements minGuestCpuCount. */
                    public minGuestCpuCount?: (number|null);

                    /** LicenseResourceRequirements minMemoryMb. */
                    public minMemoryMb?: (number|null);

                    /**
                     * Creates a new LicenseResourceRequirements instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicenseResourceRequirements instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILicenseResourceRequirements): google.cloud.compute.v1beta.LicenseResourceRequirements;

                    /**
                     * Encodes the specified LicenseResourceRequirements message. Does not implicitly {@link google.cloud.compute.v1beta.LicenseResourceRequirements.verify|verify} messages.
                     * @param message LicenseResourceRequirements message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILicenseResourceRequirements, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicenseResourceRequirements message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LicenseResourceRequirements.verify|verify} messages.
                     * @param message LicenseResourceRequirements message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILicenseResourceRequirements, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicenseResourceRequirements message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicenseResourceRequirements
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LicenseResourceRequirements;

                    /**
                     * Decodes a LicenseResourceRequirements message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicenseResourceRequirements
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LicenseResourceRequirements;

                    /**
                     * Verifies a LicenseResourceRequirements message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicenseResourceRequirements message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicenseResourceRequirements
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LicenseResourceRequirements;

                    /**
                     * Creates a plain object from a LicenseResourceRequirements message. Also converts values to other types if specified.
                     * @param message LicenseResourceRequirements
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LicenseResourceRequirements, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicenseResourceRequirements to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicenseResourceRequirements
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LicensesListResponse. */
                interface ILicensesListResponse {

                    /** LicensesListResponse id */
                    id?: (string|null);

                    /** LicensesListResponse items */
                    items?: (google.cloud.compute.v1beta.ILicense[]|null);

                    /** LicensesListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** LicensesListResponse selfLink */
                    selfLink?: (string|null);

                    /** LicensesListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a LicensesListResponse. */
                class LicensesListResponse implements ILicensesListResponse {

                    /**
                     * Constructs a new LicensesListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILicensesListResponse);

                    /** LicensesListResponse id. */
                    public id?: (string|null);

                    /** LicensesListResponse items. */
                    public items: google.cloud.compute.v1beta.ILicense[];

                    /** LicensesListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** LicensesListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** LicensesListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new LicensesListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LicensesListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILicensesListResponse): google.cloud.compute.v1beta.LicensesListResponse;

                    /**
                     * Encodes the specified LicensesListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.LicensesListResponse.verify|verify} messages.
                     * @param message LicensesListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILicensesListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LicensesListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LicensesListResponse.verify|verify} messages.
                     * @param message LicensesListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILicensesListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LicensesListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LicensesListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LicensesListResponse;

                    /**
                     * Decodes a LicensesListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LicensesListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LicensesListResponse;

                    /**
                     * Verifies a LicensesListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LicensesListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LicensesListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LicensesListResponse;

                    /**
                     * Creates a plain object from a LicensesListResponse message. Also converts values to other types if specified.
                     * @param message LicensesListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LicensesListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LicensesListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LicensesListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAcceleratorTypesRequest. */
                interface IListAcceleratorTypesRequest {

                    /** ListAcceleratorTypesRequest filter */
                    filter?: (string|null);

                    /** ListAcceleratorTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAcceleratorTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAcceleratorTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAcceleratorTypesRequest project */
                    project?: (string|null);

                    /** ListAcceleratorTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListAcceleratorTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListAcceleratorTypesRequest. */
                class ListAcceleratorTypesRequest implements IListAcceleratorTypesRequest {

                    /**
                     * Constructs a new ListAcceleratorTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListAcceleratorTypesRequest);

                    /** ListAcceleratorTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListAcceleratorTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAcceleratorTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAcceleratorTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAcceleratorTypesRequest project. */
                    public project: string;

                    /** ListAcceleratorTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListAcceleratorTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListAcceleratorTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAcceleratorTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListAcceleratorTypesRequest): google.cloud.compute.v1beta.ListAcceleratorTypesRequest;

                    /**
                     * Encodes the specified ListAcceleratorTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListAcceleratorTypesRequest.verify|verify} messages.
                     * @param message ListAcceleratorTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListAcceleratorTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAcceleratorTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListAcceleratorTypesRequest.verify|verify} messages.
                     * @param message ListAcceleratorTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListAcceleratorTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAcceleratorTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAcceleratorTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListAcceleratorTypesRequest;

                    /**
                     * Decodes a ListAcceleratorTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAcceleratorTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListAcceleratorTypesRequest;

                    /**
                     * Verifies a ListAcceleratorTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAcceleratorTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAcceleratorTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListAcceleratorTypesRequest;

                    /**
                     * Creates a plain object from a ListAcceleratorTypesRequest message. Also converts values to other types if specified.
                     * @param message ListAcceleratorTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListAcceleratorTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAcceleratorTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAcceleratorTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAddressesRequest. */
                interface IListAddressesRequest {

                    /** ListAddressesRequest filter */
                    filter?: (string|null);

                    /** ListAddressesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAddressesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAddressesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAddressesRequest project */
                    project?: (string|null);

                    /** ListAddressesRequest region */
                    region?: (string|null);

                    /** ListAddressesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListAddressesRequest. */
                class ListAddressesRequest implements IListAddressesRequest {

                    /**
                     * Constructs a new ListAddressesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListAddressesRequest);

                    /** ListAddressesRequest filter. */
                    public filter?: (string|null);

                    /** ListAddressesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAddressesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAddressesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAddressesRequest project. */
                    public project: string;

                    /** ListAddressesRequest region. */
                    public region: string;

                    /** ListAddressesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListAddressesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAddressesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListAddressesRequest): google.cloud.compute.v1beta.ListAddressesRequest;

                    /**
                     * Encodes the specified ListAddressesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListAddressesRequest.verify|verify} messages.
                     * @param message ListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAddressesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListAddressesRequest.verify|verify} messages.
                     * @param message ListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAddressesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListAddressesRequest;

                    /**
                     * Decodes a ListAddressesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListAddressesRequest;

                    /**
                     * Verifies a ListAddressesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAddressesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAddressesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListAddressesRequest;

                    /**
                     * Creates a plain object from a ListAddressesRequest message. Also converts values to other types if specified.
                     * @param message ListAddressesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListAddressesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAddressesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAddressesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAssociationsFirewallPolicyRequest. */
                interface IListAssociationsFirewallPolicyRequest {

                    /** ListAssociationsFirewallPolicyRequest includeInheritedPolicies */
                    includeInheritedPolicies?: (boolean|null);

                    /** ListAssociationsFirewallPolicyRequest targetResource */
                    targetResource?: (string|null);
                }

                /** Represents a ListAssociationsFirewallPolicyRequest. */
                class ListAssociationsFirewallPolicyRequest implements IListAssociationsFirewallPolicyRequest {

                    /**
                     * Constructs a new ListAssociationsFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListAssociationsFirewallPolicyRequest);

                    /** ListAssociationsFirewallPolicyRequest includeInheritedPolicies. */
                    public includeInheritedPolicies?: (boolean|null);

                    /** ListAssociationsFirewallPolicyRequest targetResource. */
                    public targetResource?: (string|null);

                    /**
                     * Creates a new ListAssociationsFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAssociationsFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListAssociationsFirewallPolicyRequest): google.cloud.compute.v1beta.ListAssociationsFirewallPolicyRequest;

                    /**
                     * Encodes the specified ListAssociationsFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListAssociationsFirewallPolicyRequest.verify|verify} messages.
                     * @param message ListAssociationsFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListAssociationsFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAssociationsFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListAssociationsFirewallPolicyRequest.verify|verify} messages.
                     * @param message ListAssociationsFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListAssociationsFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAssociationsFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAssociationsFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListAssociationsFirewallPolicyRequest;

                    /**
                     * Decodes a ListAssociationsFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAssociationsFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListAssociationsFirewallPolicyRequest;

                    /**
                     * Verifies a ListAssociationsFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAssociationsFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAssociationsFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListAssociationsFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a ListAssociationsFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message ListAssociationsFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListAssociationsFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAssociationsFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAssociationsFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAssociationsOrganizationSecurityPolicyRequest. */
                interface IListAssociationsOrganizationSecurityPolicyRequest {

                    /** ListAssociationsOrganizationSecurityPolicyRequest targetResource */
                    targetResource?: (string|null);
                }

                /** Represents a ListAssociationsOrganizationSecurityPolicyRequest. */
                class ListAssociationsOrganizationSecurityPolicyRequest implements IListAssociationsOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new ListAssociationsOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListAssociationsOrganizationSecurityPolicyRequest);

                    /** ListAssociationsOrganizationSecurityPolicyRequest targetResource. */
                    public targetResource?: (string|null);

                    /**
                     * Creates a new ListAssociationsOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAssociationsOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListAssociationsOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.ListAssociationsOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified ListAssociationsOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListAssociationsOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message ListAssociationsOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListAssociationsOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAssociationsOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListAssociationsOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message ListAssociationsOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListAssociationsOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAssociationsOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAssociationsOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListAssociationsOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a ListAssociationsOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAssociationsOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListAssociationsOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a ListAssociationsOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAssociationsOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAssociationsOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListAssociationsOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a ListAssociationsOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message ListAssociationsOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListAssociationsOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAssociationsOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAssociationsOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAutoscalersRequest. */
                interface IListAutoscalersRequest {

                    /** ListAutoscalersRequest filter */
                    filter?: (string|null);

                    /** ListAutoscalersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAutoscalersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAutoscalersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAutoscalersRequest project */
                    project?: (string|null);

                    /** ListAutoscalersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListAutoscalersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListAutoscalersRequest. */
                class ListAutoscalersRequest implements IListAutoscalersRequest {

                    /**
                     * Constructs a new ListAutoscalersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListAutoscalersRequest);

                    /** ListAutoscalersRequest filter. */
                    public filter?: (string|null);

                    /** ListAutoscalersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAutoscalersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAutoscalersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAutoscalersRequest project. */
                    public project: string;

                    /** ListAutoscalersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListAutoscalersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListAutoscalersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAutoscalersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListAutoscalersRequest): google.cloud.compute.v1beta.ListAutoscalersRequest;

                    /**
                     * Encodes the specified ListAutoscalersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListAutoscalersRequest.verify|verify} messages.
                     * @param message ListAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAutoscalersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListAutoscalersRequest.verify|verify} messages.
                     * @param message ListAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAutoscalersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListAutoscalersRequest;

                    /**
                     * Decodes a ListAutoscalersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListAutoscalersRequest;

                    /**
                     * Verifies a ListAutoscalersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAutoscalersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAutoscalersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListAutoscalersRequest;

                    /**
                     * Creates a plain object from a ListAutoscalersRequest message. Also converts values to other types if specified.
                     * @param message ListAutoscalersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListAutoscalersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAutoscalersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAutoscalersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAvailableFeaturesRegionSslPoliciesRequest. */
                interface IListAvailableFeaturesRegionSslPoliciesRequest {

                    /** ListAvailableFeaturesRegionSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest project */
                    project?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest region */
                    region?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListAvailableFeaturesRegionSslPoliciesRequest. */
                class ListAvailableFeaturesRegionSslPoliciesRequest implements IListAvailableFeaturesRegionSslPoliciesRequest {

                    /**
                     * Constructs a new ListAvailableFeaturesRegionSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListAvailableFeaturesRegionSslPoliciesRequest);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAvailableFeaturesRegionSslPoliciesRequest project. */
                    public project: string;

                    /** ListAvailableFeaturesRegionSslPoliciesRequest region. */
                    public region: string;

                    /** ListAvailableFeaturesRegionSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListAvailableFeaturesRegionSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAvailableFeaturesRegionSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListAvailableFeaturesRegionSslPoliciesRequest): google.cloud.compute.v1beta.ListAvailableFeaturesRegionSslPoliciesRequest;

                    /**
                     * Encodes the specified ListAvailableFeaturesRegionSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListAvailableFeaturesRegionSslPoliciesRequest.verify|verify} messages.
                     * @param message ListAvailableFeaturesRegionSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListAvailableFeaturesRegionSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAvailableFeaturesRegionSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListAvailableFeaturesRegionSslPoliciesRequest.verify|verify} messages.
                     * @param message ListAvailableFeaturesRegionSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListAvailableFeaturesRegionSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAvailableFeaturesRegionSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAvailableFeaturesRegionSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListAvailableFeaturesRegionSslPoliciesRequest;

                    /**
                     * Decodes a ListAvailableFeaturesRegionSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAvailableFeaturesRegionSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListAvailableFeaturesRegionSslPoliciesRequest;

                    /**
                     * Verifies a ListAvailableFeaturesRegionSslPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAvailableFeaturesRegionSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAvailableFeaturesRegionSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListAvailableFeaturesRegionSslPoliciesRequest;

                    /**
                     * Creates a plain object from a ListAvailableFeaturesRegionSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListAvailableFeaturesRegionSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListAvailableFeaturesRegionSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAvailableFeaturesRegionSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAvailableFeaturesRegionSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAvailableFeaturesSslPoliciesRequest. */
                interface IListAvailableFeaturesSslPoliciesRequest {

                    /** ListAvailableFeaturesSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAvailableFeaturesSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest project */
                    project?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListAvailableFeaturesSslPoliciesRequest. */
                class ListAvailableFeaturesSslPoliciesRequest implements IListAvailableFeaturesSslPoliciesRequest {

                    /**
                     * Constructs a new ListAvailableFeaturesSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListAvailableFeaturesSslPoliciesRequest);

                    /** ListAvailableFeaturesSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAvailableFeaturesSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAvailableFeaturesSslPoliciesRequest project. */
                    public project: string;

                    /** ListAvailableFeaturesSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListAvailableFeaturesSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAvailableFeaturesSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListAvailableFeaturesSslPoliciesRequest): google.cloud.compute.v1beta.ListAvailableFeaturesSslPoliciesRequest;

                    /**
                     * Encodes the specified ListAvailableFeaturesSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListAvailableFeaturesSslPoliciesRequest.verify|verify} messages.
                     * @param message ListAvailableFeaturesSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListAvailableFeaturesSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAvailableFeaturesSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListAvailableFeaturesSslPoliciesRequest.verify|verify} messages.
                     * @param message ListAvailableFeaturesSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListAvailableFeaturesSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAvailableFeaturesSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAvailableFeaturesSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListAvailableFeaturesSslPoliciesRequest;

                    /**
                     * Decodes a ListAvailableFeaturesSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAvailableFeaturesSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListAvailableFeaturesSslPoliciesRequest;

                    /**
                     * Verifies a ListAvailableFeaturesSslPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAvailableFeaturesSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAvailableFeaturesSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListAvailableFeaturesSslPoliciesRequest;

                    /**
                     * Creates a plain object from a ListAvailableFeaturesSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListAvailableFeaturesSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListAvailableFeaturesSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAvailableFeaturesSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAvailableFeaturesSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListBackendBucketsRequest. */
                interface IListBackendBucketsRequest {

                    /** ListBackendBucketsRequest filter */
                    filter?: (string|null);

                    /** ListBackendBucketsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListBackendBucketsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListBackendBucketsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListBackendBucketsRequest project */
                    project?: (string|null);

                    /** ListBackendBucketsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListBackendBucketsRequest. */
                class ListBackendBucketsRequest implements IListBackendBucketsRequest {

                    /**
                     * Constructs a new ListBackendBucketsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListBackendBucketsRequest);

                    /** ListBackendBucketsRequest filter. */
                    public filter?: (string|null);

                    /** ListBackendBucketsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListBackendBucketsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListBackendBucketsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListBackendBucketsRequest project. */
                    public project: string;

                    /** ListBackendBucketsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListBackendBucketsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListBackendBucketsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListBackendBucketsRequest): google.cloud.compute.v1beta.ListBackendBucketsRequest;

                    /**
                     * Encodes the specified ListBackendBucketsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListBackendBucketsRequest.verify|verify} messages.
                     * @param message ListBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListBackendBucketsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListBackendBucketsRequest.verify|verify} messages.
                     * @param message ListBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListBackendBucketsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListBackendBucketsRequest;

                    /**
                     * Decodes a ListBackendBucketsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListBackendBucketsRequest;

                    /**
                     * Verifies a ListBackendBucketsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListBackendBucketsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListBackendBucketsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListBackendBucketsRequest;

                    /**
                     * Creates a plain object from a ListBackendBucketsRequest message. Also converts values to other types if specified.
                     * @param message ListBackendBucketsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListBackendBucketsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListBackendBucketsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListBackendBucketsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListBackendServicesRequest. */
                interface IListBackendServicesRequest {

                    /** ListBackendServicesRequest filter */
                    filter?: (string|null);

                    /** ListBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListBackendServicesRequest project */
                    project?: (string|null);

                    /** ListBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListBackendServicesRequest. */
                class ListBackendServicesRequest implements IListBackendServicesRequest {

                    /**
                     * Constructs a new ListBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListBackendServicesRequest);

                    /** ListBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListBackendServicesRequest project. */
                    public project: string;

                    /** ListBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListBackendServicesRequest): google.cloud.compute.v1beta.ListBackendServicesRequest;

                    /**
                     * Encodes the specified ListBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListBackendServicesRequest.verify|verify} messages.
                     * @param message ListBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListBackendServicesRequest.verify|verify} messages.
                     * @param message ListBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListBackendServicesRequest;

                    /**
                     * Decodes a ListBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListBackendServicesRequest;

                    /**
                     * Verifies a ListBackendServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListBackendServicesRequest;

                    /**
                     * Creates a plain object from a ListBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message ListBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListBackendServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListBgpRoutesRoutersRequest. */
                interface IListBgpRoutesRoutersRequest {

                    /** ListBgpRoutesRoutersRequest addressFamily */
                    addressFamily?: (string|null);

                    /** ListBgpRoutesRoutersRequest destinationPrefix */
                    destinationPrefix?: (string|null);

                    /** ListBgpRoutesRoutersRequest filter */
                    filter?: (string|null);

                    /** ListBgpRoutesRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListBgpRoutesRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListBgpRoutesRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListBgpRoutesRoutersRequest peer */
                    peer?: (string|null);

                    /** ListBgpRoutesRoutersRequest policyApplied */
                    policyApplied?: (boolean|null);

                    /** ListBgpRoutesRoutersRequest project */
                    project?: (string|null);

                    /** ListBgpRoutesRoutersRequest region */
                    region?: (string|null);

                    /** ListBgpRoutesRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListBgpRoutesRoutersRequest routeType */
                    routeType?: (string|null);

                    /** ListBgpRoutesRoutersRequest router */
                    router?: (string|null);
                }

                /** Represents a ListBgpRoutesRoutersRequest. */
                class ListBgpRoutesRoutersRequest implements IListBgpRoutesRoutersRequest {

                    /**
                     * Constructs a new ListBgpRoutesRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListBgpRoutesRoutersRequest);

                    /** ListBgpRoutesRoutersRequest addressFamily. */
                    public addressFamily?: (string|null);

                    /** ListBgpRoutesRoutersRequest destinationPrefix. */
                    public destinationPrefix?: (string|null);

                    /** ListBgpRoutesRoutersRequest filter. */
                    public filter?: (string|null);

                    /** ListBgpRoutesRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListBgpRoutesRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListBgpRoutesRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListBgpRoutesRoutersRequest peer. */
                    public peer?: (string|null);

                    /** ListBgpRoutesRoutersRequest policyApplied. */
                    public policyApplied?: (boolean|null);

                    /** ListBgpRoutesRoutersRequest project. */
                    public project: string;

                    /** ListBgpRoutesRoutersRequest region. */
                    public region: string;

                    /** ListBgpRoutesRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListBgpRoutesRoutersRequest routeType. */
                    public routeType?: (string|null);

                    /** ListBgpRoutesRoutersRequest router. */
                    public router: string;

                    /**
                     * Creates a new ListBgpRoutesRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListBgpRoutesRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListBgpRoutesRoutersRequest): google.cloud.compute.v1beta.ListBgpRoutesRoutersRequest;

                    /**
                     * Encodes the specified ListBgpRoutesRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListBgpRoutesRoutersRequest.verify|verify} messages.
                     * @param message ListBgpRoutesRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListBgpRoutesRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListBgpRoutesRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListBgpRoutesRoutersRequest.verify|verify} messages.
                     * @param message ListBgpRoutesRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListBgpRoutesRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListBgpRoutesRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListBgpRoutesRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListBgpRoutesRoutersRequest;

                    /**
                     * Decodes a ListBgpRoutesRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListBgpRoutesRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListBgpRoutesRoutersRequest;

                    /**
                     * Verifies a ListBgpRoutesRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListBgpRoutesRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListBgpRoutesRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListBgpRoutesRoutersRequest;

                    /**
                     * Creates a plain object from a ListBgpRoutesRoutersRequest message. Also converts values to other types if specified.
                     * @param message ListBgpRoutesRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListBgpRoutesRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListBgpRoutesRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListBgpRoutesRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListBgpRoutesRoutersRequest {

                    /** AddressFamily enum. */
                    enum AddressFamily {
                        UNDEFINED_ADDRESS_FAMILY = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        UNSPECIFIED_IP_VERSION = 72938440
                    }

                    /** RouteType enum. */
                    enum RouteType {
                        UNDEFINED_ROUTE_TYPE = 0,
                        ADVERTISED = 20302109,
                        LEARNED = 231892419,
                        UNSPECIFIED_ROUTE_TYPE = 248064440
                    }
                }

                /** Properties of a ListCrossSiteNetworksRequest. */
                interface IListCrossSiteNetworksRequest {

                    /** ListCrossSiteNetworksRequest filter */
                    filter?: (string|null);

                    /** ListCrossSiteNetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListCrossSiteNetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListCrossSiteNetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListCrossSiteNetworksRequest project */
                    project?: (string|null);

                    /** ListCrossSiteNetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListCrossSiteNetworksRequest. */
                class ListCrossSiteNetworksRequest implements IListCrossSiteNetworksRequest {

                    /**
                     * Constructs a new ListCrossSiteNetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListCrossSiteNetworksRequest);

                    /** ListCrossSiteNetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListCrossSiteNetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListCrossSiteNetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListCrossSiteNetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListCrossSiteNetworksRequest project. */
                    public project: string;

                    /** ListCrossSiteNetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListCrossSiteNetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCrossSiteNetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListCrossSiteNetworksRequest): google.cloud.compute.v1beta.ListCrossSiteNetworksRequest;

                    /**
                     * Encodes the specified ListCrossSiteNetworksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListCrossSiteNetworksRequest.verify|verify} messages.
                     * @param message ListCrossSiteNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListCrossSiteNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCrossSiteNetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListCrossSiteNetworksRequest.verify|verify} messages.
                     * @param message ListCrossSiteNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListCrossSiteNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCrossSiteNetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCrossSiteNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListCrossSiteNetworksRequest;

                    /**
                     * Decodes a ListCrossSiteNetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCrossSiteNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListCrossSiteNetworksRequest;

                    /**
                     * Verifies a ListCrossSiteNetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCrossSiteNetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCrossSiteNetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListCrossSiteNetworksRequest;

                    /**
                     * Creates a plain object from a ListCrossSiteNetworksRequest message. Also converts values to other types if specified.
                     * @param message ListCrossSiteNetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListCrossSiteNetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCrossSiteNetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCrossSiteNetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDiskTypesRequest. */
                interface IListDiskTypesRequest {

                    /** ListDiskTypesRequest filter */
                    filter?: (string|null);

                    /** ListDiskTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListDiskTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListDiskTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDiskTypesRequest project */
                    project?: (string|null);

                    /** ListDiskTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListDiskTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListDiskTypesRequest. */
                class ListDiskTypesRequest implements IListDiskTypesRequest {

                    /**
                     * Constructs a new ListDiskTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListDiskTypesRequest);

                    /** ListDiskTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListDiskTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListDiskTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListDiskTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListDiskTypesRequest project. */
                    public project: string;

                    /** ListDiskTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListDiskTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListDiskTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDiskTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListDiskTypesRequest): google.cloud.compute.v1beta.ListDiskTypesRequest;

                    /**
                     * Encodes the specified ListDiskTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListDiskTypesRequest.verify|verify} messages.
                     * @param message ListDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDiskTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListDiskTypesRequest.verify|verify} messages.
                     * @param message ListDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDiskTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListDiskTypesRequest;

                    /**
                     * Decodes a ListDiskTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListDiskTypesRequest;

                    /**
                     * Verifies a ListDiskTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDiskTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDiskTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListDiskTypesRequest;

                    /**
                     * Creates a plain object from a ListDiskTypesRequest message. Also converts values to other types if specified.
                     * @param message ListDiskTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListDiskTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDiskTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDiskTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDisksRequest. */
                interface IListDisksRequest {

                    /** ListDisksRequest filter */
                    filter?: (string|null);

                    /** ListDisksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListDisksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListDisksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDisksRequest project */
                    project?: (string|null);

                    /** ListDisksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListDisksRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListDisksRequest. */
                class ListDisksRequest implements IListDisksRequest {

                    /**
                     * Constructs a new ListDisksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListDisksRequest);

                    /** ListDisksRequest filter. */
                    public filter?: (string|null);

                    /** ListDisksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListDisksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListDisksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListDisksRequest project. */
                    public project: string;

                    /** ListDisksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListDisksRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListDisksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDisksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListDisksRequest): google.cloud.compute.v1beta.ListDisksRequest;

                    /**
                     * Encodes the specified ListDisksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListDisksRequest.verify|verify} messages.
                     * @param message ListDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDisksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListDisksRequest.verify|verify} messages.
                     * @param message ListDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDisksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListDisksRequest;

                    /**
                     * Decodes a ListDisksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListDisksRequest;

                    /**
                     * Verifies a ListDisksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDisksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDisksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListDisksRequest;

                    /**
                     * Creates a plain object from a ListDisksRequest message. Also converts values to other types if specified.
                     * @param message ListDisksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListDisksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDisksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDisksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDisksStoragePoolsRequest. */
                interface IListDisksStoragePoolsRequest {

                    /** ListDisksStoragePoolsRequest filter */
                    filter?: (string|null);

                    /** ListDisksStoragePoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListDisksStoragePoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListDisksStoragePoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDisksStoragePoolsRequest project */
                    project?: (string|null);

                    /** ListDisksStoragePoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListDisksStoragePoolsRequest storagePool */
                    storagePool?: (string|null);

                    /** ListDisksStoragePoolsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListDisksStoragePoolsRequest. */
                class ListDisksStoragePoolsRequest implements IListDisksStoragePoolsRequest {

                    /**
                     * Constructs a new ListDisksStoragePoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListDisksStoragePoolsRequest);

                    /** ListDisksStoragePoolsRequest filter. */
                    public filter?: (string|null);

                    /** ListDisksStoragePoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListDisksStoragePoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListDisksStoragePoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListDisksStoragePoolsRequest project. */
                    public project: string;

                    /** ListDisksStoragePoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListDisksStoragePoolsRequest storagePool. */
                    public storagePool: string;

                    /** ListDisksStoragePoolsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListDisksStoragePoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDisksStoragePoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListDisksStoragePoolsRequest): google.cloud.compute.v1beta.ListDisksStoragePoolsRequest;

                    /**
                     * Encodes the specified ListDisksStoragePoolsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListDisksStoragePoolsRequest.verify|verify} messages.
                     * @param message ListDisksStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListDisksStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDisksStoragePoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListDisksStoragePoolsRequest.verify|verify} messages.
                     * @param message ListDisksStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListDisksStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDisksStoragePoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDisksStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListDisksStoragePoolsRequest;

                    /**
                     * Decodes a ListDisksStoragePoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDisksStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListDisksStoragePoolsRequest;

                    /**
                     * Verifies a ListDisksStoragePoolsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDisksStoragePoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDisksStoragePoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListDisksStoragePoolsRequest;

                    /**
                     * Creates a plain object from a ListDisksStoragePoolsRequest message. Also converts values to other types if specified.
                     * @param message ListDisksStoragePoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListDisksStoragePoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDisksStoragePoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDisksStoragePoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListErrorsInstanceGroupManagersRequest. */
                interface IListErrorsInstanceGroupManagersRequest {

                    /** ListErrorsInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListErrorsInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListErrorsInstanceGroupManagersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListErrorsInstanceGroupManagersRequest. */
                class ListErrorsInstanceGroupManagersRequest implements IListErrorsInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListErrorsInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListErrorsInstanceGroupManagersRequest);

                    /** ListErrorsInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListErrorsInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListErrorsInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListErrorsInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListErrorsInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListErrorsInstanceGroupManagersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListErrorsInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListErrorsInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListErrorsInstanceGroupManagersRequest): google.cloud.compute.v1beta.ListErrorsInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListErrorsInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListErrorsInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListErrorsInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListErrorsInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListErrorsInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListErrorsInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListErrorsInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListErrorsInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListErrorsInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListErrorsInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListErrorsInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListErrorsInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListErrorsInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListErrorsInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListErrorsInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListErrorsInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListErrorsInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListErrorsInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListErrorsInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListErrorsInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListErrorsInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListErrorsInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListErrorsInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListErrorsRegionInstanceGroupManagersRequest. */
                interface IListErrorsRegionInstanceGroupManagersRequest {

                    /** ListErrorsRegionInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest region */
                    region?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListErrorsRegionInstanceGroupManagersRequest. */
                class ListErrorsRegionInstanceGroupManagersRequest implements IListErrorsRegionInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListErrorsRegionInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListErrorsRegionInstanceGroupManagersRequest);

                    /** ListErrorsRegionInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListErrorsRegionInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListErrorsRegionInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListErrorsRegionInstanceGroupManagersRequest region. */
                    public region: string;

                    /** ListErrorsRegionInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListErrorsRegionInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListErrorsRegionInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListErrorsRegionInstanceGroupManagersRequest): google.cloud.compute.v1beta.ListErrorsRegionInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListErrorsRegionInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListErrorsRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListErrorsRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListErrorsRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListErrorsRegionInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListErrorsRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListErrorsRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListErrorsRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListErrorsRegionInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListErrorsRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListErrorsRegionInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListErrorsRegionInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListErrorsRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListErrorsRegionInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListErrorsRegionInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListErrorsRegionInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListErrorsRegionInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListErrorsRegionInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListErrorsRegionInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListErrorsRegionInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListErrorsRegionInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListErrorsRegionInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListErrorsRegionInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListExternalVpnGatewaysRequest. */
                interface IListExternalVpnGatewaysRequest {

                    /** ListExternalVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** ListExternalVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** ListExternalVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** ListExternalVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** ListExternalVpnGatewaysRequest project */
                    project?: (string|null);

                    /** ListExternalVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListExternalVpnGatewaysRequest. */
                class ListExternalVpnGatewaysRequest implements IListExternalVpnGatewaysRequest {

                    /**
                     * Constructs a new ListExternalVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListExternalVpnGatewaysRequest);

                    /** ListExternalVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** ListExternalVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListExternalVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListExternalVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListExternalVpnGatewaysRequest project. */
                    public project: string;

                    /** ListExternalVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListExternalVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListExternalVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListExternalVpnGatewaysRequest): google.cloud.compute.v1beta.ListExternalVpnGatewaysRequest;

                    /**
                     * Encodes the specified ListExternalVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListExternalVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListExternalVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListExternalVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListExternalVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListExternalVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListExternalVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListExternalVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListExternalVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListExternalVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListExternalVpnGatewaysRequest;

                    /**
                     * Decodes a ListExternalVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListExternalVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListExternalVpnGatewaysRequest;

                    /**
                     * Verifies a ListExternalVpnGatewaysRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListExternalVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListExternalVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListExternalVpnGatewaysRequest;

                    /**
                     * Creates a plain object from a ListExternalVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message ListExternalVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListExternalVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListExternalVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListExternalVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListFirewallPoliciesRequest. */
                interface IListFirewallPoliciesRequest {

                    /** ListFirewallPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListFirewallPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListFirewallPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListFirewallPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListFirewallPoliciesRequest parentId */
                    parentId?: (string|null);

                    /** ListFirewallPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListFirewallPoliciesRequest. */
                class ListFirewallPoliciesRequest implements IListFirewallPoliciesRequest {

                    /**
                     * Constructs a new ListFirewallPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListFirewallPoliciesRequest);

                    /** ListFirewallPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListFirewallPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListFirewallPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListFirewallPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListFirewallPoliciesRequest parentId. */
                    public parentId?: (string|null);

                    /** ListFirewallPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListFirewallPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListFirewallPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListFirewallPoliciesRequest): google.cloud.compute.v1beta.ListFirewallPoliciesRequest;

                    /**
                     * Encodes the specified ListFirewallPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListFirewallPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListFirewallPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListFirewallPoliciesRequest;

                    /**
                     * Decodes a ListFirewallPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListFirewallPoliciesRequest;

                    /**
                     * Verifies a ListFirewallPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListFirewallPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListFirewallPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListFirewallPoliciesRequest;

                    /**
                     * Creates a plain object from a ListFirewallPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListFirewallPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListFirewallPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListFirewallPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListFirewallPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListFirewallsRequest. */
                interface IListFirewallsRequest {

                    /** ListFirewallsRequest filter */
                    filter?: (string|null);

                    /** ListFirewallsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListFirewallsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListFirewallsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListFirewallsRequest project */
                    project?: (string|null);

                    /** ListFirewallsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListFirewallsRequest. */
                class ListFirewallsRequest implements IListFirewallsRequest {

                    /**
                     * Constructs a new ListFirewallsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListFirewallsRequest);

                    /** ListFirewallsRequest filter. */
                    public filter?: (string|null);

                    /** ListFirewallsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListFirewallsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListFirewallsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListFirewallsRequest project. */
                    public project: string;

                    /** ListFirewallsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListFirewallsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListFirewallsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListFirewallsRequest): google.cloud.compute.v1beta.ListFirewallsRequest;

                    /**
                     * Encodes the specified ListFirewallsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListFirewallsRequest.verify|verify} messages.
                     * @param message ListFirewallsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListFirewallsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListFirewallsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListFirewallsRequest.verify|verify} messages.
                     * @param message ListFirewallsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListFirewallsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListFirewallsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListFirewallsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListFirewallsRequest;

                    /**
                     * Decodes a ListFirewallsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListFirewallsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListFirewallsRequest;

                    /**
                     * Verifies a ListFirewallsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListFirewallsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListFirewallsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListFirewallsRequest;

                    /**
                     * Creates a plain object from a ListFirewallsRequest message. Also converts values to other types if specified.
                     * @param message ListFirewallsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListFirewallsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListFirewallsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListFirewallsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListForwardingRulesRequest. */
                interface IListForwardingRulesRequest {

                    /** ListForwardingRulesRequest filter */
                    filter?: (string|null);

                    /** ListForwardingRulesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListForwardingRulesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListForwardingRulesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListForwardingRulesRequest project */
                    project?: (string|null);

                    /** ListForwardingRulesRequest region */
                    region?: (string|null);

                    /** ListForwardingRulesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListForwardingRulesRequest. */
                class ListForwardingRulesRequest implements IListForwardingRulesRequest {

                    /**
                     * Constructs a new ListForwardingRulesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListForwardingRulesRequest);

                    /** ListForwardingRulesRequest filter. */
                    public filter?: (string|null);

                    /** ListForwardingRulesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListForwardingRulesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListForwardingRulesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListForwardingRulesRequest project. */
                    public project: string;

                    /** ListForwardingRulesRequest region. */
                    public region: string;

                    /** ListForwardingRulesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListForwardingRulesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListForwardingRulesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListForwardingRulesRequest): google.cloud.compute.v1beta.ListForwardingRulesRequest;

                    /**
                     * Encodes the specified ListForwardingRulesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListForwardingRulesRequest.verify|verify} messages.
                     * @param message ListForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListForwardingRulesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListForwardingRulesRequest.verify|verify} messages.
                     * @param message ListForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListForwardingRulesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListForwardingRulesRequest;

                    /**
                     * Decodes a ListForwardingRulesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListForwardingRulesRequest;

                    /**
                     * Verifies a ListForwardingRulesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListForwardingRulesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListForwardingRulesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListForwardingRulesRequest;

                    /**
                     * Creates a plain object from a ListForwardingRulesRequest message. Also converts values to other types if specified.
                     * @param message ListForwardingRulesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListForwardingRulesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListForwardingRulesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListForwardingRulesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListFutureReservationsRequest. */
                interface IListFutureReservationsRequest {

                    /** ListFutureReservationsRequest filter */
                    filter?: (string|null);

                    /** ListFutureReservationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListFutureReservationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListFutureReservationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListFutureReservationsRequest project */
                    project?: (string|null);

                    /** ListFutureReservationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListFutureReservationsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListFutureReservationsRequest. */
                class ListFutureReservationsRequest implements IListFutureReservationsRequest {

                    /**
                     * Constructs a new ListFutureReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListFutureReservationsRequest);

                    /** ListFutureReservationsRequest filter. */
                    public filter?: (string|null);

                    /** ListFutureReservationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListFutureReservationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListFutureReservationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListFutureReservationsRequest project. */
                    public project: string;

                    /** ListFutureReservationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListFutureReservationsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListFutureReservationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListFutureReservationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListFutureReservationsRequest): google.cloud.compute.v1beta.ListFutureReservationsRequest;

                    /**
                     * Encodes the specified ListFutureReservationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListFutureReservationsRequest.verify|verify} messages.
                     * @param message ListFutureReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListFutureReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListFutureReservationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListFutureReservationsRequest.verify|verify} messages.
                     * @param message ListFutureReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListFutureReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListFutureReservationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListFutureReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListFutureReservationsRequest;

                    /**
                     * Decodes a ListFutureReservationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListFutureReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListFutureReservationsRequest;

                    /**
                     * Verifies a ListFutureReservationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListFutureReservationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListFutureReservationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListFutureReservationsRequest;

                    /**
                     * Creates a plain object from a ListFutureReservationsRequest message. Also converts values to other types if specified.
                     * @param message ListFutureReservationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListFutureReservationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListFutureReservationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListFutureReservationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalAddressesRequest. */
                interface IListGlobalAddressesRequest {

                    /** ListGlobalAddressesRequest filter */
                    filter?: (string|null);

                    /** ListGlobalAddressesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalAddressesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalAddressesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalAddressesRequest project */
                    project?: (string|null);

                    /** ListGlobalAddressesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalAddressesRequest. */
                class ListGlobalAddressesRequest implements IListGlobalAddressesRequest {

                    /**
                     * Constructs a new ListGlobalAddressesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListGlobalAddressesRequest);

                    /** ListGlobalAddressesRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalAddressesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalAddressesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalAddressesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalAddressesRequest project. */
                    public project: string;

                    /** ListGlobalAddressesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalAddressesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalAddressesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListGlobalAddressesRequest): google.cloud.compute.v1beta.ListGlobalAddressesRequest;

                    /**
                     * Encodes the specified ListGlobalAddressesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalAddressesRequest.verify|verify} messages.
                     * @param message ListGlobalAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListGlobalAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalAddressesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalAddressesRequest.verify|verify} messages.
                     * @param message ListGlobalAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListGlobalAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalAddressesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListGlobalAddressesRequest;

                    /**
                     * Decodes a ListGlobalAddressesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListGlobalAddressesRequest;

                    /**
                     * Verifies a ListGlobalAddressesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalAddressesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalAddressesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListGlobalAddressesRequest;

                    /**
                     * Creates a plain object from a ListGlobalAddressesRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalAddressesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListGlobalAddressesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalAddressesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalAddressesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalForwardingRulesRequest. */
                interface IListGlobalForwardingRulesRequest {

                    /** ListGlobalForwardingRulesRequest filter */
                    filter?: (string|null);

                    /** ListGlobalForwardingRulesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalForwardingRulesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalForwardingRulesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalForwardingRulesRequest project */
                    project?: (string|null);

                    /** ListGlobalForwardingRulesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalForwardingRulesRequest. */
                class ListGlobalForwardingRulesRequest implements IListGlobalForwardingRulesRequest {

                    /**
                     * Constructs a new ListGlobalForwardingRulesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListGlobalForwardingRulesRequest);

                    /** ListGlobalForwardingRulesRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalForwardingRulesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalForwardingRulesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalForwardingRulesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalForwardingRulesRequest project. */
                    public project: string;

                    /** ListGlobalForwardingRulesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalForwardingRulesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalForwardingRulesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListGlobalForwardingRulesRequest): google.cloud.compute.v1beta.ListGlobalForwardingRulesRequest;

                    /**
                     * Encodes the specified ListGlobalForwardingRulesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalForwardingRulesRequest.verify|verify} messages.
                     * @param message ListGlobalForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListGlobalForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalForwardingRulesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalForwardingRulesRequest.verify|verify} messages.
                     * @param message ListGlobalForwardingRulesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListGlobalForwardingRulesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalForwardingRulesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListGlobalForwardingRulesRequest;

                    /**
                     * Decodes a ListGlobalForwardingRulesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalForwardingRulesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListGlobalForwardingRulesRequest;

                    /**
                     * Verifies a ListGlobalForwardingRulesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalForwardingRulesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalForwardingRulesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListGlobalForwardingRulesRequest;

                    /**
                     * Creates a plain object from a ListGlobalForwardingRulesRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalForwardingRulesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListGlobalForwardingRulesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalForwardingRulesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalForwardingRulesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalNetworkEndpointGroupsRequest. */
                interface IListGlobalNetworkEndpointGroupsRequest {

                    /** ListGlobalNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalNetworkEndpointGroupsRequest. */
                class ListGlobalNetworkEndpointGroupsRequest implements IListGlobalNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListGlobalNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListGlobalNetworkEndpointGroupsRequest);

                    /** ListGlobalNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListGlobalNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListGlobalNetworkEndpointGroupsRequest): google.cloud.compute.v1beta.ListGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListGlobalNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListGlobalNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListGlobalNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListGlobalNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListGlobalNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListGlobalNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListGlobalNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListGlobalNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListGlobalNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalOperationsRequest. */
                interface IListGlobalOperationsRequest {

                    /** ListGlobalOperationsRequest filter */
                    filter?: (string|null);

                    /** ListGlobalOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalOperationsRequest project */
                    project?: (string|null);

                    /** ListGlobalOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalOperationsRequest. */
                class ListGlobalOperationsRequest implements IListGlobalOperationsRequest {

                    /**
                     * Constructs a new ListGlobalOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListGlobalOperationsRequest);

                    /** ListGlobalOperationsRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalOperationsRequest project. */
                    public project: string;

                    /** ListGlobalOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListGlobalOperationsRequest): google.cloud.compute.v1beta.ListGlobalOperationsRequest;

                    /**
                     * Encodes the specified ListGlobalOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalOperationsRequest.verify|verify} messages.
                     * @param message ListGlobalOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListGlobalOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalOperationsRequest.verify|verify} messages.
                     * @param message ListGlobalOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListGlobalOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListGlobalOperationsRequest;

                    /**
                     * Decodes a ListGlobalOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListGlobalOperationsRequest;

                    /**
                     * Verifies a ListGlobalOperationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListGlobalOperationsRequest;

                    /**
                     * Creates a plain object from a ListGlobalOperationsRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListGlobalOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalOrganizationOperationsRequest. */
                interface IListGlobalOrganizationOperationsRequest {

                    /** ListGlobalOrganizationOperationsRequest filter */
                    filter?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalOrganizationOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest parentId */
                    parentId?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalOrganizationOperationsRequest. */
                class ListGlobalOrganizationOperationsRequest implements IListGlobalOrganizationOperationsRequest {

                    /**
                     * Constructs a new ListGlobalOrganizationOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListGlobalOrganizationOperationsRequest);

                    /** ListGlobalOrganizationOperationsRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalOrganizationOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest parentId. */
                    public parentId?: (string|null);

                    /** ListGlobalOrganizationOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalOrganizationOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalOrganizationOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListGlobalOrganizationOperationsRequest): google.cloud.compute.v1beta.ListGlobalOrganizationOperationsRequest;

                    /**
                     * Encodes the specified ListGlobalOrganizationOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalOrganizationOperationsRequest.verify|verify} messages.
                     * @param message ListGlobalOrganizationOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListGlobalOrganizationOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalOrganizationOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalOrganizationOperationsRequest.verify|verify} messages.
                     * @param message ListGlobalOrganizationOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListGlobalOrganizationOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalOrganizationOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalOrganizationOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListGlobalOrganizationOperationsRequest;

                    /**
                     * Decodes a ListGlobalOrganizationOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalOrganizationOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListGlobalOrganizationOperationsRequest;

                    /**
                     * Verifies a ListGlobalOrganizationOperationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalOrganizationOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalOrganizationOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListGlobalOrganizationOperationsRequest;

                    /**
                     * Creates a plain object from a ListGlobalOrganizationOperationsRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalOrganizationOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListGlobalOrganizationOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalOrganizationOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalOrganizationOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalPublicDelegatedPrefixesRequest. */
                interface IListGlobalPublicDelegatedPrefixesRequest {

                    /** ListGlobalPublicDelegatedPrefixesRequest filter */
                    filter?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest project */
                    project?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalPublicDelegatedPrefixesRequest. */
                class ListGlobalPublicDelegatedPrefixesRequest implements IListGlobalPublicDelegatedPrefixesRequest {

                    /**
                     * Constructs a new ListGlobalPublicDelegatedPrefixesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListGlobalPublicDelegatedPrefixesRequest);

                    /** ListGlobalPublicDelegatedPrefixesRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalPublicDelegatedPrefixesRequest project. */
                    public project: string;

                    /** ListGlobalPublicDelegatedPrefixesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalPublicDelegatedPrefixesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalPublicDelegatedPrefixesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListGlobalPublicDelegatedPrefixesRequest): google.cloud.compute.v1beta.ListGlobalPublicDelegatedPrefixesRequest;

                    /**
                     * Encodes the specified ListGlobalPublicDelegatedPrefixesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message ListGlobalPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListGlobalPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalPublicDelegatedPrefixesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message ListGlobalPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListGlobalPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalPublicDelegatedPrefixesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListGlobalPublicDelegatedPrefixesRequest;

                    /**
                     * Decodes a ListGlobalPublicDelegatedPrefixesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListGlobalPublicDelegatedPrefixesRequest;

                    /**
                     * Verifies a ListGlobalPublicDelegatedPrefixesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalPublicDelegatedPrefixesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalPublicDelegatedPrefixesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListGlobalPublicDelegatedPrefixesRequest;

                    /**
                     * Creates a plain object from a ListGlobalPublicDelegatedPrefixesRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalPublicDelegatedPrefixesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListGlobalPublicDelegatedPrefixesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalPublicDelegatedPrefixesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalPublicDelegatedPrefixesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListGlobalVmExtensionPoliciesRequest. */
                interface IListGlobalVmExtensionPoliciesRequest {

                    /** ListGlobalVmExtensionPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListGlobalVmExtensionPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListGlobalVmExtensionPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListGlobalVmExtensionPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListGlobalVmExtensionPoliciesRequest project */
                    project?: (string|null);

                    /** ListGlobalVmExtensionPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListGlobalVmExtensionPoliciesRequest. */
                class ListGlobalVmExtensionPoliciesRequest implements IListGlobalVmExtensionPoliciesRequest {

                    /**
                     * Constructs a new ListGlobalVmExtensionPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListGlobalVmExtensionPoliciesRequest);

                    /** ListGlobalVmExtensionPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListGlobalVmExtensionPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListGlobalVmExtensionPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListGlobalVmExtensionPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListGlobalVmExtensionPoliciesRequest project. */
                    public project: string;

                    /** ListGlobalVmExtensionPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListGlobalVmExtensionPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListGlobalVmExtensionPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListGlobalVmExtensionPoliciesRequest): google.cloud.compute.v1beta.ListGlobalVmExtensionPoliciesRequest;

                    /**
                     * Encodes the specified ListGlobalVmExtensionPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalVmExtensionPoliciesRequest.verify|verify} messages.
                     * @param message ListGlobalVmExtensionPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListGlobalVmExtensionPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListGlobalVmExtensionPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListGlobalVmExtensionPoliciesRequest.verify|verify} messages.
                     * @param message ListGlobalVmExtensionPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListGlobalVmExtensionPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListGlobalVmExtensionPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListGlobalVmExtensionPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListGlobalVmExtensionPoliciesRequest;

                    /**
                     * Decodes a ListGlobalVmExtensionPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListGlobalVmExtensionPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListGlobalVmExtensionPoliciesRequest;

                    /**
                     * Verifies a ListGlobalVmExtensionPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListGlobalVmExtensionPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListGlobalVmExtensionPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListGlobalVmExtensionPoliciesRequest;

                    /**
                     * Creates a plain object from a ListGlobalVmExtensionPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListGlobalVmExtensionPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListGlobalVmExtensionPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListGlobalVmExtensionPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListGlobalVmExtensionPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListHealthChecksRequest. */
                interface IListHealthChecksRequest {

                    /** ListHealthChecksRequest filter */
                    filter?: (string|null);

                    /** ListHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListHealthChecksRequest project */
                    project?: (string|null);

                    /** ListHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListHealthChecksRequest. */
                class ListHealthChecksRequest implements IListHealthChecksRequest {

                    /**
                     * Constructs a new ListHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListHealthChecksRequest);

                    /** ListHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** ListHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListHealthChecksRequest project. */
                    public project: string;

                    /** ListHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListHealthChecksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListHealthChecksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListHealthChecksRequest): google.cloud.compute.v1beta.ListHealthChecksRequest;

                    /**
                     * Encodes the specified ListHealthChecksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListHealthChecksRequest.verify|verify} messages.
                     * @param message ListHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListHealthChecksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListHealthChecksRequest.verify|verify} messages.
                     * @param message ListHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListHealthChecksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListHealthChecksRequest;

                    /**
                     * Decodes a ListHealthChecksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListHealthChecksRequest;

                    /**
                     * Verifies a ListHealthChecksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListHealthChecksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListHealthChecksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListHealthChecksRequest;

                    /**
                     * Creates a plain object from a ListHealthChecksRequest message. Also converts values to other types if specified.
                     * @param message ListHealthChecksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListHealthChecksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListHealthChecksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListHealthChecksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListImagesRequest. */
                interface IListImagesRequest {

                    /** ListImagesRequest filter */
                    filter?: (string|null);

                    /** ListImagesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListImagesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListImagesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListImagesRequest project */
                    project?: (string|null);

                    /** ListImagesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListImagesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListImagesRequest. */
                class ListImagesRequest implements IListImagesRequest {

                    /**
                     * Constructs a new ListImagesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListImagesRequest);

                    /** ListImagesRequest filter. */
                    public filter?: (string|null);

                    /** ListImagesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListImagesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListImagesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListImagesRequest project. */
                    public project: string;

                    /** ListImagesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListImagesRequest zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new ListImagesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListImagesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListImagesRequest): google.cloud.compute.v1beta.ListImagesRequest;

                    /**
                     * Encodes the specified ListImagesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListImagesRequest.verify|verify} messages.
                     * @param message ListImagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListImagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListImagesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListImagesRequest.verify|verify} messages.
                     * @param message ListImagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListImagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListImagesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListImagesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListImagesRequest;

                    /**
                     * Decodes a ListImagesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListImagesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListImagesRequest;

                    /**
                     * Verifies a ListImagesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListImagesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListImagesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListImagesRequest;

                    /**
                     * Creates a plain object from a ListImagesRequest message. Also converts values to other types if specified.
                     * @param message ListImagesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListImagesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListImagesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListImagesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstanceGroupManagerResizeRequestsRequest. */
                interface IListInstanceGroupManagerResizeRequestsRequest {

                    /** ListInstanceGroupManagerResizeRequestsRequest filter */
                    filter?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest project */
                    project?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstanceGroupManagerResizeRequestsRequest. */
                class ListInstanceGroupManagerResizeRequestsRequest implements IListInstanceGroupManagerResizeRequestsRequest {

                    /**
                     * Constructs a new ListInstanceGroupManagerResizeRequestsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstanceGroupManagerResizeRequestsRequest);

                    /** ListInstanceGroupManagerResizeRequestsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListInstanceGroupManagerResizeRequestsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest project. */
                    public project: string;

                    /** ListInstanceGroupManagerResizeRequestsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupManagerResizeRequestsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstanceGroupManagerResizeRequestsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstanceGroupManagerResizeRequestsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstanceGroupManagerResizeRequestsRequest): google.cloud.compute.v1beta.ListInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Encodes the specified ListInstanceGroupManagerResizeRequestsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstanceGroupManagerResizeRequestsRequest.verify|verify} messages.
                     * @param message ListInstanceGroupManagerResizeRequestsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstanceGroupManagerResizeRequestsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstanceGroupManagerResizeRequestsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstanceGroupManagerResizeRequestsRequest.verify|verify} messages.
                     * @param message ListInstanceGroupManagerResizeRequestsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstanceGroupManagerResizeRequestsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstanceGroupManagerResizeRequestsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstanceGroupManagerResizeRequestsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Decodes a ListInstanceGroupManagerResizeRequestsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstanceGroupManagerResizeRequestsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Verifies a ListInstanceGroupManagerResizeRequestsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstanceGroupManagerResizeRequestsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstanceGroupManagerResizeRequestsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Creates a plain object from a ListInstanceGroupManagerResizeRequestsRequest message. Also converts values to other types if specified.
                     * @param message ListInstanceGroupManagerResizeRequestsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstanceGroupManagerResizeRequestsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstanceGroupManagerResizeRequestsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstanceGroupManagerResizeRequestsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstanceGroupManagersRequest. */
                interface IListInstanceGroupManagersRequest {

                    /** ListInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupManagersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstanceGroupManagersRequest. */
                class ListInstanceGroupManagersRequest implements IListInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstanceGroupManagersRequest);

                    /** ListInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupManagersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstanceGroupManagersRequest): google.cloud.compute.v1beta.ListInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstanceGroupsRequest. */
                interface IListInstanceGroupsRequest {

                    /** ListInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstanceGroupsRequest project */
                    project?: (string|null);

                    /** ListInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstanceGroupsRequest. */
                class ListInstanceGroupsRequest implements IListInstanceGroupsRequest {

                    /**
                     * Constructs a new ListInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstanceGroupsRequest);

                    /** ListInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstanceGroupsRequest project. */
                    public project: string;

                    /** ListInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstanceGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstanceGroupsRequest): google.cloud.compute.v1beta.ListInstanceGroupsRequest;

                    /**
                     * Encodes the specified ListInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstanceGroupsRequest;

                    /**
                     * Decodes a ListInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstanceGroupsRequest;

                    /**
                     * Verifies a ListInstanceGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstanceGroupsRequest;

                    /**
                     * Creates a plain object from a ListInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstanceTemplatesRequest. */
                interface IListInstanceTemplatesRequest {

                    /** ListInstanceTemplatesRequest filter */
                    filter?: (string|null);

                    /** ListInstanceTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstanceTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstanceTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstanceTemplatesRequest project */
                    project?: (string|null);

                    /** ListInstanceTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstanceTemplatesRequest view */
                    view?: (string|null);
                }

                /** Represents a ListInstanceTemplatesRequest. */
                class ListInstanceTemplatesRequest implements IListInstanceTemplatesRequest {

                    /**
                     * Constructs a new ListInstanceTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstanceTemplatesRequest);

                    /** ListInstanceTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** ListInstanceTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstanceTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstanceTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstanceTemplatesRequest project. */
                    public project: string;

                    /** ListInstanceTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstanceTemplatesRequest view. */
                    public view?: (string|null);

                    /**
                     * Creates a new ListInstanceTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstanceTemplatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstanceTemplatesRequest): google.cloud.compute.v1beta.ListInstanceTemplatesRequest;

                    /**
                     * Encodes the specified ListInstanceTemplatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstanceTemplatesRequest.verify|verify} messages.
                     * @param message ListInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstanceTemplatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstanceTemplatesRequest.verify|verify} messages.
                     * @param message ListInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstanceTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstanceTemplatesRequest;

                    /**
                     * Decodes a ListInstanceTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstanceTemplatesRequest;

                    /**
                     * Verifies a ListInstanceTemplatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstanceTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstanceTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstanceTemplatesRequest;

                    /**
                     * Creates a plain object from a ListInstanceTemplatesRequest message. Also converts values to other types if specified.
                     * @param message ListInstanceTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstanceTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstanceTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstanceTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListInstanceTemplatesRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        BASIC = 62970894,
                        FULL = 2169487,
                        INSTANCE_VIEW_UNSPECIFIED = 8444647
                    }
                }

                /** Properties of a ListInstancesInstanceGroupsRequest. */
                interface IListInstancesInstanceGroupsRequest {

                    /** ListInstancesInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInstancesInstanceGroupsRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** ListInstancesInstanceGroupsRequest instanceGroupsListInstancesRequestResource */
                    instanceGroupsListInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupsListInstancesRequest|null);

                    /** ListInstancesInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstancesInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstancesInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstancesInstanceGroupsRequest project */
                    project?: (string|null);

                    /** ListInstancesInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstancesInstanceGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstancesInstanceGroupsRequest. */
                class ListInstancesInstanceGroupsRequest implements IListInstancesInstanceGroupsRequest {

                    /**
                     * Constructs a new ListInstancesInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstancesInstanceGroupsRequest);

                    /** ListInstancesInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstancesInstanceGroupsRequest instanceGroup. */
                    public instanceGroup: string;

                    /** ListInstancesInstanceGroupsRequest instanceGroupsListInstancesRequestResource. */
                    public instanceGroupsListInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupsListInstancesRequest|null);

                    /** ListInstancesInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstancesInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstancesInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstancesInstanceGroupsRequest project. */
                    public project: string;

                    /** ListInstancesInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstancesInstanceGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstancesInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstancesInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstancesInstanceGroupsRequest): google.cloud.compute.v1beta.ListInstancesInstanceGroupsRequest;

                    /**
                     * Encodes the specified ListInstancesInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstancesInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstancesInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstancesInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstancesInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstancesInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstancesInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstancesInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstancesInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstancesInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstancesInstanceGroupsRequest;

                    /**
                     * Decodes a ListInstancesInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstancesInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstancesInstanceGroupsRequest;

                    /**
                     * Verifies a ListInstancesInstanceGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstancesInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstancesInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstancesInstanceGroupsRequest;

                    /**
                     * Creates a plain object from a ListInstancesInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInstancesInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstancesInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstancesInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstancesInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstancesRegionInstanceGroupsRequest. */
                interface IListInstancesRegionInstanceGroupsRequest {

                    /** ListInstancesRegionInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstancesRegionInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest project */
                    project?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest region */
                    region?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest regionInstanceGroupsListInstancesRequestResource */
                    regionInstanceGroupsListInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupsListInstancesRequest|null);

                    /** ListInstancesRegionInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInstancesRegionInstanceGroupsRequest. */
                class ListInstancesRegionInstanceGroupsRequest implements IListInstancesRegionInstanceGroupsRequest {

                    /**
                     * Constructs a new ListInstancesRegionInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstancesRegionInstanceGroupsRequest);

                    /** ListInstancesRegionInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest instanceGroup. */
                    public instanceGroup: string;

                    /** ListInstancesRegionInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstancesRegionInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstancesRegionInstanceGroupsRequest project. */
                    public project: string;

                    /** ListInstancesRegionInstanceGroupsRequest region. */
                    public region: string;

                    /** ListInstancesRegionInstanceGroupsRequest regionInstanceGroupsListInstancesRequestResource. */
                    public regionInstanceGroupsListInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupsListInstancesRequest|null);

                    /** ListInstancesRegionInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInstancesRegionInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstancesRegionInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstancesRegionInstanceGroupsRequest): google.cloud.compute.v1beta.ListInstancesRegionInstanceGroupsRequest;

                    /**
                     * Encodes the specified ListInstancesRegionInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstancesRegionInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstancesRegionInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstancesRegionInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstancesRegionInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstancesRegionInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListInstancesRegionInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstancesRegionInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstancesRegionInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstancesRegionInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstancesRegionInstanceGroupsRequest;

                    /**
                     * Decodes a ListInstancesRegionInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstancesRegionInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstancesRegionInstanceGroupsRequest;

                    /**
                     * Verifies a ListInstancesRegionInstanceGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstancesRegionInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstancesRegionInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstancesRegionInstanceGroupsRequest;

                    /**
                     * Creates a plain object from a ListInstancesRegionInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInstancesRegionInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstancesRegionInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstancesRegionInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstancesRegionInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstancesRequest. */
                interface IListInstancesRequest {

                    /** ListInstancesRequest filter */
                    filter?: (string|null);

                    /** ListInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstancesRequest project */
                    project?: (string|null);

                    /** ListInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstancesRequest view */
                    view?: (string|null);

                    /** ListInstancesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstancesRequest. */
                class ListInstancesRequest implements IListInstancesRequest {

                    /**
                     * Constructs a new ListInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstancesRequest);

                    /** ListInstancesRequest filter. */
                    public filter?: (string|null);

                    /** ListInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstancesRequest project. */
                    public project: string;

                    /** ListInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstancesRequest view. */
                    public view?: (string|null);

                    /** ListInstancesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstancesRequest): google.cloud.compute.v1beta.ListInstancesRequest;

                    /**
                     * Encodes the specified ListInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstancesRequest.verify|verify} messages.
                     * @param message ListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstancesRequest.verify|verify} messages.
                     * @param message ListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstancesRequest;

                    /**
                     * Decodes a ListInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstancesRequest;

                    /**
                     * Verifies a ListInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstancesRequest;

                    /**
                     * Creates a plain object from a ListInstancesRequest message. Also converts values to other types if specified.
                     * @param message ListInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListInstancesRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        BASIC = 62970894,
                        FULL = 2169487,
                        INSTANCE_VIEW_UNSPECIFIED = 8444647
                    }
                }

                /** Properties of a ListInstantSnapshotGroups. */
                interface IListInstantSnapshotGroups {

                    /** ListInstantSnapshotGroups etag */
                    etag?: (string|null);

                    /** ListInstantSnapshotGroups id */
                    id?: (string|null);

                    /** ListInstantSnapshotGroups items */
                    items?: (google.cloud.compute.v1beta.IInstantSnapshotGroup[]|null);

                    /** ListInstantSnapshotGroups kind */
                    kind?: (string|null);

                    /** ListInstantSnapshotGroups nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListInstantSnapshotGroups selfLink */
                    selfLink?: (string|null);

                    /** ListInstantSnapshotGroups unreachables */
                    unreachables?: (string[]|null);

                    /** ListInstantSnapshotGroups warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ListInstantSnapshotGroups. */
                class ListInstantSnapshotGroups implements IListInstantSnapshotGroups {

                    /**
                     * Constructs a new ListInstantSnapshotGroups.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstantSnapshotGroups);

                    /** ListInstantSnapshotGroups etag. */
                    public etag?: (string|null);

                    /** ListInstantSnapshotGroups id. */
                    public id?: (string|null);

                    /** ListInstantSnapshotGroups items. */
                    public items: google.cloud.compute.v1beta.IInstantSnapshotGroup[];

                    /** ListInstantSnapshotGroups kind. */
                    public kind?: (string|null);

                    /** ListInstantSnapshotGroups nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ListInstantSnapshotGroups selfLink. */
                    public selfLink?: (string|null);

                    /** ListInstantSnapshotGroups unreachables. */
                    public unreachables: string[];

                    /** ListInstantSnapshotGroups warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ListInstantSnapshotGroups instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstantSnapshotGroups instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstantSnapshotGroups): google.cloud.compute.v1beta.ListInstantSnapshotGroups;

                    /**
                     * Encodes the specified ListInstantSnapshotGroups message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstantSnapshotGroups.verify|verify} messages.
                     * @param message ListInstantSnapshotGroups message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstantSnapshotGroups, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstantSnapshotGroups message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstantSnapshotGroups.verify|verify} messages.
                     * @param message ListInstantSnapshotGroups message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstantSnapshotGroups, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstantSnapshotGroups message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstantSnapshotGroups
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstantSnapshotGroups;

                    /**
                     * Decodes a ListInstantSnapshotGroups message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstantSnapshotGroups
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstantSnapshotGroups;

                    /**
                     * Verifies a ListInstantSnapshotGroups message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstantSnapshotGroups message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstantSnapshotGroups
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstantSnapshotGroups;

                    /**
                     * Creates a plain object from a ListInstantSnapshotGroups message. Also converts values to other types if specified.
                     * @param message ListInstantSnapshotGroups
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstantSnapshotGroups, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstantSnapshotGroups to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstantSnapshotGroups
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstantSnapshotGroupsRequest. */
                interface IListInstantSnapshotGroupsRequest {

                    /** ListInstantSnapshotGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInstantSnapshotGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstantSnapshotGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstantSnapshotGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstantSnapshotGroupsRequest project */
                    project?: (string|null);

                    /** ListInstantSnapshotGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstantSnapshotGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstantSnapshotGroupsRequest. */
                class ListInstantSnapshotGroupsRequest implements IListInstantSnapshotGroupsRequest {

                    /**
                     * Constructs a new ListInstantSnapshotGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstantSnapshotGroupsRequest);

                    /** ListInstantSnapshotGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstantSnapshotGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstantSnapshotGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstantSnapshotGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstantSnapshotGroupsRequest project. */
                    public project: string;

                    /** ListInstantSnapshotGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstantSnapshotGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstantSnapshotGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstantSnapshotGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstantSnapshotGroupsRequest): google.cloud.compute.v1beta.ListInstantSnapshotGroupsRequest;

                    /**
                     * Encodes the specified ListInstantSnapshotGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstantSnapshotGroupsRequest.verify|verify} messages.
                     * @param message ListInstantSnapshotGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstantSnapshotGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstantSnapshotGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstantSnapshotGroupsRequest.verify|verify} messages.
                     * @param message ListInstantSnapshotGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstantSnapshotGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstantSnapshotGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstantSnapshotGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstantSnapshotGroupsRequest;

                    /**
                     * Decodes a ListInstantSnapshotGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstantSnapshotGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstantSnapshotGroupsRequest;

                    /**
                     * Verifies a ListInstantSnapshotGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstantSnapshotGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstantSnapshotGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstantSnapshotGroupsRequest;

                    /**
                     * Creates a plain object from a ListInstantSnapshotGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInstantSnapshotGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstantSnapshotGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstantSnapshotGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstantSnapshotGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInstantSnapshotsRequest. */
                interface IListInstantSnapshotsRequest {

                    /** ListInstantSnapshotsRequest filter */
                    filter?: (string|null);

                    /** ListInstantSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInstantSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInstantSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInstantSnapshotsRequest project */
                    project?: (string|null);

                    /** ListInstantSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListInstantSnapshotsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListInstantSnapshotsRequest. */
                class ListInstantSnapshotsRequest implements IListInstantSnapshotsRequest {

                    /**
                     * Constructs a new ListInstantSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInstantSnapshotsRequest);

                    /** ListInstantSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** ListInstantSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInstantSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInstantSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInstantSnapshotsRequest project. */
                    public project: string;

                    /** ListInstantSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListInstantSnapshotsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListInstantSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInstantSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInstantSnapshotsRequest): google.cloud.compute.v1beta.ListInstantSnapshotsRequest;

                    /**
                     * Encodes the specified ListInstantSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInstantSnapshotsRequest.verify|verify} messages.
                     * @param message ListInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInstantSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInstantSnapshotsRequest.verify|verify} messages.
                     * @param message ListInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInstantSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInstantSnapshotsRequest;

                    /**
                     * Decodes a ListInstantSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInstantSnapshotsRequest;

                    /**
                     * Verifies a ListInstantSnapshotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInstantSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInstantSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInstantSnapshotsRequest;

                    /**
                     * Creates a plain object from a ListInstantSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message ListInstantSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInstantSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInstantSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInstantSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectAttachmentGroupsRequest. */
                interface IListInterconnectAttachmentGroupsRequest {

                    /** ListInterconnectAttachmentGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectAttachmentGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest project */
                    project?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectAttachmentGroupsRequest. */
                class ListInterconnectAttachmentGroupsRequest implements IListInterconnectAttachmentGroupsRequest {

                    /**
                     * Constructs a new ListInterconnectAttachmentGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInterconnectAttachmentGroupsRequest);

                    /** ListInterconnectAttachmentGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectAttachmentGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectAttachmentGroupsRequest project. */
                    public project: string;

                    /** ListInterconnectAttachmentGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectAttachmentGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectAttachmentGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInterconnectAttachmentGroupsRequest): google.cloud.compute.v1beta.ListInterconnectAttachmentGroupsRequest;

                    /**
                     * Encodes the specified ListInterconnectAttachmentGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectAttachmentGroupsRequest.verify|verify} messages.
                     * @param message ListInterconnectAttachmentGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInterconnectAttachmentGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectAttachmentGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectAttachmentGroupsRequest.verify|verify} messages.
                     * @param message ListInterconnectAttachmentGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInterconnectAttachmentGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectAttachmentGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectAttachmentGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInterconnectAttachmentGroupsRequest;

                    /**
                     * Decodes a ListInterconnectAttachmentGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectAttachmentGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInterconnectAttachmentGroupsRequest;

                    /**
                     * Verifies a ListInterconnectAttachmentGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectAttachmentGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectAttachmentGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInterconnectAttachmentGroupsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectAttachmentGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectAttachmentGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInterconnectAttachmentGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectAttachmentGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectAttachmentGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectAttachmentsRequest. */
                interface IListInterconnectAttachmentsRequest {

                    /** ListInterconnectAttachmentsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectAttachmentsRequest project */
                    project?: (string|null);

                    /** ListInterconnectAttachmentsRequest region */
                    region?: (string|null);

                    /** ListInterconnectAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectAttachmentsRequest. */
                class ListInterconnectAttachmentsRequest implements IListInterconnectAttachmentsRequest {

                    /**
                     * Constructs a new ListInterconnectAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInterconnectAttachmentsRequest);

                    /** ListInterconnectAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectAttachmentsRequest project. */
                    public project: string;

                    /** ListInterconnectAttachmentsRequest region. */
                    public region: string;

                    /** ListInterconnectAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInterconnectAttachmentsRequest): google.cloud.compute.v1beta.ListInterconnectAttachmentsRequest;

                    /**
                     * Encodes the specified ListInterconnectAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectAttachmentsRequest.verify|verify} messages.
                     * @param message ListInterconnectAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInterconnectAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectAttachmentsRequest.verify|verify} messages.
                     * @param message ListInterconnectAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInterconnectAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInterconnectAttachmentsRequest;

                    /**
                     * Decodes a ListInterconnectAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInterconnectAttachmentsRequest;

                    /**
                     * Verifies a ListInterconnectAttachmentsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInterconnectAttachmentsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInterconnectAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectGroupsRequest. */
                interface IListInterconnectGroupsRequest {

                    /** ListInterconnectGroupsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectGroupsRequest project */
                    project?: (string|null);

                    /** ListInterconnectGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectGroupsRequest. */
                class ListInterconnectGroupsRequest implements IListInterconnectGroupsRequest {

                    /**
                     * Constructs a new ListInterconnectGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInterconnectGroupsRequest);

                    /** ListInterconnectGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectGroupsRequest project. */
                    public project: string;

                    /** ListInterconnectGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInterconnectGroupsRequest): google.cloud.compute.v1beta.ListInterconnectGroupsRequest;

                    /**
                     * Encodes the specified ListInterconnectGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectGroupsRequest.verify|verify} messages.
                     * @param message ListInterconnectGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInterconnectGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectGroupsRequest.verify|verify} messages.
                     * @param message ListInterconnectGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInterconnectGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInterconnectGroupsRequest;

                    /**
                     * Decodes a ListInterconnectGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInterconnectGroupsRequest;

                    /**
                     * Verifies a ListInterconnectGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInterconnectGroupsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInterconnectGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectLocationsRequest. */
                interface IListInterconnectLocationsRequest {

                    /** ListInterconnectLocationsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectLocationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectLocationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectLocationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectLocationsRequest project */
                    project?: (string|null);

                    /** ListInterconnectLocationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectLocationsRequest. */
                class ListInterconnectLocationsRequest implements IListInterconnectLocationsRequest {

                    /**
                     * Constructs a new ListInterconnectLocationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInterconnectLocationsRequest);

                    /** ListInterconnectLocationsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectLocationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectLocationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectLocationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectLocationsRequest project. */
                    public project: string;

                    /** ListInterconnectLocationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectLocationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectLocationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInterconnectLocationsRequest): google.cloud.compute.v1beta.ListInterconnectLocationsRequest;

                    /**
                     * Encodes the specified ListInterconnectLocationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectLocationsRequest.verify|verify} messages.
                     * @param message ListInterconnectLocationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInterconnectLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectLocationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectLocationsRequest.verify|verify} messages.
                     * @param message ListInterconnectLocationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInterconnectLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectLocationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectLocationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInterconnectLocationsRequest;

                    /**
                     * Decodes a ListInterconnectLocationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectLocationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInterconnectLocationsRequest;

                    /**
                     * Verifies a ListInterconnectLocationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectLocationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectLocationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInterconnectLocationsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectLocationsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectLocationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInterconnectLocationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectLocationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectLocationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectRemoteLocationsRequest. */
                interface IListInterconnectRemoteLocationsRequest {

                    /** ListInterconnectRemoteLocationsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectRemoteLocationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest project */
                    project?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectRemoteLocationsRequest. */
                class ListInterconnectRemoteLocationsRequest implements IListInterconnectRemoteLocationsRequest {

                    /**
                     * Constructs a new ListInterconnectRemoteLocationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInterconnectRemoteLocationsRequest);

                    /** ListInterconnectRemoteLocationsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectRemoteLocationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectRemoteLocationsRequest project. */
                    public project: string;

                    /** ListInterconnectRemoteLocationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectRemoteLocationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectRemoteLocationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInterconnectRemoteLocationsRequest): google.cloud.compute.v1beta.ListInterconnectRemoteLocationsRequest;

                    /**
                     * Encodes the specified ListInterconnectRemoteLocationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectRemoteLocationsRequest.verify|verify} messages.
                     * @param message ListInterconnectRemoteLocationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInterconnectRemoteLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectRemoteLocationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectRemoteLocationsRequest.verify|verify} messages.
                     * @param message ListInterconnectRemoteLocationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInterconnectRemoteLocationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectRemoteLocationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectRemoteLocationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInterconnectRemoteLocationsRequest;

                    /**
                     * Decodes a ListInterconnectRemoteLocationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectRemoteLocationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInterconnectRemoteLocationsRequest;

                    /**
                     * Verifies a ListInterconnectRemoteLocationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectRemoteLocationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectRemoteLocationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInterconnectRemoteLocationsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectRemoteLocationsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectRemoteLocationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInterconnectRemoteLocationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectRemoteLocationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectRemoteLocationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInterconnectsRequest. */
                interface IListInterconnectsRequest {

                    /** ListInterconnectsRequest filter */
                    filter?: (string|null);

                    /** ListInterconnectsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListInterconnectsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInterconnectsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInterconnectsRequest project */
                    project?: (string|null);

                    /** ListInterconnectsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListInterconnectsRequest. */
                class ListInterconnectsRequest implements IListInterconnectsRequest {

                    /**
                     * Constructs a new ListInterconnectsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListInterconnectsRequest);

                    /** ListInterconnectsRequest filter. */
                    public filter?: (string|null);

                    /** ListInterconnectsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListInterconnectsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListInterconnectsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListInterconnectsRequest project. */
                    public project: string;

                    /** ListInterconnectsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListInterconnectsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInterconnectsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListInterconnectsRequest): google.cloud.compute.v1beta.ListInterconnectsRequest;

                    /**
                     * Encodes the specified ListInterconnectsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectsRequest.verify|verify} messages.
                     * @param message ListInterconnectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListInterconnectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInterconnectsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListInterconnectsRequest.verify|verify} messages.
                     * @param message ListInterconnectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListInterconnectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInterconnectsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInterconnectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListInterconnectsRequest;

                    /**
                     * Decodes a ListInterconnectsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInterconnectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListInterconnectsRequest;

                    /**
                     * Verifies a ListInterconnectsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInterconnectsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInterconnectsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListInterconnectsRequest;

                    /**
                     * Creates a plain object from a ListInterconnectsRequest message. Also converts values to other types if specified.
                     * @param message ListInterconnectsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListInterconnectsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInterconnectsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInterconnectsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListLicensesRequest. */
                interface IListLicensesRequest {

                    /** ListLicensesRequest filter */
                    filter?: (string|null);

                    /** ListLicensesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListLicensesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListLicensesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListLicensesRequest project */
                    project?: (string|null);

                    /** ListLicensesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListLicensesRequest. */
                class ListLicensesRequest implements IListLicensesRequest {

                    /**
                     * Constructs a new ListLicensesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListLicensesRequest);

                    /** ListLicensesRequest filter. */
                    public filter?: (string|null);

                    /** ListLicensesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListLicensesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListLicensesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListLicensesRequest project. */
                    public project: string;

                    /** ListLicensesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListLicensesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListLicensesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListLicensesRequest): google.cloud.compute.v1beta.ListLicensesRequest;

                    /**
                     * Encodes the specified ListLicensesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListLicensesRequest.verify|verify} messages.
                     * @param message ListLicensesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListLicensesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListLicensesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListLicensesRequest.verify|verify} messages.
                     * @param message ListLicensesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListLicensesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListLicensesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListLicensesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListLicensesRequest;

                    /**
                     * Decodes a ListLicensesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListLicensesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListLicensesRequest;

                    /**
                     * Verifies a ListLicensesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListLicensesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListLicensesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListLicensesRequest;

                    /**
                     * Creates a plain object from a ListLicensesRequest message. Also converts values to other types if specified.
                     * @param message ListLicensesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListLicensesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListLicensesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListLicensesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListMachineImagesRequest. */
                interface IListMachineImagesRequest {

                    /** ListMachineImagesRequest filter */
                    filter?: (string|null);

                    /** ListMachineImagesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListMachineImagesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListMachineImagesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListMachineImagesRequest project */
                    project?: (string|null);

                    /** ListMachineImagesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListMachineImagesRequest. */
                class ListMachineImagesRequest implements IListMachineImagesRequest {

                    /**
                     * Constructs a new ListMachineImagesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListMachineImagesRequest);

                    /** ListMachineImagesRequest filter. */
                    public filter?: (string|null);

                    /** ListMachineImagesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListMachineImagesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListMachineImagesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListMachineImagesRequest project. */
                    public project: string;

                    /** ListMachineImagesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListMachineImagesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListMachineImagesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListMachineImagesRequest): google.cloud.compute.v1beta.ListMachineImagesRequest;

                    /**
                     * Encodes the specified ListMachineImagesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListMachineImagesRequest.verify|verify} messages.
                     * @param message ListMachineImagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListMachineImagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListMachineImagesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListMachineImagesRequest.verify|verify} messages.
                     * @param message ListMachineImagesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListMachineImagesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListMachineImagesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListMachineImagesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListMachineImagesRequest;

                    /**
                     * Decodes a ListMachineImagesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListMachineImagesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListMachineImagesRequest;

                    /**
                     * Verifies a ListMachineImagesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListMachineImagesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListMachineImagesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListMachineImagesRequest;

                    /**
                     * Creates a plain object from a ListMachineImagesRequest message. Also converts values to other types if specified.
                     * @param message ListMachineImagesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListMachineImagesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListMachineImagesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListMachineImagesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListMachineTypesRequest. */
                interface IListMachineTypesRequest {

                    /** ListMachineTypesRequest filter */
                    filter?: (string|null);

                    /** ListMachineTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListMachineTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListMachineTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListMachineTypesRequest project */
                    project?: (string|null);

                    /** ListMachineTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListMachineTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListMachineTypesRequest. */
                class ListMachineTypesRequest implements IListMachineTypesRequest {

                    /**
                     * Constructs a new ListMachineTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListMachineTypesRequest);

                    /** ListMachineTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListMachineTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListMachineTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListMachineTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListMachineTypesRequest project. */
                    public project: string;

                    /** ListMachineTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListMachineTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListMachineTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListMachineTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListMachineTypesRequest): google.cloud.compute.v1beta.ListMachineTypesRequest;

                    /**
                     * Encodes the specified ListMachineTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListMachineTypesRequest.verify|verify} messages.
                     * @param message ListMachineTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListMachineTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListMachineTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListMachineTypesRequest.verify|verify} messages.
                     * @param message ListMachineTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListMachineTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListMachineTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListMachineTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListMachineTypesRequest;

                    /**
                     * Decodes a ListMachineTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListMachineTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListMachineTypesRequest;

                    /**
                     * Verifies a ListMachineTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListMachineTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListMachineTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListMachineTypesRequest;

                    /**
                     * Creates a plain object from a ListMachineTypesRequest message. Also converts values to other types if specified.
                     * @param message ListMachineTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListMachineTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListMachineTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListMachineTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListManagedInstancesInstanceGroupManagersRequest. */
                interface IListManagedInstancesInstanceGroupManagersRequest {

                    /** ListManagedInstancesInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListManagedInstancesInstanceGroupManagersRequest. */
                class ListManagedInstancesInstanceGroupManagersRequest implements IListManagedInstancesInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListManagedInstancesInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListManagedInstancesInstanceGroupManagersRequest);

                    /** ListManagedInstancesInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListManagedInstancesInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListManagedInstancesInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListManagedInstancesInstanceGroupManagersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListManagedInstancesInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListManagedInstancesInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListManagedInstancesInstanceGroupManagersRequest): google.cloud.compute.v1beta.ListManagedInstancesInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListManagedInstancesInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListManagedInstancesInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListManagedInstancesInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListManagedInstancesInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListManagedInstancesInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListManagedInstancesInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListManagedInstancesInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListManagedInstancesInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListManagedInstancesInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListManagedInstancesInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListManagedInstancesInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListManagedInstancesInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListManagedInstancesInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListManagedInstancesInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListManagedInstancesInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListManagedInstancesInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListManagedInstancesInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListManagedInstancesInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListManagedInstancesInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListManagedInstancesInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListManagedInstancesInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListManagedInstancesInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListManagedInstancesInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListManagedInstancesRegionInstanceGroupManagersRequest. */
                interface IListManagedInstancesRegionInstanceGroupManagersRequest {

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest region */
                    region?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListManagedInstancesRegionInstanceGroupManagersRequest. */
                class ListManagedInstancesRegionInstanceGroupManagersRequest implements IListManagedInstancesRegionInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListManagedInstancesRegionInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListManagedInstancesRegionInstanceGroupManagersRequest);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest region. */
                    public region: string;

                    /** ListManagedInstancesRegionInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListManagedInstancesRegionInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListManagedInstancesRegionInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListManagedInstancesRegionInstanceGroupManagersRequest): google.cloud.compute.v1beta.ListManagedInstancesRegionInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListManagedInstancesRegionInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListManagedInstancesRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListManagedInstancesRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListManagedInstancesRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListManagedInstancesRegionInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListManagedInstancesRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListManagedInstancesRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListManagedInstancesRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListManagedInstancesRegionInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListManagedInstancesRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListManagedInstancesRegionInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListManagedInstancesRegionInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListManagedInstancesRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListManagedInstancesRegionInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListManagedInstancesRegionInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListManagedInstancesRegionInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListManagedInstancesRegionInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListManagedInstancesRegionInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListManagedInstancesRegionInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListManagedInstancesRegionInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListManagedInstancesRegionInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListManagedInstancesRegionInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListManagedInstancesRegionInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNamedSetsRoutersRequest. */
                interface IListNamedSetsRoutersRequest {

                    /** ListNamedSetsRoutersRequest filter */
                    filter?: (string|null);

                    /** ListNamedSetsRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNamedSetsRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNamedSetsRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNamedSetsRoutersRequest project */
                    project?: (string|null);

                    /** ListNamedSetsRoutersRequest region */
                    region?: (string|null);

                    /** ListNamedSetsRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNamedSetsRoutersRequest router */
                    router?: (string|null);
                }

                /** Represents a ListNamedSetsRoutersRequest. */
                class ListNamedSetsRoutersRequest implements IListNamedSetsRoutersRequest {

                    /**
                     * Constructs a new ListNamedSetsRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNamedSetsRoutersRequest);

                    /** ListNamedSetsRoutersRequest filter. */
                    public filter?: (string|null);

                    /** ListNamedSetsRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNamedSetsRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNamedSetsRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNamedSetsRoutersRequest project. */
                    public project: string;

                    /** ListNamedSetsRoutersRequest region. */
                    public region: string;

                    /** ListNamedSetsRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNamedSetsRoutersRequest router. */
                    public router: string;

                    /**
                     * Creates a new ListNamedSetsRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNamedSetsRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNamedSetsRoutersRequest): google.cloud.compute.v1beta.ListNamedSetsRoutersRequest;

                    /**
                     * Encodes the specified ListNamedSetsRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNamedSetsRoutersRequest.verify|verify} messages.
                     * @param message ListNamedSetsRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNamedSetsRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNamedSetsRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNamedSetsRoutersRequest.verify|verify} messages.
                     * @param message ListNamedSetsRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNamedSetsRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNamedSetsRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNamedSetsRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNamedSetsRoutersRequest;

                    /**
                     * Decodes a ListNamedSetsRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNamedSetsRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNamedSetsRoutersRequest;

                    /**
                     * Verifies a ListNamedSetsRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNamedSetsRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNamedSetsRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNamedSetsRoutersRequest;

                    /**
                     * Creates a plain object from a ListNamedSetsRoutersRequest message. Also converts values to other types if specified.
                     * @param message ListNamedSetsRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNamedSetsRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNamedSetsRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNamedSetsRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkAttachmentsRequest. */
                interface IListNetworkAttachmentsRequest {

                    /** ListNetworkAttachmentsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkAttachmentsRequest project */
                    project?: (string|null);

                    /** ListNetworkAttachmentsRequest region */
                    region?: (string|null);

                    /** ListNetworkAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkAttachmentsRequest. */
                class ListNetworkAttachmentsRequest implements IListNetworkAttachmentsRequest {

                    /**
                     * Constructs a new ListNetworkAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNetworkAttachmentsRequest);

                    /** ListNetworkAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkAttachmentsRequest project. */
                    public project: string;

                    /** ListNetworkAttachmentsRequest region. */
                    public region: string;

                    /** ListNetworkAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNetworkAttachmentsRequest): google.cloud.compute.v1beta.ListNetworkAttachmentsRequest;

                    /**
                     * Encodes the specified ListNetworkAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkAttachmentsRequest.verify|verify} messages.
                     * @param message ListNetworkAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNetworkAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkAttachmentsRequest.verify|verify} messages.
                     * @param message ListNetworkAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNetworkAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNetworkAttachmentsRequest;

                    /**
                     * Decodes a ListNetworkAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNetworkAttachmentsRequest;

                    /**
                     * Verifies a ListNetworkAttachmentsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNetworkAttachmentsRequest;

                    /**
                     * Creates a plain object from a ListNetworkAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNetworkAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkEndpointGroupsRequest. */
                interface IListNetworkEndpointGroupsRequest {

                    /** ListNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNetworkEndpointGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNetworkEndpointGroupsRequest. */
                class ListNetworkEndpointGroupsRequest implements IListNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNetworkEndpointGroupsRequest);

                    /** ListNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNetworkEndpointGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNetworkEndpointGroupsRequest): google.cloud.compute.v1beta.ListNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest. */
                interface IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest {

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest. */
                class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest implements IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest): google.cloud.compute.v1beta.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkEndpointsNetworkEndpointGroupsRequest. */
                interface IListNetworkEndpointsNetworkEndpointGroupsRequest {

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest networkEndpointGroupsListEndpointsRequestResource */
                    networkEndpointGroupsListEndpointsRequestResource?: (google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequest|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNetworkEndpointsNetworkEndpointGroupsRequest. */
                class ListNetworkEndpointsNetworkEndpointGroupsRequest implements IListNetworkEndpointsNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListNetworkEndpointsNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNetworkEndpointsNetworkEndpointGroupsRequest);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest networkEndpointGroupsListEndpointsRequestResource. */
                    public networkEndpointGroupsListEndpointsRequestResource?: (google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequest|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNetworkEndpointsNetworkEndpointGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNetworkEndpointsNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkEndpointsNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNetworkEndpointsNetworkEndpointGroupsRequest): google.cloud.compute.v1beta.ListNetworkEndpointsNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListNetworkEndpointsNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkEndpointsNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNetworkEndpointsNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkEndpointsNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkEndpointsNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNetworkEndpointsNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkEndpointsNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkEndpointsNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNetworkEndpointsNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListNetworkEndpointsNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkEndpointsNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNetworkEndpointsNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListNetworkEndpointsNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkEndpointsNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkEndpointsNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNetworkEndpointsNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListNetworkEndpointsNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkEndpointsNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNetworkEndpointsNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkEndpointsNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkEndpointsNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest. */
                interface IListNetworkEndpointsRegionNetworkEndpointGroupsRequest {

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest networkEndpointGroup */
                    networkEndpointGroup?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest region */
                    region?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest. */
                class ListNetworkEndpointsRegionNetworkEndpointGroupsRequest implements IListNetworkEndpointsRegionNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListNetworkEndpointsRegionNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest networkEndpointGroup. */
                    public networkEndpointGroup: string;

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest region. */
                    public region: string;

                    /** ListNetworkEndpointsRegionNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkEndpointsRegionNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkEndpointsRegionNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest): google.cloud.compute.v1beta.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkEndpointsRegionNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkEndpointsRegionNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkFirewallPoliciesRequest. */
                interface IListNetworkFirewallPoliciesRequest {

                    /** ListNetworkFirewallPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkFirewallPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest project */
                    project?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkFirewallPoliciesRequest. */
                class ListNetworkFirewallPoliciesRequest implements IListNetworkFirewallPoliciesRequest {

                    /**
                     * Constructs a new ListNetworkFirewallPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNetworkFirewallPoliciesRequest);

                    /** ListNetworkFirewallPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkFirewallPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkFirewallPoliciesRequest project. */
                    public project: string;

                    /** ListNetworkFirewallPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkFirewallPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkFirewallPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNetworkFirewallPoliciesRequest): google.cloud.compute.v1beta.ListNetworkFirewallPoliciesRequest;

                    /**
                     * Encodes the specified ListNetworkFirewallPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkFirewallPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkFirewallPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNetworkFirewallPoliciesRequest;

                    /**
                     * Decodes a ListNetworkFirewallPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNetworkFirewallPoliciesRequest;

                    /**
                     * Verifies a ListNetworkFirewallPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkFirewallPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkFirewallPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNetworkFirewallPoliciesRequest;

                    /**
                     * Creates a plain object from a ListNetworkFirewallPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkFirewallPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNetworkFirewallPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkFirewallPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkFirewallPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworkProfilesRequest. */
                interface IListNetworkProfilesRequest {

                    /** ListNetworkProfilesRequest filter */
                    filter?: (string|null);

                    /** ListNetworkProfilesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworkProfilesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworkProfilesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworkProfilesRequest project */
                    project?: (string|null);

                    /** ListNetworkProfilesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworkProfilesRequest. */
                class ListNetworkProfilesRequest implements IListNetworkProfilesRequest {

                    /**
                     * Constructs a new ListNetworkProfilesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNetworkProfilesRequest);

                    /** ListNetworkProfilesRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworkProfilesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworkProfilesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworkProfilesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworkProfilesRequest project. */
                    public project: string;

                    /** ListNetworkProfilesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworkProfilesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworkProfilesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNetworkProfilesRequest): google.cloud.compute.v1beta.ListNetworkProfilesRequest;

                    /**
                     * Encodes the specified ListNetworkProfilesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkProfilesRequest.verify|verify} messages.
                     * @param message ListNetworkProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNetworkProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworkProfilesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworkProfilesRequest.verify|verify} messages.
                     * @param message ListNetworkProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNetworkProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworkProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworkProfilesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNetworkProfilesRequest;

                    /**
                     * Decodes a ListNetworkProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworkProfilesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNetworkProfilesRequest;

                    /**
                     * Verifies a ListNetworkProfilesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworkProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworkProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNetworkProfilesRequest;

                    /**
                     * Creates a plain object from a ListNetworkProfilesRequest message. Also converts values to other types if specified.
                     * @param message ListNetworkProfilesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNetworkProfilesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworkProfilesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworkProfilesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworksRequest. */
                interface IListNetworksRequest {

                    /** ListNetworksRequest filter */
                    filter?: (string|null);

                    /** ListNetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNetworksRequest project */
                    project?: (string|null);

                    /** ListNetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNetworksRequest. */
                class ListNetworksRequest implements IListNetworksRequest {

                    /**
                     * Constructs a new ListNetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNetworksRequest);

                    /** ListNetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListNetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNetworksRequest project. */
                    public project: string;

                    /** ListNetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNetworksRequest): google.cloud.compute.v1beta.ListNetworksRequest;

                    /**
                     * Encodes the specified ListNetworksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworksRequest.verify|verify} messages.
                     * @param message ListNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNetworksRequest.verify|verify} messages.
                     * @param message ListNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNetworksRequest;

                    /**
                     * Decodes a ListNetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNetworksRequest;

                    /**
                     * Verifies a ListNetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNetworksRequest;

                    /**
                     * Creates a plain object from a ListNetworksRequest message. Also converts values to other types if specified.
                     * @param message ListNetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNodeGroupsRequest. */
                interface IListNodeGroupsRequest {

                    /** ListNodeGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNodeGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNodeGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNodeGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNodeGroupsRequest project */
                    project?: (string|null);

                    /** ListNodeGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNodeGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNodeGroupsRequest. */
                class ListNodeGroupsRequest implements IListNodeGroupsRequest {

                    /**
                     * Constructs a new ListNodeGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNodeGroupsRequest);

                    /** ListNodeGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNodeGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNodeGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNodeGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNodeGroupsRequest project. */
                    public project: string;

                    /** ListNodeGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNodeGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNodeGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNodeGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNodeGroupsRequest): google.cloud.compute.v1beta.ListNodeGroupsRequest;

                    /**
                     * Encodes the specified ListNodeGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNodeGroupsRequest.verify|verify} messages.
                     * @param message ListNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNodeGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNodeGroupsRequest.verify|verify} messages.
                     * @param message ListNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNodeGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNodeGroupsRequest;

                    /**
                     * Decodes a ListNodeGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNodeGroupsRequest;

                    /**
                     * Verifies a ListNodeGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNodeGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNodeGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNodeGroupsRequest;

                    /**
                     * Creates a plain object from a ListNodeGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNodeGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNodeGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNodeGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNodeGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNodeTemplatesRequest. */
                interface IListNodeTemplatesRequest {

                    /** ListNodeTemplatesRequest filter */
                    filter?: (string|null);

                    /** ListNodeTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNodeTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNodeTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNodeTemplatesRequest project */
                    project?: (string|null);

                    /** ListNodeTemplatesRequest region */
                    region?: (string|null);

                    /** ListNodeTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListNodeTemplatesRequest. */
                class ListNodeTemplatesRequest implements IListNodeTemplatesRequest {

                    /**
                     * Constructs a new ListNodeTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNodeTemplatesRequest);

                    /** ListNodeTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** ListNodeTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNodeTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNodeTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNodeTemplatesRequest project. */
                    public project: string;

                    /** ListNodeTemplatesRequest region. */
                    public region: string;

                    /** ListNodeTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListNodeTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNodeTemplatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNodeTemplatesRequest): google.cloud.compute.v1beta.ListNodeTemplatesRequest;

                    /**
                     * Encodes the specified ListNodeTemplatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNodeTemplatesRequest.verify|verify} messages.
                     * @param message ListNodeTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNodeTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNodeTemplatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNodeTemplatesRequest.verify|verify} messages.
                     * @param message ListNodeTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNodeTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNodeTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNodeTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNodeTemplatesRequest;

                    /**
                     * Decodes a ListNodeTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNodeTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNodeTemplatesRequest;

                    /**
                     * Verifies a ListNodeTemplatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNodeTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNodeTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNodeTemplatesRequest;

                    /**
                     * Creates a plain object from a ListNodeTemplatesRequest message. Also converts values to other types if specified.
                     * @param message ListNodeTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNodeTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNodeTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNodeTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNodeTypesRequest. */
                interface IListNodeTypesRequest {

                    /** ListNodeTypesRequest filter */
                    filter?: (string|null);

                    /** ListNodeTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNodeTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNodeTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNodeTypesRequest project */
                    project?: (string|null);

                    /** ListNodeTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNodeTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNodeTypesRequest. */
                class ListNodeTypesRequest implements IListNodeTypesRequest {

                    /**
                     * Constructs a new ListNodeTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNodeTypesRequest);

                    /** ListNodeTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListNodeTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNodeTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNodeTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNodeTypesRequest project. */
                    public project: string;

                    /** ListNodeTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNodeTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNodeTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNodeTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNodeTypesRequest): google.cloud.compute.v1beta.ListNodeTypesRequest;

                    /**
                     * Encodes the specified ListNodeTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNodeTypesRequest.verify|verify} messages.
                     * @param message ListNodeTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNodeTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNodeTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNodeTypesRequest.verify|verify} messages.
                     * @param message ListNodeTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNodeTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNodeTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNodeTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNodeTypesRequest;

                    /**
                     * Decodes a ListNodeTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNodeTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNodeTypesRequest;

                    /**
                     * Verifies a ListNodeTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNodeTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNodeTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNodeTypesRequest;

                    /**
                     * Creates a plain object from a ListNodeTypesRequest message. Also converts values to other types if specified.
                     * @param message ListNodeTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNodeTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNodeTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNodeTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNodesNodeGroupsRequest. */
                interface IListNodesNodeGroupsRequest {

                    /** ListNodesNodeGroupsRequest filter */
                    filter?: (string|null);

                    /** ListNodesNodeGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListNodesNodeGroupsRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** ListNodesNodeGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListNodesNodeGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListNodesNodeGroupsRequest project */
                    project?: (string|null);

                    /** ListNodesNodeGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListNodesNodeGroupsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListNodesNodeGroupsRequest. */
                class ListNodesNodeGroupsRequest implements IListNodesNodeGroupsRequest {

                    /**
                     * Constructs a new ListNodesNodeGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListNodesNodeGroupsRequest);

                    /** ListNodesNodeGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListNodesNodeGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListNodesNodeGroupsRequest nodeGroup. */
                    public nodeGroup: string;

                    /** ListNodesNodeGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListNodesNodeGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListNodesNodeGroupsRequest project. */
                    public project: string;

                    /** ListNodesNodeGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListNodesNodeGroupsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListNodesNodeGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNodesNodeGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListNodesNodeGroupsRequest): google.cloud.compute.v1beta.ListNodesNodeGroupsRequest;

                    /**
                     * Encodes the specified ListNodesNodeGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListNodesNodeGroupsRequest.verify|verify} messages.
                     * @param message ListNodesNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListNodesNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNodesNodeGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListNodesNodeGroupsRequest.verify|verify} messages.
                     * @param message ListNodesNodeGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListNodesNodeGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNodesNodeGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNodesNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListNodesNodeGroupsRequest;

                    /**
                     * Decodes a ListNodesNodeGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNodesNodeGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListNodesNodeGroupsRequest;

                    /**
                     * Verifies a ListNodesNodeGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNodesNodeGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNodesNodeGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListNodesNodeGroupsRequest;

                    /**
                     * Creates a plain object from a ListNodesNodeGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListNodesNodeGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListNodesNodeGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNodesNodeGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNodesNodeGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListOrganizationSecurityPoliciesRequest. */
                interface IListOrganizationSecurityPoliciesRequest {

                    /** ListOrganizationSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListOrganizationSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest parentId */
                    parentId?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListOrganizationSecurityPoliciesRequest. */
                class ListOrganizationSecurityPoliciesRequest implements IListOrganizationSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListOrganizationSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListOrganizationSecurityPoliciesRequest);

                    /** ListOrganizationSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListOrganizationSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest parentId. */
                    public parentId?: (string|null);

                    /** ListOrganizationSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListOrganizationSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListOrganizationSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListOrganizationSecurityPoliciesRequest): google.cloud.compute.v1beta.ListOrganizationSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListOrganizationSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListOrganizationSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListOrganizationSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListOrganizationSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListOrganizationSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListOrganizationSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListOrganizationSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListOrganizationSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListOrganizationSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListOrganizationSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListOrganizationSecurityPoliciesRequest;

                    /**
                     * Decodes a ListOrganizationSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListOrganizationSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListOrganizationSecurityPoliciesRequest;

                    /**
                     * Verifies a ListOrganizationSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListOrganizationSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListOrganizationSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListOrganizationSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListOrganizationSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListOrganizationSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListOrganizationSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListOrganizationSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListOrganizationSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPacketMirroringsRequest. */
                interface IListPacketMirroringsRequest {

                    /** ListPacketMirroringsRequest filter */
                    filter?: (string|null);

                    /** ListPacketMirroringsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPacketMirroringsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPacketMirroringsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPacketMirroringsRequest project */
                    project?: (string|null);

                    /** ListPacketMirroringsRequest region */
                    region?: (string|null);

                    /** ListPacketMirroringsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPacketMirroringsRequest. */
                class ListPacketMirroringsRequest implements IListPacketMirroringsRequest {

                    /**
                     * Constructs a new ListPacketMirroringsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPacketMirroringsRequest);

                    /** ListPacketMirroringsRequest filter. */
                    public filter?: (string|null);

                    /** ListPacketMirroringsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPacketMirroringsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPacketMirroringsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPacketMirroringsRequest project. */
                    public project: string;

                    /** ListPacketMirroringsRequest region. */
                    public region: string;

                    /** ListPacketMirroringsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPacketMirroringsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPacketMirroringsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPacketMirroringsRequest): google.cloud.compute.v1beta.ListPacketMirroringsRequest;

                    /**
                     * Encodes the specified ListPacketMirroringsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPacketMirroringsRequest.verify|verify} messages.
                     * @param message ListPacketMirroringsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPacketMirroringsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPacketMirroringsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPacketMirroringsRequest.verify|verify} messages.
                     * @param message ListPacketMirroringsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPacketMirroringsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPacketMirroringsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPacketMirroringsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPacketMirroringsRequest;

                    /**
                     * Decodes a ListPacketMirroringsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPacketMirroringsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPacketMirroringsRequest;

                    /**
                     * Verifies a ListPacketMirroringsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPacketMirroringsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPacketMirroringsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPacketMirroringsRequest;

                    /**
                     * Creates a plain object from a ListPacketMirroringsRequest message. Also converts values to other types if specified.
                     * @param message ListPacketMirroringsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPacketMirroringsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPacketMirroringsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPacketMirroringsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPeeringRoutesNetworksRequest. */
                interface IListPeeringRoutesNetworksRequest {

                    /** ListPeeringRoutesNetworksRequest direction */
                    direction?: (string|null);

                    /** ListPeeringRoutesNetworksRequest filter */
                    filter?: (string|null);

                    /** ListPeeringRoutesNetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPeeringRoutesNetworksRequest network */
                    network?: (string|null);

                    /** ListPeeringRoutesNetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPeeringRoutesNetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPeeringRoutesNetworksRequest peeringName */
                    peeringName?: (string|null);

                    /** ListPeeringRoutesNetworksRequest project */
                    project?: (string|null);

                    /** ListPeeringRoutesNetworksRequest region */
                    region?: (string|null);

                    /** ListPeeringRoutesNetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPeeringRoutesNetworksRequest. */
                class ListPeeringRoutesNetworksRequest implements IListPeeringRoutesNetworksRequest {

                    /**
                     * Constructs a new ListPeeringRoutesNetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPeeringRoutesNetworksRequest);

                    /** ListPeeringRoutesNetworksRequest direction. */
                    public direction?: (string|null);

                    /** ListPeeringRoutesNetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListPeeringRoutesNetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPeeringRoutesNetworksRequest network. */
                    public network: string;

                    /** ListPeeringRoutesNetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPeeringRoutesNetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPeeringRoutesNetworksRequest peeringName. */
                    public peeringName?: (string|null);

                    /** ListPeeringRoutesNetworksRequest project. */
                    public project: string;

                    /** ListPeeringRoutesNetworksRequest region. */
                    public region?: (string|null);

                    /** ListPeeringRoutesNetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPeeringRoutesNetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPeeringRoutesNetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPeeringRoutesNetworksRequest): google.cloud.compute.v1beta.ListPeeringRoutesNetworksRequest;

                    /**
                     * Encodes the specified ListPeeringRoutesNetworksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPeeringRoutesNetworksRequest.verify|verify} messages.
                     * @param message ListPeeringRoutesNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPeeringRoutesNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPeeringRoutesNetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPeeringRoutesNetworksRequest.verify|verify} messages.
                     * @param message ListPeeringRoutesNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPeeringRoutesNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPeeringRoutesNetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPeeringRoutesNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPeeringRoutesNetworksRequest;

                    /**
                     * Decodes a ListPeeringRoutesNetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPeeringRoutesNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPeeringRoutesNetworksRequest;

                    /**
                     * Verifies a ListPeeringRoutesNetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPeeringRoutesNetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPeeringRoutesNetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPeeringRoutesNetworksRequest;

                    /**
                     * Creates a plain object from a ListPeeringRoutesNetworksRequest message. Also converts values to other types if specified.
                     * @param message ListPeeringRoutesNetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPeeringRoutesNetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPeeringRoutesNetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPeeringRoutesNetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListPeeringRoutesNetworksRequest {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        INCOMING = 338552870,
                        OUTGOING = 307438444
                    }
                }

                /** Properties of a ListPerInstanceConfigsInstanceGroupManagersRequest. */
                interface IListPerInstanceConfigsInstanceGroupManagersRequest {

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListPerInstanceConfigsInstanceGroupManagersRequest. */
                class ListPerInstanceConfigsInstanceGroupManagersRequest implements IListPerInstanceConfigsInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListPerInstanceConfigsInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPerInstanceConfigsInstanceGroupManagersRequest);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListPerInstanceConfigsInstanceGroupManagersRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListPerInstanceConfigsInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPerInstanceConfigsInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPerInstanceConfigsInstanceGroupManagersRequest): google.cloud.compute.v1beta.ListPerInstanceConfigsInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListPerInstanceConfigsInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPerInstanceConfigsInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListPerInstanceConfigsInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPerInstanceConfigsInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPerInstanceConfigsInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPerInstanceConfigsInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListPerInstanceConfigsInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPerInstanceConfigsInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPerInstanceConfigsInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPerInstanceConfigsInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPerInstanceConfigsInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListPerInstanceConfigsInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPerInstanceConfigsInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPerInstanceConfigsInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListPerInstanceConfigsInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPerInstanceConfigsInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPerInstanceConfigsInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPerInstanceConfigsInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListPerInstanceConfigsInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListPerInstanceConfigsInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPerInstanceConfigsInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPerInstanceConfigsInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPerInstanceConfigsInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPerInstanceConfigsRegionInstanceGroupManagersRequest. */
                interface IListPerInstanceConfigsRegionInstanceGroupManagersRequest {

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest region */
                    region?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPerInstanceConfigsRegionInstanceGroupManagersRequest. */
                class ListPerInstanceConfigsRegionInstanceGroupManagersRequest implements IListPerInstanceConfigsRegionInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListPerInstanceConfigsRegionInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPerInstanceConfigsRegionInstanceGroupManagersRequest);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest region. */
                    public region: string;

                    /** ListPerInstanceConfigsRegionInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPerInstanceConfigsRegionInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPerInstanceConfigsRegionInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPerInstanceConfigsRegionInstanceGroupManagersRequest): google.cloud.compute.v1beta.ListPerInstanceConfigsRegionInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListPerInstanceConfigsRegionInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPerInstanceConfigsRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListPerInstanceConfigsRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPerInstanceConfigsRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPerInstanceConfigsRegionInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPerInstanceConfigsRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListPerInstanceConfigsRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPerInstanceConfigsRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPerInstanceConfigsRegionInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPerInstanceConfigsRegionInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPerInstanceConfigsRegionInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListPerInstanceConfigsRegionInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPerInstanceConfigsRegionInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPerInstanceConfigsRegionInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPerInstanceConfigsRegionInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest. */
                interface IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest {

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest parentId */
                    parentId?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest. */
                class ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest implements IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest parentId. */
                    public parentId?: (string|null);

                    /** ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest): google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest;

                    /**
                     * Decodes a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest;

                    /**
                     * Verifies a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPreconfiguredExpressionSetsSecurityPoliciesRequest. */
                interface IListPreconfiguredExpressionSetsSecurityPoliciesRequest {

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest project */
                    project?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPreconfiguredExpressionSetsSecurityPoliciesRequest. */
                class ListPreconfiguredExpressionSetsSecurityPoliciesRequest implements IListPreconfiguredExpressionSetsSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListPreconfiguredExpressionSetsSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsSecurityPoliciesRequest);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest project. */
                    public project: string;

                    /** ListPreconfiguredExpressionSetsSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPreconfiguredExpressionSetsSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPreconfiguredExpressionSetsSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsSecurityPoliciesRequest): google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListPreconfiguredExpressionSetsSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListPreconfiguredExpressionSetsSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPreconfiguredExpressionSetsSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListPreconfiguredExpressionSetsSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsSecurityPoliciesRequest;

                    /**
                     * Decodes a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsSecurityPoliciesRequest;

                    /**
                     * Verifies a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListPreconfiguredExpressionSetsSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPreconfiguredExpressionSetsSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPreconfiguredExpressionSetsSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPreconfiguredExpressionSetsSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPreviewFeaturesRequest. */
                interface IListPreviewFeaturesRequest {

                    /** ListPreviewFeaturesRequest filter */
                    filter?: (string|null);

                    /** ListPreviewFeaturesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPreviewFeaturesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPreviewFeaturesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPreviewFeaturesRequest project */
                    project?: (string|null);

                    /** ListPreviewFeaturesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPreviewFeaturesRequest. */
                class ListPreviewFeaturesRequest implements IListPreviewFeaturesRequest {

                    /**
                     * Constructs a new ListPreviewFeaturesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPreviewFeaturesRequest);

                    /** ListPreviewFeaturesRequest filter. */
                    public filter?: (string|null);

                    /** ListPreviewFeaturesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPreviewFeaturesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPreviewFeaturesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPreviewFeaturesRequest project. */
                    public project: string;

                    /** ListPreviewFeaturesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPreviewFeaturesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPreviewFeaturesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPreviewFeaturesRequest): google.cloud.compute.v1beta.ListPreviewFeaturesRequest;

                    /**
                     * Encodes the specified ListPreviewFeaturesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPreviewFeaturesRequest.verify|verify} messages.
                     * @param message ListPreviewFeaturesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPreviewFeaturesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPreviewFeaturesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPreviewFeaturesRequest.verify|verify} messages.
                     * @param message ListPreviewFeaturesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPreviewFeaturesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPreviewFeaturesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPreviewFeaturesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPreviewFeaturesRequest;

                    /**
                     * Decodes a ListPreviewFeaturesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPreviewFeaturesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPreviewFeaturesRequest;

                    /**
                     * Verifies a ListPreviewFeaturesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPreviewFeaturesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPreviewFeaturesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPreviewFeaturesRequest;

                    /**
                     * Creates a plain object from a ListPreviewFeaturesRequest message. Also converts values to other types if specified.
                     * @param message ListPreviewFeaturesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPreviewFeaturesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPreviewFeaturesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPreviewFeaturesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPublicAdvertisedPrefixesRequest. */
                interface IListPublicAdvertisedPrefixesRequest {

                    /** ListPublicAdvertisedPrefixesRequest filter */
                    filter?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPublicAdvertisedPrefixesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest project */
                    project?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPublicAdvertisedPrefixesRequest. */
                class ListPublicAdvertisedPrefixesRequest implements IListPublicAdvertisedPrefixesRequest {

                    /**
                     * Constructs a new ListPublicAdvertisedPrefixesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPublicAdvertisedPrefixesRequest);

                    /** ListPublicAdvertisedPrefixesRequest filter. */
                    public filter?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPublicAdvertisedPrefixesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPublicAdvertisedPrefixesRequest project. */
                    public project: string;

                    /** ListPublicAdvertisedPrefixesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPublicAdvertisedPrefixesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPublicAdvertisedPrefixesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPublicAdvertisedPrefixesRequest): google.cloud.compute.v1beta.ListPublicAdvertisedPrefixesRequest;

                    /**
                     * Encodes the specified ListPublicAdvertisedPrefixesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPublicAdvertisedPrefixesRequest.verify|verify} messages.
                     * @param message ListPublicAdvertisedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPublicAdvertisedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPublicAdvertisedPrefixesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPublicAdvertisedPrefixesRequest.verify|verify} messages.
                     * @param message ListPublicAdvertisedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPublicAdvertisedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPublicAdvertisedPrefixesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPublicAdvertisedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPublicAdvertisedPrefixesRequest;

                    /**
                     * Decodes a ListPublicAdvertisedPrefixesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPublicAdvertisedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPublicAdvertisedPrefixesRequest;

                    /**
                     * Verifies a ListPublicAdvertisedPrefixesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPublicAdvertisedPrefixesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPublicAdvertisedPrefixesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPublicAdvertisedPrefixesRequest;

                    /**
                     * Creates a plain object from a ListPublicAdvertisedPrefixesRequest message. Also converts values to other types if specified.
                     * @param message ListPublicAdvertisedPrefixesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPublicAdvertisedPrefixesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPublicAdvertisedPrefixesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPublicAdvertisedPrefixesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPublicDelegatedPrefixesRequest. */
                interface IListPublicDelegatedPrefixesRequest {

                    /** ListPublicDelegatedPrefixesRequest filter */
                    filter?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListPublicDelegatedPrefixesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest project */
                    project?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest region */
                    region?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListPublicDelegatedPrefixesRequest. */
                class ListPublicDelegatedPrefixesRequest implements IListPublicDelegatedPrefixesRequest {

                    /**
                     * Constructs a new ListPublicDelegatedPrefixesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListPublicDelegatedPrefixesRequest);

                    /** ListPublicDelegatedPrefixesRequest filter. */
                    public filter?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListPublicDelegatedPrefixesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListPublicDelegatedPrefixesRequest project. */
                    public project: string;

                    /** ListPublicDelegatedPrefixesRequest region. */
                    public region: string;

                    /** ListPublicDelegatedPrefixesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListPublicDelegatedPrefixesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPublicDelegatedPrefixesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListPublicDelegatedPrefixesRequest): google.cloud.compute.v1beta.ListPublicDelegatedPrefixesRequest;

                    /**
                     * Encodes the specified ListPublicDelegatedPrefixesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message ListPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPublicDelegatedPrefixesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListPublicDelegatedPrefixesRequest.verify|verify} messages.
                     * @param message ListPublicDelegatedPrefixesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListPublicDelegatedPrefixesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPublicDelegatedPrefixesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListPublicDelegatedPrefixesRequest;

                    /**
                     * Decodes a ListPublicDelegatedPrefixesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPublicDelegatedPrefixesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListPublicDelegatedPrefixesRequest;

                    /**
                     * Verifies a ListPublicDelegatedPrefixesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPublicDelegatedPrefixesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPublicDelegatedPrefixesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListPublicDelegatedPrefixesRequest;

                    /**
                     * Creates a plain object from a ListPublicDelegatedPrefixesRequest message. Also converts values to other types if specified.
                     * @param message ListPublicDelegatedPrefixesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListPublicDelegatedPrefixesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPublicDelegatedPrefixesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPublicDelegatedPrefixesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReferrersInstancesRequest. */
                interface IListReferrersInstancesRequest {

                    /** ListReferrersInstancesRequest filter */
                    filter?: (string|null);

                    /** ListReferrersInstancesRequest instance */
                    instance?: (string|null);

                    /** ListReferrersInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReferrersInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReferrersInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReferrersInstancesRequest project */
                    project?: (string|null);

                    /** ListReferrersInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReferrersInstancesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReferrersInstancesRequest. */
                class ListReferrersInstancesRequest implements IListReferrersInstancesRequest {

                    /**
                     * Constructs a new ListReferrersInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListReferrersInstancesRequest);

                    /** ListReferrersInstancesRequest filter. */
                    public filter?: (string|null);

                    /** ListReferrersInstancesRequest instance. */
                    public instance: string;

                    /** ListReferrersInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReferrersInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReferrersInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReferrersInstancesRequest project. */
                    public project: string;

                    /** ListReferrersInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReferrersInstancesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReferrersInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReferrersInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListReferrersInstancesRequest): google.cloud.compute.v1beta.ListReferrersInstancesRequest;

                    /**
                     * Encodes the specified ListReferrersInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListReferrersInstancesRequest.verify|verify} messages.
                     * @param message ListReferrersInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListReferrersInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReferrersInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListReferrersInstancesRequest.verify|verify} messages.
                     * @param message ListReferrersInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListReferrersInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReferrersInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReferrersInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListReferrersInstancesRequest;

                    /**
                     * Decodes a ListReferrersInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReferrersInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListReferrersInstancesRequest;

                    /**
                     * Verifies a ListReferrersInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReferrersInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReferrersInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListReferrersInstancesRequest;

                    /**
                     * Creates a plain object from a ListReferrersInstancesRequest message. Also converts values to other types if specified.
                     * @param message ListReferrersInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListReferrersInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReferrersInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReferrersInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionAutoscalersRequest. */
                interface IListRegionAutoscalersRequest {

                    /** ListRegionAutoscalersRequest filter */
                    filter?: (string|null);

                    /** ListRegionAutoscalersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionAutoscalersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionAutoscalersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionAutoscalersRequest project */
                    project?: (string|null);

                    /** ListRegionAutoscalersRequest region */
                    region?: (string|null);

                    /** ListRegionAutoscalersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionAutoscalersRequest. */
                class ListRegionAutoscalersRequest implements IListRegionAutoscalersRequest {

                    /**
                     * Constructs a new ListRegionAutoscalersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionAutoscalersRequest);

                    /** ListRegionAutoscalersRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionAutoscalersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionAutoscalersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionAutoscalersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionAutoscalersRequest project. */
                    public project: string;

                    /** ListRegionAutoscalersRequest region. */
                    public region: string;

                    /** ListRegionAutoscalersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionAutoscalersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionAutoscalersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionAutoscalersRequest): google.cloud.compute.v1beta.ListRegionAutoscalersRequest;

                    /**
                     * Encodes the specified ListRegionAutoscalersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionAutoscalersRequest.verify|verify} messages.
                     * @param message ListRegionAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionAutoscalersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionAutoscalersRequest.verify|verify} messages.
                     * @param message ListRegionAutoscalersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionAutoscalersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionAutoscalersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionAutoscalersRequest;

                    /**
                     * Decodes a ListRegionAutoscalersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionAutoscalersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionAutoscalersRequest;

                    /**
                     * Verifies a ListRegionAutoscalersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionAutoscalersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionAutoscalersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionAutoscalersRequest;

                    /**
                     * Creates a plain object from a ListRegionAutoscalersRequest message. Also converts values to other types if specified.
                     * @param message ListRegionAutoscalersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionAutoscalersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionAutoscalersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionAutoscalersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionBackendBucketsRequest. */
                interface IListRegionBackendBucketsRequest {

                    /** ListRegionBackendBucketsRequest filter */
                    filter?: (string|null);

                    /** ListRegionBackendBucketsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionBackendBucketsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionBackendBucketsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionBackendBucketsRequest project */
                    project?: (string|null);

                    /** ListRegionBackendBucketsRequest region */
                    region?: (string|null);

                    /** ListRegionBackendBucketsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionBackendBucketsRequest. */
                class ListRegionBackendBucketsRequest implements IListRegionBackendBucketsRequest {

                    /**
                     * Constructs a new ListRegionBackendBucketsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionBackendBucketsRequest);

                    /** ListRegionBackendBucketsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionBackendBucketsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionBackendBucketsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionBackendBucketsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionBackendBucketsRequest project. */
                    public project: string;

                    /** ListRegionBackendBucketsRequest region. */
                    public region: string;

                    /** ListRegionBackendBucketsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionBackendBucketsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionBackendBucketsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionBackendBucketsRequest): google.cloud.compute.v1beta.ListRegionBackendBucketsRequest;

                    /**
                     * Encodes the specified ListRegionBackendBucketsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionBackendBucketsRequest.verify|verify} messages.
                     * @param message ListRegionBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionBackendBucketsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionBackendBucketsRequest.verify|verify} messages.
                     * @param message ListRegionBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionBackendBucketsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionBackendBucketsRequest;

                    /**
                     * Decodes a ListRegionBackendBucketsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionBackendBucketsRequest;

                    /**
                     * Verifies a ListRegionBackendBucketsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionBackendBucketsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionBackendBucketsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionBackendBucketsRequest;

                    /**
                     * Creates a plain object from a ListRegionBackendBucketsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionBackendBucketsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionBackendBucketsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionBackendBucketsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionBackendBucketsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionBackendServicesRequest. */
                interface IListRegionBackendServicesRequest {

                    /** ListRegionBackendServicesRequest filter */
                    filter?: (string|null);

                    /** ListRegionBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionBackendServicesRequest project */
                    project?: (string|null);

                    /** ListRegionBackendServicesRequest region */
                    region?: (string|null);

                    /** ListRegionBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionBackendServicesRequest. */
                class ListRegionBackendServicesRequest implements IListRegionBackendServicesRequest {

                    /**
                     * Constructs a new ListRegionBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionBackendServicesRequest);

                    /** ListRegionBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionBackendServicesRequest project. */
                    public project: string;

                    /** ListRegionBackendServicesRequest region. */
                    public region: string;

                    /** ListRegionBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionBackendServicesRequest): google.cloud.compute.v1beta.ListRegionBackendServicesRequest;

                    /**
                     * Encodes the specified ListRegionBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionBackendServicesRequest.verify|verify} messages.
                     * @param message ListRegionBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionBackendServicesRequest.verify|verify} messages.
                     * @param message ListRegionBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionBackendServicesRequest;

                    /**
                     * Decodes a ListRegionBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionBackendServicesRequest;

                    /**
                     * Verifies a ListRegionBackendServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionBackendServicesRequest;

                    /**
                     * Creates a plain object from a ListRegionBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionBackendServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionCommitmentsRequest. */
                interface IListRegionCommitmentsRequest {

                    /** ListRegionCommitmentsRequest filter */
                    filter?: (string|null);

                    /** ListRegionCommitmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionCommitmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionCommitmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionCommitmentsRequest project */
                    project?: (string|null);

                    /** ListRegionCommitmentsRequest region */
                    region?: (string|null);

                    /** ListRegionCommitmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionCommitmentsRequest. */
                class ListRegionCommitmentsRequest implements IListRegionCommitmentsRequest {

                    /**
                     * Constructs a new ListRegionCommitmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionCommitmentsRequest);

                    /** ListRegionCommitmentsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionCommitmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionCommitmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionCommitmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionCommitmentsRequest project. */
                    public project: string;

                    /** ListRegionCommitmentsRequest region. */
                    public region: string;

                    /** ListRegionCommitmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionCommitmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionCommitmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionCommitmentsRequest): google.cloud.compute.v1beta.ListRegionCommitmentsRequest;

                    /**
                     * Encodes the specified ListRegionCommitmentsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionCommitmentsRequest.verify|verify} messages.
                     * @param message ListRegionCommitmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionCommitmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionCommitmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionCommitmentsRequest.verify|verify} messages.
                     * @param message ListRegionCommitmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionCommitmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionCommitmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionCommitmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionCommitmentsRequest;

                    /**
                     * Decodes a ListRegionCommitmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionCommitmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionCommitmentsRequest;

                    /**
                     * Verifies a ListRegionCommitmentsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionCommitmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionCommitmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionCommitmentsRequest;

                    /**
                     * Creates a plain object from a ListRegionCommitmentsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionCommitmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionCommitmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionCommitmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionCommitmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionCompositeHealthChecksRequest. */
                interface IListRegionCompositeHealthChecksRequest {

                    /** ListRegionCompositeHealthChecksRequest filter */
                    filter?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionCompositeHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest project */
                    project?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest region */
                    region?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionCompositeHealthChecksRequest. */
                class ListRegionCompositeHealthChecksRequest implements IListRegionCompositeHealthChecksRequest {

                    /**
                     * Constructs a new ListRegionCompositeHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionCompositeHealthChecksRequest);

                    /** ListRegionCompositeHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionCompositeHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionCompositeHealthChecksRequest project. */
                    public project: string;

                    /** ListRegionCompositeHealthChecksRequest region. */
                    public region: string;

                    /** ListRegionCompositeHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionCompositeHealthChecksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionCompositeHealthChecksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionCompositeHealthChecksRequest): google.cloud.compute.v1beta.ListRegionCompositeHealthChecksRequest;

                    /**
                     * Encodes the specified ListRegionCompositeHealthChecksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionCompositeHealthChecksRequest.verify|verify} messages.
                     * @param message ListRegionCompositeHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionCompositeHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionCompositeHealthChecksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionCompositeHealthChecksRequest.verify|verify} messages.
                     * @param message ListRegionCompositeHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionCompositeHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionCompositeHealthChecksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionCompositeHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionCompositeHealthChecksRequest;

                    /**
                     * Decodes a ListRegionCompositeHealthChecksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionCompositeHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionCompositeHealthChecksRequest;

                    /**
                     * Verifies a ListRegionCompositeHealthChecksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionCompositeHealthChecksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionCompositeHealthChecksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionCompositeHealthChecksRequest;

                    /**
                     * Creates a plain object from a ListRegionCompositeHealthChecksRequest message. Also converts values to other types if specified.
                     * @param message ListRegionCompositeHealthChecksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionCompositeHealthChecksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionCompositeHealthChecksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionCompositeHealthChecksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionDiskTypesRequest. */
                interface IListRegionDiskTypesRequest {

                    /** ListRegionDiskTypesRequest filter */
                    filter?: (string|null);

                    /** ListRegionDiskTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionDiskTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionDiskTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionDiskTypesRequest project */
                    project?: (string|null);

                    /** ListRegionDiskTypesRequest region */
                    region?: (string|null);

                    /** ListRegionDiskTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionDiskTypesRequest. */
                class ListRegionDiskTypesRequest implements IListRegionDiskTypesRequest {

                    /**
                     * Constructs a new ListRegionDiskTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionDiskTypesRequest);

                    /** ListRegionDiskTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionDiskTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionDiskTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionDiskTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionDiskTypesRequest project. */
                    public project: string;

                    /** ListRegionDiskTypesRequest region. */
                    public region: string;

                    /** ListRegionDiskTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionDiskTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionDiskTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionDiskTypesRequest): google.cloud.compute.v1beta.ListRegionDiskTypesRequest;

                    /**
                     * Encodes the specified ListRegionDiskTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionDiskTypesRequest.verify|verify} messages.
                     * @param message ListRegionDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionDiskTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionDiskTypesRequest.verify|verify} messages.
                     * @param message ListRegionDiskTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionDiskTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionDiskTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionDiskTypesRequest;

                    /**
                     * Decodes a ListRegionDiskTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionDiskTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionDiskTypesRequest;

                    /**
                     * Verifies a ListRegionDiskTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionDiskTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionDiskTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionDiskTypesRequest;

                    /**
                     * Creates a plain object from a ListRegionDiskTypesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionDiskTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionDiskTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionDiskTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionDiskTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionDisksRequest. */
                interface IListRegionDisksRequest {

                    /** ListRegionDisksRequest filter */
                    filter?: (string|null);

                    /** ListRegionDisksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionDisksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionDisksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionDisksRequest project */
                    project?: (string|null);

                    /** ListRegionDisksRequest region */
                    region?: (string|null);

                    /** ListRegionDisksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionDisksRequest. */
                class ListRegionDisksRequest implements IListRegionDisksRequest {

                    /**
                     * Constructs a new ListRegionDisksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionDisksRequest);

                    /** ListRegionDisksRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionDisksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionDisksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionDisksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionDisksRequest project. */
                    public project: string;

                    /** ListRegionDisksRequest region. */
                    public region: string;

                    /** ListRegionDisksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionDisksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionDisksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionDisksRequest): google.cloud.compute.v1beta.ListRegionDisksRequest;

                    /**
                     * Encodes the specified ListRegionDisksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionDisksRequest.verify|verify} messages.
                     * @param message ListRegionDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionDisksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionDisksRequest.verify|verify} messages.
                     * @param message ListRegionDisksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionDisksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionDisksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionDisksRequest;

                    /**
                     * Decodes a ListRegionDisksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionDisksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionDisksRequest;

                    /**
                     * Verifies a ListRegionDisksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionDisksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionDisksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionDisksRequest;

                    /**
                     * Creates a plain object from a ListRegionDisksRequest message. Also converts values to other types if specified.
                     * @param message ListRegionDisksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionDisksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionDisksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionDisksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionHealthAggregationPoliciesRequest. */
                interface IListRegionHealthAggregationPoliciesRequest {

                    /** ListRegionHealthAggregationPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionHealthAggregationPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionHealthAggregationPoliciesRequest. */
                class ListRegionHealthAggregationPoliciesRequest implements IListRegionHealthAggregationPoliciesRequest {

                    /**
                     * Constructs a new ListRegionHealthAggregationPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionHealthAggregationPoliciesRequest);

                    /** ListRegionHealthAggregationPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionHealthAggregationPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionHealthAggregationPoliciesRequest project. */
                    public project: string;

                    /** ListRegionHealthAggregationPoliciesRequest region. */
                    public region: string;

                    /** ListRegionHealthAggregationPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionHealthAggregationPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionHealthAggregationPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionHealthAggregationPoliciesRequest): google.cloud.compute.v1beta.ListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionHealthAggregationPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionHealthAggregationPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionHealthAggregationPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionHealthAggregationPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionHealthAggregationPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionHealthAggregationPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionHealthAggregationPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionHealthAggregationPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionHealthAggregationPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionHealthAggregationPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Decodes a ListRegionHealthAggregationPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionHealthAggregationPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Verifies a ListRegionHealthAggregationPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionHealthAggregationPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionHealthAggregationPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionHealthAggregationPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionHealthAggregationPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionHealthAggregationPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionHealthAggregationPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionHealthAggregationPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionHealthAggregationPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionHealthCheckServicesRequest. */
                interface IListRegionHealthCheckServicesRequest {

                    /** ListRegionHealthCheckServicesRequest filter */
                    filter?: (string|null);

                    /** ListRegionHealthCheckServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionHealthCheckServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionHealthCheckServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionHealthCheckServicesRequest project */
                    project?: (string|null);

                    /** ListRegionHealthCheckServicesRequest region */
                    region?: (string|null);

                    /** ListRegionHealthCheckServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionHealthCheckServicesRequest. */
                class ListRegionHealthCheckServicesRequest implements IListRegionHealthCheckServicesRequest {

                    /**
                     * Constructs a new ListRegionHealthCheckServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionHealthCheckServicesRequest);

                    /** ListRegionHealthCheckServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionHealthCheckServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionHealthCheckServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionHealthCheckServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionHealthCheckServicesRequest project. */
                    public project: string;

                    /** ListRegionHealthCheckServicesRequest region. */
                    public region: string;

                    /** ListRegionHealthCheckServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionHealthCheckServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionHealthCheckServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionHealthCheckServicesRequest): google.cloud.compute.v1beta.ListRegionHealthCheckServicesRequest;

                    /**
                     * Encodes the specified ListRegionHealthCheckServicesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionHealthCheckServicesRequest.verify|verify} messages.
                     * @param message ListRegionHealthCheckServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionHealthCheckServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionHealthCheckServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionHealthCheckServicesRequest.verify|verify} messages.
                     * @param message ListRegionHealthCheckServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionHealthCheckServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionHealthCheckServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionHealthCheckServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionHealthCheckServicesRequest;

                    /**
                     * Decodes a ListRegionHealthCheckServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionHealthCheckServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionHealthCheckServicesRequest;

                    /**
                     * Verifies a ListRegionHealthCheckServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionHealthCheckServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionHealthCheckServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionHealthCheckServicesRequest;

                    /**
                     * Creates a plain object from a ListRegionHealthCheckServicesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionHealthCheckServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionHealthCheckServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionHealthCheckServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionHealthCheckServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionHealthChecksRequest. */
                interface IListRegionHealthChecksRequest {

                    /** ListRegionHealthChecksRequest filter */
                    filter?: (string|null);

                    /** ListRegionHealthChecksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionHealthChecksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionHealthChecksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionHealthChecksRequest project */
                    project?: (string|null);

                    /** ListRegionHealthChecksRequest region */
                    region?: (string|null);

                    /** ListRegionHealthChecksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionHealthChecksRequest. */
                class ListRegionHealthChecksRequest implements IListRegionHealthChecksRequest {

                    /**
                     * Constructs a new ListRegionHealthChecksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionHealthChecksRequest);

                    /** ListRegionHealthChecksRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionHealthChecksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionHealthChecksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionHealthChecksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionHealthChecksRequest project. */
                    public project: string;

                    /** ListRegionHealthChecksRequest region. */
                    public region: string;

                    /** ListRegionHealthChecksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionHealthChecksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionHealthChecksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionHealthChecksRequest): google.cloud.compute.v1beta.ListRegionHealthChecksRequest;

                    /**
                     * Encodes the specified ListRegionHealthChecksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionHealthChecksRequest.verify|verify} messages.
                     * @param message ListRegionHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionHealthChecksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionHealthChecksRequest.verify|verify} messages.
                     * @param message ListRegionHealthChecksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionHealthChecksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionHealthChecksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionHealthChecksRequest;

                    /**
                     * Decodes a ListRegionHealthChecksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionHealthChecksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionHealthChecksRequest;

                    /**
                     * Verifies a ListRegionHealthChecksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionHealthChecksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionHealthChecksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionHealthChecksRequest;

                    /**
                     * Creates a plain object from a ListRegionHealthChecksRequest message. Also converts values to other types if specified.
                     * @param message ListRegionHealthChecksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionHealthChecksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionHealthChecksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionHealthChecksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionHealthSourcesRequest. */
                interface IListRegionHealthSourcesRequest {

                    /** ListRegionHealthSourcesRequest filter */
                    filter?: (string|null);

                    /** ListRegionHealthSourcesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionHealthSourcesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionHealthSourcesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionHealthSourcesRequest project */
                    project?: (string|null);

                    /** ListRegionHealthSourcesRequest region */
                    region?: (string|null);

                    /** ListRegionHealthSourcesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionHealthSourcesRequest. */
                class ListRegionHealthSourcesRequest implements IListRegionHealthSourcesRequest {

                    /**
                     * Constructs a new ListRegionHealthSourcesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionHealthSourcesRequest);

                    /** ListRegionHealthSourcesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionHealthSourcesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionHealthSourcesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionHealthSourcesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionHealthSourcesRequest project. */
                    public project: string;

                    /** ListRegionHealthSourcesRequest region. */
                    public region: string;

                    /** ListRegionHealthSourcesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionHealthSourcesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionHealthSourcesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionHealthSourcesRequest): google.cloud.compute.v1beta.ListRegionHealthSourcesRequest;

                    /**
                     * Encodes the specified ListRegionHealthSourcesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionHealthSourcesRequest.verify|verify} messages.
                     * @param message ListRegionHealthSourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionHealthSourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionHealthSourcesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionHealthSourcesRequest.verify|verify} messages.
                     * @param message ListRegionHealthSourcesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionHealthSourcesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionHealthSourcesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionHealthSourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionHealthSourcesRequest;

                    /**
                     * Decodes a ListRegionHealthSourcesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionHealthSourcesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionHealthSourcesRequest;

                    /**
                     * Verifies a ListRegionHealthSourcesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionHealthSourcesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionHealthSourcesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionHealthSourcesRequest;

                    /**
                     * Creates a plain object from a ListRegionHealthSourcesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionHealthSourcesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionHealthSourcesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionHealthSourcesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionHealthSourcesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstanceGroupManagerResizeRequestsRequest. */
                interface IListRegionInstanceGroupManagerResizeRequestsRequest {

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest project */
                    project?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest region */
                    region?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstanceGroupManagerResizeRequestsRequest. */
                class ListRegionInstanceGroupManagerResizeRequestsRequest implements IListRegionInstanceGroupManagerResizeRequestsRequest {

                    /**
                     * Constructs a new ListRegionInstanceGroupManagerResizeRequestsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionInstanceGroupManagerResizeRequestsRequest);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest project. */
                    public project: string;

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest region. */
                    public region: string;

                    /** ListRegionInstanceGroupManagerResizeRequestsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstanceGroupManagerResizeRequestsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstanceGroupManagerResizeRequestsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionInstanceGroupManagerResizeRequestsRequest): google.cloud.compute.v1beta.ListRegionInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Encodes the specified ListRegionInstanceGroupManagerResizeRequestsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstanceGroupManagerResizeRequestsRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupManagerResizeRequestsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionInstanceGroupManagerResizeRequestsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstanceGroupManagerResizeRequestsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstanceGroupManagerResizeRequestsRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupManagerResizeRequestsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionInstanceGroupManagerResizeRequestsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstanceGroupManagerResizeRequestsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstanceGroupManagerResizeRequestsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Decodes a ListRegionInstanceGroupManagerResizeRequestsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstanceGroupManagerResizeRequestsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Verifies a ListRegionInstanceGroupManagerResizeRequestsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstanceGroupManagerResizeRequestsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstanceGroupManagerResizeRequestsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionInstanceGroupManagerResizeRequestsRequest;

                    /**
                     * Creates a plain object from a ListRegionInstanceGroupManagerResizeRequestsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstanceGroupManagerResizeRequestsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionInstanceGroupManagerResizeRequestsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstanceGroupManagerResizeRequestsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstanceGroupManagerResizeRequestsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstanceGroupManagersRequest. */
                interface IListRegionInstanceGroupManagersRequest {

                    /** ListRegionInstanceGroupManagersRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstanceGroupManagersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest project */
                    project?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest region */
                    region?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstanceGroupManagersRequest. */
                class ListRegionInstanceGroupManagersRequest implements IListRegionInstanceGroupManagersRequest {

                    /**
                     * Constructs a new ListRegionInstanceGroupManagersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionInstanceGroupManagersRequest);

                    /** ListRegionInstanceGroupManagersRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstanceGroupManagersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstanceGroupManagersRequest project. */
                    public project: string;

                    /** ListRegionInstanceGroupManagersRequest region. */
                    public region: string;

                    /** ListRegionInstanceGroupManagersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstanceGroupManagersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstanceGroupManagersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionInstanceGroupManagersRequest): google.cloud.compute.v1beta.ListRegionInstanceGroupManagersRequest;

                    /**
                     * Encodes the specified ListRegionInstanceGroupManagersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstanceGroupManagersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstanceGroupManagersRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupManagersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionInstanceGroupManagersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstanceGroupManagersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionInstanceGroupManagersRequest;

                    /**
                     * Decodes a ListRegionInstanceGroupManagersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstanceGroupManagersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionInstanceGroupManagersRequest;

                    /**
                     * Verifies a ListRegionInstanceGroupManagersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstanceGroupManagersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstanceGroupManagersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionInstanceGroupManagersRequest;

                    /**
                     * Creates a plain object from a ListRegionInstanceGroupManagersRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstanceGroupManagersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionInstanceGroupManagersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstanceGroupManagersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstanceGroupManagersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstanceGroupsRequest. */
                interface IListRegionInstanceGroupsRequest {

                    /** ListRegionInstanceGroupsRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstanceGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstanceGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstanceGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstanceGroupsRequest project */
                    project?: (string|null);

                    /** ListRegionInstanceGroupsRequest region */
                    region?: (string|null);

                    /** ListRegionInstanceGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstanceGroupsRequest. */
                class ListRegionInstanceGroupsRequest implements IListRegionInstanceGroupsRequest {

                    /**
                     * Constructs a new ListRegionInstanceGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionInstanceGroupsRequest);

                    /** ListRegionInstanceGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstanceGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstanceGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstanceGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstanceGroupsRequest project. */
                    public project: string;

                    /** ListRegionInstanceGroupsRequest region. */
                    public region: string;

                    /** ListRegionInstanceGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstanceGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstanceGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionInstanceGroupsRequest): google.cloud.compute.v1beta.ListRegionInstanceGroupsRequest;

                    /**
                     * Encodes the specified ListRegionInstanceGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstanceGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstanceGroupsRequest.verify|verify} messages.
                     * @param message ListRegionInstanceGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionInstanceGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstanceGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionInstanceGroupsRequest;

                    /**
                     * Decodes a ListRegionInstanceGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstanceGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionInstanceGroupsRequest;

                    /**
                     * Verifies a ListRegionInstanceGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstanceGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstanceGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionInstanceGroupsRequest;

                    /**
                     * Creates a plain object from a ListRegionInstanceGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstanceGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionInstanceGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstanceGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstanceGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstanceTemplatesRequest. */
                interface IListRegionInstanceTemplatesRequest {

                    /** ListRegionInstanceTemplatesRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstanceTemplatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstanceTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstanceTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstanceTemplatesRequest project */
                    project?: (string|null);

                    /** ListRegionInstanceTemplatesRequest region */
                    region?: (string|null);

                    /** ListRegionInstanceTemplatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListRegionInstanceTemplatesRequest view */
                    view?: (string|null);
                }

                /** Represents a ListRegionInstanceTemplatesRequest. */
                class ListRegionInstanceTemplatesRequest implements IListRegionInstanceTemplatesRequest {

                    /**
                     * Constructs a new ListRegionInstanceTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionInstanceTemplatesRequest);

                    /** ListRegionInstanceTemplatesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstanceTemplatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstanceTemplatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstanceTemplatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstanceTemplatesRequest project. */
                    public project: string;

                    /** ListRegionInstanceTemplatesRequest region. */
                    public region: string;

                    /** ListRegionInstanceTemplatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListRegionInstanceTemplatesRequest view. */
                    public view?: (string|null);

                    /**
                     * Creates a new ListRegionInstanceTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstanceTemplatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionInstanceTemplatesRequest): google.cloud.compute.v1beta.ListRegionInstanceTemplatesRequest;

                    /**
                     * Encodes the specified ListRegionInstanceTemplatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstanceTemplatesRequest.verify|verify} messages.
                     * @param message ListRegionInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstanceTemplatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstanceTemplatesRequest.verify|verify} messages.
                     * @param message ListRegionInstanceTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionInstanceTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstanceTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionInstanceTemplatesRequest;

                    /**
                     * Decodes a ListRegionInstanceTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstanceTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionInstanceTemplatesRequest;

                    /**
                     * Verifies a ListRegionInstanceTemplatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstanceTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstanceTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionInstanceTemplatesRequest;

                    /**
                     * Creates a plain object from a ListRegionInstanceTemplatesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstanceTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionInstanceTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstanceTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstanceTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListRegionInstanceTemplatesRequest {

                    /** View enum. */
                    enum View {
                        UNDEFINED_VIEW = 0,
                        BASIC = 62970894,
                        FULL = 2169487,
                        INSTANCE_VIEW_UNSPECIFIED = 8444647
                    }
                }

                /** Properties of a ListRegionInstantSnapshotGroupsRequest. */
                interface IListRegionInstantSnapshotGroupsRequest {

                    /** ListRegionInstantSnapshotGroupsRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstantSnapshotGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstantSnapshotGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstantSnapshotGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstantSnapshotGroupsRequest project */
                    project?: (string|null);

                    /** ListRegionInstantSnapshotGroupsRequest region */
                    region?: (string|null);

                    /** ListRegionInstantSnapshotGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstantSnapshotGroupsRequest. */
                class ListRegionInstantSnapshotGroupsRequest implements IListRegionInstantSnapshotGroupsRequest {

                    /**
                     * Constructs a new ListRegionInstantSnapshotGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionInstantSnapshotGroupsRequest);

                    /** ListRegionInstantSnapshotGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstantSnapshotGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstantSnapshotGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstantSnapshotGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstantSnapshotGroupsRequest project. */
                    public project: string;

                    /** ListRegionInstantSnapshotGroupsRequest region. */
                    public region: string;

                    /** ListRegionInstantSnapshotGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstantSnapshotGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstantSnapshotGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionInstantSnapshotGroupsRequest): google.cloud.compute.v1beta.ListRegionInstantSnapshotGroupsRequest;

                    /**
                     * Encodes the specified ListRegionInstantSnapshotGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstantSnapshotGroupsRequest.verify|verify} messages.
                     * @param message ListRegionInstantSnapshotGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionInstantSnapshotGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstantSnapshotGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstantSnapshotGroupsRequest.verify|verify} messages.
                     * @param message ListRegionInstantSnapshotGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionInstantSnapshotGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstantSnapshotGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstantSnapshotGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionInstantSnapshotGroupsRequest;

                    /**
                     * Decodes a ListRegionInstantSnapshotGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstantSnapshotGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionInstantSnapshotGroupsRequest;

                    /**
                     * Verifies a ListRegionInstantSnapshotGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstantSnapshotGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstantSnapshotGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionInstantSnapshotGroupsRequest;

                    /**
                     * Creates a plain object from a ListRegionInstantSnapshotGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstantSnapshotGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionInstantSnapshotGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstantSnapshotGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstantSnapshotGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionInstantSnapshotsRequest. */
                interface IListRegionInstantSnapshotsRequest {

                    /** ListRegionInstantSnapshotsRequest filter */
                    filter?: (string|null);

                    /** ListRegionInstantSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionInstantSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionInstantSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionInstantSnapshotsRequest project */
                    project?: (string|null);

                    /** ListRegionInstantSnapshotsRequest region */
                    region?: (string|null);

                    /** ListRegionInstantSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionInstantSnapshotsRequest. */
                class ListRegionInstantSnapshotsRequest implements IListRegionInstantSnapshotsRequest {

                    /**
                     * Constructs a new ListRegionInstantSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionInstantSnapshotsRequest);

                    /** ListRegionInstantSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionInstantSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionInstantSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionInstantSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionInstantSnapshotsRequest project. */
                    public project: string;

                    /** ListRegionInstantSnapshotsRequest region. */
                    public region: string;

                    /** ListRegionInstantSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionInstantSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionInstantSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionInstantSnapshotsRequest): google.cloud.compute.v1beta.ListRegionInstantSnapshotsRequest;

                    /**
                     * Encodes the specified ListRegionInstantSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstantSnapshotsRequest.verify|verify} messages.
                     * @param message ListRegionInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionInstantSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionInstantSnapshotsRequest.verify|verify} messages.
                     * @param message ListRegionInstantSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionInstantSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionInstantSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionInstantSnapshotsRequest;

                    /**
                     * Decodes a ListRegionInstantSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionInstantSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionInstantSnapshotsRequest;

                    /**
                     * Verifies a ListRegionInstantSnapshotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionInstantSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionInstantSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionInstantSnapshotsRequest;

                    /**
                     * Creates a plain object from a ListRegionInstantSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionInstantSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionInstantSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionInstantSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionInstantSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionMultiMigMembersRequest. */
                interface IListRegionMultiMigMembersRequest {

                    /** ListRegionMultiMigMembersRequest filter */
                    filter?: (string|null);

                    /** ListRegionMultiMigMembersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionMultiMigMembersRequest multiMig */
                    multiMig?: (string|null);

                    /** ListRegionMultiMigMembersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionMultiMigMembersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionMultiMigMembersRequest project */
                    project?: (string|null);

                    /** ListRegionMultiMigMembersRequest region */
                    region?: (string|null);

                    /** ListRegionMultiMigMembersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionMultiMigMembersRequest. */
                class ListRegionMultiMigMembersRequest implements IListRegionMultiMigMembersRequest {

                    /**
                     * Constructs a new ListRegionMultiMigMembersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionMultiMigMembersRequest);

                    /** ListRegionMultiMigMembersRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionMultiMigMembersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionMultiMigMembersRequest multiMig. */
                    public multiMig: string;

                    /** ListRegionMultiMigMembersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionMultiMigMembersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionMultiMigMembersRequest project. */
                    public project: string;

                    /** ListRegionMultiMigMembersRequest region. */
                    public region: string;

                    /** ListRegionMultiMigMembersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionMultiMigMembersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionMultiMigMembersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionMultiMigMembersRequest): google.cloud.compute.v1beta.ListRegionMultiMigMembersRequest;

                    /**
                     * Encodes the specified ListRegionMultiMigMembersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionMultiMigMembersRequest.verify|verify} messages.
                     * @param message ListRegionMultiMigMembersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionMultiMigMembersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionMultiMigMembersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionMultiMigMembersRequest.verify|verify} messages.
                     * @param message ListRegionMultiMigMembersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionMultiMigMembersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionMultiMigMembersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionMultiMigMembersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionMultiMigMembersRequest;

                    /**
                     * Decodes a ListRegionMultiMigMembersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionMultiMigMembersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionMultiMigMembersRequest;

                    /**
                     * Verifies a ListRegionMultiMigMembersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionMultiMigMembersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionMultiMigMembersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionMultiMigMembersRequest;

                    /**
                     * Creates a plain object from a ListRegionMultiMigMembersRequest message. Also converts values to other types if specified.
                     * @param message ListRegionMultiMigMembersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionMultiMigMembersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionMultiMigMembersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionMultiMigMembersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionMultiMigsRequest. */
                interface IListRegionMultiMigsRequest {

                    /** ListRegionMultiMigsRequest filter */
                    filter?: (string|null);

                    /** ListRegionMultiMigsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionMultiMigsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionMultiMigsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionMultiMigsRequest project */
                    project?: (string|null);

                    /** ListRegionMultiMigsRequest region */
                    region?: (string|null);

                    /** ListRegionMultiMigsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionMultiMigsRequest. */
                class ListRegionMultiMigsRequest implements IListRegionMultiMigsRequest {

                    /**
                     * Constructs a new ListRegionMultiMigsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionMultiMigsRequest);

                    /** ListRegionMultiMigsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionMultiMigsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionMultiMigsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionMultiMigsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionMultiMigsRequest project. */
                    public project: string;

                    /** ListRegionMultiMigsRequest region. */
                    public region: string;

                    /** ListRegionMultiMigsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionMultiMigsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionMultiMigsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionMultiMigsRequest): google.cloud.compute.v1beta.ListRegionMultiMigsRequest;

                    /**
                     * Encodes the specified ListRegionMultiMigsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionMultiMigsRequest.verify|verify} messages.
                     * @param message ListRegionMultiMigsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionMultiMigsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionMultiMigsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionMultiMigsRequest.verify|verify} messages.
                     * @param message ListRegionMultiMigsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionMultiMigsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionMultiMigsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionMultiMigsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionMultiMigsRequest;

                    /**
                     * Decodes a ListRegionMultiMigsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionMultiMigsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionMultiMigsRequest;

                    /**
                     * Verifies a ListRegionMultiMigsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionMultiMigsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionMultiMigsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionMultiMigsRequest;

                    /**
                     * Creates a plain object from a ListRegionMultiMigsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionMultiMigsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionMultiMigsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionMultiMigsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionMultiMigsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionNetworkEndpointGroupsRequest. */
                interface IListRegionNetworkEndpointGroupsRequest {

                    /** ListRegionNetworkEndpointGroupsRequest filter */
                    filter?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionNetworkEndpointGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest project */
                    project?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest region */
                    region?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionNetworkEndpointGroupsRequest. */
                class ListRegionNetworkEndpointGroupsRequest implements IListRegionNetworkEndpointGroupsRequest {

                    /**
                     * Constructs a new ListRegionNetworkEndpointGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionNetworkEndpointGroupsRequest);

                    /** ListRegionNetworkEndpointGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionNetworkEndpointGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionNetworkEndpointGroupsRequest project. */
                    public project: string;

                    /** ListRegionNetworkEndpointGroupsRequest region. */
                    public region: string;

                    /** ListRegionNetworkEndpointGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionNetworkEndpointGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionNetworkEndpointGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionNetworkEndpointGroupsRequest): google.cloud.compute.v1beta.ListRegionNetworkEndpointGroupsRequest;

                    /**
                     * Encodes the specified ListRegionNetworkEndpointGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListRegionNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionNetworkEndpointGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionNetworkEndpointGroupsRequest.verify|verify} messages.
                     * @param message ListRegionNetworkEndpointGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionNetworkEndpointGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionNetworkEndpointGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionNetworkEndpointGroupsRequest;

                    /**
                     * Decodes a ListRegionNetworkEndpointGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionNetworkEndpointGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionNetworkEndpointGroupsRequest;

                    /**
                     * Verifies a ListRegionNetworkEndpointGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionNetworkEndpointGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionNetworkEndpointGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionNetworkEndpointGroupsRequest;

                    /**
                     * Creates a plain object from a ListRegionNetworkEndpointGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionNetworkEndpointGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionNetworkEndpointGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionNetworkEndpointGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionNetworkEndpointGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionNetworkFirewallPoliciesRequest. */
                interface IListRegionNetworkFirewallPoliciesRequest {

                    /** ListRegionNetworkFirewallPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionNetworkFirewallPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionNetworkFirewallPoliciesRequest. */
                class ListRegionNetworkFirewallPoliciesRequest implements IListRegionNetworkFirewallPoliciesRequest {

                    /**
                     * Constructs a new ListRegionNetworkFirewallPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionNetworkFirewallPoliciesRequest);

                    /** ListRegionNetworkFirewallPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionNetworkFirewallPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionNetworkFirewallPoliciesRequest project. */
                    public project: string;

                    /** ListRegionNetworkFirewallPoliciesRequest region. */
                    public region: string;

                    /** ListRegionNetworkFirewallPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionNetworkFirewallPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionNetworkFirewallPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionNetworkFirewallPoliciesRequest): google.cloud.compute.v1beta.ListRegionNetworkFirewallPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionNetworkFirewallPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionNetworkFirewallPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionNetworkFirewallPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionNetworkFirewallPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionNetworkFirewallPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionNetworkFirewallPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionNetworkFirewallPoliciesRequest;

                    /**
                     * Decodes a ListRegionNetworkFirewallPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionNetworkFirewallPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionNetworkFirewallPoliciesRequest;

                    /**
                     * Verifies a ListRegionNetworkFirewallPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionNetworkFirewallPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionNetworkFirewallPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionNetworkFirewallPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionNetworkFirewallPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionNetworkFirewallPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionNetworkFirewallPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionNetworkFirewallPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionNetworkFirewallPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionNetworkPoliciesRequest. */
                interface IListRegionNetworkPoliciesRequest {

                    /** ListRegionNetworkPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionNetworkPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionNetworkPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionNetworkPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionNetworkPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionNetworkPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionNetworkPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionNetworkPoliciesRequest. */
                class ListRegionNetworkPoliciesRequest implements IListRegionNetworkPoliciesRequest {

                    /**
                     * Constructs a new ListRegionNetworkPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionNetworkPoliciesRequest);

                    /** ListRegionNetworkPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionNetworkPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionNetworkPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionNetworkPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionNetworkPoliciesRequest project. */
                    public project: string;

                    /** ListRegionNetworkPoliciesRequest region. */
                    public region: string;

                    /** ListRegionNetworkPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionNetworkPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionNetworkPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionNetworkPoliciesRequest): google.cloud.compute.v1beta.ListRegionNetworkPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionNetworkPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionNetworkPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionNetworkPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionNetworkPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionNetworkPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionNetworkPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionNetworkPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionNetworkPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionNetworkPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionNetworkPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionNetworkPoliciesRequest;

                    /**
                     * Decodes a ListRegionNetworkPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionNetworkPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionNetworkPoliciesRequest;

                    /**
                     * Verifies a ListRegionNetworkPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionNetworkPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionNetworkPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionNetworkPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionNetworkPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionNetworkPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionNetworkPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionNetworkPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionNetworkPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionNotificationEndpointsRequest. */
                interface IListRegionNotificationEndpointsRequest {

                    /** ListRegionNotificationEndpointsRequest filter */
                    filter?: (string|null);

                    /** ListRegionNotificationEndpointsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionNotificationEndpointsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionNotificationEndpointsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionNotificationEndpointsRequest project */
                    project?: (string|null);

                    /** ListRegionNotificationEndpointsRequest region */
                    region?: (string|null);

                    /** ListRegionNotificationEndpointsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionNotificationEndpointsRequest. */
                class ListRegionNotificationEndpointsRequest implements IListRegionNotificationEndpointsRequest {

                    /**
                     * Constructs a new ListRegionNotificationEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionNotificationEndpointsRequest);

                    /** ListRegionNotificationEndpointsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionNotificationEndpointsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionNotificationEndpointsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionNotificationEndpointsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionNotificationEndpointsRequest project. */
                    public project: string;

                    /** ListRegionNotificationEndpointsRequest region. */
                    public region: string;

                    /** ListRegionNotificationEndpointsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionNotificationEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionNotificationEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionNotificationEndpointsRequest): google.cloud.compute.v1beta.ListRegionNotificationEndpointsRequest;

                    /**
                     * Encodes the specified ListRegionNotificationEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionNotificationEndpointsRequest.verify|verify} messages.
                     * @param message ListRegionNotificationEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionNotificationEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionNotificationEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionNotificationEndpointsRequest.verify|verify} messages.
                     * @param message ListRegionNotificationEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionNotificationEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionNotificationEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionNotificationEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionNotificationEndpointsRequest;

                    /**
                     * Decodes a ListRegionNotificationEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionNotificationEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionNotificationEndpointsRequest;

                    /**
                     * Verifies a ListRegionNotificationEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionNotificationEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionNotificationEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionNotificationEndpointsRequest;

                    /**
                     * Creates a plain object from a ListRegionNotificationEndpointsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionNotificationEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionNotificationEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionNotificationEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionNotificationEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionOperationsRequest. */
                interface IListRegionOperationsRequest {

                    /** ListRegionOperationsRequest filter */
                    filter?: (string|null);

                    /** ListRegionOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionOperationsRequest project */
                    project?: (string|null);

                    /** ListRegionOperationsRequest region */
                    region?: (string|null);

                    /** ListRegionOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionOperationsRequest. */
                class ListRegionOperationsRequest implements IListRegionOperationsRequest {

                    /**
                     * Constructs a new ListRegionOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionOperationsRequest);

                    /** ListRegionOperationsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionOperationsRequest project. */
                    public project: string;

                    /** ListRegionOperationsRequest region. */
                    public region: string;

                    /** ListRegionOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionOperationsRequest): google.cloud.compute.v1beta.ListRegionOperationsRequest;

                    /**
                     * Encodes the specified ListRegionOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionOperationsRequest.verify|verify} messages.
                     * @param message ListRegionOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionOperationsRequest.verify|verify} messages.
                     * @param message ListRegionOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionOperationsRequest;

                    /**
                     * Decodes a ListRegionOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionOperationsRequest;

                    /**
                     * Verifies a ListRegionOperationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionOperationsRequest;

                    /**
                     * Creates a plain object from a ListRegionOperationsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionSecurityPoliciesRequest. */
                interface IListRegionSecurityPoliciesRequest {

                    /** ListRegionSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionSecurityPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionSecurityPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionSecurityPoliciesRequest. */
                class ListRegionSecurityPoliciesRequest implements IListRegionSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListRegionSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionSecurityPoliciesRequest);

                    /** ListRegionSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionSecurityPoliciesRequest project. */
                    public project: string;

                    /** ListRegionSecurityPoliciesRequest region. */
                    public region: string;

                    /** ListRegionSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionSecurityPoliciesRequest): google.cloud.compute.v1beta.ListRegionSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionSecurityPoliciesRequest;

                    /**
                     * Decodes a ListRegionSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionSecurityPoliciesRequest;

                    /**
                     * Verifies a ListRegionSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionSnapshotsRequest. */
                interface IListRegionSnapshotsRequest {

                    /** ListRegionSnapshotsRequest filter */
                    filter?: (string|null);

                    /** ListRegionSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionSnapshotsRequest project */
                    project?: (string|null);

                    /** ListRegionSnapshotsRequest region */
                    region?: (string|null);

                    /** ListRegionSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionSnapshotsRequest. */
                class ListRegionSnapshotsRequest implements IListRegionSnapshotsRequest {

                    /**
                     * Constructs a new ListRegionSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionSnapshotsRequest);

                    /** ListRegionSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionSnapshotsRequest project. */
                    public project: string;

                    /** ListRegionSnapshotsRequest region. */
                    public region: string;

                    /** ListRegionSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionSnapshotsRequest): google.cloud.compute.v1beta.ListRegionSnapshotsRequest;

                    /**
                     * Encodes the specified ListRegionSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionSnapshotsRequest.verify|verify} messages.
                     * @param message ListRegionSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionSnapshotsRequest.verify|verify} messages.
                     * @param message ListRegionSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionSnapshotsRequest;

                    /**
                     * Decodes a ListRegionSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionSnapshotsRequest;

                    /**
                     * Verifies a ListRegionSnapshotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionSnapshotsRequest;

                    /**
                     * Creates a plain object from a ListRegionSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionSslCertificatesRequest. */
                interface IListRegionSslCertificatesRequest {

                    /** ListRegionSslCertificatesRequest filter */
                    filter?: (string|null);

                    /** ListRegionSslCertificatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionSslCertificatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionSslCertificatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionSslCertificatesRequest project */
                    project?: (string|null);

                    /** ListRegionSslCertificatesRequest region */
                    region?: (string|null);

                    /** ListRegionSslCertificatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionSslCertificatesRequest. */
                class ListRegionSslCertificatesRequest implements IListRegionSslCertificatesRequest {

                    /**
                     * Constructs a new ListRegionSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionSslCertificatesRequest);

                    /** ListRegionSslCertificatesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionSslCertificatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionSslCertificatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionSslCertificatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionSslCertificatesRequest project. */
                    public project: string;

                    /** ListRegionSslCertificatesRequest region. */
                    public region: string;

                    /** ListRegionSslCertificatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionSslCertificatesRequest): google.cloud.compute.v1beta.ListRegionSslCertificatesRequest;

                    /**
                     * Encodes the specified ListRegionSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionSslCertificatesRequest.verify|verify} messages.
                     * @param message ListRegionSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionSslCertificatesRequest.verify|verify} messages.
                     * @param message ListRegionSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionSslCertificatesRequest;

                    /**
                     * Decodes a ListRegionSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionSslCertificatesRequest;

                    /**
                     * Verifies a ListRegionSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionSslCertificatesRequest;

                    /**
                     * Creates a plain object from a ListRegionSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionSslPoliciesRequest. */
                interface IListRegionSslPoliciesRequest {

                    /** ListRegionSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListRegionSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionSslPoliciesRequest project */
                    project?: (string|null);

                    /** ListRegionSslPoliciesRequest region */
                    region?: (string|null);

                    /** ListRegionSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionSslPoliciesRequest. */
                class ListRegionSslPoliciesRequest implements IListRegionSslPoliciesRequest {

                    /**
                     * Constructs a new ListRegionSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionSslPoliciesRequest);

                    /** ListRegionSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionSslPoliciesRequest project. */
                    public project: string;

                    /** ListRegionSslPoliciesRequest region. */
                    public region: string;

                    /** ListRegionSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionSslPoliciesRequest): google.cloud.compute.v1beta.ListRegionSslPoliciesRequest;

                    /**
                     * Encodes the specified ListRegionSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionSslPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionSslPoliciesRequest.verify|verify} messages.
                     * @param message ListRegionSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionSslPoliciesRequest;

                    /**
                     * Decodes a ListRegionSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionSslPoliciesRequest;

                    /**
                     * Verifies a ListRegionSslPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionSslPoliciesRequest;

                    /**
                     * Creates a plain object from a ListRegionSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionTargetHttpProxiesRequest. */
                interface IListRegionTargetHttpProxiesRequest {

                    /** ListRegionTargetHttpProxiesRequest filter */
                    filter?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionTargetHttpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest project */
                    project?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest region */
                    region?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionTargetHttpProxiesRequest. */
                class ListRegionTargetHttpProxiesRequest implements IListRegionTargetHttpProxiesRequest {

                    /**
                     * Constructs a new ListRegionTargetHttpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionTargetHttpProxiesRequest);

                    /** ListRegionTargetHttpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionTargetHttpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionTargetHttpProxiesRequest project. */
                    public project: string;

                    /** ListRegionTargetHttpProxiesRequest region. */
                    public region: string;

                    /** ListRegionTargetHttpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionTargetHttpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionTargetHttpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionTargetHttpProxiesRequest): google.cloud.compute.v1beta.ListRegionTargetHttpProxiesRequest;

                    /**
                     * Encodes the specified ListRegionTargetHttpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionTargetHttpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionTargetHttpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionTargetHttpProxiesRequest;

                    /**
                     * Decodes a ListRegionTargetHttpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionTargetHttpProxiesRequest;

                    /**
                     * Verifies a ListRegionTargetHttpProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionTargetHttpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionTargetHttpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionTargetHttpProxiesRequest;

                    /**
                     * Creates a plain object from a ListRegionTargetHttpProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionTargetHttpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionTargetHttpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionTargetHttpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionTargetHttpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionTargetHttpsProxiesRequest. */
                interface IListRegionTargetHttpsProxiesRequest {

                    /** ListRegionTargetHttpsProxiesRequest filter */
                    filter?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionTargetHttpsProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest project */
                    project?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest region */
                    region?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionTargetHttpsProxiesRequest. */
                class ListRegionTargetHttpsProxiesRequest implements IListRegionTargetHttpsProxiesRequest {

                    /**
                     * Constructs a new ListRegionTargetHttpsProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionTargetHttpsProxiesRequest);

                    /** ListRegionTargetHttpsProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionTargetHttpsProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionTargetHttpsProxiesRequest project. */
                    public project: string;

                    /** ListRegionTargetHttpsProxiesRequest region. */
                    public region: string;

                    /** ListRegionTargetHttpsProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionTargetHttpsProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionTargetHttpsProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionTargetHttpsProxiesRequest): google.cloud.compute.v1beta.ListRegionTargetHttpsProxiesRequest;

                    /**
                     * Encodes the specified ListRegionTargetHttpsProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionTargetHttpsProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionTargetHttpsProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionTargetHttpsProxiesRequest;

                    /**
                     * Decodes a ListRegionTargetHttpsProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionTargetHttpsProxiesRequest;

                    /**
                     * Verifies a ListRegionTargetHttpsProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionTargetHttpsProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionTargetHttpsProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionTargetHttpsProxiesRequest;

                    /**
                     * Creates a plain object from a ListRegionTargetHttpsProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionTargetHttpsProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionTargetHttpsProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionTargetHttpsProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionTargetHttpsProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionTargetTcpProxiesRequest. */
                interface IListRegionTargetTcpProxiesRequest {

                    /** ListRegionTargetTcpProxiesRequest filter */
                    filter?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionTargetTcpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest project */
                    project?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest region */
                    region?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionTargetTcpProxiesRequest. */
                class ListRegionTargetTcpProxiesRequest implements IListRegionTargetTcpProxiesRequest {

                    /**
                     * Constructs a new ListRegionTargetTcpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionTargetTcpProxiesRequest);

                    /** ListRegionTargetTcpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionTargetTcpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionTargetTcpProxiesRequest project. */
                    public project: string;

                    /** ListRegionTargetTcpProxiesRequest region. */
                    public region: string;

                    /** ListRegionTargetTcpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionTargetTcpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionTargetTcpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionTargetTcpProxiesRequest): google.cloud.compute.v1beta.ListRegionTargetTcpProxiesRequest;

                    /**
                     * Encodes the specified ListRegionTargetTcpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionTargetTcpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message ListRegionTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionTargetTcpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionTargetTcpProxiesRequest;

                    /**
                     * Decodes a ListRegionTargetTcpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionTargetTcpProxiesRequest;

                    /**
                     * Verifies a ListRegionTargetTcpProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionTargetTcpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionTargetTcpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionTargetTcpProxiesRequest;

                    /**
                     * Creates a plain object from a ListRegionTargetTcpProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionTargetTcpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionTargetTcpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionTargetTcpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionTargetTcpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionUrlMapsRequest. */
                interface IListRegionUrlMapsRequest {

                    /** ListRegionUrlMapsRequest filter */
                    filter?: (string|null);

                    /** ListRegionUrlMapsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionUrlMapsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionUrlMapsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionUrlMapsRequest project */
                    project?: (string|null);

                    /** ListRegionUrlMapsRequest region */
                    region?: (string|null);

                    /** ListRegionUrlMapsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionUrlMapsRequest. */
                class ListRegionUrlMapsRequest implements IListRegionUrlMapsRequest {

                    /**
                     * Constructs a new ListRegionUrlMapsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionUrlMapsRequest);

                    /** ListRegionUrlMapsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionUrlMapsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionUrlMapsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionUrlMapsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionUrlMapsRequest project. */
                    public project: string;

                    /** ListRegionUrlMapsRequest region. */
                    public region: string;

                    /** ListRegionUrlMapsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionUrlMapsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionUrlMapsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionUrlMapsRequest): google.cloud.compute.v1beta.ListRegionUrlMapsRequest;

                    /**
                     * Encodes the specified ListRegionUrlMapsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionUrlMapsRequest.verify|verify} messages.
                     * @param message ListRegionUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionUrlMapsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionUrlMapsRequest.verify|verify} messages.
                     * @param message ListRegionUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionUrlMapsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionUrlMapsRequest;

                    /**
                     * Decodes a ListRegionUrlMapsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionUrlMapsRequest;

                    /**
                     * Verifies a ListRegionUrlMapsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionUrlMapsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionUrlMapsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionUrlMapsRequest;

                    /**
                     * Creates a plain object from a ListRegionUrlMapsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionUrlMapsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionUrlMapsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionUrlMapsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionUrlMapsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionZonesRequest. */
                interface IListRegionZonesRequest {

                    /** ListRegionZonesRequest filter */
                    filter?: (string|null);

                    /** ListRegionZonesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionZonesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionZonesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionZonesRequest project */
                    project?: (string|null);

                    /** ListRegionZonesRequest region */
                    region?: (string|null);

                    /** ListRegionZonesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionZonesRequest. */
                class ListRegionZonesRequest implements IListRegionZonesRequest {

                    /**
                     * Constructs a new ListRegionZonesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionZonesRequest);

                    /** ListRegionZonesRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionZonesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionZonesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionZonesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionZonesRequest project. */
                    public project: string;

                    /** ListRegionZonesRequest region. */
                    public region: string;

                    /** ListRegionZonesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionZonesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionZonesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionZonesRequest): google.cloud.compute.v1beta.ListRegionZonesRequest;

                    /**
                     * Encodes the specified ListRegionZonesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionZonesRequest.verify|verify} messages.
                     * @param message ListRegionZonesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionZonesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionZonesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionZonesRequest.verify|verify} messages.
                     * @param message ListRegionZonesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionZonesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionZonesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionZonesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionZonesRequest;

                    /**
                     * Decodes a ListRegionZonesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionZonesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionZonesRequest;

                    /**
                     * Verifies a ListRegionZonesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionZonesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionZonesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionZonesRequest;

                    /**
                     * Creates a plain object from a ListRegionZonesRequest message. Also converts values to other types if specified.
                     * @param message ListRegionZonesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionZonesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionZonesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionZonesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRegionsRequest. */
                interface IListRegionsRequest {

                    /** ListRegionsRequest filter */
                    filter?: (string|null);

                    /** ListRegionsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRegionsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRegionsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRegionsRequest project */
                    project?: (string|null);

                    /** ListRegionsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRegionsRequest. */
                class ListRegionsRequest implements IListRegionsRequest {

                    /**
                     * Constructs a new ListRegionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRegionsRequest);

                    /** ListRegionsRequest filter. */
                    public filter?: (string|null);

                    /** ListRegionsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRegionsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRegionsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRegionsRequest project. */
                    public project: string;

                    /** ListRegionsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRegionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRegionsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRegionsRequest): google.cloud.compute.v1beta.ListRegionsRequest;

                    /**
                     * Encodes the specified ListRegionsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionsRequest.verify|verify} messages.
                     * @param message ListRegionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRegionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRegionsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRegionsRequest.verify|verify} messages.
                     * @param message ListRegionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRegionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRegionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRegionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRegionsRequest;

                    /**
                     * Decodes a ListRegionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRegionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRegionsRequest;

                    /**
                     * Verifies a ListRegionsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRegionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRegionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRegionsRequest;

                    /**
                     * Creates a plain object from a ListRegionsRequest message. Also converts values to other types if specified.
                     * @param message ListRegionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRegionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRegionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRegionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReservationBlocksRequest. */
                interface IListReservationBlocksRequest {

                    /** ListReservationBlocksRequest filter */
                    filter?: (string|null);

                    /** ListReservationBlocksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReservationBlocksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReservationBlocksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReservationBlocksRequest project */
                    project?: (string|null);

                    /** ListReservationBlocksRequest reservation */
                    reservation?: (string|null);

                    /** ListReservationBlocksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReservationBlocksRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReservationBlocksRequest. */
                class ListReservationBlocksRequest implements IListReservationBlocksRequest {

                    /**
                     * Constructs a new ListReservationBlocksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListReservationBlocksRequest);

                    /** ListReservationBlocksRequest filter. */
                    public filter?: (string|null);

                    /** ListReservationBlocksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReservationBlocksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReservationBlocksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReservationBlocksRequest project. */
                    public project: string;

                    /** ListReservationBlocksRequest reservation. */
                    public reservation: string;

                    /** ListReservationBlocksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReservationBlocksRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReservationBlocksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReservationBlocksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListReservationBlocksRequest): google.cloud.compute.v1beta.ListReservationBlocksRequest;

                    /**
                     * Encodes the specified ListReservationBlocksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListReservationBlocksRequest.verify|verify} messages.
                     * @param message ListReservationBlocksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListReservationBlocksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReservationBlocksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListReservationBlocksRequest.verify|verify} messages.
                     * @param message ListReservationBlocksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListReservationBlocksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReservationBlocksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReservationBlocksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListReservationBlocksRequest;

                    /**
                     * Decodes a ListReservationBlocksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReservationBlocksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListReservationBlocksRequest;

                    /**
                     * Verifies a ListReservationBlocksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReservationBlocksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReservationBlocksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListReservationBlocksRequest;

                    /**
                     * Creates a plain object from a ListReservationBlocksRequest message. Also converts values to other types if specified.
                     * @param message ListReservationBlocksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListReservationBlocksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReservationBlocksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReservationBlocksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReservationSlotsRequest. */
                interface IListReservationSlotsRequest {

                    /** ListReservationSlotsRequest filter */
                    filter?: (string|null);

                    /** ListReservationSlotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReservationSlotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReservationSlotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReservationSlotsRequest parentName */
                    parentName?: (string|null);

                    /** ListReservationSlotsRequest project */
                    project?: (string|null);

                    /** ListReservationSlotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReservationSlotsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReservationSlotsRequest. */
                class ListReservationSlotsRequest implements IListReservationSlotsRequest {

                    /**
                     * Constructs a new ListReservationSlotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListReservationSlotsRequest);

                    /** ListReservationSlotsRequest filter. */
                    public filter?: (string|null);

                    /** ListReservationSlotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReservationSlotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReservationSlotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReservationSlotsRequest parentName. */
                    public parentName: string;

                    /** ListReservationSlotsRequest project. */
                    public project: string;

                    /** ListReservationSlotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReservationSlotsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReservationSlotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReservationSlotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListReservationSlotsRequest): google.cloud.compute.v1beta.ListReservationSlotsRequest;

                    /**
                     * Encodes the specified ListReservationSlotsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListReservationSlotsRequest.verify|verify} messages.
                     * @param message ListReservationSlotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListReservationSlotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReservationSlotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListReservationSlotsRequest.verify|verify} messages.
                     * @param message ListReservationSlotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListReservationSlotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReservationSlotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReservationSlotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListReservationSlotsRequest;

                    /**
                     * Decodes a ListReservationSlotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReservationSlotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListReservationSlotsRequest;

                    /**
                     * Verifies a ListReservationSlotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReservationSlotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReservationSlotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListReservationSlotsRequest;

                    /**
                     * Creates a plain object from a ListReservationSlotsRequest message. Also converts values to other types if specified.
                     * @param message ListReservationSlotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListReservationSlotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReservationSlotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReservationSlotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReservationSubBlocksRequest. */
                interface IListReservationSubBlocksRequest {

                    /** ListReservationSubBlocksRequest filter */
                    filter?: (string|null);

                    /** ListReservationSubBlocksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReservationSubBlocksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReservationSubBlocksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReservationSubBlocksRequest parentName */
                    parentName?: (string|null);

                    /** ListReservationSubBlocksRequest project */
                    project?: (string|null);

                    /** ListReservationSubBlocksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReservationSubBlocksRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReservationSubBlocksRequest. */
                class ListReservationSubBlocksRequest implements IListReservationSubBlocksRequest {

                    /**
                     * Constructs a new ListReservationSubBlocksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListReservationSubBlocksRequest);

                    /** ListReservationSubBlocksRequest filter. */
                    public filter?: (string|null);

                    /** ListReservationSubBlocksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReservationSubBlocksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReservationSubBlocksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReservationSubBlocksRequest parentName. */
                    public parentName: string;

                    /** ListReservationSubBlocksRequest project. */
                    public project: string;

                    /** ListReservationSubBlocksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReservationSubBlocksRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReservationSubBlocksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReservationSubBlocksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListReservationSubBlocksRequest): google.cloud.compute.v1beta.ListReservationSubBlocksRequest;

                    /**
                     * Encodes the specified ListReservationSubBlocksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListReservationSubBlocksRequest.verify|verify} messages.
                     * @param message ListReservationSubBlocksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListReservationSubBlocksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReservationSubBlocksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListReservationSubBlocksRequest.verify|verify} messages.
                     * @param message ListReservationSubBlocksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListReservationSubBlocksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReservationSubBlocksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReservationSubBlocksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListReservationSubBlocksRequest;

                    /**
                     * Decodes a ListReservationSubBlocksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReservationSubBlocksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListReservationSubBlocksRequest;

                    /**
                     * Verifies a ListReservationSubBlocksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReservationSubBlocksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReservationSubBlocksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListReservationSubBlocksRequest;

                    /**
                     * Creates a plain object from a ListReservationSubBlocksRequest message. Also converts values to other types if specified.
                     * @param message ListReservationSubBlocksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListReservationSubBlocksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReservationSubBlocksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReservationSubBlocksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReservationsRequest. */
                interface IListReservationsRequest {

                    /** ListReservationsRequest filter */
                    filter?: (string|null);

                    /** ListReservationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListReservationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReservationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReservationsRequest project */
                    project?: (string|null);

                    /** ListReservationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListReservationsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListReservationsRequest. */
                class ListReservationsRequest implements IListReservationsRequest {

                    /**
                     * Constructs a new ListReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListReservationsRequest);

                    /** ListReservationsRequest filter. */
                    public filter?: (string|null);

                    /** ListReservationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListReservationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListReservationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListReservationsRequest project. */
                    public project: string;

                    /** ListReservationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListReservationsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListReservationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReservationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListReservationsRequest): google.cloud.compute.v1beta.ListReservationsRequest;

                    /**
                     * Encodes the specified ListReservationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListReservationsRequest.verify|verify} messages.
                     * @param message ListReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReservationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListReservationsRequest.verify|verify} messages.
                     * @param message ListReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReservationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListReservationsRequest;

                    /**
                     * Decodes a ListReservationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListReservationsRequest;

                    /**
                     * Verifies a ListReservationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReservationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReservationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListReservationsRequest;

                    /**
                     * Creates a plain object from a ListReservationsRequest message. Also converts values to other types if specified.
                     * @param message ListReservationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListReservationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReservationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReservationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListResourcePoliciesRequest. */
                interface IListResourcePoliciesRequest {

                    /** ListResourcePoliciesRequest filter */
                    filter?: (string|null);

                    /** ListResourcePoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListResourcePoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListResourcePoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListResourcePoliciesRequest project */
                    project?: (string|null);

                    /** ListResourcePoliciesRequest region */
                    region?: (string|null);

                    /** ListResourcePoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListResourcePoliciesRequest. */
                class ListResourcePoliciesRequest implements IListResourcePoliciesRequest {

                    /**
                     * Constructs a new ListResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListResourcePoliciesRequest);

                    /** ListResourcePoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListResourcePoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListResourcePoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListResourcePoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListResourcePoliciesRequest project. */
                    public project: string;

                    /** ListResourcePoliciesRequest region. */
                    public region: string;

                    /** ListResourcePoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListResourcePoliciesRequest): google.cloud.compute.v1beta.ListResourcePoliciesRequest;

                    /**
                     * Encodes the specified ListResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListResourcePoliciesRequest.verify|verify} messages.
                     * @param message ListResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListResourcePoliciesRequest.verify|verify} messages.
                     * @param message ListResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListResourcePoliciesRequest;

                    /**
                     * Decodes a ListResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListResourcePoliciesRequest;

                    /**
                     * Verifies a ListResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a ListResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRolloutPlansRequest. */
                interface IListRolloutPlansRequest {

                    /** ListRolloutPlansRequest filter */
                    filter?: (string|null);

                    /** ListRolloutPlansRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRolloutPlansRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRolloutPlansRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRolloutPlansRequest project */
                    project?: (string|null);

                    /** ListRolloutPlansRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRolloutPlansRequest. */
                class ListRolloutPlansRequest implements IListRolloutPlansRequest {

                    /**
                     * Constructs a new ListRolloutPlansRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRolloutPlansRequest);

                    /** ListRolloutPlansRequest filter. */
                    public filter?: (string|null);

                    /** ListRolloutPlansRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRolloutPlansRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRolloutPlansRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRolloutPlansRequest project. */
                    public project: string;

                    /** ListRolloutPlansRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRolloutPlansRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRolloutPlansRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRolloutPlansRequest): google.cloud.compute.v1beta.ListRolloutPlansRequest;

                    /**
                     * Encodes the specified ListRolloutPlansRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRolloutPlansRequest.verify|verify} messages.
                     * @param message ListRolloutPlansRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRolloutPlansRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRolloutPlansRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRolloutPlansRequest.verify|verify} messages.
                     * @param message ListRolloutPlansRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRolloutPlansRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRolloutPlansRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRolloutPlansRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRolloutPlansRequest;

                    /**
                     * Decodes a ListRolloutPlansRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRolloutPlansRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRolloutPlansRequest;

                    /**
                     * Verifies a ListRolloutPlansRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRolloutPlansRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRolloutPlansRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRolloutPlansRequest;

                    /**
                     * Creates a plain object from a ListRolloutPlansRequest message. Also converts values to other types if specified.
                     * @param message ListRolloutPlansRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRolloutPlansRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRolloutPlansRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRolloutPlansRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRolloutsRequest. */
                interface IListRolloutsRequest {

                    /** ListRolloutsRequest filter */
                    filter?: (string|null);

                    /** ListRolloutsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRolloutsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRolloutsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRolloutsRequest project */
                    project?: (string|null);

                    /** ListRolloutsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRolloutsRequest. */
                class ListRolloutsRequest implements IListRolloutsRequest {

                    /**
                     * Constructs a new ListRolloutsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRolloutsRequest);

                    /** ListRolloutsRequest filter. */
                    public filter?: (string|null);

                    /** ListRolloutsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRolloutsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRolloutsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRolloutsRequest project. */
                    public project: string;

                    /** ListRolloutsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRolloutsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRolloutsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRolloutsRequest): google.cloud.compute.v1beta.ListRolloutsRequest;

                    /**
                     * Encodes the specified ListRolloutsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRolloutsRequest.verify|verify} messages.
                     * @param message ListRolloutsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRolloutsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRolloutsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRolloutsRequest.verify|verify} messages.
                     * @param message ListRolloutsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRolloutsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRolloutsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRolloutsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRolloutsRequest;

                    /**
                     * Decodes a ListRolloutsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRolloutsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRolloutsRequest;

                    /**
                     * Verifies a ListRolloutsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRolloutsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRolloutsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRolloutsRequest;

                    /**
                     * Creates a plain object from a ListRolloutsRequest message. Also converts values to other types if specified.
                     * @param message ListRolloutsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRolloutsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRolloutsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRolloutsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutePoliciesRoutersRequest. */
                interface IListRoutePoliciesRoutersRequest {

                    /** ListRoutePoliciesRoutersRequest filter */
                    filter?: (string|null);

                    /** ListRoutePoliciesRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRoutePoliciesRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRoutePoliciesRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRoutePoliciesRoutersRequest project */
                    project?: (string|null);

                    /** ListRoutePoliciesRoutersRequest region */
                    region?: (string|null);

                    /** ListRoutePoliciesRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListRoutePoliciesRoutersRequest router */
                    router?: (string|null);
                }

                /** Represents a ListRoutePoliciesRoutersRequest. */
                class ListRoutePoliciesRoutersRequest implements IListRoutePoliciesRoutersRequest {

                    /**
                     * Constructs a new ListRoutePoliciesRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRoutePoliciesRoutersRequest);

                    /** ListRoutePoliciesRoutersRequest filter. */
                    public filter?: (string|null);

                    /** ListRoutePoliciesRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRoutePoliciesRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRoutePoliciesRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRoutePoliciesRoutersRequest project. */
                    public project: string;

                    /** ListRoutePoliciesRoutersRequest region. */
                    public region: string;

                    /** ListRoutePoliciesRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListRoutePoliciesRoutersRequest router. */
                    public router: string;

                    /**
                     * Creates a new ListRoutePoliciesRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutePoliciesRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRoutePoliciesRoutersRequest): google.cloud.compute.v1beta.ListRoutePoliciesRoutersRequest;

                    /**
                     * Encodes the specified ListRoutePoliciesRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRoutePoliciesRoutersRequest.verify|verify} messages.
                     * @param message ListRoutePoliciesRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRoutePoliciesRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutePoliciesRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRoutePoliciesRoutersRequest.verify|verify} messages.
                     * @param message ListRoutePoliciesRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRoutePoliciesRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutePoliciesRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutePoliciesRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRoutePoliciesRoutersRequest;

                    /**
                     * Decodes a ListRoutePoliciesRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutePoliciesRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRoutePoliciesRoutersRequest;

                    /**
                     * Verifies a ListRoutePoliciesRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutePoliciesRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutePoliciesRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRoutePoliciesRoutersRequest;

                    /**
                     * Creates a plain object from a ListRoutePoliciesRoutersRequest message. Also converts values to other types if specified.
                     * @param message ListRoutePoliciesRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRoutePoliciesRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutePoliciesRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutePoliciesRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutersRequest. */
                interface IListRoutersRequest {

                    /** ListRoutersRequest filter */
                    filter?: (string|null);

                    /** ListRoutersRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRoutersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRoutersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRoutersRequest project */
                    project?: (string|null);

                    /** ListRoutersRequest region */
                    region?: (string|null);

                    /** ListRoutersRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRoutersRequest. */
                class ListRoutersRequest implements IListRoutersRequest {

                    /**
                     * Constructs a new ListRoutersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRoutersRequest);

                    /** ListRoutersRequest filter. */
                    public filter?: (string|null);

                    /** ListRoutersRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRoutersRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRoutersRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRoutersRequest project. */
                    public project: string;

                    /** ListRoutersRequest region. */
                    public region: string;

                    /** ListRoutersRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRoutersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutersRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRoutersRequest): google.cloud.compute.v1beta.ListRoutersRequest;

                    /**
                     * Encodes the specified ListRoutersRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRoutersRequest.verify|verify} messages.
                     * @param message ListRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutersRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRoutersRequest.verify|verify} messages.
                     * @param message ListRoutersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRoutersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRoutersRequest;

                    /**
                     * Decodes a ListRoutersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRoutersRequest;

                    /**
                     * Verifies a ListRoutersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRoutersRequest;

                    /**
                     * Creates a plain object from a ListRoutersRequest message. Also converts values to other types if specified.
                     * @param message ListRoutersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRoutersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutesRequest. */
                interface IListRoutesRequest {

                    /** ListRoutesRequest filter */
                    filter?: (string|null);

                    /** ListRoutesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListRoutesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRoutesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRoutesRequest project */
                    project?: (string|null);

                    /** ListRoutesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListRoutesRequest. */
                class ListRoutesRequest implements IListRoutesRequest {

                    /**
                     * Constructs a new ListRoutesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListRoutesRequest);

                    /** ListRoutesRequest filter. */
                    public filter?: (string|null);

                    /** ListRoutesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListRoutesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListRoutesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListRoutesRequest project. */
                    public project: string;

                    /** ListRoutesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListRoutesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListRoutesRequest): google.cloud.compute.v1beta.ListRoutesRequest;

                    /**
                     * Encodes the specified ListRoutesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListRoutesRequest.verify|verify} messages.
                     * @param message ListRoutesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListRoutesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListRoutesRequest.verify|verify} messages.
                     * @param message ListRoutesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListRoutesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListRoutesRequest;

                    /**
                     * Decodes a ListRoutesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListRoutesRequest;

                    /**
                     * Verifies a ListRoutesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListRoutesRequest;

                    /**
                     * Creates a plain object from a ListRoutesRequest message. Also converts values to other types if specified.
                     * @param message ListRoutesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListRoutesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSecurityPoliciesRequest. */
                interface IListSecurityPoliciesRequest {

                    /** ListSecurityPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListSecurityPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSecurityPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSecurityPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSecurityPoliciesRequest project */
                    project?: (string|null);

                    /** ListSecurityPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSecurityPoliciesRequest. */
                class ListSecurityPoliciesRequest implements IListSecurityPoliciesRequest {

                    /**
                     * Constructs a new ListSecurityPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListSecurityPoliciesRequest);

                    /** ListSecurityPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListSecurityPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSecurityPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSecurityPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSecurityPoliciesRequest project. */
                    public project: string;

                    /** ListSecurityPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSecurityPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSecurityPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListSecurityPoliciesRequest): google.cloud.compute.v1beta.ListSecurityPoliciesRequest;

                    /**
                     * Encodes the specified ListSecurityPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSecurityPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListSecurityPoliciesRequest.verify|verify} messages.
                     * @param message ListSecurityPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListSecurityPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSecurityPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListSecurityPoliciesRequest;

                    /**
                     * Decodes a ListSecurityPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSecurityPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListSecurityPoliciesRequest;

                    /**
                     * Verifies a ListSecurityPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSecurityPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSecurityPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListSecurityPoliciesRequest;

                    /**
                     * Creates a plain object from a ListSecurityPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListSecurityPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListSecurityPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSecurityPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSecurityPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListServiceAttachmentsRequest. */
                interface IListServiceAttachmentsRequest {

                    /** ListServiceAttachmentsRequest filter */
                    filter?: (string|null);

                    /** ListServiceAttachmentsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListServiceAttachmentsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListServiceAttachmentsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListServiceAttachmentsRequest project */
                    project?: (string|null);

                    /** ListServiceAttachmentsRequest region */
                    region?: (string|null);

                    /** ListServiceAttachmentsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListServiceAttachmentsRequest. */
                class ListServiceAttachmentsRequest implements IListServiceAttachmentsRequest {

                    /**
                     * Constructs a new ListServiceAttachmentsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListServiceAttachmentsRequest);

                    /** ListServiceAttachmentsRequest filter. */
                    public filter?: (string|null);

                    /** ListServiceAttachmentsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListServiceAttachmentsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListServiceAttachmentsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListServiceAttachmentsRequest project. */
                    public project: string;

                    /** ListServiceAttachmentsRequest region. */
                    public region: string;

                    /** ListServiceAttachmentsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListServiceAttachmentsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListServiceAttachmentsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListServiceAttachmentsRequest): google.cloud.compute.v1beta.ListServiceAttachmentsRequest;

                    /**
                     * Encodes the specified ListServiceAttachmentsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListServiceAttachmentsRequest.verify|verify} messages.
                     * @param message ListServiceAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListServiceAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListServiceAttachmentsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListServiceAttachmentsRequest.verify|verify} messages.
                     * @param message ListServiceAttachmentsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListServiceAttachmentsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListServiceAttachmentsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListServiceAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListServiceAttachmentsRequest;

                    /**
                     * Decodes a ListServiceAttachmentsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListServiceAttachmentsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListServiceAttachmentsRequest;

                    /**
                     * Verifies a ListServiceAttachmentsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListServiceAttachmentsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListServiceAttachmentsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListServiceAttachmentsRequest;

                    /**
                     * Creates a plain object from a ListServiceAttachmentsRequest message. Also converts values to other types if specified.
                     * @param message ListServiceAttachmentsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListServiceAttachmentsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListServiceAttachmentsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListServiceAttachmentsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSnapshotGroups. */
                interface IListSnapshotGroups {

                    /** ListSnapshotGroups etag */
                    etag?: (string|null);

                    /** ListSnapshotGroups id */
                    id?: (string|null);

                    /** ListSnapshotGroups items */
                    items?: (google.cloud.compute.v1beta.ISnapshotGroup[]|null);

                    /** ListSnapshotGroups kind */
                    kind?: (string|null);

                    /** ListSnapshotGroups nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListSnapshotGroups selfLink */
                    selfLink?: (string|null);

                    /** ListSnapshotGroups unreachables */
                    unreachables?: (string[]|null);

                    /** ListSnapshotGroups warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ListSnapshotGroups. */
                class ListSnapshotGroups implements IListSnapshotGroups {

                    /**
                     * Constructs a new ListSnapshotGroups.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListSnapshotGroups);

                    /** ListSnapshotGroups etag. */
                    public etag?: (string|null);

                    /** ListSnapshotGroups id. */
                    public id?: (string|null);

                    /** ListSnapshotGroups items. */
                    public items: google.cloud.compute.v1beta.ISnapshotGroup[];

                    /** ListSnapshotGroups kind. */
                    public kind?: (string|null);

                    /** ListSnapshotGroups nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ListSnapshotGroups selfLink. */
                    public selfLink?: (string|null);

                    /** ListSnapshotGroups unreachables. */
                    public unreachables: string[];

                    /** ListSnapshotGroups warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ListSnapshotGroups instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSnapshotGroups instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListSnapshotGroups): google.cloud.compute.v1beta.ListSnapshotGroups;

                    /**
                     * Encodes the specified ListSnapshotGroups message. Does not implicitly {@link google.cloud.compute.v1beta.ListSnapshotGroups.verify|verify} messages.
                     * @param message ListSnapshotGroups message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListSnapshotGroups, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSnapshotGroups message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListSnapshotGroups.verify|verify} messages.
                     * @param message ListSnapshotGroups message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListSnapshotGroups, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSnapshotGroups message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSnapshotGroups
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListSnapshotGroups;

                    /**
                     * Decodes a ListSnapshotGroups message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSnapshotGroups
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListSnapshotGroups;

                    /**
                     * Verifies a ListSnapshotGroups message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSnapshotGroups message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSnapshotGroups
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListSnapshotGroups;

                    /**
                     * Creates a plain object from a ListSnapshotGroups message. Also converts values to other types if specified.
                     * @param message ListSnapshotGroups
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListSnapshotGroups, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSnapshotGroups to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSnapshotGroups
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSnapshotGroupsRequest. */
                interface IListSnapshotGroupsRequest {

                    /** ListSnapshotGroupsRequest filter */
                    filter?: (string|null);

                    /** ListSnapshotGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSnapshotGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSnapshotGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSnapshotGroupsRequest project */
                    project?: (string|null);

                    /** ListSnapshotGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSnapshotGroupsRequest. */
                class ListSnapshotGroupsRequest implements IListSnapshotGroupsRequest {

                    /**
                     * Constructs a new ListSnapshotGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListSnapshotGroupsRequest);

                    /** ListSnapshotGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListSnapshotGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSnapshotGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSnapshotGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSnapshotGroupsRequest project. */
                    public project: string;

                    /** ListSnapshotGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSnapshotGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSnapshotGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListSnapshotGroupsRequest): google.cloud.compute.v1beta.ListSnapshotGroupsRequest;

                    /**
                     * Encodes the specified ListSnapshotGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListSnapshotGroupsRequest.verify|verify} messages.
                     * @param message ListSnapshotGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListSnapshotGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSnapshotGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListSnapshotGroupsRequest.verify|verify} messages.
                     * @param message ListSnapshotGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListSnapshotGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSnapshotGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSnapshotGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListSnapshotGroupsRequest;

                    /**
                     * Decodes a ListSnapshotGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSnapshotGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListSnapshotGroupsRequest;

                    /**
                     * Verifies a ListSnapshotGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSnapshotGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSnapshotGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListSnapshotGroupsRequest;

                    /**
                     * Creates a plain object from a ListSnapshotGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListSnapshotGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListSnapshotGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSnapshotGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSnapshotGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSnapshotsRequest. */
                interface IListSnapshotsRequest {

                    /** ListSnapshotsRequest filter */
                    filter?: (string|null);

                    /** ListSnapshotsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSnapshotsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSnapshotsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSnapshotsRequest project */
                    project?: (string|null);

                    /** ListSnapshotsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSnapshotsRequest. */
                class ListSnapshotsRequest implements IListSnapshotsRequest {

                    /**
                     * Constructs a new ListSnapshotsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListSnapshotsRequest);

                    /** ListSnapshotsRequest filter. */
                    public filter?: (string|null);

                    /** ListSnapshotsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSnapshotsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSnapshotsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSnapshotsRequest project. */
                    public project: string;

                    /** ListSnapshotsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSnapshotsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSnapshotsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListSnapshotsRequest): google.cloud.compute.v1beta.ListSnapshotsRequest;

                    /**
                     * Encodes the specified ListSnapshotsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListSnapshotsRequest.verify|verify} messages.
                     * @param message ListSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSnapshotsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListSnapshotsRequest.verify|verify} messages.
                     * @param message ListSnapshotsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListSnapshotsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSnapshotsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListSnapshotsRequest;

                    /**
                     * Decodes a ListSnapshotsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSnapshotsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListSnapshotsRequest;

                    /**
                     * Verifies a ListSnapshotsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSnapshotsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSnapshotsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListSnapshotsRequest;

                    /**
                     * Creates a plain object from a ListSnapshotsRequest message. Also converts values to other types if specified.
                     * @param message ListSnapshotsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListSnapshotsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSnapshotsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSnapshotsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSslCertificatesRequest. */
                interface IListSslCertificatesRequest {

                    /** ListSslCertificatesRequest filter */
                    filter?: (string|null);

                    /** ListSslCertificatesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSslCertificatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSslCertificatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSslCertificatesRequest project */
                    project?: (string|null);

                    /** ListSslCertificatesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSslCertificatesRequest. */
                class ListSslCertificatesRequest implements IListSslCertificatesRequest {

                    /**
                     * Constructs a new ListSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListSslCertificatesRequest);

                    /** ListSslCertificatesRequest filter. */
                    public filter?: (string|null);

                    /** ListSslCertificatesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSslCertificatesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSslCertificatesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSslCertificatesRequest project. */
                    public project: string;

                    /** ListSslCertificatesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListSslCertificatesRequest): google.cloud.compute.v1beta.ListSslCertificatesRequest;

                    /**
                     * Encodes the specified ListSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListSslCertificatesRequest.verify|verify} messages.
                     * @param message ListSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListSslCertificatesRequest.verify|verify} messages.
                     * @param message ListSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListSslCertificatesRequest;

                    /**
                     * Decodes a ListSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListSslCertificatesRequest;

                    /**
                     * Verifies a ListSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListSslCertificatesRequest;

                    /**
                     * Creates a plain object from a ListSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message ListSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSslPoliciesRequest. */
                interface IListSslPoliciesRequest {

                    /** ListSslPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListSslPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSslPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSslPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSslPoliciesRequest project */
                    project?: (string|null);

                    /** ListSslPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListSslPoliciesRequest. */
                class ListSslPoliciesRequest implements IListSslPoliciesRequest {

                    /**
                     * Constructs a new ListSslPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListSslPoliciesRequest);

                    /** ListSslPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListSslPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSslPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSslPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSslPoliciesRequest project. */
                    public project: string;

                    /** ListSslPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListSslPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSslPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListSslPoliciesRequest): google.cloud.compute.v1beta.ListSslPoliciesRequest;

                    /**
                     * Encodes the specified ListSslPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListSslPoliciesRequest.verify|verify} messages.
                     * @param message ListSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSslPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListSslPoliciesRequest.verify|verify} messages.
                     * @param message ListSslPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListSslPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSslPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListSslPoliciesRequest;

                    /**
                     * Decodes a ListSslPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSslPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListSslPoliciesRequest;

                    /**
                     * Verifies a ListSslPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSslPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSslPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListSslPoliciesRequest;

                    /**
                     * Creates a plain object from a ListSslPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListSslPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListSslPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSslPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSslPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStoragePoolTypesRequest. */
                interface IListStoragePoolTypesRequest {

                    /** ListStoragePoolTypesRequest filter */
                    filter?: (string|null);

                    /** ListStoragePoolTypesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListStoragePoolTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListStoragePoolTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListStoragePoolTypesRequest project */
                    project?: (string|null);

                    /** ListStoragePoolTypesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListStoragePoolTypesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListStoragePoolTypesRequest. */
                class ListStoragePoolTypesRequest implements IListStoragePoolTypesRequest {

                    /**
                     * Constructs a new ListStoragePoolTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListStoragePoolTypesRequest);

                    /** ListStoragePoolTypesRequest filter. */
                    public filter?: (string|null);

                    /** ListStoragePoolTypesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListStoragePoolTypesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListStoragePoolTypesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListStoragePoolTypesRequest project. */
                    public project: string;

                    /** ListStoragePoolTypesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListStoragePoolTypesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListStoragePoolTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStoragePoolTypesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListStoragePoolTypesRequest): google.cloud.compute.v1beta.ListStoragePoolTypesRequest;

                    /**
                     * Encodes the specified ListStoragePoolTypesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListStoragePoolTypesRequest.verify|verify} messages.
                     * @param message ListStoragePoolTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListStoragePoolTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStoragePoolTypesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListStoragePoolTypesRequest.verify|verify} messages.
                     * @param message ListStoragePoolTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListStoragePoolTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStoragePoolTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStoragePoolTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListStoragePoolTypesRequest;

                    /**
                     * Decodes a ListStoragePoolTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStoragePoolTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListStoragePoolTypesRequest;

                    /**
                     * Verifies a ListStoragePoolTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStoragePoolTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStoragePoolTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListStoragePoolTypesRequest;

                    /**
                     * Creates a plain object from a ListStoragePoolTypesRequest message. Also converts values to other types if specified.
                     * @param message ListStoragePoolTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListStoragePoolTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStoragePoolTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStoragePoolTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStoragePoolsRequest. */
                interface IListStoragePoolsRequest {

                    /** ListStoragePoolsRequest filter */
                    filter?: (string|null);

                    /** ListStoragePoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListStoragePoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListStoragePoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListStoragePoolsRequest project */
                    project?: (string|null);

                    /** ListStoragePoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListStoragePoolsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListStoragePoolsRequest. */
                class ListStoragePoolsRequest implements IListStoragePoolsRequest {

                    /**
                     * Constructs a new ListStoragePoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListStoragePoolsRequest);

                    /** ListStoragePoolsRequest filter. */
                    public filter?: (string|null);

                    /** ListStoragePoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListStoragePoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListStoragePoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListStoragePoolsRequest project. */
                    public project: string;

                    /** ListStoragePoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListStoragePoolsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListStoragePoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStoragePoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListStoragePoolsRequest): google.cloud.compute.v1beta.ListStoragePoolsRequest;

                    /**
                     * Encodes the specified ListStoragePoolsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListStoragePoolsRequest.verify|verify} messages.
                     * @param message ListStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStoragePoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListStoragePoolsRequest.verify|verify} messages.
                     * @param message ListStoragePoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListStoragePoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStoragePoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListStoragePoolsRequest;

                    /**
                     * Decodes a ListStoragePoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStoragePoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListStoragePoolsRequest;

                    /**
                     * Verifies a ListStoragePoolsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStoragePoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStoragePoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListStoragePoolsRequest;

                    /**
                     * Creates a plain object from a ListStoragePoolsRequest message. Also converts values to other types if specified.
                     * @param message ListStoragePoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListStoragePoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStoragePoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStoragePoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListSubnetworksRequest. */
                interface IListSubnetworksRequest {

                    /** ListSubnetworksRequest filter */
                    filter?: (string|null);

                    /** ListSubnetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListSubnetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListSubnetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListSubnetworksRequest project */
                    project?: (string|null);

                    /** ListSubnetworksRequest region */
                    region?: (string|null);

                    /** ListSubnetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListSubnetworksRequest views */
                    views?: (string|null);
                }

                /** Represents a ListSubnetworksRequest. */
                class ListSubnetworksRequest implements IListSubnetworksRequest {

                    /**
                     * Constructs a new ListSubnetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListSubnetworksRequest);

                    /** ListSubnetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListSubnetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListSubnetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListSubnetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListSubnetworksRequest project. */
                    public project: string;

                    /** ListSubnetworksRequest region. */
                    public region: string;

                    /** ListSubnetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListSubnetworksRequest views. */
                    public views?: (string|null);

                    /**
                     * Creates a new ListSubnetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListSubnetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListSubnetworksRequest): google.cloud.compute.v1beta.ListSubnetworksRequest;

                    /**
                     * Encodes the specified ListSubnetworksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListSubnetworksRequest.verify|verify} messages.
                     * @param message ListSubnetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListSubnetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListSubnetworksRequest.verify|verify} messages.
                     * @param message ListSubnetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListSubnetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListSubnetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListSubnetworksRequest;

                    /**
                     * Decodes a ListSubnetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListSubnetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListSubnetworksRequest;

                    /**
                     * Verifies a ListSubnetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListSubnetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListSubnetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListSubnetworksRequest;

                    /**
                     * Creates a plain object from a ListSubnetworksRequest message. Also converts values to other types if specified.
                     * @param message ListSubnetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListSubnetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListSubnetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListSubnetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ListSubnetworksRequest {

                    /** Views enum. */
                    enum Views {
                        UNDEFINED_VIEWS = 0,
                        DEFAULT = 115302945,
                        WITH_UTILIZATION = 504090633
                    }
                }

                /** Properties of a ListTargetGrpcProxiesRequest. */
                interface IListTargetGrpcProxiesRequest {

                    /** ListTargetGrpcProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetGrpcProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetGrpcProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetGrpcProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetGrpcProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetGrpcProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetGrpcProxiesRequest. */
                class ListTargetGrpcProxiesRequest implements IListTargetGrpcProxiesRequest {

                    /**
                     * Constructs a new ListTargetGrpcProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListTargetGrpcProxiesRequest);

                    /** ListTargetGrpcProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetGrpcProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetGrpcProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetGrpcProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetGrpcProxiesRequest project. */
                    public project: string;

                    /** ListTargetGrpcProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetGrpcProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetGrpcProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListTargetGrpcProxiesRequest): google.cloud.compute.v1beta.ListTargetGrpcProxiesRequest;

                    /**
                     * Encodes the specified ListTargetGrpcProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetGrpcProxiesRequest.verify|verify} messages.
                     * @param message ListTargetGrpcProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListTargetGrpcProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetGrpcProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetGrpcProxiesRequest.verify|verify} messages.
                     * @param message ListTargetGrpcProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListTargetGrpcProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetGrpcProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetGrpcProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListTargetGrpcProxiesRequest;

                    /**
                     * Decodes a ListTargetGrpcProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetGrpcProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListTargetGrpcProxiesRequest;

                    /**
                     * Verifies a ListTargetGrpcProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetGrpcProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetGrpcProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListTargetGrpcProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetGrpcProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetGrpcProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListTargetGrpcProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetGrpcProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetGrpcProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetHttpProxiesRequest. */
                interface IListTargetHttpProxiesRequest {

                    /** ListTargetHttpProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetHttpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetHttpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetHttpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetHttpProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetHttpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetHttpProxiesRequest. */
                class ListTargetHttpProxiesRequest implements IListTargetHttpProxiesRequest {

                    /**
                     * Constructs a new ListTargetHttpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListTargetHttpProxiesRequest);

                    /** ListTargetHttpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetHttpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetHttpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetHttpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetHttpProxiesRequest project. */
                    public project: string;

                    /** ListTargetHttpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetHttpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetHttpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListTargetHttpProxiesRequest): google.cloud.compute.v1beta.ListTargetHttpProxiesRequest;

                    /**
                     * Encodes the specified ListTargetHttpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message ListTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetHttpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetHttpProxiesRequest.verify|verify} messages.
                     * @param message ListTargetHttpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListTargetHttpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetHttpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListTargetHttpProxiesRequest;

                    /**
                     * Decodes a ListTargetHttpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetHttpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListTargetHttpProxiesRequest;

                    /**
                     * Verifies a ListTargetHttpProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetHttpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetHttpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListTargetHttpProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetHttpProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetHttpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListTargetHttpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetHttpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetHttpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetHttpsProxiesRequest. */
                interface IListTargetHttpsProxiesRequest {

                    /** ListTargetHttpsProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetHttpsProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetHttpsProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetHttpsProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetHttpsProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetHttpsProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetHttpsProxiesRequest. */
                class ListTargetHttpsProxiesRequest implements IListTargetHttpsProxiesRequest {

                    /**
                     * Constructs a new ListTargetHttpsProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListTargetHttpsProxiesRequest);

                    /** ListTargetHttpsProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetHttpsProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetHttpsProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetHttpsProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetHttpsProxiesRequest project. */
                    public project: string;

                    /** ListTargetHttpsProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetHttpsProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetHttpsProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListTargetHttpsProxiesRequest): google.cloud.compute.v1beta.ListTargetHttpsProxiesRequest;

                    /**
                     * Encodes the specified ListTargetHttpsProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message ListTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetHttpsProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetHttpsProxiesRequest.verify|verify} messages.
                     * @param message ListTargetHttpsProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListTargetHttpsProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetHttpsProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListTargetHttpsProxiesRequest;

                    /**
                     * Decodes a ListTargetHttpsProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetHttpsProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListTargetHttpsProxiesRequest;

                    /**
                     * Verifies a ListTargetHttpsProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetHttpsProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetHttpsProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListTargetHttpsProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetHttpsProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetHttpsProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListTargetHttpsProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetHttpsProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetHttpsProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetInstancesRequest. */
                interface IListTargetInstancesRequest {

                    /** ListTargetInstancesRequest filter */
                    filter?: (string|null);

                    /** ListTargetInstancesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetInstancesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetInstancesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetInstancesRequest project */
                    project?: (string|null);

                    /** ListTargetInstancesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListTargetInstancesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListTargetInstancesRequest. */
                class ListTargetInstancesRequest implements IListTargetInstancesRequest {

                    /**
                     * Constructs a new ListTargetInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListTargetInstancesRequest);

                    /** ListTargetInstancesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetInstancesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetInstancesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetInstancesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetInstancesRequest project. */
                    public project: string;

                    /** ListTargetInstancesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListTargetInstancesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListTargetInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListTargetInstancesRequest): google.cloud.compute.v1beta.ListTargetInstancesRequest;

                    /**
                     * Encodes the specified ListTargetInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetInstancesRequest.verify|verify} messages.
                     * @param message ListTargetInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListTargetInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetInstancesRequest.verify|verify} messages.
                     * @param message ListTargetInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListTargetInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListTargetInstancesRequest;

                    /**
                     * Decodes a ListTargetInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListTargetInstancesRequest;

                    /**
                     * Verifies a ListTargetInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListTargetInstancesRequest;

                    /**
                     * Creates a plain object from a ListTargetInstancesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListTargetInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetPoolsRequest. */
                interface IListTargetPoolsRequest {

                    /** ListTargetPoolsRequest filter */
                    filter?: (string|null);

                    /** ListTargetPoolsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetPoolsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetPoolsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetPoolsRequest project */
                    project?: (string|null);

                    /** ListTargetPoolsRequest region */
                    region?: (string|null);

                    /** ListTargetPoolsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetPoolsRequest. */
                class ListTargetPoolsRequest implements IListTargetPoolsRequest {

                    /**
                     * Constructs a new ListTargetPoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListTargetPoolsRequest);

                    /** ListTargetPoolsRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetPoolsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetPoolsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetPoolsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetPoolsRequest project. */
                    public project: string;

                    /** ListTargetPoolsRequest region. */
                    public region: string;

                    /** ListTargetPoolsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetPoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetPoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListTargetPoolsRequest): google.cloud.compute.v1beta.ListTargetPoolsRequest;

                    /**
                     * Encodes the specified ListTargetPoolsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetPoolsRequest.verify|verify} messages.
                     * @param message ListTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetPoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetPoolsRequest.verify|verify} messages.
                     * @param message ListTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetPoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListTargetPoolsRequest;

                    /**
                     * Decodes a ListTargetPoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListTargetPoolsRequest;

                    /**
                     * Verifies a ListTargetPoolsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetPoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetPoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListTargetPoolsRequest;

                    /**
                     * Creates a plain object from a ListTargetPoolsRequest message. Also converts values to other types if specified.
                     * @param message ListTargetPoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListTargetPoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetPoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetPoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetSslProxiesRequest. */
                interface IListTargetSslProxiesRequest {

                    /** ListTargetSslProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetSslProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetSslProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetSslProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetSslProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetSslProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetSslProxiesRequest. */
                class ListTargetSslProxiesRequest implements IListTargetSslProxiesRequest {

                    /**
                     * Constructs a new ListTargetSslProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListTargetSslProxiesRequest);

                    /** ListTargetSslProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetSslProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetSslProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetSslProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetSslProxiesRequest project. */
                    public project: string;

                    /** ListTargetSslProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetSslProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetSslProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListTargetSslProxiesRequest): google.cloud.compute.v1beta.ListTargetSslProxiesRequest;

                    /**
                     * Encodes the specified ListTargetSslProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetSslProxiesRequest.verify|verify} messages.
                     * @param message ListTargetSslProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListTargetSslProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetSslProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetSslProxiesRequest.verify|verify} messages.
                     * @param message ListTargetSslProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListTargetSslProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetSslProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetSslProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListTargetSslProxiesRequest;

                    /**
                     * Decodes a ListTargetSslProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetSslProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListTargetSslProxiesRequest;

                    /**
                     * Verifies a ListTargetSslProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetSslProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetSslProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListTargetSslProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetSslProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetSslProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListTargetSslProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetSslProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetSslProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetTcpProxiesRequest. */
                interface IListTargetTcpProxiesRequest {

                    /** ListTargetTcpProxiesRequest filter */
                    filter?: (string|null);

                    /** ListTargetTcpProxiesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetTcpProxiesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetTcpProxiesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetTcpProxiesRequest project */
                    project?: (string|null);

                    /** ListTargetTcpProxiesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetTcpProxiesRequest. */
                class ListTargetTcpProxiesRequest implements IListTargetTcpProxiesRequest {

                    /**
                     * Constructs a new ListTargetTcpProxiesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListTargetTcpProxiesRequest);

                    /** ListTargetTcpProxiesRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetTcpProxiesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetTcpProxiesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetTcpProxiesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetTcpProxiesRequest project. */
                    public project: string;

                    /** ListTargetTcpProxiesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetTcpProxiesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetTcpProxiesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListTargetTcpProxiesRequest): google.cloud.compute.v1beta.ListTargetTcpProxiesRequest;

                    /**
                     * Encodes the specified ListTargetTcpProxiesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message ListTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetTcpProxiesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetTcpProxiesRequest.verify|verify} messages.
                     * @param message ListTargetTcpProxiesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListTargetTcpProxiesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetTcpProxiesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListTargetTcpProxiesRequest;

                    /**
                     * Decodes a ListTargetTcpProxiesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetTcpProxiesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListTargetTcpProxiesRequest;

                    /**
                     * Verifies a ListTargetTcpProxiesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetTcpProxiesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetTcpProxiesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListTargetTcpProxiesRequest;

                    /**
                     * Creates a plain object from a ListTargetTcpProxiesRequest message. Also converts values to other types if specified.
                     * @param message ListTargetTcpProxiesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListTargetTcpProxiesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetTcpProxiesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetTcpProxiesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTargetVpnGatewaysRequest. */
                interface IListTargetVpnGatewaysRequest {

                    /** ListTargetVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** ListTargetVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** ListTargetVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTargetVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTargetVpnGatewaysRequest project */
                    project?: (string|null);

                    /** ListTargetVpnGatewaysRequest region */
                    region?: (string|null);

                    /** ListTargetVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListTargetVpnGatewaysRequest. */
                class ListTargetVpnGatewaysRequest implements IListTargetVpnGatewaysRequest {

                    /**
                     * Constructs a new ListTargetVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListTargetVpnGatewaysRequest);

                    /** ListTargetVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** ListTargetVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListTargetVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListTargetVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListTargetVpnGatewaysRequest project. */
                    public project: string;

                    /** ListTargetVpnGatewaysRequest region. */
                    public region: string;

                    /** ListTargetVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListTargetVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTargetVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListTargetVpnGatewaysRequest): google.cloud.compute.v1beta.ListTargetVpnGatewaysRequest;

                    /**
                     * Encodes the specified ListTargetVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListTargetVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListTargetVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTargetVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListTargetVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListTargetVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListTargetVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTargetVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTargetVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListTargetVpnGatewaysRequest;

                    /**
                     * Decodes a ListTargetVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTargetVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListTargetVpnGatewaysRequest;

                    /**
                     * Verifies a ListTargetVpnGatewaysRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTargetVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTargetVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListTargetVpnGatewaysRequest;

                    /**
                     * Creates a plain object from a ListTargetVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message ListTargetVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListTargetVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTargetVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTargetVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListUrlMapsRequest. */
                interface IListUrlMapsRequest {

                    /** ListUrlMapsRequest filter */
                    filter?: (string|null);

                    /** ListUrlMapsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUrlMapsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUrlMapsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUrlMapsRequest project */
                    project?: (string|null);

                    /** ListUrlMapsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListUrlMapsRequest. */
                class ListUrlMapsRequest implements IListUrlMapsRequest {

                    /**
                     * Constructs a new ListUrlMapsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListUrlMapsRequest);

                    /** ListUrlMapsRequest filter. */
                    public filter?: (string|null);

                    /** ListUrlMapsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUrlMapsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUrlMapsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUrlMapsRequest project. */
                    public project: string;

                    /** ListUrlMapsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListUrlMapsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUrlMapsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListUrlMapsRequest): google.cloud.compute.v1beta.ListUrlMapsRequest;

                    /**
                     * Encodes the specified ListUrlMapsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListUrlMapsRequest.verify|verify} messages.
                     * @param message ListUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUrlMapsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListUrlMapsRequest.verify|verify} messages.
                     * @param message ListUrlMapsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListUrlMapsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListUrlMapsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListUrlMapsRequest;

                    /**
                     * Decodes a ListUrlMapsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListUrlMapsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListUrlMapsRequest;

                    /**
                     * Verifies a ListUrlMapsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListUrlMapsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListUrlMapsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListUrlMapsRequest;

                    /**
                     * Creates a plain object from a ListUrlMapsRequest message. Also converts values to other types if specified.
                     * @param message ListUrlMapsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListUrlMapsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListUrlMapsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListUrlMapsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListUsableBackendBucketsRequest. */
                interface IListUsableBackendBucketsRequest {

                    /** ListUsableBackendBucketsRequest filter */
                    filter?: (string|null);

                    /** ListUsableBackendBucketsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUsableBackendBucketsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUsableBackendBucketsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUsableBackendBucketsRequest project */
                    project?: (string|null);

                    /** ListUsableBackendBucketsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListUsableBackendBucketsRequest. */
                class ListUsableBackendBucketsRequest implements IListUsableBackendBucketsRequest {

                    /**
                     * Constructs a new ListUsableBackendBucketsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListUsableBackendBucketsRequest);

                    /** ListUsableBackendBucketsRequest filter. */
                    public filter?: (string|null);

                    /** ListUsableBackendBucketsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUsableBackendBucketsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUsableBackendBucketsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUsableBackendBucketsRequest project. */
                    public project: string;

                    /** ListUsableBackendBucketsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListUsableBackendBucketsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUsableBackendBucketsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListUsableBackendBucketsRequest): google.cloud.compute.v1beta.ListUsableBackendBucketsRequest;

                    /**
                     * Encodes the specified ListUsableBackendBucketsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListUsableBackendBucketsRequest.verify|verify} messages.
                     * @param message ListUsableBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListUsableBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUsableBackendBucketsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListUsableBackendBucketsRequest.verify|verify} messages.
                     * @param message ListUsableBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListUsableBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListUsableBackendBucketsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListUsableBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListUsableBackendBucketsRequest;

                    /**
                     * Decodes a ListUsableBackendBucketsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListUsableBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListUsableBackendBucketsRequest;

                    /**
                     * Verifies a ListUsableBackendBucketsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListUsableBackendBucketsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListUsableBackendBucketsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListUsableBackendBucketsRequest;

                    /**
                     * Creates a plain object from a ListUsableBackendBucketsRequest message. Also converts values to other types if specified.
                     * @param message ListUsableBackendBucketsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListUsableBackendBucketsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListUsableBackendBucketsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListUsableBackendBucketsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListUsableBackendServicesRequest. */
                interface IListUsableBackendServicesRequest {

                    /** ListUsableBackendServicesRequest filter */
                    filter?: (string|null);

                    /** ListUsableBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUsableBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUsableBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUsableBackendServicesRequest project */
                    project?: (string|null);

                    /** ListUsableBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListUsableBackendServicesRequest. */
                class ListUsableBackendServicesRequest implements IListUsableBackendServicesRequest {

                    /**
                     * Constructs a new ListUsableBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListUsableBackendServicesRequest);

                    /** ListUsableBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListUsableBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUsableBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUsableBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUsableBackendServicesRequest project. */
                    public project: string;

                    /** ListUsableBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListUsableBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUsableBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListUsableBackendServicesRequest): google.cloud.compute.v1beta.ListUsableBackendServicesRequest;

                    /**
                     * Encodes the specified ListUsableBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListUsableBackendServicesRequest.verify|verify} messages.
                     * @param message ListUsableBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListUsableBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUsableBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListUsableBackendServicesRequest.verify|verify} messages.
                     * @param message ListUsableBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListUsableBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListUsableBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListUsableBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListUsableBackendServicesRequest;

                    /**
                     * Decodes a ListUsableBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListUsableBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListUsableBackendServicesRequest;

                    /**
                     * Verifies a ListUsableBackendServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListUsableBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListUsableBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListUsableBackendServicesRequest;

                    /**
                     * Creates a plain object from a ListUsableBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message ListUsableBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListUsableBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListUsableBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListUsableBackendServicesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListUsableRegionBackendBucketsRequest. */
                interface IListUsableRegionBackendBucketsRequest {

                    /** ListUsableRegionBackendBucketsRequest filter */
                    filter?: (string|null);

                    /** ListUsableRegionBackendBucketsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUsableRegionBackendBucketsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUsableRegionBackendBucketsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUsableRegionBackendBucketsRequest project */
                    project?: (string|null);

                    /** ListUsableRegionBackendBucketsRequest region */
                    region?: (string|null);

                    /** ListUsableRegionBackendBucketsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListUsableRegionBackendBucketsRequest. */
                class ListUsableRegionBackendBucketsRequest implements IListUsableRegionBackendBucketsRequest {

                    /**
                     * Constructs a new ListUsableRegionBackendBucketsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListUsableRegionBackendBucketsRequest);

                    /** ListUsableRegionBackendBucketsRequest filter. */
                    public filter?: (string|null);

                    /** ListUsableRegionBackendBucketsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUsableRegionBackendBucketsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUsableRegionBackendBucketsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUsableRegionBackendBucketsRequest project. */
                    public project: string;

                    /** ListUsableRegionBackendBucketsRequest region. */
                    public region: string;

                    /** ListUsableRegionBackendBucketsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListUsableRegionBackendBucketsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUsableRegionBackendBucketsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListUsableRegionBackendBucketsRequest): google.cloud.compute.v1beta.ListUsableRegionBackendBucketsRequest;

                    /**
                     * Encodes the specified ListUsableRegionBackendBucketsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListUsableRegionBackendBucketsRequest.verify|verify} messages.
                     * @param message ListUsableRegionBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListUsableRegionBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUsableRegionBackendBucketsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListUsableRegionBackendBucketsRequest.verify|verify} messages.
                     * @param message ListUsableRegionBackendBucketsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListUsableRegionBackendBucketsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListUsableRegionBackendBucketsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListUsableRegionBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListUsableRegionBackendBucketsRequest;

                    /**
                     * Decodes a ListUsableRegionBackendBucketsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListUsableRegionBackendBucketsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListUsableRegionBackendBucketsRequest;

                    /**
                     * Verifies a ListUsableRegionBackendBucketsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListUsableRegionBackendBucketsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListUsableRegionBackendBucketsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListUsableRegionBackendBucketsRequest;

                    /**
                     * Creates a plain object from a ListUsableRegionBackendBucketsRequest message. Also converts values to other types if specified.
                     * @param message ListUsableRegionBackendBucketsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListUsableRegionBackendBucketsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListUsableRegionBackendBucketsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListUsableRegionBackendBucketsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListUsableRegionBackendServicesRequest. */
                interface IListUsableRegionBackendServicesRequest {

                    /** ListUsableRegionBackendServicesRequest filter */
                    filter?: (string|null);

                    /** ListUsableRegionBackendServicesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUsableRegionBackendServicesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUsableRegionBackendServicesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUsableRegionBackendServicesRequest project */
                    project?: (string|null);

                    /** ListUsableRegionBackendServicesRequest region */
                    region?: (string|null);

                    /** ListUsableRegionBackendServicesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListUsableRegionBackendServicesRequest. */
                class ListUsableRegionBackendServicesRequest implements IListUsableRegionBackendServicesRequest {

                    /**
                     * Constructs a new ListUsableRegionBackendServicesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListUsableRegionBackendServicesRequest);

                    /** ListUsableRegionBackendServicesRequest filter. */
                    public filter?: (string|null);

                    /** ListUsableRegionBackendServicesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUsableRegionBackendServicesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUsableRegionBackendServicesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUsableRegionBackendServicesRequest project. */
                    public project: string;

                    /** ListUsableRegionBackendServicesRequest region. */
                    public region: string;

                    /** ListUsableRegionBackendServicesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListUsableRegionBackendServicesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUsableRegionBackendServicesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListUsableRegionBackendServicesRequest): google.cloud.compute.v1beta.ListUsableRegionBackendServicesRequest;

                    /**
                     * Encodes the specified ListUsableRegionBackendServicesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListUsableRegionBackendServicesRequest.verify|verify} messages.
                     * @param message ListUsableRegionBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListUsableRegionBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUsableRegionBackendServicesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListUsableRegionBackendServicesRequest.verify|verify} messages.
                     * @param message ListUsableRegionBackendServicesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListUsableRegionBackendServicesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListUsableRegionBackendServicesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListUsableRegionBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListUsableRegionBackendServicesRequest;

                    /**
                     * Decodes a ListUsableRegionBackendServicesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListUsableRegionBackendServicesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListUsableRegionBackendServicesRequest;

                    /**
                     * Verifies a ListUsableRegionBackendServicesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListUsableRegionBackendServicesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListUsableRegionBackendServicesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListUsableRegionBackendServicesRequest;

                    /**
                     * Creates a plain object from a ListUsableRegionBackendServicesRequest message. Also converts values to other types if specified.
                     * @param message ListUsableRegionBackendServicesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListUsableRegionBackendServicesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListUsableRegionBackendServicesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListUsableRegionBackendServicesRequest
                     * @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 filter */
                    filter?: (string|null);

                    /** ListUsableSubnetworksRequest maxResults */
                    maxResults?: (number|null);

                    /** ListUsableSubnetworksRequest orderBy */
                    orderBy?: (string|null);

                    /** ListUsableSubnetworksRequest pageToken */
                    pageToken?: (string|null);

                    /** ListUsableSubnetworksRequest project */
                    project?: (string|null);

                    /** ListUsableSubnetworksRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListUsableSubnetworksRequest serviceProject */
                    serviceProject?: (string|null);
                }

                /** Represents a ListUsableSubnetworksRequest. */
                class ListUsableSubnetworksRequest implements IListUsableSubnetworksRequest {

                    /**
                     * Constructs a new ListUsableSubnetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListUsableSubnetworksRequest);

                    /** ListUsableSubnetworksRequest filter. */
                    public filter?: (string|null);

                    /** ListUsableSubnetworksRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListUsableSubnetworksRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListUsableSubnetworksRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListUsableSubnetworksRequest project. */
                    public project: string;

                    /** ListUsableSubnetworksRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListUsableSubnetworksRequest serviceProject. */
                    public serviceProject?: (string|null);

                    /**
                     * Creates a new ListUsableSubnetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListUsableSubnetworksRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListUsableSubnetworksRequest): google.cloud.compute.v1beta.ListUsableSubnetworksRequest;

                    /**
                     * Encodes the specified ListUsableSubnetworksRequest message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IListUsableSubnetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListUsableSubnetworksRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 ListVpnGatewaysRequest. */
                interface IListVpnGatewaysRequest {

                    /** ListVpnGatewaysRequest filter */
                    filter?: (string|null);

                    /** ListVpnGatewaysRequest maxResults */
                    maxResults?: (number|null);

                    /** ListVpnGatewaysRequest orderBy */
                    orderBy?: (string|null);

                    /** ListVpnGatewaysRequest pageToken */
                    pageToken?: (string|null);

                    /** ListVpnGatewaysRequest project */
                    project?: (string|null);

                    /** ListVpnGatewaysRequest region */
                    region?: (string|null);

                    /** ListVpnGatewaysRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListVpnGatewaysRequest. */
                class ListVpnGatewaysRequest implements IListVpnGatewaysRequest {

                    /**
                     * Constructs a new ListVpnGatewaysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListVpnGatewaysRequest);

                    /** ListVpnGatewaysRequest filter. */
                    public filter?: (string|null);

                    /** ListVpnGatewaysRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListVpnGatewaysRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListVpnGatewaysRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListVpnGatewaysRequest project. */
                    public project: string;

                    /** ListVpnGatewaysRequest region. */
                    public region: string;

                    /** ListVpnGatewaysRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListVpnGatewaysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListVpnGatewaysRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListVpnGatewaysRequest): google.cloud.compute.v1beta.ListVpnGatewaysRequest;

                    /**
                     * Encodes the specified ListVpnGatewaysRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListVpnGatewaysRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListVpnGatewaysRequest.verify|verify} messages.
                     * @param message ListVpnGatewaysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListVpnGatewaysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListVpnGatewaysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListVpnGatewaysRequest;

                    /**
                     * Decodes a ListVpnGatewaysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListVpnGatewaysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListVpnGatewaysRequest;

                    /**
                     * Verifies a ListVpnGatewaysRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListVpnGatewaysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListVpnGatewaysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListVpnGatewaysRequest;

                    /**
                     * Creates a plain object from a ListVpnGatewaysRequest message. Also converts values to other types if specified.
                     * @param message ListVpnGatewaysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListVpnGatewaysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListVpnGatewaysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListVpnGatewaysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListVpnTunnelsRequest. */
                interface IListVpnTunnelsRequest {

                    /** ListVpnTunnelsRequest filter */
                    filter?: (string|null);

                    /** ListVpnTunnelsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListVpnTunnelsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListVpnTunnelsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListVpnTunnelsRequest project */
                    project?: (string|null);

                    /** ListVpnTunnelsRequest region */
                    region?: (string|null);

                    /** ListVpnTunnelsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListVpnTunnelsRequest. */
                class ListVpnTunnelsRequest implements IListVpnTunnelsRequest {

                    /**
                     * Constructs a new ListVpnTunnelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListVpnTunnelsRequest);

                    /** ListVpnTunnelsRequest filter. */
                    public filter?: (string|null);

                    /** ListVpnTunnelsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListVpnTunnelsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListVpnTunnelsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListVpnTunnelsRequest project. */
                    public project: string;

                    /** ListVpnTunnelsRequest region. */
                    public region: string;

                    /** ListVpnTunnelsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListVpnTunnelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListVpnTunnelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListVpnTunnelsRequest): google.cloud.compute.v1beta.ListVpnTunnelsRequest;

                    /**
                     * Encodes the specified ListVpnTunnelsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListVpnTunnelsRequest.verify|verify} messages.
                     * @param message ListVpnTunnelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListVpnTunnelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListVpnTunnelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListVpnTunnelsRequest.verify|verify} messages.
                     * @param message ListVpnTunnelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListVpnTunnelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListVpnTunnelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListVpnTunnelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListVpnTunnelsRequest;

                    /**
                     * Decodes a ListVpnTunnelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListVpnTunnelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListVpnTunnelsRequest;

                    /**
                     * Verifies a ListVpnTunnelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListVpnTunnelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListVpnTunnelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListVpnTunnelsRequest;

                    /**
                     * Creates a plain object from a ListVpnTunnelsRequest message. Also converts values to other types if specified.
                     * @param message ListVpnTunnelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListVpnTunnelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListVpnTunnelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListVpnTunnelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListWireGroupsRequest. */
                interface IListWireGroupsRequest {

                    /** ListWireGroupsRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** ListWireGroupsRequest filter */
                    filter?: (string|null);

                    /** ListWireGroupsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListWireGroupsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListWireGroupsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListWireGroupsRequest project */
                    project?: (string|null);

                    /** ListWireGroupsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListWireGroupsRequest. */
                class ListWireGroupsRequest implements IListWireGroupsRequest {

                    /**
                     * Constructs a new ListWireGroupsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListWireGroupsRequest);

                    /** ListWireGroupsRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** ListWireGroupsRequest filter. */
                    public filter?: (string|null);

                    /** ListWireGroupsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListWireGroupsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListWireGroupsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListWireGroupsRequest project. */
                    public project: string;

                    /** ListWireGroupsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListWireGroupsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListWireGroupsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListWireGroupsRequest): google.cloud.compute.v1beta.ListWireGroupsRequest;

                    /**
                     * Encodes the specified ListWireGroupsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListWireGroupsRequest.verify|verify} messages.
                     * @param message ListWireGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListWireGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListWireGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListWireGroupsRequest.verify|verify} messages.
                     * @param message ListWireGroupsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListWireGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListWireGroupsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListWireGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListWireGroupsRequest;

                    /**
                     * Decodes a ListWireGroupsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListWireGroupsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListWireGroupsRequest;

                    /**
                     * Verifies a ListWireGroupsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListWireGroupsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListWireGroupsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListWireGroupsRequest;

                    /**
                     * Creates a plain object from a ListWireGroupsRequest message. Also converts values to other types if specified.
                     * @param message ListWireGroupsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListWireGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListWireGroupsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListWireGroupsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListXpnHostsProjectsRequest. */
                interface IListXpnHostsProjectsRequest {

                    /** ListXpnHostsProjectsRequest filter */
                    filter?: (string|null);

                    /** ListXpnHostsProjectsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListXpnHostsProjectsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListXpnHostsProjectsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListXpnHostsProjectsRequest project */
                    project?: (string|null);

                    /** ListXpnHostsProjectsRequest projectsListXpnHostsRequestResource */
                    projectsListXpnHostsRequestResource?: (google.cloud.compute.v1beta.IProjectsListXpnHostsRequest|null);

                    /** ListXpnHostsProjectsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListXpnHostsProjectsRequest. */
                class ListXpnHostsProjectsRequest implements IListXpnHostsProjectsRequest {

                    /**
                     * Constructs a new ListXpnHostsProjectsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListXpnHostsProjectsRequest);

                    /** ListXpnHostsProjectsRequest filter. */
                    public filter?: (string|null);

                    /** ListXpnHostsProjectsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListXpnHostsProjectsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListXpnHostsProjectsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListXpnHostsProjectsRequest project. */
                    public project: string;

                    /** ListXpnHostsProjectsRequest projectsListXpnHostsRequestResource. */
                    public projectsListXpnHostsRequestResource?: (google.cloud.compute.v1beta.IProjectsListXpnHostsRequest|null);

                    /** ListXpnHostsProjectsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListXpnHostsProjectsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListXpnHostsProjectsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListXpnHostsProjectsRequest): google.cloud.compute.v1beta.ListXpnHostsProjectsRequest;

                    /**
                     * Encodes the specified ListXpnHostsProjectsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListXpnHostsProjectsRequest.verify|verify} messages.
                     * @param message ListXpnHostsProjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListXpnHostsProjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListXpnHostsProjectsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListXpnHostsProjectsRequest.verify|verify} messages.
                     * @param message ListXpnHostsProjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListXpnHostsProjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListXpnHostsProjectsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListXpnHostsProjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListXpnHostsProjectsRequest;

                    /**
                     * Decodes a ListXpnHostsProjectsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListXpnHostsProjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListXpnHostsProjectsRequest;

                    /**
                     * Verifies a ListXpnHostsProjectsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListXpnHostsProjectsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListXpnHostsProjectsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListXpnHostsProjectsRequest;

                    /**
                     * Creates a plain object from a ListXpnHostsProjectsRequest message. Also converts values to other types if specified.
                     * @param message ListXpnHostsProjectsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListXpnHostsProjectsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListXpnHostsProjectsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListXpnHostsProjectsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListZoneOperationsRequest. */
                interface IListZoneOperationsRequest {

                    /** ListZoneOperationsRequest filter */
                    filter?: (string|null);

                    /** ListZoneOperationsRequest maxResults */
                    maxResults?: (number|null);

                    /** ListZoneOperationsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListZoneOperationsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListZoneOperationsRequest project */
                    project?: (string|null);

                    /** ListZoneOperationsRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListZoneOperationsRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListZoneOperationsRequest. */
                class ListZoneOperationsRequest implements IListZoneOperationsRequest {

                    /**
                     * Constructs a new ListZoneOperationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListZoneOperationsRequest);

                    /** ListZoneOperationsRequest filter. */
                    public filter?: (string|null);

                    /** ListZoneOperationsRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListZoneOperationsRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListZoneOperationsRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListZoneOperationsRequest project. */
                    public project: string;

                    /** ListZoneOperationsRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListZoneOperationsRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListZoneOperationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListZoneOperationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListZoneOperationsRequest): google.cloud.compute.v1beta.ListZoneOperationsRequest;

                    /**
                     * Encodes the specified ListZoneOperationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListZoneOperationsRequest.verify|verify} messages.
                     * @param message ListZoneOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListZoneOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListZoneOperationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListZoneOperationsRequest.verify|verify} messages.
                     * @param message ListZoneOperationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListZoneOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListZoneOperationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListZoneOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListZoneOperationsRequest;

                    /**
                     * Decodes a ListZoneOperationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListZoneOperationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListZoneOperationsRequest;

                    /**
                     * Verifies a ListZoneOperationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListZoneOperationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListZoneOperationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListZoneOperationsRequest;

                    /**
                     * Creates a plain object from a ListZoneOperationsRequest message. Also converts values to other types if specified.
                     * @param message ListZoneOperationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListZoneOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListZoneOperationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListZoneOperationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListZoneVmExtensionPoliciesRequest. */
                interface IListZoneVmExtensionPoliciesRequest {

                    /** ListZoneVmExtensionPoliciesRequest filter */
                    filter?: (string|null);

                    /** ListZoneVmExtensionPoliciesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListZoneVmExtensionPoliciesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListZoneVmExtensionPoliciesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListZoneVmExtensionPoliciesRequest project */
                    project?: (string|null);

                    /** ListZoneVmExtensionPoliciesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);

                    /** ListZoneVmExtensionPoliciesRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ListZoneVmExtensionPoliciesRequest. */
                class ListZoneVmExtensionPoliciesRequest implements IListZoneVmExtensionPoliciesRequest {

                    /**
                     * Constructs a new ListZoneVmExtensionPoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListZoneVmExtensionPoliciesRequest);

                    /** ListZoneVmExtensionPoliciesRequest filter. */
                    public filter?: (string|null);

                    /** ListZoneVmExtensionPoliciesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListZoneVmExtensionPoliciesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListZoneVmExtensionPoliciesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListZoneVmExtensionPoliciesRequest project. */
                    public project: string;

                    /** ListZoneVmExtensionPoliciesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /** ListZoneVmExtensionPoliciesRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ListZoneVmExtensionPoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListZoneVmExtensionPoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListZoneVmExtensionPoliciesRequest): google.cloud.compute.v1beta.ListZoneVmExtensionPoliciesRequest;

                    /**
                     * Encodes the specified ListZoneVmExtensionPoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListZoneVmExtensionPoliciesRequest.verify|verify} messages.
                     * @param message ListZoneVmExtensionPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListZoneVmExtensionPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListZoneVmExtensionPoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListZoneVmExtensionPoliciesRequest.verify|verify} messages.
                     * @param message ListZoneVmExtensionPoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListZoneVmExtensionPoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListZoneVmExtensionPoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListZoneVmExtensionPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListZoneVmExtensionPoliciesRequest;

                    /**
                     * Decodes a ListZoneVmExtensionPoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListZoneVmExtensionPoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListZoneVmExtensionPoliciesRequest;

                    /**
                     * Verifies a ListZoneVmExtensionPoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListZoneVmExtensionPoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListZoneVmExtensionPoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListZoneVmExtensionPoliciesRequest;

                    /**
                     * Creates a plain object from a ListZoneVmExtensionPoliciesRequest message. Also converts values to other types if specified.
                     * @param message ListZoneVmExtensionPoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListZoneVmExtensionPoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListZoneVmExtensionPoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListZoneVmExtensionPoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListZonesRequest. */
                interface IListZonesRequest {

                    /** ListZonesRequest filter */
                    filter?: (string|null);

                    /** ListZonesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListZonesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListZonesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListZonesRequest project */
                    project?: (string|null);

                    /** ListZonesRequest returnPartialSuccess */
                    returnPartialSuccess?: (boolean|null);
                }

                /** Represents a ListZonesRequest. */
                class ListZonesRequest implements IListZonesRequest {

                    /**
                     * Constructs a new ListZonesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IListZonesRequest);

                    /** ListZonesRequest filter. */
                    public filter?: (string|null);

                    /** ListZonesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListZonesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** ListZonesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListZonesRequest project. */
                    public project: string;

                    /** ListZonesRequest returnPartialSuccess. */
                    public returnPartialSuccess?: (boolean|null);

                    /**
                     * Creates a new ListZonesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListZonesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IListZonesRequest): google.cloud.compute.v1beta.ListZonesRequest;

                    /**
                     * Encodes the specified ListZonesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ListZonesRequest.verify|verify} messages.
                     * @param message ListZonesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IListZonesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListZonesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ListZonesRequest.verify|verify} messages.
                     * @param message ListZonesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IListZonesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListZonesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListZonesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ListZonesRequest;

                    /**
                     * Decodes a ListZonesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListZonesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ListZonesRequest;

                    /**
                     * Verifies a ListZonesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListZonesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListZonesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ListZonesRequest;

                    /**
                     * Creates a plain object from a ListZonesRequest message. Also converts values to other types if specified.
                     * @param message ListZonesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ListZonesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListZonesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListZonesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LocalDisk. */
                interface ILocalDisk {

                    /** LocalDisk diskCount */
                    diskCount?: (number|null);

                    /** LocalDisk diskSizeGb */
                    diskSizeGb?: (number|null);

                    /** LocalDisk diskType */
                    diskType?: (string|null);
                }

                /** Represents a LocalDisk. */
                class LocalDisk implements ILocalDisk {

                    /**
                     * Constructs a new LocalDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILocalDisk);

                    /** LocalDisk diskCount. */
                    public diskCount?: (number|null);

                    /** LocalDisk diskSizeGb. */
                    public diskSizeGb?: (number|null);

                    /** LocalDisk diskType. */
                    public diskType?: (string|null);

                    /**
                     * Creates a new LocalDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocalDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILocalDisk): google.cloud.compute.v1beta.LocalDisk;

                    /**
                     * Encodes the specified LocalDisk message. Does not implicitly {@link google.cloud.compute.v1beta.LocalDisk.verify|verify} messages.
                     * @param message LocalDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILocalDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocalDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LocalDisk.verify|verify} messages.
                     * @param message LocalDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILocalDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocalDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocalDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LocalDisk;

                    /**
                     * Decodes a LocalDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocalDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LocalDisk;

                    /**
                     * Verifies a LocalDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocalDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocalDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LocalDisk;

                    /**
                     * Creates a plain object from a LocalDisk message. Also converts values to other types if specified.
                     * @param message LocalDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LocalDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocalDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocalDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LocalizedMessage. */
                interface ILocalizedMessage {

                    /** LocalizedMessage locale */
                    locale?: (string|null);

                    /** LocalizedMessage message */
                    message?: (string|null);
                }

                /** Represents a LocalizedMessage. */
                class LocalizedMessage implements ILocalizedMessage {

                    /**
                     * Constructs a new LocalizedMessage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILocalizedMessage);

                    /** LocalizedMessage locale. */
                    public locale?: (string|null);

                    /** LocalizedMessage message. */
                    public message?: (string|null);

                    /**
                     * Creates a new LocalizedMessage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocalizedMessage instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILocalizedMessage): google.cloud.compute.v1beta.LocalizedMessage;

                    /**
                     * Encodes the specified LocalizedMessage message. Does not implicitly {@link google.cloud.compute.v1beta.LocalizedMessage.verify|verify} messages.
                     * @param message LocalizedMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILocalizedMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocalizedMessage message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LocalizedMessage.verify|verify} messages.
                     * @param message LocalizedMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILocalizedMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocalizedMessage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocalizedMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LocalizedMessage;

                    /**
                     * Decodes a LocalizedMessage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocalizedMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LocalizedMessage;

                    /**
                     * Verifies a LocalizedMessage message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocalizedMessage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocalizedMessage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LocalizedMessage;

                    /**
                     * Creates a plain object from a LocalizedMessage message. Also converts values to other types if specified.
                     * @param message LocalizedMessage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LocalizedMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocalizedMessage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocalizedMessage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LocationPolicy. */
                interface ILocationPolicy {

                    /** LocationPolicy locations */
                    locations?: ({ [k: string]: google.cloud.compute.v1beta.ILocationPolicyLocation }|null);

                    /** LocationPolicy targetShape */
                    targetShape?: (string|null);

                    /** LocationPolicy zones */
                    zones?: (google.cloud.compute.v1beta.ILocationPolicyZoneConfiguration[]|null);
                }

                /** Represents a LocationPolicy. */
                class LocationPolicy implements ILocationPolicy {

                    /**
                     * Constructs a new LocationPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILocationPolicy);

                    /** LocationPolicy locations. */
                    public locations: { [k: string]: google.cloud.compute.v1beta.ILocationPolicyLocation };

                    /** LocationPolicy targetShape. */
                    public targetShape?: (string|null);

                    /** LocationPolicy zones. */
                    public zones: google.cloud.compute.v1beta.ILocationPolicyZoneConfiguration[];

                    /**
                     * Creates a new LocationPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocationPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILocationPolicy): google.cloud.compute.v1beta.LocationPolicy;

                    /**
                     * Encodes the specified LocationPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.LocationPolicy.verify|verify} messages.
                     * @param message LocationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocationPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LocationPolicy.verify|verify} messages.
                     * @param message LocationPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILocationPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocationPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LocationPolicy;

                    /**
                     * Decodes a LocationPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LocationPolicy;

                    /**
                     * Verifies a LocationPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocationPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LocationPolicy;

                    /**
                     * Creates a plain object from a LocationPolicy message. Also converts values to other types if specified.
                     * @param message LocationPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LocationPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocationPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocationPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace LocationPolicy {

                    /** TargetShape enum. */
                    enum TargetShape {
                        UNDEFINED_TARGET_SHAPE = 0,
                        ANY = 64972,
                        ANY_SINGLE_ZONE = 61100880,
                        BALANCED = 468409608
                    }
                }

                /** Properties of a LocationPolicyLocation. */
                interface ILocationPolicyLocation {

                    /** LocationPolicyLocation constraints */
                    constraints?: (google.cloud.compute.v1beta.ILocationPolicyLocationConstraints|null);

                    /** LocationPolicyLocation preference */
                    preference?: (string|null);
                }

                /** Represents a LocationPolicyLocation. */
                class LocationPolicyLocation implements ILocationPolicyLocation {

                    /**
                     * Constructs a new LocationPolicyLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILocationPolicyLocation);

                    /** LocationPolicyLocation constraints. */
                    public constraints?: (google.cloud.compute.v1beta.ILocationPolicyLocationConstraints|null);

                    /** LocationPolicyLocation preference. */
                    public preference?: (string|null);

                    /**
                     * Creates a new LocationPolicyLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocationPolicyLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILocationPolicyLocation): google.cloud.compute.v1beta.LocationPolicyLocation;

                    /**
                     * Encodes the specified LocationPolicyLocation message. Does not implicitly {@link google.cloud.compute.v1beta.LocationPolicyLocation.verify|verify} messages.
                     * @param message LocationPolicyLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILocationPolicyLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocationPolicyLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LocationPolicyLocation.verify|verify} messages.
                     * @param message LocationPolicyLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILocationPolicyLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocationPolicyLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationPolicyLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LocationPolicyLocation;

                    /**
                     * Decodes a LocationPolicyLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationPolicyLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LocationPolicyLocation;

                    /**
                     * Verifies a LocationPolicyLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocationPolicyLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationPolicyLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LocationPolicyLocation;

                    /**
                     * Creates a plain object from a LocationPolicyLocation message. Also converts values to other types if specified.
                     * @param message LocationPolicyLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LocationPolicyLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocationPolicyLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocationPolicyLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace LocationPolicyLocation {

                    /** Preference enum. */
                    enum Preference {
                        UNDEFINED_PREFERENCE = 0,
                        ALLOW = 62368553,
                        DENY = 2094604,
                        PREFERENCE_UNSPECIFIED = 496219571
                    }
                }

                /** Properties of a LocationPolicyLocationConstraints. */
                interface ILocationPolicyLocationConstraints {

                    /** LocationPolicyLocationConstraints maxCount */
                    maxCount?: (number|null);
                }

                /** Represents a LocationPolicyLocationConstraints. */
                class LocationPolicyLocationConstraints implements ILocationPolicyLocationConstraints {

                    /**
                     * Constructs a new LocationPolicyLocationConstraints.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILocationPolicyLocationConstraints);

                    /** LocationPolicyLocationConstraints maxCount. */
                    public maxCount?: (number|null);

                    /**
                     * Creates a new LocationPolicyLocationConstraints instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocationPolicyLocationConstraints instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILocationPolicyLocationConstraints): google.cloud.compute.v1beta.LocationPolicyLocationConstraints;

                    /**
                     * Encodes the specified LocationPolicyLocationConstraints message. Does not implicitly {@link google.cloud.compute.v1beta.LocationPolicyLocationConstraints.verify|verify} messages.
                     * @param message LocationPolicyLocationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILocationPolicyLocationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocationPolicyLocationConstraints message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LocationPolicyLocationConstraints.verify|verify} messages.
                     * @param message LocationPolicyLocationConstraints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILocationPolicyLocationConstraints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocationPolicyLocationConstraints message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationPolicyLocationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LocationPolicyLocationConstraints;

                    /**
                     * Decodes a LocationPolicyLocationConstraints message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationPolicyLocationConstraints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LocationPolicyLocationConstraints;

                    /**
                     * Verifies a LocationPolicyLocationConstraints message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocationPolicyLocationConstraints message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationPolicyLocationConstraints
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LocationPolicyLocationConstraints;

                    /**
                     * Creates a plain object from a LocationPolicyLocationConstraints message. Also converts values to other types if specified.
                     * @param message LocationPolicyLocationConstraints
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LocationPolicyLocationConstraints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocationPolicyLocationConstraints to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocationPolicyLocationConstraints
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LocationPolicyZoneConfiguration. */
                interface ILocationPolicyZoneConfiguration {

                    /** LocationPolicyZoneConfiguration zone */
                    zone?: (string|null);
                }

                /** Represents a LocationPolicyZoneConfiguration. */
                class LocationPolicyZoneConfiguration implements ILocationPolicyZoneConfiguration {

                    /**
                     * Constructs a new LocationPolicyZoneConfiguration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ILocationPolicyZoneConfiguration);

                    /** LocationPolicyZoneConfiguration zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new LocationPolicyZoneConfiguration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LocationPolicyZoneConfiguration instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ILocationPolicyZoneConfiguration): google.cloud.compute.v1beta.LocationPolicyZoneConfiguration;

                    /**
                     * Encodes the specified LocationPolicyZoneConfiguration message. Does not implicitly {@link google.cloud.compute.v1beta.LocationPolicyZoneConfiguration.verify|verify} messages.
                     * @param message LocationPolicyZoneConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ILocationPolicyZoneConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LocationPolicyZoneConfiguration message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.LocationPolicyZoneConfiguration.verify|verify} messages.
                     * @param message LocationPolicyZoneConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ILocationPolicyZoneConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LocationPolicyZoneConfiguration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationPolicyZoneConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.LocationPolicyZoneConfiguration;

                    /**
                     * Decodes a LocationPolicyZoneConfiguration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationPolicyZoneConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.LocationPolicyZoneConfiguration;

                    /**
                     * Verifies a LocationPolicyZoneConfiguration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LocationPolicyZoneConfiguration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationPolicyZoneConfiguration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.LocationPolicyZoneConfiguration;

                    /**
                     * Creates a plain object from a LocationPolicyZoneConfiguration message. Also converts values to other types if specified.
                     * @param message LocationPolicyZoneConfiguration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.LocationPolicyZoneConfiguration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LocationPolicyZoneConfiguration to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LocationPolicyZoneConfiguration
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineImage. */
                interface IMachineImage {

                    /** MachineImage creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** MachineImage description */
                    description?: (string|null);

                    /** MachineImage guestFlush */
                    guestFlush?: (boolean|null);

                    /** MachineImage id */
                    id?: (number|Long|string|null);

                    /** MachineImage instanceProperties */
                    instanceProperties?: (google.cloud.compute.v1beta.IInstanceProperties|null);

                    /** MachineImage kind */
                    kind?: (string|null);

                    /** MachineImage labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** MachineImage labels */
                    labels?: ({ [k: string]: string }|null);

                    /** MachineImage machineImageEncryptionKey */
                    machineImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** MachineImage name */
                    name?: (string|null);

                    /** MachineImage params */
                    params?: (google.cloud.compute.v1beta.IMachineImageParams|null);

                    /** MachineImage satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** MachineImage satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** MachineImage savedDisks */
                    savedDisks?: (google.cloud.compute.v1beta.ISavedDisk[]|null);

                    /** MachineImage selfLink */
                    selfLink?: (string|null);

                    /** MachineImage sourceDiskEncryptionKeys */
                    sourceDiskEncryptionKeys?: (google.cloud.compute.v1beta.ISourceDiskEncryptionKey[]|null);

                    /** MachineImage sourceInstance */
                    sourceInstance?: (string|null);

                    /** MachineImage sourceInstanceProperties */
                    sourceInstanceProperties?: (google.cloud.compute.v1beta.ISourceInstanceProperties|null);

                    /** MachineImage status */
                    status?: (string|null);

                    /** MachineImage storageLocations */
                    storageLocations?: (string[]|null);

                    /** MachineImage totalStorageBytes */
                    totalStorageBytes?: (number|Long|string|null);
                }

                /** Represents a MachineImage. */
                class MachineImage implements IMachineImage {

                    /**
                     * Constructs a new MachineImage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMachineImage);

                    /** MachineImage creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** MachineImage description. */
                    public description?: (string|null);

                    /** MachineImage guestFlush. */
                    public guestFlush?: (boolean|null);

                    /** MachineImage id. */
                    public id?: (number|Long|string|null);

                    /** MachineImage instanceProperties. */
                    public instanceProperties?: (google.cloud.compute.v1beta.IInstanceProperties|null);

                    /** MachineImage kind. */
                    public kind?: (string|null);

                    /** MachineImage labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** MachineImage labels. */
                    public labels: { [k: string]: string };

                    /** MachineImage machineImageEncryptionKey. */
                    public machineImageEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** MachineImage name. */
                    public name?: (string|null);

                    /** MachineImage params. */
                    public params?: (google.cloud.compute.v1beta.IMachineImageParams|null);

                    /** MachineImage satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** MachineImage satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** MachineImage savedDisks. */
                    public savedDisks: google.cloud.compute.v1beta.ISavedDisk[];

                    /** MachineImage selfLink. */
                    public selfLink?: (string|null);

                    /** MachineImage sourceDiskEncryptionKeys. */
                    public sourceDiskEncryptionKeys: google.cloud.compute.v1beta.ISourceDiskEncryptionKey[];

                    /** MachineImage sourceInstance. */
                    public sourceInstance?: (string|null);

                    /** MachineImage sourceInstanceProperties. */
                    public sourceInstanceProperties?: (google.cloud.compute.v1beta.ISourceInstanceProperties|null);

                    /** MachineImage status. */
                    public status?: (string|null);

                    /** MachineImage storageLocations. */
                    public storageLocations: string[];

                    /** MachineImage totalStorageBytes. */
                    public totalStorageBytes?: (number|Long|string|null);

                    /**
                     * Creates a new MachineImage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineImage instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMachineImage): google.cloud.compute.v1beta.MachineImage;

                    /**
                     * Encodes the specified MachineImage message. Does not implicitly {@link google.cloud.compute.v1beta.MachineImage.verify|verify} messages.
                     * @param message MachineImage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMachineImage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineImage message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MachineImage.verify|verify} messages.
                     * @param message MachineImage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMachineImage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineImage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineImage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MachineImage;

                    /**
                     * Decodes a MachineImage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineImage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MachineImage;

                    /**
                     * Verifies a MachineImage message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineImage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineImage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MachineImage;

                    /**
                     * Creates a plain object from a MachineImage message. Also converts values to other types if specified.
                     * @param message MachineImage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MachineImage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineImage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineImage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MachineImage {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963,
                        UPLOADING = 267603489
                    }
                }

                /** Properties of a MachineImageList. */
                interface IMachineImageList {

                    /** MachineImageList id */
                    id?: (string|null);

                    /** MachineImageList items */
                    items?: (google.cloud.compute.v1beta.IMachineImage[]|null);

                    /** MachineImageList kind */
                    kind?: (string|null);

                    /** MachineImageList nextPageToken */
                    nextPageToken?: (string|null);

                    /** MachineImageList selfLink */
                    selfLink?: (string|null);

                    /** MachineImageList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a MachineImageList. */
                class MachineImageList implements IMachineImageList {

                    /**
                     * Constructs a new MachineImageList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMachineImageList);

                    /** MachineImageList id. */
                    public id?: (string|null);

                    /** MachineImageList items. */
                    public items: google.cloud.compute.v1beta.IMachineImage[];

                    /** MachineImageList kind. */
                    public kind?: (string|null);

                    /** MachineImageList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** MachineImageList selfLink. */
                    public selfLink?: (string|null);

                    /** MachineImageList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new MachineImageList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineImageList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMachineImageList): google.cloud.compute.v1beta.MachineImageList;

                    /**
                     * Encodes the specified MachineImageList message. Does not implicitly {@link google.cloud.compute.v1beta.MachineImageList.verify|verify} messages.
                     * @param message MachineImageList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMachineImageList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineImageList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MachineImageList.verify|verify} messages.
                     * @param message MachineImageList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMachineImageList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineImageList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineImageList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MachineImageList;

                    /**
                     * Decodes a MachineImageList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineImageList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MachineImageList;

                    /**
                     * Verifies a MachineImageList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineImageList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineImageList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MachineImageList;

                    /**
                     * Creates a plain object from a MachineImageList message. Also converts values to other types if specified.
                     * @param message MachineImageList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MachineImageList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineImageList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineImageList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineImageParams. */
                interface IMachineImageParams {

                    /** MachineImageParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a MachineImageParams. */
                class MachineImageParams implements IMachineImageParams {

                    /**
                     * Constructs a new MachineImageParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMachineImageParams);

                    /** MachineImageParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new MachineImageParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineImageParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMachineImageParams): google.cloud.compute.v1beta.MachineImageParams;

                    /**
                     * Encodes the specified MachineImageParams message. Does not implicitly {@link google.cloud.compute.v1beta.MachineImageParams.verify|verify} messages.
                     * @param message MachineImageParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMachineImageParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineImageParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MachineImageParams.verify|verify} messages.
                     * @param message MachineImageParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMachineImageParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineImageParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineImageParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MachineImageParams;

                    /**
                     * Decodes a MachineImageParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineImageParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MachineImageParams;

                    /**
                     * Verifies a MachineImageParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineImageParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineImageParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MachineImageParams;

                    /**
                     * Creates a plain object from a MachineImageParams message. Also converts values to other types if specified.
                     * @param message MachineImageParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MachineImageParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineImageParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineImageParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineType. */
                interface IMachineType {

                    /** MachineType accelerators */
                    accelerators?: (google.cloud.compute.v1beta.IAccelerators[]|null);

                    /** MachineType architecture */
                    architecture?: (string|null);

                    /** MachineType bundledLocalSsds */
                    bundledLocalSsds?: (google.cloud.compute.v1beta.IBundledLocalSsds|null);

                    /** MachineType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** MachineType deprecated */
                    deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** MachineType description */
                    description?: (string|null);

                    /** MachineType guestCpus */
                    guestCpus?: (number|null);

                    /** MachineType id */
                    id?: (number|Long|string|null);

                    /** MachineType imageSpaceGb */
                    imageSpaceGb?: (number|null);

                    /** MachineType isSharedCpu */
                    isSharedCpu?: (boolean|null);

                    /** MachineType kind */
                    kind?: (string|null);

                    /** MachineType maximumPersistentDisks */
                    maximumPersistentDisks?: (number|null);

                    /** MachineType maximumPersistentDisksSizeGb */
                    maximumPersistentDisksSizeGb?: (number|Long|string|null);

                    /** MachineType memoryMb */
                    memoryMb?: (number|null);

                    /** MachineType name */
                    name?: (string|null);

                    /** MachineType selfLink */
                    selfLink?: (string|null);

                    /** MachineType zone */
                    zone?: (string|null);
                }

                /** Represents a MachineType. */
                class MachineType implements IMachineType {

                    /**
                     * Constructs a new MachineType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMachineType);

                    /** MachineType accelerators. */
                    public accelerators: google.cloud.compute.v1beta.IAccelerators[];

                    /** MachineType architecture. */
                    public architecture?: (string|null);

                    /** MachineType bundledLocalSsds. */
                    public bundledLocalSsds?: (google.cloud.compute.v1beta.IBundledLocalSsds|null);

                    /** MachineType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** MachineType deprecated. */
                    public deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** MachineType description. */
                    public description?: (string|null);

                    /** MachineType guestCpus. */
                    public guestCpus?: (number|null);

                    /** MachineType id. */
                    public id?: (number|Long|string|null);

                    /** MachineType imageSpaceGb. */
                    public imageSpaceGb?: (number|null);

                    /** MachineType isSharedCpu. */
                    public isSharedCpu?: (boolean|null);

                    /** MachineType kind. */
                    public kind?: (string|null);

                    /** MachineType maximumPersistentDisks. */
                    public maximumPersistentDisks?: (number|null);

                    /** MachineType maximumPersistentDisksSizeGb. */
                    public maximumPersistentDisksSizeGb?: (number|Long|string|null);

                    /** MachineType memoryMb. */
                    public memoryMb?: (number|null);

                    /** MachineType name. */
                    public name?: (string|null);

                    /** MachineType selfLink. */
                    public selfLink?: (string|null);

                    /** MachineType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new MachineType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineType instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMachineType): google.cloud.compute.v1beta.MachineType;

                    /**
                     * Encodes the specified MachineType message. Does not implicitly {@link google.cloud.compute.v1beta.MachineType.verify|verify} messages.
                     * @param message MachineType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMachineType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineType message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MachineType.verify|verify} messages.
                     * @param message MachineType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMachineType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MachineType;

                    /**
                     * Decodes a MachineType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MachineType;

                    /**
                     * Verifies a MachineType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MachineType;

                    /**
                     * Creates a plain object from a MachineType message. Also converts values to other types if specified.
                     * @param message MachineType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MachineType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MachineType {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }
                }

                /** Properties of a MachineTypeAggregatedList. */
                interface IMachineTypeAggregatedList {

                    /** MachineTypeAggregatedList id */
                    id?: (string|null);

                    /** MachineTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IMachineTypesScopedList }|null);

                    /** MachineTypeAggregatedList kind */
                    kind?: (string|null);

                    /** MachineTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** MachineTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** MachineTypeAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** MachineTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a MachineTypeAggregatedList. */
                class MachineTypeAggregatedList implements IMachineTypeAggregatedList {

                    /**
                     * Constructs a new MachineTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMachineTypeAggregatedList);

                    /** MachineTypeAggregatedList id. */
                    public id?: (string|null);

                    /** MachineTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IMachineTypesScopedList };

                    /** MachineTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** MachineTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** MachineTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** MachineTypeAggregatedList unreachables. */
                    public unreachables: string[];

                    /** MachineTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new MachineTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMachineTypeAggregatedList): google.cloud.compute.v1beta.MachineTypeAggregatedList;

                    /**
                     * Encodes the specified MachineTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.MachineTypeAggregatedList.verify|verify} messages.
                     * @param message MachineTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMachineTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MachineTypeAggregatedList.verify|verify} messages.
                     * @param message MachineTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMachineTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MachineTypeAggregatedList;

                    /**
                     * Decodes a MachineTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MachineTypeAggregatedList;

                    /**
                     * Verifies a MachineTypeAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MachineTypeAggregatedList;

                    /**
                     * Creates a plain object from a MachineTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message MachineTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MachineTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineTypeList. */
                interface IMachineTypeList {

                    /** MachineTypeList id */
                    id?: (string|null);

                    /** MachineTypeList items */
                    items?: (google.cloud.compute.v1beta.IMachineType[]|null);

                    /** MachineTypeList kind */
                    kind?: (string|null);

                    /** MachineTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** MachineTypeList selfLink */
                    selfLink?: (string|null);

                    /** MachineTypeList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a MachineTypeList. */
                class MachineTypeList implements IMachineTypeList {

                    /**
                     * Constructs a new MachineTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMachineTypeList);

                    /** MachineTypeList id. */
                    public id?: (string|null);

                    /** MachineTypeList items. */
                    public items: google.cloud.compute.v1beta.IMachineType[];

                    /** MachineTypeList kind. */
                    public kind?: (string|null);

                    /** MachineTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** MachineTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** MachineTypeList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new MachineTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMachineTypeList): google.cloud.compute.v1beta.MachineTypeList;

                    /**
                     * Encodes the specified MachineTypeList message. Does not implicitly {@link google.cloud.compute.v1beta.MachineTypeList.verify|verify} messages.
                     * @param message MachineTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMachineTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MachineTypeList.verify|verify} messages.
                     * @param message MachineTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMachineTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MachineTypeList;

                    /**
                     * Decodes a MachineTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MachineTypeList;

                    /**
                     * Verifies a MachineTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MachineTypeList;

                    /**
                     * Creates a plain object from a MachineTypeList message. Also converts values to other types if specified.
                     * @param message MachineTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MachineTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MachineTypesScopedList. */
                interface IMachineTypesScopedList {

                    /** MachineTypesScopedList machineTypes */
                    machineTypes?: (google.cloud.compute.v1beta.IMachineType[]|null);

                    /** MachineTypesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a MachineTypesScopedList. */
                class MachineTypesScopedList implements IMachineTypesScopedList {

                    /**
                     * Constructs a new MachineTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMachineTypesScopedList);

                    /** MachineTypesScopedList machineTypes. */
                    public machineTypes: google.cloud.compute.v1beta.IMachineType[];

                    /** MachineTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new MachineTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MachineTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMachineTypesScopedList): google.cloud.compute.v1beta.MachineTypesScopedList;

                    /**
                     * Encodes the specified MachineTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.MachineTypesScopedList.verify|verify} messages.
                     * @param message MachineTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMachineTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MachineTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MachineTypesScopedList.verify|verify} messages.
                     * @param message MachineTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMachineTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MachineTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MachineTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MachineTypesScopedList;

                    /**
                     * Decodes a MachineTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MachineTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MachineTypesScopedList;

                    /**
                     * Verifies a MachineTypesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MachineTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MachineTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MachineTypesScopedList;

                    /**
                     * Creates a plain object from a MachineTypesScopedList message. Also converts values to other types if specified.
                     * @param message MachineTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MachineTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MachineTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MachineTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstance. */
                interface IManagedInstance {

                    /** ManagedInstance allInstancesConfig */
                    allInstancesConfig?: (google.cloud.compute.v1beta.IManagedInstanceAllInstancesConfig|null);

                    /** ManagedInstance currentAction */
                    currentAction?: (string|null);

                    /** ManagedInstance id */
                    id?: (number|Long|string|null);

                    /** ManagedInstance instance */
                    instance?: (string|null);

                    /** ManagedInstance instanceHealth */
                    instanceHealth?: (google.cloud.compute.v1beta.IManagedInstanceInstanceHealth[]|null);

                    /** ManagedInstance instanceStatus */
                    instanceStatus?: (string|null);

                    /** ManagedInstance lastAttempt */
                    lastAttempt?: (google.cloud.compute.v1beta.IManagedInstanceLastAttempt|null);

                    /** ManagedInstance name */
                    name?: (string|null);

                    /** ManagedInstance preservedStateFromConfig */
                    preservedStateFromConfig?: (google.cloud.compute.v1beta.IPreservedState|null);

                    /** ManagedInstance preservedStateFromPolicy */
                    preservedStateFromPolicy?: (google.cloud.compute.v1beta.IPreservedState|null);

                    /** ManagedInstance propertiesFromFlexibilityPolicy */
                    propertiesFromFlexibilityPolicy?: (google.cloud.compute.v1beta.IManagedInstancePropertiesFromFlexibilityPolicy|null);

                    /** ManagedInstance scheduling */
                    scheduling?: (google.cloud.compute.v1beta.IManagedInstanceScheduling|null);

                    /** ManagedInstance targetStatus */
                    targetStatus?: (string|null);

                    /** ManagedInstance version */
                    version?: (google.cloud.compute.v1beta.IManagedInstanceVersion|null);
                }

                /** Represents a ManagedInstance. */
                class ManagedInstance implements IManagedInstance {

                    /**
                     * Constructs a new ManagedInstance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IManagedInstance);

                    /** ManagedInstance allInstancesConfig. */
                    public allInstancesConfig?: (google.cloud.compute.v1beta.IManagedInstanceAllInstancesConfig|null);

                    /** ManagedInstance currentAction. */
                    public currentAction?: (string|null);

                    /** ManagedInstance id. */
                    public id?: (number|Long|string|null);

                    /** ManagedInstance instance. */
                    public instance?: (string|null);

                    /** ManagedInstance instanceHealth. */
                    public instanceHealth: google.cloud.compute.v1beta.IManagedInstanceInstanceHealth[];

                    /** ManagedInstance instanceStatus. */
                    public instanceStatus?: (string|null);

                    /** ManagedInstance lastAttempt. */
                    public lastAttempt?: (google.cloud.compute.v1beta.IManagedInstanceLastAttempt|null);

                    /** ManagedInstance name. */
                    public name?: (string|null);

                    /** ManagedInstance preservedStateFromConfig. */
                    public preservedStateFromConfig?: (google.cloud.compute.v1beta.IPreservedState|null);

                    /** ManagedInstance preservedStateFromPolicy. */
                    public preservedStateFromPolicy?: (google.cloud.compute.v1beta.IPreservedState|null);

                    /** ManagedInstance propertiesFromFlexibilityPolicy. */
                    public propertiesFromFlexibilityPolicy?: (google.cloud.compute.v1beta.IManagedInstancePropertiesFromFlexibilityPolicy|null);

                    /** ManagedInstance scheduling. */
                    public scheduling?: (google.cloud.compute.v1beta.IManagedInstanceScheduling|null);

                    /** ManagedInstance targetStatus. */
                    public targetStatus?: (string|null);

                    /** ManagedInstance version. */
                    public version?: (google.cloud.compute.v1beta.IManagedInstanceVersion|null);

                    /**
                     * Creates a new ManagedInstance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstance instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IManagedInstance): google.cloud.compute.v1beta.ManagedInstance;

                    /**
                     * Encodes the specified ManagedInstance message. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstance.verify|verify} messages.
                     * @param message ManagedInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IManagedInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstance message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstance.verify|verify} messages.
                     * @param message ManagedInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IManagedInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ManagedInstance;

                    /**
                     * Decodes a ManagedInstance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ManagedInstance;

                    /**
                     * Verifies a ManagedInstance message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ManagedInstance;

                    /**
                     * Creates a plain object from a ManagedInstance message. Also converts values to other types if specified.
                     * @param message ManagedInstance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ManagedInstance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ManagedInstance {

                    /** CurrentAction enum. */
                    enum CurrentAction {
                        UNDEFINED_CURRENT_ACTION = 0,
                        ABANDONING = 388244813,
                        ADOPTING = 414293554,
                        CREATING = 455564985,
                        CREATING_WITHOUT_RETRIES = 428843785,
                        DELETING = 528602024,
                        NONE = 2402104,
                        RECREATING = 287278572,
                        REFRESHING = 163266343,
                        RESTARTING = 320534387,
                        RESUMING = 446856618,
                        STARTING = 488820800,
                        VERIFYING = 16982185
                    }

                    /** InstanceStatus enum. */
                    enum InstanceStatus {
                        UNDEFINED_INSTANCE_STATUS = 0,
                        DEPROVISIONING = 428935662,
                        PENDING = 35394935,
                        PENDING_STOP = 362509770,
                        PROVISIONING = 290896621,
                        REPAIRING = 413483285,
                        RUNNING = 121282975,
                        STAGING = 431072283,
                        STOPPED = 444276141,
                        STOPPING = 350791796,
                        SUSPENDED = 51223995,
                        SUSPENDING = 514206246,
                        TERMINATED = 250018339
                    }

                    /** TargetStatus enum. */
                    enum TargetStatus {
                        UNDEFINED_TARGET_STATUS = 0,
                        ABANDONED = 81797556,
                        DELETED = 120962041
                    }
                }

                /** Properties of a ManagedInstanceAllInstancesConfig. */
                interface IManagedInstanceAllInstancesConfig {

                    /** ManagedInstanceAllInstancesConfig revision */
                    revision?: (string|null);
                }

                /** Represents a ManagedInstanceAllInstancesConfig. */
                class ManagedInstanceAllInstancesConfig implements IManagedInstanceAllInstancesConfig {

                    /**
                     * Constructs a new ManagedInstanceAllInstancesConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IManagedInstanceAllInstancesConfig);

                    /** ManagedInstanceAllInstancesConfig revision. */
                    public revision?: (string|null);

                    /**
                     * Creates a new ManagedInstanceAllInstancesConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceAllInstancesConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IManagedInstanceAllInstancesConfig): google.cloud.compute.v1beta.ManagedInstanceAllInstancesConfig;

                    /**
                     * Encodes the specified ManagedInstanceAllInstancesConfig message. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceAllInstancesConfig.verify|verify} messages.
                     * @param message ManagedInstanceAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IManagedInstanceAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceAllInstancesConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceAllInstancesConfig.verify|verify} messages.
                     * @param message ManagedInstanceAllInstancesConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IManagedInstanceAllInstancesConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceAllInstancesConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ManagedInstanceAllInstancesConfig;

                    /**
                     * Decodes a ManagedInstanceAllInstancesConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceAllInstancesConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ManagedInstanceAllInstancesConfig;

                    /**
                     * Verifies a ManagedInstanceAllInstancesConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceAllInstancesConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceAllInstancesConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ManagedInstanceAllInstancesConfig;

                    /**
                     * Creates a plain object from a ManagedInstanceAllInstancesConfig message. Also converts values to other types if specified.
                     * @param message ManagedInstanceAllInstancesConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ManagedInstanceAllInstancesConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceAllInstancesConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceAllInstancesConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstanceInstanceHealth. */
                interface IManagedInstanceInstanceHealth {

                    /** ManagedInstanceInstanceHealth detailedHealthState */
                    detailedHealthState?: (string|null);

                    /** ManagedInstanceInstanceHealth healthCheck */
                    healthCheck?: (string|null);
                }

                /** Represents a ManagedInstanceInstanceHealth. */
                class ManagedInstanceInstanceHealth implements IManagedInstanceInstanceHealth {

                    /**
                     * Constructs a new ManagedInstanceInstanceHealth.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IManagedInstanceInstanceHealth);

                    /** ManagedInstanceInstanceHealth detailedHealthState. */
                    public detailedHealthState?: (string|null);

                    /** ManagedInstanceInstanceHealth healthCheck. */
                    public healthCheck?: (string|null);

                    /**
                     * Creates a new ManagedInstanceInstanceHealth instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceInstanceHealth instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IManagedInstanceInstanceHealth): google.cloud.compute.v1beta.ManagedInstanceInstanceHealth;

                    /**
                     * Encodes the specified ManagedInstanceInstanceHealth message. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceInstanceHealth.verify|verify} messages.
                     * @param message ManagedInstanceInstanceHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IManagedInstanceInstanceHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceInstanceHealth message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceInstanceHealth.verify|verify} messages.
                     * @param message ManagedInstanceInstanceHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IManagedInstanceInstanceHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceInstanceHealth message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceInstanceHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ManagedInstanceInstanceHealth;

                    /**
                     * Decodes a ManagedInstanceInstanceHealth message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceInstanceHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ManagedInstanceInstanceHealth;

                    /**
                     * Verifies a ManagedInstanceInstanceHealth message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceInstanceHealth message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceInstanceHealth
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ManagedInstanceInstanceHealth;

                    /**
                     * Creates a plain object from a ManagedInstanceInstanceHealth message. Also converts values to other types if specified.
                     * @param message ManagedInstanceInstanceHealth
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ManagedInstanceInstanceHealth, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceInstanceHealth to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceInstanceHealth
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ManagedInstanceInstanceHealth {

                    /** DetailedHealthState enum. */
                    enum DetailedHealthState {
                        UNDEFINED_DETAILED_HEALTH_STATE = 0,
                        DRAINING = 480455402,
                        HEALTHY = 439801213,
                        TIMEOUT = 477813057,
                        UNHEALTHY = 462118084,
                        UNKNOWN = 433141802
                    }
                }

                /** Properties of a ManagedInstanceLastAttempt. */
                interface IManagedInstanceLastAttempt {

                    /** ManagedInstanceLastAttempt errors */
                    errors?: (google.cloud.compute.v1beta.IManagedInstanceLastAttemptErrors|null);
                }

                /** Represents a ManagedInstanceLastAttempt. */
                class ManagedInstanceLastAttempt implements IManagedInstanceLastAttempt {

                    /**
                     * Constructs a new ManagedInstanceLastAttempt.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IManagedInstanceLastAttempt);

                    /** ManagedInstanceLastAttempt errors. */
                    public errors?: (google.cloud.compute.v1beta.IManagedInstanceLastAttemptErrors|null);

                    /**
                     * Creates a new ManagedInstanceLastAttempt instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceLastAttempt instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IManagedInstanceLastAttempt): google.cloud.compute.v1beta.ManagedInstanceLastAttempt;

                    /**
                     * Encodes the specified ManagedInstanceLastAttempt message. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceLastAttempt.verify|verify} messages.
                     * @param message ManagedInstanceLastAttempt message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IManagedInstanceLastAttempt, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceLastAttempt message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceLastAttempt.verify|verify} messages.
                     * @param message ManagedInstanceLastAttempt message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IManagedInstanceLastAttempt, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceLastAttempt message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceLastAttempt
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ManagedInstanceLastAttempt;

                    /**
                     * Decodes a ManagedInstanceLastAttempt message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceLastAttempt
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ManagedInstanceLastAttempt;

                    /**
                     * Verifies a ManagedInstanceLastAttempt message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceLastAttempt message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceLastAttempt
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ManagedInstanceLastAttempt;

                    /**
                     * Creates a plain object from a ManagedInstanceLastAttempt message. Also converts values to other types if specified.
                     * @param message ManagedInstanceLastAttempt
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ManagedInstanceLastAttempt, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceLastAttempt to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceLastAttempt
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstanceLastAttemptErrors. */
                interface IManagedInstanceLastAttemptErrors {

                    /** ManagedInstanceLastAttemptErrors errors */
                    errors?: (google.cloud.compute.v1beta.IErrors[]|null);
                }

                /** Represents a ManagedInstanceLastAttemptErrors. */
                class ManagedInstanceLastAttemptErrors implements IManagedInstanceLastAttemptErrors {

                    /**
                     * Constructs a new ManagedInstanceLastAttemptErrors.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IManagedInstanceLastAttemptErrors);

                    /** ManagedInstanceLastAttemptErrors errors. */
                    public errors: google.cloud.compute.v1beta.IErrors[];

                    /**
                     * Creates a new ManagedInstanceLastAttemptErrors instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceLastAttemptErrors instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IManagedInstanceLastAttemptErrors): google.cloud.compute.v1beta.ManagedInstanceLastAttemptErrors;

                    /**
                     * Encodes the specified ManagedInstanceLastAttemptErrors message. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceLastAttemptErrors.verify|verify} messages.
                     * @param message ManagedInstanceLastAttemptErrors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IManagedInstanceLastAttemptErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceLastAttemptErrors message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceLastAttemptErrors.verify|verify} messages.
                     * @param message ManagedInstanceLastAttemptErrors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IManagedInstanceLastAttemptErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceLastAttemptErrors message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceLastAttemptErrors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ManagedInstanceLastAttemptErrors;

                    /**
                     * Decodes a ManagedInstanceLastAttemptErrors message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceLastAttemptErrors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ManagedInstanceLastAttemptErrors;

                    /**
                     * Verifies a ManagedInstanceLastAttemptErrors message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceLastAttemptErrors message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceLastAttemptErrors
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ManagedInstanceLastAttemptErrors;

                    /**
                     * Creates a plain object from a ManagedInstanceLastAttemptErrors message. Also converts values to other types if specified.
                     * @param message ManagedInstanceLastAttemptErrors
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ManagedInstanceLastAttemptErrors, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceLastAttemptErrors to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceLastAttemptErrors
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstancePropertiesFromFlexibilityPolicy. */
                interface IManagedInstancePropertiesFromFlexibilityPolicy {

                    /** ManagedInstancePropertiesFromFlexibilityPolicy disks */
                    disks?: (google.cloud.compute.v1beta.IAttachedDisk[]|null);

                    /** ManagedInstancePropertiesFromFlexibilityPolicy machineType */
                    machineType?: (string|null);

                    /** ManagedInstancePropertiesFromFlexibilityPolicy minCpuPlatform */
                    minCpuPlatform?: (string|null);

                    /** ManagedInstancePropertiesFromFlexibilityPolicy provisioningModel */
                    provisioningModel?: (string|null);
                }

                /** Represents a ManagedInstancePropertiesFromFlexibilityPolicy. */
                class ManagedInstancePropertiesFromFlexibilityPolicy implements IManagedInstancePropertiesFromFlexibilityPolicy {

                    /**
                     * Constructs a new ManagedInstancePropertiesFromFlexibilityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IManagedInstancePropertiesFromFlexibilityPolicy);

                    /** ManagedInstancePropertiesFromFlexibilityPolicy disks. */
                    public disks: google.cloud.compute.v1beta.IAttachedDisk[];

                    /** ManagedInstancePropertiesFromFlexibilityPolicy machineType. */
                    public machineType?: (string|null);

                    /** ManagedInstancePropertiesFromFlexibilityPolicy minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /** ManagedInstancePropertiesFromFlexibilityPolicy provisioningModel. */
                    public provisioningModel?: (string|null);

                    /**
                     * Creates a new ManagedInstancePropertiesFromFlexibilityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstancePropertiesFromFlexibilityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IManagedInstancePropertiesFromFlexibilityPolicy): google.cloud.compute.v1beta.ManagedInstancePropertiesFromFlexibilityPolicy;

                    /**
                     * Encodes the specified ManagedInstancePropertiesFromFlexibilityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstancePropertiesFromFlexibilityPolicy.verify|verify} messages.
                     * @param message ManagedInstancePropertiesFromFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IManagedInstancePropertiesFromFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstancePropertiesFromFlexibilityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstancePropertiesFromFlexibilityPolicy.verify|verify} messages.
                     * @param message ManagedInstancePropertiesFromFlexibilityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IManagedInstancePropertiesFromFlexibilityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstancePropertiesFromFlexibilityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstancePropertiesFromFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ManagedInstancePropertiesFromFlexibilityPolicy;

                    /**
                     * Decodes a ManagedInstancePropertiesFromFlexibilityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstancePropertiesFromFlexibilityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ManagedInstancePropertiesFromFlexibilityPolicy;

                    /**
                     * Verifies a ManagedInstancePropertiesFromFlexibilityPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstancePropertiesFromFlexibilityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstancePropertiesFromFlexibilityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ManagedInstancePropertiesFromFlexibilityPolicy;

                    /**
                     * Creates a plain object from a ManagedInstancePropertiesFromFlexibilityPolicy message. Also converts values to other types if specified.
                     * @param message ManagedInstancePropertiesFromFlexibilityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ManagedInstancePropertiesFromFlexibilityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstancePropertiesFromFlexibilityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstancePropertiesFromFlexibilityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ManagedInstancePropertiesFromFlexibilityPolicy {

                    /** ProvisioningModel enum. */
                    enum ProvisioningModel {
                        UNDEFINED_PROVISIONING_MODEL = 0,
                        FLEX_START = 101746812,
                        RESERVATION_BOUND = 293538571,
                        SPOT = 2552066,
                        STANDARD = 484642493
                    }
                }

                /** Properties of a ManagedInstanceScheduling. */
                interface IManagedInstanceScheduling {

                    /** ManagedInstanceScheduling terminationTimestamp */
                    terminationTimestamp?: (string|null);
                }

                /** Represents a ManagedInstanceScheduling. */
                class ManagedInstanceScheduling implements IManagedInstanceScheduling {

                    /**
                     * Constructs a new ManagedInstanceScheduling.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IManagedInstanceScheduling);

                    /** ManagedInstanceScheduling terminationTimestamp. */
                    public terminationTimestamp?: (string|null);

                    /**
                     * Creates a new ManagedInstanceScheduling instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceScheduling instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IManagedInstanceScheduling): google.cloud.compute.v1beta.ManagedInstanceScheduling;

                    /**
                     * Encodes the specified ManagedInstanceScheduling message. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceScheduling.verify|verify} messages.
                     * @param message ManagedInstanceScheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IManagedInstanceScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceScheduling message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceScheduling.verify|verify} messages.
                     * @param message ManagedInstanceScheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IManagedInstanceScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceScheduling message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceScheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ManagedInstanceScheduling;

                    /**
                     * Decodes a ManagedInstanceScheduling message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceScheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ManagedInstanceScheduling;

                    /**
                     * Verifies a ManagedInstanceScheduling message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceScheduling message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceScheduling
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ManagedInstanceScheduling;

                    /**
                     * Creates a plain object from a ManagedInstanceScheduling message. Also converts values to other types if specified.
                     * @param message ManagedInstanceScheduling
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ManagedInstanceScheduling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceScheduling to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceScheduling
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ManagedInstanceVersion. */
                interface IManagedInstanceVersion {

                    /** ManagedInstanceVersion instanceTemplate */
                    instanceTemplate?: (string|null);

                    /** ManagedInstanceVersion name */
                    name?: (string|null);
                }

                /** Represents a ManagedInstanceVersion. */
                class ManagedInstanceVersion implements IManagedInstanceVersion {

                    /**
                     * Constructs a new ManagedInstanceVersion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IManagedInstanceVersion);

                    /** ManagedInstanceVersion instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /** ManagedInstanceVersion name. */
                    public name?: (string|null);

                    /**
                     * Creates a new ManagedInstanceVersion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ManagedInstanceVersion instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IManagedInstanceVersion): google.cloud.compute.v1beta.ManagedInstanceVersion;

                    /**
                     * Encodes the specified ManagedInstanceVersion message. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceVersion.verify|verify} messages.
                     * @param message ManagedInstanceVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IManagedInstanceVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ManagedInstanceVersion message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ManagedInstanceVersion.verify|verify} messages.
                     * @param message ManagedInstanceVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IManagedInstanceVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ManagedInstanceVersion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ManagedInstanceVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ManagedInstanceVersion;

                    /**
                     * Decodes a ManagedInstanceVersion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ManagedInstanceVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ManagedInstanceVersion;

                    /**
                     * Verifies a ManagedInstanceVersion message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ManagedInstanceVersion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ManagedInstanceVersion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ManagedInstanceVersion;

                    /**
                     * Creates a plain object from a ManagedInstanceVersion message. Also converts values to other types if specified.
                     * @param message ManagedInstanceVersion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ManagedInstanceVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ManagedInstanceVersion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ManagedInstanceVersion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Metadata. */
                interface IMetadata {

                    /** Metadata fingerprint */
                    fingerprint?: (string|null);

                    /** Metadata items */
                    items?: (google.cloud.compute.v1beta.IItems[]|null);

                    /** Metadata kind */
                    kind?: (string|null);
                }

                /** Represents a Metadata. */
                class Metadata implements IMetadata {

                    /**
                     * Constructs a new Metadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMetadata);

                    /** Metadata fingerprint. */
                    public fingerprint?: (string|null);

                    /** Metadata items. */
                    public items: google.cloud.compute.v1beta.IItems[];

                    /** Metadata kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new Metadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Metadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMetadata): google.cloud.compute.v1beta.Metadata;

                    /**
                     * Encodes the specified Metadata message. Does not implicitly {@link google.cloud.compute.v1beta.Metadata.verify|verify} messages.
                     * @param message Metadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Metadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Metadata.verify|verify} messages.
                     * @param message Metadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Metadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Metadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Metadata;

                    /**
                     * Decodes a Metadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Metadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Metadata;

                    /**
                     * Verifies a Metadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Metadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Metadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Metadata;

                    /**
                     * Creates a plain object from a Metadata message. Also converts values to other types if specified.
                     * @param message Metadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Metadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Metadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Metadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MetadataFilter. */
                interface IMetadataFilter {

                    /** MetadataFilter filterLabels */
                    filterLabels?: (google.cloud.compute.v1beta.IMetadataFilterLabelMatch[]|null);

                    /** MetadataFilter filterMatchCriteria */
                    filterMatchCriteria?: (string|null);
                }

                /** Represents a MetadataFilter. */
                class MetadataFilter implements IMetadataFilter {

                    /**
                     * Constructs a new MetadataFilter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMetadataFilter);

                    /** MetadataFilter filterLabels. */
                    public filterLabels: google.cloud.compute.v1beta.IMetadataFilterLabelMatch[];

                    /** MetadataFilter filterMatchCriteria. */
                    public filterMatchCriteria?: (string|null);

                    /**
                     * Creates a new MetadataFilter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MetadataFilter instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMetadataFilter): google.cloud.compute.v1beta.MetadataFilter;

                    /**
                     * Encodes the specified MetadataFilter message. Does not implicitly {@link google.cloud.compute.v1beta.MetadataFilter.verify|verify} messages.
                     * @param message MetadataFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMetadataFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MetadataFilter message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MetadataFilter.verify|verify} messages.
                     * @param message MetadataFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMetadataFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MetadataFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MetadataFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MetadataFilter;

                    /**
                     * Decodes a MetadataFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MetadataFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MetadataFilter;

                    /**
                     * Verifies a MetadataFilter message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MetadataFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MetadataFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MetadataFilter;

                    /**
                     * Creates a plain object from a MetadataFilter message. Also converts values to other types if specified.
                     * @param message MetadataFilter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MetadataFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MetadataFilter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MetadataFilter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MetadataFilter {

                    /** FilterMatchCriteria enum. */
                    enum FilterMatchCriteria {
                        UNDEFINED_FILTER_MATCH_CRITERIA = 0,
                        MATCH_ALL = 180663271,
                        MATCH_ANY = 180663346,
                        NOT_SET = 163646646
                    }
                }

                /** Properties of a MetadataFilterLabelMatch. */
                interface IMetadataFilterLabelMatch {

                    /** MetadataFilterLabelMatch name */
                    name?: (string|null);

                    /** MetadataFilterLabelMatch value */
                    value?: (string|null);
                }

                /** Represents a MetadataFilterLabelMatch. */
                class MetadataFilterLabelMatch implements IMetadataFilterLabelMatch {

                    /**
                     * Constructs a new MetadataFilterLabelMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMetadataFilterLabelMatch);

                    /** MetadataFilterLabelMatch name. */
                    public name?: (string|null);

                    /** MetadataFilterLabelMatch value. */
                    public value?: (string|null);

                    /**
                     * Creates a new MetadataFilterLabelMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MetadataFilterLabelMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMetadataFilterLabelMatch): google.cloud.compute.v1beta.MetadataFilterLabelMatch;

                    /**
                     * Encodes the specified MetadataFilterLabelMatch message. Does not implicitly {@link google.cloud.compute.v1beta.MetadataFilterLabelMatch.verify|verify} messages.
                     * @param message MetadataFilterLabelMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMetadataFilterLabelMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MetadataFilterLabelMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MetadataFilterLabelMatch.verify|verify} messages.
                     * @param message MetadataFilterLabelMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMetadataFilterLabelMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MetadataFilterLabelMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MetadataFilterLabelMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MetadataFilterLabelMatch;

                    /**
                     * Decodes a MetadataFilterLabelMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MetadataFilterLabelMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MetadataFilterLabelMatch;

                    /**
                     * Verifies a MetadataFilterLabelMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MetadataFilterLabelMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MetadataFilterLabelMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MetadataFilterLabelMatch;

                    /**
                     * Creates a plain object from a MetadataFilterLabelMatch message. Also converts values to other types if specified.
                     * @param message MetadataFilterLabelMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MetadataFilterLabelMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MetadataFilterLabelMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MetadataFilterLabelMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveAddressRequest. */
                interface IMoveAddressRequest {

                    /** MoveAddressRequest address */
                    address?: (string|null);

                    /** MoveAddressRequest project */
                    project?: (string|null);

                    /** MoveAddressRequest region */
                    region?: (string|null);

                    /** MoveAddressRequest regionAddressesMoveRequestResource */
                    regionAddressesMoveRequestResource?: (google.cloud.compute.v1beta.IRegionAddressesMoveRequest|null);

                    /** MoveAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveAddressRequest. */
                class MoveAddressRequest implements IMoveAddressRequest {

                    /**
                     * Constructs a new MoveAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMoveAddressRequest);

                    /** MoveAddressRequest address. */
                    public address: string;

                    /** MoveAddressRequest project. */
                    public project: string;

                    /** MoveAddressRequest region. */
                    public region: string;

                    /** MoveAddressRequest regionAddressesMoveRequestResource. */
                    public regionAddressesMoveRequestResource?: (google.cloud.compute.v1beta.IRegionAddressesMoveRequest|null);

                    /** MoveAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMoveAddressRequest): google.cloud.compute.v1beta.MoveAddressRequest;

                    /**
                     * Encodes the specified MoveAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.MoveAddressRequest.verify|verify} messages.
                     * @param message MoveAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMoveAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MoveAddressRequest.verify|verify} messages.
                     * @param message MoveAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMoveAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MoveAddressRequest;

                    /**
                     * Decodes a MoveAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MoveAddressRequest;

                    /**
                     * Verifies a MoveAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MoveAddressRequest;

                    /**
                     * Creates a plain object from a MoveAddressRequest message. Also converts values to other types if specified.
                     * @param message MoveAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MoveAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveDiskProjectRequest. */
                interface IMoveDiskProjectRequest {

                    /** MoveDiskProjectRequest diskMoveRequestResource */
                    diskMoveRequestResource?: (google.cloud.compute.v1beta.IDiskMoveRequest|null);

                    /** MoveDiskProjectRequest project */
                    project?: (string|null);

                    /** MoveDiskProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveDiskProjectRequest. */
                class MoveDiskProjectRequest implements IMoveDiskProjectRequest {

                    /**
                     * Constructs a new MoveDiskProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMoveDiskProjectRequest);

                    /** MoveDiskProjectRequest diskMoveRequestResource. */
                    public diskMoveRequestResource?: (google.cloud.compute.v1beta.IDiskMoveRequest|null);

                    /** MoveDiskProjectRequest project. */
                    public project: string;

                    /** MoveDiskProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveDiskProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveDiskProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMoveDiskProjectRequest): google.cloud.compute.v1beta.MoveDiskProjectRequest;

                    /**
                     * Encodes the specified MoveDiskProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.MoveDiskProjectRequest.verify|verify} messages.
                     * @param message MoveDiskProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMoveDiskProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveDiskProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MoveDiskProjectRequest.verify|verify} messages.
                     * @param message MoveDiskProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMoveDiskProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveDiskProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveDiskProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MoveDiskProjectRequest;

                    /**
                     * Decodes a MoveDiskProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveDiskProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MoveDiskProjectRequest;

                    /**
                     * Verifies a MoveDiskProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveDiskProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveDiskProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MoveDiskProjectRequest;

                    /**
                     * Creates a plain object from a MoveDiskProjectRequest message. Also converts values to other types if specified.
                     * @param message MoveDiskProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MoveDiskProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveDiskProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveDiskProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveFirewallPolicyRequest. */
                interface IMoveFirewallPolicyRequest {

                    /** MoveFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** MoveFirewallPolicyRequest parentId */
                    parentId?: (string|null);

                    /** MoveFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveFirewallPolicyRequest. */
                class MoveFirewallPolicyRequest implements IMoveFirewallPolicyRequest {

                    /**
                     * Constructs a new MoveFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMoveFirewallPolicyRequest);

                    /** MoveFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** MoveFirewallPolicyRequest parentId. */
                    public parentId: string;

                    /** MoveFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMoveFirewallPolicyRequest): google.cloud.compute.v1beta.MoveFirewallPolicyRequest;

                    /**
                     * Encodes the specified MoveFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.MoveFirewallPolicyRequest.verify|verify} messages.
                     * @param message MoveFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMoveFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MoveFirewallPolicyRequest.verify|verify} messages.
                     * @param message MoveFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMoveFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MoveFirewallPolicyRequest;

                    /**
                     * Decodes a MoveFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MoveFirewallPolicyRequest;

                    /**
                     * Verifies a MoveFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MoveFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a MoveFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message MoveFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MoveFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveGlobalAddressRequest. */
                interface IMoveGlobalAddressRequest {

                    /** MoveGlobalAddressRequest address */
                    address?: (string|null);

                    /** MoveGlobalAddressRequest globalAddressesMoveRequestResource */
                    globalAddressesMoveRequestResource?: (google.cloud.compute.v1beta.IGlobalAddressesMoveRequest|null);

                    /** MoveGlobalAddressRequest project */
                    project?: (string|null);

                    /** MoveGlobalAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveGlobalAddressRequest. */
                class MoveGlobalAddressRequest implements IMoveGlobalAddressRequest {

                    /**
                     * Constructs a new MoveGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMoveGlobalAddressRequest);

                    /** MoveGlobalAddressRequest address. */
                    public address: string;

                    /** MoveGlobalAddressRequest globalAddressesMoveRequestResource. */
                    public globalAddressesMoveRequestResource?: (google.cloud.compute.v1beta.IGlobalAddressesMoveRequest|null);

                    /** MoveGlobalAddressRequest project. */
                    public project: string;

                    /** MoveGlobalAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMoveGlobalAddressRequest): google.cloud.compute.v1beta.MoveGlobalAddressRequest;

                    /**
                     * Encodes the specified MoveGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.MoveGlobalAddressRequest.verify|verify} messages.
                     * @param message MoveGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMoveGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MoveGlobalAddressRequest.verify|verify} messages.
                     * @param message MoveGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMoveGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MoveGlobalAddressRequest;

                    /**
                     * Decodes a MoveGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MoveGlobalAddressRequest;

                    /**
                     * Verifies a MoveGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MoveGlobalAddressRequest;

                    /**
                     * Creates a plain object from a MoveGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message MoveGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MoveGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveInstanceProjectRequest. */
                interface IMoveInstanceProjectRequest {

                    /** MoveInstanceProjectRequest instanceMoveRequestResource */
                    instanceMoveRequestResource?: (google.cloud.compute.v1beta.IInstanceMoveRequest|null);

                    /** MoveInstanceProjectRequest project */
                    project?: (string|null);

                    /** MoveInstanceProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a MoveInstanceProjectRequest. */
                class MoveInstanceProjectRequest implements IMoveInstanceProjectRequest {

                    /**
                     * Constructs a new MoveInstanceProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMoveInstanceProjectRequest);

                    /** MoveInstanceProjectRequest instanceMoveRequestResource. */
                    public instanceMoveRequestResource?: (google.cloud.compute.v1beta.IInstanceMoveRequest|null);

                    /** MoveInstanceProjectRequest project. */
                    public project: string;

                    /** MoveInstanceProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new MoveInstanceProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveInstanceProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMoveInstanceProjectRequest): google.cloud.compute.v1beta.MoveInstanceProjectRequest;

                    /**
                     * Encodes the specified MoveInstanceProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.MoveInstanceProjectRequest.verify|verify} messages.
                     * @param message MoveInstanceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMoveInstanceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveInstanceProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MoveInstanceProjectRequest.verify|verify} messages.
                     * @param message MoveInstanceProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMoveInstanceProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveInstanceProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveInstanceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MoveInstanceProjectRequest;

                    /**
                     * Decodes a MoveInstanceProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveInstanceProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MoveInstanceProjectRequest;

                    /**
                     * Verifies a MoveInstanceProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveInstanceProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveInstanceProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MoveInstanceProjectRequest;

                    /**
                     * Creates a plain object from a MoveInstanceProjectRequest message. Also converts values to other types if specified.
                     * @param message MoveInstanceProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MoveInstanceProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveInstanceProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveInstanceProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MoveOrganizationSecurityPolicyRequest. */
                interface IMoveOrganizationSecurityPolicyRequest {

                    /** MoveOrganizationSecurityPolicyRequest parentId */
                    parentId?: (string|null);

                    /** MoveOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** MoveOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a MoveOrganizationSecurityPolicyRequest. */
                class MoveOrganizationSecurityPolicyRequest implements IMoveOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new MoveOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMoveOrganizationSecurityPolicyRequest);

                    /** MoveOrganizationSecurityPolicyRequest parentId. */
                    public parentId?: (string|null);

                    /** MoveOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** MoveOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new MoveOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MoveOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMoveOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.MoveOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified MoveOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.MoveOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message MoveOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMoveOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MoveOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MoveOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message MoveOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMoveOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MoveOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MoveOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MoveOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a MoveOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MoveOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MoveOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a MoveOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MoveOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MoveOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MoveOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a MoveOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message MoveOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MoveOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MoveOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MoveOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MultiMig. */
                interface IMultiMig {

                    /** MultiMig creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** MultiMig description */
                    description?: (string|null);

                    /** MultiMig id */
                    id?: (number|Long|string|null);

                    /** MultiMig kind */
                    kind?: (string|null);

                    /** MultiMig name */
                    name?: (string|null);

                    /** MultiMig region */
                    region?: (string|null);

                    /** MultiMig resourcePolicies */
                    resourcePolicies?: (google.cloud.compute.v1beta.IMultiMigResourcePolicies|null);

                    /** MultiMig selfLink */
                    selfLink?: (string|null);

                    /** MultiMig status */
                    status?: (google.cloud.compute.v1beta.IMultiMigStatus|null);
                }

                /** Represents a MultiMig. */
                class MultiMig implements IMultiMig {

                    /**
                     * Constructs a new MultiMig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMig);

                    /** MultiMig creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** MultiMig description. */
                    public description?: (string|null);

                    /** MultiMig id. */
                    public id?: (number|Long|string|null);

                    /** MultiMig kind. */
                    public kind?: (string|null);

                    /** MultiMig name. */
                    public name?: (string|null);

                    /** MultiMig region. */
                    public region?: (string|null);

                    /** MultiMig resourcePolicies. */
                    public resourcePolicies?: (google.cloud.compute.v1beta.IMultiMigResourcePolicies|null);

                    /** MultiMig selfLink. */
                    public selfLink?: (string|null);

                    /** MultiMig status. */
                    public status?: (google.cloud.compute.v1beta.IMultiMigStatus|null);

                    /**
                     * Creates a new MultiMig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMig): google.cloud.compute.v1beta.MultiMig;

                    /**
                     * Encodes the specified MultiMig message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMig.verify|verify} messages.
                     * @param message MultiMig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMig.verify|verify} messages.
                     * @param message MultiMig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMig;

                    /**
                     * Decodes a MultiMig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMig;

                    /**
                     * Verifies a MultiMig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMig;

                    /**
                     * Creates a plain object from a MultiMig message. Also converts values to other types if specified.
                     * @param message MultiMig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MultiMigMember. */
                interface IMultiMigMember {

                    /** MultiMigMember creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** MultiMigMember id */
                    id?: (number|Long|string|null);

                    /** MultiMigMember kind */
                    kind?: (string|null);

                    /** MultiMigMember name */
                    name?: (string|null);

                    /** MultiMigMember region */
                    region?: (string|null);

                    /** MultiMigMember selfLink */
                    selfLink?: (string|null);

                    /** MultiMigMember status */
                    status?: (google.cloud.compute.v1beta.IMultiMigMemberStatus|null);
                }

                /** Represents a MultiMigMember. */
                class MultiMigMember implements IMultiMigMember {

                    /**
                     * Constructs a new MultiMigMember.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMigMember);

                    /** MultiMigMember creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** MultiMigMember id. */
                    public id?: (number|Long|string|null);

                    /** MultiMigMember kind. */
                    public kind?: (string|null);

                    /** MultiMigMember name. */
                    public name?: (string|null);

                    /** MultiMigMember region. */
                    public region?: (string|null);

                    /** MultiMigMember selfLink. */
                    public selfLink?: (string|null);

                    /** MultiMigMember status. */
                    public status?: (google.cloud.compute.v1beta.IMultiMigMemberStatus|null);

                    /**
                     * Creates a new MultiMigMember instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMigMember instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMigMember): google.cloud.compute.v1beta.MultiMigMember;

                    /**
                     * Encodes the specified MultiMigMember message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigMember.verify|verify} messages.
                     * @param message MultiMigMember message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMigMember, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMigMember message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigMember.verify|verify} messages.
                     * @param message MultiMigMember message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMigMember, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMigMember message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMigMember
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMigMember;

                    /**
                     * Decodes a MultiMigMember message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMigMember
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMigMember;

                    /**
                     * Verifies a MultiMigMember message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMigMember message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMigMember
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMigMember;

                    /**
                     * Creates a plain object from a MultiMigMember message. Also converts values to other types if specified.
                     * @param message MultiMigMember
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMigMember, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMigMember to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMigMember
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MultiMigMemberList. */
                interface IMultiMigMemberList {

                    /** MultiMigMemberList id */
                    id?: (string|null);

                    /** MultiMigMemberList items */
                    items?: (google.cloud.compute.v1beta.IMultiMigMember[]|null);

                    /** MultiMigMemberList kind */
                    kind?: (string|null);

                    /** MultiMigMemberList nextPageToken */
                    nextPageToken?: (string|null);

                    /** MultiMigMemberList selfLink */
                    selfLink?: (string|null);

                    /** MultiMigMemberList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a MultiMigMemberList. */
                class MultiMigMemberList implements IMultiMigMemberList {

                    /**
                     * Constructs a new MultiMigMemberList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMigMemberList);

                    /** MultiMigMemberList id. */
                    public id?: (string|null);

                    /** MultiMigMemberList items. */
                    public items: google.cloud.compute.v1beta.IMultiMigMember[];

                    /** MultiMigMemberList kind. */
                    public kind?: (string|null);

                    /** MultiMigMemberList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** MultiMigMemberList selfLink. */
                    public selfLink?: (string|null);

                    /** MultiMigMemberList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new MultiMigMemberList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMigMemberList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMigMemberList): google.cloud.compute.v1beta.MultiMigMemberList;

                    /**
                     * Encodes the specified MultiMigMemberList message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigMemberList.verify|verify} messages.
                     * @param message MultiMigMemberList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMigMemberList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMigMemberList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigMemberList.verify|verify} messages.
                     * @param message MultiMigMemberList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMigMemberList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMigMemberList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMigMemberList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMigMemberList;

                    /**
                     * Decodes a MultiMigMemberList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMigMemberList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMigMemberList;

                    /**
                     * Verifies a MultiMigMemberList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMigMemberList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMigMemberList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMigMemberList;

                    /**
                     * Creates a plain object from a MultiMigMemberList message. Also converts values to other types if specified.
                     * @param message MultiMigMemberList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMigMemberList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMigMemberList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMigMemberList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MultiMigMemberStatus. */
                interface IMultiMigMemberStatus {

                    /** MultiMigMemberStatus instanceGroupManager */
                    instanceGroupManager?: (string|null);
                }

                /** Represents a MultiMigMemberStatus. */
                class MultiMigMemberStatus implements IMultiMigMemberStatus {

                    /**
                     * Constructs a new MultiMigMemberStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMigMemberStatus);

                    /** MultiMigMemberStatus instanceGroupManager. */
                    public instanceGroupManager?: (string|null);

                    /**
                     * Creates a new MultiMigMemberStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMigMemberStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMigMemberStatus): google.cloud.compute.v1beta.MultiMigMemberStatus;

                    /**
                     * Encodes the specified MultiMigMemberStatus message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigMemberStatus.verify|verify} messages.
                     * @param message MultiMigMemberStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMigMemberStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMigMemberStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigMemberStatus.verify|verify} messages.
                     * @param message MultiMigMemberStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMigMemberStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMigMemberStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMigMemberStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMigMemberStatus;

                    /**
                     * Decodes a MultiMigMemberStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMigMemberStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMigMemberStatus;

                    /**
                     * Verifies a MultiMigMemberStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMigMemberStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMigMemberStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMigMemberStatus;

                    /**
                     * Creates a plain object from a MultiMigMemberStatus message. Also converts values to other types if specified.
                     * @param message MultiMigMemberStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMigMemberStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMigMemberStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMigMemberStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MultiMigResourcePolicies. */
                interface IMultiMigResourcePolicies {

                    /** MultiMigResourcePolicies workloadPolicy */
                    workloadPolicy?: (string|null);
                }

                /** Represents a MultiMigResourcePolicies. */
                class MultiMigResourcePolicies implements IMultiMigResourcePolicies {

                    /**
                     * Constructs a new MultiMigResourcePolicies.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMigResourcePolicies);

                    /** MultiMigResourcePolicies workloadPolicy. */
                    public workloadPolicy?: (string|null);

                    /**
                     * Creates a new MultiMigResourcePolicies instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMigResourcePolicies instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMigResourcePolicies): google.cloud.compute.v1beta.MultiMigResourcePolicies;

                    /**
                     * Encodes the specified MultiMigResourcePolicies message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigResourcePolicies.verify|verify} messages.
                     * @param message MultiMigResourcePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMigResourcePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMigResourcePolicies message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigResourcePolicies.verify|verify} messages.
                     * @param message MultiMigResourcePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMigResourcePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMigResourcePolicies message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMigResourcePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMigResourcePolicies;

                    /**
                     * Decodes a MultiMigResourcePolicies message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMigResourcePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMigResourcePolicies;

                    /**
                     * Verifies a MultiMigResourcePolicies message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMigResourcePolicies message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMigResourcePolicies
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMigResourcePolicies;

                    /**
                     * Creates a plain object from a MultiMigResourcePolicies message. Also converts values to other types if specified.
                     * @param message MultiMigResourcePolicies
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMigResourcePolicies, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMigResourcePolicies to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMigResourcePolicies
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MultiMigStatus. */
                interface IMultiMigStatus {

                    /** MultiMigStatus appliedAcceleratorTopologies */
                    appliedAcceleratorTopologies?: (google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopology[]|null);

                    /** MultiMigStatus membersCount */
                    membersCount?: (number|null);
                }

                /** Represents a MultiMigStatus. */
                class MultiMigStatus implements IMultiMigStatus {

                    /**
                     * Constructs a new MultiMigStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMigStatus);

                    /** MultiMigStatus appliedAcceleratorTopologies. */
                    public appliedAcceleratorTopologies: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopology[];

                    /** MultiMigStatus membersCount. */
                    public membersCount?: (number|null);

                    /**
                     * Creates a new MultiMigStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMigStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMigStatus): google.cloud.compute.v1beta.MultiMigStatus;

                    /**
                     * Encodes the specified MultiMigStatus message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigStatus.verify|verify} messages.
                     * @param message MultiMigStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMigStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMigStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigStatus.verify|verify} messages.
                     * @param message MultiMigStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMigStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMigStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMigStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMigStatus;

                    /**
                     * Decodes a MultiMigStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMigStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMigStatus;

                    /**
                     * Verifies a MultiMigStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMigStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMigStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMigStatus;

                    /**
                     * Creates a plain object from a MultiMigStatus message. Also converts values to other types if specified.
                     * @param message MultiMigStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMigStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMigStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMigStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MultiMigStatusAcceleratorTopology. */
                interface IMultiMigStatusAcceleratorTopology {

                    /** MultiMigStatusAcceleratorTopology acceleratorTopology */
                    acceleratorTopology?: (string|null);

                    /** MultiMigStatusAcceleratorTopology acceleratorTopologyState */
                    acceleratorTopologyState?: (string|null);

                    /** MultiMigStatusAcceleratorTopology acceleratorTopologyStateLastCheck */
                    acceleratorTopologyStateLastCheck?: (google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck|null);
                }

                /** Represents a MultiMigStatusAcceleratorTopology. */
                class MultiMigStatusAcceleratorTopology implements IMultiMigStatusAcceleratorTopology {

                    /**
                     * Constructs a new MultiMigStatusAcceleratorTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopology);

                    /** MultiMigStatusAcceleratorTopology acceleratorTopology. */
                    public acceleratorTopology?: (string|null);

                    /** MultiMigStatusAcceleratorTopology acceleratorTopologyState. */
                    public acceleratorTopologyState?: (string|null);

                    /** MultiMigStatusAcceleratorTopology acceleratorTopologyStateLastCheck. */
                    public acceleratorTopologyStateLastCheck?: (google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck|null);

                    /**
                     * Creates a new MultiMigStatusAcceleratorTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMigStatusAcceleratorTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopology): google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopology;

                    /**
                     * Encodes the specified MultiMigStatusAcceleratorTopology message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopology.verify|verify} messages.
                     * @param message MultiMigStatusAcceleratorTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMigStatusAcceleratorTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopology.verify|verify} messages.
                     * @param message MultiMigStatusAcceleratorTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMigStatusAcceleratorTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMigStatusAcceleratorTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopology;

                    /**
                     * Decodes a MultiMigStatusAcceleratorTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMigStatusAcceleratorTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopology;

                    /**
                     * Verifies a MultiMigStatusAcceleratorTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMigStatusAcceleratorTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMigStatusAcceleratorTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopology;

                    /**
                     * Creates a plain object from a MultiMigStatusAcceleratorTopology message. Also converts values to other types if specified.
                     * @param message MultiMigStatusAcceleratorTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMigStatusAcceleratorTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMigStatusAcceleratorTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MultiMigStatusAcceleratorTopology {

                    /** AcceleratorTopologyState enum. */
                    enum AcceleratorTopologyState {
                        UNDEFINED_ACCELERATOR_TOPOLOGY_STATE = 0,
                        ACTIVATING = 378825968,
                        ACTIVE = 314733318,
                        ACTIVE_DEGRADED = 471128135,
                        DEACTIVATING = 57182257,
                        FAILED = 455706685,
                        INCOMPLETE = 11941214
                    }
                }

                /** Properties of a MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck. */
                interface IMultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck {

                    /** MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck error */
                    error?: (google.cloud.compute.v1beta.IError|null);

                    /** MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck timestamp */
                    timestamp?: (string|null);
                }

                /** Represents a MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck. */
                class MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck implements IMultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck {

                    /**
                     * Constructs a new MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck);

                    /** MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck error. */
                    public error?: (google.cloud.compute.v1beta.IError|null);

                    /** MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck timestamp. */
                    public timestamp?: (string|null);

                    /**
                     * Creates a new MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck): google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck;

                    /**
                     * Encodes the specified MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck.verify|verify} messages.
                     * @param message MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck.verify|verify} messages.
                     * @param message MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck;

                    /**
                     * Decodes a MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck;

                    /**
                     * Verifies a MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck;

                    /**
                     * Creates a plain object from a MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck message. Also converts values to other types if specified.
                     * @param message MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MultiMigsList. */
                interface IMultiMigsList {

                    /** MultiMigsList etag */
                    etag?: (string|null);

                    /** MultiMigsList id */
                    id?: (string|null);

                    /** MultiMigsList items */
                    items?: (google.cloud.compute.v1beta.IMultiMig[]|null);

                    /** MultiMigsList kind */
                    kind?: (string|null);

                    /** MultiMigsList nextPageToken */
                    nextPageToken?: (string|null);

                    /** MultiMigsList selfLink */
                    selfLink?: (string|null);

                    /** MultiMigsList unreachables */
                    unreachables?: (string[]|null);

                    /** MultiMigsList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a MultiMigsList. */
                class MultiMigsList implements IMultiMigsList {

                    /**
                     * Constructs a new MultiMigsList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IMultiMigsList);

                    /** MultiMigsList etag. */
                    public etag?: (string|null);

                    /** MultiMigsList id. */
                    public id?: (string|null);

                    /** MultiMigsList items. */
                    public items: google.cloud.compute.v1beta.IMultiMig[];

                    /** MultiMigsList kind. */
                    public kind?: (string|null);

                    /** MultiMigsList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** MultiMigsList selfLink. */
                    public selfLink?: (string|null);

                    /** MultiMigsList unreachables. */
                    public unreachables: string[];

                    /** MultiMigsList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new MultiMigsList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MultiMigsList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IMultiMigsList): google.cloud.compute.v1beta.MultiMigsList;

                    /**
                     * Encodes the specified MultiMigsList message. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigsList.verify|verify} messages.
                     * @param message MultiMigsList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IMultiMigsList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MultiMigsList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.MultiMigsList.verify|verify} messages.
                     * @param message MultiMigsList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IMultiMigsList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MultiMigsList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MultiMigsList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.MultiMigsList;

                    /**
                     * Decodes a MultiMigsList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MultiMigsList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.MultiMigsList;

                    /**
                     * Verifies a MultiMigsList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MultiMigsList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MultiMigsList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.MultiMigsList;

                    /**
                     * Creates a plain object from a MultiMigsList message. Also converts values to other types if specified.
                     * @param message MultiMigsList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.MultiMigsList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MultiMigsList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MultiMigsList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NamedPort. */
                interface INamedPort {

                    /** NamedPort name */
                    name?: (string|null);

                    /** NamedPort port */
                    port?: (number|null);
                }

                /** Represents a NamedPort. */
                class NamedPort implements INamedPort {

                    /**
                     * Constructs a new NamedPort.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INamedPort);

                    /** NamedPort name. */
                    public name?: (string|null);

                    /** NamedPort port. */
                    public port?: (number|null);

                    /**
                     * Creates a new NamedPort instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NamedPort instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INamedPort): google.cloud.compute.v1beta.NamedPort;

                    /**
                     * Encodes the specified NamedPort message. Does not implicitly {@link google.cloud.compute.v1beta.NamedPort.verify|verify} messages.
                     * @param message NamedPort message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INamedPort, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NamedPort message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NamedPort.verify|verify} messages.
                     * @param message NamedPort message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INamedPort, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NamedPort message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NamedPort
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NamedPort;

                    /**
                     * Decodes a NamedPort message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NamedPort
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NamedPort;

                    /**
                     * Verifies a NamedPort message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NamedPort message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NamedPort
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NamedPort;

                    /**
                     * Creates a plain object from a NamedPort message. Also converts values to other types if specified.
                     * @param message NamedPort
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NamedPort, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NamedPort to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NamedPort
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NamedSet. */
                interface INamedSet {

                    /** NamedSet description */
                    description?: (string|null);

                    /** NamedSet elements */
                    elements?: (google.cloud.compute.v1beta.IExpr[]|null);

                    /** NamedSet fingerprint */
                    fingerprint?: (string|null);

                    /** NamedSet name */
                    name?: (string|null);

                    /** NamedSet type */
                    type?: (string|null);
                }

                /** Represents a NamedSet. */
                class NamedSet implements INamedSet {

                    /**
                     * Constructs a new NamedSet.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INamedSet);

                    /** NamedSet description. */
                    public description?: (string|null);

                    /** NamedSet elements. */
                    public elements: google.cloud.compute.v1beta.IExpr[];

                    /** NamedSet fingerprint. */
                    public fingerprint?: (string|null);

                    /** NamedSet name. */
                    public name?: (string|null);

                    /** NamedSet type. */
                    public type?: (string|null);

                    /**
                     * Creates a new NamedSet instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NamedSet instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INamedSet): google.cloud.compute.v1beta.NamedSet;

                    /**
                     * Encodes the specified NamedSet message. Does not implicitly {@link google.cloud.compute.v1beta.NamedSet.verify|verify} messages.
                     * @param message NamedSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INamedSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NamedSet message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NamedSet.verify|verify} messages.
                     * @param message NamedSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INamedSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NamedSet message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NamedSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NamedSet;

                    /**
                     * Decodes a NamedSet message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NamedSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NamedSet;

                    /**
                     * Verifies a NamedSet message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NamedSet message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NamedSet
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NamedSet;

                    /**
                     * Creates a plain object from a NamedSet message. Also converts values to other types if specified.
                     * @param message NamedSet
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NamedSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NamedSet to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NamedSet
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NamedSet {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        NAMED_SET_TYPE_COMMUNITY = 263444871,
                        NAMED_SET_TYPE_PREFIX = 228038036
                    }
                }

                /** Properties of a NatIpInfo. */
                interface INatIpInfo {

                    /** NatIpInfo natIpInfoMappings */
                    natIpInfoMappings?: (google.cloud.compute.v1beta.INatIpInfoNatIpInfoMapping[]|null);

                    /** NatIpInfo natName */
                    natName?: (string|null);
                }

                /** Represents a NatIpInfo. */
                class NatIpInfo implements INatIpInfo {

                    /**
                     * Constructs a new NatIpInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INatIpInfo);

                    /** NatIpInfo natIpInfoMappings. */
                    public natIpInfoMappings: google.cloud.compute.v1beta.INatIpInfoNatIpInfoMapping[];

                    /** NatIpInfo natName. */
                    public natName?: (string|null);

                    /**
                     * Creates a new NatIpInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NatIpInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INatIpInfo): google.cloud.compute.v1beta.NatIpInfo;

                    /**
                     * Encodes the specified NatIpInfo message. Does not implicitly {@link google.cloud.compute.v1beta.NatIpInfo.verify|verify} messages.
                     * @param message NatIpInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INatIpInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NatIpInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NatIpInfo.verify|verify} messages.
                     * @param message NatIpInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INatIpInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NatIpInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NatIpInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NatIpInfo;

                    /**
                     * Decodes a NatIpInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NatIpInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NatIpInfo;

                    /**
                     * Verifies a NatIpInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NatIpInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NatIpInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NatIpInfo;

                    /**
                     * Creates a plain object from a NatIpInfo message. Also converts values to other types if specified.
                     * @param message NatIpInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NatIpInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NatIpInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NatIpInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NatIpInfoNatIpInfoMapping. */
                interface INatIpInfoNatIpInfoMapping {

                    /** NatIpInfoNatIpInfoMapping mode */
                    mode?: (string|null);

                    /** NatIpInfoNatIpInfoMapping natIp */
                    natIp?: (string|null);

                    /** NatIpInfoNatIpInfoMapping usage */
                    usage?: (string|null);
                }

                /** Represents a NatIpInfoNatIpInfoMapping. */
                class NatIpInfoNatIpInfoMapping implements INatIpInfoNatIpInfoMapping {

                    /**
                     * Constructs a new NatIpInfoNatIpInfoMapping.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INatIpInfoNatIpInfoMapping);

                    /** NatIpInfoNatIpInfoMapping mode. */
                    public mode?: (string|null);

                    /** NatIpInfoNatIpInfoMapping natIp. */
                    public natIp?: (string|null);

                    /** NatIpInfoNatIpInfoMapping usage. */
                    public usage?: (string|null);

                    /**
                     * Creates a new NatIpInfoNatIpInfoMapping instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NatIpInfoNatIpInfoMapping instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INatIpInfoNatIpInfoMapping): google.cloud.compute.v1beta.NatIpInfoNatIpInfoMapping;

                    /**
                     * Encodes the specified NatIpInfoNatIpInfoMapping message. Does not implicitly {@link google.cloud.compute.v1beta.NatIpInfoNatIpInfoMapping.verify|verify} messages.
                     * @param message NatIpInfoNatIpInfoMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INatIpInfoNatIpInfoMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NatIpInfoNatIpInfoMapping message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NatIpInfoNatIpInfoMapping.verify|verify} messages.
                     * @param message NatIpInfoNatIpInfoMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INatIpInfoNatIpInfoMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NatIpInfoNatIpInfoMapping message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NatIpInfoNatIpInfoMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NatIpInfoNatIpInfoMapping;

                    /**
                     * Decodes a NatIpInfoNatIpInfoMapping message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NatIpInfoNatIpInfoMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NatIpInfoNatIpInfoMapping;

                    /**
                     * Verifies a NatIpInfoNatIpInfoMapping message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NatIpInfoNatIpInfoMapping message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NatIpInfoNatIpInfoMapping
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NatIpInfoNatIpInfoMapping;

                    /**
                     * Creates a plain object from a NatIpInfoNatIpInfoMapping message. Also converts values to other types if specified.
                     * @param message NatIpInfoNatIpInfoMapping
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NatIpInfoNatIpInfoMapping, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NatIpInfoNatIpInfoMapping to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NatIpInfoNatIpInfoMapping
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NatIpInfoNatIpInfoMapping {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        AUTO = 2020783,
                        MANUAL = 119397318
                    }

                    /** Usage enum. */
                    enum Usage {
                        UNDEFINED_USAGE = 0,
                        IN_USE = 17393485,
                        UNUSED = 360643030
                    }
                }

                /** Properties of a NatIpInfoResponse. */
                interface INatIpInfoResponse {

                    /** NatIpInfoResponse result */
                    result?: (google.cloud.compute.v1beta.INatIpInfo[]|null);
                }

                /** Represents a NatIpInfoResponse. */
                class NatIpInfoResponse implements INatIpInfoResponse {

                    /**
                     * Constructs a new NatIpInfoResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INatIpInfoResponse);

                    /** NatIpInfoResponse result. */
                    public result: google.cloud.compute.v1beta.INatIpInfo[];

                    /**
                     * Creates a new NatIpInfoResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NatIpInfoResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INatIpInfoResponse): google.cloud.compute.v1beta.NatIpInfoResponse;

                    /**
                     * Encodes the specified NatIpInfoResponse message. Does not implicitly {@link google.cloud.compute.v1beta.NatIpInfoResponse.verify|verify} messages.
                     * @param message NatIpInfoResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INatIpInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NatIpInfoResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NatIpInfoResponse.verify|verify} messages.
                     * @param message NatIpInfoResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INatIpInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NatIpInfoResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NatIpInfoResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NatIpInfoResponse;

                    /**
                     * Decodes a NatIpInfoResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NatIpInfoResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NatIpInfoResponse;

                    /**
                     * Verifies a NatIpInfoResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NatIpInfoResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NatIpInfoResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NatIpInfoResponse;

                    /**
                     * Creates a plain object from a NatIpInfoResponse message. Also converts values to other types if specified.
                     * @param message NatIpInfoResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NatIpInfoResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NatIpInfoResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NatIpInfoResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Network. */
                interface INetwork {

                    /** Network IPv4Range */
                    IPv4Range?: (string|null);

                    /** Network autoCreateSubnetworks */
                    autoCreateSubnetworks?: (boolean|null);

                    /** Network creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Network description */
                    description?: (string|null);

                    /** Network enableUlaInternalIpv6 */
                    enableUlaInternalIpv6?: (boolean|null);

                    /** Network firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** Network gatewayIPv4 */
                    gatewayIPv4?: (string|null);

                    /** Network id */
                    id?: (number|Long|string|null);

                    /** Network internalIpv6Range */
                    internalIpv6Range?: (string|null);

                    /** Network kind */
                    kind?: (string|null);

                    /** Network mtu */
                    mtu?: (number|null);

                    /** Network name */
                    name?: (string|null);

                    /** Network networkFirewallPolicyEnforcementOrder */
                    networkFirewallPolicyEnforcementOrder?: (string|null);

                    /** Network networkProfile */
                    networkProfile?: (string|null);

                    /** Network params */
                    params?: (google.cloud.compute.v1beta.INetworkParams|null);

                    /** Network peerings */
                    peerings?: (google.cloud.compute.v1beta.INetworkPeering[]|null);

                    /** Network routingConfig */
                    routingConfig?: (google.cloud.compute.v1beta.INetworkRoutingConfig|null);

                    /** Network selfLink */
                    selfLink?: (string|null);

                    /** Network selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** Network subnetworks */
                    subnetworks?: (string[]|null);
                }

                /** Represents a Network. */
                class Network implements INetwork {

                    /**
                     * Constructs a new Network.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetwork);

                    /** Network IPv4Range. */
                    public IPv4Range?: (string|null);

                    /** Network autoCreateSubnetworks. */
                    public autoCreateSubnetworks?: (boolean|null);

                    /** Network creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Network description. */
                    public description?: (string|null);

                    /** Network enableUlaInternalIpv6. */
                    public enableUlaInternalIpv6?: (boolean|null);

                    /** Network firewallPolicy. */
                    public firewallPolicy?: (string|null);

                    /** Network gatewayIPv4. */
                    public gatewayIPv4?: (string|null);

                    /** Network id. */
                    public id?: (number|Long|string|null);

                    /** Network internalIpv6Range. */
                    public internalIpv6Range?: (string|null);

                    /** Network kind. */
                    public kind?: (string|null);

                    /** Network mtu. */
                    public mtu?: (number|null);

                    /** Network name. */
                    public name?: (string|null);

                    /** Network networkFirewallPolicyEnforcementOrder. */
                    public networkFirewallPolicyEnforcementOrder?: (string|null);

                    /** Network networkProfile. */
                    public networkProfile?: (string|null);

                    /** Network params. */
                    public params?: (google.cloud.compute.v1beta.INetworkParams|null);

                    /** Network peerings. */
                    public peerings: google.cloud.compute.v1beta.INetworkPeering[];

                    /** Network routingConfig. */
                    public routingConfig?: (google.cloud.compute.v1beta.INetworkRoutingConfig|null);

                    /** Network selfLink. */
                    public selfLink?: (string|null);

                    /** Network selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** Network subnetworks. */
                    public subnetworks: string[];

                    /**
                     * Creates a new Network instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Network instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetwork): google.cloud.compute.v1beta.Network;

                    /**
                     * Encodes the specified Network message. Does not implicitly {@link google.cloud.compute.v1beta.Network.verify|verify} messages.
                     * @param message Network message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Network message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Network.verify|verify} messages.
                     * @param message Network message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Network message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Network
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Network;

                    /**
                     * Decodes a Network message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Network
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Network;

                    /**
                     * Verifies a Network message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Network message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Network
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Network;

                    /**
                     * Creates a plain object from a Network message. Also converts values to other types if specified.
                     * @param message Network
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Network, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Network to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Network
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Network {

                    /** NetworkFirewallPolicyEnforcementOrder enum. */
                    enum NetworkFirewallPolicyEnforcementOrder {
                        UNDEFINED_NETWORK_FIREWALL_POLICY_ENFORCEMENT_ORDER = 0,
                        AFTER_CLASSIC_FIREWALL = 154582608,
                        BEFORE_CLASSIC_FIREWALL = 338458349
                    }
                }

                /** Properties of a NetworkAttachment. */
                interface INetworkAttachment {

                    /** NetworkAttachment connectionEndpoints */
                    connectionEndpoints?: (google.cloud.compute.v1beta.INetworkAttachmentConnectedEndpoint[]|null);

                    /** NetworkAttachment connectionPreference */
                    connectionPreference?: (string|null);

                    /** NetworkAttachment creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkAttachment description */
                    description?: (string|null);

                    /** NetworkAttachment fingerprint */
                    fingerprint?: (string|null);

                    /** NetworkAttachment id */
                    id?: (number|Long|string|null);

                    /** NetworkAttachment kind */
                    kind?: (string|null);

                    /** NetworkAttachment name */
                    name?: (string|null);

                    /** NetworkAttachment network */
                    network?: (string|null);

                    /** NetworkAttachment producerAcceptLists */
                    producerAcceptLists?: (string[]|null);

                    /** NetworkAttachment producerRejectLists */
                    producerRejectLists?: (string[]|null);

                    /** NetworkAttachment region */
                    region?: (string|null);

                    /** NetworkAttachment selfLink */
                    selfLink?: (string|null);

                    /** NetworkAttachment selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** NetworkAttachment subnetworks */
                    subnetworks?: (string[]|null);
                }

                /** Represents a NetworkAttachment. */
                class NetworkAttachment implements INetworkAttachment {

                    /**
                     * Constructs a new NetworkAttachment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkAttachment);

                    /** NetworkAttachment connectionEndpoints. */
                    public connectionEndpoints: google.cloud.compute.v1beta.INetworkAttachmentConnectedEndpoint[];

                    /** NetworkAttachment connectionPreference. */
                    public connectionPreference?: (string|null);

                    /** NetworkAttachment creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkAttachment description. */
                    public description?: (string|null);

                    /** NetworkAttachment fingerprint. */
                    public fingerprint?: (string|null);

                    /** NetworkAttachment id. */
                    public id?: (number|Long|string|null);

                    /** NetworkAttachment kind. */
                    public kind?: (string|null);

                    /** NetworkAttachment name. */
                    public name?: (string|null);

                    /** NetworkAttachment network. */
                    public network?: (string|null);

                    /** NetworkAttachment producerAcceptLists. */
                    public producerAcceptLists: string[];

                    /** NetworkAttachment producerRejectLists. */
                    public producerRejectLists: string[];

                    /** NetworkAttachment region. */
                    public region?: (string|null);

                    /** NetworkAttachment selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkAttachment selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** NetworkAttachment subnetworks. */
                    public subnetworks: string[];

                    /**
                     * Creates a new NetworkAttachment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachment instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkAttachment): google.cloud.compute.v1beta.NetworkAttachment;

                    /**
                     * Encodes the specified NetworkAttachment message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachment.verify|verify} messages.
                     * @param message NetworkAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachment message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachment.verify|verify} messages.
                     * @param message NetworkAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkAttachment;

                    /**
                     * Decodes a NetworkAttachment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkAttachment;

                    /**
                     * Verifies a NetworkAttachment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkAttachment;

                    /**
                     * Creates a plain object from a NetworkAttachment message. Also converts values to other types if specified.
                     * @param message NetworkAttachment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkAttachment {

                    /** ConnectionPreference enum. */
                    enum ConnectionPreference {
                        UNDEFINED_CONNECTION_PREFERENCE = 0,
                        ACCEPT_AUTOMATIC = 75250580,
                        ACCEPT_MANUAL = 373061341,
                        INVALID = 530283991
                    }
                }

                /** Properties of a NetworkAttachmentAggregatedList. */
                interface INetworkAttachmentAggregatedList {

                    /** NetworkAttachmentAggregatedList id */
                    id?: (string|null);

                    /** NetworkAttachmentAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.INetworkAttachmentsScopedList }|null);

                    /** NetworkAttachmentAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkAttachmentAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkAttachmentAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkAttachmentAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkAttachmentAggregatedList. */
                class NetworkAttachmentAggregatedList implements INetworkAttachmentAggregatedList {

                    /**
                     * Constructs a new NetworkAttachmentAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkAttachmentAggregatedList);

                    /** NetworkAttachmentAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkAttachmentAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.INetworkAttachmentsScopedList };

                    /** NetworkAttachmentAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkAttachmentAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkAttachmentAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkAttachmentAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkAttachmentAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachmentAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkAttachmentAggregatedList): google.cloud.compute.v1beta.NetworkAttachmentAggregatedList;

                    /**
                     * Encodes the specified NetworkAttachmentAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachmentAggregatedList.verify|verify} messages.
                     * @param message NetworkAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachmentAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachmentAggregatedList.verify|verify} messages.
                     * @param message NetworkAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachmentAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkAttachmentAggregatedList;

                    /**
                     * Decodes a NetworkAttachmentAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkAttachmentAggregatedList;

                    /**
                     * Verifies a NetworkAttachmentAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachmentAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachmentAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkAttachmentAggregatedList;

                    /**
                     * Creates a plain object from a NetworkAttachmentAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkAttachmentAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkAttachmentAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachmentAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachmentAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkAttachmentConnectedEndpoint. */
                interface INetworkAttachmentConnectedEndpoint {

                    /** NetworkAttachmentConnectedEndpoint ipAddress */
                    ipAddress?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint ipv6Address */
                    ipv6Address?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint projectIdOrNum */
                    projectIdOrNum?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint secondaryIpCidrRanges */
                    secondaryIpCidrRanges?: (string[]|null);

                    /** NetworkAttachmentConnectedEndpoint status */
                    status?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint subnetwork */
                    subnetwork?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint subnetworkCidrRange */
                    subnetworkCidrRange?: (string|null);
                }

                /** Represents a NetworkAttachmentConnectedEndpoint. */
                class NetworkAttachmentConnectedEndpoint implements INetworkAttachmentConnectedEndpoint {

                    /**
                     * Constructs a new NetworkAttachmentConnectedEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkAttachmentConnectedEndpoint);

                    /** NetworkAttachmentConnectedEndpoint ipAddress. */
                    public ipAddress?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint ipv6Address. */
                    public ipv6Address?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint projectIdOrNum. */
                    public projectIdOrNum?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint secondaryIpCidrRanges. */
                    public secondaryIpCidrRanges: string[];

                    /** NetworkAttachmentConnectedEndpoint status. */
                    public status?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint subnetwork. */
                    public subnetwork?: (string|null);

                    /** NetworkAttachmentConnectedEndpoint subnetworkCidrRange. */
                    public subnetworkCidrRange?: (string|null);

                    /**
                     * Creates a new NetworkAttachmentConnectedEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachmentConnectedEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkAttachmentConnectedEndpoint): google.cloud.compute.v1beta.NetworkAttachmentConnectedEndpoint;

                    /**
                     * Encodes the specified NetworkAttachmentConnectedEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachmentConnectedEndpoint.verify|verify} messages.
                     * @param message NetworkAttachmentConnectedEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkAttachmentConnectedEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachmentConnectedEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachmentConnectedEndpoint.verify|verify} messages.
                     * @param message NetworkAttachmentConnectedEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkAttachmentConnectedEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachmentConnectedEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachmentConnectedEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkAttachmentConnectedEndpoint;

                    /**
                     * Decodes a NetworkAttachmentConnectedEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachmentConnectedEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkAttachmentConnectedEndpoint;

                    /**
                     * Verifies a NetworkAttachmentConnectedEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachmentConnectedEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachmentConnectedEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkAttachmentConnectedEndpoint;

                    /**
                     * Creates a plain object from a NetworkAttachmentConnectedEndpoint message. Also converts values to other types if specified.
                     * @param message NetworkAttachmentConnectedEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkAttachmentConnectedEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachmentConnectedEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachmentConnectedEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkAttachmentConnectedEndpoint {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACCEPTED = 246714279,
                        CLOSED = 380163436,
                        NEEDS_ATTENTION = 344491452,
                        PENDING = 35394935,
                        REJECTED = 174130302,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a NetworkAttachmentList. */
                interface INetworkAttachmentList {

                    /** NetworkAttachmentList id */
                    id?: (string|null);

                    /** NetworkAttachmentList items */
                    items?: (google.cloud.compute.v1beta.INetworkAttachment[]|null);

                    /** NetworkAttachmentList kind */
                    kind?: (string|null);

                    /** NetworkAttachmentList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkAttachmentList selfLink */
                    selfLink?: (string|null);

                    /** NetworkAttachmentList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkAttachmentList. */
                class NetworkAttachmentList implements INetworkAttachmentList {

                    /**
                     * Constructs a new NetworkAttachmentList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkAttachmentList);

                    /** NetworkAttachmentList id. */
                    public id?: (string|null);

                    /** NetworkAttachmentList items. */
                    public items: google.cloud.compute.v1beta.INetworkAttachment[];

                    /** NetworkAttachmentList kind. */
                    public kind?: (string|null);

                    /** NetworkAttachmentList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkAttachmentList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkAttachmentList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkAttachmentList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachmentList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkAttachmentList): google.cloud.compute.v1beta.NetworkAttachmentList;

                    /**
                     * Encodes the specified NetworkAttachmentList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachmentList.verify|verify} messages.
                     * @param message NetworkAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachmentList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachmentList.verify|verify} messages.
                     * @param message NetworkAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachmentList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkAttachmentList;

                    /**
                     * Decodes a NetworkAttachmentList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkAttachmentList;

                    /**
                     * Verifies a NetworkAttachmentList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachmentList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachmentList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkAttachmentList;

                    /**
                     * Creates a plain object from a NetworkAttachmentList message. Also converts values to other types if specified.
                     * @param message NetworkAttachmentList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkAttachmentList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachmentList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachmentList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkAttachmentsScopedList. */
                interface INetworkAttachmentsScopedList {

                    /** NetworkAttachmentsScopedList networkAttachments */
                    networkAttachments?: (google.cloud.compute.v1beta.INetworkAttachment[]|null);

                    /** NetworkAttachmentsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkAttachmentsScopedList. */
                class NetworkAttachmentsScopedList implements INetworkAttachmentsScopedList {

                    /**
                     * Constructs a new NetworkAttachmentsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkAttachmentsScopedList);

                    /** NetworkAttachmentsScopedList networkAttachments. */
                    public networkAttachments: google.cloud.compute.v1beta.INetworkAttachment[];

                    /** NetworkAttachmentsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkAttachmentsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkAttachmentsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkAttachmentsScopedList): google.cloud.compute.v1beta.NetworkAttachmentsScopedList;

                    /**
                     * Encodes the specified NetworkAttachmentsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachmentsScopedList.verify|verify} messages.
                     * @param message NetworkAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkAttachmentsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkAttachmentsScopedList.verify|verify} messages.
                     * @param message NetworkAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkAttachmentsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkAttachmentsScopedList;

                    /**
                     * Decodes a NetworkAttachmentsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkAttachmentsScopedList;

                    /**
                     * Verifies a NetworkAttachmentsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkAttachmentsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkAttachmentsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkAttachmentsScopedList;

                    /**
                     * Creates a plain object from a NetworkAttachmentsScopedList message. Also converts values to other types if specified.
                     * @param message NetworkAttachmentsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkAttachmentsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkAttachmentsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkAttachmentsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEdgeSecurityService. */
                interface INetworkEdgeSecurityService {

                    /** NetworkEdgeSecurityService creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkEdgeSecurityService description */
                    description?: (string|null);

                    /** NetworkEdgeSecurityService fingerprint */
                    fingerprint?: (string|null);

                    /** NetworkEdgeSecurityService id */
                    id?: (number|Long|string|null);

                    /** NetworkEdgeSecurityService kind */
                    kind?: (string|null);

                    /** NetworkEdgeSecurityService name */
                    name?: (string|null);

                    /** NetworkEdgeSecurityService region */
                    region?: (string|null);

                    /** NetworkEdgeSecurityService securityPolicy */
                    securityPolicy?: (string|null);

                    /** NetworkEdgeSecurityService selfLink */
                    selfLink?: (string|null);

                    /** NetworkEdgeSecurityService selfLinkWithId */
                    selfLinkWithId?: (string|null);
                }

                /** Represents a NetworkEdgeSecurityService. */
                class NetworkEdgeSecurityService implements INetworkEdgeSecurityService {

                    /**
                     * Constructs a new NetworkEdgeSecurityService.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEdgeSecurityService);

                    /** NetworkEdgeSecurityService creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkEdgeSecurityService description. */
                    public description?: (string|null);

                    /** NetworkEdgeSecurityService fingerprint. */
                    public fingerprint?: (string|null);

                    /** NetworkEdgeSecurityService id. */
                    public id?: (number|Long|string|null);

                    /** NetworkEdgeSecurityService kind. */
                    public kind?: (string|null);

                    /** NetworkEdgeSecurityService name. */
                    public name?: (string|null);

                    /** NetworkEdgeSecurityService region. */
                    public region?: (string|null);

                    /** NetworkEdgeSecurityService securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** NetworkEdgeSecurityService selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEdgeSecurityService selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /**
                     * Creates a new NetworkEdgeSecurityService instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEdgeSecurityService instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEdgeSecurityService): google.cloud.compute.v1beta.NetworkEdgeSecurityService;

                    /**
                     * Encodes the specified NetworkEdgeSecurityService message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEdgeSecurityService.verify|verify} messages.
                     * @param message NetworkEdgeSecurityService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEdgeSecurityService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEdgeSecurityService message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEdgeSecurityService.verify|verify} messages.
                     * @param message NetworkEdgeSecurityService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEdgeSecurityService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEdgeSecurityService message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEdgeSecurityService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEdgeSecurityService;

                    /**
                     * Decodes a NetworkEdgeSecurityService message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEdgeSecurityService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEdgeSecurityService;

                    /**
                     * Verifies a NetworkEdgeSecurityService message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEdgeSecurityService message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEdgeSecurityService
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEdgeSecurityService;

                    /**
                     * Creates a plain object from a NetworkEdgeSecurityService message. Also converts values to other types if specified.
                     * @param message NetworkEdgeSecurityService
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEdgeSecurityService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEdgeSecurityService to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEdgeSecurityService
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEdgeSecurityServiceAggregatedList. */
                interface INetworkEdgeSecurityServiceAggregatedList {

                    /** NetworkEdgeSecurityServiceAggregatedList etag */
                    etag?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList id */
                    id?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.INetworkEdgeSecurityServicesScopedList }|null);

                    /** NetworkEdgeSecurityServiceAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkEdgeSecurityServiceAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkEdgeSecurityServiceAggregatedList. */
                class NetworkEdgeSecurityServiceAggregatedList implements INetworkEdgeSecurityServiceAggregatedList {

                    /**
                     * Constructs a new NetworkEdgeSecurityServiceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEdgeSecurityServiceAggregatedList);

                    /** NetworkEdgeSecurityServiceAggregatedList etag. */
                    public etag?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.INetworkEdgeSecurityServicesScopedList };

                    /** NetworkEdgeSecurityServiceAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEdgeSecurityServiceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NetworkEdgeSecurityServiceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkEdgeSecurityServiceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEdgeSecurityServiceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEdgeSecurityServiceAggregatedList): google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList;

                    /**
                     * Encodes the specified NetworkEdgeSecurityServiceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList.verify|verify} messages.
                     * @param message NetworkEdgeSecurityServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEdgeSecurityServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEdgeSecurityServiceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList.verify|verify} messages.
                     * @param message NetworkEdgeSecurityServiceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEdgeSecurityServiceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEdgeSecurityServiceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEdgeSecurityServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList;

                    /**
                     * Decodes a NetworkEdgeSecurityServiceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEdgeSecurityServiceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList;

                    /**
                     * Verifies a NetworkEdgeSecurityServiceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEdgeSecurityServiceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEdgeSecurityServiceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList;

                    /**
                     * Creates a plain object from a NetworkEdgeSecurityServiceAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkEdgeSecurityServiceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEdgeSecurityServiceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEdgeSecurityServiceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEdgeSecurityServicesScopedList. */
                interface INetworkEdgeSecurityServicesScopedList {

                    /** NetworkEdgeSecurityServicesScopedList networkEdgeSecurityServices */
                    networkEdgeSecurityServices?: (google.cloud.compute.v1beta.INetworkEdgeSecurityService[]|null);

                    /** NetworkEdgeSecurityServicesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkEdgeSecurityServicesScopedList. */
                class NetworkEdgeSecurityServicesScopedList implements INetworkEdgeSecurityServicesScopedList {

                    /**
                     * Constructs a new NetworkEdgeSecurityServicesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEdgeSecurityServicesScopedList);

                    /** NetworkEdgeSecurityServicesScopedList networkEdgeSecurityServices. */
                    public networkEdgeSecurityServices: google.cloud.compute.v1beta.INetworkEdgeSecurityService[];

                    /** NetworkEdgeSecurityServicesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkEdgeSecurityServicesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEdgeSecurityServicesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEdgeSecurityServicesScopedList): google.cloud.compute.v1beta.NetworkEdgeSecurityServicesScopedList;

                    /**
                     * Encodes the specified NetworkEdgeSecurityServicesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServicesScopedList.verify|verify} messages.
                     * @param message NetworkEdgeSecurityServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEdgeSecurityServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEdgeSecurityServicesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServicesScopedList.verify|verify} messages.
                     * @param message NetworkEdgeSecurityServicesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEdgeSecurityServicesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEdgeSecurityServicesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEdgeSecurityServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEdgeSecurityServicesScopedList;

                    /**
                     * Decodes a NetworkEdgeSecurityServicesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEdgeSecurityServicesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEdgeSecurityServicesScopedList;

                    /**
                     * Verifies a NetworkEdgeSecurityServicesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEdgeSecurityServicesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEdgeSecurityServicesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEdgeSecurityServicesScopedList;

                    /**
                     * Creates a plain object from a NetworkEdgeSecurityServicesScopedList message. Also converts values to other types if specified.
                     * @param message NetworkEdgeSecurityServicesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEdgeSecurityServicesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEdgeSecurityServicesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEdgeSecurityServicesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpoint. */
                interface INetworkEndpoint {

                    /** NetworkEndpoint annotations */
                    annotations?: ({ [k: string]: string }|null);

                    /** NetworkEndpoint clientDestinationPort */
                    clientDestinationPort?: (number|null);

                    /** NetworkEndpoint fqdn */
                    fqdn?: (string|null);

                    /** NetworkEndpoint instance */
                    instance?: (string|null);

                    /** NetworkEndpoint ipAddress */
                    ipAddress?: (string|null);

                    /** NetworkEndpoint ipv6Address */
                    ipv6Address?: (string|null);

                    /** NetworkEndpoint port */
                    port?: (number|null);
                }

                /** Represents a NetworkEndpoint. */
                class NetworkEndpoint implements INetworkEndpoint {

                    /**
                     * Constructs a new NetworkEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpoint);

                    /** NetworkEndpoint annotations. */
                    public annotations: { [k: string]: string };

                    /** NetworkEndpoint clientDestinationPort. */
                    public clientDestinationPort?: (number|null);

                    /** NetworkEndpoint fqdn. */
                    public fqdn?: (string|null);

                    /** NetworkEndpoint instance. */
                    public instance?: (string|null);

                    /** NetworkEndpoint ipAddress. */
                    public ipAddress?: (string|null);

                    /** NetworkEndpoint ipv6Address. */
                    public ipv6Address?: (string|null);

                    /** NetworkEndpoint port. */
                    public port?: (number|null);

                    /**
                     * Creates a new NetworkEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpoint): google.cloud.compute.v1beta.NetworkEndpoint;

                    /**
                     * Encodes the specified NetworkEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpoint.verify|verify} messages.
                     * @param message NetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpoint.verify|verify} messages.
                     * @param message NetworkEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpoint;

                    /**
                     * Decodes a NetworkEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpoint;

                    /**
                     * Verifies a NetworkEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpoint;

                    /**
                     * Creates a plain object from a NetworkEndpoint message. Also converts values to other types if specified.
                     * @param message NetworkEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroup. */
                interface INetworkEndpointGroup {

                    /** NetworkEndpointGroup annotations */
                    annotations?: ({ [k: string]: string }|null);

                    /** NetworkEndpointGroup appEngine */
                    appEngine?: (google.cloud.compute.v1beta.INetworkEndpointGroupAppEngine|null);

                    /** NetworkEndpointGroup cloudFunction */
                    cloudFunction?: (google.cloud.compute.v1beta.INetworkEndpointGroupCloudFunction|null);

                    /** NetworkEndpointGroup cloudRun */
                    cloudRun?: (google.cloud.compute.v1beta.INetworkEndpointGroupCloudRun|null);

                    /** NetworkEndpointGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkEndpointGroup defaultPort */
                    defaultPort?: (number|null);

                    /** NetworkEndpointGroup description */
                    description?: (string|null);

                    /** NetworkEndpointGroup id */
                    id?: (number|Long|string|null);

                    /** NetworkEndpointGroup kind */
                    kind?: (string|null);

                    /** NetworkEndpointGroup loadBalancer */
                    loadBalancer?: (google.cloud.compute.v1beta.INetworkEndpointGroupLbNetworkEndpointGroup|null);

                    /** NetworkEndpointGroup name */
                    name?: (string|null);

                    /** NetworkEndpointGroup network */
                    network?: (string|null);

                    /** NetworkEndpointGroup networkEndpointType */
                    networkEndpointType?: (string|null);

                    /** NetworkEndpointGroup pscData */
                    pscData?: (google.cloud.compute.v1beta.INetworkEndpointGroupPscData|null);

                    /** NetworkEndpointGroup pscTargetService */
                    pscTargetService?: (string|null);

                    /** NetworkEndpointGroup region */
                    region?: (string|null);

                    /** NetworkEndpointGroup selfLink */
                    selfLink?: (string|null);

                    /** NetworkEndpointGroup serverlessDeployment */
                    serverlessDeployment?: (google.cloud.compute.v1beta.INetworkEndpointGroupServerlessDeployment|null);

                    /** NetworkEndpointGroup size */
                    size?: (number|null);

                    /** NetworkEndpointGroup subnetwork */
                    subnetwork?: (string|null);

                    /** NetworkEndpointGroup zone */
                    zone?: (string|null);
                }

                /** Represents a NetworkEndpointGroup. */
                class NetworkEndpointGroup implements INetworkEndpointGroup {

                    /**
                     * Constructs a new NetworkEndpointGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroup);

                    /** NetworkEndpointGroup annotations. */
                    public annotations: { [k: string]: string };

                    /** NetworkEndpointGroup appEngine. */
                    public appEngine?: (google.cloud.compute.v1beta.INetworkEndpointGroupAppEngine|null);

                    /** NetworkEndpointGroup cloudFunction. */
                    public cloudFunction?: (google.cloud.compute.v1beta.INetworkEndpointGroupCloudFunction|null);

                    /** NetworkEndpointGroup cloudRun. */
                    public cloudRun?: (google.cloud.compute.v1beta.INetworkEndpointGroupCloudRun|null);

                    /** NetworkEndpointGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkEndpointGroup defaultPort. */
                    public defaultPort?: (number|null);

                    /** NetworkEndpointGroup description. */
                    public description?: (string|null);

                    /** NetworkEndpointGroup id. */
                    public id?: (number|Long|string|null);

                    /** NetworkEndpointGroup kind. */
                    public kind?: (string|null);

                    /** NetworkEndpointGroup loadBalancer. */
                    public loadBalancer?: (google.cloud.compute.v1beta.INetworkEndpointGroupLbNetworkEndpointGroup|null);

                    /** NetworkEndpointGroup name. */
                    public name?: (string|null);

                    /** NetworkEndpointGroup network. */
                    public network?: (string|null);

                    /** NetworkEndpointGroup networkEndpointType. */
                    public networkEndpointType?: (string|null);

                    /** NetworkEndpointGroup pscData. */
                    public pscData?: (google.cloud.compute.v1beta.INetworkEndpointGroupPscData|null);

                    /** NetworkEndpointGroup pscTargetService. */
                    public pscTargetService?: (string|null);

                    /** NetworkEndpointGroup region. */
                    public region?: (string|null);

                    /** NetworkEndpointGroup selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEndpointGroup serverlessDeployment. */
                    public serverlessDeployment?: (google.cloud.compute.v1beta.INetworkEndpointGroupServerlessDeployment|null);

                    /** NetworkEndpointGroup size. */
                    public size?: (number|null);

                    /** NetworkEndpointGroup subnetwork. */
                    public subnetwork?: (string|null);

                    /** NetworkEndpointGroup zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroup): google.cloud.compute.v1beta.NetworkEndpointGroup;

                    /**
                     * Encodes the specified NetworkEndpointGroup message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroup.verify|verify} messages.
                     * @param message NetworkEndpointGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroup.verify|verify} messages.
                     * @param message NetworkEndpointGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroup;

                    /**
                     * Decodes a NetworkEndpointGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroup;

                    /**
                     * Verifies a NetworkEndpointGroup message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroup;

                    /**
                     * Creates a plain object from a NetworkEndpointGroup message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkEndpointGroup {

                    /** NetworkEndpointType enum. */
                    enum NetworkEndpointType {
                        UNDEFINED_NETWORK_ENDPOINT_TYPE = 0,
                        GCE_VM_IP = 401880793,
                        GCE_VM_IP_PORT = 501838375,
                        GCE_VM_IP_PORTMAP = 22819253,
                        INTERNET_FQDN_PORT = 404154477,
                        INTERNET_IP_PORT = 477719963,
                        NON_GCP_PRIVATE_IP_PORT = 336447968,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        SERVERLESS = 270492508
                    }
                }

                /** Properties of a NetworkEndpointGroupAggregatedList. */
                interface INetworkEndpointGroupAggregatedList {

                    /** NetworkEndpointGroupAggregatedList id */
                    id?: (string|null);

                    /** NetworkEndpointGroupAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.INetworkEndpointGroupsScopedList }|null);

                    /** NetworkEndpointGroupAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkEndpointGroupAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkEndpointGroupAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkEndpointGroupAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkEndpointGroupAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkEndpointGroupAggregatedList. */
                class NetworkEndpointGroupAggregatedList implements INetworkEndpointGroupAggregatedList {

                    /**
                     * Constructs a new NetworkEndpointGroupAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupAggregatedList);

                    /** NetworkEndpointGroupAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkEndpointGroupAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.INetworkEndpointGroupsScopedList };

                    /** NetworkEndpointGroupAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkEndpointGroupAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkEndpointGroupAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEndpointGroupAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NetworkEndpointGroupAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkEndpointGroupAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupAggregatedList): google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList;

                    /**
                     * Encodes the specified NetworkEndpointGroupAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList.verify|verify} messages.
                     * @param message NetworkEndpointGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList.verify|verify} messages.
                     * @param message NetworkEndpointGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList;

                    /**
                     * Decodes a NetworkEndpointGroupAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList;

                    /**
                     * Verifies a NetworkEndpointGroupAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupAppEngine. */
                interface INetworkEndpointGroupAppEngine {

                    /** NetworkEndpointGroupAppEngine service */
                    service?: (string|null);

                    /** NetworkEndpointGroupAppEngine urlMask */
                    urlMask?: (string|null);

                    /** NetworkEndpointGroupAppEngine version */
                    version?: (string|null);
                }

                /** Represents a NetworkEndpointGroupAppEngine. */
                class NetworkEndpointGroupAppEngine implements INetworkEndpointGroupAppEngine {

                    /**
                     * Constructs a new NetworkEndpointGroupAppEngine.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupAppEngine);

                    /** NetworkEndpointGroupAppEngine service. */
                    public service?: (string|null);

                    /** NetworkEndpointGroupAppEngine urlMask. */
                    public urlMask?: (string|null);

                    /** NetworkEndpointGroupAppEngine version. */
                    public version?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupAppEngine instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupAppEngine instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupAppEngine): google.cloud.compute.v1beta.NetworkEndpointGroupAppEngine;

                    /**
                     * Encodes the specified NetworkEndpointGroupAppEngine message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupAppEngine.verify|verify} messages.
                     * @param message NetworkEndpointGroupAppEngine message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupAppEngine, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupAppEngine message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupAppEngine.verify|verify} messages.
                     * @param message NetworkEndpointGroupAppEngine message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupAppEngine, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupAppEngine message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupAppEngine
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupAppEngine;

                    /**
                     * Decodes a NetworkEndpointGroupAppEngine message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupAppEngine
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupAppEngine;

                    /**
                     * Verifies a NetworkEndpointGroupAppEngine message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupAppEngine message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupAppEngine
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupAppEngine;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupAppEngine message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupAppEngine
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupAppEngine, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupAppEngine to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupAppEngine
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupCloudFunction. */
                interface INetworkEndpointGroupCloudFunction {

                    /** NetworkEndpointGroupCloudFunction function */
                    "function"?: (string|null);

                    /** NetworkEndpointGroupCloudFunction urlMask */
                    urlMask?: (string|null);
                }

                /** Represents a NetworkEndpointGroupCloudFunction. */
                class NetworkEndpointGroupCloudFunction implements INetworkEndpointGroupCloudFunction {

                    /**
                     * Constructs a new NetworkEndpointGroupCloudFunction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupCloudFunction);

                    /** NetworkEndpointGroupCloudFunction function. */
                    public function?: (string|null);

                    /** NetworkEndpointGroupCloudFunction urlMask. */
                    public urlMask?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupCloudFunction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupCloudFunction instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupCloudFunction): google.cloud.compute.v1beta.NetworkEndpointGroupCloudFunction;

                    /**
                     * Encodes the specified NetworkEndpointGroupCloudFunction message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupCloudFunction.verify|verify} messages.
                     * @param message NetworkEndpointGroupCloudFunction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupCloudFunction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupCloudFunction message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupCloudFunction.verify|verify} messages.
                     * @param message NetworkEndpointGroupCloudFunction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupCloudFunction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupCloudFunction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupCloudFunction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupCloudFunction;

                    /**
                     * Decodes a NetworkEndpointGroupCloudFunction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupCloudFunction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupCloudFunction;

                    /**
                     * Verifies a NetworkEndpointGroupCloudFunction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupCloudFunction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupCloudFunction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupCloudFunction;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupCloudFunction message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupCloudFunction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupCloudFunction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupCloudFunction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupCloudFunction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupCloudRun. */
                interface INetworkEndpointGroupCloudRun {

                    /** NetworkEndpointGroupCloudRun service */
                    service?: (string|null);

                    /** NetworkEndpointGroupCloudRun tag */
                    tag?: (string|null);

                    /** NetworkEndpointGroupCloudRun urlMask */
                    urlMask?: (string|null);
                }

                /** Represents a NetworkEndpointGroupCloudRun. */
                class NetworkEndpointGroupCloudRun implements INetworkEndpointGroupCloudRun {

                    /**
                     * Constructs a new NetworkEndpointGroupCloudRun.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupCloudRun);

                    /** NetworkEndpointGroupCloudRun service. */
                    public service?: (string|null);

                    /** NetworkEndpointGroupCloudRun tag. */
                    public tag?: (string|null);

                    /** NetworkEndpointGroupCloudRun urlMask. */
                    public urlMask?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupCloudRun instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupCloudRun instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupCloudRun): google.cloud.compute.v1beta.NetworkEndpointGroupCloudRun;

                    /**
                     * Encodes the specified NetworkEndpointGroupCloudRun message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupCloudRun.verify|verify} messages.
                     * @param message NetworkEndpointGroupCloudRun message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupCloudRun, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupCloudRun message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupCloudRun.verify|verify} messages.
                     * @param message NetworkEndpointGroupCloudRun message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupCloudRun, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupCloudRun message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupCloudRun
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupCloudRun;

                    /**
                     * Decodes a NetworkEndpointGroupCloudRun message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupCloudRun
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupCloudRun;

                    /**
                     * Verifies a NetworkEndpointGroupCloudRun message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupCloudRun message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupCloudRun
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupCloudRun;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupCloudRun message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupCloudRun
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupCloudRun, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupCloudRun to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupCloudRun
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupLbNetworkEndpointGroup. */
                interface INetworkEndpointGroupLbNetworkEndpointGroup {

                    /** NetworkEndpointGroupLbNetworkEndpointGroup defaultPort */
                    defaultPort?: (number|null);

                    /** NetworkEndpointGroupLbNetworkEndpointGroup network */
                    network?: (string|null);

                    /** NetworkEndpointGroupLbNetworkEndpointGroup subnetwork */
                    subnetwork?: (string|null);

                    /** NetworkEndpointGroupLbNetworkEndpointGroup zone */
                    zone?: (string|null);
                }

                /** Represents a NetworkEndpointGroupLbNetworkEndpointGroup. */
                class NetworkEndpointGroupLbNetworkEndpointGroup implements INetworkEndpointGroupLbNetworkEndpointGroup {

                    /**
                     * Constructs a new NetworkEndpointGroupLbNetworkEndpointGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupLbNetworkEndpointGroup);

                    /** NetworkEndpointGroupLbNetworkEndpointGroup defaultPort. */
                    public defaultPort?: (number|null);

                    /** NetworkEndpointGroupLbNetworkEndpointGroup network. */
                    public network?: (string|null);

                    /** NetworkEndpointGroupLbNetworkEndpointGroup subnetwork. */
                    public subnetwork?: (string|null);

                    /** NetworkEndpointGroupLbNetworkEndpointGroup zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupLbNetworkEndpointGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupLbNetworkEndpointGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupLbNetworkEndpointGroup): google.cloud.compute.v1beta.NetworkEndpointGroupLbNetworkEndpointGroup;

                    /**
                     * Encodes the specified NetworkEndpointGroupLbNetworkEndpointGroup message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupLbNetworkEndpointGroup.verify|verify} messages.
                     * @param message NetworkEndpointGroupLbNetworkEndpointGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupLbNetworkEndpointGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupLbNetworkEndpointGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupLbNetworkEndpointGroup.verify|verify} messages.
                     * @param message NetworkEndpointGroupLbNetworkEndpointGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupLbNetworkEndpointGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupLbNetworkEndpointGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupLbNetworkEndpointGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupLbNetworkEndpointGroup;

                    /**
                     * Decodes a NetworkEndpointGroupLbNetworkEndpointGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupLbNetworkEndpointGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupLbNetworkEndpointGroup;

                    /**
                     * Verifies a NetworkEndpointGroupLbNetworkEndpointGroup message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupLbNetworkEndpointGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupLbNetworkEndpointGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupLbNetworkEndpointGroup;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupLbNetworkEndpointGroup message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupLbNetworkEndpointGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupLbNetworkEndpointGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupLbNetworkEndpointGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupLbNetworkEndpointGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupList. */
                interface INetworkEndpointGroupList {

                    /** NetworkEndpointGroupList id */
                    id?: (string|null);

                    /** NetworkEndpointGroupList items */
                    items?: (google.cloud.compute.v1beta.INetworkEndpointGroup[]|null);

                    /** NetworkEndpointGroupList kind */
                    kind?: (string|null);

                    /** NetworkEndpointGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkEndpointGroupList selfLink */
                    selfLink?: (string|null);

                    /** NetworkEndpointGroupList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkEndpointGroupList. */
                class NetworkEndpointGroupList implements INetworkEndpointGroupList {

                    /**
                     * Constructs a new NetworkEndpointGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupList);

                    /** NetworkEndpointGroupList id. */
                    public id?: (string|null);

                    /** NetworkEndpointGroupList items. */
                    public items: google.cloud.compute.v1beta.INetworkEndpointGroup[];

                    /** NetworkEndpointGroupList kind. */
                    public kind?: (string|null);

                    /** NetworkEndpointGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkEndpointGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkEndpointGroupList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkEndpointGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupList): google.cloud.compute.v1beta.NetworkEndpointGroupList;

                    /**
                     * Encodes the specified NetworkEndpointGroupList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupList.verify|verify} messages.
                     * @param message NetworkEndpointGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupList.verify|verify} messages.
                     * @param message NetworkEndpointGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupList;

                    /**
                     * Decodes a NetworkEndpointGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupList;

                    /**
                     * Verifies a NetworkEndpointGroupList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupList;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupList message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupPscData. */
                interface INetworkEndpointGroupPscData {

                    /** NetworkEndpointGroupPscData consumerPscAddress */
                    consumerPscAddress?: (string|null);

                    /** NetworkEndpointGroupPscData producerPort */
                    producerPort?: (number|null);

                    /** NetworkEndpointGroupPscData pscConnectionId */
                    pscConnectionId?: (number|Long|string|null);

                    /** NetworkEndpointGroupPscData pscConnectionStatus */
                    pscConnectionStatus?: (string|null);
                }

                /** Represents a NetworkEndpointGroupPscData. */
                class NetworkEndpointGroupPscData implements INetworkEndpointGroupPscData {

                    /**
                     * Constructs a new NetworkEndpointGroupPscData.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupPscData);

                    /** NetworkEndpointGroupPscData consumerPscAddress. */
                    public consumerPscAddress?: (string|null);

                    /** NetworkEndpointGroupPscData producerPort. */
                    public producerPort?: (number|null);

                    /** NetworkEndpointGroupPscData pscConnectionId. */
                    public pscConnectionId?: (number|Long|string|null);

                    /** NetworkEndpointGroupPscData pscConnectionStatus. */
                    public pscConnectionStatus?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupPscData instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupPscData instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupPscData): google.cloud.compute.v1beta.NetworkEndpointGroupPscData;

                    /**
                     * Encodes the specified NetworkEndpointGroupPscData message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupPscData.verify|verify} messages.
                     * @param message NetworkEndpointGroupPscData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupPscData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupPscData message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupPscData.verify|verify} messages.
                     * @param message NetworkEndpointGroupPscData message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupPscData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupPscData message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupPscData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupPscData;

                    /**
                     * Decodes a NetworkEndpointGroupPscData message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupPscData
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupPscData;

                    /**
                     * Verifies a NetworkEndpointGroupPscData message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupPscData message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupPscData
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupPscData;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupPscData message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupPscData
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupPscData, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupPscData to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupPscData
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkEndpointGroupPscData {

                    /** PscConnectionStatus enum. */
                    enum PscConnectionStatus {
                        UNDEFINED_PSC_CONNECTION_STATUS = 0,
                        ACCEPTED = 246714279,
                        CLOSED = 380163436,
                        NEEDS_ATTENTION = 344491452,
                        PENDING = 35394935,
                        REJECTED = 174130302,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a NetworkEndpointGroupServerlessDeployment. */
                interface INetworkEndpointGroupServerlessDeployment {

                    /** NetworkEndpointGroupServerlessDeployment platform */
                    platform?: (string|null);

                    /** NetworkEndpointGroupServerlessDeployment resource */
                    resource?: (string|null);

                    /** NetworkEndpointGroupServerlessDeployment urlMask */
                    urlMask?: (string|null);

                    /** NetworkEndpointGroupServerlessDeployment version */
                    version?: (string|null);
                }

                /** Represents a NetworkEndpointGroupServerlessDeployment. */
                class NetworkEndpointGroupServerlessDeployment implements INetworkEndpointGroupServerlessDeployment {

                    /**
                     * Constructs a new NetworkEndpointGroupServerlessDeployment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupServerlessDeployment);

                    /** NetworkEndpointGroupServerlessDeployment platform. */
                    public platform?: (string|null);

                    /** NetworkEndpointGroupServerlessDeployment resource. */
                    public resource?: (string|null);

                    /** NetworkEndpointGroupServerlessDeployment urlMask. */
                    public urlMask?: (string|null);

                    /** NetworkEndpointGroupServerlessDeployment version. */
                    public version?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupServerlessDeployment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupServerlessDeployment instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupServerlessDeployment): google.cloud.compute.v1beta.NetworkEndpointGroupServerlessDeployment;

                    /**
                     * Encodes the specified NetworkEndpointGroupServerlessDeployment message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupServerlessDeployment.verify|verify} messages.
                     * @param message NetworkEndpointGroupServerlessDeployment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupServerlessDeployment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupServerlessDeployment message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupServerlessDeployment.verify|verify} messages.
                     * @param message NetworkEndpointGroupServerlessDeployment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupServerlessDeployment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupServerlessDeployment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupServerlessDeployment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupServerlessDeployment;

                    /**
                     * Decodes a NetworkEndpointGroupServerlessDeployment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupServerlessDeployment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupServerlessDeployment;

                    /**
                     * Verifies a NetworkEndpointGroupServerlessDeployment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupServerlessDeployment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupServerlessDeployment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupServerlessDeployment;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupServerlessDeployment message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupServerlessDeployment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupServerlessDeployment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupServerlessDeployment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupServerlessDeployment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupsAttachEndpointsRequest. */
                interface INetworkEndpointGroupsAttachEndpointsRequest {

                    /** NetworkEndpointGroupsAttachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1beta.INetworkEndpoint[]|null);
                }

                /** Represents a NetworkEndpointGroupsAttachEndpointsRequest. */
                class NetworkEndpointGroupsAttachEndpointsRequest implements INetworkEndpointGroupsAttachEndpointsRequest {

                    /**
                     * Constructs a new NetworkEndpointGroupsAttachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsAttachEndpointsRequest);

                    /** NetworkEndpointGroupsAttachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1beta.INetworkEndpoint[];

                    /**
                     * Creates a new NetworkEndpointGroupsAttachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsAttachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsAttachEndpointsRequest): google.cloud.compute.v1beta.NetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Encodes the specified NetworkEndpointGroupsAttachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsAttachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Decodes a NetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Verifies a NetworkEndpointGroupsAttachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsAttachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsAttachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsAttachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsAttachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupsAttachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsAttachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsAttachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupsDetachEndpointsRequest. */
                interface INetworkEndpointGroupsDetachEndpointsRequest {

                    /** NetworkEndpointGroupsDetachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1beta.INetworkEndpoint[]|null);
                }

                /** Represents a NetworkEndpointGroupsDetachEndpointsRequest. */
                class NetworkEndpointGroupsDetachEndpointsRequest implements INetworkEndpointGroupsDetachEndpointsRequest {

                    /**
                     * Constructs a new NetworkEndpointGroupsDetachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsDetachEndpointsRequest);

                    /** NetworkEndpointGroupsDetachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1beta.INetworkEndpoint[];

                    /**
                     * Creates a new NetworkEndpointGroupsDetachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsDetachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsDetachEndpointsRequest): google.cloud.compute.v1beta.NetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Encodes the specified NetworkEndpointGroupsDetachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsDetachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Decodes a NetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Verifies a NetworkEndpointGroupsDetachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsDetachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsDetachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsDetachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsDetachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupsDetachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsDetachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsDetachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupsListEndpointsRequest. */
                interface INetworkEndpointGroupsListEndpointsRequest {

                    /** NetworkEndpointGroupsListEndpointsRequest endpointFilters */
                    endpointFilters?: (google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter[]|null);

                    /** NetworkEndpointGroupsListEndpointsRequest healthStatus */
                    healthStatus?: (string|null);
                }

                /** Represents a NetworkEndpointGroupsListEndpointsRequest. */
                class NetworkEndpointGroupsListEndpointsRequest implements INetworkEndpointGroupsListEndpointsRequest {

                    /**
                     * Constructs a new NetworkEndpointGroupsListEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequest);

                    /** NetworkEndpointGroupsListEndpointsRequest endpointFilters. */
                    public endpointFilters: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter[];

                    /** NetworkEndpointGroupsListEndpointsRequest healthStatus. */
                    public healthStatus?: (string|null);

                    /**
                     * Creates a new NetworkEndpointGroupsListEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsListEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequest): google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequest;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequest.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsListEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsListEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequest;

                    /**
                     * Decodes a NetworkEndpointGroupsListEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsListEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequest;

                    /**
                     * Verifies a NetworkEndpointGroupsListEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsListEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsListEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequest;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsListEndpointsRequest message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsListEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsListEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsListEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkEndpointGroupsListEndpointsRequest {

                    /** HealthStatus enum. */
                    enum HealthStatus {
                        UNDEFINED_HEALTH_STATUS = 0,
                        SHOW = 2544381,
                        SKIP = 2547071
                    }
                }

                /** Properties of a NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter. */
                interface INetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter {

                    /** NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter networkEndpoint */
                    networkEndpoint?: (google.cloud.compute.v1beta.INetworkEndpoint|null);
                }

                /** Represents a NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter. */
                class NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter implements INetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter {

                    /**
                     * Constructs a new NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter);

                    /** NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter networkEndpoint. */
                    public networkEndpoint?: (google.cloud.compute.v1beta.INetworkEndpoint|null);

                    /**
                     * Creates a new NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter): google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter;

                    /**
                     * Decodes a NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter;

                    /**
                     * Verifies a NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupsListNetworkEndpoints. */
                interface INetworkEndpointGroupsListNetworkEndpoints {

                    /** NetworkEndpointGroupsListNetworkEndpoints id */
                    id?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints items */
                    items?: (google.cloud.compute.v1beta.INetworkEndpointWithHealthStatus[]|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints kind */
                    kind?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkEndpointGroupsListNetworkEndpoints. */
                class NetworkEndpointGroupsListNetworkEndpoints implements INetworkEndpointGroupsListNetworkEndpoints {

                    /**
                     * Constructs a new NetworkEndpointGroupsListNetworkEndpoints.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsListNetworkEndpoints);

                    /** NetworkEndpointGroupsListNetworkEndpoints id. */
                    public id?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints items. */
                    public items: google.cloud.compute.v1beta.INetworkEndpointWithHealthStatus[];

                    /** NetworkEndpointGroupsListNetworkEndpoints kind. */
                    public kind?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkEndpointGroupsListNetworkEndpoints warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkEndpointGroupsListNetworkEndpoints instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsListNetworkEndpoints instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsListNetworkEndpoints): google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListNetworkEndpoints message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListNetworkEndpoints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupsListNetworkEndpoints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsListNetworkEndpoints message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints.verify|verify} messages.
                     * @param message NetworkEndpointGroupsListNetworkEndpoints message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupsListNetworkEndpoints, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsListNetworkEndpoints message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsListNetworkEndpoints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints;

                    /**
                     * Decodes a NetworkEndpointGroupsListNetworkEndpoints message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsListNetworkEndpoints
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints;

                    /**
                     * Verifies a NetworkEndpointGroupsListNetworkEndpoints message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsListNetworkEndpoints message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsListNetworkEndpoints
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsListNetworkEndpoints message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsListNetworkEndpoints
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsListNetworkEndpoints to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsListNetworkEndpoints
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointGroupsScopedList. */
                interface INetworkEndpointGroupsScopedList {

                    /** NetworkEndpointGroupsScopedList networkEndpointGroups */
                    networkEndpointGroups?: (google.cloud.compute.v1beta.INetworkEndpointGroup[]|null);

                    /** NetworkEndpointGroupsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkEndpointGroupsScopedList. */
                class NetworkEndpointGroupsScopedList implements INetworkEndpointGroupsScopedList {

                    /**
                     * Constructs a new NetworkEndpointGroupsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsScopedList);

                    /** NetworkEndpointGroupsScopedList networkEndpointGroups. */
                    public networkEndpointGroups: google.cloud.compute.v1beta.INetworkEndpointGroup[];

                    /** NetworkEndpointGroupsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkEndpointGroupsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointGroupsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointGroupsScopedList): google.cloud.compute.v1beta.NetworkEndpointGroupsScopedList;

                    /**
                     * Encodes the specified NetworkEndpointGroupsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsScopedList.verify|verify} messages.
                     * @param message NetworkEndpointGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointGroupsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointGroupsScopedList.verify|verify} messages.
                     * @param message NetworkEndpointGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointGroupsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointGroupsScopedList;

                    /**
                     * Decodes a NetworkEndpointGroupsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointGroupsScopedList;

                    /**
                     * Verifies a NetworkEndpointGroupsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointGroupsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointGroupsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointGroupsScopedList;

                    /**
                     * Creates a plain object from a NetworkEndpointGroupsScopedList message. Also converts values to other types if specified.
                     * @param message NetworkEndpointGroupsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointGroupsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointGroupsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointGroupsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkEndpointWithHealthStatus. */
                interface INetworkEndpointWithHealthStatus {

                    /** NetworkEndpointWithHealthStatus healths */
                    healths?: (google.cloud.compute.v1beta.IHealthStatusForNetworkEndpoint[]|null);

                    /** NetworkEndpointWithHealthStatus networkEndpoint */
                    networkEndpoint?: (google.cloud.compute.v1beta.INetworkEndpoint|null);
                }

                /** Represents a NetworkEndpointWithHealthStatus. */
                class NetworkEndpointWithHealthStatus implements INetworkEndpointWithHealthStatus {

                    /**
                     * Constructs a new NetworkEndpointWithHealthStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkEndpointWithHealthStatus);

                    /** NetworkEndpointWithHealthStatus healths. */
                    public healths: google.cloud.compute.v1beta.IHealthStatusForNetworkEndpoint[];

                    /** NetworkEndpointWithHealthStatus networkEndpoint. */
                    public networkEndpoint?: (google.cloud.compute.v1beta.INetworkEndpoint|null);

                    /**
                     * Creates a new NetworkEndpointWithHealthStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkEndpointWithHealthStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkEndpointWithHealthStatus): google.cloud.compute.v1beta.NetworkEndpointWithHealthStatus;

                    /**
                     * Encodes the specified NetworkEndpointWithHealthStatus message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointWithHealthStatus.verify|verify} messages.
                     * @param message NetworkEndpointWithHealthStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkEndpointWithHealthStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkEndpointWithHealthStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkEndpointWithHealthStatus.verify|verify} messages.
                     * @param message NetworkEndpointWithHealthStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkEndpointWithHealthStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkEndpointWithHealthStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkEndpointWithHealthStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkEndpointWithHealthStatus;

                    /**
                     * Decodes a NetworkEndpointWithHealthStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkEndpointWithHealthStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkEndpointWithHealthStatus;

                    /**
                     * Verifies a NetworkEndpointWithHealthStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkEndpointWithHealthStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkEndpointWithHealthStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkEndpointWithHealthStatus;

                    /**
                     * Creates a plain object from a NetworkEndpointWithHealthStatus message. Also converts values to other types if specified.
                     * @param message NetworkEndpointWithHealthStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkEndpointWithHealthStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkEndpointWithHealthStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkEndpointWithHealthStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkFirewallPolicyAggregatedList. */
                interface INetworkFirewallPolicyAggregatedList {

                    /** NetworkFirewallPolicyAggregatedList id */
                    id?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IFirewallPoliciesScopedList }|null);

                    /** NetworkFirewallPolicyAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkFirewallPolicyAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkFirewallPolicyAggregatedList. */
                class NetworkFirewallPolicyAggregatedList implements INetworkFirewallPolicyAggregatedList {

                    /**
                     * Constructs a new NetworkFirewallPolicyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkFirewallPolicyAggregatedList);

                    /** NetworkFirewallPolicyAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IFirewallPoliciesScopedList };

                    /** NetworkFirewallPolicyAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkFirewallPolicyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NetworkFirewallPolicyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkFirewallPolicyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkFirewallPolicyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkFirewallPolicyAggregatedList): google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList;

                    /**
                     * Encodes the specified NetworkFirewallPolicyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList.verify|verify} messages.
                     * @param message NetworkFirewallPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkFirewallPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkFirewallPolicyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList.verify|verify} messages.
                     * @param message NetworkFirewallPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkFirewallPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkFirewallPolicyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkFirewallPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList;

                    /**
                     * Decodes a NetworkFirewallPolicyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkFirewallPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList;

                    /**
                     * Verifies a NetworkFirewallPolicyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkFirewallPolicyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkFirewallPolicyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList;

                    /**
                     * Creates a plain object from a NetworkFirewallPolicyAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkFirewallPolicyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkFirewallPolicyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkFirewallPolicyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkInterface. */
                interface INetworkInterface {

                    /** NetworkInterface accessConfigs */
                    accessConfigs?: (google.cloud.compute.v1beta.IAccessConfig[]|null);

                    /** NetworkInterface aliasIpRanges */
                    aliasIpRanges?: (google.cloud.compute.v1beta.IAliasIpRange[]|null);

                    /** NetworkInterface enableVpcScopedDns */
                    enableVpcScopedDns?: (boolean|null);

                    /** NetworkInterface fingerprint */
                    fingerprint?: (string|null);

                    /** NetworkInterface igmpQuery */
                    igmpQuery?: (string|null);

                    /** NetworkInterface internalIpv6PrefixLength */
                    internalIpv6PrefixLength?: (number|null);

                    /** NetworkInterface ipv6AccessConfigs */
                    ipv6AccessConfigs?: (google.cloud.compute.v1beta.IAccessConfig[]|null);

                    /** NetworkInterface ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** NetworkInterface ipv6Address */
                    ipv6Address?: (string|null);

                    /** NetworkInterface kind */
                    kind?: (string|null);

                    /** NetworkInterface macAddress */
                    macAddress?: (string|null);

                    /** NetworkInterface name */
                    name?: (string|null);

                    /** NetworkInterface network */
                    network?: (string|null);

                    /** NetworkInterface networkAttachment */
                    networkAttachment?: (string|null);

                    /** NetworkInterface networkIP */
                    networkIP?: (string|null);

                    /** NetworkInterface nicType */
                    nicType?: (string|null);

                    /** NetworkInterface parentNicName */
                    parentNicName?: (string|null);

                    /** NetworkInterface queueCount */
                    queueCount?: (number|null);

                    /** NetworkInterface stackType */
                    stackType?: (string|null);

                    /** NetworkInterface subnetwork */
                    subnetwork?: (string|null);

                    /** NetworkInterface vlan */
                    vlan?: (number|null);
                }

                /** Represents a NetworkInterface. */
                class NetworkInterface implements INetworkInterface {

                    /**
                     * Constructs a new NetworkInterface.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkInterface);

                    /** NetworkInterface accessConfigs. */
                    public accessConfigs: google.cloud.compute.v1beta.IAccessConfig[];

                    /** NetworkInterface aliasIpRanges. */
                    public aliasIpRanges: google.cloud.compute.v1beta.IAliasIpRange[];

                    /** NetworkInterface enableVpcScopedDns. */
                    public enableVpcScopedDns?: (boolean|null);

                    /** NetworkInterface fingerprint. */
                    public fingerprint?: (string|null);

                    /** NetworkInterface igmpQuery. */
                    public igmpQuery?: (string|null);

                    /** NetworkInterface internalIpv6PrefixLength. */
                    public internalIpv6PrefixLength?: (number|null);

                    /** NetworkInterface ipv6AccessConfigs. */
                    public ipv6AccessConfigs: google.cloud.compute.v1beta.IAccessConfig[];

                    /** NetworkInterface ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** NetworkInterface ipv6Address. */
                    public ipv6Address?: (string|null);

                    /** NetworkInterface kind. */
                    public kind?: (string|null);

                    /** NetworkInterface macAddress. */
                    public macAddress?: (string|null);

                    /** NetworkInterface name. */
                    public name?: (string|null);

                    /** NetworkInterface network. */
                    public network?: (string|null);

                    /** NetworkInterface networkAttachment. */
                    public networkAttachment?: (string|null);

                    /** NetworkInterface networkIP. */
                    public networkIP?: (string|null);

                    /** NetworkInterface nicType. */
                    public nicType?: (string|null);

                    /** NetworkInterface parentNicName. */
                    public parentNicName?: (string|null);

                    /** NetworkInterface queueCount. */
                    public queueCount?: (number|null);

                    /** NetworkInterface stackType. */
                    public stackType?: (string|null);

                    /** NetworkInterface subnetwork. */
                    public subnetwork?: (string|null);

                    /** NetworkInterface vlan. */
                    public vlan?: (number|null);

                    /**
                     * Creates a new NetworkInterface instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkInterface instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkInterface): google.cloud.compute.v1beta.NetworkInterface;

                    /**
                     * Encodes the specified NetworkInterface message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkInterface.verify|verify} messages.
                     * @param message NetworkInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkInterface message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkInterface.verify|verify} messages.
                     * @param message NetworkInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkInterface message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkInterface;

                    /**
                     * Decodes a NetworkInterface message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkInterface;

                    /**
                     * Verifies a NetworkInterface message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkInterface message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkInterface
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkInterface;

                    /**
                     * Creates a plain object from a NetworkInterface message. Also converts values to other types if specified.
                     * @param message NetworkInterface
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkInterface, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkInterface to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkInterface
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkInterface {

                    /** IgmpQuery enum. */
                    enum IgmpQuery {
                        UNDEFINED_IGMP_QUERY = 0,
                        IGMP_QUERY_DISABLED = 28285169,
                        IGMP_QUERY_V2 = 333493457
                    }

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677,
                        UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613
                    }

                    /** NicType enum. */
                    enum NicType {
                        UNDEFINED_NIC_TYPE = 0,
                        GVNIC = 68209305,
                        IDPF = 2242641,
                        IRDMA = 69927695,
                        MRDMA = 73621779,
                        UNSPECIFIED_NIC_TYPE = 67411801,
                        VIRTIO_NET = 452123481
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100,
                        UNSPECIFIED_STACK_TYPE = 298084569
                    }
                }

                /** Properties of a NetworkList. */
                interface INetworkList {

                    /** NetworkList id */
                    id?: (string|null);

                    /** NetworkList items */
                    items?: (google.cloud.compute.v1beta.INetwork[]|null);

                    /** NetworkList kind */
                    kind?: (string|null);

                    /** NetworkList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkList selfLink */
                    selfLink?: (string|null);

                    /** NetworkList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkList. */
                class NetworkList implements INetworkList {

                    /**
                     * Constructs a new NetworkList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkList);

                    /** NetworkList id. */
                    public id?: (string|null);

                    /** NetworkList items. */
                    public items: google.cloud.compute.v1beta.INetwork[];

                    /** NetworkList kind. */
                    public kind?: (string|null);

                    /** NetworkList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkList): google.cloud.compute.v1beta.NetworkList;

                    /**
                     * Encodes the specified NetworkList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkList.verify|verify} messages.
                     * @param message NetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkList.verify|verify} messages.
                     * @param message NetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkList;

                    /**
                     * Decodes a NetworkList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkList;

                    /**
                     * Verifies a NetworkList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkList;

                    /**
                     * Creates a plain object from a NetworkList message. Also converts values to other types if specified.
                     * @param message NetworkList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkParams. */
                interface INetworkParams {

                    /** NetworkParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a NetworkParams. */
                class NetworkParams implements INetworkParams {

                    /**
                     * Constructs a new NetworkParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkParams);

                    /** NetworkParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new NetworkParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkParams): google.cloud.compute.v1beta.NetworkParams;

                    /**
                     * Encodes the specified NetworkParams message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkParams.verify|verify} messages.
                     * @param message NetworkParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkParams.verify|verify} messages.
                     * @param message NetworkParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkParams;

                    /**
                     * Decodes a NetworkParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkParams;

                    /**
                     * Verifies a NetworkParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkParams;

                    /**
                     * Creates a plain object from a NetworkParams message. Also converts values to other types if specified.
                     * @param message NetworkParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkPeering. */
                interface INetworkPeering {

                    /** NetworkPeering autoCreateRoutes */
                    autoCreateRoutes?: (boolean|null);

                    /** NetworkPeering connectionStatus */
                    connectionStatus?: (google.cloud.compute.v1beta.INetworkPeeringConnectionStatus|null);

                    /** NetworkPeering exchangeSubnetRoutes */
                    exchangeSubnetRoutes?: (boolean|null);

                    /** NetworkPeering exportCustomRoutes */
                    exportCustomRoutes?: (boolean|null);

                    /** NetworkPeering exportSubnetRoutesWithPublicIp */
                    exportSubnetRoutesWithPublicIp?: (boolean|null);

                    /** NetworkPeering importCustomRoutes */
                    importCustomRoutes?: (boolean|null);

                    /** NetworkPeering importSubnetRoutesWithPublicIp */
                    importSubnetRoutesWithPublicIp?: (boolean|null);

                    /** NetworkPeering name */
                    name?: (string|null);

                    /** NetworkPeering network */
                    network?: (string|null);

                    /** NetworkPeering peerMtu */
                    peerMtu?: (number|null);

                    /** NetworkPeering stackType */
                    stackType?: (string|null);

                    /** NetworkPeering state */
                    state?: (string|null);

                    /** NetworkPeering stateDetails */
                    stateDetails?: (string|null);

                    /** NetworkPeering updateStrategy */
                    updateStrategy?: (string|null);
                }

                /** Represents a NetworkPeering. */
                class NetworkPeering implements INetworkPeering {

                    /**
                     * Constructs a new NetworkPeering.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPeering);

                    /** NetworkPeering autoCreateRoutes. */
                    public autoCreateRoutes?: (boolean|null);

                    /** NetworkPeering connectionStatus. */
                    public connectionStatus?: (google.cloud.compute.v1beta.INetworkPeeringConnectionStatus|null);

                    /** NetworkPeering exchangeSubnetRoutes. */
                    public exchangeSubnetRoutes?: (boolean|null);

                    /** NetworkPeering exportCustomRoutes. */
                    public exportCustomRoutes?: (boolean|null);

                    /** NetworkPeering exportSubnetRoutesWithPublicIp. */
                    public exportSubnetRoutesWithPublicIp?: (boolean|null);

                    /** NetworkPeering importCustomRoutes. */
                    public importCustomRoutes?: (boolean|null);

                    /** NetworkPeering importSubnetRoutesWithPublicIp. */
                    public importSubnetRoutesWithPublicIp?: (boolean|null);

                    /** NetworkPeering name. */
                    public name?: (string|null);

                    /** NetworkPeering network. */
                    public network?: (string|null);

                    /** NetworkPeering peerMtu. */
                    public peerMtu?: (number|null);

                    /** NetworkPeering stackType. */
                    public stackType?: (string|null);

                    /** NetworkPeering state. */
                    public state?: (string|null);

                    /** NetworkPeering stateDetails. */
                    public stateDetails?: (string|null);

                    /** NetworkPeering updateStrategy. */
                    public updateStrategy?: (string|null);

                    /**
                     * Creates a new NetworkPeering instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPeering instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPeering): google.cloud.compute.v1beta.NetworkPeering;

                    /**
                     * Encodes the specified NetworkPeering message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPeering.verify|verify} messages.
                     * @param message NetworkPeering message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPeering, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPeering message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPeering.verify|verify} messages.
                     * @param message NetworkPeering message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPeering, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPeering message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPeering
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPeering;

                    /**
                     * Decodes a NetworkPeering message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPeering
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPeering;

                    /**
                     * Verifies a NetworkPeering message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPeering message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPeering
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPeering;

                    /**
                     * Creates a plain object from a NetworkPeering message. Also converts values to other types if specified.
                     * @param message NetworkPeering
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPeering, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPeering to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPeering
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPeering {

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        INACTIVE = 270421099
                    }

                    /** UpdateStrategy enum. */
                    enum UpdateStrategy {
                        UNDEFINED_UPDATE_STRATEGY = 0,
                        CONSENSUS = 203373655,
                        INDEPENDENT = 127011674,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a NetworkPeeringConnectionStatus. */
                interface INetworkPeeringConnectionStatus {

                    /** NetworkPeeringConnectionStatus consensusState */
                    consensusState?: (google.cloud.compute.v1beta.INetworkPeeringConnectionStatusConsensusState|null);

                    /** NetworkPeeringConnectionStatus trafficConfiguration */
                    trafficConfiguration?: (google.cloud.compute.v1beta.INetworkPeeringConnectionStatusTrafficConfiguration|null);

                    /** NetworkPeeringConnectionStatus updateStrategy */
                    updateStrategy?: (string|null);
                }

                /** Represents a NetworkPeeringConnectionStatus. */
                class NetworkPeeringConnectionStatus implements INetworkPeeringConnectionStatus {

                    /**
                     * Constructs a new NetworkPeeringConnectionStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPeeringConnectionStatus);

                    /** NetworkPeeringConnectionStatus consensusState. */
                    public consensusState?: (google.cloud.compute.v1beta.INetworkPeeringConnectionStatusConsensusState|null);

                    /** NetworkPeeringConnectionStatus trafficConfiguration. */
                    public trafficConfiguration?: (google.cloud.compute.v1beta.INetworkPeeringConnectionStatusTrafficConfiguration|null);

                    /** NetworkPeeringConnectionStatus updateStrategy. */
                    public updateStrategy?: (string|null);

                    /**
                     * Creates a new NetworkPeeringConnectionStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPeeringConnectionStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPeeringConnectionStatus): google.cloud.compute.v1beta.NetworkPeeringConnectionStatus;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatus message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPeeringConnectionStatus.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPeeringConnectionStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPeeringConnectionStatus.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPeeringConnectionStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPeeringConnectionStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPeeringConnectionStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPeeringConnectionStatus;

                    /**
                     * Decodes a NetworkPeeringConnectionStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPeeringConnectionStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPeeringConnectionStatus;

                    /**
                     * Verifies a NetworkPeeringConnectionStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPeeringConnectionStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPeeringConnectionStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPeeringConnectionStatus;

                    /**
                     * Creates a plain object from a NetworkPeeringConnectionStatus message. Also converts values to other types if specified.
                     * @param message NetworkPeeringConnectionStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPeeringConnectionStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPeeringConnectionStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPeeringConnectionStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPeeringConnectionStatus {

                    /** UpdateStrategy enum. */
                    enum UpdateStrategy {
                        UNDEFINED_UPDATE_STRATEGY = 0,
                        CONSENSUS = 203373655,
                        INDEPENDENT = 127011674,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a NetworkPeeringConnectionStatusConsensusState. */
                interface INetworkPeeringConnectionStatusConsensusState {

                    /** NetworkPeeringConnectionStatusConsensusState deleteStatus */
                    deleteStatus?: (string|null);

                    /** NetworkPeeringConnectionStatusConsensusState updateStatus */
                    updateStatus?: (string|null);
                }

                /** Represents a NetworkPeeringConnectionStatusConsensusState. */
                class NetworkPeeringConnectionStatusConsensusState implements INetworkPeeringConnectionStatusConsensusState {

                    /**
                     * Constructs a new NetworkPeeringConnectionStatusConsensusState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPeeringConnectionStatusConsensusState);

                    /** NetworkPeeringConnectionStatusConsensusState deleteStatus. */
                    public deleteStatus?: (string|null);

                    /** NetworkPeeringConnectionStatusConsensusState updateStatus. */
                    public updateStatus?: (string|null);

                    /**
                     * Creates a new NetworkPeeringConnectionStatusConsensusState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPeeringConnectionStatusConsensusState instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPeeringConnectionStatusConsensusState): google.cloud.compute.v1beta.NetworkPeeringConnectionStatusConsensusState;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatusConsensusState message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPeeringConnectionStatusConsensusState.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatusConsensusState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPeeringConnectionStatusConsensusState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatusConsensusState message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPeeringConnectionStatusConsensusState.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatusConsensusState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPeeringConnectionStatusConsensusState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPeeringConnectionStatusConsensusState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPeeringConnectionStatusConsensusState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPeeringConnectionStatusConsensusState;

                    /**
                     * Decodes a NetworkPeeringConnectionStatusConsensusState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPeeringConnectionStatusConsensusState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPeeringConnectionStatusConsensusState;

                    /**
                     * Verifies a NetworkPeeringConnectionStatusConsensusState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPeeringConnectionStatusConsensusState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPeeringConnectionStatusConsensusState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPeeringConnectionStatusConsensusState;

                    /**
                     * Creates a plain object from a NetworkPeeringConnectionStatusConsensusState message. Also converts values to other types if specified.
                     * @param message NetworkPeeringConnectionStatusConsensusState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPeeringConnectionStatusConsensusState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPeeringConnectionStatusConsensusState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPeeringConnectionStatusConsensusState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPeeringConnectionStatusConsensusState {

                    /** DeleteStatus enum. */
                    enum DeleteStatus {
                        UNDEFINED_DELETE_STATUS = 0,
                        DELETE_ACKNOWLEDGED = 325293916,
                        DELETE_STATUS_UNSPECIFIED = 395396446,
                        LOCAL_CANCEL_REQUESTED = 169545277,
                        LOCAL_DELETE_REQUESTED = 227335214,
                        PEER_CANCEL_REQUESTED = 140057862,
                        PEER_DELETE_REQUESTED = 197847799
                    }

                    /** UpdateStatus enum. */
                    enum UpdateStatus {
                        UNDEFINED_UPDATE_STATUS = 0,
                        IN_SYNC = 2273653,
                        PENDING_LOCAL_ACKNOWLEDMENT = 229926592,
                        PENDING_PEER_ACKNOWLEDGEMENT = 420185797,
                        UPDATE_STATUS_UNSPECIFIED = 120836480
                    }
                }

                /** Properties of a NetworkPeeringConnectionStatusTrafficConfiguration. */
                interface INetworkPeeringConnectionStatusTrafficConfiguration {

                    /** NetworkPeeringConnectionStatusTrafficConfiguration exportCustomRoutesToPeer */
                    exportCustomRoutesToPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration exportSubnetRoutesWithPublicIpToPeer */
                    exportSubnetRoutesWithPublicIpToPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration importCustomRoutesFromPeer */
                    importCustomRoutesFromPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration importSubnetRoutesWithPublicIpFromPeer */
                    importSubnetRoutesWithPublicIpFromPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration stackType */
                    stackType?: (string|null);
                }

                /** Represents a NetworkPeeringConnectionStatusTrafficConfiguration. */
                class NetworkPeeringConnectionStatusTrafficConfiguration implements INetworkPeeringConnectionStatusTrafficConfiguration {

                    /**
                     * Constructs a new NetworkPeeringConnectionStatusTrafficConfiguration.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPeeringConnectionStatusTrafficConfiguration);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration exportCustomRoutesToPeer. */
                    public exportCustomRoutesToPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration exportSubnetRoutesWithPublicIpToPeer. */
                    public exportSubnetRoutesWithPublicIpToPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration importCustomRoutesFromPeer. */
                    public importCustomRoutesFromPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration importSubnetRoutesWithPublicIpFromPeer. */
                    public importSubnetRoutesWithPublicIpFromPeer?: (boolean|null);

                    /** NetworkPeeringConnectionStatusTrafficConfiguration stackType. */
                    public stackType?: (string|null);

                    /**
                     * Creates a new NetworkPeeringConnectionStatusTrafficConfiguration instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPeeringConnectionStatusTrafficConfiguration instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPeeringConnectionStatusTrafficConfiguration): google.cloud.compute.v1beta.NetworkPeeringConnectionStatusTrafficConfiguration;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatusTrafficConfiguration message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPeeringConnectionStatusTrafficConfiguration.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatusTrafficConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPeeringConnectionStatusTrafficConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPeeringConnectionStatusTrafficConfiguration message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPeeringConnectionStatusTrafficConfiguration.verify|verify} messages.
                     * @param message NetworkPeeringConnectionStatusTrafficConfiguration message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPeeringConnectionStatusTrafficConfiguration, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPeeringConnectionStatusTrafficConfiguration message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPeeringConnectionStatusTrafficConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPeeringConnectionStatusTrafficConfiguration;

                    /**
                     * Decodes a NetworkPeeringConnectionStatusTrafficConfiguration message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPeeringConnectionStatusTrafficConfiguration
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPeeringConnectionStatusTrafficConfiguration;

                    /**
                     * Verifies a NetworkPeeringConnectionStatusTrafficConfiguration message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPeeringConnectionStatusTrafficConfiguration message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPeeringConnectionStatusTrafficConfiguration
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPeeringConnectionStatusTrafficConfiguration;

                    /**
                     * Creates a plain object from a NetworkPeeringConnectionStatusTrafficConfiguration message. Also converts values to other types if specified.
                     * @param message NetworkPeeringConnectionStatusTrafficConfiguration
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPeeringConnectionStatusTrafficConfiguration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPeeringConnectionStatusTrafficConfiguration to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPeeringConnectionStatusTrafficConfiguration
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPeeringConnectionStatusTrafficConfiguration {

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798
                    }
                }

                /** Properties of a NetworkPerformanceConfig. */
                interface INetworkPerformanceConfig {

                    /** NetworkPerformanceConfig totalEgressBandwidthTier */
                    totalEgressBandwidthTier?: (string|null);
                }

                /** Represents a NetworkPerformanceConfig. */
                class NetworkPerformanceConfig implements INetworkPerformanceConfig {

                    /**
                     * Constructs a new NetworkPerformanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPerformanceConfig);

                    /** NetworkPerformanceConfig totalEgressBandwidthTier. */
                    public totalEgressBandwidthTier?: (string|null);

                    /**
                     * Creates a new NetworkPerformanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPerformanceConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPerformanceConfig): google.cloud.compute.v1beta.NetworkPerformanceConfig;

                    /**
                     * Encodes the specified NetworkPerformanceConfig message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.INetworkPerformanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPerformanceConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 {

                    /** TotalEgressBandwidthTier enum. */
                    enum TotalEgressBandwidthTier {
                        UNDEFINED_TOTAL_EGRESS_BANDWIDTH_TIER = 0,
                        DEFAULT = 115302945,
                        TIER_1 = 326919444
                    }
                }

                /** Properties of a NetworkPoliciesScopedList. */
                interface INetworkPoliciesScopedList {

                    /** NetworkPoliciesScopedList networkPolicies */
                    networkPolicies?: (google.cloud.compute.v1beta.INetworkPolicy[]|null);

                    /** NetworkPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkPoliciesScopedList. */
                class NetworkPoliciesScopedList implements INetworkPoliciesScopedList {

                    /**
                     * Constructs a new NetworkPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPoliciesScopedList);

                    /** NetworkPoliciesScopedList networkPolicies. */
                    public networkPolicies: google.cloud.compute.v1beta.INetworkPolicy[];

                    /** NetworkPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPoliciesScopedList): google.cloud.compute.v1beta.NetworkPoliciesScopedList;

                    /**
                     * Encodes the specified NetworkPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPoliciesScopedList.verify|verify} messages.
                     * @param message NetworkPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPoliciesScopedList.verify|verify} messages.
                     * @param message NetworkPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPoliciesScopedList;

                    /**
                     * Decodes a NetworkPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPoliciesScopedList;

                    /**
                     * Verifies a NetworkPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPoliciesScopedList;

                    /**
                     * Creates a plain object from a NetworkPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message NetworkPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPoliciesScopedList
                     * @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 associations */
                    associations?: (google.cloud.compute.v1beta.INetworkPolicyAssociation[]|null);

                    /** NetworkPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkPolicy description */
                    description?: (string|null);

                    /** NetworkPolicy id */
                    id?: (number|Long|string|null);

                    /** NetworkPolicy kind */
                    kind?: (string|null);

                    /** NetworkPolicy name */
                    name?: (string|null);

                    /** NetworkPolicy region */
                    region?: (string|null);

                    /** NetworkPolicy ruleTupleCount */
                    ruleTupleCount?: (number|null);

                    /** NetworkPolicy selfLink */
                    selfLink?: (string|null);

                    /** NetworkPolicy selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** NetworkPolicy trafficClassificationRules */
                    trafficClassificationRules?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule[]|null);
                }

                /** Represents a NetworkPolicy. */
                class NetworkPolicy implements INetworkPolicy {

                    /**
                     * Constructs a new NetworkPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicy);

                    /** NetworkPolicy associations. */
                    public associations: google.cloud.compute.v1beta.INetworkPolicyAssociation[];

                    /** NetworkPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkPolicy description. */
                    public description?: (string|null);

                    /** NetworkPolicy id. */
                    public id?: (number|Long|string|null);

                    /** NetworkPolicy kind. */
                    public kind?: (string|null);

                    /** NetworkPolicy name. */
                    public name?: (string|null);

                    /** NetworkPolicy region. */
                    public region?: (string|null);

                    /** NetworkPolicy ruleTupleCount. */
                    public ruleTupleCount?: (number|null);

                    /** NetworkPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkPolicy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** NetworkPolicy trafficClassificationRules. */
                    public trafficClassificationRules: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule[];

                    /**
                     * Creates a new NetworkPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicy): google.cloud.compute.v1beta.NetworkPolicy;

                    /**
                     * Encodes the specified NetworkPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.INetworkPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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;
                }

                /** Properties of a NetworkPolicyAggregatedList. */
                interface INetworkPolicyAggregatedList {

                    /** NetworkPolicyAggregatedList id */
                    id?: (string|null);

                    /** NetworkPolicyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.INetworkPoliciesScopedList }|null);

                    /** NetworkPolicyAggregatedList kind */
                    kind?: (string|null);

                    /** NetworkPolicyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkPolicyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NetworkPolicyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkPolicyAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkPolicyAggregatedList. */
                class NetworkPolicyAggregatedList implements INetworkPolicyAggregatedList {

                    /**
                     * Constructs a new NetworkPolicyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicyAggregatedList);

                    /** NetworkPolicyAggregatedList id. */
                    public id?: (string|null);

                    /** NetworkPolicyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.INetworkPoliciesScopedList };

                    /** NetworkPolicyAggregatedList kind. */
                    public kind?: (string|null);

                    /** NetworkPolicyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkPolicyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkPolicyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NetworkPolicyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkPolicyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicyAggregatedList): google.cloud.compute.v1beta.NetworkPolicyAggregatedList;

                    /**
                     * Encodes the specified NetworkPolicyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyAggregatedList.verify|verify} messages.
                     * @param message NetworkPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyAggregatedList.verify|verify} messages.
                     * @param message NetworkPolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPolicyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPolicyAggregatedList;

                    /**
                     * Decodes a NetworkPolicyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPolicyAggregatedList;

                    /**
                     * Verifies a NetworkPolicyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPolicyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPolicyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPolicyAggregatedList;

                    /**
                     * Creates a plain object from a NetworkPolicyAggregatedList message. Also converts values to other types if specified.
                     * @param message NetworkPolicyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPolicyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPolicyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPolicyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkPolicyAssociation. */
                interface INetworkPolicyAssociation {

                    /** NetworkPolicyAssociation attachmentTarget */
                    attachmentTarget?: (string|null);

                    /** NetworkPolicyAssociation name */
                    name?: (string|null);
                }

                /** Represents a NetworkPolicyAssociation. */
                class NetworkPolicyAssociation implements INetworkPolicyAssociation {

                    /**
                     * Constructs a new NetworkPolicyAssociation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicyAssociation);

                    /** NetworkPolicyAssociation attachmentTarget. */
                    public attachmentTarget?: (string|null);

                    /** NetworkPolicyAssociation name. */
                    public name?: (string|null);

                    /**
                     * Creates a new NetworkPolicyAssociation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicyAssociation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicyAssociation): google.cloud.compute.v1beta.NetworkPolicyAssociation;

                    /**
                     * Encodes the specified NetworkPolicyAssociation message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyAssociation.verify|verify} messages.
                     * @param message NetworkPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicyAssociation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyAssociation.verify|verify} messages.
                     * @param message NetworkPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPolicyAssociation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPolicyAssociation;

                    /**
                     * Decodes a NetworkPolicyAssociation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPolicyAssociation;

                    /**
                     * Verifies a NetworkPolicyAssociation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPolicyAssociation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPolicyAssociation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPolicyAssociation;

                    /**
                     * Creates a plain object from a NetworkPolicyAssociation message. Also converts values to other types if specified.
                     * @param message NetworkPolicyAssociation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPolicyAssociation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPolicyAssociation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPolicyAssociation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkPolicyList. */
                interface INetworkPolicyList {

                    /** NetworkPolicyList id */
                    id?: (string|null);

                    /** NetworkPolicyList items */
                    items?: (google.cloud.compute.v1beta.INetworkPolicy[]|null);

                    /** NetworkPolicyList kind */
                    kind?: (string|null);

                    /** NetworkPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkPolicyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkPolicyList. */
                class NetworkPolicyList implements INetworkPolicyList {

                    /**
                     * Constructs a new NetworkPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicyList);

                    /** NetworkPolicyList id. */
                    public id?: (string|null);

                    /** NetworkPolicyList items. */
                    public items: google.cloud.compute.v1beta.INetworkPolicy[];

                    /** NetworkPolicyList kind. */
                    public kind?: (string|null);

                    /** NetworkPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkPolicyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicyList): google.cloud.compute.v1beta.NetworkPolicyList;

                    /**
                     * Encodes the specified NetworkPolicyList message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyList.verify|verify} messages.
                     * @param message NetworkPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyList.verify|verify} messages.
                     * @param message NetworkPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPolicyList;

                    /**
                     * Decodes a NetworkPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPolicyList;

                    /**
                     * Verifies a NetworkPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPolicyList;

                    /**
                     * Creates a plain object from a NetworkPolicyList message. Also converts values to other types if specified.
                     * @param message NetworkPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkPolicyTrafficClassificationRule. */
                interface INetworkPolicyTrafficClassificationRule {

                    /** NetworkPolicyTrafficClassificationRule action */
                    action?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleAction|null);

                    /** NetworkPolicyTrafficClassificationRule description */
                    description?: (string|null);

                    /** NetworkPolicyTrafficClassificationRule disabled */
                    disabled?: (boolean|null);

                    /** NetworkPolicyTrafficClassificationRule kind */
                    kind?: (string|null);

                    /** NetworkPolicyTrafficClassificationRule match */
                    match?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcher|null);

                    /** NetworkPolicyTrafficClassificationRule priority */
                    priority?: (number|null);

                    /** NetworkPolicyTrafficClassificationRule ruleName */
                    ruleName?: (string|null);

                    /** NetworkPolicyTrafficClassificationRule ruleTupleCount */
                    ruleTupleCount?: (number|null);

                    /** NetworkPolicyTrafficClassificationRule targetSecureTags */
                    targetSecureTags?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleSecureTag[]|null);

                    /** NetworkPolicyTrafficClassificationRule targetServiceAccounts */
                    targetServiceAccounts?: (string[]|null);
                }

                /** Represents a NetworkPolicyTrafficClassificationRule. */
                class NetworkPolicyTrafficClassificationRule implements INetworkPolicyTrafficClassificationRule {

                    /**
                     * Constructs a new NetworkPolicyTrafficClassificationRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule);

                    /** NetworkPolicyTrafficClassificationRule action. */
                    public action?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleAction|null);

                    /** NetworkPolicyTrafficClassificationRule description. */
                    public description?: (string|null);

                    /** NetworkPolicyTrafficClassificationRule disabled. */
                    public disabled?: (boolean|null);

                    /** NetworkPolicyTrafficClassificationRule kind. */
                    public kind?: (string|null);

                    /** NetworkPolicyTrafficClassificationRule match. */
                    public match?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcher|null);

                    /** NetworkPolicyTrafficClassificationRule priority. */
                    public priority?: (number|null);

                    /** NetworkPolicyTrafficClassificationRule ruleName. */
                    public ruleName?: (string|null);

                    /** NetworkPolicyTrafficClassificationRule ruleTupleCount. */
                    public ruleTupleCount?: (number|null);

                    /** NetworkPolicyTrafficClassificationRule targetSecureTags. */
                    public targetSecureTags: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleSecureTag[];

                    /** NetworkPolicyTrafficClassificationRule targetServiceAccounts. */
                    public targetServiceAccounts: string[];

                    /**
                     * Creates a new NetworkPolicyTrafficClassificationRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicyTrafficClassificationRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRule message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPolicyTrafficClassificationRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPolicyTrafficClassificationRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule;

                    /**
                     * Verifies a NetworkPolicyTrafficClassificationRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPolicyTrafficClassificationRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPolicyTrafficClassificationRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule;

                    /**
                     * Creates a plain object from a NetworkPolicyTrafficClassificationRule message. Also converts values to other types if specified.
                     * @param message NetworkPolicyTrafficClassificationRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPolicyTrafficClassificationRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPolicyTrafficClassificationRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkPolicyTrafficClassificationRuleAction. */
                interface INetworkPolicyTrafficClassificationRuleAction {

                    /** NetworkPolicyTrafficClassificationRuleAction dscpMode */
                    dscpMode?: (string|null);

                    /** NetworkPolicyTrafficClassificationRuleAction dscpValue */
                    dscpValue?: (number|null);

                    /** NetworkPolicyTrafficClassificationRuleAction trafficClass */
                    trafficClass?: (string|null);

                    /** NetworkPolicyTrafficClassificationRuleAction type */
                    type?: (string|null);
                }

                /** Represents a NetworkPolicyTrafficClassificationRuleAction. */
                class NetworkPolicyTrafficClassificationRuleAction implements INetworkPolicyTrafficClassificationRuleAction {

                    /**
                     * Constructs a new NetworkPolicyTrafficClassificationRuleAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleAction);

                    /** NetworkPolicyTrafficClassificationRuleAction dscpMode. */
                    public dscpMode?: (string|null);

                    /** NetworkPolicyTrafficClassificationRuleAction dscpValue. */
                    public dscpValue?: (number|null);

                    /** NetworkPolicyTrafficClassificationRuleAction trafficClass. */
                    public trafficClass?: (string|null);

                    /** NetworkPolicyTrafficClassificationRuleAction type. */
                    public type?: (string|null);

                    /**
                     * Creates a new NetworkPolicyTrafficClassificationRuleAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicyTrafficClassificationRuleAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleAction): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleAction;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRuleAction message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleAction.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRuleAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRuleAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleAction.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRuleAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRuleAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPolicyTrafficClassificationRuleAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleAction;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRuleAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPolicyTrafficClassificationRuleAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleAction;

                    /**
                     * Verifies a NetworkPolicyTrafficClassificationRuleAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPolicyTrafficClassificationRuleAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPolicyTrafficClassificationRuleAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleAction;

                    /**
                     * Creates a plain object from a NetworkPolicyTrafficClassificationRuleAction message. Also converts values to other types if specified.
                     * @param message NetworkPolicyTrafficClassificationRuleAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPolicyTrafficClassificationRuleAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPolicyTrafficClassificationRuleAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPolicyTrafficClassificationRuleAction {

                    /** DscpMode enum. */
                    enum DscpMode {
                        UNDEFINED_DSCP_MODE = 0,
                        AUTO = 2020783,
                        CUSTOM = 388595569
                    }

                    /** TrafficClass enum. */
                    enum TrafficClass {
                        UNDEFINED_TRAFFIC_CLASS = 0,
                        TC1 = 82850,
                        TC2 = 82851,
                        TC3 = 82852,
                        TC4 = 82853,
                        TC5 = 82854,
                        TC6 = 82855
                    }
                }

                /** Properties of a NetworkPolicyTrafficClassificationRuleMatcher. */
                interface INetworkPolicyTrafficClassificationRuleMatcher {

                    /** NetworkPolicyTrafficClassificationRuleMatcher destIpRanges */
                    destIpRanges?: (string[]|null);

                    /** NetworkPolicyTrafficClassificationRuleMatcher layer4Configs */
                    layer4Configs?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcherLayer4Config[]|null);

                    /** NetworkPolicyTrafficClassificationRuleMatcher srcIpRanges */
                    srcIpRanges?: (string[]|null);
                }

                /** Represents a NetworkPolicyTrafficClassificationRuleMatcher. */
                class NetworkPolicyTrafficClassificationRuleMatcher implements INetworkPolicyTrafficClassificationRuleMatcher {

                    /**
                     * Constructs a new NetworkPolicyTrafficClassificationRuleMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcher);

                    /** NetworkPolicyTrafficClassificationRuleMatcher destIpRanges. */
                    public destIpRanges: string[];

                    /** NetworkPolicyTrafficClassificationRuleMatcher layer4Configs. */
                    public layer4Configs: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcherLayer4Config[];

                    /** NetworkPolicyTrafficClassificationRuleMatcher srcIpRanges. */
                    public srcIpRanges: string[];

                    /**
                     * Creates a new NetworkPolicyTrafficClassificationRuleMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicyTrafficClassificationRuleMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcher): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcher;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRuleMatcher message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcher.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRuleMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcher.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRuleMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPolicyTrafficClassificationRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcher;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRuleMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPolicyTrafficClassificationRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcher;

                    /**
                     * Verifies a NetworkPolicyTrafficClassificationRuleMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPolicyTrafficClassificationRuleMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPolicyTrafficClassificationRuleMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcher;

                    /**
                     * Creates a plain object from a NetworkPolicyTrafficClassificationRuleMatcher message. Also converts values to other types if specified.
                     * @param message NetworkPolicyTrafficClassificationRuleMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPolicyTrafficClassificationRuleMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPolicyTrafficClassificationRuleMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkPolicyTrafficClassificationRuleMatcherLayer4Config. */
                interface INetworkPolicyTrafficClassificationRuleMatcherLayer4Config {

                    /** NetworkPolicyTrafficClassificationRuleMatcherLayer4Config ipProtocol */
                    ipProtocol?: (string|null);

                    /** NetworkPolicyTrafficClassificationRuleMatcherLayer4Config ports */
                    ports?: (string[]|null);
                }

                /** Represents a NetworkPolicyTrafficClassificationRuleMatcherLayer4Config. */
                class NetworkPolicyTrafficClassificationRuleMatcherLayer4Config implements INetworkPolicyTrafficClassificationRuleMatcherLayer4Config {

                    /**
                     * Constructs a new NetworkPolicyTrafficClassificationRuleMatcherLayer4Config.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcherLayer4Config);

                    /** NetworkPolicyTrafficClassificationRuleMatcherLayer4Config ipProtocol. */
                    public ipProtocol?: (string|null);

                    /** NetworkPolicyTrafficClassificationRuleMatcherLayer4Config ports. */
                    public ports: string[];

                    /**
                     * Creates a new NetworkPolicyTrafficClassificationRuleMatcherLayer4Config instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicyTrafficClassificationRuleMatcherLayer4Config instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcherLayer4Config): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcherLayer4Config;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcherLayer4Config.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcherLayer4Config, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcherLayer4Config.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleMatcherLayer4Config, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPolicyTrafficClassificationRuleMatcherLayer4Config
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcherLayer4Config;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPolicyTrafficClassificationRuleMatcherLayer4Config
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcherLayer4Config;

                    /**
                     * Verifies a NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPolicyTrafficClassificationRuleMatcherLayer4Config
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcherLayer4Config;

                    /**
                     * Creates a plain object from a NetworkPolicyTrafficClassificationRuleMatcherLayer4Config message. Also converts values to other types if specified.
                     * @param message NetworkPolicyTrafficClassificationRuleMatcherLayer4Config
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleMatcherLayer4Config, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPolicyTrafficClassificationRuleMatcherLayer4Config to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPolicyTrafficClassificationRuleMatcherLayer4Config
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkPolicyTrafficClassificationRuleSecureTag. */
                interface INetworkPolicyTrafficClassificationRuleSecureTag {

                    /** NetworkPolicyTrafficClassificationRuleSecureTag name */
                    name?: (string|null);

                    /** NetworkPolicyTrafficClassificationRuleSecureTag state */
                    state?: (string|null);
                }

                /** Represents a NetworkPolicyTrafficClassificationRuleSecureTag. */
                class NetworkPolicyTrafficClassificationRuleSecureTag implements INetworkPolicyTrafficClassificationRuleSecureTag {

                    /**
                     * Constructs a new NetworkPolicyTrafficClassificationRuleSecureTag.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleSecureTag);

                    /** NetworkPolicyTrafficClassificationRuleSecureTag name. */
                    public name?: (string|null);

                    /** NetworkPolicyTrafficClassificationRuleSecureTag state. */
                    public state?: (string|null);

                    /**
                     * Creates a new NetworkPolicyTrafficClassificationRuleSecureTag instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkPolicyTrafficClassificationRuleSecureTag instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleSecureTag): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleSecureTag;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRuleSecureTag message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleSecureTag.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRuleSecureTag message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleSecureTag, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkPolicyTrafficClassificationRuleSecureTag message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleSecureTag.verify|verify} messages.
                     * @param message NetworkPolicyTrafficClassificationRuleSecureTag message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRuleSecureTag, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRuleSecureTag message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkPolicyTrafficClassificationRuleSecureTag
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleSecureTag;

                    /**
                     * Decodes a NetworkPolicyTrafficClassificationRuleSecureTag message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkPolicyTrafficClassificationRuleSecureTag
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleSecureTag;

                    /**
                     * Verifies a NetworkPolicyTrafficClassificationRuleSecureTag message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkPolicyTrafficClassificationRuleSecureTag message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkPolicyTrafficClassificationRuleSecureTag
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleSecureTag;

                    /**
                     * Creates a plain object from a NetworkPolicyTrafficClassificationRuleSecureTag message. Also converts values to other types if specified.
                     * @param message NetworkPolicyTrafficClassificationRuleSecureTag
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRuleSecureTag, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkPolicyTrafficClassificationRuleSecureTag to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkPolicyTrafficClassificationRuleSecureTag
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkPolicyTrafficClassificationRuleSecureTag {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        EFFECTIVE = 244201863,
                        INEFFECTIVE = 304458242,
                        STATE_UNSPECIFIED = 470755401
                    }
                }

                /** Properties of a NetworkProfile. */
                interface INetworkProfile {

                    /** NetworkProfile creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NetworkProfile description */
                    description?: (string|null);

                    /** NetworkProfile features */
                    features?: (google.cloud.compute.v1beta.INetworkProfileNetworkFeatures|null);

                    /** NetworkProfile id */
                    id?: (number|Long|string|null);

                    /** NetworkProfile kind */
                    kind?: (string|null);

                    /** NetworkProfile location */
                    location?: (google.cloud.compute.v1beta.INetworkProfileLocation|null);

                    /** NetworkProfile name */
                    name?: (string|null);

                    /** NetworkProfile profileType */
                    profileType?: (google.cloud.compute.v1beta.INetworkProfileProfileType|null);

                    /** NetworkProfile selfLink */
                    selfLink?: (string|null);

                    /** NetworkProfile selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** NetworkProfile zone */
                    zone?: (string|null);
                }

                /** Represents a NetworkProfile. */
                class NetworkProfile implements INetworkProfile {

                    /**
                     * Constructs a new NetworkProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkProfile);

                    /** NetworkProfile creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NetworkProfile description. */
                    public description?: (string|null);

                    /** NetworkProfile features. */
                    public features?: (google.cloud.compute.v1beta.INetworkProfileNetworkFeatures|null);

                    /** NetworkProfile id. */
                    public id?: (number|Long|string|null);

                    /** NetworkProfile kind. */
                    public kind?: (string|null);

                    /** NetworkProfile location. */
                    public location?: (google.cloud.compute.v1beta.INetworkProfileLocation|null);

                    /** NetworkProfile name. */
                    public name?: (string|null);

                    /** NetworkProfile profileType. */
                    public profileType?: (google.cloud.compute.v1beta.INetworkProfileProfileType|null);

                    /** NetworkProfile selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkProfile selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** NetworkProfile zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NetworkProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfile instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkProfile): google.cloud.compute.v1beta.NetworkProfile;

                    /**
                     * Encodes the specified NetworkProfile message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfile.verify|verify} messages.
                     * @param message NetworkProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfile message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfile.verify|verify} messages.
                     * @param message NetworkProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkProfile;

                    /**
                     * Decodes a NetworkProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkProfile;

                    /**
                     * Verifies a NetworkProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkProfile;

                    /**
                     * Creates a plain object from a NetworkProfile message. Also converts values to other types if specified.
                     * @param message NetworkProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkProfileLocation. */
                interface INetworkProfileLocation {

                    /** NetworkProfileLocation name */
                    name?: (string|null);

                    /** NetworkProfileLocation scope */
                    scope?: (string|null);
                }

                /** Represents a NetworkProfileLocation. */
                class NetworkProfileLocation implements INetworkProfileLocation {

                    /**
                     * Constructs a new NetworkProfileLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkProfileLocation);

                    /** NetworkProfileLocation name. */
                    public name?: (string|null);

                    /** NetworkProfileLocation scope. */
                    public scope?: (string|null);

                    /**
                     * Creates a new NetworkProfileLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfileLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkProfileLocation): google.cloud.compute.v1beta.NetworkProfileLocation;

                    /**
                     * Encodes the specified NetworkProfileLocation message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfileLocation.verify|verify} messages.
                     * @param message NetworkProfileLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkProfileLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfileLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfileLocation.verify|verify} messages.
                     * @param message NetworkProfileLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkProfileLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfileLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfileLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkProfileLocation;

                    /**
                     * Decodes a NetworkProfileLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfileLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkProfileLocation;

                    /**
                     * Verifies a NetworkProfileLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfileLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfileLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkProfileLocation;

                    /**
                     * Creates a plain object from a NetworkProfileLocation message. Also converts values to other types if specified.
                     * @param message NetworkProfileLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkProfileLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfileLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfileLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkProfileLocation {

                    /** Scope enum. */
                    enum Scope {
                        UNDEFINED_SCOPE = 0,
                        REGION = 266017524,
                        ZONE = 2759596
                    }
                }

                /** Properties of a NetworkProfileNetworkFeatures. */
                interface INetworkProfileNetworkFeatures {

                    /** NetworkProfileNetworkFeatures addressPurposes */
                    addressPurposes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures allowAddressCreation */
                    allowAddressCreation?: (string|null);

                    /** NetworkProfileNetworkFeatures allowAliasIpRanges */
                    allowAliasIpRanges?: (string|null);

                    /** NetworkProfileNetworkFeatures allowAutoModeSubnet */
                    allowAutoModeSubnet?: (string|null);

                    /** NetworkProfileNetworkFeatures allowClassDFirewalls */
                    allowClassDFirewalls?: (string|null);

                    /** NetworkProfileNetworkFeatures allowCloudNat */
                    allowCloudNat?: (string|null);

                    /** NetworkProfileNetworkFeatures allowCloudRouter */
                    allowCloudRouter?: (string|null);

                    /** NetworkProfileNetworkFeatures allowDefaultNicAttachment */
                    allowDefaultNicAttachment?: (string|null);

                    /** NetworkProfileNetworkFeatures allowExternalIpAccess */
                    allowExternalIpAccess?: (string|null);

                    /** NetworkProfileNetworkFeatures allowFirewallPolicy */
                    allowFirewallPolicy?: (string|null);

                    /** NetworkProfileNetworkFeatures allowInterconnect */
                    allowInterconnect?: (string|null);

                    /** NetworkProfileNetworkFeatures allowIpForwarding */
                    allowIpForwarding?: (string|null);

                    /** NetworkProfileNetworkFeatures allowLoadBalancing */
                    allowLoadBalancing?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMultiNicInSameNetwork */
                    allowMultiNicInSameNetwork?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMultiNicInSameSubnetwork */
                    allowMultiNicInSameSubnetwork?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMulticast */
                    allowMulticast?: (string|null);

                    /** NetworkProfileNetworkFeatures allowNcc */
                    allowNcc?: (string|null);

                    /** NetworkProfileNetworkFeatures allowNetworkMigration */
                    allowNetworkMigration?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPacketMirroring */
                    allowPacketMirroring?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPrivateGoogleAccess */
                    allowPrivateGoogleAccess?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPsc */
                    allowPsc?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSameNetworkUnicast */
                    allowSameNetworkUnicast?: (string|null);

                    /** NetworkProfileNetworkFeatures allowStaticRoutes */
                    allowStaticRoutes?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSubInterfaces */
                    allowSubInterfaces?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSubnetworkCreation */
                    allowSubnetworkCreation?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpcFirewallRules */
                    allowVpcFirewallRules?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpcPeering */
                    allowVpcPeering?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpn */
                    allowVpn?: (string|null);

                    /** NetworkProfileNetworkFeatures firewallPolicyTypes */
                    firewallPolicyTypes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures interfaceTypes */
                    interfaceTypes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures multicast */
                    multicast?: (string|null);

                    /** NetworkProfileNetworkFeatures predefinedNetworkInternalIpv6Range */
                    predefinedNetworkInternalIpv6Range?: (string|null);

                    /** NetworkProfileNetworkFeatures predefinedSubnetworkRanges */
                    predefinedSubnetworkRanges?: (google.cloud.compute.v1beta.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange[]|null);

                    /** NetworkProfileNetworkFeatures subnetPurposes */
                    subnetPurposes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures subnetStackTypes */
                    subnetStackTypes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures subnetworkPurposes */
                    subnetworkPurposes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures subnetworkStackTypes */
                    subnetworkStackTypes?: (string[]|null);

                    /** NetworkProfileNetworkFeatures unicast */
                    unicast?: (string|null);
                }

                /** Represents a NetworkProfileNetworkFeatures. */
                class NetworkProfileNetworkFeatures implements INetworkProfileNetworkFeatures {

                    /**
                     * Constructs a new NetworkProfileNetworkFeatures.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkProfileNetworkFeatures);

                    /** NetworkProfileNetworkFeatures addressPurposes. */
                    public addressPurposes: string[];

                    /** NetworkProfileNetworkFeatures allowAddressCreation. */
                    public allowAddressCreation?: (string|null);

                    /** NetworkProfileNetworkFeatures allowAliasIpRanges. */
                    public allowAliasIpRanges?: (string|null);

                    /** NetworkProfileNetworkFeatures allowAutoModeSubnet. */
                    public allowAutoModeSubnet?: (string|null);

                    /** NetworkProfileNetworkFeatures allowClassDFirewalls. */
                    public allowClassDFirewalls?: (string|null);

                    /** NetworkProfileNetworkFeatures allowCloudNat. */
                    public allowCloudNat?: (string|null);

                    /** NetworkProfileNetworkFeatures allowCloudRouter. */
                    public allowCloudRouter?: (string|null);

                    /** NetworkProfileNetworkFeatures allowDefaultNicAttachment. */
                    public allowDefaultNicAttachment?: (string|null);

                    /** NetworkProfileNetworkFeatures allowExternalIpAccess. */
                    public allowExternalIpAccess?: (string|null);

                    /** NetworkProfileNetworkFeatures allowFirewallPolicy. */
                    public allowFirewallPolicy?: (string|null);

                    /** NetworkProfileNetworkFeatures allowInterconnect. */
                    public allowInterconnect?: (string|null);

                    /** NetworkProfileNetworkFeatures allowIpForwarding. */
                    public allowIpForwarding?: (string|null);

                    /** NetworkProfileNetworkFeatures allowLoadBalancing. */
                    public allowLoadBalancing?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMultiNicInSameNetwork. */
                    public allowMultiNicInSameNetwork?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMultiNicInSameSubnetwork. */
                    public allowMultiNicInSameSubnetwork?: (string|null);

                    /** NetworkProfileNetworkFeatures allowMulticast. */
                    public allowMulticast?: (string|null);

                    /** NetworkProfileNetworkFeatures allowNcc. */
                    public allowNcc?: (string|null);

                    /** NetworkProfileNetworkFeatures allowNetworkMigration. */
                    public allowNetworkMigration?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPacketMirroring. */
                    public allowPacketMirroring?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPrivateGoogleAccess. */
                    public allowPrivateGoogleAccess?: (string|null);

                    /** NetworkProfileNetworkFeatures allowPsc. */
                    public allowPsc?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSameNetworkUnicast. */
                    public allowSameNetworkUnicast?: (string|null);

                    /** NetworkProfileNetworkFeatures allowStaticRoutes. */
                    public allowStaticRoutes?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSubInterfaces. */
                    public allowSubInterfaces?: (string|null);

                    /** NetworkProfileNetworkFeatures allowSubnetworkCreation. */
                    public allowSubnetworkCreation?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpcFirewallRules. */
                    public allowVpcFirewallRules?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpcPeering. */
                    public allowVpcPeering?: (string|null);

                    /** NetworkProfileNetworkFeatures allowVpn. */
                    public allowVpn?: (string|null);

                    /** NetworkProfileNetworkFeatures firewallPolicyTypes. */
                    public firewallPolicyTypes: string[];

                    /** NetworkProfileNetworkFeatures interfaceTypes. */
                    public interfaceTypes: string[];

                    /** NetworkProfileNetworkFeatures multicast. */
                    public multicast?: (string|null);

                    /** NetworkProfileNetworkFeatures predefinedNetworkInternalIpv6Range. */
                    public predefinedNetworkInternalIpv6Range?: (string|null);

                    /** NetworkProfileNetworkFeatures predefinedSubnetworkRanges. */
                    public predefinedSubnetworkRanges: google.cloud.compute.v1beta.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange[];

                    /** NetworkProfileNetworkFeatures subnetPurposes. */
                    public subnetPurposes: string[];

                    /** NetworkProfileNetworkFeatures subnetStackTypes. */
                    public subnetStackTypes: string[];

                    /** NetworkProfileNetworkFeatures subnetworkPurposes. */
                    public subnetworkPurposes: string[];

                    /** NetworkProfileNetworkFeatures subnetworkStackTypes. */
                    public subnetworkStackTypes: string[];

                    /** NetworkProfileNetworkFeatures unicast. */
                    public unicast?: (string|null);

                    /**
                     * Creates a new NetworkProfileNetworkFeatures instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfileNetworkFeatures instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkProfileNetworkFeatures): google.cloud.compute.v1beta.NetworkProfileNetworkFeatures;

                    /**
                     * Encodes the specified NetworkProfileNetworkFeatures message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfileNetworkFeatures.verify|verify} messages.
                     * @param message NetworkProfileNetworkFeatures message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkProfileNetworkFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfileNetworkFeatures message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfileNetworkFeatures.verify|verify} messages.
                     * @param message NetworkProfileNetworkFeatures message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkProfileNetworkFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfileNetworkFeatures message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfileNetworkFeatures
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkProfileNetworkFeatures;

                    /**
                     * Decodes a NetworkProfileNetworkFeatures message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfileNetworkFeatures
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkProfileNetworkFeatures;

                    /**
                     * Verifies a NetworkProfileNetworkFeatures message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfileNetworkFeatures message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfileNetworkFeatures
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkProfileNetworkFeatures;

                    /**
                     * Creates a plain object from a NetworkProfileNetworkFeatures message. Also converts values to other types if specified.
                     * @param message NetworkProfileNetworkFeatures
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkProfileNetworkFeatures, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfileNetworkFeatures to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfileNetworkFeatures
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkProfileNetworkFeatures {

                    /** AddressPurposes enum. */
                    enum AddressPurposes {
                        UNDEFINED_ADDRESS_PURPOSES = 0,
                        DNS_RESOLVER = 476114556,
                        GCE_ENDPOINT = 230515243,
                        IPSEC_INTERCONNECT = 340437251,
                        NAT_AUTO = 163666477,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        SERVERLESS = 270492508,
                        SHARED_LOADBALANCER_VIP = 294447572,
                        VPC_PEERING = 400800170
                    }

                    /** AllowAddressCreation enum. */
                    enum AllowAddressCreation {
                        UNDEFINED_ALLOW_ADDRESS_CREATION = 0,
                        ADDRESS_CREATION_ALLOWED = 181903667,
                        ADDRESS_CREATION_BLOCKED = 534937975
                    }

                    /** AllowAliasIpRanges enum. */
                    enum AllowAliasIpRanges {
                        UNDEFINED_ALLOW_ALIAS_IP_RANGES = 0,
                        ALIAS_IP_RANGES_ALLOWED = 464867048,
                        ALIAS_IP_RANGES_BLOCKED = 281030444
                    }

                    /** AllowAutoModeSubnet enum. */
                    enum AllowAutoModeSubnet {
                        UNDEFINED_ALLOW_AUTO_MODE_SUBNET = 0,
                        AUTO_MODE_SUBNET_ALLOWED = 391042610,
                        AUTO_MODE_SUBNET_BLOCKED = 207206006
                    }

                    /** AllowClassDFirewalls enum. */
                    enum AllowClassDFirewalls {
                        UNDEFINED_ALLOW_CLASS_D_FIREWALLS = 0,
                        CLASS_D_FIREWALLS_ALLOWED = 348219386,
                        CLASS_D_FIREWALLS_BLOCKED = 164382782
                    }

                    /** AllowCloudNat enum. */
                    enum AllowCloudNat {
                        UNDEFINED_ALLOW_CLOUD_NAT = 0,
                        CLOUD_NAT_ALLOWED = 245931296,
                        CLOUD_NAT_BLOCKED = 62094692
                    }

                    /** AllowCloudRouter enum. */
                    enum AllowCloudRouter {
                        UNDEFINED_ALLOW_CLOUD_ROUTER = 0,
                        CLOUD_ROUTER_ALLOWED = 365388284,
                        CLOUD_ROUTER_BLOCKED = 181551680
                    }

                    /** AllowDefaultNicAttachment enum. */
                    enum AllowDefaultNicAttachment {
                        UNDEFINED_ALLOW_DEFAULT_NIC_ATTACHMENT = 0,
                        DEFAULT_NIC_ATTACHMENT_ALLOWED = 11570689,
                        DEFAULT_NIC_ATTACHMENT_BLOCKED = 364604997
                    }

                    /** AllowExternalIpAccess enum. */
                    enum AllowExternalIpAccess {
                        UNDEFINED_ALLOW_EXTERNAL_IP_ACCESS = 0,
                        EXTERNAL_IP_ACCESS_ALLOWED = 109530193,
                        EXTERNAL_IP_ACCESS_BLOCKED = 462564501
                    }

                    /** AllowFirewallPolicy enum. */
                    enum AllowFirewallPolicy {
                        UNDEFINED_ALLOW_FIREWALL_POLICY = 0,
                        FIREWALL_POLICY_ALLOWED = 388488346,
                        FIREWALL_POLICY_BLOCKED = 204651742
                    }

                    /** AllowInterconnect enum. */
                    enum AllowInterconnect {
                        UNDEFINED_ALLOW_INTERCONNECT = 0,
                        INTERCONNECT_ALLOWED = 162845399,
                        INTERCONNECT_BLOCKED = 515879707
                    }

                    /** AllowIpForwarding enum. */
                    enum AllowIpForwarding {
                        UNDEFINED_ALLOW_IP_FORWARDING = 0,
                        IP_FORWARDING_ALLOWED = 152595550,
                        IP_FORWARDING_BLOCKED = 505629858
                    }

                    /** AllowLoadBalancing enum. */
                    enum AllowLoadBalancing {
                        UNDEFINED_ALLOW_LOAD_BALANCING = 0,
                        LOAD_BALANCING_ALLOWED = 28407977,
                        LOAD_BALANCING_BLOCKED = 381442285
                    }

                    /** AllowMultiNicInSameNetwork enum. */
                    enum AllowMultiNicInSameNetwork {
                        UNDEFINED_ALLOW_MULTI_NIC_IN_SAME_NETWORK = 0,
                        MULTI_NIC_IN_SAME_NETWORK_ALLOWED = 457555419,
                        MULTI_NIC_IN_SAME_NETWORK_BLOCKED = 273718815
                    }

                    /** AllowMultiNicInSameSubnetwork enum. */
                    enum AllowMultiNicInSameSubnetwork {
                        UNDEFINED_ALLOW_MULTI_NIC_IN_SAME_SUBNETWORK = 0,
                        MULTI_NIC_IN_SAME_SUBNETWORK_ALLOWED = 288044595,
                        MULTI_NIC_IN_SAME_SUBNETWORK_BLOCKED = 104207991
                    }

                    /** AllowMulticast enum. */
                    enum AllowMulticast {
                        UNDEFINED_ALLOW_MULTICAST = 0,
                        MULTICAST_ALLOWED = 44693537,
                        MULTICAST_BLOCKED = 397727845
                    }

                    /** AllowNcc enum. */
                    enum AllowNcc {
                        UNDEFINED_ALLOW_NCC = 0,
                        NCC_ALLOWED = 467227511,
                        NCC_BLOCKED = 283390907
                    }

                    /** AllowNetworkMigration enum. */
                    enum AllowNetworkMigration {
                        UNDEFINED_ALLOW_NETWORK_MIGRATION = 0,
                        NETWORK_MIGRATION_ALLOWED = 14389766,
                        NETWORK_MIGRATION_BLOCKED = 367424074
                    }

                    /** AllowPacketMirroring enum. */
                    enum AllowPacketMirroring {
                        UNDEFINED_ALLOW_PACKET_MIRRORING = 0,
                        PACKET_MIRRORING_ALLOWED = 92416245,
                        PACKET_MIRRORING_BLOCKED = 445450553
                    }

                    /** AllowPrivateGoogleAccess enum. */
                    enum AllowPrivateGoogleAccess {
                        UNDEFINED_ALLOW_PRIVATE_GOOGLE_ACCESS = 0,
                        PRIVATE_GOOGLE_ACCESS_ALLOWED = 220787351,
                        PRIVATE_GOOGLE_ACCESS_BLOCKED = 36950747
                    }

                    /** AllowPsc enum. */
                    enum AllowPsc {
                        UNDEFINED_ALLOW_PSC = 0,
                        PSC_ALLOWED = 171559657,
                        PSC_BLOCKED = 524593965
                    }

                    /** AllowSameNetworkUnicast enum. */
                    enum AllowSameNetworkUnicast {
                        UNDEFINED_ALLOW_SAME_NETWORK_UNICAST = 0,
                        SAME_NETWORK_UNICAST_ALLOWED = 159732814,
                        SAME_NETWORK_UNICAST_BLOCKED = 512767122
                    }

                    /** AllowStaticRoutes enum. */
                    enum AllowStaticRoutes {
                        UNDEFINED_ALLOW_STATIC_ROUTES = 0,
                        STATIC_ROUTES_ALLOWED = 409048964,
                        STATIC_ROUTES_BLOCKED = 225212360
                    }

                    /** AllowSubInterfaces enum. */
                    enum AllowSubInterfaces {
                        UNDEFINED_ALLOW_SUB_INTERFACES = 0,
                        SUBINTERFACES_ALLOWED = 158685891,
                        SUBINTERFACES_BLOCKED = 511720199
                    }

                    /** AllowSubnetworkCreation enum. */
                    enum AllowSubnetworkCreation {
                        UNDEFINED_ALLOW_SUBNETWORK_CREATION = 0,
                        SUBNETWORK_CREATION_ALLOWED = 158580825,
                        SUBNETWORK_CREATION_BLOCKED = 511615133
                    }

                    /** AllowVpcFirewallRules enum. */
                    enum AllowVpcFirewallRules {
                        UNDEFINED_ALLOW_VPC_FIREWALL_RULES = 0,
                        VPC_FIREWALL_RULES_ALLOWED = 489586007,
                        VPC_FIREWALL_RULES_BLOCKED = 305749403
                    }

                    /** AllowVpcPeering enum. */
                    enum AllowVpcPeering {
                        UNDEFINED_ALLOW_VPC_PEERING = 0,
                        VPC_PEERING_ALLOWED = 261465075,
                        VPC_PEERING_BLOCKED = 77628471
                    }

                    /** AllowVpn enum. */
                    enum AllowVpn {
                        UNDEFINED_ALLOW_VPN = 0,
                        VPN_ALLOWED = 162163997,
                        VPN_BLOCKED = 515198305
                    }

                    /** FirewallPolicyTypes enum. */
                    enum FirewallPolicyTypes {
                        UNDEFINED_FIREWALL_POLICY_TYPES = 0,
                        RDMA_FALCON_POLICY = 66315047,
                        RDMA_ROCE_POLICY = 148757145,
                        ULL_POLICY = 100494364,
                        VPC_POLICY = 74319208
                    }

                    /** InterfaceTypes enum. */
                    enum InterfaceTypes {
                        UNDEFINED_INTERFACE_TYPES = 0,
                        GVNIC = 68209305,
                        IDPF = 2242641,
                        IRDMA = 69927695,
                        MRDMA = 73621779,
                        UNSPECIFIED_NIC_TYPE = 67411801,
                        VIRTIO_NET = 452123481
                    }

                    /** Multicast enum. */
                    enum Multicast {
                        UNDEFINED_MULTICAST = 0,
                        MULTICAST_SDN = 532209462,
                        MULTICAST_ULL = 532211630
                    }

                    /** SubnetPurposes enum. */
                    enum SubnetPurposes {
                        UNDEFINED_SUBNET_PURPOSES = 0,
                        SUBNET_PURPOSE_CUSTOM_HARDWARE = 283160275,
                        SUBNET_PURPOSE_PRIVATE = 404371008
                    }

                    /** SubnetStackTypes enum. */
                    enum SubnetStackTypes {
                        UNDEFINED_SUBNET_STACK_TYPES = 0,
                        SUBNET_STACK_TYPE_IPV4_IPV6 = 41454485,
                        SUBNET_STACK_TYPE_IPV4_ONLY = 41631034,
                        SUBNET_STACK_TYPE_IPV6_ONLY = 98889336
                    }

                    /** SubnetworkPurposes enum. */
                    enum SubnetworkPurposes {
                        UNDEFINED_SUBNETWORK_PURPOSES = 0,
                        GLOBAL_MANAGED_PROXY = 236463602,
                        INTERNAL_HTTPS_LOAD_BALANCER = 248748889,
                        PEER_MIGRATION = 491902225,
                        PRIVATE = 403485027,
                        PRIVATE_NAT = 367764517,
                        PRIVATE_RFC_1918 = 254902107,
                        REGIONAL_MANAGED_PROXY = 153049966
                    }

                    /** SubnetworkStackTypes enum. */
                    enum SubnetworkStackTypes {
                        UNDEFINED_SUBNETWORK_STACK_TYPES = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100
                    }

                    /** Unicast enum. */
                    enum Unicast {
                        UNDEFINED_UNICAST = 0,
                        UNICAST_SDN = 379954157,
                        UNICAST_ULL = 379956325
                    }
                }

                /** Properties of a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange. */
                interface INetworkProfileNetworkFeaturesPredefinedSubnetworkRange {

                    /** NetworkProfileNetworkFeaturesPredefinedSubnetworkRange ipv6Range */
                    ipv6Range?: (string|null);

                    /** NetworkProfileNetworkFeaturesPredefinedSubnetworkRange namePrefix */
                    namePrefix?: (string|null);
                }

                /** Represents a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange. */
                class NetworkProfileNetworkFeaturesPredefinedSubnetworkRange implements INetworkProfileNetworkFeaturesPredefinedSubnetworkRange {

                    /**
                     * Constructs a new NetworkProfileNetworkFeaturesPredefinedSubnetworkRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange);

                    /** NetworkProfileNetworkFeaturesPredefinedSubnetworkRange ipv6Range. */
                    public ipv6Range?: (string|null);

                    /** NetworkProfileNetworkFeaturesPredefinedSubnetworkRange namePrefix. */
                    public namePrefix?: (string|null);

                    /**
                     * Creates a new NetworkProfileNetworkFeaturesPredefinedSubnetworkRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfileNetworkFeaturesPredefinedSubnetworkRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange): google.cloud.compute.v1beta.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange;

                    /**
                     * Encodes the specified NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange.verify|verify} messages.
                     * @param message NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange.verify|verify} messages.
                     * @param message NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkProfileNetworkFeaturesPredefinedSubnetworkRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange;

                    /**
                     * Decodes a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange;

                    /**
                     * Verifies a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange;

                    /**
                     * Creates a plain object from a NetworkProfileNetworkFeaturesPredefinedSubnetworkRange message. Also converts values to other types if specified.
                     * @param message NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkProfileNetworkFeaturesPredefinedSubnetworkRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfileNetworkFeaturesPredefinedSubnetworkRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfileNetworkFeaturesPredefinedSubnetworkRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkProfileProfileType. */
                interface INetworkProfileProfileType {

                    /** NetworkProfileProfileType networkType */
                    networkType?: (string|null);

                    /** NetworkProfileProfileType rdmaSubtype */
                    rdmaSubtype?: (string|null);

                    /** NetworkProfileProfileType ullSubtype */
                    ullSubtype?: (string|null);

                    /** NetworkProfileProfileType vpcSubtype */
                    vpcSubtype?: (string|null);
                }

                /** Represents a NetworkProfileProfileType. */
                class NetworkProfileProfileType implements INetworkProfileProfileType {

                    /**
                     * Constructs a new NetworkProfileProfileType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkProfileProfileType);

                    /** NetworkProfileProfileType networkType. */
                    public networkType?: (string|null);

                    /** NetworkProfileProfileType rdmaSubtype. */
                    public rdmaSubtype?: (string|null);

                    /** NetworkProfileProfileType ullSubtype. */
                    public ullSubtype?: (string|null);

                    /** NetworkProfileProfileType vpcSubtype. */
                    public vpcSubtype?: (string|null);

                    /**
                     * Creates a new NetworkProfileProfileType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfileProfileType instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkProfileProfileType): google.cloud.compute.v1beta.NetworkProfileProfileType;

                    /**
                     * Encodes the specified NetworkProfileProfileType message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfileProfileType.verify|verify} messages.
                     * @param message NetworkProfileProfileType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkProfileProfileType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfileProfileType message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfileProfileType.verify|verify} messages.
                     * @param message NetworkProfileProfileType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkProfileProfileType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfileProfileType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfileProfileType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkProfileProfileType;

                    /**
                     * Decodes a NetworkProfileProfileType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfileProfileType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkProfileProfileType;

                    /**
                     * Verifies a NetworkProfileProfileType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfileProfileType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfileProfileType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkProfileProfileType;

                    /**
                     * Creates a plain object from a NetworkProfileProfileType message. Also converts values to other types if specified.
                     * @param message NetworkProfileProfileType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkProfileProfileType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfileProfileType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfileProfileType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkProfileProfileType {

                    /** NetworkType enum. */
                    enum NetworkType {
                        UNDEFINED_NETWORK_TYPE = 0,
                        RDMA = 2510662,
                        ULL = 84117,
                        VPC = 85193
                    }

                    /** RdmaSubtype enum. */
                    enum RdmaSubtype {
                        UNDEFINED_RDMA_SUBTYPE = 0,
                        FALCON = 455787729,
                        ROCE = 2520927,
                        ROCE_METAL = 421218823
                    }

                    /** UllSubtype enum. */
                    enum UllSubtype {
                        UNDEFINED_ULL_SUBTYPE = 0,
                        OPERATOR = 282073252,
                        PARTICIPANT = 236028691
                    }

                    /** VpcSubtype enum. */
                    enum VpcSubtype {
                        UNDEFINED_VPC_SUBTYPE = 0,
                        REGIONAL = 92288543
                    }
                }

                /** Properties of a NetworkProfilesListResponse. */
                interface INetworkProfilesListResponse {

                    /** NetworkProfilesListResponse etag */
                    etag?: (string|null);

                    /** NetworkProfilesListResponse id */
                    id?: (string|null);

                    /** NetworkProfilesListResponse items */
                    items?: (google.cloud.compute.v1beta.INetworkProfile[]|null);

                    /** NetworkProfilesListResponse kind */
                    kind?: (string|null);

                    /** NetworkProfilesListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** NetworkProfilesListResponse selfLink */
                    selfLink?: (string|null);

                    /** NetworkProfilesListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** NetworkProfilesListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NetworkProfilesListResponse. */
                class NetworkProfilesListResponse implements INetworkProfilesListResponse {

                    /**
                     * Constructs a new NetworkProfilesListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkProfilesListResponse);

                    /** NetworkProfilesListResponse etag. */
                    public etag?: (string|null);

                    /** NetworkProfilesListResponse id. */
                    public id?: (string|null);

                    /** NetworkProfilesListResponse items. */
                    public items: google.cloud.compute.v1beta.INetworkProfile[];

                    /** NetworkProfilesListResponse kind. */
                    public kind?: (string|null);

                    /** NetworkProfilesListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NetworkProfilesListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** NetworkProfilesListResponse unreachables. */
                    public unreachables: string[];

                    /** NetworkProfilesListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NetworkProfilesListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkProfilesListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkProfilesListResponse): google.cloud.compute.v1beta.NetworkProfilesListResponse;

                    /**
                     * Encodes the specified NetworkProfilesListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfilesListResponse.verify|verify} messages.
                     * @param message NetworkProfilesListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkProfilesListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkProfilesListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkProfilesListResponse.verify|verify} messages.
                     * @param message NetworkProfilesListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkProfilesListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkProfilesListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkProfilesListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkProfilesListResponse;

                    /**
                     * Decodes a NetworkProfilesListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkProfilesListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkProfilesListResponse;

                    /**
                     * Verifies a NetworkProfilesListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkProfilesListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkProfilesListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkProfilesListResponse;

                    /**
                     * Creates a plain object from a NetworkProfilesListResponse message. Also converts values to other types if specified.
                     * @param message NetworkProfilesListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkProfilesListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkProfilesListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkProfilesListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworkRoutingConfig. */
                interface INetworkRoutingConfig {

                    /** NetworkRoutingConfig bgpAlwaysCompareMed */
                    bgpAlwaysCompareMed?: (boolean|null);

                    /** NetworkRoutingConfig bgpBestPathSelectionMode */
                    bgpBestPathSelectionMode?: (string|null);

                    /** NetworkRoutingConfig bgpInterRegionCost */
                    bgpInterRegionCost?: (string|null);

                    /** NetworkRoutingConfig effectiveBgpAlwaysCompareMed */
                    effectiveBgpAlwaysCompareMed?: (boolean|null);

                    /** NetworkRoutingConfig effectiveBgpInterRegionCost */
                    effectiveBgpInterRegionCost?: (string|null);

                    /** NetworkRoutingConfig routingMode */
                    routingMode?: (string|null);
                }

                /** Represents a NetworkRoutingConfig. */
                class NetworkRoutingConfig implements INetworkRoutingConfig {

                    /**
                     * Constructs a new NetworkRoutingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworkRoutingConfig);

                    /** NetworkRoutingConfig bgpAlwaysCompareMed. */
                    public bgpAlwaysCompareMed?: (boolean|null);

                    /** NetworkRoutingConfig bgpBestPathSelectionMode. */
                    public bgpBestPathSelectionMode?: (string|null);

                    /** NetworkRoutingConfig bgpInterRegionCost. */
                    public bgpInterRegionCost?: (string|null);

                    /** NetworkRoutingConfig effectiveBgpAlwaysCompareMed. */
                    public effectiveBgpAlwaysCompareMed?: (boolean|null);

                    /** NetworkRoutingConfig effectiveBgpInterRegionCost. */
                    public effectiveBgpInterRegionCost?: (string|null);

                    /** NetworkRoutingConfig routingMode. */
                    public routingMode?: (string|null);

                    /**
                     * Creates a new NetworkRoutingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworkRoutingConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworkRoutingConfig): google.cloud.compute.v1beta.NetworkRoutingConfig;

                    /**
                     * Encodes the specified NetworkRoutingConfig message. Does not implicitly {@link google.cloud.compute.v1beta.NetworkRoutingConfig.verify|verify} messages.
                     * @param message NetworkRoutingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworkRoutingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworkRoutingConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworkRoutingConfig.verify|verify} messages.
                     * @param message NetworkRoutingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworkRoutingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworkRoutingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworkRoutingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworkRoutingConfig;

                    /**
                     * Decodes a NetworkRoutingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworkRoutingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworkRoutingConfig;

                    /**
                     * Verifies a NetworkRoutingConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworkRoutingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworkRoutingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworkRoutingConfig;

                    /**
                     * Creates a plain object from a NetworkRoutingConfig message. Also converts values to other types if specified.
                     * @param message NetworkRoutingConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworkRoutingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworkRoutingConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworkRoutingConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworkRoutingConfig {

                    /** BgpBestPathSelectionMode enum. */
                    enum BgpBestPathSelectionMode {
                        UNDEFINED_BGP_BEST_PATH_SELECTION_MODE = 0,
                        LEGACY = 94234569,
                        STANDARD = 484642493
                    }

                    /** BgpInterRegionCost enum. */
                    enum BgpInterRegionCost {
                        UNDEFINED_BGP_INTER_REGION_COST = 0,
                        ADD_COST_TO_MED = 490583004,
                        DEFAULT = 115302945
                    }

                    /** EffectiveBgpInterRegionCost enum. */
                    enum EffectiveBgpInterRegionCost {
                        UNDEFINED_EFFECTIVE_BGP_INTER_REGION_COST = 0
                    }

                    /** RoutingMode enum. */
                    enum RoutingMode {
                        UNDEFINED_ROUTING_MODE = 0,
                        GLOBAL = 494663587,
                        REGIONAL = 92288543
                    }
                }

                /** Properties of a NetworksAddPeeringRequest. */
                interface INetworksAddPeeringRequest {

                    /** NetworksAddPeeringRequest autoCreateRoutes */
                    autoCreateRoutes?: (boolean|null);

                    /** NetworksAddPeeringRequest name */
                    name?: (string|null);

                    /** NetworksAddPeeringRequest networkPeering */
                    networkPeering?: (google.cloud.compute.v1beta.INetworkPeering|null);

                    /** NetworksAddPeeringRequest peerNetwork */
                    peerNetwork?: (string|null);
                }

                /** Represents a NetworksAddPeeringRequest. */
                class NetworksAddPeeringRequest implements INetworksAddPeeringRequest {

                    /**
                     * Constructs a new NetworksAddPeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworksAddPeeringRequest);

                    /** NetworksAddPeeringRequest autoCreateRoutes. */
                    public autoCreateRoutes?: (boolean|null);

                    /** NetworksAddPeeringRequest name. */
                    public name?: (string|null);

                    /** NetworksAddPeeringRequest networkPeering. */
                    public networkPeering?: (google.cloud.compute.v1beta.INetworkPeering|null);

                    /** NetworksAddPeeringRequest peerNetwork. */
                    public peerNetwork?: (string|null);

                    /**
                     * Creates a new NetworksAddPeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksAddPeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworksAddPeeringRequest): google.cloud.compute.v1beta.NetworksAddPeeringRequest;

                    /**
                     * Encodes the specified NetworksAddPeeringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NetworksAddPeeringRequest.verify|verify} messages.
                     * @param message NetworksAddPeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworksAddPeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksAddPeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworksAddPeeringRequest.verify|verify} messages.
                     * @param message NetworksAddPeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworksAddPeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksAddPeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksAddPeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworksAddPeeringRequest;

                    /**
                     * Decodes a NetworksAddPeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksAddPeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworksAddPeeringRequest;

                    /**
                     * Verifies a NetworksAddPeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksAddPeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksAddPeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworksAddPeeringRequest;

                    /**
                     * Creates a plain object from a NetworksAddPeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksAddPeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworksAddPeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksAddPeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksAddPeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksCancelRequestRemovePeeringRequest. */
                interface INetworksCancelRequestRemovePeeringRequest {

                    /** NetworksCancelRequestRemovePeeringRequest name */
                    name?: (string|null);
                }

                /** Represents a NetworksCancelRequestRemovePeeringRequest. */
                class NetworksCancelRequestRemovePeeringRequest implements INetworksCancelRequestRemovePeeringRequest {

                    /**
                     * Constructs a new NetworksCancelRequestRemovePeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworksCancelRequestRemovePeeringRequest);

                    /** NetworksCancelRequestRemovePeeringRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new NetworksCancelRequestRemovePeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksCancelRequestRemovePeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworksCancelRequestRemovePeeringRequest): google.cloud.compute.v1beta.NetworksCancelRequestRemovePeeringRequest;

                    /**
                     * Encodes the specified NetworksCancelRequestRemovePeeringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NetworksCancelRequestRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksCancelRequestRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworksCancelRequestRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksCancelRequestRemovePeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworksCancelRequestRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksCancelRequestRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworksCancelRequestRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksCancelRequestRemovePeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksCancelRequestRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworksCancelRequestRemovePeeringRequest;

                    /**
                     * Decodes a NetworksCancelRequestRemovePeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksCancelRequestRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworksCancelRequestRemovePeeringRequest;

                    /**
                     * Verifies a NetworksCancelRequestRemovePeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksCancelRequestRemovePeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksCancelRequestRemovePeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworksCancelRequestRemovePeeringRequest;

                    /**
                     * Creates a plain object from a NetworksCancelRequestRemovePeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksCancelRequestRemovePeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworksCancelRequestRemovePeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksCancelRequestRemovePeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksCancelRequestRemovePeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksGetEffectiveFirewallsResponse. */
                interface INetworksGetEffectiveFirewallsResponse {

                    /** NetworksGetEffectiveFirewallsResponse firewallPolicys */
                    firewallPolicys?: (google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy[]|null);

                    /** NetworksGetEffectiveFirewallsResponse firewalls */
                    firewalls?: (google.cloud.compute.v1beta.IFirewall[]|null);

                    /** NetworksGetEffectiveFirewallsResponse organizationFirewalls */
                    organizationFirewalls?: (google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy[]|null);
                }

                /** Represents a NetworksGetEffectiveFirewallsResponse. */
                class NetworksGetEffectiveFirewallsResponse implements INetworksGetEffectiveFirewallsResponse {

                    /**
                     * Constructs a new NetworksGetEffectiveFirewallsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponse);

                    /** NetworksGetEffectiveFirewallsResponse firewallPolicys. */
                    public firewallPolicys: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy[];

                    /** NetworksGetEffectiveFirewallsResponse firewalls. */
                    public firewalls: google.cloud.compute.v1beta.IFirewall[];

                    /** NetworksGetEffectiveFirewallsResponse organizationFirewalls. */
                    public organizationFirewalls: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy[];

                    /**
                     * Creates a new NetworksGetEffectiveFirewallsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksGetEffectiveFirewallsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponse): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse;

                    /**
                     * Verifies a NetworksGetEffectiveFirewallsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksGetEffectiveFirewallsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksGetEffectiveFirewallsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse;

                    /**
                     * Creates a plain object from a NetworksGetEffectiveFirewallsResponse message. Also converts values to other types if specified.
                     * @param message NetworksGetEffectiveFirewallsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksGetEffectiveFirewallsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksGetEffectiveFirewallsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                interface INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName */
                    displayName?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy name */
                    name?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules */
                    packetMirroringRules?: (google.cloud.compute.v1beta.IFirewallPolicyRule[]|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority */
                    priority?: (number|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules */
                    rules?: (google.cloud.compute.v1beta.IFirewallPolicyRule[]|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy shortName */
                    shortName?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy type */
                    type?: (string|null);
                }

                /** Represents a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy implements INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /**
                     * Constructs a new NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName. */
                    public displayName?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy name. */
                    public name?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules. */
                    public packetMirroringRules: google.cloud.compute.v1beta.IFirewallPolicyRule[];

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority. */
                    public priority?: (number|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules. */
                    public rules: google.cloud.compute.v1beta.IFirewallPolicyRule[];

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy shortName. */
                    public shortName?: (string|null);

                    /** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Verifies a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Creates a plain object from a NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Also converts values to other types if specified.
                     * @param message NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HIERARCHY = 69902869,
                        NETWORK = 413984270,
                        SYSTEM = 313484847,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy. */
                interface INetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy {

                    /** NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy id */
                    id?: (number|Long|string|null);

                    /** NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy rules */
                    rules?: (google.cloud.compute.v1beta.ISecurityPolicyRule[]|null);
                }

                /** Represents a NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy. */
                class NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy implements INetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy {

                    /**
                     * Constructs a new NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy);

                    /** NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy id. */
                    public id?: (number|Long|string|null);

                    /** NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy rules. */
                    public rules: google.cloud.compute.v1beta.ISecurityPolicyRule[];

                    /**
                     * Creates a new NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy.verify|verify} messages.
                     * @param message NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy;

                    /**
                     * Decodes a NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy;

                    /**
                     * Verifies a NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy;

                    /**
                     * Creates a plain object from a NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy message. Also converts values to other types if specified.
                     * @param message NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksRemovePeeringRequest. */
                interface INetworksRemovePeeringRequest {

                    /** NetworksRemovePeeringRequest name */
                    name?: (string|null);
                }

                /** Represents a NetworksRemovePeeringRequest. */
                class NetworksRemovePeeringRequest implements INetworksRemovePeeringRequest {

                    /**
                     * Constructs a new NetworksRemovePeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworksRemovePeeringRequest);

                    /** NetworksRemovePeeringRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new NetworksRemovePeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksRemovePeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworksRemovePeeringRequest): google.cloud.compute.v1beta.NetworksRemovePeeringRequest;

                    /**
                     * Encodes the specified NetworksRemovePeeringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NetworksRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworksRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksRemovePeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworksRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworksRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksRemovePeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworksRemovePeeringRequest;

                    /**
                     * Decodes a NetworksRemovePeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworksRemovePeeringRequest;

                    /**
                     * Verifies a NetworksRemovePeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksRemovePeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksRemovePeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworksRemovePeeringRequest;

                    /**
                     * Creates a plain object from a NetworksRemovePeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksRemovePeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworksRemovePeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksRemovePeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksRemovePeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksRequestRemovePeeringRequest. */
                interface INetworksRequestRemovePeeringRequest {

                    /** NetworksRequestRemovePeeringRequest name */
                    name?: (string|null);
                }

                /** Represents a NetworksRequestRemovePeeringRequest. */
                class NetworksRequestRemovePeeringRequest implements INetworksRequestRemovePeeringRequest {

                    /**
                     * Constructs a new NetworksRequestRemovePeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworksRequestRemovePeeringRequest);

                    /** NetworksRequestRemovePeeringRequest name. */
                    public name?: (string|null);

                    /**
                     * Creates a new NetworksRequestRemovePeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksRequestRemovePeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworksRequestRemovePeeringRequest): google.cloud.compute.v1beta.NetworksRequestRemovePeeringRequest;

                    /**
                     * Encodes the specified NetworksRequestRemovePeeringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NetworksRequestRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksRequestRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworksRequestRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksRequestRemovePeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworksRequestRemovePeeringRequest.verify|verify} messages.
                     * @param message NetworksRequestRemovePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworksRequestRemovePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksRequestRemovePeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksRequestRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworksRequestRemovePeeringRequest;

                    /**
                     * Decodes a NetworksRequestRemovePeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksRequestRemovePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworksRequestRemovePeeringRequest;

                    /**
                     * Verifies a NetworksRequestRemovePeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksRequestRemovePeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksRequestRemovePeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworksRequestRemovePeeringRequest;

                    /**
                     * Creates a plain object from a NetworksRequestRemovePeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksRequestRemovePeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworksRequestRemovePeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksRequestRemovePeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksRequestRemovePeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NetworksUpdatePeeringRequest. */
                interface INetworksUpdatePeeringRequest {

                    /** NetworksUpdatePeeringRequest networkPeering */
                    networkPeering?: (google.cloud.compute.v1beta.INetworkPeering|null);
                }

                /** Represents a NetworksUpdatePeeringRequest. */
                class NetworksUpdatePeeringRequest implements INetworksUpdatePeeringRequest {

                    /**
                     * Constructs a new NetworksUpdatePeeringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INetworksUpdatePeeringRequest);

                    /** NetworksUpdatePeeringRequest networkPeering. */
                    public networkPeering?: (google.cloud.compute.v1beta.INetworkPeering|null);

                    /**
                     * Creates a new NetworksUpdatePeeringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NetworksUpdatePeeringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INetworksUpdatePeeringRequest): google.cloud.compute.v1beta.NetworksUpdatePeeringRequest;

                    /**
                     * Encodes the specified NetworksUpdatePeeringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NetworksUpdatePeeringRequest.verify|verify} messages.
                     * @param message NetworksUpdatePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INetworksUpdatePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NetworksUpdatePeeringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NetworksUpdatePeeringRequest.verify|verify} messages.
                     * @param message NetworksUpdatePeeringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INetworksUpdatePeeringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NetworksUpdatePeeringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NetworksUpdatePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NetworksUpdatePeeringRequest;

                    /**
                     * Decodes a NetworksUpdatePeeringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NetworksUpdatePeeringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NetworksUpdatePeeringRequest;

                    /**
                     * Verifies a NetworksUpdatePeeringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NetworksUpdatePeeringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NetworksUpdatePeeringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NetworksUpdatePeeringRequest;

                    /**
                     * Creates a plain object from a NetworksUpdatePeeringRequest message. Also converts values to other types if specified.
                     * @param message NetworksUpdatePeeringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NetworksUpdatePeeringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NetworksUpdatePeeringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NetworksUpdatePeeringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroup. */
                interface INodeGroup {

                    /** NodeGroup autoscalingPolicy */
                    autoscalingPolicy?: (google.cloud.compute.v1beta.INodeGroupAutoscalingPolicy|null);

                    /** NodeGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NodeGroup description */
                    description?: (string|null);

                    /** NodeGroup fingerprint */
                    fingerprint?: (string|null);

                    /** NodeGroup id */
                    id?: (number|Long|string|null);

                    /** NodeGroup kind */
                    kind?: (string|null);

                    /** NodeGroup locationHint */
                    locationHint?: (string|null);

                    /** NodeGroup maintenanceInterval */
                    maintenanceInterval?: (string|null);

                    /** NodeGroup maintenancePolicy */
                    maintenancePolicy?: (string|null);

                    /** NodeGroup maintenanceWindow */
                    maintenanceWindow?: (google.cloud.compute.v1beta.INodeGroupMaintenanceWindow|null);

                    /** NodeGroup name */
                    name?: (string|null);

                    /** NodeGroup nodeTemplate */
                    nodeTemplate?: (string|null);

                    /** NodeGroup selfLink */
                    selfLink?: (string|null);

                    /** NodeGroup shareSettings */
                    shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** NodeGroup size */
                    size?: (number|null);

                    /** NodeGroup status */
                    status?: (string|null);

                    /** NodeGroup zone */
                    zone?: (string|null);
                }

                /** Represents a NodeGroup. */
                class NodeGroup implements INodeGroup {

                    /**
                     * Constructs a new NodeGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroup);

                    /** NodeGroup autoscalingPolicy. */
                    public autoscalingPolicy?: (google.cloud.compute.v1beta.INodeGroupAutoscalingPolicy|null);

                    /** NodeGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NodeGroup description. */
                    public description?: (string|null);

                    /** NodeGroup fingerprint. */
                    public fingerprint?: (string|null);

                    /** NodeGroup id. */
                    public id?: (number|Long|string|null);

                    /** NodeGroup kind. */
                    public kind?: (string|null);

                    /** NodeGroup locationHint. */
                    public locationHint?: (string|null);

                    /** NodeGroup maintenanceInterval. */
                    public maintenanceInterval?: (string|null);

                    /** NodeGroup maintenancePolicy. */
                    public maintenancePolicy?: (string|null);

                    /** NodeGroup maintenanceWindow. */
                    public maintenanceWindow?: (google.cloud.compute.v1beta.INodeGroupMaintenanceWindow|null);

                    /** NodeGroup name. */
                    public name?: (string|null);

                    /** NodeGroup nodeTemplate. */
                    public nodeTemplate?: (string|null);

                    /** NodeGroup selfLink. */
                    public selfLink?: (string|null);

                    /** NodeGroup shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** NodeGroup size. */
                    public size?: (number|null);

                    /** NodeGroup status. */
                    public status?: (string|null);

                    /** NodeGroup zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NodeGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroup): google.cloud.compute.v1beta.NodeGroup;

                    /**
                     * Encodes the specified NodeGroup message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroup.verify|verify} messages.
                     * @param message NodeGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroup.verify|verify} messages.
                     * @param message NodeGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroup;

                    /**
                     * Decodes a NodeGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroup;

                    /**
                     * Verifies a NodeGroup message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroup;

                    /**
                     * Creates a plain object from a NodeGroup message. Also converts values to other types if specified.
                     * @param message NodeGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeGroup {

                    /** MaintenanceInterval enum. */
                    enum MaintenanceInterval {
                        UNDEFINED_MAINTENANCE_INTERVAL = 0,
                        AS_NEEDED = 500724834,
                        PERIODIC = 142804635,
                        RECURRENT = 194244550
                    }

                    /** MaintenancePolicy enum. */
                    enum MaintenancePolicy {
                        UNDEFINED_MAINTENANCE_POLICY = 0,
                        DEFAULT = 115302945,
                        MAINTENANCE_POLICY_UNSPECIFIED = 72964182,
                        MIGRATE_WITHIN_NODE_GROUP = 153483394,
                        RESTART_IN_PLACE = 228647325
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a NodeGroupAggregatedList. */
                interface INodeGroupAggregatedList {

                    /** NodeGroupAggregatedList id */
                    id?: (string|null);

                    /** NodeGroupAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.INodeGroupsScopedList }|null);

                    /** NodeGroupAggregatedList kind */
                    kind?: (string|null);

                    /** NodeGroupAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeGroupAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NodeGroupAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NodeGroupAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeGroupAggregatedList. */
                class NodeGroupAggregatedList implements INodeGroupAggregatedList {

                    /**
                     * Constructs a new NodeGroupAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupAggregatedList);

                    /** NodeGroupAggregatedList id. */
                    public id?: (string|null);

                    /** NodeGroupAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.INodeGroupsScopedList };

                    /** NodeGroupAggregatedList kind. */
                    public kind?: (string|null);

                    /** NodeGroupAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeGroupAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeGroupAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NodeGroupAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeGroupAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupAggregatedList): google.cloud.compute.v1beta.NodeGroupAggregatedList;

                    /**
                     * Encodes the specified NodeGroupAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupAggregatedList.verify|verify} messages.
                     * @param message NodeGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupAggregatedList.verify|verify} messages.
                     * @param message NodeGroupAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupAggregatedList;

                    /**
                     * Decodes a NodeGroupAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupAggregatedList;

                    /**
                     * Verifies a NodeGroupAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupAggregatedList;

                    /**
                     * Creates a plain object from a NodeGroupAggregatedList message. Also converts values to other types if specified.
                     * @param message NodeGroupAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupAutoscalingPolicy. */
                interface INodeGroupAutoscalingPolicy {

                    /** NodeGroupAutoscalingPolicy maxNodes */
                    maxNodes?: (number|null);

                    /** NodeGroupAutoscalingPolicy minNodes */
                    minNodes?: (number|null);

                    /** NodeGroupAutoscalingPolicy mode */
                    mode?: (string|null);
                }

                /** Represents a NodeGroupAutoscalingPolicy. */
                class NodeGroupAutoscalingPolicy implements INodeGroupAutoscalingPolicy {

                    /**
                     * Constructs a new NodeGroupAutoscalingPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupAutoscalingPolicy);

                    /** NodeGroupAutoscalingPolicy maxNodes. */
                    public maxNodes?: (number|null);

                    /** NodeGroupAutoscalingPolicy minNodes. */
                    public minNodes?: (number|null);

                    /** NodeGroupAutoscalingPolicy mode. */
                    public mode?: (string|null);

                    /**
                     * Creates a new NodeGroupAutoscalingPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupAutoscalingPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupAutoscalingPolicy): google.cloud.compute.v1beta.NodeGroupAutoscalingPolicy;

                    /**
                     * Encodes the specified NodeGroupAutoscalingPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupAutoscalingPolicy.verify|verify} messages.
                     * @param message NodeGroupAutoscalingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupAutoscalingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupAutoscalingPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupAutoscalingPolicy.verify|verify} messages.
                     * @param message NodeGroupAutoscalingPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupAutoscalingPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupAutoscalingPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupAutoscalingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupAutoscalingPolicy;

                    /**
                     * Decodes a NodeGroupAutoscalingPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupAutoscalingPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupAutoscalingPolicy;

                    /**
                     * Verifies a NodeGroupAutoscalingPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupAutoscalingPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupAutoscalingPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupAutoscalingPolicy;

                    /**
                     * Creates a plain object from a NodeGroupAutoscalingPolicy message. Also converts values to other types if specified.
                     * @param message NodeGroupAutoscalingPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupAutoscalingPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupAutoscalingPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupAutoscalingPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeGroupAutoscalingPolicy {

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        MODE_UNSPECIFIED = 371348091,
                        OFF = 78159,
                        ON = 2527,
                        ONLY_SCALE_OUT = 152713670
                    }
                }

                /** Properties of a NodeGroupList. */
                interface INodeGroupList {

                    /** NodeGroupList id */
                    id?: (string|null);

                    /** NodeGroupList items */
                    items?: (google.cloud.compute.v1beta.INodeGroup[]|null);

                    /** NodeGroupList kind */
                    kind?: (string|null);

                    /** NodeGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeGroupList selfLink */
                    selfLink?: (string|null);

                    /** NodeGroupList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeGroupList. */
                class NodeGroupList implements INodeGroupList {

                    /**
                     * Constructs a new NodeGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupList);

                    /** NodeGroupList id. */
                    public id?: (string|null);

                    /** NodeGroupList items. */
                    public items: google.cloud.compute.v1beta.INodeGroup[];

                    /** NodeGroupList kind. */
                    public kind?: (string|null);

                    /** NodeGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeGroupList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupList): google.cloud.compute.v1beta.NodeGroupList;

                    /**
                     * Encodes the specified NodeGroupList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupList.verify|verify} messages.
                     * @param message NodeGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupList.verify|verify} messages.
                     * @param message NodeGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupList;

                    /**
                     * Decodes a NodeGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupList;

                    /**
                     * Verifies a NodeGroupList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupList;

                    /**
                     * Creates a plain object from a NodeGroupList message. Also converts values to other types if specified.
                     * @param message NodeGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupMaintenanceWindow. */
                interface INodeGroupMaintenanceWindow {

                    /** NodeGroupMaintenanceWindow maintenanceDuration */
                    maintenanceDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** NodeGroupMaintenanceWindow startTime */
                    startTime?: (string|null);
                }

                /** Represents a NodeGroupMaintenanceWindow. */
                class NodeGroupMaintenanceWindow implements INodeGroupMaintenanceWindow {

                    /**
                     * Constructs a new NodeGroupMaintenanceWindow.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupMaintenanceWindow);

                    /** NodeGroupMaintenanceWindow maintenanceDuration. */
                    public maintenanceDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** NodeGroupMaintenanceWindow startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new NodeGroupMaintenanceWindow instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupMaintenanceWindow instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupMaintenanceWindow): google.cloud.compute.v1beta.NodeGroupMaintenanceWindow;

                    /**
                     * Encodes the specified NodeGroupMaintenanceWindow message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupMaintenanceWindow.verify|verify} messages.
                     * @param message NodeGroupMaintenanceWindow message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupMaintenanceWindow message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupMaintenanceWindow.verify|verify} messages.
                     * @param message NodeGroupMaintenanceWindow message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupMaintenanceWindow, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupMaintenanceWindow message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupMaintenanceWindow
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupMaintenanceWindow;

                    /**
                     * Decodes a NodeGroupMaintenanceWindow message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupMaintenanceWindow
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupMaintenanceWindow;

                    /**
                     * Verifies a NodeGroupMaintenanceWindow message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupMaintenanceWindow message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupMaintenanceWindow
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupMaintenanceWindow;

                    /**
                     * Creates a plain object from a NodeGroupMaintenanceWindow message. Also converts values to other types if specified.
                     * @param message NodeGroupMaintenanceWindow
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupMaintenanceWindow, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupMaintenanceWindow to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupMaintenanceWindow
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupNode. */
                interface INodeGroupNode {

                    /** NodeGroupNode accelerators */
                    accelerators?: (google.cloud.compute.v1beta.IAcceleratorConfig[]|null);

                    /** NodeGroupNode consumedResources */
                    consumedResources?: (google.cloud.compute.v1beta.IInstanceConsumptionInfo|null);

                    /** NodeGroupNode cpuOvercommitType */
                    cpuOvercommitType?: (string|null);

                    /** NodeGroupNode disks */
                    disks?: (google.cloud.compute.v1beta.ILocalDisk[]|null);

                    /** NodeGroupNode instanceConsumptionData */
                    instanceConsumptionData?: (google.cloud.compute.v1beta.IInstanceConsumptionData[]|null);

                    /** NodeGroupNode instances */
                    instances?: (string[]|null);

                    /** NodeGroupNode name */
                    name?: (string|null);

                    /** NodeGroupNode nodeType */
                    nodeType?: (string|null);

                    /** NodeGroupNode satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** NodeGroupNode serverBinding */
                    serverBinding?: (google.cloud.compute.v1beta.IServerBinding|null);

                    /** NodeGroupNode serverId */
                    serverId?: (string|null);

                    /** NodeGroupNode status */
                    status?: (string|null);

                    /** NodeGroupNode totalResources */
                    totalResources?: (google.cloud.compute.v1beta.IInstanceConsumptionInfo|null);

                    /** NodeGroupNode upcomingMaintenance */
                    upcomingMaintenance?: (google.cloud.compute.v1beta.IUpcomingMaintenance|null);
                }

                /** Represents a NodeGroupNode. */
                class NodeGroupNode implements INodeGroupNode {

                    /**
                     * Constructs a new NodeGroupNode.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupNode);

                    /** NodeGroupNode accelerators. */
                    public accelerators: google.cloud.compute.v1beta.IAcceleratorConfig[];

                    /** NodeGroupNode consumedResources. */
                    public consumedResources?: (google.cloud.compute.v1beta.IInstanceConsumptionInfo|null);

                    /** NodeGroupNode cpuOvercommitType. */
                    public cpuOvercommitType?: (string|null);

                    /** NodeGroupNode disks. */
                    public disks: google.cloud.compute.v1beta.ILocalDisk[];

                    /** NodeGroupNode instanceConsumptionData. */
                    public instanceConsumptionData: google.cloud.compute.v1beta.IInstanceConsumptionData[];

                    /** NodeGroupNode instances. */
                    public instances: string[];

                    /** NodeGroupNode name. */
                    public name?: (string|null);

                    /** NodeGroupNode nodeType. */
                    public nodeType?: (string|null);

                    /** NodeGroupNode satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** NodeGroupNode serverBinding. */
                    public serverBinding?: (google.cloud.compute.v1beta.IServerBinding|null);

                    /** NodeGroupNode serverId. */
                    public serverId?: (string|null);

                    /** NodeGroupNode status. */
                    public status?: (string|null);

                    /** NodeGroupNode totalResources. */
                    public totalResources?: (google.cloud.compute.v1beta.IInstanceConsumptionInfo|null);

                    /** NodeGroupNode upcomingMaintenance. */
                    public upcomingMaintenance?: (google.cloud.compute.v1beta.IUpcomingMaintenance|null);

                    /**
                     * Creates a new NodeGroupNode instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupNode instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupNode): google.cloud.compute.v1beta.NodeGroupNode;

                    /**
                     * Encodes the specified NodeGroupNode message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupNode.verify|verify} messages.
                     * @param message NodeGroupNode message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupNode, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupNode message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupNode.verify|verify} messages.
                     * @param message NodeGroupNode message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupNode, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupNode message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupNode
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupNode;

                    /**
                     * Decodes a NodeGroupNode message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupNode
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupNode;

                    /**
                     * Verifies a NodeGroupNode message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupNode message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupNode
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupNode;

                    /**
                     * Creates a plain object from a NodeGroupNode message. Also converts values to other types if specified.
                     * @param message NodeGroupNode
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupNode, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupNode to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupNode
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeGroupNode {

                    /** CpuOvercommitType enum. */
                    enum CpuOvercommitType {
                        UNDEFINED_CPU_OVERCOMMIT_TYPE = 0,
                        CPU_OVERCOMMIT_TYPE_UNSPECIFIED = 520665615,
                        ENABLED = 182130465,
                        NONE = 2402104
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963,
                        REPAIRING = 413483285
                    }
                }

                /** Properties of a NodeGroupsAddNodesRequest. */
                interface INodeGroupsAddNodesRequest {

                    /** NodeGroupsAddNodesRequest additionalNodeCount */
                    additionalNodeCount?: (number|null);
                }

                /** Represents a NodeGroupsAddNodesRequest. */
                class NodeGroupsAddNodesRequest implements INodeGroupsAddNodesRequest {

                    /**
                     * Constructs a new NodeGroupsAddNodesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupsAddNodesRequest);

                    /** NodeGroupsAddNodesRequest additionalNodeCount. */
                    public additionalNodeCount?: (number|null);

                    /**
                     * Creates a new NodeGroupsAddNodesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsAddNodesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupsAddNodesRequest): google.cloud.compute.v1beta.NodeGroupsAddNodesRequest;

                    /**
                     * Encodes the specified NodeGroupsAddNodesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsAddNodesRequest.verify|verify} messages.
                     * @param message NodeGroupsAddNodesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupsAddNodesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsAddNodesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsAddNodesRequest.verify|verify} messages.
                     * @param message NodeGroupsAddNodesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupsAddNodesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsAddNodesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsAddNodesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupsAddNodesRequest;

                    /**
                     * Decodes a NodeGroupsAddNodesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsAddNodesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupsAddNodesRequest;

                    /**
                     * Verifies a NodeGroupsAddNodesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsAddNodesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsAddNodesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupsAddNodesRequest;

                    /**
                     * Creates a plain object from a NodeGroupsAddNodesRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsAddNodesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupsAddNodesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsAddNodesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsAddNodesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsDeleteNodesRequest. */
                interface INodeGroupsDeleteNodesRequest {

                    /** NodeGroupsDeleteNodesRequest nodes */
                    nodes?: (string[]|null);
                }

                /** Represents a NodeGroupsDeleteNodesRequest. */
                class NodeGroupsDeleteNodesRequest implements INodeGroupsDeleteNodesRequest {

                    /**
                     * Constructs a new NodeGroupsDeleteNodesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupsDeleteNodesRequest);

                    /** NodeGroupsDeleteNodesRequest nodes. */
                    public nodes: string[];

                    /**
                     * Creates a new NodeGroupsDeleteNodesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsDeleteNodesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupsDeleteNodesRequest): google.cloud.compute.v1beta.NodeGroupsDeleteNodesRequest;

                    /**
                     * Encodes the specified NodeGroupsDeleteNodesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsDeleteNodesRequest.verify|verify} messages.
                     * @param message NodeGroupsDeleteNodesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupsDeleteNodesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsDeleteNodesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsDeleteNodesRequest.verify|verify} messages.
                     * @param message NodeGroupsDeleteNodesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupsDeleteNodesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsDeleteNodesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsDeleteNodesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupsDeleteNodesRequest;

                    /**
                     * Decodes a NodeGroupsDeleteNodesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsDeleteNodesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupsDeleteNodesRequest;

                    /**
                     * Verifies a NodeGroupsDeleteNodesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsDeleteNodesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsDeleteNodesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupsDeleteNodesRequest;

                    /**
                     * Creates a plain object from a NodeGroupsDeleteNodesRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsDeleteNodesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupsDeleteNodesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsDeleteNodesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsDeleteNodesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsListNodes. */
                interface INodeGroupsListNodes {

                    /** NodeGroupsListNodes id */
                    id?: (string|null);

                    /** NodeGroupsListNodes items */
                    items?: (google.cloud.compute.v1beta.INodeGroupNode[]|null);

                    /** NodeGroupsListNodes kind */
                    kind?: (string|null);

                    /** NodeGroupsListNodes nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeGroupsListNodes selfLink */
                    selfLink?: (string|null);

                    /** NodeGroupsListNodes warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeGroupsListNodes. */
                class NodeGroupsListNodes implements INodeGroupsListNodes {

                    /**
                     * Constructs a new NodeGroupsListNodes.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupsListNodes);

                    /** NodeGroupsListNodes id. */
                    public id?: (string|null);

                    /** NodeGroupsListNodes items. */
                    public items: google.cloud.compute.v1beta.INodeGroupNode[];

                    /** NodeGroupsListNodes kind. */
                    public kind?: (string|null);

                    /** NodeGroupsListNodes nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeGroupsListNodes selfLink. */
                    public selfLink?: (string|null);

                    /** NodeGroupsListNodes warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeGroupsListNodes instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsListNodes instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupsListNodes): google.cloud.compute.v1beta.NodeGroupsListNodes;

                    /**
                     * Encodes the specified NodeGroupsListNodes message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsListNodes.verify|verify} messages.
                     * @param message NodeGroupsListNodes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupsListNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsListNodes message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsListNodes.verify|verify} messages.
                     * @param message NodeGroupsListNodes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupsListNodes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsListNodes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsListNodes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupsListNodes;

                    /**
                     * Decodes a NodeGroupsListNodes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsListNodes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupsListNodes;

                    /**
                     * Verifies a NodeGroupsListNodes message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsListNodes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsListNodes
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupsListNodes;

                    /**
                     * Creates a plain object from a NodeGroupsListNodes message. Also converts values to other types if specified.
                     * @param message NodeGroupsListNodes
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupsListNodes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsListNodes to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsListNodes
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsPerformMaintenanceRequest. */
                interface INodeGroupsPerformMaintenanceRequest {

                    /** NodeGroupsPerformMaintenanceRequest nodes */
                    nodes?: (string[]|null);

                    /** NodeGroupsPerformMaintenanceRequest startTime */
                    startTime?: (string|null);
                }

                /** Represents a NodeGroupsPerformMaintenanceRequest. */
                class NodeGroupsPerformMaintenanceRequest implements INodeGroupsPerformMaintenanceRequest {

                    /**
                     * Constructs a new NodeGroupsPerformMaintenanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupsPerformMaintenanceRequest);

                    /** NodeGroupsPerformMaintenanceRequest nodes. */
                    public nodes: string[];

                    /** NodeGroupsPerformMaintenanceRequest startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new NodeGroupsPerformMaintenanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsPerformMaintenanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupsPerformMaintenanceRequest): google.cloud.compute.v1beta.NodeGroupsPerformMaintenanceRequest;

                    /**
                     * Encodes the specified NodeGroupsPerformMaintenanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsPerformMaintenanceRequest.verify|verify} messages.
                     * @param message NodeGroupsPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupsPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsPerformMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsPerformMaintenanceRequest.verify|verify} messages.
                     * @param message NodeGroupsPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupsPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsPerformMaintenanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupsPerformMaintenanceRequest;

                    /**
                     * Decodes a NodeGroupsPerformMaintenanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupsPerformMaintenanceRequest;

                    /**
                     * Verifies a NodeGroupsPerformMaintenanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsPerformMaintenanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsPerformMaintenanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupsPerformMaintenanceRequest;

                    /**
                     * Creates a plain object from a NodeGroupsPerformMaintenanceRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsPerformMaintenanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupsPerformMaintenanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsPerformMaintenanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsPerformMaintenanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsScopedList. */
                interface INodeGroupsScopedList {

                    /** NodeGroupsScopedList nodeGroups */
                    nodeGroups?: (google.cloud.compute.v1beta.INodeGroup[]|null);

                    /** NodeGroupsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeGroupsScopedList. */
                class NodeGroupsScopedList implements INodeGroupsScopedList {

                    /**
                     * Constructs a new NodeGroupsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupsScopedList);

                    /** NodeGroupsScopedList nodeGroups. */
                    public nodeGroups: google.cloud.compute.v1beta.INodeGroup[];

                    /** NodeGroupsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeGroupsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupsScopedList): google.cloud.compute.v1beta.NodeGroupsScopedList;

                    /**
                     * Encodes the specified NodeGroupsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsScopedList.verify|verify} messages.
                     * @param message NodeGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsScopedList.verify|verify} messages.
                     * @param message NodeGroupsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupsScopedList;

                    /**
                     * Decodes a NodeGroupsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupsScopedList;

                    /**
                     * Verifies a NodeGroupsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupsScopedList;

                    /**
                     * Creates a plain object from a NodeGroupsScopedList message. Also converts values to other types if specified.
                     * @param message NodeGroupsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsSetNodeTemplateRequest. */
                interface INodeGroupsSetNodeTemplateRequest {

                    /** NodeGroupsSetNodeTemplateRequest nodeTemplate */
                    nodeTemplate?: (string|null);
                }

                /** Represents a NodeGroupsSetNodeTemplateRequest. */
                class NodeGroupsSetNodeTemplateRequest implements INodeGroupsSetNodeTemplateRequest {

                    /**
                     * Constructs a new NodeGroupsSetNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupsSetNodeTemplateRequest);

                    /** NodeGroupsSetNodeTemplateRequest nodeTemplate. */
                    public nodeTemplate?: (string|null);

                    /**
                     * Creates a new NodeGroupsSetNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsSetNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupsSetNodeTemplateRequest): google.cloud.compute.v1beta.NodeGroupsSetNodeTemplateRequest;

                    /**
                     * Encodes the specified NodeGroupsSetNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsSetNodeTemplateRequest.verify|verify} messages.
                     * @param message NodeGroupsSetNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupsSetNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsSetNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsSetNodeTemplateRequest.verify|verify} messages.
                     * @param message NodeGroupsSetNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupsSetNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsSetNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsSetNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupsSetNodeTemplateRequest;

                    /**
                     * Decodes a NodeGroupsSetNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsSetNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupsSetNodeTemplateRequest;

                    /**
                     * Verifies a NodeGroupsSetNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsSetNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsSetNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupsSetNodeTemplateRequest;

                    /**
                     * Creates a plain object from a NodeGroupsSetNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsSetNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupsSetNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsSetNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsSetNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeGroupsSimulateMaintenanceEventRequest. */
                interface INodeGroupsSimulateMaintenanceEventRequest {

                    /** NodeGroupsSimulateMaintenanceEventRequest nodes */
                    nodes?: (string[]|null);
                }

                /** Represents a NodeGroupsSimulateMaintenanceEventRequest. */
                class NodeGroupsSimulateMaintenanceEventRequest implements INodeGroupsSimulateMaintenanceEventRequest {

                    /**
                     * Constructs a new NodeGroupsSimulateMaintenanceEventRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeGroupsSimulateMaintenanceEventRequest);

                    /** NodeGroupsSimulateMaintenanceEventRequest nodes. */
                    public nodes: string[];

                    /**
                     * Creates a new NodeGroupsSimulateMaintenanceEventRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeGroupsSimulateMaintenanceEventRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeGroupsSimulateMaintenanceEventRequest): google.cloud.compute.v1beta.NodeGroupsSimulateMaintenanceEventRequest;

                    /**
                     * Encodes the specified NodeGroupsSimulateMaintenanceEventRequest message. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsSimulateMaintenanceEventRequest.verify|verify} messages.
                     * @param message NodeGroupsSimulateMaintenanceEventRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeGroupsSimulateMaintenanceEventRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeGroupsSimulateMaintenanceEventRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeGroupsSimulateMaintenanceEventRequest.verify|verify} messages.
                     * @param message NodeGroupsSimulateMaintenanceEventRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeGroupsSimulateMaintenanceEventRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeGroupsSimulateMaintenanceEventRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeGroupsSimulateMaintenanceEventRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeGroupsSimulateMaintenanceEventRequest;

                    /**
                     * Decodes a NodeGroupsSimulateMaintenanceEventRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeGroupsSimulateMaintenanceEventRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeGroupsSimulateMaintenanceEventRequest;

                    /**
                     * Verifies a NodeGroupsSimulateMaintenanceEventRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeGroupsSimulateMaintenanceEventRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeGroupsSimulateMaintenanceEventRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeGroupsSimulateMaintenanceEventRequest;

                    /**
                     * Creates a plain object from a NodeGroupsSimulateMaintenanceEventRequest message. Also converts values to other types if specified.
                     * @param message NodeGroupsSimulateMaintenanceEventRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeGroupsSimulateMaintenanceEventRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeGroupsSimulateMaintenanceEventRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeGroupsSimulateMaintenanceEventRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTemplate. */
                interface INodeTemplate {

                    /** NodeTemplate accelerators */
                    accelerators?: (google.cloud.compute.v1beta.IAcceleratorConfig[]|null);

                    /** NodeTemplate cpuOvercommitType */
                    cpuOvercommitType?: (string|null);

                    /** NodeTemplate creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NodeTemplate description */
                    description?: (string|null);

                    /** NodeTemplate disks */
                    disks?: (google.cloud.compute.v1beta.ILocalDisk[]|null);

                    /** NodeTemplate id */
                    id?: (number|Long|string|null);

                    /** NodeTemplate kind */
                    kind?: (string|null);

                    /** NodeTemplate name */
                    name?: (string|null);

                    /** NodeTemplate nodeAffinityLabels */
                    nodeAffinityLabels?: ({ [k: string]: string }|null);

                    /** NodeTemplate nodeType */
                    nodeType?: (string|null);

                    /** NodeTemplate nodeTypeFlexibility */
                    nodeTypeFlexibility?: (google.cloud.compute.v1beta.INodeTemplateNodeTypeFlexibility|null);

                    /** NodeTemplate region */
                    region?: (string|null);

                    /** NodeTemplate selfLink */
                    selfLink?: (string|null);

                    /** NodeTemplate serverBinding */
                    serverBinding?: (google.cloud.compute.v1beta.IServerBinding|null);

                    /** NodeTemplate status */
                    status?: (string|null);

                    /** NodeTemplate statusMessage */
                    statusMessage?: (string|null);
                }

                /** Represents a NodeTemplate. */
                class NodeTemplate implements INodeTemplate {

                    /**
                     * Constructs a new NodeTemplate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeTemplate);

                    /** NodeTemplate accelerators. */
                    public accelerators: google.cloud.compute.v1beta.IAcceleratorConfig[];

                    /** NodeTemplate cpuOvercommitType. */
                    public cpuOvercommitType?: (string|null);

                    /** NodeTemplate creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NodeTemplate description. */
                    public description?: (string|null);

                    /** NodeTemplate disks. */
                    public disks: google.cloud.compute.v1beta.ILocalDisk[];

                    /** NodeTemplate id. */
                    public id?: (number|Long|string|null);

                    /** NodeTemplate kind. */
                    public kind?: (string|null);

                    /** NodeTemplate name. */
                    public name?: (string|null);

                    /** NodeTemplate nodeAffinityLabels. */
                    public nodeAffinityLabels: { [k: string]: string };

                    /** NodeTemplate nodeType. */
                    public nodeType?: (string|null);

                    /** NodeTemplate nodeTypeFlexibility. */
                    public nodeTypeFlexibility?: (google.cloud.compute.v1beta.INodeTemplateNodeTypeFlexibility|null);

                    /** NodeTemplate region. */
                    public region?: (string|null);

                    /** NodeTemplate selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTemplate serverBinding. */
                    public serverBinding?: (google.cloud.compute.v1beta.IServerBinding|null);

                    /** NodeTemplate status. */
                    public status?: (string|null);

                    /** NodeTemplate statusMessage. */
                    public statusMessage?: (string|null);

                    /**
                     * Creates a new NodeTemplate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplate instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeTemplate): google.cloud.compute.v1beta.NodeTemplate;

                    /**
                     * Encodes the specified NodeTemplate message. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplate.verify|verify} messages.
                     * @param message NodeTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplate message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplate.verify|verify} messages.
                     * @param message NodeTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeTemplate;

                    /**
                     * Decodes a NodeTemplate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeTemplate;

                    /**
                     * Verifies a NodeTemplate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeTemplate;

                    /**
                     * Creates a plain object from a NodeTemplate message. Also converts values to other types if specified.
                     * @param message NodeTemplate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace NodeTemplate {

                    /** CpuOvercommitType enum. */
                    enum CpuOvercommitType {
                        UNDEFINED_CPU_OVERCOMMIT_TYPE = 0,
                        CPU_OVERCOMMIT_TYPE_UNSPECIFIED = 520665615,
                        ENABLED = 182130465,
                        NONE = 2402104
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a NodeTemplateAggregatedList. */
                interface INodeTemplateAggregatedList {

                    /** NodeTemplateAggregatedList id */
                    id?: (string|null);

                    /** NodeTemplateAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.INodeTemplatesScopedList }|null);

                    /** NodeTemplateAggregatedList kind */
                    kind?: (string|null);

                    /** NodeTemplateAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeTemplateAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NodeTemplateAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NodeTemplateAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeTemplateAggregatedList. */
                class NodeTemplateAggregatedList implements INodeTemplateAggregatedList {

                    /**
                     * Constructs a new NodeTemplateAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeTemplateAggregatedList);

                    /** NodeTemplateAggregatedList id. */
                    public id?: (string|null);

                    /** NodeTemplateAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.INodeTemplatesScopedList };

                    /** NodeTemplateAggregatedList kind. */
                    public kind?: (string|null);

                    /** NodeTemplateAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeTemplateAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTemplateAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NodeTemplateAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeTemplateAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplateAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeTemplateAggregatedList): google.cloud.compute.v1beta.NodeTemplateAggregatedList;

                    /**
                     * Encodes the specified NodeTemplateAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplateAggregatedList.verify|verify} messages.
                     * @param message NodeTemplateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeTemplateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplateAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplateAggregatedList.verify|verify} messages.
                     * @param message NodeTemplateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeTemplateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplateAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeTemplateAggregatedList;

                    /**
                     * Decodes a NodeTemplateAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeTemplateAggregatedList;

                    /**
                     * Verifies a NodeTemplateAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplateAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplateAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeTemplateAggregatedList;

                    /**
                     * Creates a plain object from a NodeTemplateAggregatedList message. Also converts values to other types if specified.
                     * @param message NodeTemplateAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeTemplateAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplateAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplateAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTemplateList. */
                interface INodeTemplateList {

                    /** NodeTemplateList id */
                    id?: (string|null);

                    /** NodeTemplateList items */
                    items?: (google.cloud.compute.v1beta.INodeTemplate[]|null);

                    /** NodeTemplateList kind */
                    kind?: (string|null);

                    /** NodeTemplateList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeTemplateList selfLink */
                    selfLink?: (string|null);

                    /** NodeTemplateList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeTemplateList. */
                class NodeTemplateList implements INodeTemplateList {

                    /**
                     * Constructs a new NodeTemplateList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeTemplateList);

                    /** NodeTemplateList id. */
                    public id?: (string|null);

                    /** NodeTemplateList items. */
                    public items: google.cloud.compute.v1beta.INodeTemplate[];

                    /** NodeTemplateList kind. */
                    public kind?: (string|null);

                    /** NodeTemplateList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeTemplateList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTemplateList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeTemplateList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplateList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeTemplateList): google.cloud.compute.v1beta.NodeTemplateList;

                    /**
                     * Encodes the specified NodeTemplateList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplateList.verify|verify} messages.
                     * @param message NodeTemplateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplateList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplateList.verify|verify} messages.
                     * @param message NodeTemplateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeTemplateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplateList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeTemplateList;

                    /**
                     * Decodes a NodeTemplateList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeTemplateList;

                    /**
                     * Verifies a NodeTemplateList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplateList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplateList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeTemplateList;

                    /**
                     * Creates a plain object from a NodeTemplateList message. Also converts values to other types if specified.
                     * @param message NodeTemplateList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeTemplateList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplateList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplateList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTemplateNodeTypeFlexibility. */
                interface INodeTemplateNodeTypeFlexibility {

                    /** NodeTemplateNodeTypeFlexibility cpus */
                    cpus?: (string|null);

                    /** NodeTemplateNodeTypeFlexibility localSsd */
                    localSsd?: (string|null);

                    /** NodeTemplateNodeTypeFlexibility memory */
                    memory?: (string|null);
                }

                /** Represents a NodeTemplateNodeTypeFlexibility. */
                class NodeTemplateNodeTypeFlexibility implements INodeTemplateNodeTypeFlexibility {

                    /**
                     * Constructs a new NodeTemplateNodeTypeFlexibility.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeTemplateNodeTypeFlexibility);

                    /** NodeTemplateNodeTypeFlexibility cpus. */
                    public cpus?: (string|null);

                    /** NodeTemplateNodeTypeFlexibility localSsd. */
                    public localSsd?: (string|null);

                    /** NodeTemplateNodeTypeFlexibility memory. */
                    public memory?: (string|null);

                    /**
                     * Creates a new NodeTemplateNodeTypeFlexibility instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplateNodeTypeFlexibility instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeTemplateNodeTypeFlexibility): google.cloud.compute.v1beta.NodeTemplateNodeTypeFlexibility;

                    /**
                     * Encodes the specified NodeTemplateNodeTypeFlexibility message. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplateNodeTypeFlexibility.verify|verify} messages.
                     * @param message NodeTemplateNodeTypeFlexibility message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeTemplateNodeTypeFlexibility, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplateNodeTypeFlexibility message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplateNodeTypeFlexibility.verify|verify} messages.
                     * @param message NodeTemplateNodeTypeFlexibility message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeTemplateNodeTypeFlexibility, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplateNodeTypeFlexibility message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplateNodeTypeFlexibility
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeTemplateNodeTypeFlexibility;

                    /**
                     * Decodes a NodeTemplateNodeTypeFlexibility message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplateNodeTypeFlexibility
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeTemplateNodeTypeFlexibility;

                    /**
                     * Verifies a NodeTemplateNodeTypeFlexibility message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplateNodeTypeFlexibility message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplateNodeTypeFlexibility
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeTemplateNodeTypeFlexibility;

                    /**
                     * Creates a plain object from a NodeTemplateNodeTypeFlexibility message. Also converts values to other types if specified.
                     * @param message NodeTemplateNodeTypeFlexibility
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeTemplateNodeTypeFlexibility, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplateNodeTypeFlexibility to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplateNodeTypeFlexibility
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTemplatesScopedList. */
                interface INodeTemplatesScopedList {

                    /** NodeTemplatesScopedList nodeTemplates */
                    nodeTemplates?: (google.cloud.compute.v1beta.INodeTemplate[]|null);

                    /** NodeTemplatesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeTemplatesScopedList. */
                class NodeTemplatesScopedList implements INodeTemplatesScopedList {

                    /**
                     * Constructs a new NodeTemplatesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeTemplatesScopedList);

                    /** NodeTemplatesScopedList nodeTemplates. */
                    public nodeTemplates: google.cloud.compute.v1beta.INodeTemplate[];

                    /** NodeTemplatesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeTemplatesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTemplatesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeTemplatesScopedList): google.cloud.compute.v1beta.NodeTemplatesScopedList;

                    /**
                     * Encodes the specified NodeTemplatesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplatesScopedList.verify|verify} messages.
                     * @param message NodeTemplatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeTemplatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTemplatesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeTemplatesScopedList.verify|verify} messages.
                     * @param message NodeTemplatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeTemplatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTemplatesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTemplatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeTemplatesScopedList;

                    /**
                     * Decodes a NodeTemplatesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTemplatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeTemplatesScopedList;

                    /**
                     * Verifies a NodeTemplatesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTemplatesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTemplatesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeTemplatesScopedList;

                    /**
                     * Creates a plain object from a NodeTemplatesScopedList message. Also converts values to other types if specified.
                     * @param message NodeTemplatesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeTemplatesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTemplatesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTemplatesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeType. */
                interface INodeType {

                    /** NodeType cpuPlatform */
                    cpuPlatform?: (string|null);

                    /** NodeType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NodeType deprecated */
                    deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** NodeType description */
                    description?: (string|null);

                    /** NodeType guestCpus */
                    guestCpus?: (number|null);

                    /** NodeType id */
                    id?: (number|Long|string|null);

                    /** NodeType kind */
                    kind?: (string|null);

                    /** NodeType localSsdGb */
                    localSsdGb?: (number|null);

                    /** NodeType maxVms */
                    maxVms?: (number|null);

                    /** NodeType memoryMb */
                    memoryMb?: (number|null);

                    /** NodeType name */
                    name?: (string|null);

                    /** NodeType selfLink */
                    selfLink?: (string|null);

                    /** NodeType zone */
                    zone?: (string|null);
                }

                /** Represents a NodeType. */
                class NodeType implements INodeType {

                    /**
                     * Constructs a new NodeType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeType);

                    /** NodeType cpuPlatform. */
                    public cpuPlatform?: (string|null);

                    /** NodeType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NodeType deprecated. */
                    public deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** NodeType description. */
                    public description?: (string|null);

                    /** NodeType guestCpus. */
                    public guestCpus?: (number|null);

                    /** NodeType id. */
                    public id?: (number|Long|string|null);

                    /** NodeType kind. */
                    public kind?: (string|null);

                    /** NodeType localSsdGb. */
                    public localSsdGb?: (number|null);

                    /** NodeType maxVms. */
                    public maxVms?: (number|null);

                    /** NodeType memoryMb. */
                    public memoryMb?: (number|null);

                    /** NodeType name. */
                    public name?: (string|null);

                    /** NodeType selfLink. */
                    public selfLink?: (string|null);

                    /** NodeType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new NodeType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeType instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeType): google.cloud.compute.v1beta.NodeType;

                    /**
                     * Encodes the specified NodeType message. Does not implicitly {@link google.cloud.compute.v1beta.NodeType.verify|verify} messages.
                     * @param message NodeType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeType message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeType.verify|verify} messages.
                     * @param message NodeType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeType;

                    /**
                     * Decodes a NodeType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeType;

                    /**
                     * Verifies a NodeType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeType;

                    /**
                     * Creates a plain object from a NodeType message. Also converts values to other types if specified.
                     * @param message NodeType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTypeAggregatedList. */
                interface INodeTypeAggregatedList {

                    /** NodeTypeAggregatedList id */
                    id?: (string|null);

                    /** NodeTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.INodeTypesScopedList }|null);

                    /** NodeTypeAggregatedList kind */
                    kind?: (string|null);

                    /** NodeTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NodeTypeAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NodeTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeTypeAggregatedList. */
                class NodeTypeAggregatedList implements INodeTypeAggregatedList {

                    /**
                     * Constructs a new NodeTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeTypeAggregatedList);

                    /** NodeTypeAggregatedList id. */
                    public id?: (string|null);

                    /** NodeTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.INodeTypesScopedList };

                    /** NodeTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** NodeTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTypeAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NodeTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeTypeAggregatedList): google.cloud.compute.v1beta.NodeTypeAggregatedList;

                    /**
                     * Encodes the specified NodeTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeTypeAggregatedList.verify|verify} messages.
                     * @param message NodeTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeTypeAggregatedList.verify|verify} messages.
                     * @param message NodeTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeTypeAggregatedList;

                    /**
                     * Decodes a NodeTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeTypeAggregatedList;

                    /**
                     * Verifies a NodeTypeAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeTypeAggregatedList;

                    /**
                     * Creates a plain object from a NodeTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message NodeTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTypeList. */
                interface INodeTypeList {

                    /** NodeTypeList id */
                    id?: (string|null);

                    /** NodeTypeList items */
                    items?: (google.cloud.compute.v1beta.INodeType[]|null);

                    /** NodeTypeList kind */
                    kind?: (string|null);

                    /** NodeTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NodeTypeList selfLink */
                    selfLink?: (string|null);

                    /** NodeTypeList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeTypeList. */
                class NodeTypeList implements INodeTypeList {

                    /**
                     * Constructs a new NodeTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeTypeList);

                    /** NodeTypeList id. */
                    public id?: (string|null);

                    /** NodeTypeList items. */
                    public items: google.cloud.compute.v1beta.INodeType[];

                    /** NodeTypeList kind. */
                    public kind?: (string|null);

                    /** NodeTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NodeTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** NodeTypeList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeTypeList): google.cloud.compute.v1beta.NodeTypeList;

                    /**
                     * Encodes the specified NodeTypeList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeTypeList.verify|verify} messages.
                     * @param message NodeTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeTypeList.verify|verify} messages.
                     * @param message NodeTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeTypeList;

                    /**
                     * Decodes a NodeTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeTypeList;

                    /**
                     * Verifies a NodeTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeTypeList;

                    /**
                     * Creates a plain object from a NodeTypeList message. Also converts values to other types if specified.
                     * @param message NodeTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NodeTypesScopedList. */
                interface INodeTypesScopedList {

                    /** NodeTypesScopedList nodeTypes */
                    nodeTypes?: (google.cloud.compute.v1beta.INodeType[]|null);

                    /** NodeTypesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NodeTypesScopedList. */
                class NodeTypesScopedList implements INodeTypesScopedList {

                    /**
                     * Constructs a new NodeTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INodeTypesScopedList);

                    /** NodeTypesScopedList nodeTypes. */
                    public nodeTypes: google.cloud.compute.v1beta.INodeType[];

                    /** NodeTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NodeTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NodeTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INodeTypesScopedList): google.cloud.compute.v1beta.NodeTypesScopedList;

                    /**
                     * Encodes the specified NodeTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.NodeTypesScopedList.verify|verify} messages.
                     * @param message NodeTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INodeTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NodeTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NodeTypesScopedList.verify|verify} messages.
                     * @param message NodeTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INodeTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NodeTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NodeTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NodeTypesScopedList;

                    /**
                     * Decodes a NodeTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NodeTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NodeTypesScopedList;

                    /**
                     * Verifies a NodeTypesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NodeTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NodeTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NodeTypesScopedList;

                    /**
                     * Creates a plain object from a NodeTypesScopedList message. Also converts values to other types if specified.
                     * @param message NodeTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NodeTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NodeTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NodeTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpoint. */
                interface INotificationEndpoint {

                    /** NotificationEndpoint creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** NotificationEndpoint description */
                    description?: (string|null);

                    /** NotificationEndpoint grpcSettings */
                    grpcSettings?: (google.cloud.compute.v1beta.INotificationEndpointGrpcSettings|null);

                    /** NotificationEndpoint id */
                    id?: (number|Long|string|null);

                    /** NotificationEndpoint kind */
                    kind?: (string|null);

                    /** NotificationEndpoint name */
                    name?: (string|null);

                    /** NotificationEndpoint region */
                    region?: (string|null);

                    /** NotificationEndpoint selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a NotificationEndpoint. */
                class NotificationEndpoint implements INotificationEndpoint {

                    /**
                     * Constructs a new NotificationEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INotificationEndpoint);

                    /** NotificationEndpoint creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** NotificationEndpoint description. */
                    public description?: (string|null);

                    /** NotificationEndpoint grpcSettings. */
                    public grpcSettings?: (google.cloud.compute.v1beta.INotificationEndpointGrpcSettings|null);

                    /** NotificationEndpoint id. */
                    public id?: (number|Long|string|null);

                    /** NotificationEndpoint kind. */
                    public kind?: (string|null);

                    /** NotificationEndpoint name. */
                    public name?: (string|null);

                    /** NotificationEndpoint region. */
                    public region?: (string|null);

                    /** NotificationEndpoint selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new NotificationEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INotificationEndpoint): google.cloud.compute.v1beta.NotificationEndpoint;

                    /**
                     * Encodes the specified NotificationEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpoint.verify|verify} messages.
                     * @param message NotificationEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INotificationEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpoint.verify|verify} messages.
                     * @param message NotificationEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INotificationEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NotificationEndpoint;

                    /**
                     * Decodes a NotificationEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NotificationEndpoint;

                    /**
                     * Verifies a NotificationEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NotificationEndpoint;

                    /**
                     * Creates a plain object from a NotificationEndpoint message. Also converts values to other types if specified.
                     * @param message NotificationEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NotificationEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpointAggregatedList. */
                interface INotificationEndpointAggregatedList {

                    /** NotificationEndpointAggregatedList id */
                    id?: (string|null);

                    /** NotificationEndpointAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.INotificationEndpointsScopedList }|null);

                    /** NotificationEndpointAggregatedList kind */
                    kind?: (string|null);

                    /** NotificationEndpointAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NotificationEndpointAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** NotificationEndpointAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** NotificationEndpointAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NotificationEndpointAggregatedList. */
                class NotificationEndpointAggregatedList implements INotificationEndpointAggregatedList {

                    /**
                     * Constructs a new NotificationEndpointAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INotificationEndpointAggregatedList);

                    /** NotificationEndpointAggregatedList id. */
                    public id?: (string|null);

                    /** NotificationEndpointAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.INotificationEndpointsScopedList };

                    /** NotificationEndpointAggregatedList kind. */
                    public kind?: (string|null);

                    /** NotificationEndpointAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NotificationEndpointAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** NotificationEndpointAggregatedList unreachables. */
                    public unreachables: string[];

                    /** NotificationEndpointAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NotificationEndpointAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpointAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INotificationEndpointAggregatedList): google.cloud.compute.v1beta.NotificationEndpointAggregatedList;

                    /**
                     * Encodes the specified NotificationEndpointAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpointAggregatedList.verify|verify} messages.
                     * @param message NotificationEndpointAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INotificationEndpointAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpointAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpointAggregatedList.verify|verify} messages.
                     * @param message NotificationEndpointAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INotificationEndpointAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpointAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpointAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NotificationEndpointAggregatedList;

                    /**
                     * Decodes a NotificationEndpointAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpointAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NotificationEndpointAggregatedList;

                    /**
                     * Verifies a NotificationEndpointAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpointAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpointAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NotificationEndpointAggregatedList;

                    /**
                     * Creates a plain object from a NotificationEndpointAggregatedList message. Also converts values to other types if specified.
                     * @param message NotificationEndpointAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NotificationEndpointAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpointAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpointAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpointGrpcSettings. */
                interface INotificationEndpointGrpcSettings {

                    /** NotificationEndpointGrpcSettings authority */
                    authority?: (string|null);

                    /** NotificationEndpointGrpcSettings endpoint */
                    endpoint?: (string|null);

                    /** NotificationEndpointGrpcSettings payloadName */
                    payloadName?: (string|null);

                    /** NotificationEndpointGrpcSettings resendInterval */
                    resendInterval?: (google.cloud.compute.v1beta.IDuration|null);

                    /** NotificationEndpointGrpcSettings retryDurationSec */
                    retryDurationSec?: (number|null);
                }

                /** Represents a NotificationEndpointGrpcSettings. */
                class NotificationEndpointGrpcSettings implements INotificationEndpointGrpcSettings {

                    /**
                     * Constructs a new NotificationEndpointGrpcSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INotificationEndpointGrpcSettings);

                    /** NotificationEndpointGrpcSettings authority. */
                    public authority?: (string|null);

                    /** NotificationEndpointGrpcSettings endpoint. */
                    public endpoint?: (string|null);

                    /** NotificationEndpointGrpcSettings payloadName. */
                    public payloadName?: (string|null);

                    /** NotificationEndpointGrpcSettings resendInterval. */
                    public resendInterval?: (google.cloud.compute.v1beta.IDuration|null);

                    /** NotificationEndpointGrpcSettings retryDurationSec. */
                    public retryDurationSec?: (number|null);

                    /**
                     * Creates a new NotificationEndpointGrpcSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpointGrpcSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INotificationEndpointGrpcSettings): google.cloud.compute.v1beta.NotificationEndpointGrpcSettings;

                    /**
                     * Encodes the specified NotificationEndpointGrpcSettings message. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpointGrpcSettings.verify|verify} messages.
                     * @param message NotificationEndpointGrpcSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INotificationEndpointGrpcSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpointGrpcSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpointGrpcSettings.verify|verify} messages.
                     * @param message NotificationEndpointGrpcSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INotificationEndpointGrpcSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpointGrpcSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpointGrpcSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NotificationEndpointGrpcSettings;

                    /**
                     * Decodes a NotificationEndpointGrpcSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpointGrpcSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NotificationEndpointGrpcSettings;

                    /**
                     * Verifies a NotificationEndpointGrpcSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpointGrpcSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpointGrpcSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NotificationEndpointGrpcSettings;

                    /**
                     * Creates a plain object from a NotificationEndpointGrpcSettings message. Also converts values to other types if specified.
                     * @param message NotificationEndpointGrpcSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NotificationEndpointGrpcSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpointGrpcSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpointGrpcSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpointList. */
                interface INotificationEndpointList {

                    /** NotificationEndpointList id */
                    id?: (string|null);

                    /** NotificationEndpointList items */
                    items?: (google.cloud.compute.v1beta.INotificationEndpoint[]|null);

                    /** NotificationEndpointList kind */
                    kind?: (string|null);

                    /** NotificationEndpointList nextPageToken */
                    nextPageToken?: (string|null);

                    /** NotificationEndpointList selfLink */
                    selfLink?: (string|null);

                    /** NotificationEndpointList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NotificationEndpointList. */
                class NotificationEndpointList implements INotificationEndpointList {

                    /**
                     * Constructs a new NotificationEndpointList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INotificationEndpointList);

                    /** NotificationEndpointList id. */
                    public id?: (string|null);

                    /** NotificationEndpointList items. */
                    public items: google.cloud.compute.v1beta.INotificationEndpoint[];

                    /** NotificationEndpointList kind. */
                    public kind?: (string|null);

                    /** NotificationEndpointList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** NotificationEndpointList selfLink. */
                    public selfLink?: (string|null);

                    /** NotificationEndpointList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NotificationEndpointList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpointList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INotificationEndpointList): google.cloud.compute.v1beta.NotificationEndpointList;

                    /**
                     * Encodes the specified NotificationEndpointList message. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpointList.verify|verify} messages.
                     * @param message NotificationEndpointList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INotificationEndpointList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpointList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpointList.verify|verify} messages.
                     * @param message NotificationEndpointList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INotificationEndpointList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpointList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpointList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NotificationEndpointList;

                    /**
                     * Decodes a NotificationEndpointList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpointList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NotificationEndpointList;

                    /**
                     * Verifies a NotificationEndpointList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpointList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpointList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NotificationEndpointList;

                    /**
                     * Creates a plain object from a NotificationEndpointList message. Also converts values to other types if specified.
                     * @param message NotificationEndpointList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NotificationEndpointList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpointList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpointList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NotificationEndpointsScopedList. */
                interface INotificationEndpointsScopedList {

                    /** NotificationEndpointsScopedList resources */
                    resources?: (google.cloud.compute.v1beta.INotificationEndpoint[]|null);

                    /** NotificationEndpointsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a NotificationEndpointsScopedList. */
                class NotificationEndpointsScopedList implements INotificationEndpointsScopedList {

                    /**
                     * Constructs a new NotificationEndpointsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.INotificationEndpointsScopedList);

                    /** NotificationEndpointsScopedList resources. */
                    public resources: google.cloud.compute.v1beta.INotificationEndpoint[];

                    /** NotificationEndpointsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new NotificationEndpointsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NotificationEndpointsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.INotificationEndpointsScopedList): google.cloud.compute.v1beta.NotificationEndpointsScopedList;

                    /**
                     * Encodes the specified NotificationEndpointsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpointsScopedList.verify|verify} messages.
                     * @param message NotificationEndpointsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.INotificationEndpointsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NotificationEndpointsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.NotificationEndpointsScopedList.verify|verify} messages.
                     * @param message NotificationEndpointsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.INotificationEndpointsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NotificationEndpointsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NotificationEndpointsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.NotificationEndpointsScopedList;

                    /**
                     * Decodes a NotificationEndpointsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NotificationEndpointsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.NotificationEndpointsScopedList;

                    /**
                     * Verifies a NotificationEndpointsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NotificationEndpointsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NotificationEndpointsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.NotificationEndpointsScopedList;

                    /**
                     * Creates a plain object from a NotificationEndpointsScopedList message. Also converts values to other types if specified.
                     * @param message NotificationEndpointsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.NotificationEndpointsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NotificationEndpointsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NotificationEndpointsScopedList
                     * @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 clientOperationId */
                    clientOperationId?: (string|null);

                    /** Operation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Operation description */
                    description?: (string|null);

                    /** Operation endTime */
                    endTime?: (string|null);

                    /** Operation error */
                    error?: (google.cloud.compute.v1beta.IError|null);

                    /** Operation getVersionOperationMetadata */
                    getVersionOperationMetadata?: (google.cloud.compute.v1beta.IGetVersionOperationMetadata|null);

                    /** Operation httpErrorMessage */
                    httpErrorMessage?: (string|null);

                    /** Operation httpErrorStatusCode */
                    httpErrorStatusCode?: (number|null);

                    /** Operation id */
                    id?: (number|Long|string|null);

                    /** Operation insertTime */
                    insertTime?: (string|null);

                    /** Operation instancesBulkInsertOperationMetadata */
                    instancesBulkInsertOperationMetadata?: (google.cloud.compute.v1beta.IInstancesBulkInsertOperationMetadata|null);

                    /** Operation kind */
                    kind?: (string|null);

                    /** Operation name */
                    name?: (string|null);

                    /** Operation operationGroupId */
                    operationGroupId?: (string|null);

                    /** Operation operationType */
                    operationType?: (string|null);

                    /** Operation progress */
                    progress?: (number|null);

                    /** Operation region */
                    region?: (string|null);

                    /** Operation selfLink */
                    selfLink?: (string|null);

                    /** Operation setCommonInstanceMetadataOperationMetadata */
                    setCommonInstanceMetadataOperationMetadata?: (google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadata|null);

                    /** Operation startTime */
                    startTime?: (string|null);

                    /** Operation status */
                    status?: (google.cloud.compute.v1beta.Operation.Status|keyof typeof google.cloud.compute.v1beta.Operation.Status|null);

                    /** Operation statusMessage */
                    statusMessage?: (string|null);

                    /** Operation targetId */
                    targetId?: (number|Long|string|null);

                    /** Operation targetLink */
                    targetLink?: (string|null);

                    /** Operation user */
                    user?: (string|null);

                    /** Operation warnings */
                    warnings?: (google.cloud.compute.v1beta.IWarnings[]|null);

                    /** Operation zone */
                    zone?: (string|null);
                }

                /** Represents an Operation. */
                class Operation implements IOperation {

                    /**
                     * Constructs a new Operation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IOperation);

                    /** Operation clientOperationId. */
                    public clientOperationId?: (string|null);

                    /** Operation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Operation description. */
                    public description?: (string|null);

                    /** Operation endTime. */
                    public endTime?: (string|null);

                    /** Operation error. */
                    public error?: (google.cloud.compute.v1beta.IError|null);

                    /** Operation getVersionOperationMetadata. */
                    public getVersionOperationMetadata?: (google.cloud.compute.v1beta.IGetVersionOperationMetadata|null);

                    /** Operation httpErrorMessage. */
                    public httpErrorMessage?: (string|null);

                    /** Operation httpErrorStatusCode. */
                    public httpErrorStatusCode?: (number|null);

                    /** Operation id. */
                    public id?: (number|Long|string|null);

                    /** Operation insertTime. */
                    public insertTime?: (string|null);

                    /** Operation instancesBulkInsertOperationMetadata. */
                    public instancesBulkInsertOperationMetadata?: (google.cloud.compute.v1beta.IInstancesBulkInsertOperationMetadata|null);

                    /** Operation kind. */
                    public kind?: (string|null);

                    /** Operation name. */
                    public name?: (string|null);

                    /** Operation operationGroupId. */
                    public operationGroupId?: (string|null);

                    /** Operation operationType. */
                    public operationType?: (string|null);

                    /** Operation progress. */
                    public progress?: (number|null);

                    /** Operation region. */
                    public region?: (string|null);

                    /** Operation selfLink. */
                    public selfLink?: (string|null);

                    /** Operation setCommonInstanceMetadataOperationMetadata. */
                    public setCommonInstanceMetadataOperationMetadata?: (google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadata|null);

                    /** Operation startTime. */
                    public startTime?: (string|null);

                    /** Operation status. */
                    public status?: (google.cloud.compute.v1beta.Operation.Status|keyof typeof google.cloud.compute.v1beta.Operation.Status|null);

                    /** Operation statusMessage. */
                    public statusMessage?: (string|null);

                    /** Operation targetId. */
                    public targetId?: (number|Long|string|null);

                    /** Operation targetLink. */
                    public targetLink?: (string|null);

                    /** Operation user. */
                    public user?: (string|null);

                    /** Operation warnings. */
                    public warnings: google.cloud.compute.v1beta.IWarnings[];

                    /** Operation zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Operation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Operation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IOperation): google.cloud.compute.v1beta.Operation;

                    /**
                     * Encodes the specified Operation message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 {
                        UNDEFINED_STATUS = 0,
                        DONE = 2104194,
                        PENDING = 35394935,
                        RUNNING = 121282975
                    }
                }

                /** Properties of an OperationAggregatedList. */
                interface IOperationAggregatedList {

                    /** OperationAggregatedList id */
                    id?: (string|null);

                    /** OperationAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IOperationsScopedList }|null);

                    /** OperationAggregatedList kind */
                    kind?: (string|null);

                    /** OperationAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** OperationAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** OperationAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** OperationAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an OperationAggregatedList. */
                class OperationAggregatedList implements IOperationAggregatedList {

                    /**
                     * Constructs a new OperationAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IOperationAggregatedList);

                    /** OperationAggregatedList id. */
                    public id?: (string|null);

                    /** OperationAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IOperationsScopedList };

                    /** OperationAggregatedList kind. */
                    public kind?: (string|null);

                    /** OperationAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** OperationAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** OperationAggregatedList unreachables. */
                    public unreachables: string[];

                    /** OperationAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new OperationAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IOperationAggregatedList): google.cloud.compute.v1beta.OperationAggregatedList;

                    /**
                     * Encodes the specified OperationAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.OperationAggregatedList.verify|verify} messages.
                     * @param message OperationAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IOperationAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.OperationAggregatedList.verify|verify} messages.
                     * @param message OperationAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IOperationAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.OperationAggregatedList;

                    /**
                     * Decodes an OperationAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.OperationAggregatedList;

                    /**
                     * Verifies an OperationAggregatedList message.
                     * @param message Plain 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 OperationAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.OperationAggregatedList;

                    /**
                     * Creates a plain object from an OperationAggregatedList message. Also converts values to other types if specified.
                     * @param message OperationAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.OperationAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OperationList. */
                interface IOperationList {

                    /** OperationList id */
                    id?: (string|null);

                    /** OperationList items */
                    items?: (google.cloud.compute.v1beta.IOperation[]|null);

                    /** OperationList kind */
                    kind?: (string|null);

                    /** OperationList nextPageToken */
                    nextPageToken?: (string|null);

                    /** OperationList selfLink */
                    selfLink?: (string|null);

                    /** OperationList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an OperationList. */
                class OperationList implements IOperationList {

                    /**
                     * Constructs a new OperationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IOperationList);

                    /** OperationList id. */
                    public id?: (string|null);

                    /** OperationList items. */
                    public items: google.cloud.compute.v1beta.IOperation[];

                    /** OperationList kind. */
                    public kind?: (string|null);

                    /** OperationList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** OperationList selfLink. */
                    public selfLink?: (string|null);

                    /** OperationList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new OperationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IOperationList): google.cloud.compute.v1beta.OperationList;

                    /**
                     * Encodes the specified OperationList message. Does not implicitly {@link google.cloud.compute.v1beta.OperationList.verify|verify} messages.
                     * @param message OperationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IOperationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.OperationList.verify|verify} messages.
                     * @param message OperationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IOperationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.OperationList;

                    /**
                     * Decodes an OperationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.OperationList;

                    /**
                     * Verifies an OperationList message.
                     * @param message Plain 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 OperationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.OperationList;

                    /**
                     * Creates a plain object from an OperationList message. Also converts values to other types if specified.
                     * @param message OperationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.OperationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OperationsScopedList. */
                interface IOperationsScopedList {

                    /** OperationsScopedList operations */
                    operations?: (google.cloud.compute.v1beta.IOperation[]|null);

                    /** OperationsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an OperationsScopedList. */
                class OperationsScopedList implements IOperationsScopedList {

                    /**
                     * Constructs a new OperationsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IOperationsScopedList);

                    /** OperationsScopedList operations. */
                    public operations: google.cloud.compute.v1beta.IOperation[];

                    /** OperationsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new OperationsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IOperationsScopedList): google.cloud.compute.v1beta.OperationsScopedList;

                    /**
                     * Encodes the specified OperationsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.OperationsScopedList.verify|verify} messages.
                     * @param message OperationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IOperationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.OperationsScopedList.verify|verify} messages.
                     * @param message OperationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IOperationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.OperationsScopedList;

                    /**
                     * Decodes an OperationsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.OperationsScopedList;

                    /**
                     * Verifies an OperationsScopedList message.
                     * @param message Plain 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 OperationsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.OperationsScopedList;

                    /**
                     * Creates a plain object from an OperationsScopedList message. Also converts values to other types if specified.
                     * @param message OperationsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.OperationsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OrganizationSecurityPoliciesListAssociationsResponse. */
                interface IOrganizationSecurityPoliciesListAssociationsResponse {

                    /** OrganizationSecurityPoliciesListAssociationsResponse associations */
                    associations?: (google.cloud.compute.v1beta.ISecurityPolicyAssociation[]|null);

                    /** OrganizationSecurityPoliciesListAssociationsResponse kind */
                    kind?: (string|null);
                }

                /** Represents an OrganizationSecurityPoliciesListAssociationsResponse. */
                class OrganizationSecurityPoliciesListAssociationsResponse implements IOrganizationSecurityPoliciesListAssociationsResponse {

                    /**
                     * Constructs a new OrganizationSecurityPoliciesListAssociationsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IOrganizationSecurityPoliciesListAssociationsResponse);

                    /** OrganizationSecurityPoliciesListAssociationsResponse associations. */
                    public associations: google.cloud.compute.v1beta.ISecurityPolicyAssociation[];

                    /** OrganizationSecurityPoliciesListAssociationsResponse kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new OrganizationSecurityPoliciesListAssociationsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OrganizationSecurityPoliciesListAssociationsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IOrganizationSecurityPoliciesListAssociationsResponse): google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse;

                    /**
                     * Encodes the specified OrganizationSecurityPoliciesListAssociationsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse.verify|verify} messages.
                     * @param message OrganizationSecurityPoliciesListAssociationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IOrganizationSecurityPoliciesListAssociationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OrganizationSecurityPoliciesListAssociationsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse.verify|verify} messages.
                     * @param message OrganizationSecurityPoliciesListAssociationsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IOrganizationSecurityPoliciesListAssociationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OrganizationSecurityPoliciesListAssociationsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OrganizationSecurityPoliciesListAssociationsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse;

                    /**
                     * Decodes an OrganizationSecurityPoliciesListAssociationsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OrganizationSecurityPoliciesListAssociationsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse;

                    /**
                     * Verifies an OrganizationSecurityPoliciesListAssociationsResponse message.
                     * @param message Plain 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 OrganizationSecurityPoliciesListAssociationsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OrganizationSecurityPoliciesListAssociationsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse;

                    /**
                     * Creates a plain object from an OrganizationSecurityPoliciesListAssociationsResponse message. Also converts values to other types if specified.
                     * @param message OrganizationSecurityPoliciesListAssociationsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OrganizationSecurityPoliciesListAssociationsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OrganizationSecurityPoliciesListAssociationsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OutlierDetection. */
                interface IOutlierDetection {

                    /** OutlierDetection baseEjectionTime */
                    baseEjectionTime?: (google.cloud.compute.v1beta.IDuration|null);

                    /** OutlierDetection consecutiveErrors */
                    consecutiveErrors?: (number|null);

                    /** OutlierDetection consecutiveGatewayFailure */
                    consecutiveGatewayFailure?: (number|null);

                    /** OutlierDetection enforcingConsecutiveErrors */
                    enforcingConsecutiveErrors?: (number|null);

                    /** OutlierDetection enforcingConsecutiveGatewayFailure */
                    enforcingConsecutiveGatewayFailure?: (number|null);

                    /** OutlierDetection enforcingSuccessRate */
                    enforcingSuccessRate?: (number|null);

                    /** OutlierDetection interval */
                    interval?: (google.cloud.compute.v1beta.IDuration|null);

                    /** OutlierDetection maxEjectionPercent */
                    maxEjectionPercent?: (number|null);

                    /** OutlierDetection successRateMinimumHosts */
                    successRateMinimumHosts?: (number|null);

                    /** OutlierDetection successRateRequestVolume */
                    successRateRequestVolume?: (number|null);

                    /** OutlierDetection successRateStdevFactor */
                    successRateStdevFactor?: (number|null);
                }

                /** Represents an OutlierDetection. */
                class OutlierDetection implements IOutlierDetection {

                    /**
                     * Constructs a new OutlierDetection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IOutlierDetection);

                    /** OutlierDetection baseEjectionTime. */
                    public baseEjectionTime?: (google.cloud.compute.v1beta.IDuration|null);

                    /** OutlierDetection consecutiveErrors. */
                    public consecutiveErrors?: (number|null);

                    /** OutlierDetection consecutiveGatewayFailure. */
                    public consecutiveGatewayFailure?: (number|null);

                    /** OutlierDetection enforcingConsecutiveErrors. */
                    public enforcingConsecutiveErrors?: (number|null);

                    /** OutlierDetection enforcingConsecutiveGatewayFailure. */
                    public enforcingConsecutiveGatewayFailure?: (number|null);

                    /** OutlierDetection enforcingSuccessRate. */
                    public enforcingSuccessRate?: (number|null);

                    /** OutlierDetection interval. */
                    public interval?: (google.cloud.compute.v1beta.IDuration|null);

                    /** OutlierDetection maxEjectionPercent. */
                    public maxEjectionPercent?: (number|null);

                    /** OutlierDetection successRateMinimumHosts. */
                    public successRateMinimumHosts?: (number|null);

                    /** OutlierDetection successRateRequestVolume. */
                    public successRateRequestVolume?: (number|null);

                    /** OutlierDetection successRateStdevFactor. */
                    public successRateStdevFactor?: (number|null);

                    /**
                     * Creates a new OutlierDetection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OutlierDetection instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IOutlierDetection): google.cloud.compute.v1beta.OutlierDetection;

                    /**
                     * Encodes the specified OutlierDetection message. Does not implicitly {@link google.cloud.compute.v1beta.OutlierDetection.verify|verify} messages.
                     * @param message OutlierDetection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IOutlierDetection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OutlierDetection message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.OutlierDetection.verify|verify} messages.
                     * @param message OutlierDetection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IOutlierDetection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OutlierDetection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OutlierDetection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.OutlierDetection;

                    /**
                     * Decodes an OutlierDetection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OutlierDetection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.OutlierDetection;

                    /**
                     * Verifies an OutlierDetection message.
                     * @param message Plain 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 OutlierDetection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OutlierDetection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.OutlierDetection;

                    /**
                     * Creates a plain object from an OutlierDetection message. Also converts values to other types if specified.
                     * @param message OutlierDetection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.OutlierDetection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OutlierDetection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OutlierDetection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketIntervals. */
                interface IPacketIntervals {

                    /** PacketIntervals avgMs */
                    avgMs?: (number|Long|string|null);

                    /** PacketIntervals duration */
                    duration?: (string|null);

                    /** PacketIntervals maxMs */
                    maxMs?: (number|Long|string|null);

                    /** PacketIntervals minMs */
                    minMs?: (number|Long|string|null);

                    /** PacketIntervals numIntervals */
                    numIntervals?: (number|Long|string|null);

                    /** PacketIntervals type */
                    type?: (string|null);
                }

                /** Represents a PacketIntervals. */
                class PacketIntervals implements IPacketIntervals {

                    /**
                     * Constructs a new PacketIntervals.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketIntervals);

                    /** PacketIntervals avgMs. */
                    public avgMs?: (number|Long|string|null);

                    /** PacketIntervals duration. */
                    public duration?: (string|null);

                    /** PacketIntervals maxMs. */
                    public maxMs?: (number|Long|string|null);

                    /** PacketIntervals minMs. */
                    public minMs?: (number|Long|string|null);

                    /** PacketIntervals numIntervals. */
                    public numIntervals?: (number|Long|string|null);

                    /** PacketIntervals type. */
                    public type?: (string|null);

                    /**
                     * Creates a new PacketIntervals instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketIntervals instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketIntervals): google.cloud.compute.v1beta.PacketIntervals;

                    /**
                     * Encodes the specified PacketIntervals message. Does not implicitly {@link google.cloud.compute.v1beta.PacketIntervals.verify|verify} messages.
                     * @param message PacketIntervals message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketIntervals, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketIntervals message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketIntervals.verify|verify} messages.
                     * @param message PacketIntervals message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketIntervals, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketIntervals message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketIntervals
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketIntervals;

                    /**
                     * Decodes a PacketIntervals message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketIntervals
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketIntervals;

                    /**
                     * Verifies a PacketIntervals message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketIntervals message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketIntervals
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketIntervals;

                    /**
                     * Creates a plain object from a PacketIntervals message. Also converts values to other types if specified.
                     * @param message PacketIntervals
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketIntervals, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketIntervals to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketIntervals
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PacketIntervals {

                    /** Duration enum. */
                    enum Duration {
                        UNDEFINED_DURATION = 0,
                        DURATION_UNSPECIFIED = 529071340,
                        HOUR = 2223588,
                        MAX = 76100,
                        MINUTE = 126786068
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        LOOPBACK = 356174219,
                        RECEIVE = 189660867,
                        TRANSMIT = 452903600,
                        TYPE_UNSPECIFIED = 437714322
                    }
                }

                /** Properties of a PacketMirroring. */
                interface IPacketMirroring {

                    /** PacketMirroring collectorIlb */
                    collectorIlb?: (google.cloud.compute.v1beta.IPacketMirroringForwardingRuleInfo|null);

                    /** PacketMirroring creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** PacketMirroring description */
                    description?: (string|null);

                    /** PacketMirroring enable */
                    enable?: (string|null);

                    /** PacketMirroring filter */
                    filter?: (google.cloud.compute.v1beta.IPacketMirroringFilter|null);

                    /** PacketMirroring id */
                    id?: (number|Long|string|null);

                    /** PacketMirroring kind */
                    kind?: (string|null);

                    /** PacketMirroring mirroredResources */
                    mirroredResources?: (google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfo|null);

                    /** PacketMirroring name */
                    name?: (string|null);

                    /** PacketMirroring network */
                    network?: (google.cloud.compute.v1beta.IPacketMirroringNetworkInfo|null);

                    /** PacketMirroring priority */
                    priority?: (number|null);

                    /** PacketMirroring region */
                    region?: (string|null);

                    /** PacketMirroring selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a PacketMirroring. */
                class PacketMirroring implements IPacketMirroring {

                    /**
                     * Constructs a new PacketMirroring.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroring);

                    /** PacketMirroring collectorIlb. */
                    public collectorIlb?: (google.cloud.compute.v1beta.IPacketMirroringForwardingRuleInfo|null);

                    /** PacketMirroring creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** PacketMirroring description. */
                    public description?: (string|null);

                    /** PacketMirroring enable. */
                    public enable?: (string|null);

                    /** PacketMirroring filter. */
                    public filter?: (google.cloud.compute.v1beta.IPacketMirroringFilter|null);

                    /** PacketMirroring id. */
                    public id?: (number|Long|string|null);

                    /** PacketMirroring kind. */
                    public kind?: (string|null);

                    /** PacketMirroring mirroredResources. */
                    public mirroredResources?: (google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfo|null);

                    /** PacketMirroring name. */
                    public name?: (string|null);

                    /** PacketMirroring network. */
                    public network?: (google.cloud.compute.v1beta.IPacketMirroringNetworkInfo|null);

                    /** PacketMirroring priority. */
                    public priority?: (number|null);

                    /** PacketMirroring region. */
                    public region?: (string|null);

                    /** PacketMirroring selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new PacketMirroring instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroring instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroring): google.cloud.compute.v1beta.PacketMirroring;

                    /**
                     * Encodes the specified PacketMirroring message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroring.verify|verify} messages.
                     * @param message PacketMirroring message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroring, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroring message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroring.verify|verify} messages.
                     * @param message PacketMirroring message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroring, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroring message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroring
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroring;

                    /**
                     * Decodes a PacketMirroring message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroring
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroring;

                    /**
                     * Verifies a PacketMirroring message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroring message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroring
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroring;

                    /**
                     * Creates a plain object from a PacketMirroring message. Also converts values to other types if specified.
                     * @param message PacketMirroring
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroring, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroring to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroring
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PacketMirroring {

                    /** Enable enum. */
                    enum Enable {
                        UNDEFINED_ENABLE = 0,
                        FALSE = 66658563,
                        TRUE = 2583950
                    }
                }

                /** Properties of a PacketMirroringAggregatedList. */
                interface IPacketMirroringAggregatedList {

                    /** PacketMirroringAggregatedList id */
                    id?: (string|null);

                    /** PacketMirroringAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IPacketMirroringsScopedList }|null);

                    /** PacketMirroringAggregatedList kind */
                    kind?: (string|null);

                    /** PacketMirroringAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PacketMirroringAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** PacketMirroringAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** PacketMirroringAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a PacketMirroringAggregatedList. */
                class PacketMirroringAggregatedList implements IPacketMirroringAggregatedList {

                    /**
                     * Constructs a new PacketMirroringAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringAggregatedList);

                    /** PacketMirroringAggregatedList id. */
                    public id?: (string|null);

                    /** PacketMirroringAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IPacketMirroringsScopedList };

                    /** PacketMirroringAggregatedList kind. */
                    public kind?: (string|null);

                    /** PacketMirroringAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PacketMirroringAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** PacketMirroringAggregatedList unreachables. */
                    public unreachables: string[];

                    /** PacketMirroringAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new PacketMirroringAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringAggregatedList): google.cloud.compute.v1beta.PacketMirroringAggregatedList;

                    /**
                     * Encodes the specified PacketMirroringAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringAggregatedList.verify|verify} messages.
                     * @param message PacketMirroringAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringAggregatedList.verify|verify} messages.
                     * @param message PacketMirroringAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringAggregatedList;

                    /**
                     * Decodes a PacketMirroringAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringAggregatedList;

                    /**
                     * Verifies a PacketMirroringAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringAggregatedList;

                    /**
                     * Creates a plain object from a PacketMirroringAggregatedList message. Also converts values to other types if specified.
                     * @param message PacketMirroringAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringFilter. */
                interface IPacketMirroringFilter {

                    /** PacketMirroringFilter IPProtocols */
                    IPProtocols?: (string[]|null);

                    /** PacketMirroringFilter cidrRanges */
                    cidrRanges?: (string[]|null);

                    /** PacketMirroringFilter direction */
                    direction?: (string|null);
                }

                /** Represents a PacketMirroringFilter. */
                class PacketMirroringFilter implements IPacketMirroringFilter {

                    /**
                     * Constructs a new PacketMirroringFilter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringFilter);

                    /** PacketMirroringFilter IPProtocols. */
                    public IPProtocols: string[];

                    /** PacketMirroringFilter cidrRanges. */
                    public cidrRanges: string[];

                    /** PacketMirroringFilter direction. */
                    public direction?: (string|null);

                    /**
                     * Creates a new PacketMirroringFilter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringFilter instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringFilter): google.cloud.compute.v1beta.PacketMirroringFilter;

                    /**
                     * Encodes the specified PacketMirroringFilter message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringFilter.verify|verify} messages.
                     * @param message PacketMirroringFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringFilter message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringFilter.verify|verify} messages.
                     * @param message PacketMirroringFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringFilter;

                    /**
                     * Decodes a PacketMirroringFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringFilter
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringFilter;

                    /**
                     * Verifies a PacketMirroringFilter message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringFilter;

                    /**
                     * Creates a plain object from a PacketMirroringFilter message. Also converts values to other types if specified.
                     * @param message PacketMirroringFilter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringFilter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringFilter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PacketMirroringFilter {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        BOTH = 2044801,
                        EGRESS = 432880501,
                        INGRESS = 516931221
                    }
                }

                /** Properties of a PacketMirroringForwardingRuleInfo. */
                interface IPacketMirroringForwardingRuleInfo {

                    /** PacketMirroringForwardingRuleInfo canonicalUrl */
                    canonicalUrl?: (string|null);

                    /** PacketMirroringForwardingRuleInfo url */
                    url?: (string|null);
                }

                /** Represents a PacketMirroringForwardingRuleInfo. */
                class PacketMirroringForwardingRuleInfo implements IPacketMirroringForwardingRuleInfo {

                    /**
                     * Constructs a new PacketMirroringForwardingRuleInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringForwardingRuleInfo);

                    /** PacketMirroringForwardingRuleInfo canonicalUrl. */
                    public canonicalUrl?: (string|null);

                    /** PacketMirroringForwardingRuleInfo url. */
                    public url?: (string|null);

                    /**
                     * Creates a new PacketMirroringForwardingRuleInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringForwardingRuleInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringForwardingRuleInfo): google.cloud.compute.v1beta.PacketMirroringForwardingRuleInfo;

                    /**
                     * Encodes the specified PacketMirroringForwardingRuleInfo message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringForwardingRuleInfo.verify|verify} messages.
                     * @param message PacketMirroringForwardingRuleInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringForwardingRuleInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringForwardingRuleInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringForwardingRuleInfo.verify|verify} messages.
                     * @param message PacketMirroringForwardingRuleInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringForwardingRuleInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringForwardingRuleInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringForwardingRuleInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringForwardingRuleInfo;

                    /**
                     * Decodes a PacketMirroringForwardingRuleInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringForwardingRuleInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringForwardingRuleInfo;

                    /**
                     * Verifies a PacketMirroringForwardingRuleInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringForwardingRuleInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringForwardingRuleInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringForwardingRuleInfo;

                    /**
                     * Creates a plain object from a PacketMirroringForwardingRuleInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringForwardingRuleInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringForwardingRuleInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringForwardingRuleInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringForwardingRuleInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringList. */
                interface IPacketMirroringList {

                    /** PacketMirroringList id */
                    id?: (string|null);

                    /** PacketMirroringList items */
                    items?: (google.cloud.compute.v1beta.IPacketMirroring[]|null);

                    /** PacketMirroringList kind */
                    kind?: (string|null);

                    /** PacketMirroringList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PacketMirroringList selfLink */
                    selfLink?: (string|null);

                    /** PacketMirroringList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a PacketMirroringList. */
                class PacketMirroringList implements IPacketMirroringList {

                    /**
                     * Constructs a new PacketMirroringList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringList);

                    /** PacketMirroringList id. */
                    public id?: (string|null);

                    /** PacketMirroringList items. */
                    public items: google.cloud.compute.v1beta.IPacketMirroring[];

                    /** PacketMirroringList kind. */
                    public kind?: (string|null);

                    /** PacketMirroringList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PacketMirroringList selfLink. */
                    public selfLink?: (string|null);

                    /** PacketMirroringList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new PacketMirroringList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringList): google.cloud.compute.v1beta.PacketMirroringList;

                    /**
                     * Encodes the specified PacketMirroringList message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringList.verify|verify} messages.
                     * @param message PacketMirroringList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringList.verify|verify} messages.
                     * @param message PacketMirroringList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringList;

                    /**
                     * Decodes a PacketMirroringList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringList;

                    /**
                     * Verifies a PacketMirroringList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringList;

                    /**
                     * Creates a plain object from a PacketMirroringList message. Also converts values to other types if specified.
                     * @param message PacketMirroringList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringMirroredResourceInfo. */
                interface IPacketMirroringMirroredResourceInfo {

                    /** PacketMirroringMirroredResourceInfo instances */
                    instances?: (google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoInstanceInfo[]|null);

                    /** PacketMirroringMirroredResourceInfo subnetworks */
                    subnetworks?: (google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoSubnetInfo[]|null);

                    /** PacketMirroringMirroredResourceInfo tags */
                    tags?: (string[]|null);
                }

                /** Represents a PacketMirroringMirroredResourceInfo. */
                class PacketMirroringMirroredResourceInfo implements IPacketMirroringMirroredResourceInfo {

                    /**
                     * Constructs a new PacketMirroringMirroredResourceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfo);

                    /** PacketMirroringMirroredResourceInfo instances. */
                    public instances: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoInstanceInfo[];

                    /** PacketMirroringMirroredResourceInfo subnetworks. */
                    public subnetworks: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoSubnetInfo[];

                    /** PacketMirroringMirroredResourceInfo tags. */
                    public tags: string[];

                    /**
                     * Creates a new PacketMirroringMirroredResourceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringMirroredResourceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfo): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfo;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfo message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringMirroredResourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfo;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringMirroredResourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfo;

                    /**
                     * Verifies a PacketMirroringMirroredResourceInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringMirroredResourceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringMirroredResourceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfo;

                    /**
                     * Creates a plain object from a PacketMirroringMirroredResourceInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringMirroredResourceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringMirroredResourceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringMirroredResourceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringMirroredResourceInfoInstanceInfo. */
                interface IPacketMirroringMirroredResourceInfoInstanceInfo {

                    /** PacketMirroringMirroredResourceInfoInstanceInfo canonicalUrl */
                    canonicalUrl?: (string|null);

                    /** PacketMirroringMirroredResourceInfoInstanceInfo url */
                    url?: (string|null);
                }

                /** Represents a PacketMirroringMirroredResourceInfoInstanceInfo. */
                class PacketMirroringMirroredResourceInfoInstanceInfo implements IPacketMirroringMirroredResourceInfoInstanceInfo {

                    /**
                     * Constructs a new PacketMirroringMirroredResourceInfoInstanceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoInstanceInfo);

                    /** PacketMirroringMirroredResourceInfoInstanceInfo canonicalUrl. */
                    public canonicalUrl?: (string|null);

                    /** PacketMirroringMirroredResourceInfoInstanceInfo url. */
                    public url?: (string|null);

                    /**
                     * Creates a new PacketMirroringMirroredResourceInfoInstanceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringMirroredResourceInfoInstanceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoInstanceInfo): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoInstanceInfo;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfoInstanceInfo message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoInstanceInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfoInstanceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoInstanceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfoInstanceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoInstanceInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfoInstanceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoInstanceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfoInstanceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringMirroredResourceInfoInstanceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoInstanceInfo;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfoInstanceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringMirroredResourceInfoInstanceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoInstanceInfo;

                    /**
                     * Verifies a PacketMirroringMirroredResourceInfoInstanceInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringMirroredResourceInfoInstanceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringMirroredResourceInfoInstanceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoInstanceInfo;

                    /**
                     * Creates a plain object from a PacketMirroringMirroredResourceInfoInstanceInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringMirroredResourceInfoInstanceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoInstanceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringMirroredResourceInfoInstanceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringMirroredResourceInfoInstanceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringMirroredResourceInfoSubnetInfo. */
                interface IPacketMirroringMirroredResourceInfoSubnetInfo {

                    /** PacketMirroringMirroredResourceInfoSubnetInfo canonicalUrl */
                    canonicalUrl?: (string|null);

                    /** PacketMirroringMirroredResourceInfoSubnetInfo url */
                    url?: (string|null);
                }

                /** Represents a PacketMirroringMirroredResourceInfoSubnetInfo. */
                class PacketMirroringMirroredResourceInfoSubnetInfo implements IPacketMirroringMirroredResourceInfoSubnetInfo {

                    /**
                     * Constructs a new PacketMirroringMirroredResourceInfoSubnetInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoSubnetInfo);

                    /** PacketMirroringMirroredResourceInfoSubnetInfo canonicalUrl. */
                    public canonicalUrl?: (string|null);

                    /** PacketMirroringMirroredResourceInfoSubnetInfo url. */
                    public url?: (string|null);

                    /**
                     * Creates a new PacketMirroringMirroredResourceInfoSubnetInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringMirroredResourceInfoSubnetInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoSubnetInfo): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoSubnetInfo;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfoSubnetInfo message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoSubnetInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfoSubnetInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoSubnetInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringMirroredResourceInfoSubnetInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoSubnetInfo.verify|verify} messages.
                     * @param message PacketMirroringMirroredResourceInfoSubnetInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringMirroredResourceInfoSubnetInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfoSubnetInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringMirroredResourceInfoSubnetInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoSubnetInfo;

                    /**
                     * Decodes a PacketMirroringMirroredResourceInfoSubnetInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringMirroredResourceInfoSubnetInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoSubnetInfo;

                    /**
                     * Verifies a PacketMirroringMirroredResourceInfoSubnetInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringMirroredResourceInfoSubnetInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringMirroredResourceInfoSubnetInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoSubnetInfo;

                    /**
                     * Creates a plain object from a PacketMirroringMirroredResourceInfoSubnetInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringMirroredResourceInfoSubnetInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringMirroredResourceInfoSubnetInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringMirroredResourceInfoSubnetInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringMirroredResourceInfoSubnetInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringNetworkInfo. */
                interface IPacketMirroringNetworkInfo {

                    /** PacketMirroringNetworkInfo canonicalUrl */
                    canonicalUrl?: (string|null);

                    /** PacketMirroringNetworkInfo url */
                    url?: (string|null);
                }

                /** Represents a PacketMirroringNetworkInfo. */
                class PacketMirroringNetworkInfo implements IPacketMirroringNetworkInfo {

                    /**
                     * Constructs a new PacketMirroringNetworkInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringNetworkInfo);

                    /** PacketMirroringNetworkInfo canonicalUrl. */
                    public canonicalUrl?: (string|null);

                    /** PacketMirroringNetworkInfo url. */
                    public url?: (string|null);

                    /**
                     * Creates a new PacketMirroringNetworkInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringNetworkInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringNetworkInfo): google.cloud.compute.v1beta.PacketMirroringNetworkInfo;

                    /**
                     * Encodes the specified PacketMirroringNetworkInfo message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringNetworkInfo.verify|verify} messages.
                     * @param message PacketMirroringNetworkInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringNetworkInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringNetworkInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringNetworkInfo.verify|verify} messages.
                     * @param message PacketMirroringNetworkInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringNetworkInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringNetworkInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringNetworkInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringNetworkInfo;

                    /**
                     * Decodes a PacketMirroringNetworkInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringNetworkInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringNetworkInfo;

                    /**
                     * Verifies a PacketMirroringNetworkInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringNetworkInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringNetworkInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringNetworkInfo;

                    /**
                     * Creates a plain object from a PacketMirroringNetworkInfo message. Also converts values to other types if specified.
                     * @param message PacketMirroringNetworkInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringNetworkInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringNetworkInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringNetworkInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PacketMirroringsScopedList. */
                interface IPacketMirroringsScopedList {

                    /** PacketMirroringsScopedList packetMirrorings */
                    packetMirrorings?: (google.cloud.compute.v1beta.IPacketMirroring[]|null);

                    /** PacketMirroringsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a PacketMirroringsScopedList. */
                class PacketMirroringsScopedList implements IPacketMirroringsScopedList {

                    /**
                     * Constructs a new PacketMirroringsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPacketMirroringsScopedList);

                    /** PacketMirroringsScopedList packetMirrorings. */
                    public packetMirrorings: google.cloud.compute.v1beta.IPacketMirroring[];

                    /** PacketMirroringsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new PacketMirroringsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PacketMirroringsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPacketMirroringsScopedList): google.cloud.compute.v1beta.PacketMirroringsScopedList;

                    /**
                     * Encodes the specified PacketMirroringsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringsScopedList.verify|verify} messages.
                     * @param message PacketMirroringsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPacketMirroringsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PacketMirroringsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PacketMirroringsScopedList.verify|verify} messages.
                     * @param message PacketMirroringsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPacketMirroringsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PacketMirroringsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PacketMirroringsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PacketMirroringsScopedList;

                    /**
                     * Decodes a PacketMirroringsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PacketMirroringsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PacketMirroringsScopedList;

                    /**
                     * Verifies a PacketMirroringsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PacketMirroringsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PacketMirroringsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PacketMirroringsScopedList;

                    /**
                     * Creates a plain object from a PacketMirroringsScopedList message. Also converts values to other types if specified.
                     * @param message PacketMirroringsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PacketMirroringsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PacketMirroringsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PacketMirroringsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PartnerMetadata. */
                interface IPartnerMetadata {

                    /** PartnerMetadata fingerprint */
                    fingerprint?: (string|null);

                    /** PartnerMetadata partnerMetadata */
                    partnerMetadata?: ({ [k: string]: google.cloud.compute.v1beta.IStructuredEntries }|null);
                }

                /** Represents a PartnerMetadata. */
                class PartnerMetadata implements IPartnerMetadata {

                    /**
                     * Constructs a new PartnerMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPartnerMetadata);

                    /** PartnerMetadata fingerprint. */
                    public fingerprint?: (string|null);

                    /** PartnerMetadata partnerMetadata. */
                    public partnerMetadata: { [k: string]: google.cloud.compute.v1beta.IStructuredEntries };

                    /**
                     * Creates a new PartnerMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PartnerMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPartnerMetadata): google.cloud.compute.v1beta.PartnerMetadata;

                    /**
                     * Encodes the specified PartnerMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.PartnerMetadata.verify|verify} messages.
                     * @param message PartnerMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPartnerMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PartnerMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PartnerMetadata.verify|verify} messages.
                     * @param message PartnerMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPartnerMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PartnerMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PartnerMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PartnerMetadata;

                    /**
                     * Decodes a PartnerMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PartnerMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PartnerMetadata;

                    /**
                     * Verifies a PartnerMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PartnerMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PartnerMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PartnerMetadata;

                    /**
                     * Creates a plain object from a PartnerMetadata message. Also converts values to other types if specified.
                     * @param message PartnerMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PartnerMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PartnerMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PartnerMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchAssociationRegionNetworkFirewallPolicyRequest. */
                interface IPatchAssociationRegionNetworkFirewallPolicyRequest {

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest firewallPolicyAssociationResource */
                    firewallPolicyAssociationResource?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation|null);

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchAssociationRegionNetworkFirewallPolicyRequest. */
                class PatchAssociationRegionNetworkFirewallPolicyRequest implements IPatchAssociationRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchAssociationRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchAssociationRegionNetworkFirewallPolicyRequest);

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest firewallPolicyAssociationResource. */
                    public firewallPolicyAssociationResource?: (google.cloud.compute.v1beta.IFirewallPolicyAssociation|null);

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** PatchAssociationRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchAssociationRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchAssociationRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchAssociationRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.PatchAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchAssociationRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchAssociationRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchAssociationRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchAssociationRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchAssociationRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchAssociationRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchAssociationRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchAssociationRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchAssociationRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchAssociationRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchAutoscalerRequest. */
                interface IPatchAutoscalerRequest {

                    /** PatchAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** PatchAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** PatchAutoscalerRequest project */
                    project?: (string|null);

                    /** PatchAutoscalerRequest requestId */
                    requestId?: (string|null);

                    /** PatchAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchAutoscalerRequest. */
                class PatchAutoscalerRequest implements IPatchAutoscalerRequest {

                    /**
                     * Constructs a new PatchAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchAutoscalerRequest);

                    /** PatchAutoscalerRequest autoscaler. */
                    public autoscaler?: (string|null);

                    /** PatchAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** PatchAutoscalerRequest project. */
                    public project: string;

                    /** PatchAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchAutoscalerRequest): google.cloud.compute.v1beta.PatchAutoscalerRequest;

                    /**
                     * Encodes the specified PatchAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchAutoscalerRequest.verify|verify} messages.
                     * @param message PatchAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchAutoscalerRequest.verify|verify} messages.
                     * @param message PatchAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchAutoscalerRequest;

                    /**
                     * Decodes a PatchAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchAutoscalerRequest;

                    /**
                     * Verifies a PatchAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchAutoscalerRequest;

                    /**
                     * Creates a plain object from a PatchAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message PatchAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchBackendBucketRequest. */
                interface IPatchBackendBucketRequest {

                    /** PatchBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** PatchBackendBucketRequest backendBucketResource */
                    backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** PatchBackendBucketRequest project */
                    project?: (string|null);

                    /** PatchBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchBackendBucketRequest. */
                class PatchBackendBucketRequest implements IPatchBackendBucketRequest {

                    /**
                     * Constructs a new PatchBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchBackendBucketRequest);

                    /** PatchBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** PatchBackendBucketRequest backendBucketResource. */
                    public backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** PatchBackendBucketRequest project. */
                    public project: string;

                    /** PatchBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchBackendBucketRequest): google.cloud.compute.v1beta.PatchBackendBucketRequest;

                    /**
                     * Encodes the specified PatchBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchBackendBucketRequest.verify|verify} messages.
                     * @param message PatchBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchBackendBucketRequest.verify|verify} messages.
                     * @param message PatchBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchBackendBucketRequest;

                    /**
                     * Decodes a PatchBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchBackendBucketRequest;

                    /**
                     * Verifies a PatchBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchBackendBucketRequest;

                    /**
                     * Creates a plain object from a PatchBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message PatchBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchBackendServiceRequest. */
                interface IPatchBackendServiceRequest {

                    /** PatchBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** PatchBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** PatchBackendServiceRequest project */
                    project?: (string|null);

                    /** PatchBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchBackendServiceRequest. */
                class PatchBackendServiceRequest implements IPatchBackendServiceRequest {

                    /**
                     * Constructs a new PatchBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchBackendServiceRequest);

                    /** PatchBackendServiceRequest backendService. */
                    public backendService: string;

                    /** PatchBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** PatchBackendServiceRequest project. */
                    public project: string;

                    /** PatchBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchBackendServiceRequest): google.cloud.compute.v1beta.PatchBackendServiceRequest;

                    /**
                     * Encodes the specified PatchBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchBackendServiceRequest.verify|verify} messages.
                     * @param message PatchBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchBackendServiceRequest.verify|verify} messages.
                     * @param message PatchBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchBackendServiceRequest;

                    /**
                     * Decodes a PatchBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchBackendServiceRequest;

                    /**
                     * Verifies a PatchBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchBackendServiceRequest;

                    /**
                     * Creates a plain object from a PatchBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message PatchBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchCrossSiteNetworkRequest. */
                interface IPatchCrossSiteNetworkRequest {

                    /** PatchCrossSiteNetworkRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** PatchCrossSiteNetworkRequest crossSiteNetworkResource */
                    crossSiteNetworkResource?: (google.cloud.compute.v1beta.ICrossSiteNetwork|null);

                    /** PatchCrossSiteNetworkRequest project */
                    project?: (string|null);

                    /** PatchCrossSiteNetworkRequest requestId */
                    requestId?: (string|null);

                    /** PatchCrossSiteNetworkRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchCrossSiteNetworkRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents a PatchCrossSiteNetworkRequest. */
                class PatchCrossSiteNetworkRequest implements IPatchCrossSiteNetworkRequest {

                    /**
                     * Constructs a new PatchCrossSiteNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchCrossSiteNetworkRequest);

                    /** PatchCrossSiteNetworkRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** PatchCrossSiteNetworkRequest crossSiteNetworkResource. */
                    public crossSiteNetworkResource?: (google.cloud.compute.v1beta.ICrossSiteNetwork|null);

                    /** PatchCrossSiteNetworkRequest project. */
                    public project: string;

                    /** PatchCrossSiteNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchCrossSiteNetworkRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchCrossSiteNetworkRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new PatchCrossSiteNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchCrossSiteNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchCrossSiteNetworkRequest): google.cloud.compute.v1beta.PatchCrossSiteNetworkRequest;

                    /**
                     * Encodes the specified PatchCrossSiteNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message PatchCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchCrossSiteNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchCrossSiteNetworkRequest.verify|verify} messages.
                     * @param message PatchCrossSiteNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchCrossSiteNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchCrossSiteNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchCrossSiteNetworkRequest;

                    /**
                     * Decodes a PatchCrossSiteNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchCrossSiteNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchCrossSiteNetworkRequest;

                    /**
                     * Verifies a PatchCrossSiteNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchCrossSiteNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchCrossSiteNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchCrossSiteNetworkRequest;

                    /**
                     * Creates a plain object from a PatchCrossSiteNetworkRequest message. Also converts values to other types if specified.
                     * @param message PatchCrossSiteNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchCrossSiteNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchCrossSiteNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchCrossSiteNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchDiskSettingRequest. */
                interface IPatchDiskSettingRequest {

                    /** PatchDiskSettingRequest diskSettingsResource */
                    diskSettingsResource?: (google.cloud.compute.v1beta.IDiskSettings|null);

                    /** PatchDiskSettingRequest project */
                    project?: (string|null);

                    /** PatchDiskSettingRequest requestId */
                    requestId?: (string|null);

                    /** PatchDiskSettingRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchDiskSettingRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchDiskSettingRequest. */
                class PatchDiskSettingRequest implements IPatchDiskSettingRequest {

                    /**
                     * Constructs a new PatchDiskSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchDiskSettingRequest);

                    /** PatchDiskSettingRequest diskSettingsResource. */
                    public diskSettingsResource?: (google.cloud.compute.v1beta.IDiskSettings|null);

                    /** PatchDiskSettingRequest project. */
                    public project: string;

                    /** PatchDiskSettingRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchDiskSettingRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchDiskSettingRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchDiskSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchDiskSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchDiskSettingRequest): google.cloud.compute.v1beta.PatchDiskSettingRequest;

                    /**
                     * Encodes the specified PatchDiskSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchDiskSettingRequest.verify|verify} messages.
                     * @param message PatchDiskSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchDiskSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchDiskSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchDiskSettingRequest.verify|verify} messages.
                     * @param message PatchDiskSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchDiskSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchDiskSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchDiskSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchDiskSettingRequest;

                    /**
                     * Decodes a PatchDiskSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchDiskSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchDiskSettingRequest;

                    /**
                     * Verifies a PatchDiskSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchDiskSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchDiskSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchDiskSettingRequest;

                    /**
                     * Creates a plain object from a PatchDiskSettingRequest message. Also converts values to other types if specified.
                     * @param message PatchDiskSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchDiskSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchDiskSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchDiskSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchFirewallPolicyRequest. */
                interface IPatchFirewallPolicyRequest {

                    /** PatchFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** PatchFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchFirewallPolicyRequest. */
                class PatchFirewallPolicyRequest implements IPatchFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchFirewallPolicyRequest);

                    /** PatchFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** PatchFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchFirewallPolicyRequest): google.cloud.compute.v1beta.PatchFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchFirewallPolicyRequest;

                    /**
                     * Decodes a PatchFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchFirewallPolicyRequest;

                    /**
                     * Verifies a PatchFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchFirewallRequest. */
                interface IPatchFirewallRequest {

                    /** PatchFirewallRequest firewall */
                    firewall?: (string|null);

                    /** PatchFirewallRequest firewallResource */
                    firewallResource?: (google.cloud.compute.v1beta.IFirewall|null);

                    /** PatchFirewallRequest project */
                    project?: (string|null);

                    /** PatchFirewallRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchFirewallRequest. */
                class PatchFirewallRequest implements IPatchFirewallRequest {

                    /**
                     * Constructs a new PatchFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchFirewallRequest);

                    /** PatchFirewallRequest firewall. */
                    public firewall: string;

                    /** PatchFirewallRequest firewallResource. */
                    public firewallResource?: (google.cloud.compute.v1beta.IFirewall|null);

                    /** PatchFirewallRequest project. */
                    public project: string;

                    /** PatchFirewallRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchFirewallRequest): google.cloud.compute.v1beta.PatchFirewallRequest;

                    /**
                     * Encodes the specified PatchFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchFirewallRequest.verify|verify} messages.
                     * @param message PatchFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchFirewallRequest.verify|verify} messages.
                     * @param message PatchFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchFirewallRequest;

                    /**
                     * Decodes a PatchFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchFirewallRequest;

                    /**
                     * Verifies a PatchFirewallRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchFirewallRequest;

                    /**
                     * Creates a plain object from a PatchFirewallRequest message. Also converts values to other types if specified.
                     * @param message PatchFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchForwardingRuleRequest. */
                interface IPatchForwardingRuleRequest {

                    /** PatchForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** PatchForwardingRuleRequest forwardingRuleResource */
                    forwardingRuleResource?: (google.cloud.compute.v1beta.IForwardingRule|null);

                    /** PatchForwardingRuleRequest project */
                    project?: (string|null);

                    /** PatchForwardingRuleRequest region */
                    region?: (string|null);

                    /** PatchForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchForwardingRuleRequest. */
                class PatchForwardingRuleRequest implements IPatchForwardingRuleRequest {

                    /**
                     * Constructs a new PatchForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchForwardingRuleRequest);

                    /** PatchForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** PatchForwardingRuleRequest forwardingRuleResource. */
                    public forwardingRuleResource?: (google.cloud.compute.v1beta.IForwardingRule|null);

                    /** PatchForwardingRuleRequest project. */
                    public project: string;

                    /** PatchForwardingRuleRequest region. */
                    public region: string;

                    /** PatchForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchForwardingRuleRequest): google.cloud.compute.v1beta.PatchForwardingRuleRequest;

                    /**
                     * Encodes the specified PatchForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchForwardingRuleRequest.verify|verify} messages.
                     * @param message PatchForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchForwardingRuleRequest.verify|verify} messages.
                     * @param message PatchForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchForwardingRuleRequest;

                    /**
                     * Decodes a PatchForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchForwardingRuleRequest;

                    /**
                     * Verifies a PatchForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchForwardingRuleRequest;

                    /**
                     * Creates a plain object from a PatchForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message PatchForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchGlobalForwardingRuleRequest. */
                interface IPatchGlobalForwardingRuleRequest {

                    /** PatchGlobalForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** PatchGlobalForwardingRuleRequest forwardingRuleResource */
                    forwardingRuleResource?: (google.cloud.compute.v1beta.IForwardingRule|null);

                    /** PatchGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** PatchGlobalForwardingRuleRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchGlobalForwardingRuleRequest. */
                class PatchGlobalForwardingRuleRequest implements IPatchGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new PatchGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchGlobalForwardingRuleRequest);

                    /** PatchGlobalForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** PatchGlobalForwardingRuleRequest forwardingRuleResource. */
                    public forwardingRuleResource?: (google.cloud.compute.v1beta.IForwardingRule|null);

                    /** PatchGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** PatchGlobalForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchGlobalForwardingRuleRequest): google.cloud.compute.v1beta.PatchGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified PatchGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message PatchGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message PatchGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchGlobalForwardingRuleRequest;

                    /**
                     * Decodes a PatchGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchGlobalForwardingRuleRequest;

                    /**
                     * Verifies a PatchGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a PatchGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message PatchGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchGlobalPublicDelegatedPrefixeRequest. */
                interface IPatchGlobalPublicDelegatedPrefixeRequest {

                    /** PatchGlobalPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** PatchGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** PatchGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefixResource */
                    publicDelegatedPrefixResource?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix|null);

                    /** PatchGlobalPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchGlobalPublicDelegatedPrefixeRequest. */
                class PatchGlobalPublicDelegatedPrefixeRequest implements IPatchGlobalPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new PatchGlobalPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchGlobalPublicDelegatedPrefixeRequest);

                    /** PatchGlobalPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** PatchGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** PatchGlobalPublicDelegatedPrefixeRequest publicDelegatedPrefixResource. */
                    public publicDelegatedPrefixResource?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix|null);

                    /** PatchGlobalPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchGlobalPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchGlobalPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchGlobalPublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.PatchGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified PatchGlobalPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message PatchGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchGlobalPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchGlobalPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message PatchGlobalPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchGlobalPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a PatchGlobalPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchGlobalPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a PatchGlobalPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchGlobalPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchGlobalPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchGlobalPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a PatchGlobalPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message PatchGlobalPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchGlobalPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchGlobalPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchGlobalPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchHealthCheckRequest. */
                interface IPatchHealthCheckRequest {

                    /** PatchHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** PatchHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** PatchHealthCheckRequest project */
                    project?: (string|null);

                    /** PatchHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchHealthCheckRequest. */
                class PatchHealthCheckRequest implements IPatchHealthCheckRequest {

                    /**
                     * Constructs a new PatchHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchHealthCheckRequest);

                    /** PatchHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** PatchHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** PatchHealthCheckRequest project. */
                    public project: string;

                    /** PatchHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchHealthCheckRequest): google.cloud.compute.v1beta.PatchHealthCheckRequest;

                    /**
                     * Encodes the specified PatchHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchHealthCheckRequest.verify|verify} messages.
                     * @param message PatchHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchHealthCheckRequest.verify|verify} messages.
                     * @param message PatchHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchHealthCheckRequest;

                    /**
                     * Decodes a PatchHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchHealthCheckRequest;

                    /**
                     * Verifies a PatchHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchHealthCheckRequest;

                    /**
                     * Creates a plain object from a PatchHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message PatchHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchImageRequest. */
                interface IPatchImageRequest {

                    /** PatchImageRequest image */
                    image?: (string|null);

                    /** PatchImageRequest imageResource */
                    imageResource?: (google.cloud.compute.v1beta.IImage|null);

                    /** PatchImageRequest project */
                    project?: (string|null);

                    /** PatchImageRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchImageRequest. */
                class PatchImageRequest implements IPatchImageRequest {

                    /**
                     * Constructs a new PatchImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchImageRequest);

                    /** PatchImageRequest image. */
                    public image: string;

                    /** PatchImageRequest imageResource. */
                    public imageResource?: (google.cloud.compute.v1beta.IImage|null);

                    /** PatchImageRequest project. */
                    public project: string;

                    /** PatchImageRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchImageRequest): google.cloud.compute.v1beta.PatchImageRequest;

                    /**
                     * Encodes the specified PatchImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchImageRequest.verify|verify} messages.
                     * @param message PatchImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchImageRequest.verify|verify} messages.
                     * @param message PatchImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchImageRequest;

                    /**
                     * Decodes a PatchImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchImageRequest;

                    /**
                     * Verifies a PatchImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchImageRequest;

                    /**
                     * Creates a plain object from a PatchImageRequest message. Also converts values to other types if specified.
                     * @param message PatchImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInstanceGroupManagerRequest. */
                interface IPatchInstanceGroupManagerRequest {

                    /** PatchInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** PatchInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** PatchInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** PatchInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** PatchInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchInstanceGroupManagerRequest. */
                class PatchInstanceGroupManagerRequest implements IPatchInstanceGroupManagerRequest {

                    /**
                     * Constructs a new PatchInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchInstanceGroupManagerRequest);

                    /** PatchInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** PatchInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** PatchInstanceGroupManagerRequest project. */
                    public project: string;

                    /** PatchInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchInstanceGroupManagerRequest): google.cloud.compute.v1beta.PatchInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified PatchInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchInstanceGroupManagerRequest;

                    /**
                     * Decodes a PatchInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchInstanceGroupManagerRequest;

                    /**
                     * Verifies a PatchInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a PatchInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message PatchInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInstanceSettingRequest. */
                interface IPatchInstanceSettingRequest {

                    /** PatchInstanceSettingRequest instanceSettingsResource */
                    instanceSettingsResource?: (google.cloud.compute.v1beta.IInstanceSettings|null);

                    /** PatchInstanceSettingRequest project */
                    project?: (string|null);

                    /** PatchInstanceSettingRequest requestId */
                    requestId?: (string|null);

                    /** PatchInstanceSettingRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchInstanceSettingRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchInstanceSettingRequest. */
                class PatchInstanceSettingRequest implements IPatchInstanceSettingRequest {

                    /**
                     * Constructs a new PatchInstanceSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchInstanceSettingRequest);

                    /** PatchInstanceSettingRequest instanceSettingsResource. */
                    public instanceSettingsResource?: (google.cloud.compute.v1beta.IInstanceSettings|null);

                    /** PatchInstanceSettingRequest project. */
                    public project: string;

                    /** PatchInstanceSettingRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchInstanceSettingRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchInstanceSettingRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchInstanceSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInstanceSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchInstanceSettingRequest): google.cloud.compute.v1beta.PatchInstanceSettingRequest;

                    /**
                     * Encodes the specified PatchInstanceSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchInstanceSettingRequest.verify|verify} messages.
                     * @param message PatchInstanceSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchInstanceSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInstanceSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchInstanceSettingRequest.verify|verify} messages.
                     * @param message PatchInstanceSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchInstanceSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInstanceSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInstanceSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchInstanceSettingRequest;

                    /**
                     * Decodes a PatchInstanceSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInstanceSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchInstanceSettingRequest;

                    /**
                     * Verifies a PatchInstanceSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInstanceSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInstanceSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchInstanceSettingRequest;

                    /**
                     * Creates a plain object from a PatchInstanceSettingRequest message. Also converts values to other types if specified.
                     * @param message PatchInstanceSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchInstanceSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInstanceSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInstanceSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInterconnectAttachmentGroupRequest. */
                interface IPatchInterconnectAttachmentGroupRequest {

                    /** PatchInterconnectAttachmentGroupRequest interconnectAttachmentGroup */
                    interconnectAttachmentGroup?: (string|null);

                    /** PatchInterconnectAttachmentGroupRequest interconnectAttachmentGroupResource */
                    interconnectAttachmentGroupResource?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroup|null);

                    /** PatchInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** PatchInterconnectAttachmentGroupRequest requestId */
                    requestId?: (string|null);

                    /** PatchInterconnectAttachmentGroupRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchInterconnectAttachmentGroupRequest. */
                class PatchInterconnectAttachmentGroupRequest implements IPatchInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new PatchInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchInterconnectAttachmentGroupRequest);

                    /** PatchInterconnectAttachmentGroupRequest interconnectAttachmentGroup. */
                    public interconnectAttachmentGroup: string;

                    /** PatchInterconnectAttachmentGroupRequest interconnectAttachmentGroupResource. */
                    public interconnectAttachmentGroupResource?: (google.cloud.compute.v1beta.IInterconnectAttachmentGroup|null);

                    /** PatchInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** PatchInterconnectAttachmentGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchInterconnectAttachmentGroupRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchInterconnectAttachmentGroupRequest): google.cloud.compute.v1beta.PatchInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified PatchInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message PatchInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message PatchInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a PatchInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a PatchInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a PatchInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message PatchInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInterconnectAttachmentRequest. */
                interface IPatchInterconnectAttachmentRequest {

                    /** PatchInterconnectAttachmentRequest interconnectAttachment */
                    interconnectAttachment?: (string|null);

                    /** PatchInterconnectAttachmentRequest interconnectAttachmentResource */
                    interconnectAttachmentResource?: (google.cloud.compute.v1beta.IInterconnectAttachment|null);

                    /** PatchInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** PatchInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** PatchInterconnectAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchInterconnectAttachmentRequest. */
                class PatchInterconnectAttachmentRequest implements IPatchInterconnectAttachmentRequest {

                    /**
                     * Constructs a new PatchInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchInterconnectAttachmentRequest);

                    /** PatchInterconnectAttachmentRequest interconnectAttachment. */
                    public interconnectAttachment: string;

                    /** PatchInterconnectAttachmentRequest interconnectAttachmentResource. */
                    public interconnectAttachmentResource?: (google.cloud.compute.v1beta.IInterconnectAttachment|null);

                    /** PatchInterconnectAttachmentRequest project. */
                    public project: string;

                    /** PatchInterconnectAttachmentRequest region. */
                    public region: string;

                    /** PatchInterconnectAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchInterconnectAttachmentRequest): google.cloud.compute.v1beta.PatchInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified PatchInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message PatchInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message PatchInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchInterconnectAttachmentRequest;

                    /**
                     * Decodes a PatchInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchInterconnectAttachmentRequest;

                    /**
                     * Verifies a PatchInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a PatchInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message PatchInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInterconnectGroupRequest. */
                interface IPatchInterconnectGroupRequest {

                    /** PatchInterconnectGroupRequest interconnectGroup */
                    interconnectGroup?: (string|null);

                    /** PatchInterconnectGroupRequest interconnectGroupResource */
                    interconnectGroupResource?: (google.cloud.compute.v1beta.IInterconnectGroup|null);

                    /** PatchInterconnectGroupRequest project */
                    project?: (string|null);

                    /** PatchInterconnectGroupRequest requestId */
                    requestId?: (string|null);

                    /** PatchInterconnectGroupRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchInterconnectGroupRequest. */
                class PatchInterconnectGroupRequest implements IPatchInterconnectGroupRequest {

                    /**
                     * Constructs a new PatchInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchInterconnectGroupRequest);

                    /** PatchInterconnectGroupRequest interconnectGroup. */
                    public interconnectGroup: string;

                    /** PatchInterconnectGroupRequest interconnectGroupResource. */
                    public interconnectGroupResource?: (google.cloud.compute.v1beta.IInterconnectGroup|null);

                    /** PatchInterconnectGroupRequest project. */
                    public project: string;

                    /** PatchInterconnectGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchInterconnectGroupRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchInterconnectGroupRequest): google.cloud.compute.v1beta.PatchInterconnectGroupRequest;

                    /**
                     * Encodes the specified PatchInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchInterconnectGroupRequest.verify|verify} messages.
                     * @param message PatchInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchInterconnectGroupRequest.verify|verify} messages.
                     * @param message PatchInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchInterconnectGroupRequest;

                    /**
                     * Decodes a PatchInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchInterconnectGroupRequest;

                    /**
                     * Verifies a PatchInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a PatchInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message PatchInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchInterconnectRequest. */
                interface IPatchInterconnectRequest {

                    /** PatchInterconnectRequest interconnect */
                    interconnect?: (string|null);

                    /** PatchInterconnectRequest interconnectResource */
                    interconnectResource?: (google.cloud.compute.v1beta.IInterconnect|null);

                    /** PatchInterconnectRequest project */
                    project?: (string|null);

                    /** PatchInterconnectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchInterconnectRequest. */
                class PatchInterconnectRequest implements IPatchInterconnectRequest {

                    /**
                     * Constructs a new PatchInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchInterconnectRequest);

                    /** PatchInterconnectRequest interconnect. */
                    public interconnect: string;

                    /** PatchInterconnectRequest interconnectResource. */
                    public interconnectResource?: (google.cloud.compute.v1beta.IInterconnect|null);

                    /** PatchInterconnectRequest project. */
                    public project: string;

                    /** PatchInterconnectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchInterconnectRequest): google.cloud.compute.v1beta.PatchInterconnectRequest;

                    /**
                     * Encodes the specified PatchInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchInterconnectRequest.verify|verify} messages.
                     * @param message PatchInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchInterconnectRequest.verify|verify} messages.
                     * @param message PatchInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchInterconnectRequest;

                    /**
                     * Decodes a PatchInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchInterconnectRequest;

                    /**
                     * Verifies a PatchInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchInterconnectRequest;

                    /**
                     * Creates a plain object from a PatchInterconnectRequest message. Also converts values to other types if specified.
                     * @param message PatchInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNamedSetRouterRequest. */
                interface IPatchNamedSetRouterRequest {

                    /** PatchNamedSetRouterRequest namedSetResource */
                    namedSetResource?: (google.cloud.compute.v1beta.INamedSet|null);

                    /** PatchNamedSetRouterRequest project */
                    project?: (string|null);

                    /** PatchNamedSetRouterRequest region */
                    region?: (string|null);

                    /** PatchNamedSetRouterRequest requestId */
                    requestId?: (string|null);

                    /** PatchNamedSetRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a PatchNamedSetRouterRequest. */
                class PatchNamedSetRouterRequest implements IPatchNamedSetRouterRequest {

                    /**
                     * Constructs a new PatchNamedSetRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchNamedSetRouterRequest);

                    /** PatchNamedSetRouterRequest namedSetResource. */
                    public namedSetResource?: (google.cloud.compute.v1beta.INamedSet|null);

                    /** PatchNamedSetRouterRequest project. */
                    public project: string;

                    /** PatchNamedSetRouterRequest region. */
                    public region: string;

                    /** PatchNamedSetRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchNamedSetRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new PatchNamedSetRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNamedSetRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchNamedSetRouterRequest): google.cloud.compute.v1beta.PatchNamedSetRouterRequest;

                    /**
                     * Encodes the specified PatchNamedSetRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchNamedSetRouterRequest.verify|verify} messages.
                     * @param message PatchNamedSetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchNamedSetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNamedSetRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchNamedSetRouterRequest.verify|verify} messages.
                     * @param message PatchNamedSetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchNamedSetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNamedSetRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNamedSetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchNamedSetRouterRequest;

                    /**
                     * Decodes a PatchNamedSetRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNamedSetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchNamedSetRouterRequest;

                    /**
                     * Verifies a PatchNamedSetRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNamedSetRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNamedSetRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchNamedSetRouterRequest;

                    /**
                     * Creates a plain object from a PatchNamedSetRouterRequest message. Also converts values to other types if specified.
                     * @param message PatchNamedSetRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchNamedSetRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNamedSetRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNamedSetRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNetworkAttachmentRequest. */
                interface IPatchNetworkAttachmentRequest {

                    /** PatchNetworkAttachmentRequest networkAttachment */
                    networkAttachment?: (string|null);

                    /** PatchNetworkAttachmentRequest networkAttachmentResource */
                    networkAttachmentResource?: (google.cloud.compute.v1beta.INetworkAttachment|null);

                    /** PatchNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** PatchNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** PatchNetworkAttachmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchNetworkAttachmentRequest. */
                class PatchNetworkAttachmentRequest implements IPatchNetworkAttachmentRequest {

                    /**
                     * Constructs a new PatchNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchNetworkAttachmentRequest);

                    /** PatchNetworkAttachmentRequest networkAttachment. */
                    public networkAttachment: string;

                    /** PatchNetworkAttachmentRequest networkAttachmentResource. */
                    public networkAttachmentResource?: (google.cloud.compute.v1beta.INetworkAttachment|null);

                    /** PatchNetworkAttachmentRequest project. */
                    public project: string;

                    /** PatchNetworkAttachmentRequest region. */
                    public region: string;

                    /** PatchNetworkAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchNetworkAttachmentRequest): google.cloud.compute.v1beta.PatchNetworkAttachmentRequest;

                    /**
                     * Encodes the specified PatchNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchNetworkAttachmentRequest.verify|verify} messages.
                     * @param message PatchNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchNetworkAttachmentRequest.verify|verify} messages.
                     * @param message PatchNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchNetworkAttachmentRequest;

                    /**
                     * Decodes a PatchNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchNetworkAttachmentRequest;

                    /**
                     * Verifies a PatchNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a PatchNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message PatchNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNetworkEdgeSecurityServiceRequest. */
                interface IPatchNetworkEdgeSecurityServiceRequest {

                    /** PatchNetworkEdgeSecurityServiceRequest networkEdgeSecurityService */
                    networkEdgeSecurityService?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest networkEdgeSecurityServiceResource */
                    networkEdgeSecurityServiceResource?: (google.cloud.compute.v1beta.INetworkEdgeSecurityService|null);

                    /** PatchNetworkEdgeSecurityServiceRequest paths */
                    paths?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest project */
                    project?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest region */
                    region?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest requestId */
                    requestId?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchNetworkEdgeSecurityServiceRequest. */
                class PatchNetworkEdgeSecurityServiceRequest implements IPatchNetworkEdgeSecurityServiceRequest {

                    /**
                     * Constructs a new PatchNetworkEdgeSecurityServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchNetworkEdgeSecurityServiceRequest);

                    /** PatchNetworkEdgeSecurityServiceRequest networkEdgeSecurityService. */
                    public networkEdgeSecurityService: string;

                    /** PatchNetworkEdgeSecurityServiceRequest networkEdgeSecurityServiceResource. */
                    public networkEdgeSecurityServiceResource?: (google.cloud.compute.v1beta.INetworkEdgeSecurityService|null);

                    /** PatchNetworkEdgeSecurityServiceRequest paths. */
                    public paths?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest project. */
                    public project: string;

                    /** PatchNetworkEdgeSecurityServiceRequest region. */
                    public region: string;

                    /** PatchNetworkEdgeSecurityServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchNetworkEdgeSecurityServiceRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchNetworkEdgeSecurityServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNetworkEdgeSecurityServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchNetworkEdgeSecurityServiceRequest): google.cloud.compute.v1beta.PatchNetworkEdgeSecurityServiceRequest;

                    /**
                     * Encodes the specified PatchNetworkEdgeSecurityServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message PatchNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNetworkEdgeSecurityServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchNetworkEdgeSecurityServiceRequest.verify|verify} messages.
                     * @param message PatchNetworkEdgeSecurityServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchNetworkEdgeSecurityServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNetworkEdgeSecurityServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchNetworkEdgeSecurityServiceRequest;

                    /**
                     * Decodes a PatchNetworkEdgeSecurityServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNetworkEdgeSecurityServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchNetworkEdgeSecurityServiceRequest;

                    /**
                     * Verifies a PatchNetworkEdgeSecurityServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNetworkEdgeSecurityServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNetworkEdgeSecurityServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchNetworkEdgeSecurityServiceRequest;

                    /**
                     * Creates a plain object from a PatchNetworkEdgeSecurityServiceRequest message. Also converts values to other types if specified.
                     * @param message PatchNetworkEdgeSecurityServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchNetworkEdgeSecurityServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNetworkEdgeSecurityServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNetworkEdgeSecurityServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNetworkFirewallPolicyRequest. */
                interface IPatchNetworkFirewallPolicyRequest {

                    /** PatchNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchNetworkFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** PatchNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchNetworkFirewallPolicyRequest. */
                class PatchNetworkFirewallPolicyRequest implements IPatchNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchNetworkFirewallPolicyRequest);

                    /** PatchNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchNetworkFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** PatchNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.PatchNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNetworkRequest. */
                interface IPatchNetworkRequest {

                    /** PatchNetworkRequest network */
                    network?: (string|null);

                    /** PatchNetworkRequest networkResource */
                    networkResource?: (google.cloud.compute.v1beta.INetwork|null);

                    /** PatchNetworkRequest project */
                    project?: (string|null);

                    /** PatchNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchNetworkRequest. */
                class PatchNetworkRequest implements IPatchNetworkRequest {

                    /**
                     * Constructs a new PatchNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchNetworkRequest);

                    /** PatchNetworkRequest network. */
                    public network: string;

                    /** PatchNetworkRequest networkResource. */
                    public networkResource?: (google.cloud.compute.v1beta.INetwork|null);

                    /** PatchNetworkRequest project. */
                    public project: string;

                    /** PatchNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchNetworkRequest): google.cloud.compute.v1beta.PatchNetworkRequest;

                    /**
                     * Encodes the specified PatchNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchNetworkRequest.verify|verify} messages.
                     * @param message PatchNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchNetworkRequest.verify|verify} messages.
                     * @param message PatchNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchNetworkRequest;

                    /**
                     * Decodes a PatchNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchNetworkRequest;

                    /**
                     * Verifies a PatchNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchNetworkRequest;

                    /**
                     * Creates a plain object from a PatchNetworkRequest message. Also converts values to other types if specified.
                     * @param message PatchNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchNodeGroupRequest. */
                interface IPatchNodeGroupRequest {

                    /** PatchNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** PatchNodeGroupRequest nodeGroupResource */
                    nodeGroupResource?: (google.cloud.compute.v1beta.INodeGroup|null);

                    /** PatchNodeGroupRequest project */
                    project?: (string|null);

                    /** PatchNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** PatchNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchNodeGroupRequest. */
                class PatchNodeGroupRequest implements IPatchNodeGroupRequest {

                    /**
                     * Constructs a new PatchNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchNodeGroupRequest);

                    /** PatchNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** PatchNodeGroupRequest nodeGroupResource. */
                    public nodeGroupResource?: (google.cloud.compute.v1beta.INodeGroup|null);

                    /** PatchNodeGroupRequest project. */
                    public project: string;

                    /** PatchNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchNodeGroupRequest): google.cloud.compute.v1beta.PatchNodeGroupRequest;

                    /**
                     * Encodes the specified PatchNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchNodeGroupRequest.verify|verify} messages.
                     * @param message PatchNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchNodeGroupRequest.verify|verify} messages.
                     * @param message PatchNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchNodeGroupRequest;

                    /**
                     * Decodes a PatchNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchNodeGroupRequest;

                    /**
                     * Verifies a PatchNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchNodeGroupRequest;

                    /**
                     * Creates a plain object from a PatchNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message PatchNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchOrganizationSecurityPolicyRequest. */
                interface IPatchOrganizationSecurityPolicyRequest {

                    /** PatchOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchOrganizationSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** PatchOrganizationSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchOrganizationSecurityPolicyRequest. */
                class PatchOrganizationSecurityPolicyRequest implements IPatchOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchOrganizationSecurityPolicyRequest);

                    /** PatchOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchOrganizationSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** PatchOrganizationSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.PatchOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a PatchOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a PatchOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPacketMirroringRequest. */
                interface IPatchPacketMirroringRequest {

                    /** PatchPacketMirroringRequest packetMirroring */
                    packetMirroring?: (string|null);

                    /** PatchPacketMirroringRequest packetMirroringResource */
                    packetMirroringResource?: (google.cloud.compute.v1beta.IPacketMirroring|null);

                    /** PatchPacketMirroringRequest project */
                    project?: (string|null);

                    /** PatchPacketMirroringRequest region */
                    region?: (string|null);

                    /** PatchPacketMirroringRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPacketMirroringRequest. */
                class PatchPacketMirroringRequest implements IPatchPacketMirroringRequest {

                    /**
                     * Constructs a new PatchPacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchPacketMirroringRequest);

                    /** PatchPacketMirroringRequest packetMirroring. */
                    public packetMirroring: string;

                    /** PatchPacketMirroringRequest packetMirroringResource. */
                    public packetMirroringResource?: (google.cloud.compute.v1beta.IPacketMirroring|null);

                    /** PatchPacketMirroringRequest project. */
                    public project: string;

                    /** PatchPacketMirroringRequest region. */
                    public region: string;

                    /** PatchPacketMirroringRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchPacketMirroringRequest): google.cloud.compute.v1beta.PatchPacketMirroringRequest;

                    /**
                     * Encodes the specified PatchPacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchPacketMirroringRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchPacketMirroringRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchPacketMirroringRequest;

                    /**
                     * Decodes a PatchPacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchPacketMirroringRequest;

                    /**
                     * Verifies a PatchPacketMirroringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchPacketMirroringRequest;

                    /**
                     * Creates a plain object from a PatchPacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message PatchPacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchPacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPacketMirroringRuleFirewallPolicyRequest. */
                interface IPatchPacketMirroringRuleFirewallPolicyRequest {

                    /** PatchPacketMirroringRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchPacketMirroringRuleFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchPacketMirroringRuleFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchPacketMirroringRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPacketMirroringRuleFirewallPolicyRequest. */
                class PatchPacketMirroringRuleFirewallPolicyRequest implements IPatchPacketMirroringRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchPacketMirroringRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchPacketMirroringRuleFirewallPolicyRequest);

                    /** PatchPacketMirroringRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchPacketMirroringRuleFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchPacketMirroringRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchPacketMirroringRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPacketMirroringRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPacketMirroringRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchPacketMirroringRuleFirewallPolicyRequest): google.cloud.compute.v1beta.PatchPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchPacketMirroringRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchPacketMirroringRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchPacketMirroringRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPacketMirroringRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchPacketMirroringRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchPacketMirroringRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPacketMirroringRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPacketMirroringRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Decodes a PatchPacketMirroringRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPacketMirroringRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Verifies a PatchPacketMirroringRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPacketMirroringRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPacketMirroringRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchPacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchPacketMirroringRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchPacketMirroringRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchPacketMirroringRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPacketMirroringRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPacketMirroringRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPacketMirroringRuleNetworkFirewallPolicyRequest. */
                interface IPatchPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPacketMirroringRuleNetworkFirewallPolicyRequest. */
                class PatchPacketMirroringRuleNetworkFirewallPolicyRequest implements IPatchPacketMirroringRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchPacketMirroringRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchPacketMirroringRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPacketMirroringRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPacketMirroringRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.PatchPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchPacketMirroringRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPacketMirroringRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchPacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchPacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchPacketMirroringRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchPacketMirroringRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPacketMirroringRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPartnerMetadataInstanceRequest. */
                interface IPatchPartnerMetadataInstanceRequest {

                    /** PatchPartnerMetadataInstanceRequest instance */
                    instance?: (string|null);

                    /** PatchPartnerMetadataInstanceRequest partnerMetadataResource */
                    partnerMetadataResource?: (google.cloud.compute.v1beta.IPartnerMetadata|null);

                    /** PatchPartnerMetadataInstanceRequest project */
                    project?: (string|null);

                    /** PatchPartnerMetadataInstanceRequest requestId */
                    requestId?: (string|null);

                    /** PatchPartnerMetadataInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchPartnerMetadataInstanceRequest. */
                class PatchPartnerMetadataInstanceRequest implements IPatchPartnerMetadataInstanceRequest {

                    /**
                     * Constructs a new PatchPartnerMetadataInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest);

                    /** PatchPartnerMetadataInstanceRequest instance. */
                    public instance: string;

                    /** PatchPartnerMetadataInstanceRequest partnerMetadataResource. */
                    public partnerMetadataResource?: (google.cloud.compute.v1beta.IPartnerMetadata|null);

                    /** PatchPartnerMetadataInstanceRequest project. */
                    public project: string;

                    /** PatchPartnerMetadataInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchPartnerMetadataInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchPartnerMetadataInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPartnerMetadataInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest): google.cloud.compute.v1beta.PatchPartnerMetadataInstanceRequest;

                    /**
                     * Encodes the specified PatchPartnerMetadataInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchPartnerMetadataInstanceRequest.verify|verify} messages.
                     * @param message PatchPartnerMetadataInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPartnerMetadataInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchPartnerMetadataInstanceRequest.verify|verify} messages.
                     * @param message PatchPartnerMetadataInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPartnerMetadataInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPartnerMetadataInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchPartnerMetadataInstanceRequest;

                    /**
                     * Decodes a PatchPartnerMetadataInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPartnerMetadataInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchPartnerMetadataInstanceRequest;

                    /**
                     * Verifies a PatchPartnerMetadataInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPartnerMetadataInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPartnerMetadataInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchPartnerMetadataInstanceRequest;

                    /**
                     * Creates a plain object from a PatchPartnerMetadataInstanceRequest message. Also converts values to other types if specified.
                     * @param message PatchPartnerMetadataInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchPartnerMetadataInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPartnerMetadataInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPartnerMetadataInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPerInstanceConfigsInstanceGroupManagerRequest. */
                interface IPatchPerInstanceConfigsInstanceGroupManagerRequest {

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersPatchPerInstanceConfigsReqResource */
                    instanceGroupManagersPatchPerInstanceConfigsReqResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersPatchPerInstanceConfigsReq|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PatchPerInstanceConfigsInstanceGroupManagerRequest. */
                class PatchPerInstanceConfigsInstanceGroupManagerRequest implements IPatchPerInstanceConfigsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new PatchPerInstanceConfigsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchPerInstanceConfigsInstanceGroupManagerRequest);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersPatchPerInstanceConfigsReqResource. */
                    public instanceGroupManagersPatchPerInstanceConfigsReqResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersPatchPerInstanceConfigsReq|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchPerInstanceConfigsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PatchPerInstanceConfigsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPerInstanceConfigsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchPerInstanceConfigsInstanceGroupManagerRequest): google.cloud.compute.v1beta.PatchPerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified PatchPerInstanceConfigsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchPerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchPerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchPerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPerInstanceConfigsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchPerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchPerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchPerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchPerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Decodes a PatchPerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchPerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Verifies a PatchPerInstanceConfigsInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPerInstanceConfigsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPerInstanceConfigsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchPerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a PatchPerInstanceConfigsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message PatchPerInstanceConfigsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchPerInstanceConfigsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPerInstanceConfigsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPerInstanceConfigsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest. */
                interface IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerPatchInstanceConfigReqResource */
                    regionInstanceGroupManagerPatchInstanceConfigReqResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagerPatchInstanceConfigReq|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest. */
                class PatchPerInstanceConfigsRegionInstanceGroupManagerRequest implements IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new PatchPerInstanceConfigsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerPatchInstanceConfigReqResource. */
                    public regionInstanceGroupManagerPatchInstanceConfigReqResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagerPatchInstanceConfigReq|null);

                    /** PatchPerInstanceConfigsRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPerInstanceConfigsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPerInstanceConfigsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchPerInstanceConfigsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPerInstanceConfigsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPublicAdvertisedPrefixeRequest. */
                interface IPatchPublicAdvertisedPrefixeRequest {

                    /** PatchPublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** PatchPublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);

                    /** PatchPublicAdvertisedPrefixeRequest publicAdvertisedPrefixResource */
                    publicAdvertisedPrefixResource?: (google.cloud.compute.v1beta.IPublicAdvertisedPrefix|null);

                    /** PatchPublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPublicAdvertisedPrefixeRequest. */
                class PatchPublicAdvertisedPrefixeRequest implements IPatchPublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new PatchPublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchPublicAdvertisedPrefixeRequest);

                    /** PatchPublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** PatchPublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /** PatchPublicAdvertisedPrefixeRequest publicAdvertisedPrefixResource. */
                    public publicAdvertisedPrefixResource?: (google.cloud.compute.v1beta.IPublicAdvertisedPrefix|null);

                    /** PatchPublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchPublicAdvertisedPrefixeRequest): google.cloud.compute.v1beta.PatchPublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified PatchPublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message PatchPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message PatchPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchPublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes a PatchPublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchPublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies a PatchPublicAdvertisedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchPublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from a PatchPublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message PatchPublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchPublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchPublicDelegatedPrefixeRequest. */
                interface IPatchPublicDelegatedPrefixeRequest {

                    /** PatchPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** PatchPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** PatchPublicDelegatedPrefixeRequest publicDelegatedPrefixResource */
                    publicDelegatedPrefixResource?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix|null);

                    /** PatchPublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** PatchPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchPublicDelegatedPrefixeRequest. */
                class PatchPublicDelegatedPrefixeRequest implements IPatchPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new PatchPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchPublicDelegatedPrefixeRequest);

                    /** PatchPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** PatchPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** PatchPublicDelegatedPrefixeRequest publicDelegatedPrefixResource. */
                    public publicDelegatedPrefixResource?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix|null);

                    /** PatchPublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** PatchPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchPublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.PatchPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified PatchPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message PatchPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message PatchPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a PatchPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a PatchPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a PatchPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message PatchPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchPublicDelegatedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionAutoscalerRequest. */
                interface IPatchRegionAutoscalerRequest {

                    /** PatchRegionAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** PatchRegionAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** PatchRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** PatchRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** PatchRegionAutoscalerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionAutoscalerRequest. */
                class PatchRegionAutoscalerRequest implements IPatchRegionAutoscalerRequest {

                    /**
                     * Constructs a new PatchRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionAutoscalerRequest);

                    /** PatchRegionAutoscalerRequest autoscaler. */
                    public autoscaler?: (string|null);

                    /** PatchRegionAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** PatchRegionAutoscalerRequest project. */
                    public project: string;

                    /** PatchRegionAutoscalerRequest region. */
                    public region: string;

                    /** PatchRegionAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionAutoscalerRequest): google.cloud.compute.v1beta.PatchRegionAutoscalerRequest;

                    /**
                     * Encodes the specified PatchRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionAutoscalerRequest.verify|verify} messages.
                     * @param message PatchRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionAutoscalerRequest.verify|verify} messages.
                     * @param message PatchRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionAutoscalerRequest;

                    /**
                     * Decodes a PatchRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionAutoscalerRequest;

                    /**
                     * Verifies a PatchRegionAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from a PatchRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionBackendBucketRequest. */
                interface IPatchRegionBackendBucketRequest {

                    /** PatchRegionBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** PatchRegionBackendBucketRequest backendBucketResource */
                    backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** PatchRegionBackendBucketRequest project */
                    project?: (string|null);

                    /** PatchRegionBackendBucketRequest region */
                    region?: (string|null);

                    /** PatchRegionBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionBackendBucketRequest. */
                class PatchRegionBackendBucketRequest implements IPatchRegionBackendBucketRequest {

                    /**
                     * Constructs a new PatchRegionBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionBackendBucketRequest);

                    /** PatchRegionBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** PatchRegionBackendBucketRequest backendBucketResource. */
                    public backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** PatchRegionBackendBucketRequest project. */
                    public project: string;

                    /** PatchRegionBackendBucketRequest region. */
                    public region: string;

                    /** PatchRegionBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionBackendBucketRequest): google.cloud.compute.v1beta.PatchRegionBackendBucketRequest;

                    /**
                     * Encodes the specified PatchRegionBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionBackendBucketRequest.verify|verify} messages.
                     * @param message PatchRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionBackendBucketRequest.verify|verify} messages.
                     * @param message PatchRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionBackendBucketRequest;

                    /**
                     * Decodes a PatchRegionBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionBackendBucketRequest;

                    /**
                     * Verifies a PatchRegionBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionBackendBucketRequest;

                    /**
                     * Creates a plain object from a PatchRegionBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionBackendServiceRequest. */
                interface IPatchRegionBackendServiceRequest {

                    /** PatchRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** PatchRegionBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** PatchRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** PatchRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** PatchRegionBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionBackendServiceRequest. */
                class PatchRegionBackendServiceRequest implements IPatchRegionBackendServiceRequest {

                    /**
                     * Constructs a new PatchRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionBackendServiceRequest);

                    /** PatchRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** PatchRegionBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** PatchRegionBackendServiceRequest project. */
                    public project: string;

                    /** PatchRegionBackendServiceRequest region. */
                    public region: string;

                    /** PatchRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionBackendServiceRequest): google.cloud.compute.v1beta.PatchRegionBackendServiceRequest;

                    /**
                     * Encodes the specified PatchRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionBackendServiceRequest.verify|verify} messages.
                     * @param message PatchRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionBackendServiceRequest.verify|verify} messages.
                     * @param message PatchRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionBackendServiceRequest;

                    /**
                     * Decodes a PatchRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionBackendServiceRequest;

                    /**
                     * Verifies a PatchRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a PatchRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionCompositeHealthCheckRequest. */
                interface IPatchRegionCompositeHealthCheckRequest {

                    /** PatchRegionCompositeHealthCheckRequest compositeHealthCheck */
                    compositeHealthCheck?: (string|null);

                    /** PatchRegionCompositeHealthCheckRequest compositeHealthCheckResource */
                    compositeHealthCheckResource?: (google.cloud.compute.v1beta.ICompositeHealthCheck|null);

                    /** PatchRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** PatchRegionCompositeHealthCheckRequest region */
                    region?: (string|null);

                    /** PatchRegionCompositeHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionCompositeHealthCheckRequest. */
                class PatchRegionCompositeHealthCheckRequest implements IPatchRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new PatchRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionCompositeHealthCheckRequest);

                    /** PatchRegionCompositeHealthCheckRequest compositeHealthCheck. */
                    public compositeHealthCheck: string;

                    /** PatchRegionCompositeHealthCheckRequest compositeHealthCheckResource. */
                    public compositeHealthCheckResource?: (google.cloud.compute.v1beta.ICompositeHealthCheck|null);

                    /** PatchRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** PatchRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /** PatchRegionCompositeHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionCompositeHealthCheckRequest): google.cloud.compute.v1beta.PatchRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified PatchRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message PatchRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message PatchRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes a PatchRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies a PatchRegionCompositeHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from a PatchRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionDiskSettingRequest. */
                interface IPatchRegionDiskSettingRequest {

                    /** PatchRegionDiskSettingRequest diskSettingsResource */
                    diskSettingsResource?: (google.cloud.compute.v1beta.IDiskSettings|null);

                    /** PatchRegionDiskSettingRequest project */
                    project?: (string|null);

                    /** PatchRegionDiskSettingRequest region */
                    region?: (string|null);

                    /** PatchRegionDiskSettingRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionDiskSettingRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchRegionDiskSettingRequest. */
                class PatchRegionDiskSettingRequest implements IPatchRegionDiskSettingRequest {

                    /**
                     * Constructs a new PatchRegionDiskSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionDiskSettingRequest);

                    /** PatchRegionDiskSettingRequest diskSettingsResource. */
                    public diskSettingsResource?: (google.cloud.compute.v1beta.IDiskSettings|null);

                    /** PatchRegionDiskSettingRequest project. */
                    public project: string;

                    /** PatchRegionDiskSettingRequest region. */
                    public region: string;

                    /** PatchRegionDiskSettingRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionDiskSettingRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchRegionDiskSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionDiskSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionDiskSettingRequest): google.cloud.compute.v1beta.PatchRegionDiskSettingRequest;

                    /**
                     * Encodes the specified PatchRegionDiskSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionDiskSettingRequest.verify|verify} messages.
                     * @param message PatchRegionDiskSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionDiskSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionDiskSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionDiskSettingRequest.verify|verify} messages.
                     * @param message PatchRegionDiskSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionDiskSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionDiskSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionDiskSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionDiskSettingRequest;

                    /**
                     * Decodes a PatchRegionDiskSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionDiskSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionDiskSettingRequest;

                    /**
                     * Verifies a PatchRegionDiskSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionDiskSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionDiskSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionDiskSettingRequest;

                    /**
                     * Creates a plain object from a PatchRegionDiskSettingRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionDiskSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionDiskSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionDiskSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionDiskSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionHealthAggregationPolicyRequest. */
                interface IPatchRegionHealthAggregationPolicyRequest {

                    /** PatchRegionHealthAggregationPolicyRequest healthAggregationPolicy */
                    healthAggregationPolicy?: (string|null);

                    /** PatchRegionHealthAggregationPolicyRequest healthAggregationPolicyResource */
                    healthAggregationPolicyResource?: (google.cloud.compute.v1beta.IHealthAggregationPolicy|null);

                    /** PatchRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionHealthAggregationPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionHealthAggregationPolicyRequest. */
                class PatchRegionHealthAggregationPolicyRequest implements IPatchRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new PatchRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionHealthAggregationPolicyRequest);

                    /** PatchRegionHealthAggregationPolicyRequest healthAggregationPolicy. */
                    public healthAggregationPolicy: string;

                    /** PatchRegionHealthAggregationPolicyRequest healthAggregationPolicyResource. */
                    public healthAggregationPolicyResource?: (google.cloud.compute.v1beta.IHealthAggregationPolicy|null);

                    /** PatchRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** PatchRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /** PatchRegionHealthAggregationPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionHealthAggregationPolicyRequest): google.cloud.compute.v1beta.PatchRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes a PatchRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies a PatchRegionHealthAggregationPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionHealthCheckRequest. */
                interface IPatchRegionHealthCheckRequest {

                    /** PatchRegionHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** PatchRegionHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** PatchRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** PatchRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** PatchRegionHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionHealthCheckRequest. */
                class PatchRegionHealthCheckRequest implements IPatchRegionHealthCheckRequest {

                    /**
                     * Constructs a new PatchRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionHealthCheckRequest);

                    /** PatchRegionHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** PatchRegionHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** PatchRegionHealthCheckRequest project. */
                    public project: string;

                    /** PatchRegionHealthCheckRequest region. */
                    public region: string;

                    /** PatchRegionHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionHealthCheckRequest): google.cloud.compute.v1beta.PatchRegionHealthCheckRequest;

                    /**
                     * Encodes the specified PatchRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionHealthCheckRequest.verify|verify} messages.
                     * @param message PatchRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionHealthCheckRequest.verify|verify} messages.
                     * @param message PatchRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionHealthCheckRequest;

                    /**
                     * Decodes a PatchRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionHealthCheckRequest;

                    /**
                     * Verifies a PatchRegionHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from a PatchRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionHealthCheckServiceRequest. */
                interface IPatchRegionHealthCheckServiceRequest {

                    /** PatchRegionHealthCheckServiceRequest healthCheckService */
                    healthCheckService?: (string|null);

                    /** PatchRegionHealthCheckServiceRequest healthCheckServiceResource */
                    healthCheckServiceResource?: (google.cloud.compute.v1beta.IHealthCheckService|null);

                    /** PatchRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** PatchRegionHealthCheckServiceRequest region */
                    region?: (string|null);

                    /** PatchRegionHealthCheckServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionHealthCheckServiceRequest. */
                class PatchRegionHealthCheckServiceRequest implements IPatchRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new PatchRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionHealthCheckServiceRequest);

                    /** PatchRegionHealthCheckServiceRequest healthCheckService. */
                    public healthCheckService: string;

                    /** PatchRegionHealthCheckServiceRequest healthCheckServiceResource. */
                    public healthCheckServiceResource?: (google.cloud.compute.v1beta.IHealthCheckService|null);

                    /** PatchRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** PatchRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /** PatchRegionHealthCheckServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionHealthCheckServiceRequest): google.cloud.compute.v1beta.PatchRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified PatchRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message PatchRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message PatchRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionHealthCheckServiceRequest;

                    /**
                     * Decodes a PatchRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionHealthCheckServiceRequest;

                    /**
                     * Verifies a PatchRegionHealthCheckServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from a PatchRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionHealthSourceRequest. */
                interface IPatchRegionHealthSourceRequest {

                    /** PatchRegionHealthSourceRequest healthSource */
                    healthSource?: (string|null);

                    /** PatchRegionHealthSourceRequest healthSourceResource */
                    healthSourceResource?: (google.cloud.compute.v1beta.IHealthSource|null);

                    /** PatchRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** PatchRegionHealthSourceRequest region */
                    region?: (string|null);

                    /** PatchRegionHealthSourceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionHealthSourceRequest. */
                class PatchRegionHealthSourceRequest implements IPatchRegionHealthSourceRequest {

                    /**
                     * Constructs a new PatchRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionHealthSourceRequest);

                    /** PatchRegionHealthSourceRequest healthSource. */
                    public healthSource: string;

                    /** PatchRegionHealthSourceRequest healthSourceResource. */
                    public healthSourceResource?: (google.cloud.compute.v1beta.IHealthSource|null);

                    /** PatchRegionHealthSourceRequest project. */
                    public project: string;

                    /** PatchRegionHealthSourceRequest region. */
                    public region: string;

                    /** PatchRegionHealthSourceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionHealthSourceRequest): google.cloud.compute.v1beta.PatchRegionHealthSourceRequest;

                    /**
                     * Encodes the specified PatchRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionHealthSourceRequest.verify|verify} messages.
                     * @param message PatchRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionHealthSourceRequest.verify|verify} messages.
                     * @param message PatchRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionHealthSourceRequest;

                    /**
                     * Decodes a PatchRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionHealthSourceRequest;

                    /**
                     * Verifies a PatchRegionHealthSourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from a PatchRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionInstanceGroupManagerRequest. */
                interface IPatchRegionInstanceGroupManagerRequest {

                    /** PatchRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** PatchRegionInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** PatchRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** PatchRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** PatchRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionInstanceGroupManagerRequest. */
                class PatchRegionInstanceGroupManagerRequest implements IPatchRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new PatchRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionInstanceGroupManagerRequest);

                    /** PatchRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** PatchRegionInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** PatchRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** PatchRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** PatchRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.PatchRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified PatchRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message PatchRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a PatchRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a PatchRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a PatchRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionNetworkFirewallPolicyRequest. */
                interface IPatchRegionNetworkFirewallPolicyRequest {

                    /** PatchRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchRegionNetworkFirewallPolicyRequest firewallPolicyResource */
                    firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** PatchRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionNetworkFirewallPolicyRequest. */
                class PatchRegionNetworkFirewallPolicyRequest implements IPatchRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionNetworkFirewallPolicyRequest);

                    /** PatchRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchRegionNetworkFirewallPolicyRequest firewallPolicyResource. */
                    public firewallPolicyResource?: (google.cloud.compute.v1beta.IFirewallPolicy|null);

                    /** PatchRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** PatchRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.PatchRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionNetworkPolicyRequest. */
                interface IPatchRegionNetworkPolicyRequest {

                    /** PatchRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** PatchRegionNetworkPolicyRequest networkPolicyResource */
                    networkPolicyResource?: (google.cloud.compute.v1beta.INetworkPolicy|null);

                    /** PatchRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionNetworkPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionNetworkPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRegionNetworkPolicyRequest. */
                class PatchRegionNetworkPolicyRequest implements IPatchRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new PatchRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionNetworkPolicyRequest);

                    /** PatchRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** PatchRegionNetworkPolicyRequest networkPolicyResource. */
                    public networkPolicyResource?: (google.cloud.compute.v1beta.INetworkPolicy|null);

                    /** PatchRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** PatchRegionNetworkPolicyRequest region. */
                    public region: string;

                    /** PatchRegionNetworkPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionNetworkPolicyRequest): google.cloud.compute.v1beta.PatchRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionNetworkPolicyRequest;

                    /**
                     * Decodes a PatchRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionNetworkPolicyRequest;

                    /**
                     * Verifies a PatchRegionNetworkPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionSecurityPolicyRequest. */
                interface IPatchRegionSecurityPolicyRequest {

                    /** PatchRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchRegionSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** PatchRegionSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchRegionSecurityPolicyRequest. */
                class PatchRegionSecurityPolicyRequest implements IPatchRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionSecurityPolicyRequest);

                    /** PatchRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** PatchRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** PatchRegionSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchRegionSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** PatchRegionSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionSecurityPolicyRequest): google.cloud.compute.v1beta.PatchRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionSecurityPolicyRequest;

                    /**
                     * Decodes a PatchRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionSecurityPolicyRequest;

                    /**
                     * Verifies a PatchRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionSnapshotSettingRequest. */
                interface IPatchRegionSnapshotSettingRequest {

                    /** PatchRegionSnapshotSettingRequest project */
                    project?: (string|null);

                    /** PatchRegionSnapshotSettingRequest region */
                    region?: (string|null);

                    /** PatchRegionSnapshotSettingRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionSnapshotSettingRequest snapshotSettingsResource */
                    snapshotSettingsResource?: (google.cloud.compute.v1beta.ISnapshotSettings|null);

                    /** PatchRegionSnapshotSettingRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchRegionSnapshotSettingRequest. */
                class PatchRegionSnapshotSettingRequest implements IPatchRegionSnapshotSettingRequest {

                    /**
                     * Constructs a new PatchRegionSnapshotSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionSnapshotSettingRequest);

                    /** PatchRegionSnapshotSettingRequest project. */
                    public project: string;

                    /** PatchRegionSnapshotSettingRequest region. */
                    public region: string;

                    /** PatchRegionSnapshotSettingRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionSnapshotSettingRequest snapshotSettingsResource. */
                    public snapshotSettingsResource?: (google.cloud.compute.v1beta.ISnapshotSettings|null);

                    /** PatchRegionSnapshotSettingRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchRegionSnapshotSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionSnapshotSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionSnapshotSettingRequest): google.cloud.compute.v1beta.PatchRegionSnapshotSettingRequest;

                    /**
                     * Encodes the specified PatchRegionSnapshotSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionSnapshotSettingRequest.verify|verify} messages.
                     * @param message PatchRegionSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionSnapshotSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionSnapshotSettingRequest.verify|verify} messages.
                     * @param message PatchRegionSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionSnapshotSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionSnapshotSettingRequest;

                    /**
                     * Decodes a PatchRegionSnapshotSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionSnapshotSettingRequest;

                    /**
                     * Verifies a PatchRegionSnapshotSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionSnapshotSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionSnapshotSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionSnapshotSettingRequest;

                    /**
                     * Creates a plain object from a PatchRegionSnapshotSettingRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionSnapshotSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionSnapshotSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionSnapshotSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionSnapshotSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionSslPolicyRequest. */
                interface IPatchRegionSslPolicyRequest {

                    /** PatchRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** PatchRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** PatchRegionSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);

                    /** PatchRegionSslPolicyRequest sslPolicyResource */
                    sslPolicyResource?: (google.cloud.compute.v1beta.ISslPolicy|null);
                }

                /** Represents a PatchRegionSslPolicyRequest. */
                class PatchRegionSslPolicyRequest implements IPatchRegionSslPolicyRequest {

                    /**
                     * Constructs a new PatchRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionSslPolicyRequest);

                    /** PatchRegionSslPolicyRequest project. */
                    public project: string;

                    /** PatchRegionSslPolicyRequest region. */
                    public region: string;

                    /** PatchRegionSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /** PatchRegionSslPolicyRequest sslPolicyResource. */
                    public sslPolicyResource?: (google.cloud.compute.v1beta.ISslPolicy|null);

                    /**
                     * Creates a new PatchRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionSslPolicyRequest): google.cloud.compute.v1beta.PatchRegionSslPolicyRequest;

                    /**
                     * Encodes the specified PatchRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionSslPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionSslPolicyRequest.verify|verify} messages.
                     * @param message PatchRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionSslPolicyRequest;

                    /**
                     * Decodes a PatchRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionSslPolicyRequest;

                    /**
                     * Verifies a PatchRegionSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionTargetHttpsProxyRequest. */
                interface IPatchRegionTargetHttpsProxyRequest {

                    /** PatchRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest targetHttpsProxyResource */
                    targetHttpsProxyResource?: (google.cloud.compute.v1beta.ITargetHttpsProxy|null);
                }

                /** Represents a PatchRegionTargetHttpsProxyRequest. */
                class PatchRegionTargetHttpsProxyRequest implements IPatchRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new PatchRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionTargetHttpsProxyRequest);

                    /** PatchRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** PatchRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** PatchRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /** PatchRegionTargetHttpsProxyRequest targetHttpsProxyResource. */
                    public targetHttpsProxyResource?: (google.cloud.compute.v1beta.ITargetHttpsProxy|null);

                    /**
                     * Creates a new PatchRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionTargetHttpsProxyRequest): google.cloud.compute.v1beta.PatchRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified PatchRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message PatchRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message PatchRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a PatchRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a PatchRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a PatchRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRegionUrlMapRequest. */
                interface IPatchRegionUrlMapRequest {

                    /** PatchRegionUrlMapRequest project */
                    project?: (string|null);

                    /** PatchRegionUrlMapRequest region */
                    region?: (string|null);

                    /** PatchRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** PatchRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** PatchRegionUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);
                }

                /** Represents a PatchRegionUrlMapRequest. */
                class PatchRegionUrlMapRequest implements IPatchRegionUrlMapRequest {

                    /**
                     * Constructs a new PatchRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRegionUrlMapRequest);

                    /** PatchRegionUrlMapRequest project. */
                    public project: string;

                    /** PatchRegionUrlMapRequest region. */
                    public region: string;

                    /** PatchRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** PatchRegionUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);

                    /**
                     * Creates a new PatchRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRegionUrlMapRequest): google.cloud.compute.v1beta.PatchRegionUrlMapRequest;

                    /**
                     * Encodes the specified PatchRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionUrlMapRequest.verify|verify} messages.
                     * @param message PatchRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRegionUrlMapRequest.verify|verify} messages.
                     * @param message PatchRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRegionUrlMapRequest;

                    /**
                     * Decodes a PatchRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRegionUrlMapRequest;

                    /**
                     * Verifies a PatchRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a PatchRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message PatchRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchResourcePolicyRequest. */
                interface IPatchResourcePolicyRequest {

                    /** PatchResourcePolicyRequest project */
                    project?: (string|null);

                    /** PatchResourcePolicyRequest region */
                    region?: (string|null);

                    /** PatchResourcePolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchResourcePolicyRequest resourcePolicy */
                    resourcePolicy?: (string|null);

                    /** PatchResourcePolicyRequest resourcePolicyResource */
                    resourcePolicyResource?: (google.cloud.compute.v1beta.IResourcePolicy|null);

                    /** PatchResourcePolicyRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchResourcePolicyRequest. */
                class PatchResourcePolicyRequest implements IPatchResourcePolicyRequest {

                    /**
                     * Constructs a new PatchResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchResourcePolicyRequest);

                    /** PatchResourcePolicyRequest project. */
                    public project: string;

                    /** PatchResourcePolicyRequest region. */
                    public region: string;

                    /** PatchResourcePolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchResourcePolicyRequest resourcePolicy. */
                    public resourcePolicy: string;

                    /** PatchResourcePolicyRequest resourcePolicyResource. */
                    public resourcePolicyResource?: (google.cloud.compute.v1beta.IResourcePolicy|null);

                    /** PatchResourcePolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchResourcePolicyRequest): google.cloud.compute.v1beta.PatchResourcePolicyRequest;

                    /**
                     * Encodes the specified PatchResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchResourcePolicyRequest.verify|verify} messages.
                     * @param message PatchResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchResourcePolicyRequest.verify|verify} messages.
                     * @param message PatchResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchResourcePolicyRequest;

                    /**
                     * Decodes a PatchResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchResourcePolicyRequest;

                    /**
                     * Verifies a PatchResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchResourcePolicyRequest;

                    /**
                     * Creates a plain object from a PatchResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRoutePolicyRouterRequest. */
                interface IPatchRoutePolicyRouterRequest {

                    /** PatchRoutePolicyRouterRequest project */
                    project?: (string|null);

                    /** PatchRoutePolicyRouterRequest region */
                    region?: (string|null);

                    /** PatchRoutePolicyRouterRequest requestId */
                    requestId?: (string|null);

                    /** PatchRoutePolicyRouterRequest routePolicyResource */
                    routePolicyResource?: (google.cloud.compute.v1beta.IRoutePolicy|null);

                    /** PatchRoutePolicyRouterRequest router */
                    router?: (string|null);
                }

                /** Represents a PatchRoutePolicyRouterRequest. */
                class PatchRoutePolicyRouterRequest implements IPatchRoutePolicyRouterRequest {

                    /**
                     * Constructs a new PatchRoutePolicyRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRoutePolicyRouterRequest);

                    /** PatchRoutePolicyRouterRequest project. */
                    public project: string;

                    /** PatchRoutePolicyRouterRequest region. */
                    public region: string;

                    /** PatchRoutePolicyRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRoutePolicyRouterRequest routePolicyResource. */
                    public routePolicyResource?: (google.cloud.compute.v1beta.IRoutePolicy|null);

                    /** PatchRoutePolicyRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new PatchRoutePolicyRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRoutePolicyRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRoutePolicyRouterRequest): google.cloud.compute.v1beta.PatchRoutePolicyRouterRequest;

                    /**
                     * Encodes the specified PatchRoutePolicyRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message PatchRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRoutePolicyRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message PatchRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRoutePolicyRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRoutePolicyRouterRequest;

                    /**
                     * Decodes a PatchRoutePolicyRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRoutePolicyRouterRequest;

                    /**
                     * Verifies a PatchRoutePolicyRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRoutePolicyRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRoutePolicyRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRoutePolicyRouterRequest;

                    /**
                     * Creates a plain object from a PatchRoutePolicyRouterRequest message. Also converts values to other types if specified.
                     * @param message PatchRoutePolicyRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRoutePolicyRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRoutePolicyRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRoutePolicyRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRouterRequest. */
                interface IPatchRouterRequest {

                    /** PatchRouterRequest project */
                    project?: (string|null);

                    /** PatchRouterRequest region */
                    region?: (string|null);

                    /** PatchRouterRequest requestId */
                    requestId?: (string|null);

                    /** PatchRouterRequest router */
                    router?: (string|null);

                    /** PatchRouterRequest routerResource */
                    routerResource?: (google.cloud.compute.v1beta.IRouter|null);
                }

                /** Represents a PatchRouterRequest. */
                class PatchRouterRequest implements IPatchRouterRequest {

                    /**
                     * Constructs a new PatchRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRouterRequest);

                    /** PatchRouterRequest project. */
                    public project: string;

                    /** PatchRouterRequest region. */
                    public region: string;

                    /** PatchRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRouterRequest router. */
                    public router: string;

                    /** PatchRouterRequest routerResource. */
                    public routerResource?: (google.cloud.compute.v1beta.IRouter|null);

                    /**
                     * Creates a new PatchRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRouterRequest): google.cloud.compute.v1beta.PatchRouterRequest;

                    /**
                     * Encodes the specified PatchRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRouterRequest.verify|verify} messages.
                     * @param message PatchRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRouterRequest.verify|verify} messages.
                     * @param message PatchRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRouterRequest;

                    /**
                     * Decodes a PatchRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRouterRequest;

                    /**
                     * Verifies a PatchRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRouterRequest;

                    /**
                     * Creates a plain object from a PatchRouterRequest message. Also converts values to other types if specified.
                     * @param message PatchRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleFirewallPolicyRequest. */
                interface IPatchRuleFirewallPolicyRequest {

                    /** PatchRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchRuleFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchRuleFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRuleFirewallPolicyRequest. */
                class PatchRuleFirewallPolicyRequest implements IPatchRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRuleFirewallPolicyRequest);

                    /** PatchRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchRuleFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRuleFirewallPolicyRequest): google.cloud.compute.v1beta.PatchRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRuleFirewallPolicyRequest;

                    /**
                     * Decodes a PatchRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRuleFirewallPolicyRequest;

                    /**
                     * Verifies a PatchRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleNetworkFirewallPolicyRequest. */
                interface IPatchRuleNetworkFirewallPolicyRequest {

                    /** PatchRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRuleNetworkFirewallPolicyRequest. */
                class PatchRuleNetworkFirewallPolicyRequest implements IPatchRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRuleNetworkFirewallPolicyRequest);

                    /** PatchRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchRuleNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.PatchRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleOrganizationSecurityPolicyRequest. */
                interface IPatchRuleOrganizationSecurityPolicyRequest {

                    /** PatchRuleOrganizationSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchRuleOrganizationSecurityPolicyRequest. */
                class PatchRuleOrganizationSecurityPolicyRequest implements IPatchRuleOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchRuleOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRuleOrganizationSecurityPolicyRequest);

                    /** PatchRuleOrganizationSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchRuleOrganizationSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** PatchRuleOrganizationSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchRuleOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRuleOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.PatchRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a PatchRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a PatchRuleOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRuleOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleRegionNetworkFirewallPolicyRequest. */
                interface IPatchRuleRegionNetworkFirewallPolicyRequest {

                    /** PatchRuleRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest firewallPolicyRuleResource */
                    firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchRuleRegionNetworkFirewallPolicyRequest. */
                class PatchRuleRegionNetworkFirewallPolicyRequest implements IPatchRuleRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new PatchRuleRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRuleRegionNetworkFirewallPolicyRequest);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** PatchRuleRegionNetworkFirewallPolicyRequest firewallPolicyRuleResource. */
                    public firewallPolicyRuleResource?: (google.cloud.compute.v1beta.IFirewallPolicyRule|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** PatchRuleRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** PatchRuleRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchRuleRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRuleRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.PatchRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a PatchRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a PatchRuleRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRuleRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleRegionSecurityPolicyRequest. */
                interface IPatchRuleRegionSecurityPolicyRequest {

                    /** PatchRuleRegionSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** PatchRuleRegionSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents a PatchRuleRegionSecurityPolicyRequest. */
                class PatchRuleRegionSecurityPolicyRequest implements IPatchRuleRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchRuleRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRuleRegionSecurityPolicyRequest);

                    /** PatchRuleRegionSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** PatchRuleRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** PatchRuleRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchRuleRegionSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** PatchRuleRegionSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchRuleRegionSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new PatchRuleRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRuleRegionSecurityPolicyRequest): google.cloud.compute.v1beta.PatchRuleRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRuleRegionSecurityPolicyRequest;

                    /**
                     * Decodes a PatchRuleRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRuleRegionSecurityPolicyRequest;

                    /**
                     * Verifies a PatchRuleRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRuleRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRuleRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchRuleSecurityPolicyRequest. */
                interface IPatchRuleSecurityPolicyRequest {

                    /** PatchRuleSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchRuleSecurityPolicyRequest project */
                    project?: (string|null);

                    /** PatchRuleSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchRuleSecurityPolicyRequest securityPolicyRuleResource */
                    securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** PatchRuleSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchRuleSecurityPolicyRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents a PatchRuleSecurityPolicyRequest. */
                class PatchRuleSecurityPolicyRequest implements IPatchRuleSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchRuleSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchRuleSecurityPolicyRequest);

                    /** PatchRuleSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchRuleSecurityPolicyRequest project. */
                    public project: string;

                    /** PatchRuleSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchRuleSecurityPolicyRequest securityPolicyRuleResource. */
                    public securityPolicyRuleResource?: (google.cloud.compute.v1beta.ISecurityPolicyRule|null);

                    /** PatchRuleSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchRuleSecurityPolicyRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /**
                     * Creates a new PatchRuleSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchRuleSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchRuleSecurityPolicyRequest): google.cloud.compute.v1beta.PatchRuleSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchRuleSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchRuleSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchRuleSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchRuleSecurityPolicyRequest;

                    /**
                     * Decodes a PatchRuleSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchRuleSecurityPolicyRequest;

                    /**
                     * Verifies a PatchRuleSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchRuleSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchRuleSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchRuleSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchRuleSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchRuleSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchRuleSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchRuleSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchRuleSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchSecurityPolicyRequest. */
                interface IPatchSecurityPolicyRequest {

                    /** PatchSecurityPolicyRequest project */
                    project?: (string|null);

                    /** PatchSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);

                    /** PatchSecurityPolicyRequest securityPolicyResource */
                    securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** PatchSecurityPolicyRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchSecurityPolicyRequest. */
                class PatchSecurityPolicyRequest implements IPatchSecurityPolicyRequest {

                    /**
                     * Constructs a new PatchSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchSecurityPolicyRequest);

                    /** PatchSecurityPolicyRequest project. */
                    public project: string;

                    /** PatchSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /** PatchSecurityPolicyRequest securityPolicyResource. */
                    public securityPolicyResource?: (google.cloud.compute.v1beta.ISecurityPolicy|null);

                    /** PatchSecurityPolicyRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchSecurityPolicyRequest): google.cloud.compute.v1beta.PatchSecurityPolicyRequest;

                    /**
                     * Encodes the specified PatchSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchSecurityPolicyRequest.verify|verify} messages.
                     * @param message PatchSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchSecurityPolicyRequest;

                    /**
                     * Decodes a PatchSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchSecurityPolicyRequest;

                    /**
                     * Verifies a PatchSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a PatchSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchServiceAttachmentRequest. */
                interface IPatchServiceAttachmentRequest {

                    /** PatchServiceAttachmentRequest project */
                    project?: (string|null);

                    /** PatchServiceAttachmentRequest region */
                    region?: (string|null);

                    /** PatchServiceAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** PatchServiceAttachmentRequest serviceAttachment */
                    serviceAttachment?: (string|null);

                    /** PatchServiceAttachmentRequest serviceAttachmentResource */
                    serviceAttachmentResource?: (google.cloud.compute.v1beta.IServiceAttachment|null);
                }

                /** Represents a PatchServiceAttachmentRequest. */
                class PatchServiceAttachmentRequest implements IPatchServiceAttachmentRequest {

                    /**
                     * Constructs a new PatchServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchServiceAttachmentRequest);

                    /** PatchServiceAttachmentRequest project. */
                    public project: string;

                    /** PatchServiceAttachmentRequest region. */
                    public region: string;

                    /** PatchServiceAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchServiceAttachmentRequest serviceAttachment. */
                    public serviceAttachment: string;

                    /** PatchServiceAttachmentRequest serviceAttachmentResource. */
                    public serviceAttachmentResource?: (google.cloud.compute.v1beta.IServiceAttachment|null);

                    /**
                     * Creates a new PatchServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchServiceAttachmentRequest): google.cloud.compute.v1beta.PatchServiceAttachmentRequest;

                    /**
                     * Encodes the specified PatchServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchServiceAttachmentRequest.verify|verify} messages.
                     * @param message PatchServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchServiceAttachmentRequest.verify|verify} messages.
                     * @param message PatchServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchServiceAttachmentRequest;

                    /**
                     * Decodes a PatchServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchServiceAttachmentRequest;

                    /**
                     * Verifies a PatchServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a PatchServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message PatchServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchSnapshotSettingRequest. */
                interface IPatchSnapshotSettingRequest {

                    /** PatchSnapshotSettingRequest project */
                    project?: (string|null);

                    /** PatchSnapshotSettingRequest requestId */
                    requestId?: (string|null);

                    /** PatchSnapshotSettingRequest snapshotSettingsResource */
                    snapshotSettingsResource?: (google.cloud.compute.v1beta.ISnapshotSettings|null);

                    /** PatchSnapshotSettingRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents a PatchSnapshotSettingRequest. */
                class PatchSnapshotSettingRequest implements IPatchSnapshotSettingRequest {

                    /**
                     * Constructs a new PatchSnapshotSettingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchSnapshotSettingRequest);

                    /** PatchSnapshotSettingRequest project. */
                    public project: string;

                    /** PatchSnapshotSettingRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchSnapshotSettingRequest snapshotSettingsResource. */
                    public snapshotSettingsResource?: (google.cloud.compute.v1beta.ISnapshotSettings|null);

                    /** PatchSnapshotSettingRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new PatchSnapshotSettingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchSnapshotSettingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchSnapshotSettingRequest): google.cloud.compute.v1beta.PatchSnapshotSettingRequest;

                    /**
                     * Encodes the specified PatchSnapshotSettingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchSnapshotSettingRequest.verify|verify} messages.
                     * @param message PatchSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchSnapshotSettingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchSnapshotSettingRequest.verify|verify} messages.
                     * @param message PatchSnapshotSettingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchSnapshotSettingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchSnapshotSettingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchSnapshotSettingRequest;

                    /**
                     * Decodes a PatchSnapshotSettingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchSnapshotSettingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchSnapshotSettingRequest;

                    /**
                     * Verifies a PatchSnapshotSettingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchSnapshotSettingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchSnapshotSettingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchSnapshotSettingRequest;

                    /**
                     * Creates a plain object from a PatchSnapshotSettingRequest message. Also converts values to other types if specified.
                     * @param message PatchSnapshotSettingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchSnapshotSettingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchSnapshotSettingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchSnapshotSettingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchSslPolicyRequest. */
                interface IPatchSslPolicyRequest {

                    /** PatchSslPolicyRequest project */
                    project?: (string|null);

                    /** PatchSslPolicyRequest requestId */
                    requestId?: (string|null);

                    /** PatchSslPolicyRequest sslPolicy */
                    sslPolicy?: (string|null);

                    /** PatchSslPolicyRequest sslPolicyResource */
                    sslPolicyResource?: (google.cloud.compute.v1beta.ISslPolicy|null);
                }

                /** Represents a PatchSslPolicyRequest. */
                class PatchSslPolicyRequest implements IPatchSslPolicyRequest {

                    /**
                     * Constructs a new PatchSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchSslPolicyRequest);

                    /** PatchSslPolicyRequest project. */
                    public project: string;

                    /** PatchSslPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchSslPolicyRequest sslPolicy. */
                    public sslPolicy: string;

                    /** PatchSslPolicyRequest sslPolicyResource. */
                    public sslPolicyResource?: (google.cloud.compute.v1beta.ISslPolicy|null);

                    /**
                     * Creates a new PatchSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchSslPolicyRequest): google.cloud.compute.v1beta.PatchSslPolicyRequest;

                    /**
                     * Encodes the specified PatchSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchSslPolicyRequest.verify|verify} messages.
                     * @param message PatchSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchSslPolicyRequest.verify|verify} messages.
                     * @param message PatchSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchSslPolicyRequest;

                    /**
                     * Decodes a PatchSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchSslPolicyRequest;

                    /**
                     * Verifies a PatchSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchSslPolicyRequest;

                    /**
                     * Creates a plain object from a PatchSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchSubnetworkRequest. */
                interface IPatchSubnetworkRequest {

                    /** PatchSubnetworkRequest drainTimeoutSeconds */
                    drainTimeoutSeconds?: (number|null);

                    /** PatchSubnetworkRequest project */
                    project?: (string|null);

                    /** PatchSubnetworkRequest region */
                    region?: (string|null);

                    /** PatchSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** PatchSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);

                    /** PatchSubnetworkRequest subnetworkResource */
                    subnetworkResource?: (google.cloud.compute.v1beta.ISubnetwork|null);
                }

                /** Represents a PatchSubnetworkRequest. */
                class PatchSubnetworkRequest implements IPatchSubnetworkRequest {

                    /**
                     * Constructs a new PatchSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchSubnetworkRequest);

                    /** PatchSubnetworkRequest drainTimeoutSeconds. */
                    public drainTimeoutSeconds?: (number|null);

                    /** PatchSubnetworkRequest project. */
                    public project: string;

                    /** PatchSubnetworkRequest region. */
                    public region: string;

                    /** PatchSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /** PatchSubnetworkRequest subnetworkResource. */
                    public subnetworkResource?: (google.cloud.compute.v1beta.ISubnetwork|null);

                    /**
                     * Creates a new PatchSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchSubnetworkRequest): google.cloud.compute.v1beta.PatchSubnetworkRequest;

                    /**
                     * Encodes the specified PatchSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchSubnetworkRequest.verify|verify} messages.
                     * @param message PatchSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchSubnetworkRequest.verify|verify} messages.
                     * @param message PatchSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchSubnetworkRequest;

                    /**
                     * Decodes a PatchSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchSubnetworkRequest;

                    /**
                     * Verifies a PatchSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchSubnetworkRequest;

                    /**
                     * Creates a plain object from a PatchSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message PatchSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchTargetGrpcProxyRequest. */
                interface IPatchTargetGrpcProxyRequest {

                    /** PatchTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** PatchTargetGrpcProxyRequest requestId */
                    requestId?: (string|null);

                    /** PatchTargetGrpcProxyRequest targetGrpcProxy */
                    targetGrpcProxy?: (string|null);

                    /** PatchTargetGrpcProxyRequest targetGrpcProxyResource */
                    targetGrpcProxyResource?: (google.cloud.compute.v1beta.ITargetGrpcProxy|null);
                }

                /** Represents a PatchTargetGrpcProxyRequest. */
                class PatchTargetGrpcProxyRequest implements IPatchTargetGrpcProxyRequest {

                    /**
                     * Constructs a new PatchTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchTargetGrpcProxyRequest);

                    /** PatchTargetGrpcProxyRequest project. */
                    public project: string;

                    /** PatchTargetGrpcProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchTargetGrpcProxyRequest targetGrpcProxy. */
                    public targetGrpcProxy: string;

                    /** PatchTargetGrpcProxyRequest targetGrpcProxyResource. */
                    public targetGrpcProxyResource?: (google.cloud.compute.v1beta.ITargetGrpcProxy|null);

                    /**
                     * Creates a new PatchTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchTargetGrpcProxyRequest): google.cloud.compute.v1beta.PatchTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified PatchTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message PatchTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message PatchTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchTargetGrpcProxyRequest;

                    /**
                     * Decodes a PatchTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchTargetGrpcProxyRequest;

                    /**
                     * Verifies a PatchTargetGrpcProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from a PatchTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message PatchTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchTargetHttpProxyRequest. */
                interface IPatchTargetHttpProxyRequest {

                    /** PatchTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** PatchTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** PatchTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);

                    /** PatchTargetHttpProxyRequest targetHttpProxyResource */
                    targetHttpProxyResource?: (google.cloud.compute.v1beta.ITargetHttpProxy|null);
                }

                /** Represents a PatchTargetHttpProxyRequest. */
                class PatchTargetHttpProxyRequest implements IPatchTargetHttpProxyRequest {

                    /**
                     * Constructs a new PatchTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchTargetHttpProxyRequest);

                    /** PatchTargetHttpProxyRequest project. */
                    public project: string;

                    /** PatchTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /** PatchTargetHttpProxyRequest targetHttpProxyResource. */
                    public targetHttpProxyResource?: (google.cloud.compute.v1beta.ITargetHttpProxy|null);

                    /**
                     * Creates a new PatchTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchTargetHttpProxyRequest): google.cloud.compute.v1beta.PatchTargetHttpProxyRequest;

                    /**
                     * Encodes the specified PatchTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchTargetHttpProxyRequest.verify|verify} messages.
                     * @param message PatchTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchTargetHttpProxyRequest.verify|verify} messages.
                     * @param message PatchTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchTargetHttpProxyRequest;

                    /**
                     * Decodes a PatchTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchTargetHttpProxyRequest;

                    /**
                     * Verifies a PatchTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a PatchTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message PatchTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchTargetHttpsProxyRequest. */
                interface IPatchTargetHttpsProxyRequest {

                    /** PatchTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** PatchTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** PatchTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);

                    /** PatchTargetHttpsProxyRequest targetHttpsProxyResource */
                    targetHttpsProxyResource?: (google.cloud.compute.v1beta.ITargetHttpsProxy|null);
                }

                /** Represents a PatchTargetHttpsProxyRequest. */
                class PatchTargetHttpsProxyRequest implements IPatchTargetHttpsProxyRequest {

                    /**
                     * Constructs a new PatchTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchTargetHttpsProxyRequest);

                    /** PatchTargetHttpsProxyRequest project. */
                    public project: string;

                    /** PatchTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /** PatchTargetHttpsProxyRequest targetHttpsProxyResource. */
                    public targetHttpsProxyResource?: (google.cloud.compute.v1beta.ITargetHttpsProxy|null);

                    /**
                     * Creates a new PatchTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchTargetHttpsProxyRequest): google.cloud.compute.v1beta.PatchTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified PatchTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message PatchTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message PatchTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchTargetHttpsProxyRequest;

                    /**
                     * Decodes a PatchTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchTargetHttpsProxyRequest;

                    /**
                     * Verifies a PatchTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a PatchTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message PatchTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchTrafficClassificationRuleRegionNetworkPolicyRequest. */
                interface IPatchTrafficClassificationRuleRegionNetworkPolicyRequest {

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicyTrafficClassificationRuleResource */
                    networkPolicyTrafficClassificationRuleResource?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule|null);

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest priority */
                    priority?: (number|null);

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest region */
                    region?: (string|null);

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a PatchTrafficClassificationRuleRegionNetworkPolicyRequest. */
                class PatchTrafficClassificationRuleRegionNetworkPolicyRequest implements IPatchTrafficClassificationRuleRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new PatchTrafficClassificationRuleRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchTrafficClassificationRuleRegionNetworkPolicyRequest);

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicyTrafficClassificationRuleResource. */
                    public networkPolicyTrafficClassificationRuleResource?: (google.cloud.compute.v1beta.INetworkPolicyTrafficClassificationRule|null);

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest priority. */
                    public priority?: (number|null);

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest region. */
                    public region: string;

                    /** PatchTrafficClassificationRuleRegionNetworkPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new PatchTrafficClassificationRuleRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchTrafficClassificationRuleRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchTrafficClassificationRuleRegionNetworkPolicyRequest): google.cloud.compute.v1beta.PatchTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified PatchTrafficClassificationRuleRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchTrafficClassificationRuleRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message PatchTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchTrafficClassificationRuleRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchTrafficClassificationRuleRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchTrafficClassificationRuleRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message PatchTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchTrafficClassificationRuleRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchTrafficClassificationRuleRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Decodes a PatchTrafficClassificationRuleRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Verifies a PatchTrafficClassificationRuleRegionNetworkPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchTrafficClassificationRuleRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchTrafficClassificationRuleRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from a PatchTrafficClassificationRuleRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message PatchTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchTrafficClassificationRuleRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchTrafficClassificationRuleRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchUrlMapRequest. */
                interface IPatchUrlMapRequest {

                    /** PatchUrlMapRequest project */
                    project?: (string|null);

                    /** PatchUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** PatchUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** PatchUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);
                }

                /** Represents a PatchUrlMapRequest. */
                class PatchUrlMapRequest implements IPatchUrlMapRequest {

                    /**
                     * Constructs a new PatchUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchUrlMapRequest);

                    /** PatchUrlMapRequest project. */
                    public project: string;

                    /** PatchUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** PatchUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);

                    /**
                     * Creates a new PatchUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchUrlMapRequest): google.cloud.compute.v1beta.PatchUrlMapRequest;

                    /**
                     * Encodes the specified PatchUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchUrlMapRequest.verify|verify} messages.
                     * @param message PatchUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchUrlMapRequest.verify|verify} messages.
                     * @param message PatchUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchUrlMapRequest;

                    /**
                     * Decodes a PatchUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchUrlMapRequest;

                    /**
                     * Verifies a PatchUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchUrlMapRequest;

                    /**
                     * Creates a plain object from a PatchUrlMapRequest message. Also converts values to other types if specified.
                     * @param message PatchUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PatchWireGroupRequest. */
                interface IPatchWireGroupRequest {

                    /** PatchWireGroupRequest crossSiteNetwork */
                    crossSiteNetwork?: (string|null);

                    /** PatchWireGroupRequest project */
                    project?: (string|null);

                    /** PatchWireGroupRequest requestId */
                    requestId?: (string|null);

                    /** PatchWireGroupRequest updateMask */
                    updateMask?: (string|null);

                    /** PatchWireGroupRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** PatchWireGroupRequest wireGroup */
                    wireGroup?: (string|null);

                    /** PatchWireGroupRequest wireGroupResource */
                    wireGroupResource?: (google.cloud.compute.v1beta.IWireGroup|null);
                }

                /** Represents a PatchWireGroupRequest. */
                class PatchWireGroupRequest implements IPatchWireGroupRequest {

                    /**
                     * Constructs a new PatchWireGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPatchWireGroupRequest);

                    /** PatchWireGroupRequest crossSiteNetwork. */
                    public crossSiteNetwork: string;

                    /** PatchWireGroupRequest project. */
                    public project: string;

                    /** PatchWireGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PatchWireGroupRequest updateMask. */
                    public updateMask?: (string|null);

                    /** PatchWireGroupRequest validateOnly. */
                    public validateOnly?: (boolean|null);

                    /** PatchWireGroupRequest wireGroup. */
                    public wireGroup: string;

                    /** PatchWireGroupRequest wireGroupResource. */
                    public wireGroupResource?: (google.cloud.compute.v1beta.IWireGroup|null);

                    /**
                     * Creates a new PatchWireGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PatchWireGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPatchWireGroupRequest): google.cloud.compute.v1beta.PatchWireGroupRequest;

                    /**
                     * Encodes the specified PatchWireGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PatchWireGroupRequest.verify|verify} messages.
                     * @param message PatchWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPatchWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PatchWireGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PatchWireGroupRequest.verify|verify} messages.
                     * @param message PatchWireGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPatchWireGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PatchWireGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PatchWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PatchWireGroupRequest;

                    /**
                     * Decodes a PatchWireGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PatchWireGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PatchWireGroupRequest;

                    /**
                     * Verifies a PatchWireGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PatchWireGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PatchWireGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PatchWireGroupRequest;

                    /**
                     * Creates a plain object from a PatchWireGroupRequest message. Also converts values to other types if specified.
                     * @param message PatchWireGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PatchWireGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PatchWireGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PatchWireGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PathMatcher. */
                interface IPathMatcher {

                    /** PathMatcher defaultCustomErrorResponsePolicy */
                    defaultCustomErrorResponsePolicy?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicy|null);

                    /** PathMatcher defaultRouteAction */
                    defaultRouteAction?: (google.cloud.compute.v1beta.IHttpRouteAction|null);

                    /** PathMatcher defaultService */
                    defaultService?: (string|null);

                    /** PathMatcher defaultUrlRedirect */
                    defaultUrlRedirect?: (google.cloud.compute.v1beta.IHttpRedirectAction|null);

                    /** PathMatcher description */
                    description?: (string|null);

                    /** PathMatcher headerAction */
                    headerAction?: (google.cloud.compute.v1beta.IHttpHeaderAction|null);

                    /** PathMatcher name */
                    name?: (string|null);

                    /** PathMatcher pathRules */
                    pathRules?: (google.cloud.compute.v1beta.IPathRule[]|null);

                    /** PathMatcher routeRules */
                    routeRules?: (google.cloud.compute.v1beta.IHttpRouteRule[]|null);
                }

                /** Represents a PathMatcher. */
                class PathMatcher implements IPathMatcher {

                    /**
                     * Constructs a new PathMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPathMatcher);

                    /** PathMatcher defaultCustomErrorResponsePolicy. */
                    public defaultCustomErrorResponsePolicy?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicy|null);

                    /** PathMatcher defaultRouteAction. */
                    public defaultRouteAction?: (google.cloud.compute.v1beta.IHttpRouteAction|null);

                    /** PathMatcher defaultService. */
                    public defaultService?: (string|null);

                    /** PathMatcher defaultUrlRedirect. */
                    public defaultUrlRedirect?: (google.cloud.compute.v1beta.IHttpRedirectAction|null);

                    /** PathMatcher description. */
                    public description?: (string|null);

                    /** PathMatcher headerAction. */
                    public headerAction?: (google.cloud.compute.v1beta.IHttpHeaderAction|null);

                    /** PathMatcher name. */
                    public name?: (string|null);

                    /** PathMatcher pathRules. */
                    public pathRules: google.cloud.compute.v1beta.IPathRule[];

                    /** PathMatcher routeRules. */
                    public routeRules: google.cloud.compute.v1beta.IHttpRouteRule[];

                    /**
                     * Creates a new PathMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PathMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPathMatcher): google.cloud.compute.v1beta.PathMatcher;

                    /**
                     * Encodes the specified PathMatcher message. Does not implicitly {@link google.cloud.compute.v1beta.PathMatcher.verify|verify} messages.
                     * @param message PathMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPathMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PathMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PathMatcher.verify|verify} messages.
                     * @param message PathMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPathMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PathMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PathMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PathMatcher;

                    /**
                     * Decodes a PathMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PathMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PathMatcher;

                    /**
                     * Verifies a PathMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PathMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PathMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PathMatcher;

                    /**
                     * Creates a plain object from a PathMatcher message. Also converts values to other types if specified.
                     * @param message PathMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PathMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PathMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PathMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PathRule. */
                interface IPathRule {

                    /** PathRule customErrorResponsePolicy */
                    customErrorResponsePolicy?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicy|null);

                    /** PathRule paths */
                    paths?: (string[]|null);

                    /** PathRule routeAction */
                    routeAction?: (google.cloud.compute.v1beta.IHttpRouteAction|null);

                    /** PathRule service */
                    service?: (string|null);

                    /** PathRule urlRedirect */
                    urlRedirect?: (google.cloud.compute.v1beta.IHttpRedirectAction|null);
                }

                /** Represents a PathRule. */
                class PathRule implements IPathRule {

                    /**
                     * Constructs a new PathRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPathRule);

                    /** PathRule customErrorResponsePolicy. */
                    public customErrorResponsePolicy?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicy|null);

                    /** PathRule paths. */
                    public paths: string[];

                    /** PathRule routeAction. */
                    public routeAction?: (google.cloud.compute.v1beta.IHttpRouteAction|null);

                    /** PathRule service. */
                    public service?: (string|null);

                    /** PathRule urlRedirect. */
                    public urlRedirect?: (google.cloud.compute.v1beta.IHttpRedirectAction|null);

                    /**
                     * Creates a new PathRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PathRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPathRule): google.cloud.compute.v1beta.PathRule;

                    /**
                     * Encodes the specified PathRule message. Does not implicitly {@link google.cloud.compute.v1beta.PathRule.verify|verify} messages.
                     * @param message PathRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPathRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PathRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PathRule.verify|verify} messages.
                     * @param message PathRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPathRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PathRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PathRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PathRule;

                    /**
                     * Decodes a PathRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PathRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PathRule;

                    /**
                     * Verifies a PathRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PathRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PathRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PathRule;

                    /**
                     * Creates a plain object from a PathRule message. Also converts values to other types if specified.
                     * @param message PathRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PathRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PathRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PathRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerInstanceConfig. */
                interface IPerInstanceConfig {

                    /** PerInstanceConfig fingerprint */
                    fingerprint?: (string|null);

                    /** PerInstanceConfig name */
                    name?: (string|null);

                    /** PerInstanceConfig preservedState */
                    preservedState?: (google.cloud.compute.v1beta.IPreservedState|null);

                    /** PerInstanceConfig status */
                    status?: (string|null);
                }

                /** Represents a PerInstanceConfig. */
                class PerInstanceConfig implements IPerInstanceConfig {

                    /**
                     * Constructs a new PerInstanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPerInstanceConfig);

                    /** PerInstanceConfig fingerprint. */
                    public fingerprint?: (string|null);

                    /** PerInstanceConfig name. */
                    public name?: (string|null);

                    /** PerInstanceConfig preservedState. */
                    public preservedState?: (google.cloud.compute.v1beta.IPreservedState|null);

                    /** PerInstanceConfig status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PerInstanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerInstanceConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPerInstanceConfig): google.cloud.compute.v1beta.PerInstanceConfig;

                    /**
                     * Encodes the specified PerInstanceConfig message. Does not implicitly {@link google.cloud.compute.v1beta.PerInstanceConfig.verify|verify} messages.
                     * @param message PerInstanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPerInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerInstanceConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PerInstanceConfig.verify|verify} messages.
                     * @param message PerInstanceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPerInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerInstanceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerInstanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PerInstanceConfig;

                    /**
                     * Decodes a PerInstanceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerInstanceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PerInstanceConfig;

                    /**
                     * Verifies a PerInstanceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerInstanceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerInstanceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PerInstanceConfig;

                    /**
                     * Creates a plain object from a PerInstanceConfig message. Also converts values to other types if specified.
                     * @param message PerInstanceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PerInstanceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerInstanceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerInstanceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PerInstanceConfig {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        APPLYING = 352003508,
                        DELETING = 528602024,
                        EFFECTIVE = 244201863,
                        NONE = 2402104,
                        UNAPPLIED = 483935140,
                        UNAPPLIED_DELETION = 313956873
                    }
                }

                /** Properties of a PerformMaintenanceInstanceRequest. */
                interface IPerformMaintenanceInstanceRequest {

                    /** PerformMaintenanceInstanceRequest instance */
                    instance?: (string|null);

                    /** PerformMaintenanceInstanceRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceInstanceRequest. */
                class PerformMaintenanceInstanceRequest implements IPerformMaintenanceInstanceRequest {

                    /**
                     * Constructs a new PerformMaintenanceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest);

                    /** PerformMaintenanceInstanceRequest instance. */
                    public instance: string;

                    /** PerformMaintenanceInstanceRequest project. */
                    public project: string;

                    /** PerformMaintenanceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest): google.cloud.compute.v1beta.PerformMaintenanceInstanceRequest;

                    /**
                     * Encodes the specified PerformMaintenanceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceInstanceRequest.verify|verify} messages.
                     * @param message PerformMaintenanceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceInstanceRequest.verify|verify} messages.
                     * @param message PerformMaintenanceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PerformMaintenanceInstanceRequest;

                    /**
                     * Decodes a PerformMaintenanceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PerformMaintenanceInstanceRequest;

                    /**
                     * Verifies a PerformMaintenanceInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PerformMaintenanceInstanceRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceInstanceRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PerformMaintenanceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerformMaintenanceNodeGroupRequest. */
                interface IPerformMaintenanceNodeGroupRequest {

                    /** PerformMaintenanceNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** PerformMaintenanceNodeGroupRequest nodeGroupsPerformMaintenanceRequestResource */
                    nodeGroupsPerformMaintenanceRequestResource?: (google.cloud.compute.v1beta.INodeGroupsPerformMaintenanceRequest|null);

                    /** PerformMaintenanceNodeGroupRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceNodeGroupRequest. */
                class PerformMaintenanceNodeGroupRequest implements IPerformMaintenanceNodeGroupRequest {

                    /**
                     * Constructs a new PerformMaintenanceNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPerformMaintenanceNodeGroupRequest);

                    /** PerformMaintenanceNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** PerformMaintenanceNodeGroupRequest nodeGroupsPerformMaintenanceRequestResource. */
                    public nodeGroupsPerformMaintenanceRequestResource?: (google.cloud.compute.v1beta.INodeGroupsPerformMaintenanceRequest|null);

                    /** PerformMaintenanceNodeGroupRequest project. */
                    public project: string;

                    /** PerformMaintenanceNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPerformMaintenanceNodeGroupRequest): google.cloud.compute.v1beta.PerformMaintenanceNodeGroupRequest;

                    /**
                     * Encodes the specified PerformMaintenanceNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceNodeGroupRequest.verify|verify} messages.
                     * @param message PerformMaintenanceNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPerformMaintenanceNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceNodeGroupRequest.verify|verify} messages.
                     * @param message PerformMaintenanceNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPerformMaintenanceNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PerformMaintenanceNodeGroupRequest;

                    /**
                     * Decodes a PerformMaintenanceNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PerformMaintenanceNodeGroupRequest;

                    /**
                     * Verifies a PerformMaintenanceNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PerformMaintenanceNodeGroupRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PerformMaintenanceNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerformMaintenanceReservationBlockRequest. */
                interface IPerformMaintenanceReservationBlockRequest {

                    /** PerformMaintenanceReservationBlockRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest reservation */
                    reservation?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest reservationBlock */
                    reservationBlock?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest reservationsBlocksPerformMaintenanceRequestResource */
                    reservationsBlocksPerformMaintenanceRequestResource?: (google.cloud.compute.v1beta.IReservationsBlocksPerformMaintenanceRequest|null);

                    /** PerformMaintenanceReservationBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceReservationBlockRequest. */
                class PerformMaintenanceReservationBlockRequest implements IPerformMaintenanceReservationBlockRequest {

                    /**
                     * Constructs a new PerformMaintenanceReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPerformMaintenanceReservationBlockRequest);

                    /** PerformMaintenanceReservationBlockRequest project. */
                    public project: string;

                    /** PerformMaintenanceReservationBlockRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceReservationBlockRequest reservation. */
                    public reservation: string;

                    /** PerformMaintenanceReservationBlockRequest reservationBlock. */
                    public reservationBlock: string;

                    /** PerformMaintenanceReservationBlockRequest reservationsBlocksPerformMaintenanceRequestResource. */
                    public reservationsBlocksPerformMaintenanceRequestResource?: (google.cloud.compute.v1beta.IReservationsBlocksPerformMaintenanceRequest|null);

                    /** PerformMaintenanceReservationBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPerformMaintenanceReservationBlockRequest): google.cloud.compute.v1beta.PerformMaintenanceReservationBlockRequest;

                    /**
                     * Encodes the specified PerformMaintenanceReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceReservationBlockRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPerformMaintenanceReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceReservationBlockRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPerformMaintenanceReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PerformMaintenanceReservationBlockRequest;

                    /**
                     * Decodes a PerformMaintenanceReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PerformMaintenanceReservationBlockRequest;

                    /**
                     * Verifies a PerformMaintenanceReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PerformMaintenanceReservationBlockRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PerformMaintenanceReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerformMaintenanceReservationRequest. */
                interface IPerformMaintenanceReservationRequest {

                    /** PerformMaintenanceReservationRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceReservationRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceReservationRequest reservation */
                    reservation?: (string|null);

                    /** PerformMaintenanceReservationRequest reservationsPerformMaintenanceRequestResource */
                    reservationsPerformMaintenanceRequestResource?: (google.cloud.compute.v1beta.IReservationsPerformMaintenanceRequest|null);

                    /** PerformMaintenanceReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceReservationRequest. */
                class PerformMaintenanceReservationRequest implements IPerformMaintenanceReservationRequest {

                    /**
                     * Constructs a new PerformMaintenanceReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPerformMaintenanceReservationRequest);

                    /** PerformMaintenanceReservationRequest project. */
                    public project: string;

                    /** PerformMaintenanceReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceReservationRequest reservation. */
                    public reservation: string;

                    /** PerformMaintenanceReservationRequest reservationsPerformMaintenanceRequestResource. */
                    public reservationsPerformMaintenanceRequestResource?: (google.cloud.compute.v1beta.IReservationsPerformMaintenanceRequest|null);

                    /** PerformMaintenanceReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPerformMaintenanceReservationRequest): google.cloud.compute.v1beta.PerformMaintenanceReservationRequest;

                    /**
                     * Encodes the specified PerformMaintenanceReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceReservationRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPerformMaintenanceReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceReservationRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPerformMaintenanceReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PerformMaintenanceReservationRequest;

                    /**
                     * Decodes a PerformMaintenanceReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PerformMaintenanceReservationRequest;

                    /**
                     * Verifies a PerformMaintenanceReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PerformMaintenanceReservationRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceReservationRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PerformMaintenanceReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PerformMaintenanceReservationSubBlockRequest. */
                interface IPerformMaintenanceReservationSubBlockRequest {

                    /** PerformMaintenanceReservationSubBlockRequest parentName */
                    parentName?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest project */
                    project?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest requestId */
                    requestId?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest reservationSubBlock */
                    reservationSubBlock?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a PerformMaintenanceReservationSubBlockRequest. */
                class PerformMaintenanceReservationSubBlockRequest implements IPerformMaintenanceReservationSubBlockRequest {

                    /**
                     * Constructs a new PerformMaintenanceReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPerformMaintenanceReservationSubBlockRequest);

                    /** PerformMaintenanceReservationSubBlockRequest parentName. */
                    public parentName: string;

                    /** PerformMaintenanceReservationSubBlockRequest project. */
                    public project: string;

                    /** PerformMaintenanceReservationSubBlockRequest requestId. */
                    public requestId?: (string|null);

                    /** PerformMaintenanceReservationSubBlockRequest reservationSubBlock. */
                    public reservationSubBlock: string;

                    /** PerformMaintenanceReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new PerformMaintenanceReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PerformMaintenanceReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPerformMaintenanceReservationSubBlockRequest): google.cloud.compute.v1beta.PerformMaintenanceReservationSubBlockRequest;

                    /**
                     * Encodes the specified PerformMaintenanceReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceReservationSubBlockRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPerformMaintenanceReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PerformMaintenanceReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PerformMaintenanceReservationSubBlockRequest.verify|verify} messages.
                     * @param message PerformMaintenanceReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPerformMaintenanceReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PerformMaintenanceReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PerformMaintenanceReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PerformMaintenanceReservationSubBlockRequest;

                    /**
                     * Decodes a PerformMaintenanceReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PerformMaintenanceReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PerformMaintenanceReservationSubBlockRequest;

                    /**
                     * Verifies a PerformMaintenanceReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PerformMaintenanceReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PerformMaintenanceReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PerformMaintenanceReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a PerformMaintenanceReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message PerformMaintenanceReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PerformMaintenanceReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PerformMaintenanceReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PerformMaintenanceReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Policy. */
                interface IPolicy {

                    /** Policy auditConfigs */
                    auditConfigs?: (google.cloud.compute.v1beta.IAuditConfig[]|null);

                    /** Policy bindings */
                    bindings?: (google.cloud.compute.v1beta.IBinding[]|null);

                    /** Policy etag */
                    etag?: (string|null);

                    /** Policy iamOwned */
                    iamOwned?: (boolean|null);

                    /** Policy version */
                    version?: (number|null);
                }

                /** Represents a Policy. */
                class Policy implements IPolicy {

                    /**
                     * Constructs a new Policy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPolicy);

                    /** Policy auditConfigs. */
                    public auditConfigs: google.cloud.compute.v1beta.IAuditConfig[];

                    /** Policy bindings. */
                    public bindings: google.cloud.compute.v1beta.IBinding[];

                    /** Policy etag. */
                    public etag?: (string|null);

                    /** Policy iamOwned. */
                    public iamOwned?: (boolean|null);

                    /** Policy version. */
                    public version?: (number|null);

                    /**
                     * Creates a new Policy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Policy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPolicy): google.cloud.compute.v1beta.Policy;

                    /**
                     * Encodes the specified Policy message. Does not implicitly {@link google.cloud.compute.v1beta.Policy.verify|verify} messages.
                     * @param message Policy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Policy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Policy.verify|verify} messages.
                     * @param message Policy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Policy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Policy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Policy;

                    /**
                     * Decodes a Policy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Policy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Policy;

                    /**
                     * Verifies a Policy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Policy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Policy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Policy;

                    /**
                     * Creates a plain object from a Policy message. Also converts values to other types if specified.
                     * @param message Policy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Policy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Policy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Policy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreconfiguredWafSet. */
                interface IPreconfiguredWafSet {

                    /** PreconfiguredWafSet expressionSets */
                    expressionSets?: (google.cloud.compute.v1beta.IWafExpressionSet[]|null);
                }

                /** Represents a PreconfiguredWafSet. */
                class PreconfiguredWafSet implements IPreconfiguredWafSet {

                    /**
                     * Constructs a new PreconfiguredWafSet.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreconfiguredWafSet);

                    /** PreconfiguredWafSet expressionSets. */
                    public expressionSets: google.cloud.compute.v1beta.IWafExpressionSet[];

                    /**
                     * Creates a new PreconfiguredWafSet instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreconfiguredWafSet instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreconfiguredWafSet): google.cloud.compute.v1beta.PreconfiguredWafSet;

                    /**
                     * Encodes the specified PreconfiguredWafSet message. Does not implicitly {@link google.cloud.compute.v1beta.PreconfiguredWafSet.verify|verify} messages.
                     * @param message PreconfiguredWafSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreconfiguredWafSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreconfiguredWafSet message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreconfiguredWafSet.verify|verify} messages.
                     * @param message PreconfiguredWafSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreconfiguredWafSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreconfiguredWafSet message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreconfiguredWafSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreconfiguredWafSet;

                    /**
                     * Decodes a PreconfiguredWafSet message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreconfiguredWafSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreconfiguredWafSet;

                    /**
                     * Verifies a PreconfiguredWafSet message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreconfiguredWafSet message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreconfiguredWafSet
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreconfiguredWafSet;

                    /**
                     * Creates a plain object from a PreconfiguredWafSet message. Also converts values to other types if specified.
                     * @param message PreconfiguredWafSet
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreconfiguredWafSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreconfiguredWafSet to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreconfiguredWafSet
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreservedState. */
                interface IPreservedState {

                    /** PreservedState disks */
                    disks?: ({ [k: string]: google.cloud.compute.v1beta.IPreservedStatePreservedDisk }|null);

                    /** PreservedState externalIPs */
                    externalIPs?: ({ [k: string]: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIp }|null);

                    /** PreservedState internalIPs */
                    internalIPs?: ({ [k: string]: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIp }|null);

                    /** PreservedState metadata */
                    metadata?: ({ [k: string]: string }|null);
                }

                /** Represents a PreservedState. */
                class PreservedState implements IPreservedState {

                    /**
                     * Constructs a new PreservedState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreservedState);

                    /** PreservedState disks. */
                    public disks: { [k: string]: google.cloud.compute.v1beta.IPreservedStatePreservedDisk };

                    /** PreservedState externalIPs. */
                    public externalIPs: { [k: string]: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIp };

                    /** PreservedState internalIPs. */
                    public internalIPs: { [k: string]: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIp };

                    /** PreservedState metadata. */
                    public metadata: { [k: string]: string };

                    /**
                     * Creates a new PreservedState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreservedState instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreservedState): google.cloud.compute.v1beta.PreservedState;

                    /**
                     * Encodes the specified PreservedState message. Does not implicitly {@link google.cloud.compute.v1beta.PreservedState.verify|verify} messages.
                     * @param message PreservedState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreservedState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreservedState message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreservedState.verify|verify} messages.
                     * @param message PreservedState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreservedState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreservedState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreservedState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreservedState;

                    /**
                     * Decodes a PreservedState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreservedState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreservedState;

                    /**
                     * Verifies a PreservedState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreservedState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreservedState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreservedState;

                    /**
                     * Creates a plain object from a PreservedState message. Also converts values to other types if specified.
                     * @param message PreservedState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreservedState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreservedState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreservedState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreservedStatePreservedDisk. */
                interface IPreservedStatePreservedDisk {

                    /** PreservedStatePreservedDisk autoDelete */
                    autoDelete?: (string|null);

                    /** PreservedStatePreservedDisk mode */
                    mode?: (string|null);

                    /** PreservedStatePreservedDisk source */
                    source?: (string|null);
                }

                /** Represents a PreservedStatePreservedDisk. */
                class PreservedStatePreservedDisk implements IPreservedStatePreservedDisk {

                    /**
                     * Constructs a new PreservedStatePreservedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreservedStatePreservedDisk);

                    /** PreservedStatePreservedDisk autoDelete. */
                    public autoDelete?: (string|null);

                    /** PreservedStatePreservedDisk mode. */
                    public mode?: (string|null);

                    /** PreservedStatePreservedDisk source. */
                    public source?: (string|null);

                    /**
                     * Creates a new PreservedStatePreservedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreservedStatePreservedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreservedStatePreservedDisk): google.cloud.compute.v1beta.PreservedStatePreservedDisk;

                    /**
                     * Encodes the specified PreservedStatePreservedDisk message. Does not implicitly {@link google.cloud.compute.v1beta.PreservedStatePreservedDisk.verify|verify} messages.
                     * @param message PreservedStatePreservedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreservedStatePreservedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreservedStatePreservedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreservedStatePreservedDisk.verify|verify} messages.
                     * @param message PreservedStatePreservedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreservedStatePreservedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreservedStatePreservedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreservedStatePreservedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreservedStatePreservedDisk;

                    /**
                     * Decodes a PreservedStatePreservedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreservedStatePreservedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreservedStatePreservedDisk;

                    /**
                     * Verifies a PreservedStatePreservedDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreservedStatePreservedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreservedStatePreservedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreservedStatePreservedDisk;

                    /**
                     * Creates a plain object from a PreservedStatePreservedDisk message. Also converts values to other types if specified.
                     * @param message PreservedStatePreservedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreservedStatePreservedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreservedStatePreservedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreservedStatePreservedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreservedStatePreservedDisk {

                    /** AutoDelete enum. */
                    enum AutoDelete {
                        UNDEFINED_AUTO_DELETE = 0,
                        NEVER = 74175084,
                        ON_PERMANENT_INSTANCE_DELETION = 95727719
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        READ_ONLY = 91950261,
                        READ_WRITE = 173607894
                    }
                }

                /** Properties of a PreservedStatePreservedNetworkIp. */
                interface IPreservedStatePreservedNetworkIp {

                    /** PreservedStatePreservedNetworkIp autoDelete */
                    autoDelete?: (string|null);

                    /** PreservedStatePreservedNetworkIp ipAddress */
                    ipAddress?: (google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIpIpAddress|null);
                }

                /** Represents a PreservedStatePreservedNetworkIp. */
                class PreservedStatePreservedNetworkIp implements IPreservedStatePreservedNetworkIp {

                    /**
                     * Constructs a new PreservedStatePreservedNetworkIp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIp);

                    /** PreservedStatePreservedNetworkIp autoDelete. */
                    public autoDelete?: (string|null);

                    /** PreservedStatePreservedNetworkIp ipAddress. */
                    public ipAddress?: (google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIpIpAddress|null);

                    /**
                     * Creates a new PreservedStatePreservedNetworkIp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreservedStatePreservedNetworkIp instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIp): google.cloud.compute.v1beta.PreservedStatePreservedNetworkIp;

                    /**
                     * Encodes the specified PreservedStatePreservedNetworkIp message. Does not implicitly {@link google.cloud.compute.v1beta.PreservedStatePreservedNetworkIp.verify|verify} messages.
                     * @param message PreservedStatePreservedNetworkIp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreservedStatePreservedNetworkIp message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreservedStatePreservedNetworkIp.verify|verify} messages.
                     * @param message PreservedStatePreservedNetworkIp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreservedStatePreservedNetworkIp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreservedStatePreservedNetworkIp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreservedStatePreservedNetworkIp;

                    /**
                     * Decodes a PreservedStatePreservedNetworkIp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreservedStatePreservedNetworkIp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreservedStatePreservedNetworkIp;

                    /**
                     * Verifies a PreservedStatePreservedNetworkIp message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreservedStatePreservedNetworkIp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreservedStatePreservedNetworkIp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreservedStatePreservedNetworkIp;

                    /**
                     * Creates a plain object from a PreservedStatePreservedNetworkIp message. Also converts values to other types if specified.
                     * @param message PreservedStatePreservedNetworkIp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreservedStatePreservedNetworkIp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreservedStatePreservedNetworkIp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreservedStatePreservedNetworkIp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreservedStatePreservedNetworkIp {

                    /** AutoDelete enum. */
                    enum AutoDelete {
                        UNDEFINED_AUTO_DELETE = 0,
                        NEVER = 74175084,
                        ON_PERMANENT_INSTANCE_DELETION = 95727719
                    }
                }

                /** Properties of a PreservedStatePreservedNetworkIpIpAddress. */
                interface IPreservedStatePreservedNetworkIpIpAddress {

                    /** PreservedStatePreservedNetworkIpIpAddress address */
                    address?: (string|null);

                    /** PreservedStatePreservedNetworkIpIpAddress literal */
                    literal?: (string|null);
                }

                /** Represents a PreservedStatePreservedNetworkIpIpAddress. */
                class PreservedStatePreservedNetworkIpIpAddress implements IPreservedStatePreservedNetworkIpIpAddress {

                    /**
                     * Constructs a new PreservedStatePreservedNetworkIpIpAddress.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIpIpAddress);

                    /** PreservedStatePreservedNetworkIpIpAddress address. */
                    public address?: (string|null);

                    /** PreservedStatePreservedNetworkIpIpAddress literal. */
                    public literal?: (string|null);

                    /**
                     * Creates a new PreservedStatePreservedNetworkIpIpAddress instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreservedStatePreservedNetworkIpIpAddress instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIpIpAddress): google.cloud.compute.v1beta.PreservedStatePreservedNetworkIpIpAddress;

                    /**
                     * Encodes the specified PreservedStatePreservedNetworkIpIpAddress message. Does not implicitly {@link google.cloud.compute.v1beta.PreservedStatePreservedNetworkIpIpAddress.verify|verify} messages.
                     * @param message PreservedStatePreservedNetworkIpIpAddress message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIpIpAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreservedStatePreservedNetworkIpIpAddress message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreservedStatePreservedNetworkIpIpAddress.verify|verify} messages.
                     * @param message PreservedStatePreservedNetworkIpIpAddress message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreservedStatePreservedNetworkIpIpAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreservedStatePreservedNetworkIpIpAddress message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreservedStatePreservedNetworkIpIpAddress
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreservedStatePreservedNetworkIpIpAddress;

                    /**
                     * Decodes a PreservedStatePreservedNetworkIpIpAddress message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreservedStatePreservedNetworkIpIpAddress
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreservedStatePreservedNetworkIpIpAddress;

                    /**
                     * Verifies a PreservedStatePreservedNetworkIpIpAddress message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreservedStatePreservedNetworkIpIpAddress message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreservedStatePreservedNetworkIpIpAddress
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreservedStatePreservedNetworkIpIpAddress;

                    /**
                     * Creates a plain object from a PreservedStatePreservedNetworkIpIpAddress message. Also converts values to other types if specified.
                     * @param message PreservedStatePreservedNetworkIpIpAddress
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreservedStatePreservedNetworkIpIpAddress, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreservedStatePreservedNetworkIpIpAddress to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreservedStatePreservedNetworkIpIpAddress
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreviewFeature. */
                interface IPreviewFeature {

                    /** PreviewFeature activationStatus */
                    activationStatus?: (string|null);

                    /** PreviewFeature creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** PreviewFeature description */
                    description?: (string|null);

                    /** PreviewFeature id */
                    id?: (number|Long|string|null);

                    /** PreviewFeature kind */
                    kind?: (string|null);

                    /** PreviewFeature name */
                    name?: (string|null);

                    /** PreviewFeature rolloutOperation */
                    rolloutOperation?: (google.cloud.compute.v1beta.IPreviewFeatureRolloutOperation|null);

                    /** PreviewFeature selfLink */
                    selfLink?: (string|null);

                    /** PreviewFeature status */
                    status?: (google.cloud.compute.v1beta.IPreviewFeatureStatus|null);
                }

                /** Represents a PreviewFeature. */
                class PreviewFeature implements IPreviewFeature {

                    /**
                     * Constructs a new PreviewFeature.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreviewFeature);

                    /** PreviewFeature activationStatus. */
                    public activationStatus?: (string|null);

                    /** PreviewFeature creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** PreviewFeature description. */
                    public description?: (string|null);

                    /** PreviewFeature id. */
                    public id?: (number|Long|string|null);

                    /** PreviewFeature kind. */
                    public kind?: (string|null);

                    /** PreviewFeature name. */
                    public name?: (string|null);

                    /** PreviewFeature rolloutOperation. */
                    public rolloutOperation?: (google.cloud.compute.v1beta.IPreviewFeatureRolloutOperation|null);

                    /** PreviewFeature selfLink. */
                    public selfLink?: (string|null);

                    /** PreviewFeature status. */
                    public status?: (google.cloud.compute.v1beta.IPreviewFeatureStatus|null);

                    /**
                     * Creates a new PreviewFeature instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeature instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreviewFeature): google.cloud.compute.v1beta.PreviewFeature;

                    /**
                     * Encodes the specified PreviewFeature message. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeature.verify|verify} messages.
                     * @param message PreviewFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreviewFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeature message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeature.verify|verify} messages.
                     * @param message PreviewFeature message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreviewFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeature message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreviewFeature;

                    /**
                     * Decodes a PreviewFeature message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeature
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreviewFeature;

                    /**
                     * Verifies a PreviewFeature message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeature message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeature
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreviewFeature;

                    /**
                     * Creates a plain object from a PreviewFeature message. Also converts values to other types if specified.
                     * @param message PreviewFeature
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreviewFeature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeature to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeature
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreviewFeature {

                    /** ActivationStatus enum. */
                    enum ActivationStatus {
                        UNDEFINED_ACTIVATION_STATUS = 0,
                        ACTIVATION_STATE_UNSPECIFIED = 632160,
                        DISABLED = 516696700,
                        ENABLED = 182130465
                    }
                }

                /** Properties of a PreviewFeatureList. */
                interface IPreviewFeatureList {

                    /** PreviewFeatureList etag */
                    etag?: (string|null);

                    /** PreviewFeatureList id */
                    id?: (string|null);

                    /** PreviewFeatureList items */
                    items?: (google.cloud.compute.v1beta.IPreviewFeature[]|null);

                    /** PreviewFeatureList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PreviewFeatureList selfLink */
                    selfLink?: (string|null);

                    /** PreviewFeatureList unreachables */
                    unreachables?: (string[]|null);

                    /** PreviewFeatureList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a PreviewFeatureList. */
                class PreviewFeatureList implements IPreviewFeatureList {

                    /**
                     * Constructs a new PreviewFeatureList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreviewFeatureList);

                    /** PreviewFeatureList etag. */
                    public etag?: (string|null);

                    /** PreviewFeatureList id. */
                    public id?: (string|null);

                    /** PreviewFeatureList items. */
                    public items: google.cloud.compute.v1beta.IPreviewFeature[];

                    /** PreviewFeatureList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PreviewFeatureList selfLink. */
                    public selfLink?: (string|null);

                    /** PreviewFeatureList unreachables. */
                    public unreachables: string[];

                    /** PreviewFeatureList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new PreviewFeatureList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreviewFeatureList): google.cloud.compute.v1beta.PreviewFeatureList;

                    /**
                     * Encodes the specified PreviewFeatureList message. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureList.verify|verify} messages.
                     * @param message PreviewFeatureList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreviewFeatureList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureList.verify|verify} messages.
                     * @param message PreviewFeatureList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreviewFeatureList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreviewFeatureList;

                    /**
                     * Decodes a PreviewFeatureList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreviewFeatureList;

                    /**
                     * Verifies a PreviewFeatureList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreviewFeatureList;

                    /**
                     * Creates a plain object from a PreviewFeatureList message. Also converts values to other types if specified.
                     * @param message PreviewFeatureList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreviewFeatureList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreviewFeatureRolloutOperation. */
                interface IPreviewFeatureRolloutOperation {

                    /** PreviewFeatureRolloutOperation rolloutInput */
                    rolloutInput?: (google.cloud.compute.v1beta.IPreviewFeatureRolloutOperationRolloutInput|null);
                }

                /** Represents a PreviewFeatureRolloutOperation. */
                class PreviewFeatureRolloutOperation implements IPreviewFeatureRolloutOperation {

                    /**
                     * Constructs a new PreviewFeatureRolloutOperation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreviewFeatureRolloutOperation);

                    /** PreviewFeatureRolloutOperation rolloutInput. */
                    public rolloutInput?: (google.cloud.compute.v1beta.IPreviewFeatureRolloutOperationRolloutInput|null);

                    /**
                     * Creates a new PreviewFeatureRolloutOperation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureRolloutOperation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreviewFeatureRolloutOperation): google.cloud.compute.v1beta.PreviewFeatureRolloutOperation;

                    /**
                     * Encodes the specified PreviewFeatureRolloutOperation message. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureRolloutOperation.verify|verify} messages.
                     * @param message PreviewFeatureRolloutOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreviewFeatureRolloutOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureRolloutOperation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureRolloutOperation.verify|verify} messages.
                     * @param message PreviewFeatureRolloutOperation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreviewFeatureRolloutOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureRolloutOperation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureRolloutOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreviewFeatureRolloutOperation;

                    /**
                     * Decodes a PreviewFeatureRolloutOperation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureRolloutOperation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreviewFeatureRolloutOperation;

                    /**
                     * Verifies a PreviewFeatureRolloutOperation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureRolloutOperation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureRolloutOperation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreviewFeatureRolloutOperation;

                    /**
                     * Creates a plain object from a PreviewFeatureRolloutOperation message. Also converts values to other types if specified.
                     * @param message PreviewFeatureRolloutOperation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreviewFeatureRolloutOperation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureRolloutOperation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureRolloutOperation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreviewFeatureRolloutOperationRolloutInput. */
                interface IPreviewFeatureRolloutOperationRolloutInput {

                    /** PreviewFeatureRolloutOperationRolloutInput name */
                    name?: (string|null);

                    /** PreviewFeatureRolloutOperationRolloutInput predefinedRolloutPlan */
                    predefinedRolloutPlan?: (string|null);

                    /** PreviewFeatureRolloutOperationRolloutInput retryUuid */
                    retryUuid?: (string|null);
                }

                /** Represents a PreviewFeatureRolloutOperationRolloutInput. */
                class PreviewFeatureRolloutOperationRolloutInput implements IPreviewFeatureRolloutOperationRolloutInput {

                    /**
                     * Constructs a new PreviewFeatureRolloutOperationRolloutInput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreviewFeatureRolloutOperationRolloutInput);

                    /** PreviewFeatureRolloutOperationRolloutInput name. */
                    public name?: (string|null);

                    /** PreviewFeatureRolloutOperationRolloutInput predefinedRolloutPlan. */
                    public predefinedRolloutPlan?: (string|null);

                    /** PreviewFeatureRolloutOperationRolloutInput retryUuid. */
                    public retryUuid?: (string|null);

                    /**
                     * Creates a new PreviewFeatureRolloutOperationRolloutInput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureRolloutOperationRolloutInput instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreviewFeatureRolloutOperationRolloutInput): google.cloud.compute.v1beta.PreviewFeatureRolloutOperationRolloutInput;

                    /**
                     * Encodes the specified PreviewFeatureRolloutOperationRolloutInput message. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureRolloutOperationRolloutInput.verify|verify} messages.
                     * @param message PreviewFeatureRolloutOperationRolloutInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreviewFeatureRolloutOperationRolloutInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureRolloutOperationRolloutInput message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureRolloutOperationRolloutInput.verify|verify} messages.
                     * @param message PreviewFeatureRolloutOperationRolloutInput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreviewFeatureRolloutOperationRolloutInput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureRolloutOperationRolloutInput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureRolloutOperationRolloutInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreviewFeatureRolloutOperationRolloutInput;

                    /**
                     * Decodes a PreviewFeatureRolloutOperationRolloutInput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureRolloutOperationRolloutInput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreviewFeatureRolloutOperationRolloutInput;

                    /**
                     * Verifies a PreviewFeatureRolloutOperationRolloutInput message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureRolloutOperationRolloutInput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureRolloutOperationRolloutInput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreviewFeatureRolloutOperationRolloutInput;

                    /**
                     * Creates a plain object from a PreviewFeatureRolloutOperationRolloutInput message. Also converts values to other types if specified.
                     * @param message PreviewFeatureRolloutOperationRolloutInput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreviewFeatureRolloutOperationRolloutInput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureRolloutOperationRolloutInput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureRolloutOperationRolloutInput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreviewFeatureRolloutOperationRolloutInput {

                    /** PredefinedRolloutPlan enum. */
                    enum PredefinedRolloutPlan {
                        UNDEFINED_PREDEFINED_ROLLOUT_PLAN = 0,
                        ROLLOUT_PLAN_FAST_ROLLOUT = 167808726,
                        ROLLOUT_PLAN_TWO_DAY_ROLLOUT = 349866771,
                        ROLLOUT_PLAN_UNSPECIFIED = 144511983
                    }
                }

                /** Properties of a PreviewFeatureStatus. */
                interface IPreviewFeatureStatus {

                    /** PreviewFeatureStatus description */
                    description?: (string|null);

                    /** PreviewFeatureStatus helpLink */
                    helpLink?: (string|null);

                    /** PreviewFeatureStatus releaseStatus */
                    releaseStatus?: (google.cloud.compute.v1beta.IPreviewFeatureStatusReleaseStatus|null);
                }

                /** Represents a PreviewFeatureStatus. */
                class PreviewFeatureStatus implements IPreviewFeatureStatus {

                    /**
                     * Constructs a new PreviewFeatureStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreviewFeatureStatus);

                    /** PreviewFeatureStatus description. */
                    public description?: (string|null);

                    /** PreviewFeatureStatus helpLink. */
                    public helpLink?: (string|null);

                    /** PreviewFeatureStatus releaseStatus. */
                    public releaseStatus?: (google.cloud.compute.v1beta.IPreviewFeatureStatusReleaseStatus|null);

                    /**
                     * Creates a new PreviewFeatureStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreviewFeatureStatus): google.cloud.compute.v1beta.PreviewFeatureStatus;

                    /**
                     * Encodes the specified PreviewFeatureStatus message. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureStatus.verify|verify} messages.
                     * @param message PreviewFeatureStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreviewFeatureStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureStatus.verify|verify} messages.
                     * @param message PreviewFeatureStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreviewFeatureStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreviewFeatureStatus;

                    /**
                     * Decodes a PreviewFeatureStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreviewFeatureStatus;

                    /**
                     * Verifies a PreviewFeatureStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreviewFeatureStatus;

                    /**
                     * Creates a plain object from a PreviewFeatureStatus message. Also converts values to other types if specified.
                     * @param message PreviewFeatureStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreviewFeatureStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PreviewFeatureStatusReleaseStatus. */
                interface IPreviewFeatureStatusReleaseStatus {

                    /** PreviewFeatureStatusReleaseStatus stage */
                    stage?: (string|null);

                    /** PreviewFeatureStatusReleaseStatus updateDate */
                    updateDate?: (google.cloud.compute.v1beta.IDate|null);
                }

                /** Represents a PreviewFeatureStatusReleaseStatus. */
                class PreviewFeatureStatusReleaseStatus implements IPreviewFeatureStatusReleaseStatus {

                    /**
                     * Constructs a new PreviewFeatureStatusReleaseStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreviewFeatureStatusReleaseStatus);

                    /** PreviewFeatureStatusReleaseStatus stage. */
                    public stage?: (string|null);

                    /** PreviewFeatureStatusReleaseStatus updateDate. */
                    public updateDate?: (google.cloud.compute.v1beta.IDate|null);

                    /**
                     * Creates a new PreviewFeatureStatusReleaseStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewFeatureStatusReleaseStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreviewFeatureStatusReleaseStatus): google.cloud.compute.v1beta.PreviewFeatureStatusReleaseStatus;

                    /**
                     * Encodes the specified PreviewFeatureStatusReleaseStatus message. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureStatusReleaseStatus.verify|verify} messages.
                     * @param message PreviewFeatureStatusReleaseStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreviewFeatureStatusReleaseStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewFeatureStatusReleaseStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreviewFeatureStatusReleaseStatus.verify|verify} messages.
                     * @param message PreviewFeatureStatusReleaseStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreviewFeatureStatusReleaseStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewFeatureStatusReleaseStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewFeatureStatusReleaseStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreviewFeatureStatusReleaseStatus;

                    /**
                     * Decodes a PreviewFeatureStatusReleaseStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewFeatureStatusReleaseStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreviewFeatureStatusReleaseStatus;

                    /**
                     * Verifies a PreviewFeatureStatusReleaseStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewFeatureStatusReleaseStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewFeatureStatusReleaseStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreviewFeatureStatusReleaseStatus;

                    /**
                     * Creates a plain object from a PreviewFeatureStatusReleaseStatus message. Also converts values to other types if specified.
                     * @param message PreviewFeatureStatusReleaseStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreviewFeatureStatusReleaseStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewFeatureStatusReleaseStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewFeatureStatusReleaseStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PreviewFeatureStatusReleaseStatus {

                    /** Stage enum. */
                    enum Stage {
                        UNDEFINED_STAGE = 0,
                        DEPRECATED = 463360435,
                        GA = 2266,
                        INTERNAL = 279295677,
                        PREVIEW = 399798184,
                        STAGE_UNSPECIFIED = 63695670
                    }
                }

                /** Properties of a PreviewRouterRequest. */
                interface IPreviewRouterRequest {

                    /** PreviewRouterRequest project */
                    project?: (string|null);

                    /** PreviewRouterRequest region */
                    region?: (string|null);

                    /** PreviewRouterRequest router */
                    router?: (string|null);

                    /** PreviewRouterRequest routerResource */
                    routerResource?: (google.cloud.compute.v1beta.IRouter|null);
                }

                /** Represents a PreviewRouterRequest. */
                class PreviewRouterRequest implements IPreviewRouterRequest {

                    /**
                     * Constructs a new PreviewRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPreviewRouterRequest);

                    /** PreviewRouterRequest project. */
                    public project: string;

                    /** PreviewRouterRequest region. */
                    public region: string;

                    /** PreviewRouterRequest router. */
                    public router: string;

                    /** PreviewRouterRequest routerResource. */
                    public routerResource?: (google.cloud.compute.v1beta.IRouter|null);

                    /**
                     * Creates a new PreviewRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PreviewRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPreviewRouterRequest): google.cloud.compute.v1beta.PreviewRouterRequest;

                    /**
                     * Encodes the specified PreviewRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.PreviewRouterRequest.verify|verify} messages.
                     * @param message PreviewRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPreviewRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PreviewRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PreviewRouterRequest.verify|verify} messages.
                     * @param message PreviewRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPreviewRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PreviewRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PreviewRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PreviewRouterRequest;

                    /**
                     * Decodes a PreviewRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PreviewRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PreviewRouterRequest;

                    /**
                     * Verifies a PreviewRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PreviewRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PreviewRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PreviewRouterRequest;

                    /**
                     * Creates a plain object from a PreviewRouterRequest message. Also converts values to other types if specified.
                     * @param message PreviewRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PreviewRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PreviewRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PreviewRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Project. */
                interface IProject {

                    /** Project cloudArmorTier */
                    cloudArmorTier?: (string|null);

                    /** Project commonInstanceMetadata */
                    commonInstanceMetadata?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** Project creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Project defaultNetworkTier */
                    defaultNetworkTier?: (string|null);

                    /** Project defaultServiceAccount */
                    defaultServiceAccount?: (string|null);

                    /** Project description */
                    description?: (string|null);

                    /** Project enabledFeatures */
                    enabledFeatures?: (string[]|null);

                    /** Project id */
                    id?: (number|Long|string|null);

                    /** Project kind */
                    kind?: (string|null);

                    /** Project managedProtectionTier */
                    managedProtectionTier?: (string|null);

                    /** Project name */
                    name?: (string|null);

                    /** Project quotas */
                    quotas?: (google.cloud.compute.v1beta.IQuota[]|null);

                    /** Project selfLink */
                    selfLink?: (string|null);

                    /** Project usageExportLocation */
                    usageExportLocation?: (google.cloud.compute.v1beta.IUsageExportLocation|null);

                    /** Project vmDnsSetting */
                    vmDnsSetting?: (string|null);

                    /** Project xpnProjectStatus */
                    xpnProjectStatus?: (string|null);
                }

                /** Represents a Project. */
                class Project implements IProject {

                    /**
                     * Constructs a new Project.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IProject);

                    /** Project cloudArmorTier. */
                    public cloudArmorTier?: (string|null);

                    /** Project commonInstanceMetadata. */
                    public commonInstanceMetadata?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** Project creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Project defaultNetworkTier. */
                    public defaultNetworkTier?: (string|null);

                    /** Project defaultServiceAccount. */
                    public defaultServiceAccount?: (string|null);

                    /** Project description. */
                    public description?: (string|null);

                    /** Project enabledFeatures. */
                    public enabledFeatures: string[];

                    /** Project id. */
                    public id?: (number|Long|string|null);

                    /** Project kind. */
                    public kind?: (string|null);

                    /** Project managedProtectionTier. */
                    public managedProtectionTier?: (string|null);

                    /** Project name. */
                    public name?: (string|null);

                    /** Project quotas. */
                    public quotas: google.cloud.compute.v1beta.IQuota[];

                    /** Project selfLink. */
                    public selfLink?: (string|null);

                    /** Project usageExportLocation. */
                    public usageExportLocation?: (google.cloud.compute.v1beta.IUsageExportLocation|null);

                    /** Project vmDnsSetting. */
                    public vmDnsSetting?: (string|null);

                    /** Project xpnProjectStatus. */
                    public xpnProjectStatus?: (string|null);

                    /**
                     * Creates a new Project instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Project instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IProject): google.cloud.compute.v1beta.Project;

                    /**
                     * Encodes the specified Project message. Does not implicitly {@link google.cloud.compute.v1beta.Project.verify|verify} messages.
                     * @param message Project message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IProject, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Project message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Project.verify|verify} messages.
                     * @param message Project message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IProject, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Project message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Project
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Project;

                    /**
                     * Decodes a Project message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Project
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Project;

                    /**
                     * Verifies a Project message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Project message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Project
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Project;

                    /**
                     * Creates a plain object from a Project message. Also converts values to other types if specified.
                     * @param message Project
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Project, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Project to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Project
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Project {

                    /** CloudArmorTier enum. */
                    enum CloudArmorTier {
                        UNDEFINED_CLOUD_ARMOR_TIER = 0,
                        CA_ENTERPRISE_ANNUAL = 219921116,
                        CA_ENTERPRISE_PAYGO = 453530323,
                        CA_STANDARD = 13156734
                    }

                    /** DefaultNetworkTier enum. */
                    enum DefaultNetworkTier {
                        UNDEFINED_DEFAULT_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** ManagedProtectionTier enum. */
                    enum ManagedProtectionTier {
                        UNDEFINED_MANAGED_PROTECTION_TIER = 0,
                        CAMP_PLUS_ANNUAL = 406967142,
                        CAMP_PLUS_PAYGO = 165150985
                    }

                    /** VmDnsSetting enum. */
                    enum VmDnsSetting {
                        UNDEFINED_VM_DNS_SETTING = 0,
                        GLOBAL_DEFAULT = 345419141,
                        UNSPECIFIED_VM_DNS_SETTING = 35691930,
                        ZONAL_DEFAULT = 368475782,
                        ZONAL_ONLY = 521198951
                    }

                    /** XpnProjectStatus enum. */
                    enum XpnProjectStatus {
                        UNDEFINED_XPN_PROJECT_STATUS = 0,
                        HOST = 2223528,
                        UNSPECIFIED_XPN_PROJECT_STATUS = 340393257
                    }
                }

                /** Properties of a ProjectsDisableXpnResourceRequest. */
                interface IProjectsDisableXpnResourceRequest {

                    /** ProjectsDisableXpnResourceRequest xpnResource */
                    xpnResource?: (google.cloud.compute.v1beta.IXpnResourceId|null);
                }

                /** Represents a ProjectsDisableXpnResourceRequest. */
                class ProjectsDisableXpnResourceRequest implements IProjectsDisableXpnResourceRequest {

                    /**
                     * Constructs a new ProjectsDisableXpnResourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IProjectsDisableXpnResourceRequest);

                    /** ProjectsDisableXpnResourceRequest xpnResource. */
                    public xpnResource?: (google.cloud.compute.v1beta.IXpnResourceId|null);

                    /**
                     * Creates a new ProjectsDisableXpnResourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsDisableXpnResourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IProjectsDisableXpnResourceRequest): google.cloud.compute.v1beta.ProjectsDisableXpnResourceRequest;

                    /**
                     * Encodes the specified ProjectsDisableXpnResourceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsDisableXpnResourceRequest.verify|verify} messages.
                     * @param message ProjectsDisableXpnResourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IProjectsDisableXpnResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsDisableXpnResourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsDisableXpnResourceRequest.verify|verify} messages.
                     * @param message ProjectsDisableXpnResourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IProjectsDisableXpnResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsDisableXpnResourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsDisableXpnResourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ProjectsDisableXpnResourceRequest;

                    /**
                     * Decodes a ProjectsDisableXpnResourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsDisableXpnResourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ProjectsDisableXpnResourceRequest;

                    /**
                     * Verifies a ProjectsDisableXpnResourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsDisableXpnResourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsDisableXpnResourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ProjectsDisableXpnResourceRequest;

                    /**
                     * Creates a plain object from a ProjectsDisableXpnResourceRequest message. Also converts values to other types if specified.
                     * @param message ProjectsDisableXpnResourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ProjectsDisableXpnResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsDisableXpnResourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsDisableXpnResourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ProjectsEnableXpnResourceRequest. */
                interface IProjectsEnableXpnResourceRequest {

                    /** ProjectsEnableXpnResourceRequest xpnResource */
                    xpnResource?: (google.cloud.compute.v1beta.IXpnResourceId|null);
                }

                /** Represents a ProjectsEnableXpnResourceRequest. */
                class ProjectsEnableXpnResourceRequest implements IProjectsEnableXpnResourceRequest {

                    /**
                     * Constructs a new ProjectsEnableXpnResourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IProjectsEnableXpnResourceRequest);

                    /** ProjectsEnableXpnResourceRequest xpnResource. */
                    public xpnResource?: (google.cloud.compute.v1beta.IXpnResourceId|null);

                    /**
                     * Creates a new ProjectsEnableXpnResourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsEnableXpnResourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IProjectsEnableXpnResourceRequest): google.cloud.compute.v1beta.ProjectsEnableXpnResourceRequest;

                    /**
                     * Encodes the specified ProjectsEnableXpnResourceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsEnableXpnResourceRequest.verify|verify} messages.
                     * @param message ProjectsEnableXpnResourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IProjectsEnableXpnResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsEnableXpnResourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsEnableXpnResourceRequest.verify|verify} messages.
                     * @param message ProjectsEnableXpnResourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IProjectsEnableXpnResourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsEnableXpnResourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsEnableXpnResourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ProjectsEnableXpnResourceRequest;

                    /**
                     * Decodes a ProjectsEnableXpnResourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsEnableXpnResourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ProjectsEnableXpnResourceRequest;

                    /**
                     * Verifies a ProjectsEnableXpnResourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsEnableXpnResourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsEnableXpnResourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ProjectsEnableXpnResourceRequest;

                    /**
                     * Creates a plain object from a ProjectsEnableXpnResourceRequest message. Also converts values to other types if specified.
                     * @param message ProjectsEnableXpnResourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ProjectsEnableXpnResourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsEnableXpnResourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsEnableXpnResourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ProjectsGetXpnResources. */
                interface IProjectsGetXpnResources {

                    /** ProjectsGetXpnResources kind */
                    kind?: (string|null);

                    /** ProjectsGetXpnResources nextPageToken */
                    nextPageToken?: (string|null);

                    /** ProjectsGetXpnResources resources */
                    resources?: (google.cloud.compute.v1beta.IXpnResourceId[]|null);
                }

                /** Represents a ProjectsGetXpnResources. */
                class ProjectsGetXpnResources implements IProjectsGetXpnResources {

                    /**
                     * Constructs a new ProjectsGetXpnResources.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IProjectsGetXpnResources);

                    /** ProjectsGetXpnResources kind. */
                    public kind?: (string|null);

                    /** ProjectsGetXpnResources nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ProjectsGetXpnResources resources. */
                    public resources: google.cloud.compute.v1beta.IXpnResourceId[];

                    /**
                     * Creates a new ProjectsGetXpnResources instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsGetXpnResources instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IProjectsGetXpnResources): google.cloud.compute.v1beta.ProjectsGetXpnResources;

                    /**
                     * Encodes the specified ProjectsGetXpnResources message. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsGetXpnResources.verify|verify} messages.
                     * @param message ProjectsGetXpnResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IProjectsGetXpnResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsGetXpnResources message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsGetXpnResources.verify|verify} messages.
                     * @param message ProjectsGetXpnResources message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IProjectsGetXpnResources, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsGetXpnResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsGetXpnResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ProjectsGetXpnResources;

                    /**
                     * Decodes a ProjectsGetXpnResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsGetXpnResources
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ProjectsGetXpnResources;

                    /**
                     * Verifies a ProjectsGetXpnResources message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsGetXpnResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsGetXpnResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ProjectsGetXpnResources;

                    /**
                     * Creates a plain object from a ProjectsGetXpnResources message. Also converts values to other types if specified.
                     * @param message ProjectsGetXpnResources
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ProjectsGetXpnResources, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsGetXpnResources to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsGetXpnResources
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ProjectsListXpnHostsRequest. */
                interface IProjectsListXpnHostsRequest {

                    /** ProjectsListXpnHostsRequest organization */
                    organization?: (string|null);
                }

                /** Represents a ProjectsListXpnHostsRequest. */
                class ProjectsListXpnHostsRequest implements IProjectsListXpnHostsRequest {

                    /**
                     * Constructs a new ProjectsListXpnHostsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IProjectsListXpnHostsRequest);

                    /** ProjectsListXpnHostsRequest organization. */
                    public organization?: (string|null);

                    /**
                     * Creates a new ProjectsListXpnHostsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsListXpnHostsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IProjectsListXpnHostsRequest): google.cloud.compute.v1beta.ProjectsListXpnHostsRequest;

                    /**
                     * Encodes the specified ProjectsListXpnHostsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsListXpnHostsRequest.verify|verify} messages.
                     * @param message ProjectsListXpnHostsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IProjectsListXpnHostsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsListXpnHostsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsListXpnHostsRequest.verify|verify} messages.
                     * @param message ProjectsListXpnHostsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IProjectsListXpnHostsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsListXpnHostsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsListXpnHostsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ProjectsListXpnHostsRequest;

                    /**
                     * Decodes a ProjectsListXpnHostsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsListXpnHostsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ProjectsListXpnHostsRequest;

                    /**
                     * Verifies a ProjectsListXpnHostsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsListXpnHostsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsListXpnHostsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ProjectsListXpnHostsRequest;

                    /**
                     * Creates a plain object from a ProjectsListXpnHostsRequest message. Also converts values to other types if specified.
                     * @param message ProjectsListXpnHostsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ProjectsListXpnHostsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsListXpnHostsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsListXpnHostsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ProjectsSetCloudArmorTierRequest. */
                interface IProjectsSetCloudArmorTierRequest {

                    /** ProjectsSetCloudArmorTierRequest cloudArmorTier */
                    cloudArmorTier?: (string|null);
                }

                /** Represents a ProjectsSetCloudArmorTierRequest. */
                class ProjectsSetCloudArmorTierRequest implements IProjectsSetCloudArmorTierRequest {

                    /**
                     * Constructs a new ProjectsSetCloudArmorTierRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IProjectsSetCloudArmorTierRequest);

                    /** ProjectsSetCloudArmorTierRequest cloudArmorTier. */
                    public cloudArmorTier?: (string|null);

                    /**
                     * Creates a new ProjectsSetCloudArmorTierRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsSetCloudArmorTierRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IProjectsSetCloudArmorTierRequest): google.cloud.compute.v1beta.ProjectsSetCloudArmorTierRequest;

                    /**
                     * Encodes the specified ProjectsSetCloudArmorTierRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsSetCloudArmorTierRequest.verify|verify} messages.
                     * @param message ProjectsSetCloudArmorTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IProjectsSetCloudArmorTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsSetCloudArmorTierRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsSetCloudArmorTierRequest.verify|verify} messages.
                     * @param message ProjectsSetCloudArmorTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IProjectsSetCloudArmorTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsSetCloudArmorTierRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsSetCloudArmorTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ProjectsSetCloudArmorTierRequest;

                    /**
                     * Decodes a ProjectsSetCloudArmorTierRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsSetCloudArmorTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ProjectsSetCloudArmorTierRequest;

                    /**
                     * Verifies a ProjectsSetCloudArmorTierRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsSetCloudArmorTierRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsSetCloudArmorTierRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ProjectsSetCloudArmorTierRequest;

                    /**
                     * Creates a plain object from a ProjectsSetCloudArmorTierRequest message. Also converts values to other types if specified.
                     * @param message ProjectsSetCloudArmorTierRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ProjectsSetCloudArmorTierRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsSetCloudArmorTierRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsSetCloudArmorTierRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ProjectsSetCloudArmorTierRequest {

                    /** CloudArmorTier enum. */
                    enum CloudArmorTier {
                        UNDEFINED_CLOUD_ARMOR_TIER = 0,
                        CA_ENTERPRISE_ANNUAL = 219921116,
                        CA_ENTERPRISE_PAYGO = 453530323,
                        CA_STANDARD = 13156734
                    }
                }

                /** Properties of a ProjectsSetDefaultNetworkTierRequest. */
                interface IProjectsSetDefaultNetworkTierRequest {

                    /** ProjectsSetDefaultNetworkTierRequest networkTier */
                    networkTier?: (string|null);
                }

                /** Represents a ProjectsSetDefaultNetworkTierRequest. */
                class ProjectsSetDefaultNetworkTierRequest implements IProjectsSetDefaultNetworkTierRequest {

                    /**
                     * Constructs a new ProjectsSetDefaultNetworkTierRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IProjectsSetDefaultNetworkTierRequest);

                    /** ProjectsSetDefaultNetworkTierRequest networkTier. */
                    public networkTier?: (string|null);

                    /**
                     * Creates a new ProjectsSetDefaultNetworkTierRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsSetDefaultNetworkTierRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IProjectsSetDefaultNetworkTierRequest): google.cloud.compute.v1beta.ProjectsSetDefaultNetworkTierRequest;

                    /**
                     * Encodes the specified ProjectsSetDefaultNetworkTierRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsSetDefaultNetworkTierRequest.verify|verify} messages.
                     * @param message ProjectsSetDefaultNetworkTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IProjectsSetDefaultNetworkTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsSetDefaultNetworkTierRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsSetDefaultNetworkTierRequest.verify|verify} messages.
                     * @param message ProjectsSetDefaultNetworkTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IProjectsSetDefaultNetworkTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsSetDefaultNetworkTierRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsSetDefaultNetworkTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ProjectsSetDefaultNetworkTierRequest;

                    /**
                     * Decodes a ProjectsSetDefaultNetworkTierRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsSetDefaultNetworkTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ProjectsSetDefaultNetworkTierRequest;

                    /**
                     * Verifies a ProjectsSetDefaultNetworkTierRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsSetDefaultNetworkTierRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsSetDefaultNetworkTierRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ProjectsSetDefaultNetworkTierRequest;

                    /**
                     * Creates a plain object from a ProjectsSetDefaultNetworkTierRequest message. Also converts values to other types if specified.
                     * @param message ProjectsSetDefaultNetworkTierRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ProjectsSetDefaultNetworkTierRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsSetDefaultNetworkTierRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsSetDefaultNetworkTierRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ProjectsSetDefaultNetworkTierRequest {

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }
                }

                /** Properties of a ProjectsSetManagedProtectionTierRequest. */
                interface IProjectsSetManagedProtectionTierRequest {

                    /** ProjectsSetManagedProtectionTierRequest managedProtectionTier */
                    managedProtectionTier?: (string|null);
                }

                /** Represents a ProjectsSetManagedProtectionTierRequest. */
                class ProjectsSetManagedProtectionTierRequest implements IProjectsSetManagedProtectionTierRequest {

                    /**
                     * Constructs a new ProjectsSetManagedProtectionTierRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IProjectsSetManagedProtectionTierRequest);

                    /** ProjectsSetManagedProtectionTierRequest managedProtectionTier. */
                    public managedProtectionTier?: (string|null);

                    /**
                     * Creates a new ProjectsSetManagedProtectionTierRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProjectsSetManagedProtectionTierRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IProjectsSetManagedProtectionTierRequest): google.cloud.compute.v1beta.ProjectsSetManagedProtectionTierRequest;

                    /**
                     * Encodes the specified ProjectsSetManagedProtectionTierRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsSetManagedProtectionTierRequest.verify|verify} messages.
                     * @param message ProjectsSetManagedProtectionTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IProjectsSetManagedProtectionTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProjectsSetManagedProtectionTierRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ProjectsSetManagedProtectionTierRequest.verify|verify} messages.
                     * @param message ProjectsSetManagedProtectionTierRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IProjectsSetManagedProtectionTierRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProjectsSetManagedProtectionTierRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectsSetManagedProtectionTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ProjectsSetManagedProtectionTierRequest;

                    /**
                     * Decodes a ProjectsSetManagedProtectionTierRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectsSetManagedProtectionTierRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ProjectsSetManagedProtectionTierRequest;

                    /**
                     * Verifies a ProjectsSetManagedProtectionTierRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProjectsSetManagedProtectionTierRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectsSetManagedProtectionTierRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ProjectsSetManagedProtectionTierRequest;

                    /**
                     * Creates a plain object from a ProjectsSetManagedProtectionTierRequest message. Also converts values to other types if specified.
                     * @param message ProjectsSetManagedProtectionTierRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ProjectsSetManagedProtectionTierRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProjectsSetManagedProtectionTierRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProjectsSetManagedProtectionTierRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ProjectsSetManagedProtectionTierRequest {

                    /** ManagedProtectionTier enum. */
                    enum ManagedProtectionTier {
                        UNDEFINED_MANAGED_PROTECTION_TIER = 0,
                        CAMP_PLUS_ANNUAL = 406967142,
                        CAMP_PLUS_PAYGO = 165150985,
                        CA_STANDARD = 13156734
                    }
                }

                /** Properties of a PublicAdvertisedPrefix. */
                interface IPublicAdvertisedPrefix {

                    /** PublicAdvertisedPrefix byoipApiVersion */
                    byoipApiVersion?: (string|null);

                    /** PublicAdvertisedPrefix creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** PublicAdvertisedPrefix description */
                    description?: (string|null);

                    /** PublicAdvertisedPrefix dnsVerificationIp */
                    dnsVerificationIp?: (string|null);

                    /** PublicAdvertisedPrefix fingerprint */
                    fingerprint?: (string|null);

                    /** PublicAdvertisedPrefix id */
                    id?: (number|Long|string|null);

                    /** PublicAdvertisedPrefix ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** PublicAdvertisedPrefix ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** PublicAdvertisedPrefix kind */
                    kind?: (string|null);

                    /** PublicAdvertisedPrefix name */
                    name?: (string|null);

                    /** PublicAdvertisedPrefix pdpScope */
                    pdpScope?: (string|null);

                    /** PublicAdvertisedPrefix publicDelegatedPrefixs */
                    publicDelegatedPrefixs?: (google.cloud.compute.v1beta.IPublicAdvertisedPrefixPublicDelegatedPrefix[]|null);

                    /** PublicAdvertisedPrefix selfLink */
                    selfLink?: (string|null);

                    /** PublicAdvertisedPrefix sharedSecret */
                    sharedSecret?: (string|null);

                    /** PublicAdvertisedPrefix status */
                    status?: (string|null);
                }

                /** Represents a PublicAdvertisedPrefix. */
                class PublicAdvertisedPrefix implements IPublicAdvertisedPrefix {

                    /**
                     * Constructs a new PublicAdvertisedPrefix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPublicAdvertisedPrefix);

                    /** PublicAdvertisedPrefix byoipApiVersion. */
                    public byoipApiVersion?: (string|null);

                    /** PublicAdvertisedPrefix creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** PublicAdvertisedPrefix description. */
                    public description?: (string|null);

                    /** PublicAdvertisedPrefix dnsVerificationIp. */
                    public dnsVerificationIp?: (string|null);

                    /** PublicAdvertisedPrefix fingerprint. */
                    public fingerprint?: (string|null);

                    /** PublicAdvertisedPrefix id. */
                    public id?: (number|Long|string|null);

                    /** PublicAdvertisedPrefix ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** PublicAdvertisedPrefix ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** PublicAdvertisedPrefix kind. */
                    public kind?: (string|null);

                    /** PublicAdvertisedPrefix name. */
                    public name?: (string|null);

                    /** PublicAdvertisedPrefix pdpScope. */
                    public pdpScope?: (string|null);

                    /** PublicAdvertisedPrefix publicDelegatedPrefixs. */
                    public publicDelegatedPrefixs: google.cloud.compute.v1beta.IPublicAdvertisedPrefixPublicDelegatedPrefix[];

                    /** PublicAdvertisedPrefix selfLink. */
                    public selfLink?: (string|null);

                    /** PublicAdvertisedPrefix sharedSecret. */
                    public sharedSecret?: (string|null);

                    /** PublicAdvertisedPrefix status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PublicAdvertisedPrefix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicAdvertisedPrefix instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPublicAdvertisedPrefix): google.cloud.compute.v1beta.PublicAdvertisedPrefix;

                    /**
                     * Encodes the specified PublicAdvertisedPrefix message. Does not implicitly {@link google.cloud.compute.v1beta.PublicAdvertisedPrefix.verify|verify} messages.
                     * @param message PublicAdvertisedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPublicAdvertisedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicAdvertisedPrefix message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PublicAdvertisedPrefix.verify|verify} messages.
                     * @param message PublicAdvertisedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPublicAdvertisedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicAdvertisedPrefix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicAdvertisedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PublicAdvertisedPrefix;

                    /**
                     * Decodes a PublicAdvertisedPrefix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicAdvertisedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PublicAdvertisedPrefix;

                    /**
                     * Verifies a PublicAdvertisedPrefix message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicAdvertisedPrefix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicAdvertisedPrefix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PublicAdvertisedPrefix;

                    /**
                     * Creates a plain object from a PublicAdvertisedPrefix message. Also converts values to other types if specified.
                     * @param message PublicAdvertisedPrefix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PublicAdvertisedPrefix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicAdvertisedPrefix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicAdvertisedPrefix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PublicAdvertisedPrefix {

                    /** ByoipApiVersion enum. */
                    enum ByoipApiVersion {
                        UNDEFINED_BYOIP_API_VERSION = 0,
                        V1 = 2715,
                        V2 = 2716
                    }

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677
                    }

                    /** PdpScope enum. */
                    enum PdpScope {
                        UNDEFINED_PDP_SCOPE = 0,
                        GLOBAL = 494663587,
                        GLOBAL_AND_REGIONAL = 318053059,
                        REGIONAL = 92288543
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ANNOUNCED_TO_INTERNET = 177880897,
                        INITIAL = 518841124,
                        PREFIX_CONFIGURATION_COMPLETE = 480889551,
                        PREFIX_CONFIGURATION_IN_PROGRESS = 378550961,
                        PREFIX_REMOVAL_IN_PROGRESS = 284375783,
                        PTR_CONFIGURED = 513497167,
                        READY_TO_ANNOUNCE = 64641265,
                        REVERSE_DNS_LOOKUP_FAILED = 295755183,
                        VALIDATED = 66197998
                    }
                }

                /** Properties of a PublicAdvertisedPrefixList. */
                interface IPublicAdvertisedPrefixList {

                    /** PublicAdvertisedPrefixList id */
                    id?: (string|null);

                    /** PublicAdvertisedPrefixList items */
                    items?: (google.cloud.compute.v1beta.IPublicAdvertisedPrefix[]|null);

                    /** PublicAdvertisedPrefixList kind */
                    kind?: (string|null);

                    /** PublicAdvertisedPrefixList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PublicAdvertisedPrefixList selfLink */
                    selfLink?: (string|null);

                    /** PublicAdvertisedPrefixList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a PublicAdvertisedPrefixList. */
                class PublicAdvertisedPrefixList implements IPublicAdvertisedPrefixList {

                    /**
                     * Constructs a new PublicAdvertisedPrefixList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPublicAdvertisedPrefixList);

                    /** PublicAdvertisedPrefixList id. */
                    public id?: (string|null);

                    /** PublicAdvertisedPrefixList items. */
                    public items: google.cloud.compute.v1beta.IPublicAdvertisedPrefix[];

                    /** PublicAdvertisedPrefixList kind. */
                    public kind?: (string|null);

                    /** PublicAdvertisedPrefixList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PublicAdvertisedPrefixList selfLink. */
                    public selfLink?: (string|null);

                    /** PublicAdvertisedPrefixList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new PublicAdvertisedPrefixList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicAdvertisedPrefixList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPublicAdvertisedPrefixList): google.cloud.compute.v1beta.PublicAdvertisedPrefixList;

                    /**
                     * Encodes the specified PublicAdvertisedPrefixList message. Does not implicitly {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixList.verify|verify} messages.
                     * @param message PublicAdvertisedPrefixList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPublicAdvertisedPrefixList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicAdvertisedPrefixList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixList.verify|verify} messages.
                     * @param message PublicAdvertisedPrefixList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPublicAdvertisedPrefixList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicAdvertisedPrefixList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicAdvertisedPrefixList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PublicAdvertisedPrefixList;

                    /**
                     * Decodes a PublicAdvertisedPrefixList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicAdvertisedPrefixList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PublicAdvertisedPrefixList;

                    /**
                     * Verifies a PublicAdvertisedPrefixList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicAdvertisedPrefixList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicAdvertisedPrefixList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PublicAdvertisedPrefixList;

                    /**
                     * Creates a plain object from a PublicAdvertisedPrefixList message. Also converts values to other types if specified.
                     * @param message PublicAdvertisedPrefixList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PublicAdvertisedPrefixList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicAdvertisedPrefixList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicAdvertisedPrefixList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PublicAdvertisedPrefixPublicDelegatedPrefix. */
                interface IPublicAdvertisedPrefixPublicDelegatedPrefix {

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix ipRange */
                    ipRange?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix name */
                    name?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix project */
                    project?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix region */
                    region?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix status */
                    status?: (string|null);
                }

                /** Represents a PublicAdvertisedPrefixPublicDelegatedPrefix. */
                class PublicAdvertisedPrefixPublicDelegatedPrefix implements IPublicAdvertisedPrefixPublicDelegatedPrefix {

                    /**
                     * Constructs a new PublicAdvertisedPrefixPublicDelegatedPrefix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPublicAdvertisedPrefixPublicDelegatedPrefix);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix ipRange. */
                    public ipRange?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix name. */
                    public name?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix project. */
                    public project?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix region. */
                    public region?: (string|null);

                    /** PublicAdvertisedPrefixPublicDelegatedPrefix status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PublicAdvertisedPrefixPublicDelegatedPrefix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicAdvertisedPrefixPublicDelegatedPrefix instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPublicAdvertisedPrefixPublicDelegatedPrefix): google.cloud.compute.v1beta.PublicAdvertisedPrefixPublicDelegatedPrefix;

                    /**
                     * Encodes the specified PublicAdvertisedPrefixPublicDelegatedPrefix message. Does not implicitly {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixPublicDelegatedPrefix.verify|verify} messages.
                     * @param message PublicAdvertisedPrefixPublicDelegatedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPublicAdvertisedPrefixPublicDelegatedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicAdvertisedPrefixPublicDelegatedPrefix message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixPublicDelegatedPrefix.verify|verify} messages.
                     * @param message PublicAdvertisedPrefixPublicDelegatedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPublicAdvertisedPrefixPublicDelegatedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicAdvertisedPrefixPublicDelegatedPrefix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicAdvertisedPrefixPublicDelegatedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PublicAdvertisedPrefixPublicDelegatedPrefix;

                    /**
                     * Decodes a PublicAdvertisedPrefixPublicDelegatedPrefix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicAdvertisedPrefixPublicDelegatedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PublicAdvertisedPrefixPublicDelegatedPrefix;

                    /**
                     * Verifies a PublicAdvertisedPrefixPublicDelegatedPrefix message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicAdvertisedPrefixPublicDelegatedPrefix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicAdvertisedPrefixPublicDelegatedPrefix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PublicAdvertisedPrefixPublicDelegatedPrefix;

                    /**
                     * Creates a plain object from a PublicAdvertisedPrefixPublicDelegatedPrefix message. Also converts values to other types if specified.
                     * @param message PublicAdvertisedPrefixPublicDelegatedPrefix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PublicAdvertisedPrefixPublicDelegatedPrefix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicAdvertisedPrefixPublicDelegatedPrefix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicAdvertisedPrefixPublicDelegatedPrefix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PublicDelegatedPrefix. */
                interface IPublicDelegatedPrefix {

                    /** PublicDelegatedPrefix allocatablePrefixLength */
                    allocatablePrefixLength?: (number|null);

                    /** PublicDelegatedPrefix byoipApiVersion */
                    byoipApiVersion?: (string|null);

                    /** PublicDelegatedPrefix creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** PublicDelegatedPrefix description */
                    description?: (string|null);

                    /** PublicDelegatedPrefix enableEnhancedIpv4Allocation */
                    enableEnhancedIpv4Allocation?: (boolean|null);

                    /** PublicDelegatedPrefix fingerprint */
                    fingerprint?: (string|null);

                    /** PublicDelegatedPrefix id */
                    id?: (number|Long|string|null);

                    /** PublicDelegatedPrefix ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** PublicDelegatedPrefix ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** PublicDelegatedPrefix isLiveMigration */
                    isLiveMigration?: (boolean|null);

                    /** PublicDelegatedPrefix kind */
                    kind?: (string|null);

                    /** PublicDelegatedPrefix mode */
                    mode?: (string|null);

                    /** PublicDelegatedPrefix name */
                    name?: (string|null);

                    /** PublicDelegatedPrefix parentPrefix */
                    parentPrefix?: (string|null);

                    /** PublicDelegatedPrefix publicDelegatedSubPrefixs */
                    publicDelegatedSubPrefixs?: (google.cloud.compute.v1beta.IPublicDelegatedPrefixPublicDelegatedSubPrefix[]|null);

                    /** PublicDelegatedPrefix region */
                    region?: (string|null);

                    /** PublicDelegatedPrefix selfLink */
                    selfLink?: (string|null);

                    /** PublicDelegatedPrefix status */
                    status?: (string|null);
                }

                /** Represents a PublicDelegatedPrefix. */
                class PublicDelegatedPrefix implements IPublicDelegatedPrefix {

                    /**
                     * Constructs a new PublicDelegatedPrefix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefix);

                    /** PublicDelegatedPrefix allocatablePrefixLength. */
                    public allocatablePrefixLength?: (number|null);

                    /** PublicDelegatedPrefix byoipApiVersion. */
                    public byoipApiVersion?: (string|null);

                    /** PublicDelegatedPrefix creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** PublicDelegatedPrefix description. */
                    public description?: (string|null);

                    /** PublicDelegatedPrefix enableEnhancedIpv4Allocation. */
                    public enableEnhancedIpv4Allocation?: (boolean|null);

                    /** PublicDelegatedPrefix fingerprint. */
                    public fingerprint?: (string|null);

                    /** PublicDelegatedPrefix id. */
                    public id?: (number|Long|string|null);

                    /** PublicDelegatedPrefix ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** PublicDelegatedPrefix ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** PublicDelegatedPrefix isLiveMigration. */
                    public isLiveMigration?: (boolean|null);

                    /** PublicDelegatedPrefix kind. */
                    public kind?: (string|null);

                    /** PublicDelegatedPrefix mode. */
                    public mode?: (string|null);

                    /** PublicDelegatedPrefix name. */
                    public name?: (string|null);

                    /** PublicDelegatedPrefix parentPrefix. */
                    public parentPrefix?: (string|null);

                    /** PublicDelegatedPrefix publicDelegatedSubPrefixs. */
                    public publicDelegatedSubPrefixs: google.cloud.compute.v1beta.IPublicDelegatedPrefixPublicDelegatedSubPrefix[];

                    /** PublicDelegatedPrefix region. */
                    public region?: (string|null);

                    /** PublicDelegatedPrefix selfLink. */
                    public selfLink?: (string|null);

                    /** PublicDelegatedPrefix status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PublicDelegatedPrefix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefix instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefix): google.cloud.compute.v1beta.PublicDelegatedPrefix;

                    /**
                     * Encodes the specified PublicDelegatedPrefix message. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefix.verify|verify} messages.
                     * @param message PublicDelegatedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPublicDelegatedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefix message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefix.verify|verify} messages.
                     * @param message PublicDelegatedPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPublicDelegatedPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PublicDelegatedPrefix;

                    /**
                     * Decodes a PublicDelegatedPrefix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PublicDelegatedPrefix;

                    /**
                     * Verifies a PublicDelegatedPrefix message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PublicDelegatedPrefix;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefix message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PublicDelegatedPrefix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PublicDelegatedPrefix {

                    /** ByoipApiVersion enum. */
                    enum ByoipApiVersion {
                        UNDEFINED_BYOIP_API_VERSION = 0,
                        V1 = 2715,
                        V2 = 2716
                    }

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        DELEGATION = 264149288,
                        EXTERNAL_IPV6_FORWARDING_RULE_CREATION = 398684356,
                        EXTERNAL_IPV6_SUBNETWORK_CREATION = 61198284,
                        INTERNAL_IPV6_SUBNETWORK_CREATION = 153239834
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        ANNOUNCED = 365103355,
                        ANNOUNCED_TO_GOOGLE = 454875705,
                        ANNOUNCED_TO_INTERNET = 177880897,
                        DELETING = 528602024,
                        INITIALIZING = 306588749,
                        READY_TO_ANNOUNCE = 64641265
                    }
                }

                /** Properties of a PublicDelegatedPrefixAggregatedList. */
                interface IPublicDelegatedPrefixAggregatedList {

                    /** PublicDelegatedPrefixAggregatedList id */
                    id?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IPublicDelegatedPrefixesScopedList }|null);

                    /** PublicDelegatedPrefixAggregatedList kind */
                    kind?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** PublicDelegatedPrefixAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a PublicDelegatedPrefixAggregatedList. */
                class PublicDelegatedPrefixAggregatedList implements IPublicDelegatedPrefixAggregatedList {

                    /**
                     * Constructs a new PublicDelegatedPrefixAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefixAggregatedList);

                    /** PublicDelegatedPrefixAggregatedList id. */
                    public id?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IPublicDelegatedPrefixesScopedList };

                    /** PublicDelegatedPrefixAggregatedList kind. */
                    public kind?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** PublicDelegatedPrefixAggregatedList unreachables. */
                    public unreachables: string[];

                    /** PublicDelegatedPrefixAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new PublicDelegatedPrefixAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefixAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefixAggregatedList): google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList;

                    /**
                     * Encodes the specified PublicDelegatedPrefixAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPublicDelegatedPrefixAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefixAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPublicDelegatedPrefixAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefixAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefixAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList;

                    /**
                     * Decodes a PublicDelegatedPrefixAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefixAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList;

                    /**
                     * Verifies a PublicDelegatedPrefixAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefixAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefixAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefixAggregatedList message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefixAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefixAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefixAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PublicDelegatedPrefixList. */
                interface IPublicDelegatedPrefixList {

                    /** PublicDelegatedPrefixList id */
                    id?: (string|null);

                    /** PublicDelegatedPrefixList items */
                    items?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix[]|null);

                    /** PublicDelegatedPrefixList kind */
                    kind?: (string|null);

                    /** PublicDelegatedPrefixList nextPageToken */
                    nextPageToken?: (string|null);

                    /** PublicDelegatedPrefixList selfLink */
                    selfLink?: (string|null);

                    /** PublicDelegatedPrefixList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a PublicDelegatedPrefixList. */
                class PublicDelegatedPrefixList implements IPublicDelegatedPrefixList {

                    /**
                     * Constructs a new PublicDelegatedPrefixList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefixList);

                    /** PublicDelegatedPrefixList id. */
                    public id?: (string|null);

                    /** PublicDelegatedPrefixList items. */
                    public items: google.cloud.compute.v1beta.IPublicDelegatedPrefix[];

                    /** PublicDelegatedPrefixList kind. */
                    public kind?: (string|null);

                    /** PublicDelegatedPrefixList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** PublicDelegatedPrefixList selfLink. */
                    public selfLink?: (string|null);

                    /** PublicDelegatedPrefixList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new PublicDelegatedPrefixList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefixList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefixList): google.cloud.compute.v1beta.PublicDelegatedPrefixList;

                    /**
                     * Encodes the specified PublicDelegatedPrefixList message. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefixList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPublicDelegatedPrefixList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefixList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefixList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPublicDelegatedPrefixList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefixList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefixList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PublicDelegatedPrefixList;

                    /**
                     * Decodes a PublicDelegatedPrefixList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefixList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PublicDelegatedPrefixList;

                    /**
                     * Verifies a PublicDelegatedPrefixList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefixList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefixList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PublicDelegatedPrefixList;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefixList message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefixList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PublicDelegatedPrefixList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefixList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefixList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PublicDelegatedPrefixPublicDelegatedSubPrefix. */
                interface IPublicDelegatedPrefixPublicDelegatedSubPrefix {

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix allocatablePrefixLength */
                    allocatablePrefixLength?: (number|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix delegateeProject */
                    delegateeProject?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix description */
                    description?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix enableEnhancedIpv4Allocation */
                    enableEnhancedIpv4Allocation?: (boolean|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix isAddress */
                    isAddress?: (boolean|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix mode */
                    mode?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix name */
                    name?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix region */
                    region?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix status */
                    status?: (string|null);
                }

                /** Represents a PublicDelegatedPrefixPublicDelegatedSubPrefix. */
                class PublicDelegatedPrefixPublicDelegatedSubPrefix implements IPublicDelegatedPrefixPublicDelegatedSubPrefix {

                    /**
                     * Constructs a new PublicDelegatedPrefixPublicDelegatedSubPrefix.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefixPublicDelegatedSubPrefix);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix allocatablePrefixLength. */
                    public allocatablePrefixLength?: (number|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix delegateeProject. */
                    public delegateeProject?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix description. */
                    public description?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix enableEnhancedIpv4Allocation. */
                    public enableEnhancedIpv4Allocation?: (boolean|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix isAddress. */
                    public isAddress?: (boolean|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix mode. */
                    public mode?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix name. */
                    public name?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix region. */
                    public region?: (string|null);

                    /** PublicDelegatedPrefixPublicDelegatedSubPrefix status. */
                    public status?: (string|null);

                    /**
                     * Creates a new PublicDelegatedPrefixPublicDelegatedSubPrefix instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefixPublicDelegatedSubPrefix instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefixPublicDelegatedSubPrefix): google.cloud.compute.v1beta.PublicDelegatedPrefixPublicDelegatedSubPrefix;

                    /**
                     * Encodes the specified PublicDelegatedPrefixPublicDelegatedSubPrefix message. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefixPublicDelegatedSubPrefix.verify|verify} messages.
                     * @param message PublicDelegatedPrefixPublicDelegatedSubPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPublicDelegatedPrefixPublicDelegatedSubPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefixPublicDelegatedSubPrefix message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefixPublicDelegatedSubPrefix.verify|verify} messages.
                     * @param message PublicDelegatedPrefixPublicDelegatedSubPrefix message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPublicDelegatedPrefixPublicDelegatedSubPrefix, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefixPublicDelegatedSubPrefix message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefixPublicDelegatedSubPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PublicDelegatedPrefixPublicDelegatedSubPrefix;

                    /**
                     * Decodes a PublicDelegatedPrefixPublicDelegatedSubPrefix message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefixPublicDelegatedSubPrefix
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PublicDelegatedPrefixPublicDelegatedSubPrefix;

                    /**
                     * Verifies a PublicDelegatedPrefixPublicDelegatedSubPrefix message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefixPublicDelegatedSubPrefix message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefixPublicDelegatedSubPrefix
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PublicDelegatedPrefixPublicDelegatedSubPrefix;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefixPublicDelegatedSubPrefix message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefixPublicDelegatedSubPrefix
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PublicDelegatedPrefixPublicDelegatedSubPrefix, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefixPublicDelegatedSubPrefix to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefixPublicDelegatedSubPrefix
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PublicDelegatedPrefixPublicDelegatedSubPrefix {

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        DELEGATION = 264149288,
                        EXTERNAL_IPV6_FORWARDING_RULE_CREATION = 398684356,
                        EXTERNAL_IPV6_SUBNETWORK_CREATION = 61198284,
                        INTERNAL_IPV6_SUBNETWORK_CREATION = 153239834
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        INACTIVE = 270421099
                    }
                }

                /** Properties of a PublicDelegatedPrefixesScopedList. */
                interface IPublicDelegatedPrefixesScopedList {

                    /** PublicDelegatedPrefixesScopedList publicDelegatedPrefixes */
                    publicDelegatedPrefixes?: (google.cloud.compute.v1beta.IPublicDelegatedPrefix[]|null);

                    /** PublicDelegatedPrefixesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a PublicDelegatedPrefixesScopedList. */
                class PublicDelegatedPrefixesScopedList implements IPublicDelegatedPrefixesScopedList {

                    /**
                     * Constructs a new PublicDelegatedPrefixesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefixesScopedList);

                    /** PublicDelegatedPrefixesScopedList publicDelegatedPrefixes. */
                    public publicDelegatedPrefixes: google.cloud.compute.v1beta.IPublicDelegatedPrefix[];

                    /** PublicDelegatedPrefixesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new PublicDelegatedPrefixesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PublicDelegatedPrefixesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IPublicDelegatedPrefixesScopedList): google.cloud.compute.v1beta.PublicDelegatedPrefixesScopedList;

                    /**
                     * Encodes the specified PublicDelegatedPrefixesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefixesScopedList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IPublicDelegatedPrefixesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PublicDelegatedPrefixesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.PublicDelegatedPrefixesScopedList.verify|verify} messages.
                     * @param message PublicDelegatedPrefixesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IPublicDelegatedPrefixesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PublicDelegatedPrefixesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PublicDelegatedPrefixesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.PublicDelegatedPrefixesScopedList;

                    /**
                     * Decodes a PublicDelegatedPrefixesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PublicDelegatedPrefixesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.PublicDelegatedPrefixesScopedList;

                    /**
                     * Verifies a PublicDelegatedPrefixesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PublicDelegatedPrefixesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PublicDelegatedPrefixesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.PublicDelegatedPrefixesScopedList;

                    /**
                     * Creates a plain object from a PublicDelegatedPrefixesScopedList message. Also converts values to other types if specified.
                     * @param message PublicDelegatedPrefixesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.PublicDelegatedPrefixesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PublicDelegatedPrefixesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PublicDelegatedPrefixesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Quota. */
                interface IQuota {

                    /** Quota limit */
                    limit?: (number|null);

                    /** Quota metric */
                    metric?: (string|null);

                    /** Quota owner */
                    owner?: (string|null);

                    /** Quota usage */
                    usage?: (number|null);
                }

                /** Represents a Quota. */
                class Quota implements IQuota {

                    /**
                     * Constructs a new Quota.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IQuota);

                    /** Quota limit. */
                    public limit?: (number|null);

                    /** Quota metric. */
                    public metric?: (string|null);

                    /** Quota owner. */
                    public owner?: (string|null);

                    /** Quota usage. */
                    public usage?: (number|null);

                    /**
                     * Creates a new Quota instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Quota instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IQuota): google.cloud.compute.v1beta.Quota;

                    /**
                     * Encodes the specified Quota message. Does not implicitly {@link google.cloud.compute.v1beta.Quota.verify|verify} messages.
                     * @param message Quota message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IQuota, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Quota message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Quota.verify|verify} messages.
                     * @param message Quota message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IQuota, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Quota message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Quota
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Quota;

                    /**
                     * Decodes a Quota message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Quota
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Quota;

                    /**
                     * Verifies a Quota message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Quota message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Quota
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Quota;

                    /**
                     * Creates a plain object from a Quota message. Also converts values to other types if specified.
                     * @param message Quota
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Quota, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Quota to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Quota
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Quota {

                    /** Metric enum. */
                    enum Metric {
                        UNDEFINED_METRIC = 0,
                        A2_CPUS = 153206585,
                        AFFINITY_GROUPS = 108303563,
                        AUTOSCALERS = 471248988,
                        BACKEND_BUCKETS = 137626846,
                        BACKEND_SERVICES = 269623753,
                        C2D_CPUS = 508182517,
                        C2_CPUS = 317601211,
                        C3_CPUS = 346230362,
                        COMMITMENTS = 456141790,
                        COMMITTED_A2_CPUS = 59330902,
                        COMMITTED_C2D_CPUS = 282390904,
                        COMMITTED_C2_CPUS = 223725528,
                        COMMITTED_C3_CPUS = 252354679,
                        COMMITTED_CPUS = 292394702,
                        COMMITTED_E2_CPUS = 388120154,
                        COMMITTED_LICENSES = 357606869,
                        COMMITTED_LOCAL_SSD_TOTAL_GB = 308393480,
                        COMMITTED_M3_CPUS = 585985,
                        COMMITTED_MEMORY_OPTIMIZED_CPUS = 489057886,
                        COMMITTED_N2A_CPUS = 40064304,
                        COMMITTED_N2D_CPUS = 125951757,
                        COMMITTED_N2_CPUS = 322589603,
                        COMMITTED_NVIDIA_A100_80GB_GPUS = 464326565,
                        COMMITTED_NVIDIA_A100_GPUS = 375799445,
                        COMMITTED_NVIDIA_H100_GPUS = 71649180,
                        COMMITTED_NVIDIA_K80_GPUS = 3857188,
                        COMMITTED_NVIDIA_L4_GPUS = 19163645,
                        COMMITTED_NVIDIA_P100_GPUS = 107528100,
                        COMMITTED_NVIDIA_P4_GPUS = 347952897,
                        COMMITTED_NVIDIA_T4_GPUS = 139871237,
                        COMMITTED_NVIDIA_V100_GPUS = 219562,
                        COMMITTED_T2A_CPUS = 296378986,
                        COMMITTED_T2D_CPUS = 382266439,
                        COMMITTED_Z3_CPUS = 263844686,
                        CPUS = 2075595,
                        CPUS_ALL_REGIONS = 470911149,
                        DISKS_TOTAL_GB = 353520543,
                        E2_CPUS = 481995837,
                        EXTERNAL_MANAGED_FORWARDING_RULES = 150790089,
                        EXTERNAL_NETWORK_LB_FORWARDING_RULES = 374298265,
                        EXTERNAL_PROTOCOL_FORWARDING_RULES = 63478888,
                        EXTERNAL_VPN_GATEWAYS = 272457134,
                        FIREWALLS = 374485843,
                        FORWARDING_RULES = 432668949,
                        GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 164566753,
                        GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES = 327611949,
                        GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES = 400256169,
                        GLOBAL_INTERNAL_ADDRESSES = 42738332,
                        GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES = 256608303,
                        GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 323514196,
                        GPUS_ALL_REGIONS = 39387177,
                        HDB_TOTAL_GB = 319316271,
                        HDB_TOTAL_IOPS = 309720317,
                        HDB_TOTAL_THROUGHPUT = 20981374,
                        HEALTH_CHECKS = 289347502,
                        IMAGES = 15562360,
                        INSTANCES = 131337822,
                        INSTANCE_GROUPS = 355919038,
                        INSTANCE_GROUP_MANAGERS = 101798192,
                        INSTANCE_TEMPLATES = 226188271,
                        INTERCONNECTS = 415204741,
                        INTERCONNECT_ATTACHMENTS_PER_REGION = 159968086,
                        INTERCONNECT_ATTACHMENTS_TOTAL_MBPS = 425090419,
                        INTERCONNECT_TOTAL_GBPS = 285341866,
                        INTERNAL_ADDRESSES = 197899392,
                        INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES = 266433668,
                        IN_PLACE_SNAPSHOTS = 151359133,
                        IN_USE_ADDRESSES = 402125072,
                        IN_USE_BACKUP_SCHEDULES = 32786705,
                        IN_USE_SNAPSHOT_SCHEDULES = 462104083,
                        LOCAL_SSD_TOTAL_GB = 330878021,
                        M1_CPUS = 37203366,
                        M2_CPUS = 65832517,
                        M3_CPUS = 94461668,
                        MACHINE_IMAGES = 446986640,
                        N2A_CPUS = 265855917,
                        N2D_CPUS = 351743370,
                        N2_CPUS = 416465286,
                        NETWORKS = 485481477,
                        NETWORK_ATTACHMENTS = 149028575,
                        NETWORK_ENDPOINT_GROUPS = 102144909,
                        NETWORK_FIREWALL_POLICIES = 101117374,
                        NET_LB_SECURITY_POLICIES_PER_REGION = 157892269,
                        NET_LB_SECURITY_POLICY_RULES_PER_REGION = 356090931,
                        NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION = 311243888,
                        NODE_GROUPS = 24624817,
                        NODE_TEMPLATES = 474896668,
                        NVIDIA_A100_80GB_GPUS = 286389320,
                        NVIDIA_A100_GPUS = 504872978,
                        NVIDIA_K80_GPUS = 163886599,
                        NVIDIA_L4_GPUS = 491923130,
                        NVIDIA_P100_GPUS = 236601633,
                        NVIDIA_P100_VWS_GPUS = 213970574,
                        NVIDIA_P4_GPUS = 283841470,
                        NVIDIA_P4_VWS_GPUS = 528296619,
                        NVIDIA_T4_GPUS = 75759810,
                        NVIDIA_T4_VWS_GPUS = 319813039,
                        NVIDIA_V100_GPUS = 129293095,
                        PACKET_MIRRORINGS = 15578407,
                        PD_EXTREME_TOTAL_PROVISIONED_IOPS = 69593965,
                        PREEMPTIBLE_CPUS = 251184841,
                        PREEMPTIBLE_LOCAL_SSD_GB = 260819336,
                        PREEMPTIBLE_NVIDIA_A100_80GB_GPUS = 151942410,
                        PREEMPTIBLE_NVIDIA_A100_GPUS = 68832784,
                        PREEMPTIBLE_NVIDIA_H100_GPUS = 301553431,
                        PREEMPTIBLE_NVIDIA_K80_GPUS = 374960201,
                        PREEMPTIBLE_NVIDIA_L4_GPUS = 100408376,
                        PREEMPTIBLE_NVIDIA_P100_GPUS = 337432351,
                        PREEMPTIBLE_NVIDIA_P100_VWS_GPUS = 313544076,
                        PREEMPTIBLE_NVIDIA_P4_GPUS = 429197628,
                        PREEMPTIBLE_NVIDIA_P4_VWS_GPUS = 252981545,
                        PREEMPTIBLE_NVIDIA_T4_GPUS = 221115968,
                        PREEMPTIBLE_NVIDIA_T4_VWS_GPUS = 44497965,
                        PREEMPTIBLE_NVIDIA_V100_GPUS = 230123813,
                        PREEMPTIBLE_TPU_LITE_DEVICE_V5 = 174262523,
                        PREEMPTIBLE_TPU_LITE_PODSLICE_V5 = 112281796,
                        PREEMPTIBLE_TPU_PODSLICE_V4 = 425541132,
                        PRIVATE_V6_ACCESS_SUBNETWORKS = 47021549,
                        PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK = 231164291,
                        PSC_INTERNAL_LB_FORWARDING_RULES = 169005435,
                        PUBLIC_ADVERTISED_PREFIXES = 471371980,
                        PUBLIC_DELEGATED_PREFIXES = 532465974,
                        REGIONAL_AUTOSCALERS = 29363772,
                        REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 4240989,
                        REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES = 409564525,
                        REGIONAL_INSTANCE_GROUP_MANAGERS = 37543696,
                        REGIONAL_INTERNAL_LB_BACKEND_SERVICES = 137983760,
                        REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES = 96282539,
                        REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 483162968,
                        RESERVATIONS = 32644647,
                        RESOURCE_POLICIES = 83955297,
                        ROUTERS = 493018666,
                        ROUTES = 275680074,
                        SECURITY_POLICIES = 189518703,
                        SECURITY_POLICIES_PER_REGION = 249041734,
                        SECURITY_POLICY_ADVANCED_RULES_PER_REGION = 371815341,
                        SECURITY_POLICY_CEVAL_RULES = 470815689,
                        SECURITY_POLICY_RULES = 203549225,
                        SECURITY_POLICY_RULES_PER_REGION = 126510156,
                        SERVICE_ATTACHMENTS = 471521510,
                        SNAPSHOTS = 343405327,
                        SSD_TOTAL_GB = 161732561,
                        SSL_CERTIFICATES = 378372399,
                        SSL_POLICIES = 523254339,
                        STATIC_ADDRESSES = 93624049,
                        STATIC_BYOIP_ADDRESSES = 275809649,
                        STATIC_EXTERNAL_IPV6_ADDRESS_RANGES = 472346774,
                        SUBNETWORKS = 421330469,
                        T2A_CPUS = 522170599,
                        T2D_CPUS = 71187140,
                        TARGET_HTTPS_PROXIES = 219522506,
                        TARGET_HTTP_PROXIES = 164117155,
                        TARGET_INSTANCES = 284519728,
                        TARGET_POOLS = 348261257,
                        TARGET_SSL_PROXIES = 159216235,
                        TARGET_TCP_PROXIES = 182243136,
                        TARGET_VPN_GATEWAYS = 75029928,
                        TPU_LITE_DEVICE_V5 = 449577597,
                        TPU_LITE_PODSLICE_V5 = 12708294,
                        TPU_PODSLICE_V4 = 214467530,
                        URL_MAPS = 378660743,
                        VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES = 128400161,
                        VPN_GATEWAYS = 35620282,
                        VPN_TUNNELS = 104327296,
                        XPN_SERVICE_PROJECTS = 95191981
                    }
                }

                /** Properties of a QuotaExceededInfo. */
                interface IQuotaExceededInfo {

                    /** QuotaExceededInfo dimensions */
                    dimensions?: ({ [k: string]: string }|null);

                    /** QuotaExceededInfo futureLimit */
                    futureLimit?: (number|null);

                    /** QuotaExceededInfo limit */
                    limit?: (number|null);

                    /** QuotaExceededInfo limitName */
                    limitName?: (string|null);

                    /** QuotaExceededInfo metricName */
                    metricName?: (string|null);

                    /** QuotaExceededInfo rolloutStatus */
                    rolloutStatus?: (string|null);
                }

                /** Represents a QuotaExceededInfo. */
                class QuotaExceededInfo implements IQuotaExceededInfo {

                    /**
                     * Constructs a new QuotaExceededInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IQuotaExceededInfo);

                    /** QuotaExceededInfo dimensions. */
                    public dimensions: { [k: string]: string };

                    /** QuotaExceededInfo futureLimit. */
                    public futureLimit?: (number|null);

                    /** QuotaExceededInfo limit. */
                    public limit?: (number|null);

                    /** QuotaExceededInfo limitName. */
                    public limitName?: (string|null);

                    /** QuotaExceededInfo metricName. */
                    public metricName?: (string|null);

                    /** QuotaExceededInfo rolloutStatus. */
                    public rolloutStatus?: (string|null);

                    /**
                     * Creates a new QuotaExceededInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QuotaExceededInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IQuotaExceededInfo): google.cloud.compute.v1beta.QuotaExceededInfo;

                    /**
                     * Encodes the specified QuotaExceededInfo message. Does not implicitly {@link google.cloud.compute.v1beta.QuotaExceededInfo.verify|verify} messages.
                     * @param message QuotaExceededInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IQuotaExceededInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QuotaExceededInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.QuotaExceededInfo.verify|verify} messages.
                     * @param message QuotaExceededInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IQuotaExceededInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QuotaExceededInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QuotaExceededInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.QuotaExceededInfo;

                    /**
                     * Decodes a QuotaExceededInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QuotaExceededInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.QuotaExceededInfo;

                    /**
                     * Verifies a QuotaExceededInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a QuotaExceededInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QuotaExceededInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.QuotaExceededInfo;

                    /**
                     * Creates a plain object from a QuotaExceededInfo message. Also converts values to other types if specified.
                     * @param message QuotaExceededInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.QuotaExceededInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QuotaExceededInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QuotaExceededInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace QuotaExceededInfo {

                    /** RolloutStatus enum. */
                    enum RolloutStatus {
                        UNDEFINED_ROLLOUT_STATUS = 0,
                        IN_PROGRESS = 469193735,
                        ROLLOUT_STATUS_UNSPECIFIED = 26864568
                    }
                }

                /** Properties of a QuotaStatusWarning. */
                interface IQuotaStatusWarning {

                    /** QuotaStatusWarning code */
                    code?: (string|null);

                    /** QuotaStatusWarning data */
                    data?: (google.cloud.compute.v1beta.IData[]|null);

                    /** QuotaStatusWarning message */
                    message?: (string|null);
                }

                /** Represents a QuotaStatusWarning. */
                class QuotaStatusWarning implements IQuotaStatusWarning {

                    /**
                     * Constructs a new QuotaStatusWarning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IQuotaStatusWarning);

                    /** QuotaStatusWarning code. */
                    public code?: (string|null);

                    /** QuotaStatusWarning data. */
                    public data: google.cloud.compute.v1beta.IData[];

                    /** QuotaStatusWarning message. */
                    public message?: (string|null);

                    /**
                     * Creates a new QuotaStatusWarning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QuotaStatusWarning instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IQuotaStatusWarning): google.cloud.compute.v1beta.QuotaStatusWarning;

                    /**
                     * Encodes the specified QuotaStatusWarning message. Does not implicitly {@link google.cloud.compute.v1beta.QuotaStatusWarning.verify|verify} messages.
                     * @param message QuotaStatusWarning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IQuotaStatusWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QuotaStatusWarning message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.QuotaStatusWarning.verify|verify} messages.
                     * @param message QuotaStatusWarning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IQuotaStatusWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QuotaStatusWarning message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QuotaStatusWarning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.QuotaStatusWarning;

                    /**
                     * Decodes a QuotaStatusWarning message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QuotaStatusWarning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.QuotaStatusWarning;

                    /**
                     * Verifies a QuotaStatusWarning message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a QuotaStatusWarning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QuotaStatusWarning
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.QuotaStatusWarning;

                    /**
                     * Creates a plain object from a QuotaStatusWarning message. Also converts values to other types if specified.
                     * @param message QuotaStatusWarning
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.QuotaStatusWarning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QuotaStatusWarning to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QuotaStatusWarning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace QuotaStatusWarning {

                    /** Code enum. */
                    enum Code {
                        UNDEFINED_CODE = 0,
                        CLEANUP_FAILED = 150308440,
                        DEPRECATED_RESOURCE_USED = 391835586,
                        DEPRECATED_TYPE_USED = 346526230,
                        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967,
                        EXPERIMENTAL_TYPE_USED = 451954443,
                        EXTERNAL_API_WARNING = 175546307,
                        FIELD_VALUE_OVERRIDEN = 329669423,
                        INJECTED_KERNELS_DEPRECATED = 417377419,
                        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606,
                        LARGE_DEPLOYMENT_WARNING = 481440678,
                        LIST_OVERHEAD_QUOTA_EXCEED = 47618117,
                        MISSING_TYPE_DEPENDENCY = 344505463,
                        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999,
                        NEXT_HOP_CANNOT_IP_FORWARD = 383382887,
                        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434,
                        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446,
                        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146,
                        NEXT_HOP_NOT_RUNNING = 417081265,
                        NOT_CRITICAL_ERROR = 105763924,
                        NO_RESULTS_ON_PAGE = 30036744,
                        PARTIAL_SUCCESS = 39966469,
                        QUOTA_INFO_UNAVAILABLE = 304294182,
                        REQUIRED_TOS_AGREEMENT = 3745539,
                        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641,
                        RESOURCE_NOT_DELETED = 168598460,
                        SCHEMA_VALIDATION_IGNORED = 275245642,
                        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617,
                        UNDECLARED_PROPERTIES = 390513439,
                        UNREACHABLE = 13328052
                    }
                }

                /** Properties of a RawDisk. */
                interface IRawDisk {

                    /** RawDisk containerType */
                    containerType?: (string|null);

                    /** RawDisk sha1Checksum */
                    sha1Checksum?: (string|null);

                    /** RawDisk source */
                    source?: (string|null);
                }

                /** Represents a RawDisk. */
                class RawDisk implements IRawDisk {

                    /**
                     * Constructs a new RawDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRawDisk);

                    /** RawDisk containerType. */
                    public containerType?: (string|null);

                    /** RawDisk sha1Checksum. */
                    public sha1Checksum?: (string|null);

                    /** RawDisk source. */
                    public source?: (string|null);

                    /**
                     * Creates a new RawDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RawDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRawDisk): google.cloud.compute.v1beta.RawDisk;

                    /**
                     * Encodes the specified RawDisk message. Does not implicitly {@link google.cloud.compute.v1beta.RawDisk.verify|verify} messages.
                     * @param message RawDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRawDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RawDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RawDisk.verify|verify} messages.
                     * @param message RawDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRawDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RawDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RawDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RawDisk;

                    /**
                     * Decodes a RawDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RawDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RawDisk;

                    /**
                     * Verifies a RawDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RawDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RawDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RawDisk;

                    /**
                     * Creates a plain object from a RawDisk message. Also converts values to other types if specified.
                     * @param message RawDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RawDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RawDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RawDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RawDisk {

                    /** ContainerType enum. */
                    enum ContainerType {
                        UNDEFINED_CONTAINER_TYPE = 0,
                        TAR = 82821
                    }
                }

                /** Properties of a RecreateInstancesInstanceGroupManagerRequest. */
                interface IRecreateInstancesInstanceGroupManagerRequest {

                    /** RecreateInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** RecreateInstancesInstanceGroupManagerRequest instanceGroupManagersRecreateInstancesRequestResource */
                    instanceGroupManagersRecreateInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersRecreateInstancesRequest|null);

                    /** RecreateInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** RecreateInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** RecreateInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a RecreateInstancesInstanceGroupManagerRequest. */
                class RecreateInstancesInstanceGroupManagerRequest implements IRecreateInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new RecreateInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRecreateInstancesInstanceGroupManagerRequest);

                    /** RecreateInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** RecreateInstancesInstanceGroupManagerRequest instanceGroupManagersRecreateInstancesRequestResource. */
                    public instanceGroupManagersRecreateInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersRecreateInstancesRequest|null);

                    /** RecreateInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** RecreateInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** RecreateInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new RecreateInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecreateInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRecreateInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.RecreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified RecreateInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RecreateInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message RecreateInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRecreateInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecreateInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RecreateInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message RecreateInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRecreateInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecreateInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecreateInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RecreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a RecreateInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecreateInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RecreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a RecreateInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecreateInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecreateInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RecreateInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a RecreateInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message RecreateInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RecreateInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecreateInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecreateInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RecreateInstancesRegionInstanceGroupManagerRequest. */
                interface IRecreateInstancesRegionInstanceGroupManagerRequest {

                    /** RecreateInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersRecreateRequestResource */
                    regionInstanceGroupManagersRecreateRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersRecreateRequest|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RecreateInstancesRegionInstanceGroupManagerRequest. */
                class RecreateInstancesRegionInstanceGroupManagerRequest implements IRecreateInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new RecreateInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRecreateInstancesRegionInstanceGroupManagerRequest);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** RecreateInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** RecreateInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** RecreateInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersRecreateRequestResource. */
                    public regionInstanceGroupManagersRecreateRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersRecreateRequest|null);

                    /** RecreateInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RecreateInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecreateInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRecreateInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.RecreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified RecreateInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RecreateInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message RecreateInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRecreateInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecreateInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RecreateInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message RecreateInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRecreateInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecreateInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecreateInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RecreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a RecreateInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecreateInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RecreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a RecreateInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecreateInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecreateInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RecreateInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a RecreateInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message RecreateInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RecreateInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecreateInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecreateInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Reference. */
                interface IReference {

                    /** Reference kind */
                    kind?: (string|null);

                    /** Reference referenceType */
                    referenceType?: (string|null);

                    /** Reference referrer */
                    referrer?: (string|null);

                    /** Reference target */
                    target?: (string|null);
                }

                /** Represents a Reference. */
                class Reference implements IReference {

                    /**
                     * Constructs a new Reference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReference);

                    /** Reference kind. */
                    public kind?: (string|null);

                    /** Reference referenceType. */
                    public referenceType?: (string|null);

                    /** Reference referrer. */
                    public referrer?: (string|null);

                    /** Reference target. */
                    public target?: (string|null);

                    /**
                     * Creates a new Reference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Reference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReference): google.cloud.compute.v1beta.Reference;

                    /**
                     * Encodes the specified Reference message. Does not implicitly {@link google.cloud.compute.v1beta.Reference.verify|verify} messages.
                     * @param message Reference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Reference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Reference.verify|verify} messages.
                     * @param message Reference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Reference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Reference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Reference;

                    /**
                     * Decodes a Reference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Reference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Reference;

                    /**
                     * Verifies a Reference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Reference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Reference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Reference;

                    /**
                     * Creates a plain object from a Reference message. Also converts values to other types if specified.
                     * @param message Reference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Reference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Reference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Reference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Region. */
                interface IRegion {

                    /** Region creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Region deprecated */
                    deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** Region description */
                    description?: (string|null);

                    /** Region id */
                    id?: (number|Long|string|null);

                    /** Region kind */
                    kind?: (string|null);

                    /** Region name */
                    name?: (string|null);

                    /** Region quotaStatusWarning */
                    quotaStatusWarning?: (google.cloud.compute.v1beta.IQuotaStatusWarning|null);

                    /** Region quotas */
                    quotas?: (google.cloud.compute.v1beta.IQuota[]|null);

                    /** Region selfLink */
                    selfLink?: (string|null);

                    /** Region status */
                    status?: (string|null);

                    /** Region supportsPzs */
                    supportsPzs?: (boolean|null);

                    /** Region zones */
                    zones?: (string[]|null);
                }

                /** Represents a Region. */
                class Region implements IRegion {

                    /**
                     * Constructs a new Region.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegion);

                    /** Region creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Region deprecated. */
                    public deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** Region description. */
                    public description?: (string|null);

                    /** Region id. */
                    public id?: (number|Long|string|null);

                    /** Region kind. */
                    public kind?: (string|null);

                    /** Region name. */
                    public name?: (string|null);

                    /** Region quotaStatusWarning. */
                    public quotaStatusWarning?: (google.cloud.compute.v1beta.IQuotaStatusWarning|null);

                    /** Region quotas. */
                    public quotas: google.cloud.compute.v1beta.IQuota[];

                    /** Region selfLink. */
                    public selfLink?: (string|null);

                    /** Region status. */
                    public status?: (string|null);

                    /** Region supportsPzs. */
                    public supportsPzs?: (boolean|null);

                    /** Region zones. */
                    public zones: string[];

                    /**
                     * Creates a new Region instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Region instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegion): google.cloud.compute.v1beta.Region;

                    /**
                     * Encodes the specified Region message. Does not implicitly {@link google.cloud.compute.v1beta.Region.verify|verify} messages.
                     * @param message Region message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Region message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Region.verify|verify} messages.
                     * @param message Region message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Region message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Region
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Region;

                    /**
                     * Decodes a Region message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Region
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Region;

                    /**
                     * Verifies a Region message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Region message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Region
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Region;

                    /**
                     * Creates a plain object from a Region message. Also converts values to other types if specified.
                     * @param message Region
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Region, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Region to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Region
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Region {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DOWN = 2104482,
                        UP = 2715
                    }
                }

                /** Properties of a RegionAddressesMoveRequest. */
                interface IRegionAddressesMoveRequest {

                    /** RegionAddressesMoveRequest description */
                    description?: (string|null);

                    /** RegionAddressesMoveRequest destinationAddress */
                    destinationAddress?: (string|null);
                }

                /** Represents a RegionAddressesMoveRequest. */
                class RegionAddressesMoveRequest implements IRegionAddressesMoveRequest {

                    /**
                     * Constructs a new RegionAddressesMoveRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionAddressesMoveRequest);

                    /** RegionAddressesMoveRequest description. */
                    public description?: (string|null);

                    /** RegionAddressesMoveRequest destinationAddress. */
                    public destinationAddress?: (string|null);

                    /**
                     * Creates a new RegionAddressesMoveRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionAddressesMoveRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionAddressesMoveRequest): google.cloud.compute.v1beta.RegionAddressesMoveRequest;

                    /**
                     * Encodes the specified RegionAddressesMoveRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionAddressesMoveRequest.verify|verify} messages.
                     * @param message RegionAddressesMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionAddressesMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionAddressesMoveRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionAddressesMoveRequest.verify|verify} messages.
                     * @param message RegionAddressesMoveRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionAddressesMoveRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionAddressesMoveRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionAddressesMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionAddressesMoveRequest;

                    /**
                     * Decodes a RegionAddressesMoveRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionAddressesMoveRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionAddressesMoveRequest;

                    /**
                     * Verifies a RegionAddressesMoveRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionAddressesMoveRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionAddressesMoveRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionAddressesMoveRequest;

                    /**
                     * Creates a plain object from a RegionAddressesMoveRequest message. Also converts values to other types if specified.
                     * @param message RegionAddressesMoveRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionAddressesMoveRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionAddressesMoveRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionAddressesMoveRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionAutoscalerList. */
                interface IRegionAutoscalerList {

                    /** RegionAutoscalerList id */
                    id?: (string|null);

                    /** RegionAutoscalerList items */
                    items?: (google.cloud.compute.v1beta.IAutoscaler[]|null);

                    /** RegionAutoscalerList kind */
                    kind?: (string|null);

                    /** RegionAutoscalerList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionAutoscalerList selfLink */
                    selfLink?: (string|null);

                    /** RegionAutoscalerList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RegionAutoscalerList. */
                class RegionAutoscalerList implements IRegionAutoscalerList {

                    /**
                     * Constructs a new RegionAutoscalerList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionAutoscalerList);

                    /** RegionAutoscalerList id. */
                    public id?: (string|null);

                    /** RegionAutoscalerList items. */
                    public items: google.cloud.compute.v1beta.IAutoscaler[];

                    /** RegionAutoscalerList kind. */
                    public kind?: (string|null);

                    /** RegionAutoscalerList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionAutoscalerList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionAutoscalerList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RegionAutoscalerList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionAutoscalerList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionAutoscalerList): google.cloud.compute.v1beta.RegionAutoscalerList;

                    /**
                     * Encodes the specified RegionAutoscalerList message. Does not implicitly {@link google.cloud.compute.v1beta.RegionAutoscalerList.verify|verify} messages.
                     * @param message RegionAutoscalerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionAutoscalerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionAutoscalerList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionAutoscalerList.verify|verify} messages.
                     * @param message RegionAutoscalerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionAutoscalerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionAutoscalerList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionAutoscalerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionAutoscalerList;

                    /**
                     * Decodes a RegionAutoscalerList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionAutoscalerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionAutoscalerList;

                    /**
                     * Verifies a RegionAutoscalerList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionAutoscalerList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionAutoscalerList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionAutoscalerList;

                    /**
                     * Creates a plain object from a RegionAutoscalerList message. Also converts values to other types if specified.
                     * @param message RegionAutoscalerList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionAutoscalerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionAutoscalerList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionAutoscalerList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionCommitmentsUpdateReservationsRequest. */
                interface IRegionCommitmentsUpdateReservationsRequest {

                    /** RegionCommitmentsUpdateReservationsRequest reservations */
                    reservations?: (google.cloud.compute.v1beta.IReservation[]|null);
                }

                /** Represents a RegionCommitmentsUpdateReservationsRequest. */
                class RegionCommitmentsUpdateReservationsRequest implements IRegionCommitmentsUpdateReservationsRequest {

                    /**
                     * Constructs a new RegionCommitmentsUpdateReservationsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionCommitmentsUpdateReservationsRequest);

                    /** RegionCommitmentsUpdateReservationsRequest reservations. */
                    public reservations: google.cloud.compute.v1beta.IReservation[];

                    /**
                     * Creates a new RegionCommitmentsUpdateReservationsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionCommitmentsUpdateReservationsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionCommitmentsUpdateReservationsRequest): google.cloud.compute.v1beta.RegionCommitmentsUpdateReservationsRequest;

                    /**
                     * Encodes the specified RegionCommitmentsUpdateReservationsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionCommitmentsUpdateReservationsRequest.verify|verify} messages.
                     * @param message RegionCommitmentsUpdateReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionCommitmentsUpdateReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionCommitmentsUpdateReservationsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionCommitmentsUpdateReservationsRequest.verify|verify} messages.
                     * @param message RegionCommitmentsUpdateReservationsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionCommitmentsUpdateReservationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionCommitmentsUpdateReservationsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionCommitmentsUpdateReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionCommitmentsUpdateReservationsRequest;

                    /**
                     * Decodes a RegionCommitmentsUpdateReservationsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionCommitmentsUpdateReservationsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionCommitmentsUpdateReservationsRequest;

                    /**
                     * Verifies a RegionCommitmentsUpdateReservationsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionCommitmentsUpdateReservationsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionCommitmentsUpdateReservationsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionCommitmentsUpdateReservationsRequest;

                    /**
                     * Creates a plain object from a RegionCommitmentsUpdateReservationsRequest message. Also converts values to other types if specified.
                     * @param message RegionCommitmentsUpdateReservationsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionCommitmentsUpdateReservationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionCommitmentsUpdateReservationsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionCommitmentsUpdateReservationsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDiskTypeList. */
                interface IRegionDiskTypeList {

                    /** RegionDiskTypeList id */
                    id?: (string|null);

                    /** RegionDiskTypeList items */
                    items?: (google.cloud.compute.v1beta.IDiskType[]|null);

                    /** RegionDiskTypeList kind */
                    kind?: (string|null);

                    /** RegionDiskTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionDiskTypeList selfLink */
                    selfLink?: (string|null);

                    /** RegionDiskTypeList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RegionDiskTypeList. */
                class RegionDiskTypeList implements IRegionDiskTypeList {

                    /**
                     * Constructs a new RegionDiskTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionDiskTypeList);

                    /** RegionDiskTypeList id. */
                    public id?: (string|null);

                    /** RegionDiskTypeList items. */
                    public items: google.cloud.compute.v1beta.IDiskType[];

                    /** RegionDiskTypeList kind. */
                    public kind?: (string|null);

                    /** RegionDiskTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionDiskTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionDiskTypeList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RegionDiskTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDiskTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionDiskTypeList): google.cloud.compute.v1beta.RegionDiskTypeList;

                    /**
                     * Encodes the specified RegionDiskTypeList message. Does not implicitly {@link google.cloud.compute.v1beta.RegionDiskTypeList.verify|verify} messages.
                     * @param message RegionDiskTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionDiskTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDiskTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionDiskTypeList.verify|verify} messages.
                     * @param message RegionDiskTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionDiskTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDiskTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDiskTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionDiskTypeList;

                    /**
                     * Decodes a RegionDiskTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDiskTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionDiskTypeList;

                    /**
                     * Verifies a RegionDiskTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDiskTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDiskTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionDiskTypeList;

                    /**
                     * Creates a plain object from a RegionDiskTypeList message. Also converts values to other types if specified.
                     * @param message RegionDiskTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionDiskTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDiskTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDiskTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDisksAddResourcePoliciesRequest. */
                interface IRegionDisksAddResourcePoliciesRequest {

                    /** RegionDisksAddResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents a RegionDisksAddResourcePoliciesRequest. */
                class RegionDisksAddResourcePoliciesRequest implements IRegionDisksAddResourcePoliciesRequest {

                    /**
                     * Constructs a new RegionDisksAddResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionDisksAddResourcePoliciesRequest);

                    /** RegionDisksAddResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new RegionDisksAddResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDisksAddResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionDisksAddResourcePoliciesRequest): google.cloud.compute.v1beta.RegionDisksAddResourcePoliciesRequest;

                    /**
                     * Encodes the specified RegionDisksAddResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionDisksAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message RegionDisksAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionDisksAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDisksAddResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionDisksAddResourcePoliciesRequest.verify|verify} messages.
                     * @param message RegionDisksAddResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionDisksAddResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDisksAddResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDisksAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionDisksAddResourcePoliciesRequest;

                    /**
                     * Decodes a RegionDisksAddResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDisksAddResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionDisksAddResourcePoliciesRequest;

                    /**
                     * Verifies a RegionDisksAddResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDisksAddResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDisksAddResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionDisksAddResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a RegionDisksAddResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message RegionDisksAddResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionDisksAddResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDisksAddResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDisksAddResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDisksRemoveResourcePoliciesRequest. */
                interface IRegionDisksRemoveResourcePoliciesRequest {

                    /** RegionDisksRemoveResourcePoliciesRequest resourcePolicies */
                    resourcePolicies?: (string[]|null);
                }

                /** Represents a RegionDisksRemoveResourcePoliciesRequest. */
                class RegionDisksRemoveResourcePoliciesRequest implements IRegionDisksRemoveResourcePoliciesRequest {

                    /**
                     * Constructs a new RegionDisksRemoveResourcePoliciesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionDisksRemoveResourcePoliciesRequest);

                    /** RegionDisksRemoveResourcePoliciesRequest resourcePolicies. */
                    public resourcePolicies: string[];

                    /**
                     * Creates a new RegionDisksRemoveResourcePoliciesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDisksRemoveResourcePoliciesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionDisksRemoveResourcePoliciesRequest): google.cloud.compute.v1beta.RegionDisksRemoveResourcePoliciesRequest;

                    /**
                     * Encodes the specified RegionDisksRemoveResourcePoliciesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionDisksRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message RegionDisksRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionDisksRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDisksRemoveResourcePoliciesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionDisksRemoveResourcePoliciesRequest.verify|verify} messages.
                     * @param message RegionDisksRemoveResourcePoliciesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionDisksRemoveResourcePoliciesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDisksRemoveResourcePoliciesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDisksRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionDisksRemoveResourcePoliciesRequest;

                    /**
                     * Decodes a RegionDisksRemoveResourcePoliciesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDisksRemoveResourcePoliciesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionDisksRemoveResourcePoliciesRequest;

                    /**
                     * Verifies a RegionDisksRemoveResourcePoliciesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDisksRemoveResourcePoliciesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDisksRemoveResourcePoliciesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionDisksRemoveResourcePoliciesRequest;

                    /**
                     * Creates a plain object from a RegionDisksRemoveResourcePoliciesRequest message. Also converts values to other types if specified.
                     * @param message RegionDisksRemoveResourcePoliciesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionDisksRemoveResourcePoliciesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDisksRemoveResourcePoliciesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDisksRemoveResourcePoliciesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDisksResizeRequest. */
                interface IRegionDisksResizeRequest {

                    /** RegionDisksResizeRequest sizeGb */
                    sizeGb?: (number|Long|string|null);
                }

                /** Represents a RegionDisksResizeRequest. */
                class RegionDisksResizeRequest implements IRegionDisksResizeRequest {

                    /**
                     * Constructs a new RegionDisksResizeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionDisksResizeRequest);

                    /** RegionDisksResizeRequest sizeGb. */
                    public sizeGb?: (number|Long|string|null);

                    /**
                     * Creates a new RegionDisksResizeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDisksResizeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionDisksResizeRequest): google.cloud.compute.v1beta.RegionDisksResizeRequest;

                    /**
                     * Encodes the specified RegionDisksResizeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionDisksResizeRequest.verify|verify} messages.
                     * @param message RegionDisksResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionDisksResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDisksResizeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionDisksResizeRequest.verify|verify} messages.
                     * @param message RegionDisksResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionDisksResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDisksResizeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDisksResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionDisksResizeRequest;

                    /**
                     * Decodes a RegionDisksResizeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDisksResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionDisksResizeRequest;

                    /**
                     * Verifies a RegionDisksResizeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDisksResizeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDisksResizeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionDisksResizeRequest;

                    /**
                     * Creates a plain object from a RegionDisksResizeRequest message. Also converts values to other types if specified.
                     * @param message RegionDisksResizeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionDisksResizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDisksResizeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDisksResizeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionDisksStartAsyncReplicationRequest. */
                interface IRegionDisksStartAsyncReplicationRequest {

                    /** RegionDisksStartAsyncReplicationRequest asyncSecondaryDisk */
                    asyncSecondaryDisk?: (string|null);
                }

                /** Represents a RegionDisksStartAsyncReplicationRequest. */
                class RegionDisksStartAsyncReplicationRequest implements IRegionDisksStartAsyncReplicationRequest {

                    /**
                     * Constructs a new RegionDisksStartAsyncReplicationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionDisksStartAsyncReplicationRequest);

                    /** RegionDisksStartAsyncReplicationRequest asyncSecondaryDisk. */
                    public asyncSecondaryDisk?: (string|null);

                    /**
                     * Creates a new RegionDisksStartAsyncReplicationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionDisksStartAsyncReplicationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionDisksStartAsyncReplicationRequest): google.cloud.compute.v1beta.RegionDisksStartAsyncReplicationRequest;

                    /**
                     * Encodes the specified RegionDisksStartAsyncReplicationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionDisksStartAsyncReplicationRequest.verify|verify} messages.
                     * @param message RegionDisksStartAsyncReplicationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionDisksStartAsyncReplicationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionDisksStartAsyncReplicationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionDisksStartAsyncReplicationRequest.verify|verify} messages.
                     * @param message RegionDisksStartAsyncReplicationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionDisksStartAsyncReplicationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionDisksStartAsyncReplicationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionDisksStartAsyncReplicationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionDisksStartAsyncReplicationRequest;

                    /**
                     * Decodes a RegionDisksStartAsyncReplicationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionDisksStartAsyncReplicationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionDisksStartAsyncReplicationRequest;

                    /**
                     * Verifies a RegionDisksStartAsyncReplicationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionDisksStartAsyncReplicationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionDisksStartAsyncReplicationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionDisksStartAsyncReplicationRequest;

                    /**
                     * Creates a plain object from a RegionDisksStartAsyncReplicationRequest message. Also converts values to other types if specified.
                     * @param message RegionDisksStartAsyncReplicationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionDisksStartAsyncReplicationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionDisksStartAsyncReplicationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionDisksStartAsyncReplicationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupList. */
                interface IRegionInstanceGroupList {

                    /** RegionInstanceGroupList id */
                    id?: (string|null);

                    /** RegionInstanceGroupList items */
                    items?: (google.cloud.compute.v1beta.IInstanceGroup[]|null);

                    /** RegionInstanceGroupList kind */
                    kind?: (string|null);

                    /** RegionInstanceGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupList selfLink */
                    selfLink?: (string|null);

                    /** RegionInstanceGroupList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RegionInstanceGroupList. */
                class RegionInstanceGroupList implements IRegionInstanceGroupList {

                    /**
                     * Constructs a new RegionInstanceGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupList);

                    /** RegionInstanceGroupList id. */
                    public id?: (string|null);

                    /** RegionInstanceGroupList items. */
                    public items: google.cloud.compute.v1beta.IInstanceGroup[];

                    /** RegionInstanceGroupList kind. */
                    public kind?: (string|null);

                    /** RegionInstanceGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionInstanceGroupList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupList): google.cloud.compute.v1beta.RegionInstanceGroupList;

                    /**
                     * Encodes the specified RegionInstanceGroupList message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupList.verify|verify} messages.
                     * @param message RegionInstanceGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupList.verify|verify} messages.
                     * @param message RegionInstanceGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupList;

                    /**
                     * Decodes a RegionInstanceGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupList;

                    /**
                     * Verifies a RegionInstanceGroupList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupList;

                    /**
                     * Creates a plain object from a RegionInstanceGroupList message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerDeleteInstanceConfigReq. */
                interface IRegionInstanceGroupManagerDeleteInstanceConfigReq {

                    /** RegionInstanceGroupManagerDeleteInstanceConfigReq names */
                    names?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagerDeleteInstanceConfigReq. */
                class RegionInstanceGroupManagerDeleteInstanceConfigReq implements IRegionInstanceGroupManagerDeleteInstanceConfigReq {

                    /**
                     * Constructs a new RegionInstanceGroupManagerDeleteInstanceConfigReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerDeleteInstanceConfigReq);

                    /** RegionInstanceGroupManagerDeleteInstanceConfigReq names. */
                    public names: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagerDeleteInstanceConfigReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerDeleteInstanceConfigReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerDeleteInstanceConfigReq): google.cloud.compute.v1beta.RegionInstanceGroupManagerDeleteInstanceConfigReq;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerDeleteInstanceConfigReq message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerDeleteInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerDeleteInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerDeleteInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerDeleteInstanceConfigReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerDeleteInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerDeleteInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerDeleteInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerDeleteInstanceConfigReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerDeleteInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagerDeleteInstanceConfigReq;

                    /**
                     * Decodes a RegionInstanceGroupManagerDeleteInstanceConfigReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerDeleteInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagerDeleteInstanceConfigReq;

                    /**
                     * Verifies a RegionInstanceGroupManagerDeleteInstanceConfigReq message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerDeleteInstanceConfigReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerDeleteInstanceConfigReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagerDeleteInstanceConfigReq;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerDeleteInstanceConfigReq message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerDeleteInstanceConfigReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagerDeleteInstanceConfigReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerDeleteInstanceConfigReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerDeleteInstanceConfigReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerList. */
                interface IRegionInstanceGroupManagerList {

                    /** RegionInstanceGroupManagerList id */
                    id?: (string|null);

                    /** RegionInstanceGroupManagerList items */
                    items?: (google.cloud.compute.v1beta.IInstanceGroupManager[]|null);

                    /** RegionInstanceGroupManagerList kind */
                    kind?: (string|null);

                    /** RegionInstanceGroupManagerList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagerList selfLink */
                    selfLink?: (string|null);

                    /** RegionInstanceGroupManagerList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RegionInstanceGroupManagerList. */
                class RegionInstanceGroupManagerList implements IRegionInstanceGroupManagerList {

                    /**
                     * Constructs a new RegionInstanceGroupManagerList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerList);

                    /** RegionInstanceGroupManagerList id. */
                    public id?: (string|null);

                    /** RegionInstanceGroupManagerList items. */
                    public items: google.cloud.compute.v1beta.IInstanceGroupManager[];

                    /** RegionInstanceGroupManagerList kind. */
                    public kind?: (string|null);

                    /** RegionInstanceGroupManagerList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagerList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionInstanceGroupManagerList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupManagerList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerList): google.cloud.compute.v1beta.RegionInstanceGroupManagerList;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerList message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerList.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerList.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagerList;

                    /**
                     * Decodes a RegionInstanceGroupManagerList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagerList;

                    /**
                     * Verifies a RegionInstanceGroupManagerList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagerList;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerList message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagerList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerPatchInstanceConfigReq. */
                interface IRegionInstanceGroupManagerPatchInstanceConfigReq {

                    /** RegionInstanceGroupManagerPatchInstanceConfigReq perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);
                }

                /** Represents a RegionInstanceGroupManagerPatchInstanceConfigReq. */
                class RegionInstanceGroupManagerPatchInstanceConfigReq implements IRegionInstanceGroupManagerPatchInstanceConfigReq {

                    /**
                     * Constructs a new RegionInstanceGroupManagerPatchInstanceConfigReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerPatchInstanceConfigReq);

                    /** RegionInstanceGroupManagerPatchInstanceConfigReq perInstanceConfigs. */
                    public perInstanceConfigs: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /**
                     * Creates a new RegionInstanceGroupManagerPatchInstanceConfigReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerPatchInstanceConfigReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerPatchInstanceConfigReq): google.cloud.compute.v1beta.RegionInstanceGroupManagerPatchInstanceConfigReq;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerPatchInstanceConfigReq message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerPatchInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerPatchInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerPatchInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerPatchInstanceConfigReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerPatchInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerPatchInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerPatchInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerPatchInstanceConfigReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerPatchInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagerPatchInstanceConfigReq;

                    /**
                     * Decodes a RegionInstanceGroupManagerPatchInstanceConfigReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerPatchInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagerPatchInstanceConfigReq;

                    /**
                     * Verifies a RegionInstanceGroupManagerPatchInstanceConfigReq message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerPatchInstanceConfigReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerPatchInstanceConfigReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagerPatchInstanceConfigReq;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerPatchInstanceConfigReq message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerPatchInstanceConfigReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagerPatchInstanceConfigReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerPatchInstanceConfigReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerPatchInstanceConfigReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerResizeRequestsListResponse. */
                interface IRegionInstanceGroupManagerResizeRequestsListResponse {

                    /** RegionInstanceGroupManagerResizeRequestsListResponse etag */
                    etag?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse id */
                    id?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse items */
                    items?: (google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest[]|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse kind */
                    kind?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse selfLink */
                    selfLink?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RegionInstanceGroupManagerResizeRequestsListResponse. */
                class RegionInstanceGroupManagerResizeRequestsListResponse implements IRegionInstanceGroupManagerResizeRequestsListResponse {

                    /**
                     * Constructs a new RegionInstanceGroupManagerResizeRequestsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerResizeRequestsListResponse);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse etag. */
                    public etag?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse id. */
                    public id?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse items. */
                    public items: google.cloud.compute.v1beta.IInstanceGroupManagerResizeRequest[];

                    /** RegionInstanceGroupManagerResizeRequestsListResponse kind. */
                    public kind?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** RegionInstanceGroupManagerResizeRequestsListResponse unreachables. */
                    public unreachables: string[];

                    /** RegionInstanceGroupManagerResizeRequestsListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupManagerResizeRequestsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerResizeRequestsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerResizeRequestsListResponse): google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerResizeRequestsListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerResizeRequestsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerResizeRequestsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerResizeRequestsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerResizeRequestsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerResizeRequestsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerResizeRequestsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerResizeRequestsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Decodes a RegionInstanceGroupManagerResizeRequestsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerResizeRequestsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Verifies a RegionInstanceGroupManagerResizeRequestsListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerResizeRequestsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerResizeRequestsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerResizeRequestsListResponse message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerResizeRequestsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerResizeRequestsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerResizeRequestsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagerUpdateInstanceConfigReq. */
                interface IRegionInstanceGroupManagerUpdateInstanceConfigReq {

                    /** RegionInstanceGroupManagerUpdateInstanceConfigReq perInstanceConfigs */
                    perInstanceConfigs?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);
                }

                /** Represents a RegionInstanceGroupManagerUpdateInstanceConfigReq. */
                class RegionInstanceGroupManagerUpdateInstanceConfigReq implements IRegionInstanceGroupManagerUpdateInstanceConfigReq {

                    /**
                     * Constructs a new RegionInstanceGroupManagerUpdateInstanceConfigReq.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerUpdateInstanceConfigReq);

                    /** RegionInstanceGroupManagerUpdateInstanceConfigReq perInstanceConfigs. */
                    public perInstanceConfigs: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /**
                     * Creates a new RegionInstanceGroupManagerUpdateInstanceConfigReq instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagerUpdateInstanceConfigReq instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagerUpdateInstanceConfigReq): google.cloud.compute.v1beta.RegionInstanceGroupManagerUpdateInstanceConfigReq;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerUpdateInstanceConfigReq message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerUpdateInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerUpdateInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerUpdateInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagerUpdateInstanceConfigReq message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerUpdateInstanceConfigReq.verify|verify} messages.
                     * @param message RegionInstanceGroupManagerUpdateInstanceConfigReq message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagerUpdateInstanceConfigReq, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagerUpdateInstanceConfigReq message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagerUpdateInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagerUpdateInstanceConfigReq;

                    /**
                     * Decodes a RegionInstanceGroupManagerUpdateInstanceConfigReq message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagerUpdateInstanceConfigReq
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagerUpdateInstanceConfigReq;

                    /**
                     * Verifies a RegionInstanceGroupManagerUpdateInstanceConfigReq message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagerUpdateInstanceConfigReq message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagerUpdateInstanceConfigReq
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagerUpdateInstanceConfigReq;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagerUpdateInstanceConfigReq message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagerUpdateInstanceConfigReq
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagerUpdateInstanceConfigReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagerUpdateInstanceConfigReq to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagerUpdateInstanceConfigReq
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersAbandonInstancesRequest. */
                interface IRegionInstanceGroupManagersAbandonInstancesRequest {

                    /** RegionInstanceGroupManagersAbandonInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersAbandonInstancesRequest. */
                class RegionInstanceGroupManagersAbandonInstancesRequest implements IRegionInstanceGroupManagersAbandonInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersAbandonInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersAbandonInstancesRequest);

                    /** RegionInstanceGroupManagersAbandonInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersAbandonInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersAbandonInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersAbandonInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersAbandonInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersAbandonInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersAbandonInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersAbandonInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersAbandonInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersAbandonInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersAbandonInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersAbandonInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersAbandonInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersAbandonInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersAbandonInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersAbandonInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersAbandonInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersAbandonInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersAbandonInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersAbandonInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersAbandonInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersAbandonInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersAbandonInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersAbandonInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersAbandonInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersAdoptInstancesRequest. */
                interface IRegionInstanceGroupManagersAdoptInstancesRequest {

                    /** RegionInstanceGroupManagersAdoptInstancesRequest instances */
                    instances?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);
                }

                /** Represents a RegionInstanceGroupManagersAdoptInstancesRequest. */
                class RegionInstanceGroupManagersAdoptInstancesRequest implements IRegionInstanceGroupManagersAdoptInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersAdoptInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersAdoptInstancesRequest);

                    /** RegionInstanceGroupManagersAdoptInstancesRequest instances. */
                    public instances: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /**
                     * Creates a new RegionInstanceGroupManagersAdoptInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersAdoptInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersAdoptInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersAdoptInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersAdoptInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersAdoptInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersAdoptInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersAdoptInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersAdoptInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersAdoptInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersAdoptInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersAdoptInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersAdoptInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersAdoptInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersAdoptInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersAdoptInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersAdoptInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersAdoptInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersAdoptInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersAdoptInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersAdoptInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersAdoptInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersAdoptInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersAdoptInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersAdoptInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersAdoptInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersAdoptInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersApplyUpdatesRequest. */
                interface IRegionInstanceGroupManagersApplyUpdatesRequest {

                    /** RegionInstanceGroupManagersApplyUpdatesRequest allInstances */
                    allInstances?: (boolean|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest instances */
                    instances?: (string[]|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest minimalAction */
                    minimalAction?: (string|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest mostDisruptiveAllowedAction */
                    mostDisruptiveAllowedAction?: (string|null);
                }

                /** Represents a RegionInstanceGroupManagersApplyUpdatesRequest. */
                class RegionInstanceGroupManagersApplyUpdatesRequest implements IRegionInstanceGroupManagersApplyUpdatesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersApplyUpdatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersApplyUpdatesRequest);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest allInstances. */
                    public allInstances?: (boolean|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest instances. */
                    public instances: string[];

                    /** RegionInstanceGroupManagersApplyUpdatesRequest minimalAction. */
                    public minimalAction?: (string|null);

                    /** RegionInstanceGroupManagersApplyUpdatesRequest mostDisruptiveAllowedAction. */
                    public mostDisruptiveAllowedAction?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersApplyUpdatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersApplyUpdatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersApplyUpdatesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersApplyUpdatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersApplyUpdatesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersApplyUpdatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersApplyUpdatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersApplyUpdatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersApplyUpdatesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersApplyUpdatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersApplyUpdatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersApplyUpdatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersApplyUpdatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersApplyUpdatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersApplyUpdatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersApplyUpdatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersApplyUpdatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersApplyUpdatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersApplyUpdatesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersApplyUpdatesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersApplyUpdatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersApplyUpdatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersApplyUpdatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersApplyUpdatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RegionInstanceGroupManagersApplyUpdatesRequest {

                    /** MinimalAction enum. */
                    enum MinimalAction {
                        UNDEFINED_MINIMAL_ACTION = 0
                    }

                    /** MostDisruptiveAllowedAction enum. */
                    enum MostDisruptiveAllowedAction {
                        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0
                    }
                }

                /** Properties of a RegionInstanceGroupManagersCreateInstancesRequest. */
                interface IRegionInstanceGroupManagersCreateInstancesRequest {

                    /** RegionInstanceGroupManagersCreateInstancesRequest instances */
                    instances?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);
                }

                /** Represents a RegionInstanceGroupManagersCreateInstancesRequest. */
                class RegionInstanceGroupManagersCreateInstancesRequest implements IRegionInstanceGroupManagersCreateInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersCreateInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersCreateInstancesRequest);

                    /** RegionInstanceGroupManagersCreateInstancesRequest instances. */
                    public instances: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /**
                     * Creates a new RegionInstanceGroupManagersCreateInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersCreateInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersCreateInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersCreateInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersCreateInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersCreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersCreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersCreateInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersCreateInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersCreateInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersCreateInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersCreateInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersCreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersCreateInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersCreateInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersCreateInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersCreateInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersCreateInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersCreateInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersCreateInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersCreateInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersCreateInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersCreateInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersCreateInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersDeleteInstancesRequest. */
                interface IRegionInstanceGroupManagersDeleteInstancesRequest {

                    /** RegionInstanceGroupManagersDeleteInstancesRequest instances */
                    instances?: (string[]|null);

                    /** RegionInstanceGroupManagersDeleteInstancesRequest skipInstancesOnValidationError */
                    skipInstancesOnValidationError?: (boolean|null);
                }

                /** Represents a RegionInstanceGroupManagersDeleteInstancesRequest. */
                class RegionInstanceGroupManagersDeleteInstancesRequest implements IRegionInstanceGroupManagersDeleteInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersDeleteInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersDeleteInstancesRequest);

                    /** RegionInstanceGroupManagersDeleteInstancesRequest instances. */
                    public instances: string[];

                    /** RegionInstanceGroupManagersDeleteInstancesRequest skipInstancesOnValidationError. */
                    public skipInstancesOnValidationError?: (boolean|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersDeleteInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersDeleteInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersDeleteInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersDeleteInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersDeleteInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersDeleteInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersDeleteInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersDeleteInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersDeleteInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersDeleteInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersDeleteInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersDeleteInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersDeleteInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersDeleteInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersDeleteInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersDeleteInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersDeleteInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersDeleteInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersDeleteInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersDeleteInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersDeleteInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersDeleteInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersDeleteInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersDeleteInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersListErrorsResponse. */
                interface IRegionInstanceGroupManagersListErrorsResponse {

                    /** RegionInstanceGroupManagersListErrorsResponse items */
                    items?: (google.cloud.compute.v1beta.IInstanceManagedByIgmError[]|null);

                    /** RegionInstanceGroupManagersListErrorsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a RegionInstanceGroupManagersListErrorsResponse. */
                class RegionInstanceGroupManagersListErrorsResponse implements IRegionInstanceGroupManagersListErrorsResponse {

                    /**
                     * Constructs a new RegionInstanceGroupManagersListErrorsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListErrorsResponse);

                    /** RegionInstanceGroupManagersListErrorsResponse items. */
                    public items: google.cloud.compute.v1beta.IInstanceManagedByIgmError[];

                    /** RegionInstanceGroupManagersListErrorsResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersListErrorsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersListErrorsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListErrorsResponse): google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListErrorsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListErrorsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersListErrorsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersListErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse;

                    /**
                     * Decodes a RegionInstanceGroupManagersListErrorsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersListErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse;

                    /**
                     * Verifies a RegionInstanceGroupManagersListErrorsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersListErrorsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersListErrorsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersListErrorsResponse message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersListErrorsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersListErrorsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersListErrorsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersListInstanceConfigsResp. */
                interface IRegionInstanceGroupManagersListInstanceConfigsResp {

                    /** RegionInstanceGroupManagersListInstanceConfigsResp items */
                    items?: (google.cloud.compute.v1beta.IPerInstanceConfig[]|null);

                    /** RegionInstanceGroupManagersListInstanceConfigsResp nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagersListInstanceConfigsResp warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RegionInstanceGroupManagersListInstanceConfigsResp. */
                class RegionInstanceGroupManagersListInstanceConfigsResp implements IRegionInstanceGroupManagersListInstanceConfigsResp {

                    /**
                     * Constructs a new RegionInstanceGroupManagersListInstanceConfigsResp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListInstanceConfigsResp);

                    /** RegionInstanceGroupManagersListInstanceConfigsResp items. */
                    public items: google.cloud.compute.v1beta.IPerInstanceConfig[];

                    /** RegionInstanceGroupManagersListInstanceConfigsResp nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupManagersListInstanceConfigsResp warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersListInstanceConfigsResp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersListInstanceConfigsResp instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListInstanceConfigsResp): google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListInstanceConfigsResp message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListInstanceConfigsResp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListInstanceConfigsResp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListInstanceConfigsResp message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListInstanceConfigsResp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListInstanceConfigsResp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersListInstanceConfigsResp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersListInstanceConfigsResp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp;

                    /**
                     * Decodes a RegionInstanceGroupManagersListInstanceConfigsResp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersListInstanceConfigsResp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp;

                    /**
                     * Verifies a RegionInstanceGroupManagersListInstanceConfigsResp message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersListInstanceConfigsResp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersListInstanceConfigsResp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersListInstanceConfigsResp message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersListInstanceConfigsResp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersListInstanceConfigsResp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersListInstanceConfigsResp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersListInstancesResponse. */
                interface IRegionInstanceGroupManagersListInstancesResponse {

                    /** RegionInstanceGroupManagersListInstancesResponse managedInstances */
                    managedInstances?: (google.cloud.compute.v1beta.IManagedInstance[]|null);

                    /** RegionInstanceGroupManagersListInstancesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a RegionInstanceGroupManagersListInstancesResponse. */
                class RegionInstanceGroupManagersListInstancesResponse implements IRegionInstanceGroupManagersListInstancesResponse {

                    /**
                     * Constructs a new RegionInstanceGroupManagersListInstancesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListInstancesResponse);

                    /** RegionInstanceGroupManagersListInstancesResponse managedInstances. */
                    public managedInstances: google.cloud.compute.v1beta.IManagedInstance[];

                    /** RegionInstanceGroupManagersListInstancesResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersListInstancesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersListInstancesResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListInstancesResponse): google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListInstancesResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListInstancesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListInstancesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersListInstancesResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersListInstancesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersListInstancesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersListInstancesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersListInstancesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse;

                    /**
                     * Decodes a RegionInstanceGroupManagersListInstancesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersListInstancesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse;

                    /**
                     * Verifies a RegionInstanceGroupManagersListInstancesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersListInstancesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersListInstancesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersListInstancesResponse message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersListInstancesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersListInstancesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersListInstancesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersRecreateRequest. */
                interface IRegionInstanceGroupManagersRecreateRequest {

                    /** RegionInstanceGroupManagersRecreateRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersRecreateRequest. */
                class RegionInstanceGroupManagersRecreateRequest implements IRegionInstanceGroupManagersRecreateRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersRecreateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersRecreateRequest);

                    /** RegionInstanceGroupManagersRecreateRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersRecreateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersRecreateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersRecreateRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersRecreateRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersRecreateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersRecreateRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersRecreateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersRecreateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersRecreateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersRecreateRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersRecreateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersRecreateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersRecreateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersRecreateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersRecreateRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersRecreateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersRecreateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersRecreateRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersRecreateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersRecreateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersRecreateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersRecreateRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersRecreateRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersRecreateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersRecreateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersRecreateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersRecreateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersResizeAdvancedRequest. */
                interface IRegionInstanceGroupManagersResizeAdvancedRequest {

                    /** RegionInstanceGroupManagersResizeAdvancedRequest noCreationRetries */
                    noCreationRetries?: (boolean|null);

                    /** RegionInstanceGroupManagersResizeAdvancedRequest targetSize */
                    targetSize?: (number|null);
                }

                /** Represents a RegionInstanceGroupManagersResizeAdvancedRequest. */
                class RegionInstanceGroupManagersResizeAdvancedRequest implements IRegionInstanceGroupManagersResizeAdvancedRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersResizeAdvancedRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersResizeAdvancedRequest);

                    /** RegionInstanceGroupManagersResizeAdvancedRequest noCreationRetries. */
                    public noCreationRetries?: (boolean|null);

                    /** RegionInstanceGroupManagersResizeAdvancedRequest targetSize. */
                    public targetSize?: (number|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersResizeAdvancedRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersResizeAdvancedRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersResizeAdvancedRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersResizeAdvancedRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersResizeAdvancedRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersResizeAdvancedRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersResizeAdvancedRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersResizeAdvancedRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersResizeAdvancedRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersResizeAdvancedRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersResizeAdvancedRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersResizeAdvancedRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersResizeAdvancedRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersResizeAdvancedRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersResizeAdvancedRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersResizeAdvancedRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersResizeAdvancedRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersResizeAdvancedRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersResizeAdvancedRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersResizeAdvancedRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersResizeAdvancedRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersResizeAdvancedRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersResizeAdvancedRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersResizeAdvancedRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersResizeAdvancedRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersResizeAdvancedRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersResizeAdvancedRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersResumeInstancesRequest. */
                interface IRegionInstanceGroupManagersResumeInstancesRequest {

                    /** RegionInstanceGroupManagersResumeInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersResumeInstancesRequest. */
                class RegionInstanceGroupManagersResumeInstancesRequest implements IRegionInstanceGroupManagersResumeInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersResumeInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersResumeInstancesRequest);

                    /** RegionInstanceGroupManagersResumeInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersResumeInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersResumeInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersResumeInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersResumeInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersResumeInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersResumeInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersResumeInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersResumeInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersResumeInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersResumeInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersResumeInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersResumeInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersResumeInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersResumeInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersResumeInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersResumeInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersResumeInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersResumeInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersResumeInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersResumeInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersResumeInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersResumeInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersResumeInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersResumeInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersSetAutoHealingRequest. */
                interface IRegionInstanceGroupManagersSetAutoHealingRequest {

                    /** RegionInstanceGroupManagersSetAutoHealingRequest autoHealingPolicies */
                    autoHealingPolicies?: (google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy[]|null);
                }

                /** Represents a RegionInstanceGroupManagersSetAutoHealingRequest. */
                class RegionInstanceGroupManagersSetAutoHealingRequest implements IRegionInstanceGroupManagersSetAutoHealingRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersSetAutoHealingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetAutoHealingRequest);

                    /** RegionInstanceGroupManagersSetAutoHealingRequest autoHealingPolicies. */
                    public autoHealingPolicies: google.cloud.compute.v1beta.IInstanceGroupManagerAutoHealingPolicy[];

                    /**
                     * Creates a new RegionInstanceGroupManagersSetAutoHealingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersSetAutoHealingRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetAutoHealingRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetAutoHealingRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetAutoHealingRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersSetAutoHealingRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetAutoHealingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetAutoHealingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetAutoHealingRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersSetAutoHealingRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetAutoHealingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetAutoHealingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetAutoHealingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersSetAutoHealingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetAutoHealingRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetAutoHealingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersSetAutoHealingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetAutoHealingRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersSetAutoHealingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersSetAutoHealingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersSetAutoHealingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetAutoHealingRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersSetAutoHealingRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersSetAutoHealingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersSetAutoHealingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersSetAutoHealingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersSetAutoHealingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersSetTargetPoolsRequest. */
                interface IRegionInstanceGroupManagersSetTargetPoolsRequest {

                    /** RegionInstanceGroupManagersSetTargetPoolsRequest fingerprint */
                    fingerprint?: (string|null);

                    /** RegionInstanceGroupManagersSetTargetPoolsRequest targetPools */
                    targetPools?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersSetTargetPoolsRequest. */
                class RegionInstanceGroupManagersSetTargetPoolsRequest implements IRegionInstanceGroupManagersSetTargetPoolsRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersSetTargetPoolsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTargetPoolsRequest);

                    /** RegionInstanceGroupManagersSetTargetPoolsRequest fingerprint. */
                    public fingerprint?: (string|null);

                    /** RegionInstanceGroupManagersSetTargetPoolsRequest targetPools. */
                    public targetPools: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersSetTargetPoolsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersSetTargetPoolsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTargetPoolsRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetTargetPoolsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTargetPoolsRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetTargetPoolsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTargetPoolsRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetTargetPoolsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTargetPoolsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetTargetPoolsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersSetTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetTargetPoolsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersSetTargetPoolsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersSetTargetPoolsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersSetTargetPoolsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersSetTargetPoolsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTargetPoolsRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersSetTargetPoolsRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersSetTargetPoolsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTargetPoolsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersSetTargetPoolsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersSetTargetPoolsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersSetTemplateRequest. */
                interface IRegionInstanceGroupManagersSetTemplateRequest {

                    /** RegionInstanceGroupManagersSetTemplateRequest instanceTemplate */
                    instanceTemplate?: (string|null);
                }

                /** Represents a RegionInstanceGroupManagersSetTemplateRequest. */
                class RegionInstanceGroupManagersSetTemplateRequest implements IRegionInstanceGroupManagersSetTemplateRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersSetTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTemplateRequest);

                    /** RegionInstanceGroupManagersSetTemplateRequest instanceTemplate. */
                    public instanceTemplate?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupManagersSetTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersSetTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTemplateRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTemplateRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTemplateRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSetTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTemplateRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSetTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersSetTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTemplateRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersSetTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersSetTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTemplateRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersSetTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersSetTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersSetTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTemplateRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersSetTemplateRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersSetTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersSetTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersSetTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersSetTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersStartInstancesRequest. */
                interface IRegionInstanceGroupManagersStartInstancesRequest {

                    /** RegionInstanceGroupManagersStartInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersStartInstancesRequest. */
                class RegionInstanceGroupManagersStartInstancesRequest implements IRegionInstanceGroupManagersStartInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersStartInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersStartInstancesRequest);

                    /** RegionInstanceGroupManagersStartInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersStartInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersStartInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersStartInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersStartInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersStartInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersStartInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersStartInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersStartInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersStartInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersStartInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersStartInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersStartInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersStartInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersStartInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersStartInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersStartInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersStartInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersStartInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersStartInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersStartInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersStartInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersStartInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersStartInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersStartInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersStartInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersStartInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersStartInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersStopInstancesRequest. */
                interface IRegionInstanceGroupManagersStopInstancesRequest {

                    /** RegionInstanceGroupManagersStopInstancesRequest forceStop */
                    forceStop?: (boolean|null);

                    /** RegionInstanceGroupManagersStopInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersStopInstancesRequest. */
                class RegionInstanceGroupManagersStopInstancesRequest implements IRegionInstanceGroupManagersStopInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersStopInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersStopInstancesRequest);

                    /** RegionInstanceGroupManagersStopInstancesRequest forceStop. */
                    public forceStop?: (boolean|null);

                    /** RegionInstanceGroupManagersStopInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersStopInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersStopInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersStopInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersStopInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersStopInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersStopInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersStopInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersStopInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersStopInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersStopInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersStopInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersStopInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersStopInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersStopInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersStopInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersStopInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersStopInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersStopInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersStopInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersStopInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersStopInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersStopInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersStopInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersStopInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersStopInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersStopInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersStopInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupManagersSuspendInstancesRequest. */
                interface IRegionInstanceGroupManagersSuspendInstancesRequest {

                    /** RegionInstanceGroupManagersSuspendInstancesRequest forceSuspend */
                    forceSuspend?: (boolean|null);

                    /** RegionInstanceGroupManagersSuspendInstancesRequest instances */
                    instances?: (string[]|null);
                }

                /** Represents a RegionInstanceGroupManagersSuspendInstancesRequest. */
                class RegionInstanceGroupManagersSuspendInstancesRequest implements IRegionInstanceGroupManagersSuspendInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupManagersSuspendInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSuspendInstancesRequest);

                    /** RegionInstanceGroupManagersSuspendInstancesRequest forceSuspend. */
                    public forceSuspend?: (boolean|null);

                    /** RegionInstanceGroupManagersSuspendInstancesRequest instances. */
                    public instances: string[];

                    /**
                     * Creates a new RegionInstanceGroupManagersSuspendInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupManagersSuspendInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSuspendInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSuspendInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersSuspendInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSuspendInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSuspendInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupManagersSuspendInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupManagersSuspendInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupManagersSuspendInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupManagersSuspendInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupManagersSuspendInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupManagersSuspendInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupManagersSuspendInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupManagersSuspendInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupManagersSuspendInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupManagersSuspendInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupManagersSuspendInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupManagersSuspendInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupManagersSuspendInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupManagersSuspendInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupManagersSuspendInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupManagersSuspendInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupManagersSuspendInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupsListInstances. */
                interface IRegionInstanceGroupsListInstances {

                    /** RegionInstanceGroupsListInstances id */
                    id?: (string|null);

                    /** RegionInstanceGroupsListInstances items */
                    items?: (google.cloud.compute.v1beta.IInstanceWithNamedPorts[]|null);

                    /** RegionInstanceGroupsListInstances kind */
                    kind?: (string|null);

                    /** RegionInstanceGroupsListInstances nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionInstanceGroupsListInstances selfLink */
                    selfLink?: (string|null);

                    /** RegionInstanceGroupsListInstances warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RegionInstanceGroupsListInstances. */
                class RegionInstanceGroupsListInstances implements IRegionInstanceGroupsListInstances {

                    /**
                     * Constructs a new RegionInstanceGroupsListInstances.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupsListInstances);

                    /** RegionInstanceGroupsListInstances id. */
                    public id?: (string|null);

                    /** RegionInstanceGroupsListInstances items. */
                    public items: google.cloud.compute.v1beta.IInstanceWithNamedPorts[];

                    /** RegionInstanceGroupsListInstances kind. */
                    public kind?: (string|null);

                    /** RegionInstanceGroupsListInstances nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionInstanceGroupsListInstances selfLink. */
                    public selfLink?: (string|null);

                    /** RegionInstanceGroupsListInstances warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RegionInstanceGroupsListInstances instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupsListInstances instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupsListInstances): google.cloud.compute.v1beta.RegionInstanceGroupsListInstances;

                    /**
                     * Encodes the specified RegionInstanceGroupsListInstances message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupsListInstances.verify|verify} messages.
                     * @param message RegionInstanceGroupsListInstances message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupsListInstances, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupsListInstances message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupsListInstances.verify|verify} messages.
                     * @param message RegionInstanceGroupsListInstances message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupsListInstances, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupsListInstances message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupsListInstances
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupsListInstances;

                    /**
                     * Decodes a RegionInstanceGroupsListInstances message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupsListInstances
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupsListInstances;

                    /**
                     * Verifies a RegionInstanceGroupsListInstances message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupsListInstances message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupsListInstances
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupsListInstances;

                    /**
                     * Creates a plain object from a RegionInstanceGroupsListInstances message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupsListInstances
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupsListInstances, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupsListInstances to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupsListInstances
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionInstanceGroupsListInstancesRequest. */
                interface IRegionInstanceGroupsListInstancesRequest {

                    /** RegionInstanceGroupsListInstancesRequest instanceState */
                    instanceState?: (string|null);

                    /** RegionInstanceGroupsListInstancesRequest portName */
                    portName?: (string|null);
                }

                /** Represents a RegionInstanceGroupsListInstancesRequest. */
                class RegionInstanceGroupsListInstancesRequest implements IRegionInstanceGroupsListInstancesRequest {

                    /**
                     * Constructs a new RegionInstanceGroupsListInstancesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupsListInstancesRequest);

                    /** RegionInstanceGroupsListInstancesRequest instanceState. */
                    public instanceState?: (string|null);

                    /** RegionInstanceGroupsListInstancesRequest portName. */
                    public portName?: (string|null);

                    /**
                     * Creates a new RegionInstanceGroupsListInstancesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupsListInstancesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupsListInstancesRequest): google.cloud.compute.v1beta.RegionInstanceGroupsListInstancesRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupsListInstancesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupsListInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupsListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupsListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupsListInstancesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupsListInstancesRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupsListInstancesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupsListInstancesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupsListInstancesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupsListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupsListInstancesRequest;

                    /**
                     * Decodes a RegionInstanceGroupsListInstancesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupsListInstancesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupsListInstancesRequest;

                    /**
                     * Verifies a RegionInstanceGroupsListInstancesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupsListInstancesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupsListInstancesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupsListInstancesRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupsListInstancesRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupsListInstancesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupsListInstancesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupsListInstancesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupsListInstancesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RegionInstanceGroupsListInstancesRequest {

                    /** InstanceState enum. */
                    enum InstanceState {
                        UNDEFINED_INSTANCE_STATE = 0,
                        ALL = 64897,
                        RUNNING = 121282975
                    }
                }

                /** Properties of a RegionInstanceGroupsSetNamedPortsRequest. */
                interface IRegionInstanceGroupsSetNamedPortsRequest {

                    /** RegionInstanceGroupsSetNamedPortsRequest fingerprint */
                    fingerprint?: (string|null);

                    /** RegionInstanceGroupsSetNamedPortsRequest namedPorts */
                    namedPorts?: (google.cloud.compute.v1beta.INamedPort[]|null);
                }

                /** Represents a RegionInstanceGroupsSetNamedPortsRequest. */
                class RegionInstanceGroupsSetNamedPortsRequest implements IRegionInstanceGroupsSetNamedPortsRequest {

                    /**
                     * Constructs a new RegionInstanceGroupsSetNamedPortsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupsSetNamedPortsRequest);

                    /** RegionInstanceGroupsSetNamedPortsRequest fingerprint. */
                    public fingerprint?: (string|null);

                    /** RegionInstanceGroupsSetNamedPortsRequest namedPorts. */
                    public namedPorts: google.cloud.compute.v1beta.INamedPort[];

                    /**
                     * Creates a new RegionInstanceGroupsSetNamedPortsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionInstanceGroupsSetNamedPortsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionInstanceGroupsSetNamedPortsRequest): google.cloud.compute.v1beta.RegionInstanceGroupsSetNamedPortsRequest;

                    /**
                     * Encodes the specified RegionInstanceGroupsSetNamedPortsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupsSetNamedPortsRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupsSetNamedPortsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionInstanceGroupsSetNamedPortsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionInstanceGroupsSetNamedPortsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionInstanceGroupsSetNamedPortsRequest.verify|verify} messages.
                     * @param message RegionInstanceGroupsSetNamedPortsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionInstanceGroupsSetNamedPortsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionInstanceGroupsSetNamedPortsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionInstanceGroupsSetNamedPortsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionInstanceGroupsSetNamedPortsRequest;

                    /**
                     * Decodes a RegionInstanceGroupsSetNamedPortsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionInstanceGroupsSetNamedPortsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionInstanceGroupsSetNamedPortsRequest;

                    /**
                     * Verifies a RegionInstanceGroupsSetNamedPortsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionInstanceGroupsSetNamedPortsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionInstanceGroupsSetNamedPortsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionInstanceGroupsSetNamedPortsRequest;

                    /**
                     * Creates a plain object from a RegionInstanceGroupsSetNamedPortsRequest message. Also converts values to other types if specified.
                     * @param message RegionInstanceGroupsSetNamedPortsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionInstanceGroupsSetNamedPortsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionInstanceGroupsSetNamedPortsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionInstanceGroupsSetNamedPortsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionList. */
                interface IRegionList {

                    /** RegionList id */
                    id?: (string|null);

                    /** RegionList items */
                    items?: (google.cloud.compute.v1beta.IRegion[]|null);

                    /** RegionList kind */
                    kind?: (string|null);

                    /** RegionList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RegionList selfLink */
                    selfLink?: (string|null);

                    /** RegionList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RegionList. */
                class RegionList implements IRegionList {

                    /**
                     * Constructs a new RegionList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionList);

                    /** RegionList id. */
                    public id?: (string|null);

                    /** RegionList items. */
                    public items: google.cloud.compute.v1beta.IRegion[];

                    /** RegionList kind. */
                    public kind?: (string|null);

                    /** RegionList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RegionList selfLink. */
                    public selfLink?: (string|null);

                    /** RegionList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RegionList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionList): google.cloud.compute.v1beta.RegionList;

                    /**
                     * Encodes the specified RegionList message. Does not implicitly {@link google.cloud.compute.v1beta.RegionList.verify|verify} messages.
                     * @param message RegionList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionList.verify|verify} messages.
                     * @param message RegionList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionList;

                    /**
                     * Decodes a RegionList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionList;

                    /**
                     * Verifies a RegionList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionList;

                    /**
                     * Creates a plain object from a RegionList message. Also converts values to other types if specified.
                     * @param message RegionList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionNetworkEndpointGroupsAttachEndpointsRequest. */
                interface IRegionNetworkEndpointGroupsAttachEndpointsRequest {

                    /** RegionNetworkEndpointGroupsAttachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1beta.INetworkEndpoint[]|null);
                }

                /** Represents a RegionNetworkEndpointGroupsAttachEndpointsRequest. */
                class RegionNetworkEndpointGroupsAttachEndpointsRequest implements IRegionNetworkEndpointGroupsAttachEndpointsRequest {

                    /**
                     * Constructs a new RegionNetworkEndpointGroupsAttachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsAttachEndpointsRequest);

                    /** RegionNetworkEndpointGroupsAttachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1beta.INetworkEndpoint[];

                    /**
                     * Creates a new RegionNetworkEndpointGroupsAttachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionNetworkEndpointGroupsAttachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsAttachEndpointsRequest): google.cloud.compute.v1beta.RegionNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Encodes the specified RegionNetworkEndpointGroupsAttachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message RegionNetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionNetworkEndpointGroupsAttachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroupsAttachEndpointsRequest.verify|verify} messages.
                     * @param message RegionNetworkEndpointGroupsAttachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsAttachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionNetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionNetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Decodes a RegionNetworkEndpointGroupsAttachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionNetworkEndpointGroupsAttachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Verifies a RegionNetworkEndpointGroupsAttachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionNetworkEndpointGroupsAttachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionNetworkEndpointGroupsAttachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionNetworkEndpointGroupsAttachEndpointsRequest;

                    /**
                     * Creates a plain object from a RegionNetworkEndpointGroupsAttachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message RegionNetworkEndpointGroupsAttachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionNetworkEndpointGroupsAttachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionNetworkEndpointGroupsAttachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionNetworkEndpointGroupsAttachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionNetworkEndpointGroupsDetachEndpointsRequest. */
                interface IRegionNetworkEndpointGroupsDetachEndpointsRequest {

                    /** RegionNetworkEndpointGroupsDetachEndpointsRequest networkEndpoints */
                    networkEndpoints?: (google.cloud.compute.v1beta.INetworkEndpoint[]|null);
                }

                /** Represents a RegionNetworkEndpointGroupsDetachEndpointsRequest. */
                class RegionNetworkEndpointGroupsDetachEndpointsRequest implements IRegionNetworkEndpointGroupsDetachEndpointsRequest {

                    /**
                     * Constructs a new RegionNetworkEndpointGroupsDetachEndpointsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsDetachEndpointsRequest);

                    /** RegionNetworkEndpointGroupsDetachEndpointsRequest networkEndpoints. */
                    public networkEndpoints: google.cloud.compute.v1beta.INetworkEndpoint[];

                    /**
                     * Creates a new RegionNetworkEndpointGroupsDetachEndpointsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionNetworkEndpointGroupsDetachEndpointsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsDetachEndpointsRequest): google.cloud.compute.v1beta.RegionNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Encodes the specified RegionNetworkEndpointGroupsDetachEndpointsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message RegionNetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionNetworkEndpointGroupsDetachEndpointsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroupsDetachEndpointsRequest.verify|verify} messages.
                     * @param message RegionNetworkEndpointGroupsDetachEndpointsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionNetworkEndpointGroupsDetachEndpointsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionNetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionNetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Decodes a RegionNetworkEndpointGroupsDetachEndpointsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionNetworkEndpointGroupsDetachEndpointsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Verifies a RegionNetworkEndpointGroupsDetachEndpointsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionNetworkEndpointGroupsDetachEndpointsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionNetworkEndpointGroupsDetachEndpointsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionNetworkEndpointGroupsDetachEndpointsRequest;

                    /**
                     * Creates a plain object from a RegionNetworkEndpointGroupsDetachEndpointsRequest message. Also converts values to other types if specified.
                     * @param message RegionNetworkEndpointGroupsDetachEndpointsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionNetworkEndpointGroupsDetachEndpointsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionNetworkEndpointGroupsDetachEndpointsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionNetworkEndpointGroupsDetachEndpointsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse. */
                interface IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse {

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse firewallPolicys */
                    firewallPolicys?: (google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy[]|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse firewalls */
                    firewalls?: (google.cloud.compute.v1beta.IFirewall[]|null);
                }

                /** Represents a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse. */
                class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse implements IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse {

                    /**
                     * Constructs a new RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse firewallPolicys. */
                    public firewallPolicys: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy[];

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse firewalls. */
                    public firewalls: google.cloud.compute.v1beta.IFirewall[];

                    /**
                     * Creates a new RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse): google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse;

                    /**
                     * Encodes the specified RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.verify|verify} messages.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse;

                    /**
                     * Decodes a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse;

                    /**
                     * Verifies a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse;

                    /**
                     * Creates a plain object from a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse message. Also converts values to other types if specified.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                interface IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName */
                    displayName?: (string|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy name */
                    name?: (string|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules */
                    packetMirroringRules?: (google.cloud.compute.v1beta.IFirewallPolicyRule[]|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority */
                    priority?: (number|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules */
                    rules?: (google.cloud.compute.v1beta.IFirewallPolicyRule[]|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy type */
                    type?: (string|null);
                }

                /** Represents a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy. */
                class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy implements IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /**
                     * Constructs a new RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy displayName. */
                    public displayName?: (string|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy name. */
                    public name?: (string|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy packetMirroringRules. */
                    public packetMirroringRules: google.cloud.compute.v1beta.IFirewallPolicyRule[];

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy priority. */
                    public priority?: (number|null);

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy rules. */
                    public rules: google.cloud.compute.v1beta.IFirewallPolicyRule[];

                    /** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy): google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Encodes the specified RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.verify|verify} messages.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Decodes a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Verifies a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy;

                    /**
                     * Creates a plain object from a RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy message. Also converts values to other types if specified.
                     * @param message RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HIERARCHY = 69902869,
                        NETWORK = 413984270,
                        NETWORK_REGIONAL = 190804272,
                        SYSTEM_GLOBAL = 60099507,
                        SYSTEM_REGIONAL = 161777199,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a RegionSetLabelsRequest. */
                interface IRegionSetLabelsRequest {

                    /** RegionSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** RegionSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a RegionSetLabelsRequest. */
                class RegionSetLabelsRequest implements IRegionSetLabelsRequest {

                    /**
                     * Constructs a new RegionSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionSetLabelsRequest);

                    /** RegionSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** RegionSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new RegionSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionSetLabelsRequest): google.cloud.compute.v1beta.RegionSetLabelsRequest;

                    /**
                     * Encodes the specified RegionSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionSetLabelsRequest.verify|verify} messages.
                     * @param message RegionSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionSetLabelsRequest.verify|verify} messages.
                     * @param message RegionSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionSetLabelsRequest;

                    /**
                     * Decodes a RegionSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionSetLabelsRequest;

                    /**
                     * Verifies a RegionSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionSetLabelsRequest;

                    /**
                     * Creates a plain object from a RegionSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message RegionSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionSetPolicyRequest. */
                interface IRegionSetPolicyRequest {

                    /** RegionSetPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1beta.IBinding[]|null);

                    /** RegionSetPolicyRequest etag */
                    etag?: (string|null);

                    /** RegionSetPolicyRequest policy */
                    policy?: (google.cloud.compute.v1beta.IPolicy|null);
                }

                /** Represents a RegionSetPolicyRequest. */
                class RegionSetPolicyRequest implements IRegionSetPolicyRequest {

                    /**
                     * Constructs a new RegionSetPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionSetPolicyRequest);

                    /** RegionSetPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1beta.IBinding[];

                    /** RegionSetPolicyRequest etag. */
                    public etag?: (string|null);

                    /** RegionSetPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1beta.IPolicy|null);

                    /**
                     * Creates a new RegionSetPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionSetPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionSetPolicyRequest): google.cloud.compute.v1beta.RegionSetPolicyRequest;

                    /**
                     * Encodes the specified RegionSetPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionSetPolicyRequest.verify|verify} messages.
                     * @param message RegionSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionSetPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionSetPolicyRequest.verify|verify} messages.
                     * @param message RegionSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionSetPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionSetPolicyRequest;

                    /**
                     * Decodes a RegionSetPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionSetPolicyRequest;

                    /**
                     * Verifies a RegionSetPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionSetPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionSetPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionSetPolicyRequest;

                    /**
                     * Creates a plain object from a RegionSetPolicyRequest message. Also converts values to other types if specified.
                     * @param message RegionSetPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionSetPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionSetPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionSetPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionTargetHttpsProxiesSetSslCertificatesRequest. */
                interface IRegionTargetHttpsProxiesSetSslCertificatesRequest {

                    /** RegionTargetHttpsProxiesSetSslCertificatesRequest sslCertificates */
                    sslCertificates?: (string[]|null);
                }

                /** Represents a RegionTargetHttpsProxiesSetSslCertificatesRequest. */
                class RegionTargetHttpsProxiesSetSslCertificatesRequest implements IRegionTargetHttpsProxiesSetSslCertificatesRequest {

                    /**
                     * Constructs a new RegionTargetHttpsProxiesSetSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionTargetHttpsProxiesSetSslCertificatesRequest);

                    /** RegionTargetHttpsProxiesSetSslCertificatesRequest sslCertificates. */
                    public sslCertificates: string[];

                    /**
                     * Creates a new RegionTargetHttpsProxiesSetSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionTargetHttpsProxiesSetSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionTargetHttpsProxiesSetSslCertificatesRequest): google.cloud.compute.v1beta.RegionTargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Encodes the specified RegionTargetHttpsProxiesSetSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionTargetHttpsProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message RegionTargetHttpsProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionTargetHttpsProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionTargetHttpsProxiesSetSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionTargetHttpsProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message RegionTargetHttpsProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionTargetHttpsProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionTargetHttpsProxiesSetSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionTargetHttpsProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionTargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Decodes a RegionTargetHttpsProxiesSetSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionTargetHttpsProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionTargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Verifies a RegionTargetHttpsProxiesSetSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionTargetHttpsProxiesSetSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionTargetHttpsProxiesSetSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionTargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Creates a plain object from a RegionTargetHttpsProxiesSetSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message RegionTargetHttpsProxiesSetSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionTargetHttpsProxiesSetSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionTargetHttpsProxiesSetSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionTargetHttpsProxiesSetSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RegionUrlMapsValidateRequest. */
                interface IRegionUrlMapsValidateRequest {

                    /** RegionUrlMapsValidateRequest resource */
                    resource?: (google.cloud.compute.v1beta.IUrlMap|null);
                }

                /** Represents a RegionUrlMapsValidateRequest. */
                class RegionUrlMapsValidateRequest implements IRegionUrlMapsValidateRequest {

                    /**
                     * Constructs a new RegionUrlMapsValidateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRegionUrlMapsValidateRequest);

                    /** RegionUrlMapsValidateRequest resource. */
                    public resource?: (google.cloud.compute.v1beta.IUrlMap|null);

                    /**
                     * Creates a new RegionUrlMapsValidateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RegionUrlMapsValidateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRegionUrlMapsValidateRequest): google.cloud.compute.v1beta.RegionUrlMapsValidateRequest;

                    /**
                     * Encodes the specified RegionUrlMapsValidateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RegionUrlMapsValidateRequest.verify|verify} messages.
                     * @param message RegionUrlMapsValidateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRegionUrlMapsValidateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RegionUrlMapsValidateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RegionUrlMapsValidateRequest.verify|verify} messages.
                     * @param message RegionUrlMapsValidateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRegionUrlMapsValidateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RegionUrlMapsValidateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RegionUrlMapsValidateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RegionUrlMapsValidateRequest;

                    /**
                     * Decodes a RegionUrlMapsValidateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RegionUrlMapsValidateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RegionUrlMapsValidateRequest;

                    /**
                     * Verifies a RegionUrlMapsValidateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RegionUrlMapsValidateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RegionUrlMapsValidateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RegionUrlMapsValidateRequest;

                    /**
                     * Creates a plain object from a RegionUrlMapsValidateRequest message. Also converts values to other types if specified.
                     * @param message RegionUrlMapsValidateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RegionUrlMapsValidateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RegionUrlMapsValidateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RegionUrlMapsValidateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationFirewallPolicyRequest. */
                interface IRemoveAssociationFirewallPolicyRequest {

                    /** RemoveAssociationFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveAssociationFirewallPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveAssociationFirewallPolicyRequest. */
                class RemoveAssociationFirewallPolicyRequest implements IRemoveAssociationFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveAssociationFirewallPolicyRequest);

                    /** RemoveAssociationFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveAssociationFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveAssociationFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveAssociationFirewallPolicyRequest): google.cloud.compute.v1beta.RemoveAssociationFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveAssociationFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveAssociationFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveAssociationFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveAssociationFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveAssociationFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationNetworkFirewallPolicyRequest. */
                interface IRemoveAssociationNetworkFirewallPolicyRequest {

                    /** RemoveAssociationNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveAssociationNetworkFirewallPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemoveAssociationNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveAssociationNetworkFirewallPolicyRequest. */
                class RemoveAssociationNetworkFirewallPolicyRequest implements IRemoveAssociationNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveAssociationNetworkFirewallPolicyRequest);

                    /** RemoveAssociationNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveAssociationNetworkFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemoveAssociationNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveAssociationNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveAssociationNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.RemoveAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveAssociationNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveAssociationNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveAssociationNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationOrganizationSecurityPolicyRequest. */
                interface IRemoveAssociationOrganizationSecurityPolicyRequest {

                    /** RemoveAssociationOrganizationSecurityPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a RemoveAssociationOrganizationSecurityPolicyRequest. */
                class RemoveAssociationOrganizationSecurityPolicyRequest implements IRemoveAssociationOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveAssociationOrganizationSecurityPolicyRequest);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveAssociationOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new RemoveAssociationOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveAssociationOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.RemoveAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveAssociationOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveAssociationOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveAssociationOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationRegionNetworkFirewallPolicyRequest. */
                interface IRemoveAssociationRegionNetworkFirewallPolicyRequest {

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveAssociationRegionNetworkFirewallPolicyRequest. */
                class RemoveAssociationRegionNetworkFirewallPolicyRequest implements IRemoveAssociationRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkFirewallPolicyRequest);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** RemoveAssociationRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveAssociationRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.RemoveAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveAssociationRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveAssociationRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveAssociationRegionNetworkPolicyRequest. */
                interface IRemoveAssociationRegionNetworkPolicyRequest {

                    /** RemoveAssociationRegionNetworkPolicyRequest name */
                    name?: (string|null);

                    /** RemoveAssociationRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** RemoveAssociationRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** RemoveAssociationRegionNetworkPolicyRequest region */
                    region?: (string|null);

                    /** RemoveAssociationRegionNetworkPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveAssociationRegionNetworkPolicyRequest. */
                class RemoveAssociationRegionNetworkPolicyRequest implements IRemoveAssociationRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new RemoveAssociationRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkPolicyRequest);

                    /** RemoveAssociationRegionNetworkPolicyRequest name. */
                    public name?: (string|null);

                    /** RemoveAssociationRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** RemoveAssociationRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** RemoveAssociationRegionNetworkPolicyRequest region. */
                    public region: string;

                    /** RemoveAssociationRegionNetworkPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveAssociationRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveAssociationRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkPolicyRequest): google.cloud.compute.v1beta.RemoveAssociationRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified RemoveAssociationRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveAssociationRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveAssociationRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message RemoveAssociationRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveAssociationRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveAssociationRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveAssociationRegionNetworkPolicyRequest;

                    /**
                     * Decodes a RemoveAssociationRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveAssociationRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveAssociationRegionNetworkPolicyRequest;

                    /**
                     * Verifies a RemoveAssociationRegionNetworkPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveAssociationRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveAssociationRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveAssociationRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveAssociationRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveAssociationRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveAssociationRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveAssociationRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveAssociationRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveHealthCheckTargetPoolRequest. */
                interface IRemoveHealthCheckTargetPoolRequest {

                    /** RemoveHealthCheckTargetPoolRequest project */
                    project?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest region */
                    region?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest targetPoolsRemoveHealthCheckRequestResource */
                    targetPoolsRemoveHealthCheckRequestResource?: (google.cloud.compute.v1beta.ITargetPoolsRemoveHealthCheckRequest|null);
                }

                /** Represents a RemoveHealthCheckTargetPoolRequest. */
                class RemoveHealthCheckTargetPoolRequest implements IRemoveHealthCheckTargetPoolRequest {

                    /**
                     * Constructs a new RemoveHealthCheckTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveHealthCheckTargetPoolRequest);

                    /** RemoveHealthCheckTargetPoolRequest project. */
                    public project: string;

                    /** RemoveHealthCheckTargetPoolRequest region. */
                    public region: string;

                    /** RemoveHealthCheckTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveHealthCheckTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** RemoveHealthCheckTargetPoolRequest targetPoolsRemoveHealthCheckRequestResource. */
                    public targetPoolsRemoveHealthCheckRequestResource?: (google.cloud.compute.v1beta.ITargetPoolsRemoveHealthCheckRequest|null);

                    /**
                     * Creates a new RemoveHealthCheckTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveHealthCheckTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveHealthCheckTargetPoolRequest): google.cloud.compute.v1beta.RemoveHealthCheckTargetPoolRequest;

                    /**
                     * Encodes the specified RemoveHealthCheckTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveHealthCheckTargetPoolRequest.verify|verify} messages.
                     * @param message RemoveHealthCheckTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveHealthCheckTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveHealthCheckTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveHealthCheckTargetPoolRequest.verify|verify} messages.
                     * @param message RemoveHealthCheckTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveHealthCheckTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveHealthCheckTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveHealthCheckTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveHealthCheckTargetPoolRequest;

                    /**
                     * Decodes a RemoveHealthCheckTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveHealthCheckTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveHealthCheckTargetPoolRequest;

                    /**
                     * Verifies a RemoveHealthCheckTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveHealthCheckTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveHealthCheckTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveHealthCheckTargetPoolRequest;

                    /**
                     * Creates a plain object from a RemoveHealthCheckTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message RemoveHealthCheckTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveHealthCheckTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveHealthCheckTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveHealthCheckTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveInstanceTargetPoolRequest. */
                interface IRemoveInstanceTargetPoolRequest {

                    /** RemoveInstanceTargetPoolRequest project */
                    project?: (string|null);

                    /** RemoveInstanceTargetPoolRequest region */
                    region?: (string|null);

                    /** RemoveInstanceTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** RemoveInstanceTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** RemoveInstanceTargetPoolRequest targetPoolsRemoveInstanceRequestResource */
                    targetPoolsRemoveInstanceRequestResource?: (google.cloud.compute.v1beta.ITargetPoolsRemoveInstanceRequest|null);
                }

                /** Represents a RemoveInstanceTargetPoolRequest. */
                class RemoveInstanceTargetPoolRequest implements IRemoveInstanceTargetPoolRequest {

                    /**
                     * Constructs a new RemoveInstanceTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveInstanceTargetPoolRequest);

                    /** RemoveInstanceTargetPoolRequest project. */
                    public project: string;

                    /** RemoveInstanceTargetPoolRequest region. */
                    public region: string;

                    /** RemoveInstanceTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveInstanceTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** RemoveInstanceTargetPoolRequest targetPoolsRemoveInstanceRequestResource. */
                    public targetPoolsRemoveInstanceRequestResource?: (google.cloud.compute.v1beta.ITargetPoolsRemoveInstanceRequest|null);

                    /**
                     * Creates a new RemoveInstanceTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveInstanceTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveInstanceTargetPoolRequest): google.cloud.compute.v1beta.RemoveInstanceTargetPoolRequest;

                    /**
                     * Encodes the specified RemoveInstanceTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveInstanceTargetPoolRequest.verify|verify} messages.
                     * @param message RemoveInstanceTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveInstanceTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveInstanceTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveInstanceTargetPoolRequest.verify|verify} messages.
                     * @param message RemoveInstanceTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveInstanceTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveInstanceTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveInstanceTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveInstanceTargetPoolRequest;

                    /**
                     * Decodes a RemoveInstanceTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveInstanceTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveInstanceTargetPoolRequest;

                    /**
                     * Verifies a RemoveInstanceTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveInstanceTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveInstanceTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveInstanceTargetPoolRequest;

                    /**
                     * Creates a plain object from a RemoveInstanceTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message RemoveInstanceTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveInstanceTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveInstanceTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveInstanceTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveInstancesInstanceGroupRequest. */
                interface IRemoveInstancesInstanceGroupRequest {

                    /** RemoveInstancesInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** RemoveInstancesInstanceGroupRequest instanceGroupsRemoveInstancesRequestResource */
                    instanceGroupsRemoveInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupsRemoveInstancesRequest|null);

                    /** RemoveInstancesInstanceGroupRequest project */
                    project?: (string|null);

                    /** RemoveInstancesInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** RemoveInstancesInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a RemoveInstancesInstanceGroupRequest. */
                class RemoveInstancesInstanceGroupRequest implements IRemoveInstancesInstanceGroupRequest {

                    /**
                     * Constructs a new RemoveInstancesInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveInstancesInstanceGroupRequest);

                    /** RemoveInstancesInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** RemoveInstancesInstanceGroupRequest instanceGroupsRemoveInstancesRequestResource. */
                    public instanceGroupsRemoveInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupsRemoveInstancesRequest|null);

                    /** RemoveInstancesInstanceGroupRequest project. */
                    public project: string;

                    /** RemoveInstancesInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveInstancesInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new RemoveInstancesInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveInstancesInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveInstancesInstanceGroupRequest): google.cloud.compute.v1beta.RemoveInstancesInstanceGroupRequest;

                    /**
                     * Encodes the specified RemoveInstancesInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveInstancesInstanceGroupRequest.verify|verify} messages.
                     * @param message RemoveInstancesInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveInstancesInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveInstancesInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveInstancesInstanceGroupRequest.verify|verify} messages.
                     * @param message RemoveInstancesInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveInstancesInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveInstancesInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveInstancesInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveInstancesInstanceGroupRequest;

                    /**
                     * Decodes a RemoveInstancesInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveInstancesInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveInstancesInstanceGroupRequest;

                    /**
                     * Verifies a RemoveInstancesInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveInstancesInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveInstancesInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveInstancesInstanceGroupRequest;

                    /**
                     * Creates a plain object from a RemoveInstancesInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message RemoveInstancesInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveInstancesInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveInstancesInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveInstancesInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemovePacketMirroringRuleFirewallPolicyRequest. */
                interface IRemovePacketMirroringRuleFirewallPolicyRequest {

                    /** RemovePacketMirroringRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemovePacketMirroringRuleFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemovePacketMirroringRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemovePacketMirroringRuleFirewallPolicyRequest. */
                class RemovePacketMirroringRuleFirewallPolicyRequest implements IRemovePacketMirroringRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new RemovePacketMirroringRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemovePacketMirroringRuleFirewallPolicyRequest);

                    /** RemovePacketMirroringRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemovePacketMirroringRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemovePacketMirroringRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemovePacketMirroringRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemovePacketMirroringRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemovePacketMirroringRuleFirewallPolicyRequest): google.cloud.compute.v1beta.RemovePacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemovePacketMirroringRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemovePacketMirroringRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemovePacketMirroringRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemovePacketMirroringRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemovePacketMirroringRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemovePacketMirroringRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemovePacketMirroringRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemovePacketMirroringRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemovePacketMirroringRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemovePacketMirroringRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemovePacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Decodes a RemovePacketMirroringRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemovePacketMirroringRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemovePacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Verifies a RemovePacketMirroringRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemovePacketMirroringRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemovePacketMirroringRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemovePacketMirroringRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemovePacketMirroringRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemovePacketMirroringRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemovePacketMirroringRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemovePacketMirroringRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemovePacketMirroringRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemovePacketMirroringRuleNetworkFirewallPolicyRequest. */
                interface IRemovePacketMirroringRuleNetworkFirewallPolicyRequest {

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemovePacketMirroringRuleNetworkFirewallPolicyRequest. */
                class RemovePacketMirroringRuleNetworkFirewallPolicyRequest implements IRemovePacketMirroringRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemovePacketMirroringRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemovePacketMirroringRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemovePacketMirroringRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemovePacketMirroringRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.RemovePacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemovePacketMirroringRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemovePacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemovePacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemovePacketMirroringRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemovePacketMirroringRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemovePacketMirroringRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemovePacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemovePacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemovePacketMirroringRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemovePacketMirroringRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemovePacketMirroringRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemovePacketMirroringRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemovePacketMirroringRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemovePeeringNetworkRequest. */
                interface IRemovePeeringNetworkRequest {

                    /** RemovePeeringNetworkRequest network */
                    network?: (string|null);

                    /** RemovePeeringNetworkRequest networksRemovePeeringRequestResource */
                    networksRemovePeeringRequestResource?: (google.cloud.compute.v1beta.INetworksRemovePeeringRequest|null);

                    /** RemovePeeringNetworkRequest project */
                    project?: (string|null);

                    /** RemovePeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemovePeeringNetworkRequest. */
                class RemovePeeringNetworkRequest implements IRemovePeeringNetworkRequest {

                    /**
                     * Constructs a new RemovePeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemovePeeringNetworkRequest);

                    /** RemovePeeringNetworkRequest network. */
                    public network: string;

                    /** RemovePeeringNetworkRequest networksRemovePeeringRequestResource. */
                    public networksRemovePeeringRequestResource?: (google.cloud.compute.v1beta.INetworksRemovePeeringRequest|null);

                    /** RemovePeeringNetworkRequest project. */
                    public project: string;

                    /** RemovePeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemovePeeringNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemovePeeringNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemovePeeringNetworkRequest): google.cloud.compute.v1beta.RemovePeeringNetworkRequest;

                    /**
                     * Encodes the specified RemovePeeringNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message RemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemovePeeringNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message RemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemovePeeringNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemovePeeringNetworkRequest;

                    /**
                     * Decodes a RemovePeeringNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemovePeeringNetworkRequest;

                    /**
                     * Verifies a RemovePeeringNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemovePeeringNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemovePeeringNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemovePeeringNetworkRequest;

                    /**
                     * Creates a plain object from a RemovePeeringNetworkRequest message. Also converts values to other types if specified.
                     * @param message RemovePeeringNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemovePeeringNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemovePeeringNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemovePeeringNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveResourcePoliciesDiskRequest. */
                interface IRemoveResourcePoliciesDiskRequest {

                    /** RemoveResourcePoliciesDiskRequest disk */
                    disk?: (string|null);

                    /** RemoveResourcePoliciesDiskRequest disksRemoveResourcePoliciesRequestResource */
                    disksRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IDisksRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesDiskRequest project */
                    project?: (string|null);

                    /** RemoveResourcePoliciesDiskRequest requestId */
                    requestId?: (string|null);

                    /** RemoveResourcePoliciesDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a RemoveResourcePoliciesDiskRequest. */
                class RemoveResourcePoliciesDiskRequest implements IRemoveResourcePoliciesDiskRequest {

                    /**
                     * Constructs a new RemoveResourcePoliciesDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveResourcePoliciesDiskRequest);

                    /** RemoveResourcePoliciesDiskRequest disk. */
                    public disk: string;

                    /** RemoveResourcePoliciesDiskRequest disksRemoveResourcePoliciesRequestResource. */
                    public disksRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IDisksRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesDiskRequest project. */
                    public project: string;

                    /** RemoveResourcePoliciesDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveResourcePoliciesDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new RemoveResourcePoliciesDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveResourcePoliciesDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveResourcePoliciesDiskRequest): google.cloud.compute.v1beta.RemoveResourcePoliciesDiskRequest;

                    /**
                     * Encodes the specified RemoveResourcePoliciesDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveResourcePoliciesDiskRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveResourcePoliciesDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveResourcePoliciesDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveResourcePoliciesDiskRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveResourcePoliciesDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveResourcePoliciesDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveResourcePoliciesDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveResourcePoliciesDiskRequest;

                    /**
                     * Decodes a RemoveResourcePoliciesDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveResourcePoliciesDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveResourcePoliciesDiskRequest;

                    /**
                     * Verifies a RemoveResourcePoliciesDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveResourcePoliciesDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveResourcePoliciesDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveResourcePoliciesDiskRequest;

                    /**
                     * Creates a plain object from a RemoveResourcePoliciesDiskRequest message. Also converts values to other types if specified.
                     * @param message RemoveResourcePoliciesDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveResourcePoliciesDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveResourcePoliciesDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveResourcePoliciesDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveResourcePoliciesInstanceRequest. */
                interface IRemoveResourcePoliciesInstanceRequest {

                    /** RemoveResourcePoliciesInstanceRequest instance */
                    instance?: (string|null);

                    /** RemoveResourcePoliciesInstanceRequest instancesRemoveResourcePoliciesRequestResource */
                    instancesRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IInstancesRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesInstanceRequest project */
                    project?: (string|null);

                    /** RemoveResourcePoliciesInstanceRequest requestId */
                    requestId?: (string|null);

                    /** RemoveResourcePoliciesInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a RemoveResourcePoliciesInstanceRequest. */
                class RemoveResourcePoliciesInstanceRequest implements IRemoveResourcePoliciesInstanceRequest {

                    /**
                     * Constructs a new RemoveResourcePoliciesInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest);

                    /** RemoveResourcePoliciesInstanceRequest instance. */
                    public instance: string;

                    /** RemoveResourcePoliciesInstanceRequest instancesRemoveResourcePoliciesRequestResource. */
                    public instancesRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IInstancesRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesInstanceRequest project. */
                    public project: string;

                    /** RemoveResourcePoliciesInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveResourcePoliciesInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new RemoveResourcePoliciesInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveResourcePoliciesInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest): google.cloud.compute.v1beta.RemoveResourcePoliciesInstanceRequest;

                    /**
                     * Encodes the specified RemoveResourcePoliciesInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveResourcePoliciesInstanceRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveResourcePoliciesInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveResourcePoliciesInstanceRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveResourcePoliciesInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveResourcePoliciesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveResourcePoliciesInstanceRequest;

                    /**
                     * Decodes a RemoveResourcePoliciesInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveResourcePoliciesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveResourcePoliciesInstanceRequest;

                    /**
                     * Verifies a RemoveResourcePoliciesInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveResourcePoliciesInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveResourcePoliciesInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveResourcePoliciesInstanceRequest;

                    /**
                     * Creates a plain object from a RemoveResourcePoliciesInstanceRequest message. Also converts values to other types if specified.
                     * @param message RemoveResourcePoliciesInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveResourcePoliciesInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveResourcePoliciesInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveResourcePoliciesInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveResourcePoliciesRegionDiskRequest. */
                interface IRemoveResourcePoliciesRegionDiskRequest {

                    /** RemoveResourcePoliciesRegionDiskRequest disk */
                    disk?: (string|null);

                    /** RemoveResourcePoliciesRegionDiskRequest project */
                    project?: (string|null);

                    /** RemoveResourcePoliciesRegionDiskRequest region */
                    region?: (string|null);

                    /** RemoveResourcePoliciesRegionDiskRequest regionDisksRemoveResourcePoliciesRequestResource */
                    regionDisksRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IRegionDisksRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveResourcePoliciesRegionDiskRequest. */
                class RemoveResourcePoliciesRegionDiskRequest implements IRemoveResourcePoliciesRegionDiskRequest {

                    /**
                     * Constructs a new RemoveResourcePoliciesRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveResourcePoliciesRegionDiskRequest);

                    /** RemoveResourcePoliciesRegionDiskRequest disk. */
                    public disk: string;

                    /** RemoveResourcePoliciesRegionDiskRequest project. */
                    public project: string;

                    /** RemoveResourcePoliciesRegionDiskRequest region. */
                    public region: string;

                    /** RemoveResourcePoliciesRegionDiskRequest regionDisksRemoveResourcePoliciesRequestResource. */
                    public regionDisksRemoveResourcePoliciesRequestResource?: (google.cloud.compute.v1beta.IRegionDisksRemoveResourcePoliciesRequest|null);

                    /** RemoveResourcePoliciesRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveResourcePoliciesRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveResourcePoliciesRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveResourcePoliciesRegionDiskRequest): google.cloud.compute.v1beta.RemoveResourcePoliciesRegionDiskRequest;

                    /**
                     * Encodes the specified RemoveResourcePoliciesRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveResourcePoliciesRegionDiskRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveResourcePoliciesRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveResourcePoliciesRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveResourcePoliciesRegionDiskRequest.verify|verify} messages.
                     * @param message RemoveResourcePoliciesRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveResourcePoliciesRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveResourcePoliciesRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveResourcePoliciesRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveResourcePoliciesRegionDiskRequest;

                    /**
                     * Decodes a RemoveResourcePoliciesRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveResourcePoliciesRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveResourcePoliciesRegionDiskRequest;

                    /**
                     * Verifies a RemoveResourcePoliciesRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveResourcePoliciesRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveResourcePoliciesRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveResourcePoliciesRegionDiskRequest;

                    /**
                     * Creates a plain object from a RemoveResourcePoliciesRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message RemoveResourcePoliciesRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveResourcePoliciesRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveResourcePoliciesRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveResourcePoliciesRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleFirewallPolicyRequest. */
                interface IRemoveRuleFirewallPolicyRequest {

                    /** RemoveRuleFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveRuleFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveRuleFirewallPolicyRequest. */
                class RemoveRuleFirewallPolicyRequest implements IRemoveRuleFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveRuleFirewallPolicyRequest);

                    /** RemoveRuleFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveRuleFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveRuleFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveRuleFirewallPolicyRequest): google.cloud.compute.v1beta.RemoveRuleFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveRuleFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveRuleFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveRuleFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveRuleFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveRuleFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveRuleFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveRuleFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleNetworkFirewallPolicyRequest. */
                interface IRemoveRuleNetworkFirewallPolicyRequest {

                    /** RemoveRuleNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveRuleNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemoveRuleNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveRuleNetworkFirewallPolicyRequest. */
                class RemoveRuleNetworkFirewallPolicyRequest implements IRemoveRuleNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveRuleNetworkFirewallPolicyRequest);

                    /** RemoveRuleNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveRuleNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemoveRuleNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveRuleNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveRuleNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.RemoveRuleNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveRuleNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveRuleNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveRuleNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveRuleNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveRuleNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveRuleNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveRuleNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleOrganizationSecurityPolicyRequest. */
                interface IRemoveRuleOrganizationSecurityPolicyRequest {

                    /** RemoveRuleOrganizationSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleOrganizationSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** RemoveRuleOrganizationSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a RemoveRuleOrganizationSecurityPolicyRequest. */
                class RemoveRuleOrganizationSecurityPolicyRequest implements IRemoveRuleOrganizationSecurityPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleOrganizationSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveRuleOrganizationSecurityPolicyRequest);

                    /** RemoveRuleOrganizationSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleOrganizationSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** RemoveRuleOrganizationSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new RemoveRuleOrganizationSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleOrganizationSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveRuleOrganizationSecurityPolicyRequest): google.cloud.compute.v1beta.RemoveRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleOrganizationSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleOrganizationSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleOrganizationSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleOrganizationSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveRuleOrganizationSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Decodes a RemoveRuleOrganizationSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleOrganizationSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Verifies a RemoveRuleOrganizationSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleOrganizationSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleOrganizationSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveRuleOrganizationSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleOrganizationSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleOrganizationSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveRuleOrganizationSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleOrganizationSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleOrganizationSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleRegionNetworkFirewallPolicyRequest. */
                interface IRemoveRuleRegionNetworkFirewallPolicyRequest {

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest firewallPolicy */
                    firewallPolicy?: (string|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveRuleRegionNetworkFirewallPolicyRequest. */
                class RemoveRuleRegionNetworkFirewallPolicyRequest implements IRemoveRuleRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveRuleRegionNetworkFirewallPolicyRequest);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest firewallPolicy. */
                    public firewallPolicy: string;

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** RemoveRuleRegionNetworkFirewallPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveRuleRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveRuleRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.RemoveRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveRuleRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a RemoveRuleRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a RemoveRuleRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveRuleRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveRuleRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleRegionSecurityPolicyRequest. */
                interface IRemoveRuleRegionSecurityPolicyRequest {

                    /** RemoveRuleRegionSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** RemoveRuleRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** RemoveRuleRegionSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a RemoveRuleRegionSecurityPolicyRequest. */
                class RemoveRuleRegionSecurityPolicyRequest implements IRemoveRuleRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveRuleRegionSecurityPolicyRequest);

                    /** RemoveRuleRegionSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** RemoveRuleRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** RemoveRuleRegionSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new RemoveRuleRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveRuleRegionSecurityPolicyRequest): google.cloud.compute.v1beta.RemoveRuleRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveRuleRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveRuleRegionSecurityPolicyRequest;

                    /**
                     * Decodes a RemoveRuleRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveRuleRegionSecurityPolicyRequest;

                    /**
                     * Verifies a RemoveRuleRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveRuleRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveRuleRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveRuleSecurityPolicyRequest. */
                interface IRemoveRuleSecurityPolicyRequest {

                    /** RemoveRuleSecurityPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveRuleSecurityPolicyRequest project */
                    project?: (string|null);

                    /** RemoveRuleSecurityPolicyRequest securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a RemoveRuleSecurityPolicyRequest. */
                class RemoveRuleSecurityPolicyRequest implements IRemoveRuleSecurityPolicyRequest {

                    /**
                     * Constructs a new RemoveRuleSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveRuleSecurityPolicyRequest);

                    /** RemoveRuleSecurityPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveRuleSecurityPolicyRequest project. */
                    public project: string;

                    /** RemoveRuleSecurityPolicyRequest securityPolicy. */
                    public securityPolicy: string;

                    /**
                     * Creates a new RemoveRuleSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveRuleSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveRuleSecurityPolicyRequest): google.cloud.compute.v1beta.RemoveRuleSecurityPolicyRequest;

                    /**
                     * Encodes the specified RemoveRuleSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveRuleSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveRuleSecurityPolicyRequest.verify|verify} messages.
                     * @param message RemoveRuleSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveRuleSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveRuleSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveRuleSecurityPolicyRequest;

                    /**
                     * Decodes a RemoveRuleSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveRuleSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveRuleSecurityPolicyRequest;

                    /**
                     * Verifies a RemoveRuleSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveRuleSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveRuleSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveRuleSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveRuleSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveRuleSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveRuleSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveRuleSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveRuleSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RemoveTrafficClassificationRuleRegionNetworkPolicyRequest. */
                interface IRemoveTrafficClassificationRuleRegionNetworkPolicyRequest {

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicy */
                    networkPolicy?: (string|null);

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest priority */
                    priority?: (number|null);

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest project */
                    project?: (string|null);

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest region */
                    region?: (string|null);

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RemoveTrafficClassificationRuleRegionNetworkPolicyRequest. */
                class RemoveTrafficClassificationRuleRegionNetworkPolicyRequest implements IRemoveTrafficClassificationRuleRegionNetworkPolicyRequest {

                    /**
                     * Constructs a new RemoveTrafficClassificationRuleRegionNetworkPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRemoveTrafficClassificationRuleRegionNetworkPolicyRequest);

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest networkPolicy. */
                    public networkPolicy: string;

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest priority. */
                    public priority?: (number|null);

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest project. */
                    public project: string;

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest region. */
                    public region: string;

                    /** RemoveTrafficClassificationRuleRegionNetworkPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RemoveTrafficClassificationRuleRegionNetworkPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RemoveTrafficClassificationRuleRegionNetworkPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRemoveTrafficClassificationRuleRegionNetworkPolicyRequest): google.cloud.compute.v1beta.RemoveTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Encodes the specified RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RemoveTrafficClassificationRuleRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRemoveTrafficClassificationRuleRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RemoveTrafficClassificationRuleRegionNetworkPolicyRequest.verify|verify} messages.
                     * @param message RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRemoveTrafficClassificationRuleRegionNetworkPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RemoveTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RemoveTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Decodes a RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RemoveTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RemoveTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Verifies a RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RemoveTrafficClassificationRuleRegionNetworkPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RemoveTrafficClassificationRuleRegionNetworkPolicyRequest;

                    /**
                     * Creates a plain object from a RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message. Also converts values to other types if specified.
                     * @param message RemoveTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RemoveTrafficClassificationRuleRegionNetworkPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RemoveTrafficClassificationRuleRegionNetworkPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RemoveTrafficClassificationRuleRegionNetworkPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReportFaultyReservationSubBlockRequest. */
                interface IReportFaultyReservationSubBlockRequest {

                    /** ReportFaultyReservationSubBlockRequest parentName */
                    parentName?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest project */
                    project?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest requestId */
                    requestId?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest reservationSubBlock */
                    reservationSubBlock?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest reservationSubBlocksReportFaultyRequestResource */
                    reservationSubBlocksReportFaultyRequestResource?: (google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequest|null);

                    /** ReportFaultyReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ReportFaultyReservationSubBlockRequest. */
                class ReportFaultyReservationSubBlockRequest implements IReportFaultyReservationSubBlockRequest {

                    /**
                     * Constructs a new ReportFaultyReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReportFaultyReservationSubBlockRequest);

                    /** ReportFaultyReservationSubBlockRequest parentName. */
                    public parentName: string;

                    /** ReportFaultyReservationSubBlockRequest project. */
                    public project: string;

                    /** ReportFaultyReservationSubBlockRequest requestId. */
                    public requestId?: (string|null);

                    /** ReportFaultyReservationSubBlockRequest reservationSubBlock. */
                    public reservationSubBlock: string;

                    /** ReportFaultyReservationSubBlockRequest reservationSubBlocksReportFaultyRequestResource. */
                    public reservationSubBlocksReportFaultyRequestResource?: (google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequest|null);

                    /** ReportFaultyReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ReportFaultyReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReportFaultyReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReportFaultyReservationSubBlockRequest): google.cloud.compute.v1beta.ReportFaultyReservationSubBlockRequest;

                    /**
                     * Encodes the specified ReportFaultyReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ReportFaultyReservationSubBlockRequest.verify|verify} messages.
                     * @param message ReportFaultyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReportFaultyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReportFaultyReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReportFaultyReservationSubBlockRequest.verify|verify} messages.
                     * @param message ReportFaultyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReportFaultyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReportFaultyReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReportFaultyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReportFaultyReservationSubBlockRequest;

                    /**
                     * Decodes a ReportFaultyReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReportFaultyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReportFaultyReservationSubBlockRequest;

                    /**
                     * Verifies a ReportFaultyReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReportFaultyReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReportFaultyReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReportFaultyReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a ReportFaultyReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message ReportFaultyReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReportFaultyReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReportFaultyReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReportFaultyReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReportHostAsFaultyInstanceRequest. */
                interface IReportHostAsFaultyInstanceRequest {

                    /** ReportHostAsFaultyInstanceRequest instance */
                    instance?: (string|null);

                    /** ReportHostAsFaultyInstanceRequest instancesReportHostAsFaultyRequestResource */
                    instancesReportHostAsFaultyRequestResource?: (google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequest|null);

                    /** ReportHostAsFaultyInstanceRequest project */
                    project?: (string|null);

                    /** ReportHostAsFaultyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** ReportHostAsFaultyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ReportHostAsFaultyInstanceRequest. */
                class ReportHostAsFaultyInstanceRequest implements IReportHostAsFaultyInstanceRequest {

                    /**
                     * Constructs a new ReportHostAsFaultyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest);

                    /** ReportHostAsFaultyInstanceRequest instance. */
                    public instance: string;

                    /** ReportHostAsFaultyInstanceRequest instancesReportHostAsFaultyRequestResource. */
                    public instancesReportHostAsFaultyRequestResource?: (google.cloud.compute.v1beta.IInstancesReportHostAsFaultyRequest|null);

                    /** ReportHostAsFaultyInstanceRequest project. */
                    public project: string;

                    /** ReportHostAsFaultyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** ReportHostAsFaultyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ReportHostAsFaultyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReportHostAsFaultyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest): google.cloud.compute.v1beta.ReportHostAsFaultyInstanceRequest;

                    /**
                     * Encodes the specified ReportHostAsFaultyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ReportHostAsFaultyInstanceRequest.verify|verify} messages.
                     * @param message ReportHostAsFaultyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReportHostAsFaultyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReportHostAsFaultyInstanceRequest.verify|verify} messages.
                     * @param message ReportHostAsFaultyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReportHostAsFaultyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReportHostAsFaultyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReportHostAsFaultyInstanceRequest;

                    /**
                     * Decodes a ReportHostAsFaultyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReportHostAsFaultyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReportHostAsFaultyInstanceRequest;

                    /**
                     * Verifies a ReportHostAsFaultyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReportHostAsFaultyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReportHostAsFaultyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReportHostAsFaultyInstanceRequest;

                    /**
                     * Creates a plain object from a ReportHostAsFaultyInstanceRequest message. Also converts values to other types if specified.
                     * @param message ReportHostAsFaultyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReportHostAsFaultyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReportHostAsFaultyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReportHostAsFaultyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RequestMirrorPolicy. */
                interface IRequestMirrorPolicy {

                    /** RequestMirrorPolicy backendService */
                    backendService?: (string|null);

                    /** RequestMirrorPolicy mirrorPercent */
                    mirrorPercent?: (number|null);
                }

                /** Represents a RequestMirrorPolicy. */
                class RequestMirrorPolicy implements IRequestMirrorPolicy {

                    /**
                     * Constructs a new RequestMirrorPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRequestMirrorPolicy);

                    /** RequestMirrorPolicy backendService. */
                    public backendService?: (string|null);

                    /** RequestMirrorPolicy mirrorPercent. */
                    public mirrorPercent?: (number|null);

                    /**
                     * Creates a new RequestMirrorPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RequestMirrorPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRequestMirrorPolicy): google.cloud.compute.v1beta.RequestMirrorPolicy;

                    /**
                     * Encodes the specified RequestMirrorPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.RequestMirrorPolicy.verify|verify} messages.
                     * @param message RequestMirrorPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRequestMirrorPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RequestMirrorPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RequestMirrorPolicy.verify|verify} messages.
                     * @param message RequestMirrorPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRequestMirrorPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RequestMirrorPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RequestMirrorPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RequestMirrorPolicy;

                    /**
                     * Decodes a RequestMirrorPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RequestMirrorPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RequestMirrorPolicy;

                    /**
                     * Verifies a RequestMirrorPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RequestMirrorPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RequestMirrorPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RequestMirrorPolicy;

                    /**
                     * Creates a plain object from a RequestMirrorPolicy message. Also converts values to other types if specified.
                     * @param message RequestMirrorPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RequestMirrorPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RequestMirrorPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RequestMirrorPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RequestRemovePeeringNetworkRequest. */
                interface IRequestRemovePeeringNetworkRequest {

                    /** RequestRemovePeeringNetworkRequest network */
                    network?: (string|null);

                    /** RequestRemovePeeringNetworkRequest networksRequestRemovePeeringRequestResource */
                    networksRequestRemovePeeringRequestResource?: (google.cloud.compute.v1beta.INetworksRequestRemovePeeringRequest|null);

                    /** RequestRemovePeeringNetworkRequest project */
                    project?: (string|null);

                    /** RequestRemovePeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a RequestRemovePeeringNetworkRequest. */
                class RequestRemovePeeringNetworkRequest implements IRequestRemovePeeringNetworkRequest {

                    /**
                     * Constructs a new RequestRemovePeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRequestRemovePeeringNetworkRequest);

                    /** RequestRemovePeeringNetworkRequest network. */
                    public network: string;

                    /** RequestRemovePeeringNetworkRequest networksRequestRemovePeeringRequestResource. */
                    public networksRequestRemovePeeringRequestResource?: (google.cloud.compute.v1beta.INetworksRequestRemovePeeringRequest|null);

                    /** RequestRemovePeeringNetworkRequest project. */
                    public project: string;

                    /** RequestRemovePeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new RequestRemovePeeringNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RequestRemovePeeringNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRequestRemovePeeringNetworkRequest): google.cloud.compute.v1beta.RequestRemovePeeringNetworkRequest;

                    /**
                     * Encodes the specified RequestRemovePeeringNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.RequestRemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message RequestRemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRequestRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RequestRemovePeeringNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RequestRemovePeeringNetworkRequest.verify|verify} messages.
                     * @param message RequestRemovePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRequestRemovePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RequestRemovePeeringNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RequestRemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RequestRemovePeeringNetworkRequest;

                    /**
                     * Decodes a RequestRemovePeeringNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RequestRemovePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RequestRemovePeeringNetworkRequest;

                    /**
                     * Verifies a RequestRemovePeeringNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RequestRemovePeeringNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RequestRemovePeeringNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RequestRemovePeeringNetworkRequest;

                    /**
                     * Creates a plain object from a RequestRemovePeeringNetworkRequest message. Also converts values to other types if specified.
                     * @param message RequestRemovePeeringNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RequestRemovePeeringNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RequestRemovePeeringNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RequestRemovePeeringNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Reservation. */
                interface IReservation {

                    /** Reservation advancedDeploymentControl */
                    advancedDeploymentControl?: (google.cloud.compute.v1beta.IReservationAdvancedDeploymentControl|null);

                    /** Reservation aggregateReservation */
                    aggregateReservation?: (google.cloud.compute.v1beta.IAllocationAggregateReservation|null);

                    /** Reservation commitment */
                    commitment?: (string|null);

                    /** Reservation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Reservation deleteAfterDuration */
                    deleteAfterDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** Reservation deleteAtTime */
                    deleteAtTime?: (string|null);

                    /** Reservation deploymentType */
                    deploymentType?: (string|null);

                    /** Reservation description */
                    description?: (string|null);

                    /** Reservation earlyAccessMaintenance */
                    earlyAccessMaintenance?: (string|null);

                    /** Reservation enableEmergentMaintenance */
                    enableEmergentMaintenance?: (boolean|null);

                    /** Reservation id */
                    id?: (number|Long|string|null);

                    /** Reservation kind */
                    kind?: (string|null);

                    /** Reservation linkedCommitments */
                    linkedCommitments?: (string[]|null);

                    /** Reservation name */
                    name?: (string|null);

                    /** Reservation params */
                    params?: (google.cloud.compute.v1beta.IReservationParams|null);

                    /** Reservation protectionTier */
                    protectionTier?: (string|null);

                    /** Reservation reservationMode */
                    reservationMode?: (string|null);

                    /** Reservation reservationSharingPolicy */
                    reservationSharingPolicy?: (google.cloud.compute.v1beta.IAllocationReservationSharingPolicy|null);

                    /** Reservation resourcePolicies */
                    resourcePolicies?: ({ [k: string]: string }|null);

                    /** Reservation resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1beta.IAllocationResourceStatus|null);

                    /** Reservation satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Reservation schedulingType */
                    schedulingType?: (string|null);

                    /** Reservation selfLink */
                    selfLink?: (string|null);

                    /** Reservation shareSettings */
                    shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** Reservation specificReservation */
                    specificReservation?: (google.cloud.compute.v1beta.IAllocationSpecificSKUReservation|null);

                    /** Reservation specificReservationRequired */
                    specificReservationRequired?: (boolean|null);

                    /** Reservation status */
                    status?: (string|null);

                    /** Reservation zone */
                    zone?: (string|null);
                }

                /** Represents a Reservation. */
                class Reservation implements IReservation {

                    /**
                     * Constructs a new Reservation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservation);

                    /** Reservation advancedDeploymentControl. */
                    public advancedDeploymentControl?: (google.cloud.compute.v1beta.IReservationAdvancedDeploymentControl|null);

                    /** Reservation aggregateReservation. */
                    public aggregateReservation?: (google.cloud.compute.v1beta.IAllocationAggregateReservation|null);

                    /** Reservation commitment. */
                    public commitment?: (string|null);

                    /** Reservation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Reservation deleteAfterDuration. */
                    public deleteAfterDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** Reservation deleteAtTime. */
                    public deleteAtTime?: (string|null);

                    /** Reservation deploymentType. */
                    public deploymentType?: (string|null);

                    /** Reservation description. */
                    public description?: (string|null);

                    /** Reservation earlyAccessMaintenance. */
                    public earlyAccessMaintenance?: (string|null);

                    /** Reservation enableEmergentMaintenance. */
                    public enableEmergentMaintenance?: (boolean|null);

                    /** Reservation id. */
                    public id?: (number|Long|string|null);

                    /** Reservation kind. */
                    public kind?: (string|null);

                    /** Reservation linkedCommitments. */
                    public linkedCommitments: string[];

                    /** Reservation name. */
                    public name?: (string|null);

                    /** Reservation params. */
                    public params?: (google.cloud.compute.v1beta.IReservationParams|null);

                    /** Reservation protectionTier. */
                    public protectionTier?: (string|null);

                    /** Reservation reservationMode. */
                    public reservationMode?: (string|null);

                    /** Reservation reservationSharingPolicy. */
                    public reservationSharingPolicy?: (google.cloud.compute.v1beta.IAllocationReservationSharingPolicy|null);

                    /** Reservation resourcePolicies. */
                    public resourcePolicies: { [k: string]: string };

                    /** Reservation resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1beta.IAllocationResourceStatus|null);

                    /** Reservation satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Reservation schedulingType. */
                    public schedulingType?: (string|null);

                    /** Reservation selfLink. */
                    public selfLink?: (string|null);

                    /** Reservation shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** Reservation specificReservation. */
                    public specificReservation?: (google.cloud.compute.v1beta.IAllocationSpecificSKUReservation|null);

                    /** Reservation specificReservationRequired. */
                    public specificReservationRequired?: (boolean|null);

                    /** Reservation status. */
                    public status?: (string|null);

                    /** Reservation zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Reservation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Reservation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservation): google.cloud.compute.v1beta.Reservation;

                    /**
                     * Encodes the specified Reservation message. Does not implicitly {@link google.cloud.compute.v1beta.Reservation.verify|verify} messages.
                     * @param message Reservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Reservation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Reservation.verify|verify} messages.
                     * @param message Reservation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Reservation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Reservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Reservation;

                    /**
                     * Decodes a Reservation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Reservation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Reservation;

                    /**
                     * Verifies a Reservation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Reservation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Reservation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Reservation;

                    /**
                     * Creates a plain object from a Reservation message. Also converts values to other types if specified.
                     * @param message Reservation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Reservation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Reservation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Reservation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Reservation {

                    /** DeploymentType enum. */
                    enum DeploymentType {
                        UNDEFINED_DEPLOYMENT_TYPE = 0,
                        DENSE = 64932607,
                        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180,
                        FLEXIBLE = 379880395
                    }

                    /** EarlyAccessMaintenance enum. */
                    enum EarlyAccessMaintenance {
                        UNDEFINED_EARLY_ACCESS_MAINTENANCE = 0,
                        NO_EARLY_ACCESS = 220751774,
                        WAVE1 = 82367576,
                        WAVE2 = 82367577
                    }

                    /** ProtectionTier enum. */
                    enum ProtectionTier {
                        UNDEFINED_PROTECTION_TIER = 0,
                        CAPACITY_OPTIMIZED = 17430466,
                        PROTECTION_TIER_UNSPECIFIED = 262261984,
                        STANDARD = 484642493
                    }

                    /** ReservationMode enum. */
                    enum ReservationMode {
                        UNDEFINED_RESERVATION_MODE = 0,
                        CALENDAR = 67431230,
                        DEFAULT = 115302945,
                        RESERVATION_MODE_UNSPECIFIED = 233810606
                    }

                    /** SchedulingType enum. */
                    enum SchedulingType {
                        UNDEFINED_SCHEDULING_TYPE = 0,
                        GROUPED = 474540862,
                        GROUP_MAINTENANCE_TYPE_UNSPECIFIED = 447183678,
                        INDEPENDENT = 127011674
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963,
                        UPDATING = 494614342
                    }
                }

                /** Properties of a ReservationAdvancedDeploymentControl. */
                interface IReservationAdvancedDeploymentControl {

                    /** ReservationAdvancedDeploymentControl reservationOperationalMode */
                    reservationOperationalMode?: (string|null);
                }

                /** Represents a ReservationAdvancedDeploymentControl. */
                class ReservationAdvancedDeploymentControl implements IReservationAdvancedDeploymentControl {

                    /**
                     * Constructs a new ReservationAdvancedDeploymentControl.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationAdvancedDeploymentControl);

                    /** ReservationAdvancedDeploymentControl reservationOperationalMode. */
                    public reservationOperationalMode?: (string|null);

                    /**
                     * Creates a new ReservationAdvancedDeploymentControl instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationAdvancedDeploymentControl instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationAdvancedDeploymentControl): google.cloud.compute.v1beta.ReservationAdvancedDeploymentControl;

                    /**
                     * Encodes the specified ReservationAdvancedDeploymentControl message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationAdvancedDeploymentControl.verify|verify} messages.
                     * @param message ReservationAdvancedDeploymentControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationAdvancedDeploymentControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationAdvancedDeploymentControl message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationAdvancedDeploymentControl.verify|verify} messages.
                     * @param message ReservationAdvancedDeploymentControl message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationAdvancedDeploymentControl, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationAdvancedDeploymentControl message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationAdvancedDeploymentControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationAdvancedDeploymentControl;

                    /**
                     * Decodes a ReservationAdvancedDeploymentControl message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationAdvancedDeploymentControl
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationAdvancedDeploymentControl;

                    /**
                     * Verifies a ReservationAdvancedDeploymentControl message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationAdvancedDeploymentControl message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationAdvancedDeploymentControl
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationAdvancedDeploymentControl;

                    /**
                     * Creates a plain object from a ReservationAdvancedDeploymentControl message. Also converts values to other types if specified.
                     * @param message ReservationAdvancedDeploymentControl
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationAdvancedDeploymentControl, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationAdvancedDeploymentControl to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationAdvancedDeploymentControl
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationAdvancedDeploymentControl {

                    /** ReservationOperationalMode enum. */
                    enum ReservationOperationalMode {
                        UNDEFINED_RESERVATION_OPERATIONAL_MODE = 0,
                        ALL_CAPACITY = 500029880,
                        HIGHLY_AVAILABLE_CAPACITY = 110861600,
                        RESERVATION_OPERATIONAL_MODE_UNSPECIFIED = 194296603
                    }
                }

                /** Properties of a ReservationAffinity. */
                interface IReservationAffinity {

                    /** ReservationAffinity consumeReservationType */
                    consumeReservationType?: (string|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.cloud.compute.v1beta.IReservationAffinity);

                    /** ReservationAffinity consumeReservationType. */
                    public consumeReservationType?: (string|null);

                    /** ReservationAffinity key. */
                    public key?: (string|null);

                    /** 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.cloud.compute.v1beta.IReservationAffinity): google.cloud.compute.v1beta.ReservationAffinity;

                    /**
                     * Encodes the specified ReservationAffinity message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IReservationAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationAffinity message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 {

                    /** ConsumeReservationType enum. */
                    enum ConsumeReservationType {
                        UNDEFINED_CONSUME_RESERVATION_TYPE = 0,
                        ANY_RESERVATION = 200008121,
                        NO_RESERVATION = 169322030,
                        SPECIFIC_RESERVATION = 229889055,
                        SPECIFIC_THEN_ANY_RESERVATION = 37025924,
                        SPECIFIC_THEN_NO_RESERVATION = 406522371,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a ReservationAggregatedList. */
                interface IReservationAggregatedList {

                    /** ReservationAggregatedList id */
                    id?: (string|null);

                    /** ReservationAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IReservationsScopedList }|null);

                    /** ReservationAggregatedList kind */
                    kind?: (string|null);

                    /** ReservationAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** ReservationAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** ReservationAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ReservationAggregatedList. */
                class ReservationAggregatedList implements IReservationAggregatedList {

                    /**
                     * Constructs a new ReservationAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationAggregatedList);

                    /** ReservationAggregatedList id. */
                    public id?: (string|null);

                    /** ReservationAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IReservationsScopedList };

                    /** ReservationAggregatedList kind. */
                    public kind?: (string|null);

                    /** ReservationAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationAggregatedList unreachables. */
                    public unreachables: string[];

                    /** ReservationAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ReservationAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationAggregatedList): google.cloud.compute.v1beta.ReservationAggregatedList;

                    /**
                     * Encodes the specified ReservationAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationAggregatedList.verify|verify} messages.
                     * @param message ReservationAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationAggregatedList.verify|verify} messages.
                     * @param message ReservationAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationAggregatedList;

                    /**
                     * Decodes a ReservationAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationAggregatedList;

                    /**
                     * Verifies a ReservationAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationAggregatedList;

                    /**
                     * Creates a plain object from a ReservationAggregatedList message. Also converts values to other types if specified.
                     * @param message ReservationAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlock. */
                interface IReservationBlock {

                    /** ReservationBlock count */
                    count?: (number|null);

                    /** ReservationBlock creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ReservationBlock healthInfo */
                    healthInfo?: (google.cloud.compute.v1beta.IReservationBlockHealthInfo|null);

                    /** ReservationBlock id */
                    id?: (number|Long|string|null);

                    /** ReservationBlock inUseCount */
                    inUseCount?: (number|null);

                    /** ReservationBlock inUseHostCount */
                    inUseHostCount?: (number|null);

                    /** ReservationBlock kind */
                    kind?: (string|null);

                    /** ReservationBlock name */
                    name?: (string|null);

                    /** ReservationBlock physicalTopology */
                    physicalTopology?: (google.cloud.compute.v1beta.IReservationBlockPhysicalTopology|null);

                    /** ReservationBlock reservationMaintenance */
                    reservationMaintenance?: (google.cloud.compute.v1beta.IGroupMaintenanceInfo|null);

                    /** ReservationBlock reservationSubBlockCount */
                    reservationSubBlockCount?: (number|null);

                    /** ReservationBlock reservationSubBlockInUseCount */
                    reservationSubBlockInUseCount?: (number|null);

                    /** ReservationBlock selfLink */
                    selfLink?: (string|null);

                    /** ReservationBlock selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** ReservationBlock status */
                    status?: (string|null);

                    /** ReservationBlock zone */
                    zone?: (string|null);
                }

                /** Represents a ReservationBlock. */
                class ReservationBlock implements IReservationBlock {

                    /**
                     * Constructs a new ReservationBlock.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationBlock);

                    /** ReservationBlock count. */
                    public count?: (number|null);

                    /** ReservationBlock creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ReservationBlock healthInfo. */
                    public healthInfo?: (google.cloud.compute.v1beta.IReservationBlockHealthInfo|null);

                    /** ReservationBlock id. */
                    public id?: (number|Long|string|null);

                    /** ReservationBlock inUseCount. */
                    public inUseCount?: (number|null);

                    /** ReservationBlock inUseHostCount. */
                    public inUseHostCount?: (number|null);

                    /** ReservationBlock kind. */
                    public kind?: (string|null);

                    /** ReservationBlock name. */
                    public name?: (string|null);

                    /** ReservationBlock physicalTopology. */
                    public physicalTopology?: (google.cloud.compute.v1beta.IReservationBlockPhysicalTopology|null);

                    /** ReservationBlock reservationMaintenance. */
                    public reservationMaintenance?: (google.cloud.compute.v1beta.IGroupMaintenanceInfo|null);

                    /** ReservationBlock reservationSubBlockCount. */
                    public reservationSubBlockCount?: (number|null);

                    /** ReservationBlock reservationSubBlockInUseCount. */
                    public reservationSubBlockInUseCount?: (number|null);

                    /** ReservationBlock selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationBlock selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** ReservationBlock status. */
                    public status?: (string|null);

                    /** ReservationBlock zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new ReservationBlock instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlock instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationBlock): google.cloud.compute.v1beta.ReservationBlock;

                    /**
                     * Encodes the specified ReservationBlock message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlock.verify|verify} messages.
                     * @param message ReservationBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlock message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlock.verify|verify} messages.
                     * @param message ReservationBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlock message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationBlock;

                    /**
                     * Decodes a ReservationBlock message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationBlock;

                    /**
                     * Verifies a ReservationBlock message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlock message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlock
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationBlock;

                    /**
                     * Creates a plain object from a ReservationBlock message. Also converts values to other types if specified.
                     * @param message ReservationBlock
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationBlock, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlock to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlock
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationBlock {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a ReservationBlockHealthInfo. */
                interface IReservationBlockHealthInfo {

                    /** ReservationBlockHealthInfo degradedSubBlockCount */
                    degradedSubBlockCount?: (number|null);

                    /** ReservationBlockHealthInfo healthStatus */
                    healthStatus?: (string|null);

                    /** ReservationBlockHealthInfo healthySubBlockCount */
                    healthySubBlockCount?: (number|null);
                }

                /** Represents a ReservationBlockHealthInfo. */
                class ReservationBlockHealthInfo implements IReservationBlockHealthInfo {

                    /**
                     * Constructs a new ReservationBlockHealthInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationBlockHealthInfo);

                    /** ReservationBlockHealthInfo degradedSubBlockCount. */
                    public degradedSubBlockCount?: (number|null);

                    /** ReservationBlockHealthInfo healthStatus. */
                    public healthStatus?: (string|null);

                    /** ReservationBlockHealthInfo healthySubBlockCount. */
                    public healthySubBlockCount?: (number|null);

                    /**
                     * Creates a new ReservationBlockHealthInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlockHealthInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationBlockHealthInfo): google.cloud.compute.v1beta.ReservationBlockHealthInfo;

                    /**
                     * Encodes the specified ReservationBlockHealthInfo message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlockHealthInfo.verify|verify} messages.
                     * @param message ReservationBlockHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationBlockHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlockHealthInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlockHealthInfo.verify|verify} messages.
                     * @param message ReservationBlockHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationBlockHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlockHealthInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlockHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationBlockHealthInfo;

                    /**
                     * Decodes a ReservationBlockHealthInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlockHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationBlockHealthInfo;

                    /**
                     * Verifies a ReservationBlockHealthInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlockHealthInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlockHealthInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationBlockHealthInfo;

                    /**
                     * Creates a plain object from a ReservationBlockHealthInfo message. Also converts values to other types if specified.
                     * @param message ReservationBlockHealthInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationBlockHealthInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlockHealthInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlockHealthInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationBlockHealthInfo {

                    /** HealthStatus enum. */
                    enum HealthStatus {
                        UNDEFINED_HEALTH_STATUS = 0,
                        DEGRADED = 396890926,
                        HEALTHY = 439801213,
                        HEALTH_STATUS_UNSPECIFIED = 482246925
                    }
                }

                /** Properties of a ReservationBlockPhysicalTopology. */
                interface IReservationBlockPhysicalTopology {

                    /** ReservationBlockPhysicalTopology block */
                    block?: (string|null);

                    /** ReservationBlockPhysicalTopology cluster */
                    cluster?: (string|null);

                    /** ReservationBlockPhysicalTopology instances */
                    instances?: (google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstance[]|null);
                }

                /** Represents a ReservationBlockPhysicalTopology. */
                class ReservationBlockPhysicalTopology implements IReservationBlockPhysicalTopology {

                    /**
                     * Constructs a new ReservationBlockPhysicalTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationBlockPhysicalTopology);

                    /** ReservationBlockPhysicalTopology block. */
                    public block?: (string|null);

                    /** ReservationBlockPhysicalTopology cluster. */
                    public cluster?: (string|null);

                    /** ReservationBlockPhysicalTopology instances. */
                    public instances: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstance[];

                    /**
                     * Creates a new ReservationBlockPhysicalTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlockPhysicalTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationBlockPhysicalTopology): google.cloud.compute.v1beta.ReservationBlockPhysicalTopology;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopology message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlockPhysicalTopology.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationBlockPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlockPhysicalTopology.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationBlockPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlockPhysicalTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlockPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationBlockPhysicalTopology;

                    /**
                     * Decodes a ReservationBlockPhysicalTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlockPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationBlockPhysicalTopology;

                    /**
                     * Verifies a ReservationBlockPhysicalTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlockPhysicalTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlockPhysicalTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationBlockPhysicalTopology;

                    /**
                     * Creates a plain object from a ReservationBlockPhysicalTopology message. Also converts values to other types if specified.
                     * @param message ReservationBlockPhysicalTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationBlockPhysicalTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlockPhysicalTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlockPhysicalTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlockPhysicalTopologyInstance. */
                interface IReservationBlockPhysicalTopologyInstance {

                    /** ReservationBlockPhysicalTopologyInstance instanceId */
                    instanceId?: (number|Long|string|null);

                    /** ReservationBlockPhysicalTopologyInstance physicalHostTopology */
                    physicalHostTopology?: (google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology|null);

                    /** ReservationBlockPhysicalTopologyInstance projectId */
                    projectId?: (number|Long|string|null);
                }

                /** Represents a ReservationBlockPhysicalTopologyInstance. */
                class ReservationBlockPhysicalTopologyInstance implements IReservationBlockPhysicalTopologyInstance {

                    /**
                     * Constructs a new ReservationBlockPhysicalTopologyInstance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstance);

                    /** ReservationBlockPhysicalTopologyInstance instanceId. */
                    public instanceId?: (number|Long|string|null);

                    /** ReservationBlockPhysicalTopologyInstance physicalHostTopology. */
                    public physicalHostTopology?: (google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology|null);

                    /** ReservationBlockPhysicalTopologyInstance projectId. */
                    public projectId?: (number|Long|string|null);

                    /**
                     * Creates a new ReservationBlockPhysicalTopologyInstance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlockPhysicalTopologyInstance instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstance): google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstance;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopologyInstance message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstance.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopologyInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopologyInstance message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstance.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopologyInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlockPhysicalTopologyInstance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlockPhysicalTopologyInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstance;

                    /**
                     * Decodes a ReservationBlockPhysicalTopologyInstance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlockPhysicalTopologyInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstance;

                    /**
                     * Verifies a ReservationBlockPhysicalTopologyInstance message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlockPhysicalTopologyInstance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlockPhysicalTopologyInstance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstance;

                    /**
                     * Creates a plain object from a ReservationBlockPhysicalTopologyInstance message. Also converts values to other types if specified.
                     * @param message ReservationBlockPhysicalTopologyInstance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlockPhysicalTopologyInstance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlockPhysicalTopologyInstance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology. */
                interface IReservationBlockPhysicalTopologyInstancePhysicalHostTopology {

                    /** ReservationBlockPhysicalTopologyInstancePhysicalHostTopology host */
                    host?: (string|null);

                    /** ReservationBlockPhysicalTopologyInstancePhysicalHostTopology subBlock */
                    subBlock?: (string|null);
                }

                /** Represents a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology. */
                class ReservationBlockPhysicalTopologyInstancePhysicalHostTopology implements IReservationBlockPhysicalTopologyInstancePhysicalHostTopology {

                    /**
                     * Constructs a new ReservationBlockPhysicalTopologyInstancePhysicalHostTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology);

                    /** ReservationBlockPhysicalTopologyInstancePhysicalHostTopology host. */
                    public host?: (string|null);

                    /** ReservationBlockPhysicalTopologyInstancePhysicalHostTopology subBlock. */
                    public subBlock?: (string|null);

                    /**
                     * Creates a new ReservationBlockPhysicalTopologyInstancePhysicalHostTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlockPhysicalTopologyInstancePhysicalHostTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology): google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology.verify|verify} messages.
                     * @param message ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationBlockPhysicalTopologyInstancePhysicalHostTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology;

                    /**
                     * Decodes a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology;

                    /**
                     * Verifies a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology;

                    /**
                     * Creates a plain object from a ReservationBlockPhysicalTopologyInstancePhysicalHostTopology message. Also converts values to other types if specified.
                     * @param message ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationBlockPhysicalTopologyInstancePhysicalHostTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlockPhysicalTopologyInstancePhysicalHostTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlockPhysicalTopologyInstancePhysicalHostTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlocksGetResponse. */
                interface IReservationBlocksGetResponse {

                    /** ReservationBlocksGetResponse resource */
                    resource?: (google.cloud.compute.v1beta.IReservationBlock|null);
                }

                /** Represents a ReservationBlocksGetResponse. */
                class ReservationBlocksGetResponse implements IReservationBlocksGetResponse {

                    /**
                     * Constructs a new ReservationBlocksGetResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationBlocksGetResponse);

                    /** ReservationBlocksGetResponse resource. */
                    public resource?: (google.cloud.compute.v1beta.IReservationBlock|null);

                    /**
                     * Creates a new ReservationBlocksGetResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlocksGetResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationBlocksGetResponse): google.cloud.compute.v1beta.ReservationBlocksGetResponse;

                    /**
                     * Encodes the specified ReservationBlocksGetResponse message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlocksGetResponse.verify|verify} messages.
                     * @param message ReservationBlocksGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationBlocksGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlocksGetResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlocksGetResponse.verify|verify} messages.
                     * @param message ReservationBlocksGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationBlocksGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlocksGetResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlocksGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationBlocksGetResponse;

                    /**
                     * Decodes a ReservationBlocksGetResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlocksGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationBlocksGetResponse;

                    /**
                     * Verifies a ReservationBlocksGetResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlocksGetResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlocksGetResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationBlocksGetResponse;

                    /**
                     * Creates a plain object from a ReservationBlocksGetResponse message. Also converts values to other types if specified.
                     * @param message ReservationBlocksGetResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationBlocksGetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlocksGetResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlocksGetResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationBlocksListResponse. */
                interface IReservationBlocksListResponse {

                    /** ReservationBlocksListResponse id */
                    id?: (string|null);

                    /** ReservationBlocksListResponse items */
                    items?: (google.cloud.compute.v1beta.IReservationBlock[]|null);

                    /** ReservationBlocksListResponse kind */
                    kind?: (string|null);

                    /** ReservationBlocksListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationBlocksListResponse selfLink */
                    selfLink?: (string|null);

                    /** ReservationBlocksListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ReservationBlocksListResponse. */
                class ReservationBlocksListResponse implements IReservationBlocksListResponse {

                    /**
                     * Constructs a new ReservationBlocksListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationBlocksListResponse);

                    /** ReservationBlocksListResponse id. */
                    public id?: (string|null);

                    /** ReservationBlocksListResponse items. */
                    public items: google.cloud.compute.v1beta.IReservationBlock[];

                    /** ReservationBlocksListResponse kind. */
                    public kind?: (string|null);

                    /** ReservationBlocksListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationBlocksListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationBlocksListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ReservationBlocksListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationBlocksListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationBlocksListResponse): google.cloud.compute.v1beta.ReservationBlocksListResponse;

                    /**
                     * Encodes the specified ReservationBlocksListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlocksListResponse.verify|verify} messages.
                     * @param message ReservationBlocksListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationBlocksListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationBlocksListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationBlocksListResponse.verify|verify} messages.
                     * @param message ReservationBlocksListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationBlocksListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationBlocksListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationBlocksListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationBlocksListResponse;

                    /**
                     * Decodes a ReservationBlocksListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationBlocksListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationBlocksListResponse;

                    /**
                     * Verifies a ReservationBlocksListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationBlocksListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationBlocksListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationBlocksListResponse;

                    /**
                     * Creates a plain object from a ReservationBlocksListResponse message. Also converts values to other types if specified.
                     * @param message ReservationBlocksListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationBlocksListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationBlocksListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationBlocksListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationList. */
                interface IReservationList {

                    /** ReservationList id */
                    id?: (string|null);

                    /** ReservationList items */
                    items?: (google.cloud.compute.v1beta.IReservation[]|null);

                    /** ReservationList kind */
                    kind?: (string|null);

                    /** ReservationList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationList selfLink */
                    selfLink?: (string|null);

                    /** ReservationList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ReservationList. */
                class ReservationList implements IReservationList {

                    /**
                     * Constructs a new ReservationList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationList);

                    /** ReservationList id. */
                    public id?: (string|null);

                    /** ReservationList items. */
                    public items: google.cloud.compute.v1beta.IReservation[];

                    /** ReservationList kind. */
                    public kind?: (string|null);

                    /** ReservationList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationList selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ReservationList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationList): google.cloud.compute.v1beta.ReservationList;

                    /**
                     * Encodes the specified ReservationList message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationList.verify|verify} messages.
                     * @param message ReservationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationList.verify|verify} messages.
                     * @param message ReservationList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationList;

                    /**
                     * Decodes a ReservationList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationList;

                    /**
                     * Verifies a ReservationList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationList;

                    /**
                     * Creates a plain object from a ReservationList message. Also converts values to other types if specified.
                     * @param message ReservationList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationParams. */
                interface IReservationParams {

                    /** ReservationParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a ReservationParams. */
                class ReservationParams implements IReservationParams {

                    /**
                     * Constructs a new ReservationParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationParams);

                    /** ReservationParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new ReservationParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationParams): google.cloud.compute.v1beta.ReservationParams;

                    /**
                     * Encodes the specified ReservationParams message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationParams.verify|verify} messages.
                     * @param message ReservationParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationParams.verify|verify} messages.
                     * @param message ReservationParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationParams;

                    /**
                     * Decodes a ReservationParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationParams;

                    /**
                     * Verifies a ReservationParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationParams;

                    /**
                     * Creates a plain object from a ReservationParams message. Also converts values to other types if specified.
                     * @param message ReservationParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSlot. */
                interface IReservationSlot {

                    /** ReservationSlot creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ReservationSlot id */
                    id?: (number|Long|string|null);

                    /** ReservationSlot kind */
                    kind?: (string|null);

                    /** ReservationSlot name */
                    name?: (string|null);

                    /** ReservationSlot physicalTopology */
                    physicalTopology?: (google.cloud.compute.v1beta.IReservationSlotPhysicalTopology|null);

                    /** ReservationSlot selfLink */
                    selfLink?: (string|null);

                    /** ReservationSlot selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** ReservationSlot shareSettings */
                    shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** ReservationSlot state */
                    state?: (string|null);

                    /** ReservationSlot status */
                    status?: (google.cloud.compute.v1beta.IReservationSlotStatus|null);

                    /** ReservationSlot zone */
                    zone?: (string|null);
                }

                /** Represents a ReservationSlot. */
                class ReservationSlot implements IReservationSlot {

                    /**
                     * Constructs a new ReservationSlot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSlot);

                    /** ReservationSlot creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ReservationSlot id. */
                    public id?: (number|Long|string|null);

                    /** ReservationSlot kind. */
                    public kind?: (string|null);

                    /** ReservationSlot name. */
                    public name?: (string|null);

                    /** ReservationSlot physicalTopology. */
                    public physicalTopology?: (google.cloud.compute.v1beta.IReservationSlotPhysicalTopology|null);

                    /** ReservationSlot selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationSlot selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** ReservationSlot shareSettings. */
                    public shareSettings?: (google.cloud.compute.v1beta.IShareSettings|null);

                    /** ReservationSlot state. */
                    public state?: (string|null);

                    /** ReservationSlot status. */
                    public status?: (google.cloud.compute.v1beta.IReservationSlotStatus|null);

                    /** ReservationSlot zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new ReservationSlot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlot instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSlot): google.cloud.compute.v1beta.ReservationSlot;

                    /**
                     * Encodes the specified ReservationSlot message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlot.verify|verify} messages.
                     * @param message ReservationSlot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSlot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlot message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlot.verify|verify} messages.
                     * @param message ReservationSlot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSlot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSlot;

                    /**
                     * Decodes a ReservationSlot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSlot;

                    /**
                     * Verifies a ReservationSlot message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlot
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSlot;

                    /**
                     * Creates a plain object from a ReservationSlot message. Also converts values to other types if specified.
                     * @param message ReservationSlot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSlot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSlot {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        STATE_UNSPECIFIED = 470755401,
                        UNAVAILABLE = 413756464
                    }
                }

                /** Properties of a ReservationSlotPhysicalTopology. */
                interface IReservationSlotPhysicalTopology {

                    /** ReservationSlotPhysicalTopology block */
                    block?: (string|null);

                    /** ReservationSlotPhysicalTopology cluster */
                    cluster?: (string|null);

                    /** ReservationSlotPhysicalTopology host */
                    host?: (string|null);

                    /** ReservationSlotPhysicalTopology subBlock */
                    subBlock?: (string|null);
                }

                /** Represents a ReservationSlotPhysicalTopology. */
                class ReservationSlotPhysicalTopology implements IReservationSlotPhysicalTopology {

                    /**
                     * Constructs a new ReservationSlotPhysicalTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSlotPhysicalTopology);

                    /** ReservationSlotPhysicalTopology block. */
                    public block?: (string|null);

                    /** ReservationSlotPhysicalTopology cluster. */
                    public cluster?: (string|null);

                    /** ReservationSlotPhysicalTopology host. */
                    public host?: (string|null);

                    /** ReservationSlotPhysicalTopology subBlock. */
                    public subBlock?: (string|null);

                    /**
                     * Creates a new ReservationSlotPhysicalTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotPhysicalTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSlotPhysicalTopology): google.cloud.compute.v1beta.ReservationSlotPhysicalTopology;

                    /**
                     * Encodes the specified ReservationSlotPhysicalTopology message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotPhysicalTopology.verify|verify} messages.
                     * @param message ReservationSlotPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSlotPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotPhysicalTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotPhysicalTopology.verify|verify} messages.
                     * @param message ReservationSlotPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSlotPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotPhysicalTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSlotPhysicalTopology;

                    /**
                     * Decodes a ReservationSlotPhysicalTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSlotPhysicalTopology;

                    /**
                     * Verifies a ReservationSlotPhysicalTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotPhysicalTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotPhysicalTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSlotPhysicalTopology;

                    /**
                     * Creates a plain object from a ReservationSlotPhysicalTopology message. Also converts values to other types if specified.
                     * @param message ReservationSlotPhysicalTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSlotPhysicalTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotPhysicalTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotPhysicalTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSlotStatus. */
                interface IReservationSlotStatus {

                    /** ReservationSlotStatus physicalTopology */
                    physicalTopology?: (google.cloud.compute.v1beta.IReservationSlotPhysicalTopology|null);

                    /** ReservationSlotStatus rdmaIpAddresses */
                    rdmaIpAddresses?: (string[]|null);

                    /** ReservationSlotStatus runningInstances */
                    runningInstances?: (string[]|null);
                }

                /** Represents a ReservationSlotStatus. */
                class ReservationSlotStatus implements IReservationSlotStatus {

                    /**
                     * Constructs a new ReservationSlotStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSlotStatus);

                    /** ReservationSlotStatus physicalTopology. */
                    public physicalTopology?: (google.cloud.compute.v1beta.IReservationSlotPhysicalTopology|null);

                    /** ReservationSlotStatus rdmaIpAddresses. */
                    public rdmaIpAddresses: string[];

                    /** ReservationSlotStatus runningInstances. */
                    public runningInstances: string[];

                    /**
                     * Creates a new ReservationSlotStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSlotStatus): google.cloud.compute.v1beta.ReservationSlotStatus;

                    /**
                     * Encodes the specified ReservationSlotStatus message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotStatus.verify|verify} messages.
                     * @param message ReservationSlotStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSlotStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotStatus.verify|verify} messages.
                     * @param message ReservationSlotStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSlotStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSlotStatus;

                    /**
                     * Decodes a ReservationSlotStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSlotStatus;

                    /**
                     * Verifies a ReservationSlotStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSlotStatus;

                    /**
                     * Creates a plain object from a ReservationSlotStatus message. Also converts values to other types if specified.
                     * @param message ReservationSlotStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSlotStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSlotsGetResponse. */
                interface IReservationSlotsGetResponse {

                    /** ReservationSlotsGetResponse resource */
                    resource?: (google.cloud.compute.v1beta.IReservationSlot|null);
                }

                /** Represents a ReservationSlotsGetResponse. */
                class ReservationSlotsGetResponse implements IReservationSlotsGetResponse {

                    /**
                     * Constructs a new ReservationSlotsGetResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSlotsGetResponse);

                    /** ReservationSlotsGetResponse resource. */
                    public resource?: (google.cloud.compute.v1beta.IReservationSlot|null);

                    /**
                     * Creates a new ReservationSlotsGetResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotsGetResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSlotsGetResponse): google.cloud.compute.v1beta.ReservationSlotsGetResponse;

                    /**
                     * Encodes the specified ReservationSlotsGetResponse message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotsGetResponse.verify|verify} messages.
                     * @param message ReservationSlotsGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSlotsGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotsGetResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotsGetResponse.verify|verify} messages.
                     * @param message ReservationSlotsGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSlotsGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotsGetResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotsGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSlotsGetResponse;

                    /**
                     * Decodes a ReservationSlotsGetResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotsGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSlotsGetResponse;

                    /**
                     * Verifies a ReservationSlotsGetResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotsGetResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotsGetResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSlotsGetResponse;

                    /**
                     * Creates a plain object from a ReservationSlotsGetResponse message. Also converts values to other types if specified.
                     * @param message ReservationSlotsGetResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSlotsGetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotsGetResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotsGetResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSlotsGetVersionRequest. */
                interface IReservationSlotsGetVersionRequest {

                    /** ReservationSlotsGetVersionRequest sbomSelections */
                    sbomSelections?: (string[]|null);
                }

                /** Represents a ReservationSlotsGetVersionRequest. */
                class ReservationSlotsGetVersionRequest implements IReservationSlotsGetVersionRequest {

                    /**
                     * Constructs a new ReservationSlotsGetVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSlotsGetVersionRequest);

                    /** ReservationSlotsGetVersionRequest sbomSelections. */
                    public sbomSelections: string[];

                    /**
                     * Creates a new ReservationSlotsGetVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotsGetVersionRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSlotsGetVersionRequest): google.cloud.compute.v1beta.ReservationSlotsGetVersionRequest;

                    /**
                     * Encodes the specified ReservationSlotsGetVersionRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotsGetVersionRequest.verify|verify} messages.
                     * @param message ReservationSlotsGetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSlotsGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotsGetVersionRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotsGetVersionRequest.verify|verify} messages.
                     * @param message ReservationSlotsGetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSlotsGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotsGetVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotsGetVersionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSlotsGetVersionRequest;

                    /**
                     * Decodes a ReservationSlotsGetVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotsGetVersionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSlotsGetVersionRequest;

                    /**
                     * Verifies a ReservationSlotsGetVersionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotsGetVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotsGetVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSlotsGetVersionRequest;

                    /**
                     * Creates a plain object from a ReservationSlotsGetVersionRequest message. Also converts values to other types if specified.
                     * @param message ReservationSlotsGetVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSlotsGetVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotsGetVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotsGetVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSlotsGetVersionRequest {

                    /** SbomSelections enum. */
                    enum SbomSelections {
                        UNDEFINED_SBOM_SELECTIONS = 0,
                        SBOM_SELECTION_CURRENT = 423856692,
                        SBOM_SELECTION_TARGET = 152837462,
                        SBOM_SELECTION_UNSPECIFIED = 379615858
                    }
                }

                /** Properties of a ReservationSlotsListResponse. */
                interface IReservationSlotsListResponse {

                    /** ReservationSlotsListResponse id */
                    id?: (string|null);

                    /** ReservationSlotsListResponse items */
                    items?: (google.cloud.compute.v1beta.IReservationSlot[]|null);

                    /** ReservationSlotsListResponse kind */
                    kind?: (string|null);

                    /** ReservationSlotsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationSlotsListResponse selfLink */
                    selfLink?: (string|null);

                    /** ReservationSlotsListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ReservationSlotsListResponse. */
                class ReservationSlotsListResponse implements IReservationSlotsListResponse {

                    /**
                     * Constructs a new ReservationSlotsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSlotsListResponse);

                    /** ReservationSlotsListResponse id. */
                    public id?: (string|null);

                    /** ReservationSlotsListResponse items. */
                    public items: google.cloud.compute.v1beta.IReservationSlot[];

                    /** ReservationSlotsListResponse kind. */
                    public kind?: (string|null);

                    /** ReservationSlotsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationSlotsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationSlotsListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ReservationSlotsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSlotsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSlotsListResponse): google.cloud.compute.v1beta.ReservationSlotsListResponse;

                    /**
                     * Encodes the specified ReservationSlotsListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotsListResponse.verify|verify} messages.
                     * @param message ReservationSlotsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSlotsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSlotsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSlotsListResponse.verify|verify} messages.
                     * @param message ReservationSlotsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSlotsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSlotsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSlotsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSlotsListResponse;

                    /**
                     * Decodes a ReservationSlotsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSlotsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSlotsListResponse;

                    /**
                     * Verifies a ReservationSlotsListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSlotsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSlotsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSlotsListResponse;

                    /**
                     * Creates a plain object from a ReservationSlotsListResponse message. Also converts values to other types if specified.
                     * @param message ReservationSlotsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSlotsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSlotsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSlotsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSubBlock. */
                interface IReservationSubBlock {

                    /** ReservationSubBlock acceleratorTopologiesInfo */
                    acceleratorTopologiesInfo?: (google.cloud.compute.v1beta.IAcceleratorTopologiesInfo|null);

                    /** ReservationSubBlock count */
                    count?: (number|null);

                    /** ReservationSubBlock creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ReservationSubBlock healthInfo */
                    healthInfo?: (google.cloud.compute.v1beta.IReservationSubBlockHealthInfo|null);

                    /** ReservationSubBlock id */
                    id?: (number|Long|string|null);

                    /** ReservationSubBlock inUseCount */
                    inUseCount?: (number|null);

                    /** ReservationSubBlock inUseHostCount */
                    inUseHostCount?: (number|null);

                    /** ReservationSubBlock kind */
                    kind?: (string|null);

                    /** ReservationSubBlock name */
                    name?: (string|null);

                    /** ReservationSubBlock physicalTopology */
                    physicalTopology?: (google.cloud.compute.v1beta.IReservationSubBlockPhysicalTopology|null);

                    /** ReservationSubBlock reservationSubBlockMaintenance */
                    reservationSubBlockMaintenance?: (google.cloud.compute.v1beta.IGroupMaintenanceInfo|null);

                    /** ReservationSubBlock selfLink */
                    selfLink?: (string|null);

                    /** ReservationSubBlock selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** ReservationSubBlock status */
                    status?: (string|null);

                    /** ReservationSubBlock zone */
                    zone?: (string|null);
                }

                /** Represents a ReservationSubBlock. */
                class ReservationSubBlock implements IReservationSubBlock {

                    /**
                     * Constructs a new ReservationSubBlock.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSubBlock);

                    /** ReservationSubBlock acceleratorTopologiesInfo. */
                    public acceleratorTopologiesInfo?: (google.cloud.compute.v1beta.IAcceleratorTopologiesInfo|null);

                    /** ReservationSubBlock count. */
                    public count?: (number|null);

                    /** ReservationSubBlock creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ReservationSubBlock healthInfo. */
                    public healthInfo?: (google.cloud.compute.v1beta.IReservationSubBlockHealthInfo|null);

                    /** ReservationSubBlock id. */
                    public id?: (number|Long|string|null);

                    /** ReservationSubBlock inUseCount. */
                    public inUseCount?: (number|null);

                    /** ReservationSubBlock inUseHostCount. */
                    public inUseHostCount?: (number|null);

                    /** ReservationSubBlock kind. */
                    public kind?: (string|null);

                    /** ReservationSubBlock name. */
                    public name?: (string|null);

                    /** ReservationSubBlock physicalTopology. */
                    public physicalTopology?: (google.cloud.compute.v1beta.IReservationSubBlockPhysicalTopology|null);

                    /** ReservationSubBlock reservationSubBlockMaintenance. */
                    public reservationSubBlockMaintenance?: (google.cloud.compute.v1beta.IGroupMaintenanceInfo|null);

                    /** ReservationSubBlock selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationSubBlock selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** ReservationSubBlock status. */
                    public status?: (string|null);

                    /** ReservationSubBlock zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new ReservationSubBlock instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlock instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSubBlock): google.cloud.compute.v1beta.ReservationSubBlock;

                    /**
                     * Encodes the specified ReservationSubBlock message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlock.verify|verify} messages.
                     * @param message ReservationSubBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSubBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlock message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlock.verify|verify} messages.
                     * @param message ReservationSubBlock message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSubBlock, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlock message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSubBlock;

                    /**
                     * Decodes a ReservationSubBlock message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlock
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSubBlock;

                    /**
                     * Verifies a ReservationSubBlock message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlock message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlock
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSubBlock;

                    /**
                     * Creates a plain object from a ReservationSubBlock message. Also converts values to other types if specified.
                     * @param message ReservationSubBlock
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSubBlock, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlock to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlock
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlock {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a ReservationSubBlockHealthInfo. */
                interface IReservationSubBlockHealthInfo {

                    /** ReservationSubBlockHealthInfo degradedHostCount */
                    degradedHostCount?: (number|null);

                    /** ReservationSubBlockHealthInfo degradedInfraCount */
                    degradedInfraCount?: (number|null);

                    /** ReservationSubBlockHealthInfo healthStatus */
                    healthStatus?: (string|null);

                    /** ReservationSubBlockHealthInfo healthyHostCount */
                    healthyHostCount?: (number|null);

                    /** ReservationSubBlockHealthInfo healthyInfraCount */
                    healthyInfraCount?: (number|null);
                }

                /** Represents a ReservationSubBlockHealthInfo. */
                class ReservationSubBlockHealthInfo implements IReservationSubBlockHealthInfo {

                    /**
                     * Constructs a new ReservationSubBlockHealthInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSubBlockHealthInfo);

                    /** ReservationSubBlockHealthInfo degradedHostCount. */
                    public degradedHostCount?: (number|null);

                    /** ReservationSubBlockHealthInfo degradedInfraCount. */
                    public degradedInfraCount?: (number|null);

                    /** ReservationSubBlockHealthInfo healthStatus. */
                    public healthStatus?: (string|null);

                    /** ReservationSubBlockHealthInfo healthyHostCount. */
                    public healthyHostCount?: (number|null);

                    /** ReservationSubBlockHealthInfo healthyInfraCount. */
                    public healthyInfraCount?: (number|null);

                    /**
                     * Creates a new ReservationSubBlockHealthInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlockHealthInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSubBlockHealthInfo): google.cloud.compute.v1beta.ReservationSubBlockHealthInfo;

                    /**
                     * Encodes the specified ReservationSubBlockHealthInfo message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlockHealthInfo.verify|verify} messages.
                     * @param message ReservationSubBlockHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSubBlockHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlockHealthInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlockHealthInfo.verify|verify} messages.
                     * @param message ReservationSubBlockHealthInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSubBlockHealthInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlockHealthInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlockHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSubBlockHealthInfo;

                    /**
                     * Decodes a ReservationSubBlockHealthInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlockHealthInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSubBlockHealthInfo;

                    /**
                     * Verifies a ReservationSubBlockHealthInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlockHealthInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlockHealthInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSubBlockHealthInfo;

                    /**
                     * Creates a plain object from a ReservationSubBlockHealthInfo message. Also converts values to other types if specified.
                     * @param message ReservationSubBlockHealthInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSubBlockHealthInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlockHealthInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlockHealthInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlockHealthInfo {

                    /** HealthStatus enum. */
                    enum HealthStatus {
                        UNDEFINED_HEALTH_STATUS = 0,
                        DEGRADED = 396890926,
                        HEALTHY = 439801213,
                        HEALTH_STATUS_UNSPECIFIED = 482246925
                    }
                }

                /** Properties of a ReservationSubBlockPhysicalTopology. */
                interface IReservationSubBlockPhysicalTopology {

                    /** ReservationSubBlockPhysicalTopology block */
                    block?: (string|null);

                    /** ReservationSubBlockPhysicalTopology cluster */
                    cluster?: (string|null);

                    /** ReservationSubBlockPhysicalTopology subBlock */
                    subBlock?: (string|null);
                }

                /** Represents a ReservationSubBlockPhysicalTopology. */
                class ReservationSubBlockPhysicalTopology implements IReservationSubBlockPhysicalTopology {

                    /**
                     * Constructs a new ReservationSubBlockPhysicalTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSubBlockPhysicalTopology);

                    /** ReservationSubBlockPhysicalTopology block. */
                    public block?: (string|null);

                    /** ReservationSubBlockPhysicalTopology cluster. */
                    public cluster?: (string|null);

                    /** ReservationSubBlockPhysicalTopology subBlock. */
                    public subBlock?: (string|null);

                    /**
                     * Creates a new ReservationSubBlockPhysicalTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlockPhysicalTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSubBlockPhysicalTopology): google.cloud.compute.v1beta.ReservationSubBlockPhysicalTopology;

                    /**
                     * Encodes the specified ReservationSubBlockPhysicalTopology message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlockPhysicalTopology.verify|verify} messages.
                     * @param message ReservationSubBlockPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSubBlockPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlockPhysicalTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlockPhysicalTopology.verify|verify} messages.
                     * @param message ReservationSubBlockPhysicalTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSubBlockPhysicalTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlockPhysicalTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlockPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSubBlockPhysicalTopology;

                    /**
                     * Decodes a ReservationSubBlockPhysicalTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlockPhysicalTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSubBlockPhysicalTopology;

                    /**
                     * Verifies a ReservationSubBlockPhysicalTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlockPhysicalTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlockPhysicalTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSubBlockPhysicalTopology;

                    /**
                     * Creates a plain object from a ReservationSubBlockPhysicalTopology message. Also converts values to other types if specified.
                     * @param message ReservationSubBlockPhysicalTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSubBlockPhysicalTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlockPhysicalTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlockPhysicalTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSubBlocksGetResponse. */
                interface IReservationSubBlocksGetResponse {

                    /** ReservationSubBlocksGetResponse resource */
                    resource?: (google.cloud.compute.v1beta.IReservationSubBlock|null);
                }

                /** Represents a ReservationSubBlocksGetResponse. */
                class ReservationSubBlocksGetResponse implements IReservationSubBlocksGetResponse {

                    /**
                     * Constructs a new ReservationSubBlocksGetResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSubBlocksGetResponse);

                    /** ReservationSubBlocksGetResponse resource. */
                    public resource?: (google.cloud.compute.v1beta.IReservationSubBlock|null);

                    /**
                     * Creates a new ReservationSubBlocksGetResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksGetResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSubBlocksGetResponse): google.cloud.compute.v1beta.ReservationSubBlocksGetResponse;

                    /**
                     * Encodes the specified ReservationSubBlocksGetResponse message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksGetResponse.verify|verify} messages.
                     * @param message ReservationSubBlocksGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSubBlocksGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksGetResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksGetResponse.verify|verify} messages.
                     * @param message ReservationSubBlocksGetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSubBlocksGetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksGetResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSubBlocksGetResponse;

                    /**
                     * Decodes a ReservationSubBlocksGetResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksGetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSubBlocksGetResponse;

                    /**
                     * Verifies a ReservationSubBlocksGetResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksGetResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksGetResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSubBlocksGetResponse;

                    /**
                     * Creates a plain object from a ReservationSubBlocksGetResponse message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksGetResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSubBlocksGetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksGetResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksGetResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSubBlocksGetVersionRequest. */
                interface IReservationSubBlocksGetVersionRequest {

                    /** ReservationSubBlocksGetVersionRequest sbomSelections */
                    sbomSelections?: (string[]|null);
                }

                /** Represents a ReservationSubBlocksGetVersionRequest. */
                class ReservationSubBlocksGetVersionRequest implements IReservationSubBlocksGetVersionRequest {

                    /**
                     * Constructs a new ReservationSubBlocksGetVersionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSubBlocksGetVersionRequest);

                    /** ReservationSubBlocksGetVersionRequest sbomSelections. */
                    public sbomSelections: string[];

                    /**
                     * Creates a new ReservationSubBlocksGetVersionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksGetVersionRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSubBlocksGetVersionRequest): google.cloud.compute.v1beta.ReservationSubBlocksGetVersionRequest;

                    /**
                     * Encodes the specified ReservationSubBlocksGetVersionRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksGetVersionRequest.verify|verify} messages.
                     * @param message ReservationSubBlocksGetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSubBlocksGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksGetVersionRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksGetVersionRequest.verify|verify} messages.
                     * @param message ReservationSubBlocksGetVersionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSubBlocksGetVersionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksGetVersionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksGetVersionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSubBlocksGetVersionRequest;

                    /**
                     * Decodes a ReservationSubBlocksGetVersionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksGetVersionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSubBlocksGetVersionRequest;

                    /**
                     * Verifies a ReservationSubBlocksGetVersionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksGetVersionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksGetVersionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSubBlocksGetVersionRequest;

                    /**
                     * Creates a plain object from a ReservationSubBlocksGetVersionRequest message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksGetVersionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSubBlocksGetVersionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksGetVersionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksGetVersionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlocksGetVersionRequest {

                    /** SbomSelections enum. */
                    enum SbomSelections {
                        UNDEFINED_SBOM_SELECTIONS = 0,
                        SBOM_SELECTION_CURRENT = 423856692,
                        SBOM_SELECTION_TARGET = 152837462,
                        SBOM_SELECTION_UNSPECIFIED = 379615858
                    }
                }

                /** Properties of a ReservationSubBlocksListResponse. */
                interface IReservationSubBlocksListResponse {

                    /** ReservationSubBlocksListResponse id */
                    id?: (string|null);

                    /** ReservationSubBlocksListResponse items */
                    items?: (google.cloud.compute.v1beta.IReservationSubBlock[]|null);

                    /** ReservationSubBlocksListResponse kind */
                    kind?: (string|null);

                    /** ReservationSubBlocksListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ReservationSubBlocksListResponse selfLink */
                    selfLink?: (string|null);

                    /** ReservationSubBlocksListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ReservationSubBlocksListResponse. */
                class ReservationSubBlocksListResponse implements IReservationSubBlocksListResponse {

                    /**
                     * Constructs a new ReservationSubBlocksListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSubBlocksListResponse);

                    /** ReservationSubBlocksListResponse id. */
                    public id?: (string|null);

                    /** ReservationSubBlocksListResponse items. */
                    public items: google.cloud.compute.v1beta.IReservationSubBlock[];

                    /** ReservationSubBlocksListResponse kind. */
                    public kind?: (string|null);

                    /** ReservationSubBlocksListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ReservationSubBlocksListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** ReservationSubBlocksListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ReservationSubBlocksListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSubBlocksListResponse): google.cloud.compute.v1beta.ReservationSubBlocksListResponse;

                    /**
                     * Encodes the specified ReservationSubBlocksListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksListResponse.verify|verify} messages.
                     * @param message ReservationSubBlocksListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSubBlocksListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksListResponse.verify|verify} messages.
                     * @param message ReservationSubBlocksListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSubBlocksListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSubBlocksListResponse;

                    /**
                     * Decodes a ReservationSubBlocksListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSubBlocksListResponse;

                    /**
                     * Verifies a ReservationSubBlocksListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSubBlocksListResponse;

                    /**
                     * Creates a plain object from a ReservationSubBlocksListResponse message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSubBlocksListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationSubBlocksReportFaultyRequest. */
                interface IReservationSubBlocksReportFaultyRequest {

                    /** ReservationSubBlocksReportFaultyRequest disruptionSchedule */
                    disruptionSchedule?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequest failureComponent */
                    failureComponent?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequest faultReasons */
                    faultReasons?: (google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequestFaultReason[]|null);
                }

                /** Represents a ReservationSubBlocksReportFaultyRequest. */
                class ReservationSubBlocksReportFaultyRequest implements IReservationSubBlocksReportFaultyRequest {

                    /**
                     * Constructs a new ReservationSubBlocksReportFaultyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequest);

                    /** ReservationSubBlocksReportFaultyRequest disruptionSchedule. */
                    public disruptionSchedule?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequest failureComponent. */
                    public failureComponent?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequest faultReasons. */
                    public faultReasons: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequestFaultReason[];

                    /**
                     * Creates a new ReservationSubBlocksReportFaultyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksReportFaultyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequest): google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequest;

                    /**
                     * Encodes the specified ReservationSubBlocksReportFaultyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequest.verify|verify} messages.
                     * @param message ReservationSubBlocksReportFaultyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksReportFaultyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequest.verify|verify} messages.
                     * @param message ReservationSubBlocksReportFaultyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksReportFaultyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksReportFaultyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequest;

                    /**
                     * Decodes a ReservationSubBlocksReportFaultyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksReportFaultyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequest;

                    /**
                     * Verifies a ReservationSubBlocksReportFaultyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksReportFaultyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksReportFaultyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequest;

                    /**
                     * Creates a plain object from a ReservationSubBlocksReportFaultyRequest message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksReportFaultyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksReportFaultyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksReportFaultyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlocksReportFaultyRequest {

                    /** DisruptionSchedule enum. */
                    enum DisruptionSchedule {
                        UNDEFINED_DISRUPTION_SCHEDULE = 0,
                        DISRUPTION_SCHEDULE_UNSPECIFIED = 332543835,
                        IMMEDIATE = 152881041
                    }

                    /** FailureComponent enum. */
                    enum FailureComponent {
                        UNDEFINED_FAILURE_COMPONENT = 0,
                        FAILURE_COMPONENT_UNSPECIFIED = 332003744,
                        MULTIPLE_FAULTY_HOSTS = 423545298,
                        NVLINK_SWITCH = 239107153
                    }
                }

                /** Properties of a ReservationSubBlocksReportFaultyRequestFaultReason. */
                interface IReservationSubBlocksReportFaultyRequestFaultReason {

                    /** ReservationSubBlocksReportFaultyRequestFaultReason behavior */
                    behavior?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequestFaultReason description */
                    description?: (string|null);
                }

                /** Represents a ReservationSubBlocksReportFaultyRequestFaultReason. */
                class ReservationSubBlocksReportFaultyRequestFaultReason implements IReservationSubBlocksReportFaultyRequestFaultReason {

                    /**
                     * Constructs a new ReservationSubBlocksReportFaultyRequestFaultReason.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequestFaultReason);

                    /** ReservationSubBlocksReportFaultyRequestFaultReason behavior. */
                    public behavior?: (string|null);

                    /** ReservationSubBlocksReportFaultyRequestFaultReason description. */
                    public description?: (string|null);

                    /**
                     * Creates a new ReservationSubBlocksReportFaultyRequestFaultReason instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationSubBlocksReportFaultyRequestFaultReason instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequestFaultReason): google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequestFaultReason;

                    /**
                     * Encodes the specified ReservationSubBlocksReportFaultyRequestFaultReason message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequestFaultReason.verify|verify} messages.
                     * @param message ReservationSubBlocksReportFaultyRequestFaultReason message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequestFaultReason, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationSubBlocksReportFaultyRequestFaultReason message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequestFaultReason.verify|verify} messages.
                     * @param message ReservationSubBlocksReportFaultyRequestFaultReason message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationSubBlocksReportFaultyRequestFaultReason, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationSubBlocksReportFaultyRequestFaultReason message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationSubBlocksReportFaultyRequestFaultReason
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequestFaultReason;

                    /**
                     * Decodes a ReservationSubBlocksReportFaultyRequestFaultReason message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationSubBlocksReportFaultyRequestFaultReason
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequestFaultReason;

                    /**
                     * Verifies a ReservationSubBlocksReportFaultyRequestFaultReason message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationSubBlocksReportFaultyRequestFaultReason message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationSubBlocksReportFaultyRequestFaultReason
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequestFaultReason;

                    /**
                     * Creates a plain object from a ReservationSubBlocksReportFaultyRequestFaultReason message. Also converts values to other types if specified.
                     * @param message ReservationSubBlocksReportFaultyRequestFaultReason
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationSubBlocksReportFaultyRequestFaultReason, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationSubBlocksReportFaultyRequestFaultReason to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationSubBlocksReportFaultyRequestFaultReason
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationSubBlocksReportFaultyRequestFaultReason {

                    /** Behavior enum. */
                    enum Behavior {
                        UNDEFINED_BEHAVIOR = 0,
                        FAULT_BEHAVIOR_UNSPECIFIED = 447660743,
                        GPU_ERROR = 198817909,
                        PERFORMANCE = 135701520,
                        SILENT_DATA_CORRUPTION = 111360678,
                        SWITCH_FAILURE = 254909279
                    }
                }

                /** Properties of a ReservationsBlocksPerformMaintenanceRequest. */
                interface IReservationsBlocksPerformMaintenanceRequest {

                    /** ReservationsBlocksPerformMaintenanceRequest maintenanceScope */
                    maintenanceScope?: (string|null);
                }

                /** Represents a ReservationsBlocksPerformMaintenanceRequest. */
                class ReservationsBlocksPerformMaintenanceRequest implements IReservationsBlocksPerformMaintenanceRequest {

                    /**
                     * Constructs a new ReservationsBlocksPerformMaintenanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationsBlocksPerformMaintenanceRequest);

                    /** ReservationsBlocksPerformMaintenanceRequest maintenanceScope. */
                    public maintenanceScope?: (string|null);

                    /**
                     * Creates a new ReservationsBlocksPerformMaintenanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationsBlocksPerformMaintenanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationsBlocksPerformMaintenanceRequest): google.cloud.compute.v1beta.ReservationsBlocksPerformMaintenanceRequest;

                    /**
                     * Encodes the specified ReservationsBlocksPerformMaintenanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationsBlocksPerformMaintenanceRequest.verify|verify} messages.
                     * @param message ReservationsBlocksPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationsBlocksPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationsBlocksPerformMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationsBlocksPerformMaintenanceRequest.verify|verify} messages.
                     * @param message ReservationsBlocksPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationsBlocksPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationsBlocksPerformMaintenanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationsBlocksPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationsBlocksPerformMaintenanceRequest;

                    /**
                     * Decodes a ReservationsBlocksPerformMaintenanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationsBlocksPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationsBlocksPerformMaintenanceRequest;

                    /**
                     * Verifies a ReservationsBlocksPerformMaintenanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationsBlocksPerformMaintenanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationsBlocksPerformMaintenanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationsBlocksPerformMaintenanceRequest;

                    /**
                     * Creates a plain object from a ReservationsBlocksPerformMaintenanceRequest message. Also converts values to other types if specified.
                     * @param message ReservationsBlocksPerformMaintenanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationsBlocksPerformMaintenanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationsBlocksPerformMaintenanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationsBlocksPerformMaintenanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationsBlocksPerformMaintenanceRequest {

                    /** MaintenanceScope enum. */
                    enum MaintenanceScope {
                        UNDEFINED_MAINTENANCE_SCOPE = 0,
                        ALL = 64897,
                        MAINTENANCE_SCOPE_UNSPECIFIED = 78827328,
                        RUNNING_VMS = 535770588,
                        UNUSED_CAPACITY = 212724995
                    }
                }

                /** Properties of a ReservationsPerformMaintenanceRequest. */
                interface IReservationsPerformMaintenanceRequest {

                    /** ReservationsPerformMaintenanceRequest maintenanceScope */
                    maintenanceScope?: (string|null);
                }

                /** Represents a ReservationsPerformMaintenanceRequest. */
                class ReservationsPerformMaintenanceRequest implements IReservationsPerformMaintenanceRequest {

                    /**
                     * Constructs a new ReservationsPerformMaintenanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationsPerformMaintenanceRequest);

                    /** ReservationsPerformMaintenanceRequest maintenanceScope. */
                    public maintenanceScope?: (string|null);

                    /**
                     * Creates a new ReservationsPerformMaintenanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationsPerformMaintenanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationsPerformMaintenanceRequest): google.cloud.compute.v1beta.ReservationsPerformMaintenanceRequest;

                    /**
                     * Encodes the specified ReservationsPerformMaintenanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationsPerformMaintenanceRequest.verify|verify} messages.
                     * @param message ReservationsPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationsPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationsPerformMaintenanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationsPerformMaintenanceRequest.verify|verify} messages.
                     * @param message ReservationsPerformMaintenanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationsPerformMaintenanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationsPerformMaintenanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationsPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationsPerformMaintenanceRequest;

                    /**
                     * Decodes a ReservationsPerformMaintenanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationsPerformMaintenanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationsPerformMaintenanceRequest;

                    /**
                     * Verifies a ReservationsPerformMaintenanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationsPerformMaintenanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationsPerformMaintenanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationsPerformMaintenanceRequest;

                    /**
                     * Creates a plain object from a ReservationsPerformMaintenanceRequest message. Also converts values to other types if specified.
                     * @param message ReservationsPerformMaintenanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationsPerformMaintenanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationsPerformMaintenanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationsPerformMaintenanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ReservationsPerformMaintenanceRequest {

                    /** MaintenanceScope enum. */
                    enum MaintenanceScope {
                        UNDEFINED_MAINTENANCE_SCOPE = 0,
                        ALL = 64897,
                        MAINTENANCE_SCOPE_UNSPECIFIED = 78827328,
                        RUNNING_VMS = 535770588,
                        UNUSED_CAPACITY = 212724995
                    }
                }

                /** Properties of a ReservationsResizeRequest. */
                interface IReservationsResizeRequest {

                    /** ReservationsResizeRequest specificSkuCount */
                    specificSkuCount?: (number|Long|string|null);
                }

                /** Represents a ReservationsResizeRequest. */
                class ReservationsResizeRequest implements IReservationsResizeRequest {

                    /**
                     * Constructs a new ReservationsResizeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationsResizeRequest);

                    /** ReservationsResizeRequest specificSkuCount. */
                    public specificSkuCount?: (number|Long|string|null);

                    /**
                     * Creates a new ReservationsResizeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationsResizeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationsResizeRequest): google.cloud.compute.v1beta.ReservationsResizeRequest;

                    /**
                     * Encodes the specified ReservationsResizeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationsResizeRequest.verify|verify} messages.
                     * @param message ReservationsResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationsResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationsResizeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationsResizeRequest.verify|verify} messages.
                     * @param message ReservationsResizeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationsResizeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationsResizeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationsResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationsResizeRequest;

                    /**
                     * Decodes a ReservationsResizeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationsResizeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationsResizeRequest;

                    /**
                     * Verifies a ReservationsResizeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationsResizeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationsResizeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationsResizeRequest;

                    /**
                     * Creates a plain object from a ReservationsResizeRequest message. Also converts values to other types if specified.
                     * @param message ReservationsResizeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationsResizeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationsResizeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationsResizeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReservationsScopedList. */
                interface IReservationsScopedList {

                    /** ReservationsScopedList reservations */
                    reservations?: (google.cloud.compute.v1beta.IReservation[]|null);

                    /** ReservationsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ReservationsScopedList. */
                class ReservationsScopedList implements IReservationsScopedList {

                    /**
                     * Constructs a new ReservationsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IReservationsScopedList);

                    /** ReservationsScopedList reservations. */
                    public reservations: google.cloud.compute.v1beta.IReservation[];

                    /** ReservationsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ReservationsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReservationsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IReservationsScopedList): google.cloud.compute.v1beta.ReservationsScopedList;

                    /**
                     * Encodes the specified ReservationsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.ReservationsScopedList.verify|verify} messages.
                     * @param message ReservationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IReservationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReservationsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ReservationsScopedList.verify|verify} messages.
                     * @param message ReservationsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IReservationsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReservationsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReservationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ReservationsScopedList;

                    /**
                     * Decodes a ReservationsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReservationsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ReservationsScopedList;

                    /**
                     * Verifies a ReservationsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReservationsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReservationsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ReservationsScopedList;

                    /**
                     * Creates a plain object from a ReservationsScopedList message. Also converts values to other types if specified.
                     * @param message ReservationsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ReservationsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReservationsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReservationsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResetInstanceRequest. */
                interface IResetInstanceRequest {

                    /** ResetInstanceRequest instance */
                    instance?: (string|null);

                    /** ResetInstanceRequest project */
                    project?: (string|null);

                    /** ResetInstanceRequest requestId */
                    requestId?: (string|null);

                    /** ResetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResetInstanceRequest. */
                class ResetInstanceRequest implements IResetInstanceRequest {

                    /**
                     * Constructs a new ResetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResetInstanceRequest);

                    /** ResetInstanceRequest instance. */
                    public instance: string;

                    /** ResetInstanceRequest project. */
                    public project: string;

                    /** ResetInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** ResetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResetInstanceRequest): google.cloud.compute.v1beta.ResetInstanceRequest;

                    /**
                     * Encodes the specified ResetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResetInstanceRequest.verify|verify} messages.
                     * @param message ResetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResetInstanceRequest.verify|verify} messages.
                     * @param message ResetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResetInstanceRequest;

                    /**
                     * Decodes a ResetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResetInstanceRequest;

                    /**
                     * Verifies a ResetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResetInstanceRequest;

                    /**
                     * Creates a plain object from a ResetInstanceRequest message. Also converts values to other types if specified.
                     * @param message ResetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeAdvancedInstanceGroupManagerRequest. */
                interface IResizeAdvancedInstanceGroupManagerRequest {

                    /** ResizeAdvancedInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResizeAdvancedInstanceGroupManagerRequest instanceGroupManagersResizeAdvancedRequestResource */
                    instanceGroupManagersResizeAdvancedRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersResizeAdvancedRequest|null);

                    /** ResizeAdvancedInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResizeAdvancedInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** ResizeAdvancedInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResizeAdvancedInstanceGroupManagerRequest. */
                class ResizeAdvancedInstanceGroupManagerRequest implements IResizeAdvancedInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResizeAdvancedInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResizeAdvancedInstanceGroupManagerRequest);

                    /** ResizeAdvancedInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResizeAdvancedInstanceGroupManagerRequest instanceGroupManagersResizeAdvancedRequestResource. */
                    public instanceGroupManagersResizeAdvancedRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersResizeAdvancedRequest|null);

                    /** ResizeAdvancedInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResizeAdvancedInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeAdvancedInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResizeAdvancedInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeAdvancedInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResizeAdvancedInstanceGroupManagerRequest): google.cloud.compute.v1beta.ResizeAdvancedInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResizeAdvancedInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResizeAdvancedInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeAdvancedInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResizeAdvancedInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeAdvancedInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResizeAdvancedInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeAdvancedInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResizeAdvancedInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeAdvancedInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeAdvancedInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResizeAdvancedInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResizeAdvancedInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeAdvancedInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResizeAdvancedInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResizeAdvancedInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeAdvancedInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeAdvancedInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResizeAdvancedInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResizeAdvancedInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResizeAdvancedInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResizeAdvancedInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeAdvancedInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeAdvancedInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeAdvancedRegionInstanceGroupManagerRequest. */
                interface IResizeAdvancedRegionInstanceGroupManagerRequest {

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest regionInstanceGroupManagersResizeAdvancedRequestResource */
                    regionInstanceGroupManagersResizeAdvancedRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersResizeAdvancedRequest|null);

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a ResizeAdvancedRegionInstanceGroupManagerRequest. */
                class ResizeAdvancedRegionInstanceGroupManagerRequest implements IResizeAdvancedRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResizeAdvancedRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResizeAdvancedRegionInstanceGroupManagerRequest);

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest regionInstanceGroupManagersResizeAdvancedRequestResource. */
                    public regionInstanceGroupManagersResizeAdvancedRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersResizeAdvancedRequest|null);

                    /** ResizeAdvancedRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new ResizeAdvancedRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeAdvancedRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResizeAdvancedRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.ResizeAdvancedRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResizeAdvancedRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResizeAdvancedRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeAdvancedRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResizeAdvancedRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeAdvancedRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResizeAdvancedRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeAdvancedRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResizeAdvancedRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeAdvancedRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeAdvancedRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResizeAdvancedRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResizeAdvancedRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeAdvancedRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResizeAdvancedRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResizeAdvancedRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeAdvancedRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeAdvancedRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResizeAdvancedRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResizeAdvancedRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResizeAdvancedRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResizeAdvancedRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeAdvancedRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeAdvancedRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeDiskRequest. */
                interface IResizeDiskRequest {

                    /** ResizeDiskRequest disk */
                    disk?: (string|null);

                    /** ResizeDiskRequest disksResizeRequestResource */
                    disksResizeRequestResource?: (google.cloud.compute.v1beta.IDisksResizeRequest|null);

                    /** ResizeDiskRequest project */
                    project?: (string|null);

                    /** ResizeDiskRequest requestId */
                    requestId?: (string|null);

                    /** ResizeDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResizeDiskRequest. */
                class ResizeDiskRequest implements IResizeDiskRequest {

                    /**
                     * Constructs a new ResizeDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResizeDiskRequest);

                    /** ResizeDiskRequest disk. */
                    public disk: string;

                    /** ResizeDiskRequest disksResizeRequestResource. */
                    public disksResizeRequestResource?: (google.cloud.compute.v1beta.IDisksResizeRequest|null);

                    /** ResizeDiskRequest project. */
                    public project: string;

                    /** ResizeDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResizeDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResizeDiskRequest): google.cloud.compute.v1beta.ResizeDiskRequest;

                    /**
                     * Encodes the specified ResizeDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResizeDiskRequest.verify|verify} messages.
                     * @param message ResizeDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResizeDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResizeDiskRequest.verify|verify} messages.
                     * @param message ResizeDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResizeDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResizeDiskRequest;

                    /**
                     * Decodes a ResizeDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResizeDiskRequest;

                    /**
                     * Verifies a ResizeDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResizeDiskRequest;

                    /**
                     * Creates a plain object from a ResizeDiskRequest message. Also converts values to other types if specified.
                     * @param message ResizeDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResizeDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeInstanceGroupManagerRequest. */
                interface IResizeInstanceGroupManagerRequest {

                    /** ResizeInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResizeInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResizeInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** ResizeInstanceGroupManagerRequest size */
                    size?: (number|null);

                    /** ResizeInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResizeInstanceGroupManagerRequest. */
                class ResizeInstanceGroupManagerRequest implements IResizeInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResizeInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResizeInstanceGroupManagerRequest);

                    /** ResizeInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResizeInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResizeInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeInstanceGroupManagerRequest size. */
                    public size: number;

                    /** ResizeInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResizeInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResizeInstanceGroupManagerRequest): google.cloud.compute.v1beta.ResizeInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResizeInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResizeInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResizeInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResizeInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResizeInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResizeInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResizeInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResizeInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResizeInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResizeInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResizeInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResizeInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResizeInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeRegionDiskRequest. */
                interface IResizeRegionDiskRequest {

                    /** ResizeRegionDiskRequest disk */
                    disk?: (string|null);

                    /** ResizeRegionDiskRequest project */
                    project?: (string|null);

                    /** ResizeRegionDiskRequest region */
                    region?: (string|null);

                    /** ResizeRegionDiskRequest regionDisksResizeRequestResource */
                    regionDisksResizeRequestResource?: (google.cloud.compute.v1beta.IRegionDisksResizeRequest|null);

                    /** ResizeRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a ResizeRegionDiskRequest. */
                class ResizeRegionDiskRequest implements IResizeRegionDiskRequest {

                    /**
                     * Constructs a new ResizeRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResizeRegionDiskRequest);

                    /** ResizeRegionDiskRequest disk. */
                    public disk: string;

                    /** ResizeRegionDiskRequest project. */
                    public project: string;

                    /** ResizeRegionDiskRequest region. */
                    public region: string;

                    /** ResizeRegionDiskRequest regionDisksResizeRequestResource. */
                    public regionDisksResizeRequestResource?: (google.cloud.compute.v1beta.IRegionDisksResizeRequest|null);

                    /** ResizeRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new ResizeRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResizeRegionDiskRequest): google.cloud.compute.v1beta.ResizeRegionDiskRequest;

                    /**
                     * Encodes the specified ResizeRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResizeRegionDiskRequest.verify|verify} messages.
                     * @param message ResizeRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResizeRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResizeRegionDiskRequest.verify|verify} messages.
                     * @param message ResizeRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResizeRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResizeRegionDiskRequest;

                    /**
                     * Decodes a ResizeRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResizeRegionDiskRequest;

                    /**
                     * Verifies a ResizeRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResizeRegionDiskRequest;

                    /**
                     * Creates a plain object from a ResizeRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message ResizeRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResizeRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeRegionInstanceGroupManagerRequest. */
                interface IResizeRegionInstanceGroupManagerRequest {

                    /** ResizeRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest size */
                    size?: (number|null);
                }

                /** Represents a ResizeRegionInstanceGroupManagerRequest. */
                class ResizeRegionInstanceGroupManagerRequest implements IResizeRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResizeRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResizeRegionInstanceGroupManagerRequest);

                    /** ResizeRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResizeRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResizeRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** ResizeRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeRegionInstanceGroupManagerRequest size. */
                    public size: number;

                    /**
                     * Creates a new ResizeRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResizeRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.ResizeRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResizeRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResizeRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResizeRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResizeRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResizeRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResizeRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResizeRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResizeRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResizeRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResizeRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResizeRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResizeRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResizeRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResizeRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResizeReservationRequest. */
                interface IResizeReservationRequest {

                    /** ResizeReservationRequest project */
                    project?: (string|null);

                    /** ResizeReservationRequest requestId */
                    requestId?: (string|null);

                    /** ResizeReservationRequest reservation */
                    reservation?: (string|null);

                    /** ResizeReservationRequest reservationsResizeRequestResource */
                    reservationsResizeRequestResource?: (google.cloud.compute.v1beta.IReservationsResizeRequest|null);

                    /** ResizeReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResizeReservationRequest. */
                class ResizeReservationRequest implements IResizeReservationRequest {

                    /**
                     * Constructs a new ResizeReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResizeReservationRequest);

                    /** ResizeReservationRequest project. */
                    public project: string;

                    /** ResizeReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** ResizeReservationRequest reservation. */
                    public reservation: string;

                    /** ResizeReservationRequest reservationsResizeRequestResource. */
                    public reservationsResizeRequestResource?: (google.cloud.compute.v1beta.IReservationsResizeRequest|null);

                    /** ResizeReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResizeReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResizeReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResizeReservationRequest): google.cloud.compute.v1beta.ResizeReservationRequest;

                    /**
                     * Encodes the specified ResizeReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResizeReservationRequest.verify|verify} messages.
                     * @param message ResizeReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResizeReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResizeReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResizeReservationRequest.verify|verify} messages.
                     * @param message ResizeReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResizeReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResizeReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResizeReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResizeReservationRequest;

                    /**
                     * Decodes a ResizeReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResizeReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResizeReservationRequest;

                    /**
                     * Verifies a ResizeReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResizeReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResizeReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResizeReservationRequest;

                    /**
                     * Creates a plain object from a ResizeReservationRequest message. Also converts values to other types if specified.
                     * @param message ResizeReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResizeReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResizeReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResizeReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceCommitment. */
                interface IResourceCommitment {

                    /** ResourceCommitment acceleratorType */
                    acceleratorType?: (string|null);

                    /** ResourceCommitment amount */
                    amount?: (number|Long|string|null);

                    /** ResourceCommitment type */
                    type?: (string|null);
                }

                /** Represents a ResourceCommitment. */
                class ResourceCommitment implements IResourceCommitment {

                    /**
                     * Constructs a new ResourceCommitment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourceCommitment);

                    /** ResourceCommitment acceleratorType. */
                    public acceleratorType?: (string|null);

                    /** ResourceCommitment amount. */
                    public amount?: (number|Long|string|null);

                    /** ResourceCommitment type. */
                    public type?: (string|null);

                    /**
                     * Creates a new ResourceCommitment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceCommitment instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourceCommitment): google.cloud.compute.v1beta.ResourceCommitment;

                    /**
                     * Encodes the specified ResourceCommitment message. Does not implicitly {@link google.cloud.compute.v1beta.ResourceCommitment.verify|verify} messages.
                     * @param message ResourceCommitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourceCommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceCommitment message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourceCommitment.verify|verify} messages.
                     * @param message ResourceCommitment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourceCommitment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceCommitment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceCommitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourceCommitment;

                    /**
                     * Decodes a ResourceCommitment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceCommitment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourceCommitment;

                    /**
                     * Verifies a ResourceCommitment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceCommitment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceCommitment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourceCommitment;

                    /**
                     * Creates a plain object from a ResourceCommitment message. Also converts values to other types if specified.
                     * @param message ResourceCommitment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourceCommitment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceCommitment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceCommitment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourceCommitment {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        ACCELERATOR = 429815371,
                        LOCAL_SSD = 508934896,
                        MEMORY = 123056385,
                        UNSPECIFIED = 526786327,
                        VCPU = 2628978
                    }
                }

                /** Properties of a ResourceGroupReference. */
                interface IResourceGroupReference {

                    /** ResourceGroupReference group */
                    group?: (string|null);
                }

                /** Represents a ResourceGroupReference. */
                class ResourceGroupReference implements IResourceGroupReference {

                    /**
                     * Constructs a new ResourceGroupReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourceGroupReference);

                    /** ResourceGroupReference group. */
                    public group?: (string|null);

                    /**
                     * Creates a new ResourceGroupReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceGroupReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourceGroupReference): google.cloud.compute.v1beta.ResourceGroupReference;

                    /**
                     * Encodes the specified ResourceGroupReference message. Does not implicitly {@link google.cloud.compute.v1beta.ResourceGroupReference.verify|verify} messages.
                     * @param message ResourceGroupReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourceGroupReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceGroupReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourceGroupReference.verify|verify} messages.
                     * @param message ResourceGroupReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourceGroupReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceGroupReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceGroupReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourceGroupReference;

                    /**
                     * Decodes a ResourceGroupReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceGroupReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourceGroupReference;

                    /**
                     * Verifies a ResourceGroupReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceGroupReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceGroupReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourceGroupReference;

                    /**
                     * Creates a plain object from a ResourceGroupReference message. Also converts values to other types if specified.
                     * @param message ResourceGroupReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourceGroupReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceGroupReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceGroupReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePoliciesScopedList. */
                interface IResourcePoliciesScopedList {

                    /** ResourcePoliciesScopedList resourcePolicies */
                    resourcePolicies?: (google.cloud.compute.v1beta.IResourcePolicy[]|null);

                    /** ResourcePoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ResourcePoliciesScopedList. */
                class ResourcePoliciesScopedList implements IResourcePoliciesScopedList {

                    /**
                     * Constructs a new ResourcePoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePoliciesScopedList);

                    /** ResourcePoliciesScopedList resourcePolicies. */
                    public resourcePolicies: google.cloud.compute.v1beta.IResourcePolicy[];

                    /** ResourcePoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ResourcePoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePoliciesScopedList): google.cloud.compute.v1beta.ResourcePoliciesScopedList;

                    /**
                     * Encodes the specified ResourcePoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePoliciesScopedList.verify|verify} messages.
                     * @param message ResourcePoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePoliciesScopedList.verify|verify} messages.
                     * @param message ResourcePoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePoliciesScopedList;

                    /**
                     * Decodes a ResourcePoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePoliciesScopedList;

                    /**
                     * Verifies a ResourcePoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePoliciesScopedList;

                    /**
                     * Creates a plain object from a ResourcePoliciesScopedList message. Also converts values to other types if specified.
                     * @param message ResourcePoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicy. */
                interface IResourcePolicy {

                    /** ResourcePolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ResourcePolicy description */
                    description?: (string|null);

                    /** ResourcePolicy diskConsistencyGroupPolicy */
                    diskConsistencyGroupPolicy?: (google.cloud.compute.v1beta.IResourcePolicyDiskConsistencyGroupPolicy|null);

                    /** ResourcePolicy groupPlacementPolicy */
                    groupPlacementPolicy?: (google.cloud.compute.v1beta.IResourcePolicyGroupPlacementPolicy|null);

                    /** ResourcePolicy id */
                    id?: (number|Long|string|null);

                    /** ResourcePolicy instanceSchedulePolicy */
                    instanceSchedulePolicy?: (google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicy|null);

                    /** ResourcePolicy kind */
                    kind?: (string|null);

                    /** ResourcePolicy name */
                    name?: (string|null);

                    /** ResourcePolicy region */
                    region?: (string|null);

                    /** ResourcePolicy resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1beta.IResourcePolicyResourceStatus|null);

                    /** ResourcePolicy selfLink */
                    selfLink?: (string|null);

                    /** ResourcePolicy snapshotSchedulePolicy */
                    snapshotSchedulePolicy?: (google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicy|null);

                    /** ResourcePolicy status */
                    status?: (string|null);

                    /** ResourcePolicy workloadPolicy */
                    workloadPolicy?: (google.cloud.compute.v1beta.IResourcePolicyWorkloadPolicy|null);
                }

                /** Represents a ResourcePolicy. */
                class ResourcePolicy implements IResourcePolicy {

                    /**
                     * Constructs a new ResourcePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicy);

                    /** ResourcePolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ResourcePolicy description. */
                    public description?: (string|null);

                    /** ResourcePolicy diskConsistencyGroupPolicy. */
                    public diskConsistencyGroupPolicy?: (google.cloud.compute.v1beta.IResourcePolicyDiskConsistencyGroupPolicy|null);

                    /** ResourcePolicy groupPlacementPolicy. */
                    public groupPlacementPolicy?: (google.cloud.compute.v1beta.IResourcePolicyGroupPlacementPolicy|null);

                    /** ResourcePolicy id. */
                    public id?: (number|Long|string|null);

                    /** ResourcePolicy instanceSchedulePolicy. */
                    public instanceSchedulePolicy?: (google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicy|null);

                    /** ResourcePolicy kind. */
                    public kind?: (string|null);

                    /** ResourcePolicy name. */
                    public name?: (string|null);

                    /** ResourcePolicy region. */
                    public region?: (string|null);

                    /** ResourcePolicy resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1beta.IResourcePolicyResourceStatus|null);

                    /** ResourcePolicy selfLink. */
                    public selfLink?: (string|null);

                    /** ResourcePolicy snapshotSchedulePolicy. */
                    public snapshotSchedulePolicy?: (google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicy|null);

                    /** ResourcePolicy status. */
                    public status?: (string|null);

                    /** ResourcePolicy workloadPolicy. */
                    public workloadPolicy?: (google.cloud.compute.v1beta.IResourcePolicyWorkloadPolicy|null);

                    /**
                     * Creates a new ResourcePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicy): google.cloud.compute.v1beta.ResourcePolicy;

                    /**
                     * Encodes the specified ResourcePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicy.verify|verify} messages.
                     * @param message ResourcePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicy.verify|verify} messages.
                     * @param message ResourcePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicy;

                    /**
                     * Decodes a ResourcePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicy;

                    /**
                     * Verifies a ResourcePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicy;

                    /**
                     * Creates a plain object from a ResourcePolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicy {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        EXPIRED = 482489093,
                        INVALID = 530283991,
                        READY = 77848963
                    }
                }

                /** Properties of a ResourcePolicyAggregatedList. */
                interface IResourcePolicyAggregatedList {

                    /** ResourcePolicyAggregatedList etag */
                    etag?: (string|null);

                    /** ResourcePolicyAggregatedList id */
                    id?: (string|null);

                    /** ResourcePolicyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IResourcePoliciesScopedList }|null);

                    /** ResourcePolicyAggregatedList kind */
                    kind?: (string|null);

                    /** ResourcePolicyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ResourcePolicyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** ResourcePolicyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** ResourcePolicyAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ResourcePolicyAggregatedList. */
                class ResourcePolicyAggregatedList implements IResourcePolicyAggregatedList {

                    /**
                     * Constructs a new ResourcePolicyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyAggregatedList);

                    /** ResourcePolicyAggregatedList etag. */
                    public etag?: (string|null);

                    /** ResourcePolicyAggregatedList id. */
                    public id?: (string|null);

                    /** ResourcePolicyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IResourcePoliciesScopedList };

                    /** ResourcePolicyAggregatedList kind. */
                    public kind?: (string|null);

                    /** ResourcePolicyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ResourcePolicyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** ResourcePolicyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** ResourcePolicyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ResourcePolicyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyAggregatedList): google.cloud.compute.v1beta.ResourcePolicyAggregatedList;

                    /**
                     * Encodes the specified ResourcePolicyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyAggregatedList.verify|verify} messages.
                     * @param message ResourcePolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyAggregatedList.verify|verify} messages.
                     * @param message ResourcePolicyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyAggregatedList;

                    /**
                     * Decodes a ResourcePolicyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyAggregatedList;

                    /**
                     * Verifies a ResourcePolicyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyAggregatedList;

                    /**
                     * Creates a plain object from a ResourcePolicyAggregatedList message. Also converts values to other types if specified.
                     * @param message ResourcePolicyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyDailyCycle. */
                interface IResourcePolicyDailyCycle {

                    /** ResourcePolicyDailyCycle daysInCycle */
                    daysInCycle?: (number|null);

                    /** ResourcePolicyDailyCycle duration */
                    duration?: (string|null);

                    /** ResourcePolicyDailyCycle startTime */
                    startTime?: (string|null);
                }

                /** Represents a ResourcePolicyDailyCycle. */
                class ResourcePolicyDailyCycle implements IResourcePolicyDailyCycle {

                    /**
                     * Constructs a new ResourcePolicyDailyCycle.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyDailyCycle);

                    /** ResourcePolicyDailyCycle daysInCycle. */
                    public daysInCycle?: (number|null);

                    /** ResourcePolicyDailyCycle duration. */
                    public duration?: (string|null);

                    /** ResourcePolicyDailyCycle startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new ResourcePolicyDailyCycle instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyDailyCycle instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyDailyCycle): google.cloud.compute.v1beta.ResourcePolicyDailyCycle;

                    /**
                     * Encodes the specified ResourcePolicyDailyCycle message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyDailyCycle.verify|verify} messages.
                     * @param message ResourcePolicyDailyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyDailyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyDailyCycle message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyDailyCycle.verify|verify} messages.
                     * @param message ResourcePolicyDailyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyDailyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyDailyCycle message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyDailyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyDailyCycle;

                    /**
                     * Decodes a ResourcePolicyDailyCycle message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyDailyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyDailyCycle;

                    /**
                     * Verifies a ResourcePolicyDailyCycle message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyDailyCycle message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyDailyCycle
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyDailyCycle;

                    /**
                     * Creates a plain object from a ResourcePolicyDailyCycle message. Also converts values to other types if specified.
                     * @param message ResourcePolicyDailyCycle
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyDailyCycle, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyDailyCycle to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyDailyCycle
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyDiskConsistencyGroupPolicy. */
                interface IResourcePolicyDiskConsistencyGroupPolicy {
                }

                /** Represents a ResourcePolicyDiskConsistencyGroupPolicy. */
                class ResourcePolicyDiskConsistencyGroupPolicy implements IResourcePolicyDiskConsistencyGroupPolicy {

                    /**
                     * Constructs a new ResourcePolicyDiskConsistencyGroupPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyDiskConsistencyGroupPolicy);

                    /**
                     * Creates a new ResourcePolicyDiskConsistencyGroupPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyDiskConsistencyGroupPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyDiskConsistencyGroupPolicy): google.cloud.compute.v1beta.ResourcePolicyDiskConsistencyGroupPolicy;

                    /**
                     * Encodes the specified ResourcePolicyDiskConsistencyGroupPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyDiskConsistencyGroupPolicy.verify|verify} messages.
                     * @param message ResourcePolicyDiskConsistencyGroupPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyDiskConsistencyGroupPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyDiskConsistencyGroupPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyDiskConsistencyGroupPolicy.verify|verify} messages.
                     * @param message ResourcePolicyDiskConsistencyGroupPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyDiskConsistencyGroupPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyDiskConsistencyGroupPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyDiskConsistencyGroupPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyDiskConsistencyGroupPolicy;

                    /**
                     * Decodes a ResourcePolicyDiskConsistencyGroupPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyDiskConsistencyGroupPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyDiskConsistencyGroupPolicy;

                    /**
                     * Verifies a ResourcePolicyDiskConsistencyGroupPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyDiskConsistencyGroupPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyDiskConsistencyGroupPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyDiskConsistencyGroupPolicy;

                    /**
                     * Creates a plain object from a ResourcePolicyDiskConsistencyGroupPolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicyDiskConsistencyGroupPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyDiskConsistencyGroupPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyDiskConsistencyGroupPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyDiskConsistencyGroupPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyGroupPlacementPolicy. */
                interface IResourcePolicyGroupPlacementPolicy {

                    /** ResourcePolicyGroupPlacementPolicy acceleratorTopologyMode */
                    acceleratorTopologyMode?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy availabilityDomainCount */
                    availabilityDomainCount?: (number|null);

                    /** ResourcePolicyGroupPlacementPolicy collocation */
                    collocation?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy gpuTopology */
                    gpuTopology?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy maxDistance */
                    maxDistance?: (number|null);

                    /** ResourcePolicyGroupPlacementPolicy sliceCount */
                    sliceCount?: (number|null);

                    /** ResourcePolicyGroupPlacementPolicy tpuTopology */
                    tpuTopology?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy vmCount */
                    vmCount?: (number|null);
                }

                /** Represents a ResourcePolicyGroupPlacementPolicy. */
                class ResourcePolicyGroupPlacementPolicy implements IResourcePolicyGroupPlacementPolicy {

                    /**
                     * Constructs a new ResourcePolicyGroupPlacementPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyGroupPlacementPolicy);

                    /** ResourcePolicyGroupPlacementPolicy acceleratorTopologyMode. */
                    public acceleratorTopologyMode?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy availabilityDomainCount. */
                    public availabilityDomainCount?: (number|null);

                    /** ResourcePolicyGroupPlacementPolicy collocation. */
                    public collocation?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy gpuTopology. */
                    public gpuTopology?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy maxDistance. */
                    public maxDistance?: (number|null);

                    /** ResourcePolicyGroupPlacementPolicy sliceCount. */
                    public sliceCount?: (number|null);

                    /** ResourcePolicyGroupPlacementPolicy tpuTopology. */
                    public tpuTopology?: (string|null);

                    /** ResourcePolicyGroupPlacementPolicy vmCount. */
                    public vmCount?: (number|null);

                    /**
                     * Creates a new ResourcePolicyGroupPlacementPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyGroupPlacementPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyGroupPlacementPolicy): google.cloud.compute.v1beta.ResourcePolicyGroupPlacementPolicy;

                    /**
                     * Encodes the specified ResourcePolicyGroupPlacementPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyGroupPlacementPolicy.verify|verify} messages.
                     * @param message ResourcePolicyGroupPlacementPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyGroupPlacementPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyGroupPlacementPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyGroupPlacementPolicy.verify|verify} messages.
                     * @param message ResourcePolicyGroupPlacementPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyGroupPlacementPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyGroupPlacementPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyGroupPlacementPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyGroupPlacementPolicy;

                    /**
                     * Decodes a ResourcePolicyGroupPlacementPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyGroupPlacementPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyGroupPlacementPolicy;

                    /**
                     * Verifies a ResourcePolicyGroupPlacementPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyGroupPlacementPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyGroupPlacementPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyGroupPlacementPolicy;

                    /**
                     * Creates a plain object from a ResourcePolicyGroupPlacementPolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicyGroupPlacementPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyGroupPlacementPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyGroupPlacementPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyGroupPlacementPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicyGroupPlacementPolicy {

                    /** AcceleratorTopologyMode enum. */
                    enum AcceleratorTopologyMode {
                        UNDEFINED_ACCELERATOR_TOPOLOGY_MODE = 0,
                        AUTO_CONNECT = 491872826,
                        PROVISION_ONLY = 399134966
                    }

                    /** Collocation enum. */
                    enum Collocation {
                        UNDEFINED_COLLOCATION = 0,
                        COLLOCATED = 103257554,
                        UNSPECIFIED_COLLOCATION = 464308205
                    }
                }

                /** Properties of a ResourcePolicyHourlyCycle. */
                interface IResourcePolicyHourlyCycle {

                    /** ResourcePolicyHourlyCycle duration */
                    duration?: (string|null);

                    /** ResourcePolicyHourlyCycle hoursInCycle */
                    hoursInCycle?: (number|null);

                    /** ResourcePolicyHourlyCycle startTime */
                    startTime?: (string|null);
                }

                /** Represents a ResourcePolicyHourlyCycle. */
                class ResourcePolicyHourlyCycle implements IResourcePolicyHourlyCycle {

                    /**
                     * Constructs a new ResourcePolicyHourlyCycle.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyHourlyCycle);

                    /** ResourcePolicyHourlyCycle duration. */
                    public duration?: (string|null);

                    /** ResourcePolicyHourlyCycle hoursInCycle. */
                    public hoursInCycle?: (number|null);

                    /** ResourcePolicyHourlyCycle startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new ResourcePolicyHourlyCycle instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyHourlyCycle instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyHourlyCycle): google.cloud.compute.v1beta.ResourcePolicyHourlyCycle;

                    /**
                     * Encodes the specified ResourcePolicyHourlyCycle message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyHourlyCycle.verify|verify} messages.
                     * @param message ResourcePolicyHourlyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyHourlyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyHourlyCycle message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyHourlyCycle.verify|verify} messages.
                     * @param message ResourcePolicyHourlyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyHourlyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyHourlyCycle message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyHourlyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyHourlyCycle;

                    /**
                     * Decodes a ResourcePolicyHourlyCycle message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyHourlyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyHourlyCycle;

                    /**
                     * Verifies a ResourcePolicyHourlyCycle message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyHourlyCycle message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyHourlyCycle
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyHourlyCycle;

                    /**
                     * Creates a plain object from a ResourcePolicyHourlyCycle message. Also converts values to other types if specified.
                     * @param message ResourcePolicyHourlyCycle
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyHourlyCycle, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyHourlyCycle to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyHourlyCycle
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyInstanceSchedulePolicy. */
                interface IResourcePolicyInstanceSchedulePolicy {

                    /** ResourcePolicyInstanceSchedulePolicy expirationTime */
                    expirationTime?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy startTime */
                    startTime?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy timeZone */
                    timeZone?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy vmStartSchedule */
                    vmStartSchedule?: (google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicySchedule|null);

                    /** ResourcePolicyInstanceSchedulePolicy vmStopSchedule */
                    vmStopSchedule?: (google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicySchedule|null);
                }

                /** Represents a ResourcePolicyInstanceSchedulePolicy. */
                class ResourcePolicyInstanceSchedulePolicy implements IResourcePolicyInstanceSchedulePolicy {

                    /**
                     * Constructs a new ResourcePolicyInstanceSchedulePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicy);

                    /** ResourcePolicyInstanceSchedulePolicy expirationTime. */
                    public expirationTime?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy startTime. */
                    public startTime?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy timeZone. */
                    public timeZone?: (string|null);

                    /** ResourcePolicyInstanceSchedulePolicy vmStartSchedule. */
                    public vmStartSchedule?: (google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicySchedule|null);

                    /** ResourcePolicyInstanceSchedulePolicy vmStopSchedule. */
                    public vmStopSchedule?: (google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicySchedule|null);

                    /**
                     * Creates a new ResourcePolicyInstanceSchedulePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyInstanceSchedulePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicy): google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicy;

                    /**
                     * Encodes the specified ResourcePolicyInstanceSchedulePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicy.verify|verify} messages.
                     * @param message ResourcePolicyInstanceSchedulePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyInstanceSchedulePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicy.verify|verify} messages.
                     * @param message ResourcePolicyInstanceSchedulePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyInstanceSchedulePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyInstanceSchedulePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicy;

                    /**
                     * Decodes a ResourcePolicyInstanceSchedulePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyInstanceSchedulePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicy;

                    /**
                     * Verifies a ResourcePolicyInstanceSchedulePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyInstanceSchedulePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyInstanceSchedulePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicy;

                    /**
                     * Creates a plain object from a ResourcePolicyInstanceSchedulePolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicyInstanceSchedulePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyInstanceSchedulePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyInstanceSchedulePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyInstanceSchedulePolicySchedule. */
                interface IResourcePolicyInstanceSchedulePolicySchedule {

                    /** ResourcePolicyInstanceSchedulePolicySchedule schedule */
                    schedule?: (string|null);
                }

                /** Represents a ResourcePolicyInstanceSchedulePolicySchedule. */
                class ResourcePolicyInstanceSchedulePolicySchedule implements IResourcePolicyInstanceSchedulePolicySchedule {

                    /**
                     * Constructs a new ResourcePolicyInstanceSchedulePolicySchedule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicySchedule);

                    /** ResourcePolicyInstanceSchedulePolicySchedule schedule. */
                    public schedule?: (string|null);

                    /**
                     * Creates a new ResourcePolicyInstanceSchedulePolicySchedule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyInstanceSchedulePolicySchedule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicySchedule): google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicySchedule;

                    /**
                     * Encodes the specified ResourcePolicyInstanceSchedulePolicySchedule message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicySchedule.verify|verify} messages.
                     * @param message ResourcePolicyInstanceSchedulePolicySchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyInstanceSchedulePolicySchedule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicySchedule.verify|verify} messages.
                     * @param message ResourcePolicyInstanceSchedulePolicySchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyInstanceSchedulePolicySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyInstanceSchedulePolicySchedule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyInstanceSchedulePolicySchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicySchedule;

                    /**
                     * Decodes a ResourcePolicyInstanceSchedulePolicySchedule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyInstanceSchedulePolicySchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicySchedule;

                    /**
                     * Verifies a ResourcePolicyInstanceSchedulePolicySchedule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyInstanceSchedulePolicySchedule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyInstanceSchedulePolicySchedule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicySchedule;

                    /**
                     * Creates a plain object from a ResourcePolicyInstanceSchedulePolicySchedule message. Also converts values to other types if specified.
                     * @param message ResourcePolicyInstanceSchedulePolicySchedule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyInstanceSchedulePolicySchedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyInstanceSchedulePolicySchedule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyInstanceSchedulePolicySchedule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyList. */
                interface IResourcePolicyList {

                    /** ResourcePolicyList etag */
                    etag?: (string|null);

                    /** ResourcePolicyList id */
                    id?: (string|null);

                    /** ResourcePolicyList items */
                    items?: (google.cloud.compute.v1beta.IResourcePolicy[]|null);

                    /** ResourcePolicyList kind */
                    kind?: (string|null);

                    /** ResourcePolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ResourcePolicyList selfLink */
                    selfLink?: (string|null);

                    /** ResourcePolicyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ResourcePolicyList. */
                class ResourcePolicyList implements IResourcePolicyList {

                    /**
                     * Constructs a new ResourcePolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyList);

                    /** ResourcePolicyList etag. */
                    public etag?: (string|null);

                    /** ResourcePolicyList id. */
                    public id?: (string|null);

                    /** ResourcePolicyList items. */
                    public items: google.cloud.compute.v1beta.IResourcePolicy[];

                    /** ResourcePolicyList kind. */
                    public kind?: (string|null);

                    /** ResourcePolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ResourcePolicyList selfLink. */
                    public selfLink?: (string|null);

                    /** ResourcePolicyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ResourcePolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyList): google.cloud.compute.v1beta.ResourcePolicyList;

                    /**
                     * Encodes the specified ResourcePolicyList message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyList.verify|verify} messages.
                     * @param message ResourcePolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyList.verify|verify} messages.
                     * @param message ResourcePolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyList;

                    /**
                     * Decodes a ResourcePolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyList;

                    /**
                     * Verifies a ResourcePolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyList;

                    /**
                     * Creates a plain object from a ResourcePolicyList message. Also converts values to other types if specified.
                     * @param message ResourcePolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyResourceStatus. */
                interface IResourcePolicyResourceStatus {

                    /** ResourcePolicyResourceStatus instanceSchedulePolicy */
                    instanceSchedulePolicy?: (google.cloud.compute.v1beta.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus|null);
                }

                /** Represents a ResourcePolicyResourceStatus. */
                class ResourcePolicyResourceStatus implements IResourcePolicyResourceStatus {

                    /**
                     * Constructs a new ResourcePolicyResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyResourceStatus);

                    /** ResourcePolicyResourceStatus instanceSchedulePolicy. */
                    public instanceSchedulePolicy?: (google.cloud.compute.v1beta.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus|null);

                    /**
                     * Creates a new ResourcePolicyResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyResourceStatus): google.cloud.compute.v1beta.ResourcePolicyResourceStatus;

                    /**
                     * Encodes the specified ResourcePolicyResourceStatus message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyResourceStatus.verify|verify} messages.
                     * @param message ResourcePolicyResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyResourceStatus.verify|verify} messages.
                     * @param message ResourcePolicyResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyResourceStatus;

                    /**
                     * Decodes a ResourcePolicyResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyResourceStatus;

                    /**
                     * Verifies a ResourcePolicyResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyResourceStatus;

                    /**
                     * Creates a plain object from a ResourcePolicyResourceStatus message. Also converts values to other types if specified.
                     * @param message ResourcePolicyResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus. */
                interface IResourcePolicyResourceStatusInstanceSchedulePolicyStatus {

                    /** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus lastRunStartTime */
                    lastRunStartTime?: (string|null);

                    /** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus nextRunStartTime */
                    nextRunStartTime?: (string|null);
                }

                /** Represents a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus. */
                class ResourcePolicyResourceStatusInstanceSchedulePolicyStatus implements IResourcePolicyResourceStatusInstanceSchedulePolicyStatus {

                    /**
                     * Constructs a new ResourcePolicyResourceStatusInstanceSchedulePolicyStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus);

                    /** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus lastRunStartTime. */
                    public lastRunStartTime?: (string|null);

                    /** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus nextRunStartTime. */
                    public nextRunStartTime?: (string|null);

                    /**
                     * Creates a new ResourcePolicyResourceStatusInstanceSchedulePolicyStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyResourceStatusInstanceSchedulePolicyStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus): google.cloud.compute.v1beta.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus;

                    /**
                     * Encodes the specified ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus.verify|verify} messages.
                     * @param message ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus.verify|verify} messages.
                     * @param message ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyResourceStatusInstanceSchedulePolicyStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus;

                    /**
                     * Decodes a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus;

                    /**
                     * Verifies a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus;

                    /**
                     * Creates a plain object from a ResourcePolicyResourceStatusInstanceSchedulePolicyStatus message. Also converts values to other types if specified.
                     * @param message ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyResourceStatusInstanceSchedulePolicyStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicySnapshotSchedulePolicy. */
                interface IResourcePolicySnapshotSchedulePolicy {

                    /** ResourcePolicySnapshotSchedulePolicy retentionPolicy */
                    retentionPolicy?: (google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicyRetentionPolicy|null);

                    /** ResourcePolicySnapshotSchedulePolicy schedule */
                    schedule?: (google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySchedule|null);

                    /** ResourcePolicySnapshotSchedulePolicy snapshotProperties */
                    snapshotProperties?: (google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySnapshotProperties|null);
                }

                /** Represents a ResourcePolicySnapshotSchedulePolicy. */
                class ResourcePolicySnapshotSchedulePolicy implements IResourcePolicySnapshotSchedulePolicy {

                    /**
                     * Constructs a new ResourcePolicySnapshotSchedulePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicy);

                    /** ResourcePolicySnapshotSchedulePolicy retentionPolicy. */
                    public retentionPolicy?: (google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicyRetentionPolicy|null);

                    /** ResourcePolicySnapshotSchedulePolicy schedule. */
                    public schedule?: (google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySchedule|null);

                    /** ResourcePolicySnapshotSchedulePolicy snapshotProperties. */
                    public snapshotProperties?: (google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySnapshotProperties|null);

                    /**
                     * Creates a new ResourcePolicySnapshotSchedulePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicySnapshotSchedulePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicy): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicy;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicy.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicy.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicySnapshotSchedulePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicy;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicySnapshotSchedulePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicy;

                    /**
                     * Verifies a ResourcePolicySnapshotSchedulePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicySnapshotSchedulePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicySnapshotSchedulePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicy;

                    /**
                     * Creates a plain object from a ResourcePolicySnapshotSchedulePolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicySnapshotSchedulePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicySnapshotSchedulePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicySnapshotSchedulePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicySnapshotSchedulePolicyRetentionPolicy. */
                interface IResourcePolicySnapshotSchedulePolicyRetentionPolicy {

                    /** ResourcePolicySnapshotSchedulePolicyRetentionPolicy maxRetentionDays */
                    maxRetentionDays?: (number|null);

                    /** ResourcePolicySnapshotSchedulePolicyRetentionPolicy onSourceDiskDelete */
                    onSourceDiskDelete?: (string|null);
                }

                /** Represents a ResourcePolicySnapshotSchedulePolicyRetentionPolicy. */
                class ResourcePolicySnapshotSchedulePolicyRetentionPolicy implements IResourcePolicySnapshotSchedulePolicyRetentionPolicy {

                    /**
                     * Constructs a new ResourcePolicySnapshotSchedulePolicyRetentionPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicyRetentionPolicy);

                    /** ResourcePolicySnapshotSchedulePolicyRetentionPolicy maxRetentionDays. */
                    public maxRetentionDays?: (number|null);

                    /** ResourcePolicySnapshotSchedulePolicyRetentionPolicy onSourceDiskDelete. */
                    public onSourceDiskDelete?: (string|null);

                    /**
                     * Creates a new ResourcePolicySnapshotSchedulePolicyRetentionPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicySnapshotSchedulePolicyRetentionPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicyRetentionPolicy): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicyRetentionPolicy;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicyRetentionPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicyRetentionPolicy.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicyRetentionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicyRetentionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicyRetentionPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicyRetentionPolicy.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicyRetentionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicyRetentionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicyRetentionPolicy;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicyRetentionPolicy;

                    /**
                     * Verifies a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicyRetentionPolicy;

                    /**
                     * Creates a plain object from a ResourcePolicySnapshotSchedulePolicyRetentionPolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicyRetentionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicySnapshotSchedulePolicyRetentionPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicySnapshotSchedulePolicyRetentionPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicySnapshotSchedulePolicyRetentionPolicy {

                    /** OnSourceDiskDelete enum. */
                    enum OnSourceDiskDelete {
                        UNDEFINED_ON_SOURCE_DISK_DELETE = 0,
                        APPLY_RETENTION_POLICY = 535071332,
                        KEEP_AUTO_SNAPSHOTS = 258925689,
                        UNSPECIFIED_ON_SOURCE_DISK_DELETE = 239140769
                    }
                }

                /** Properties of a ResourcePolicySnapshotSchedulePolicySchedule. */
                interface IResourcePolicySnapshotSchedulePolicySchedule {

                    /** ResourcePolicySnapshotSchedulePolicySchedule dailySchedule */
                    dailySchedule?: (google.cloud.compute.v1beta.IResourcePolicyDailyCycle|null);

                    /** ResourcePolicySnapshotSchedulePolicySchedule hourlySchedule */
                    hourlySchedule?: (google.cloud.compute.v1beta.IResourcePolicyHourlyCycle|null);

                    /** ResourcePolicySnapshotSchedulePolicySchedule weeklySchedule */
                    weeklySchedule?: (google.cloud.compute.v1beta.IResourcePolicyWeeklyCycle|null);
                }

                /** Represents a ResourcePolicySnapshotSchedulePolicySchedule. */
                class ResourcePolicySnapshotSchedulePolicySchedule implements IResourcePolicySnapshotSchedulePolicySchedule {

                    /**
                     * Constructs a new ResourcePolicySnapshotSchedulePolicySchedule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySchedule);

                    /** ResourcePolicySnapshotSchedulePolicySchedule dailySchedule. */
                    public dailySchedule?: (google.cloud.compute.v1beta.IResourcePolicyDailyCycle|null);

                    /** ResourcePolicySnapshotSchedulePolicySchedule hourlySchedule. */
                    public hourlySchedule?: (google.cloud.compute.v1beta.IResourcePolicyHourlyCycle|null);

                    /** ResourcePolicySnapshotSchedulePolicySchedule weeklySchedule. */
                    public weeklySchedule?: (google.cloud.compute.v1beta.IResourcePolicyWeeklyCycle|null);

                    /**
                     * Creates a new ResourcePolicySnapshotSchedulePolicySchedule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicySnapshotSchedulePolicySchedule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySchedule): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySchedule;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicySchedule message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySchedule.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicySchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicySchedule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySchedule.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicySchedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicySchedule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicySnapshotSchedulePolicySchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySchedule;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicySchedule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicySnapshotSchedulePolicySchedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySchedule;

                    /**
                     * Verifies a ResourcePolicySnapshotSchedulePolicySchedule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicySnapshotSchedulePolicySchedule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicySnapshotSchedulePolicySchedule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySchedule;

                    /**
                     * Creates a plain object from a ResourcePolicySnapshotSchedulePolicySchedule message. Also converts values to other types if specified.
                     * @param message ResourcePolicySnapshotSchedulePolicySchedule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySchedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicySnapshotSchedulePolicySchedule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicySnapshotSchedulePolicySchedule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicySnapshotSchedulePolicySnapshotProperties. */
                interface IResourcePolicySnapshotSchedulePolicySnapshotProperties {

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties chainName */
                    chainName?: (string|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties guestFlush */
                    guestFlush?: (boolean|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties labels */
                    labels?: ({ [k: string]: string }|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties region */
                    region?: (string|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties storageLocations */
                    storageLocations?: (string[]|null);
                }

                /** Represents a ResourcePolicySnapshotSchedulePolicySnapshotProperties. */
                class ResourcePolicySnapshotSchedulePolicySnapshotProperties implements IResourcePolicySnapshotSchedulePolicySnapshotProperties {

                    /**
                     * Constructs a new ResourcePolicySnapshotSchedulePolicySnapshotProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySnapshotProperties);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties chainName. */
                    public chainName?: (string|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties guestFlush. */
                    public guestFlush?: (boolean|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties labels. */
                    public labels: { [k: string]: string };

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties region. */
                    public region?: (string|null);

                    /** ResourcePolicySnapshotSchedulePolicySnapshotProperties storageLocations. */
                    public storageLocations: string[];

                    /**
                     * Creates a new ResourcePolicySnapshotSchedulePolicySnapshotProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicySnapshotSchedulePolicySnapshotProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySnapshotProperties): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySnapshotProperties;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicySnapshotProperties message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySnapshotProperties.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicySnapshotProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySnapshotProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicySnapshotSchedulePolicySnapshotProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySnapshotProperties.verify|verify} messages.
                     * @param message ResourcePolicySnapshotSchedulePolicySnapshotProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicySnapshotSchedulePolicySnapshotProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicySnapshotProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySnapshotProperties;

                    /**
                     * Decodes a ResourcePolicySnapshotSchedulePolicySnapshotProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySnapshotProperties;

                    /**
                     * Verifies a ResourcePolicySnapshotSchedulePolicySnapshotProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicySnapshotSchedulePolicySnapshotProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySnapshotProperties;

                    /**
                     * Creates a plain object from a ResourcePolicySnapshotSchedulePolicySnapshotProperties message. Also converts values to other types if specified.
                     * @param message ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicySnapshotSchedulePolicySnapshotProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicySnapshotSchedulePolicySnapshotProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicySnapshotSchedulePolicySnapshotProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyWeeklyCycle. */
                interface IResourcePolicyWeeklyCycle {

                    /** ResourcePolicyWeeklyCycle dayOfWeeks */
                    dayOfWeeks?: (google.cloud.compute.v1beta.IResourcePolicyWeeklyCycleDayOfWeek[]|null);
                }

                /** Represents a ResourcePolicyWeeklyCycle. */
                class ResourcePolicyWeeklyCycle implements IResourcePolicyWeeklyCycle {

                    /**
                     * Constructs a new ResourcePolicyWeeklyCycle.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycle);

                    /** ResourcePolicyWeeklyCycle dayOfWeeks. */
                    public dayOfWeeks: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycleDayOfWeek[];

                    /**
                     * Creates a new ResourcePolicyWeeklyCycle instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyWeeklyCycle instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycle): google.cloud.compute.v1beta.ResourcePolicyWeeklyCycle;

                    /**
                     * Encodes the specified ResourcePolicyWeeklyCycle message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyWeeklyCycle.verify|verify} messages.
                     * @param message ResourcePolicyWeeklyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyWeeklyCycle message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyWeeklyCycle.verify|verify} messages.
                     * @param message ResourcePolicyWeeklyCycle message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycle, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyWeeklyCycle message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyWeeklyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyWeeklyCycle;

                    /**
                     * Decodes a ResourcePolicyWeeklyCycle message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyWeeklyCycle
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyWeeklyCycle;

                    /**
                     * Verifies a ResourcePolicyWeeklyCycle message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyWeeklyCycle message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyWeeklyCycle
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyWeeklyCycle;

                    /**
                     * Creates a plain object from a ResourcePolicyWeeklyCycle message. Also converts values to other types if specified.
                     * @param message ResourcePolicyWeeklyCycle
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyWeeklyCycle, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyWeeklyCycle to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyWeeklyCycle
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourcePolicyWeeklyCycleDayOfWeek. */
                interface IResourcePolicyWeeklyCycleDayOfWeek {

                    /** ResourcePolicyWeeklyCycleDayOfWeek day */
                    day?: (string|null);

                    /** ResourcePolicyWeeklyCycleDayOfWeek duration */
                    duration?: (string|null);

                    /** ResourcePolicyWeeklyCycleDayOfWeek startTime */
                    startTime?: (string|null);
                }

                /** Represents a ResourcePolicyWeeklyCycleDayOfWeek. */
                class ResourcePolicyWeeklyCycleDayOfWeek implements IResourcePolicyWeeklyCycleDayOfWeek {

                    /**
                     * Constructs a new ResourcePolicyWeeklyCycleDayOfWeek.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycleDayOfWeek);

                    /** ResourcePolicyWeeklyCycleDayOfWeek day. */
                    public day?: (string|null);

                    /** ResourcePolicyWeeklyCycleDayOfWeek duration. */
                    public duration?: (string|null);

                    /** ResourcePolicyWeeklyCycleDayOfWeek startTime. */
                    public startTime?: (string|null);

                    /**
                     * Creates a new ResourcePolicyWeeklyCycleDayOfWeek instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyWeeklyCycleDayOfWeek instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycleDayOfWeek): google.cloud.compute.v1beta.ResourcePolicyWeeklyCycleDayOfWeek;

                    /**
                     * Encodes the specified ResourcePolicyWeeklyCycleDayOfWeek message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyWeeklyCycleDayOfWeek.verify|verify} messages.
                     * @param message ResourcePolicyWeeklyCycleDayOfWeek message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycleDayOfWeek, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyWeeklyCycleDayOfWeek message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyWeeklyCycleDayOfWeek.verify|verify} messages.
                     * @param message ResourcePolicyWeeklyCycleDayOfWeek message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyWeeklyCycleDayOfWeek, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyWeeklyCycleDayOfWeek message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyWeeklyCycleDayOfWeek
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyWeeklyCycleDayOfWeek;

                    /**
                     * Decodes a ResourcePolicyWeeklyCycleDayOfWeek message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyWeeklyCycleDayOfWeek
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyWeeklyCycleDayOfWeek;

                    /**
                     * Verifies a ResourcePolicyWeeklyCycleDayOfWeek message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyWeeklyCycleDayOfWeek message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyWeeklyCycleDayOfWeek
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyWeeklyCycleDayOfWeek;

                    /**
                     * Creates a plain object from a ResourcePolicyWeeklyCycleDayOfWeek message. Also converts values to other types if specified.
                     * @param message ResourcePolicyWeeklyCycleDayOfWeek
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyWeeklyCycleDayOfWeek, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyWeeklyCycleDayOfWeek to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyWeeklyCycleDayOfWeek
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicyWeeklyCycleDayOfWeek {

                    /** Day enum. */
                    enum Day {
                        UNDEFINED_DAY = 0,
                        FRIDAY = 471398751,
                        INVALID = 530283991,
                        MONDAY = 132310288,
                        SATURDAY = 279037881,
                        SUNDAY = 309626320,
                        THURSDAY = 207198682,
                        TUESDAY = 277509677,
                        WEDNESDAY = 422029110
                    }
                }

                /** Properties of a ResourcePolicyWorkloadPolicy. */
                interface IResourcePolicyWorkloadPolicy {

                    /** ResourcePolicyWorkloadPolicy acceleratorTopology */
                    acceleratorTopology?: (string|null);

                    /** ResourcePolicyWorkloadPolicy acceleratorTopologyMode */
                    acceleratorTopologyMode?: (string|null);

                    /** ResourcePolicyWorkloadPolicy maxTopologyDistance */
                    maxTopologyDistance?: (string|null);

                    /** ResourcePolicyWorkloadPolicy type */
                    type?: (string|null);
                }

                /** Represents a ResourcePolicyWorkloadPolicy. */
                class ResourcePolicyWorkloadPolicy implements IResourcePolicyWorkloadPolicy {

                    /**
                     * Constructs a new ResourcePolicyWorkloadPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourcePolicyWorkloadPolicy);

                    /** ResourcePolicyWorkloadPolicy acceleratorTopology. */
                    public acceleratorTopology?: (string|null);

                    /** ResourcePolicyWorkloadPolicy acceleratorTopologyMode. */
                    public acceleratorTopologyMode?: (string|null);

                    /** ResourcePolicyWorkloadPolicy maxTopologyDistance. */
                    public maxTopologyDistance?: (string|null);

                    /** ResourcePolicyWorkloadPolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new ResourcePolicyWorkloadPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourcePolicyWorkloadPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourcePolicyWorkloadPolicy): google.cloud.compute.v1beta.ResourcePolicyWorkloadPolicy;

                    /**
                     * Encodes the specified ResourcePolicyWorkloadPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyWorkloadPolicy.verify|verify} messages.
                     * @param message ResourcePolicyWorkloadPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourcePolicyWorkloadPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourcePolicyWorkloadPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourcePolicyWorkloadPolicy.verify|verify} messages.
                     * @param message ResourcePolicyWorkloadPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourcePolicyWorkloadPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourcePolicyWorkloadPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourcePolicyWorkloadPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourcePolicyWorkloadPolicy;

                    /**
                     * Decodes a ResourcePolicyWorkloadPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourcePolicyWorkloadPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourcePolicyWorkloadPolicy;

                    /**
                     * Verifies a ResourcePolicyWorkloadPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourcePolicyWorkloadPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourcePolicyWorkloadPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourcePolicyWorkloadPolicy;

                    /**
                     * Creates a plain object from a ResourcePolicyWorkloadPolicy message. Also converts values to other types if specified.
                     * @param message ResourcePolicyWorkloadPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourcePolicyWorkloadPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourcePolicyWorkloadPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourcePolicyWorkloadPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourcePolicyWorkloadPolicy {

                    /** AcceleratorTopologyMode enum. */
                    enum AcceleratorTopologyMode {
                        UNDEFINED_ACCELERATOR_TOPOLOGY_MODE = 0,
                        AUTO_CONNECT = 491872826,
                        PROVISION_ONLY = 399134966
                    }

                    /** MaxTopologyDistance enum. */
                    enum MaxTopologyDistance {
                        UNDEFINED_MAX_TOPOLOGY_DISTANCE = 0,
                        BLOCK = 63294573,
                        CLUSTER = 516333018,
                        SUBBLOCK = 316202573
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HIGH_AVAILABILITY = 409487576,
                        HIGH_THROUGHPUT = 146499815
                    }
                }

                /** Properties of a ResourceStatus. */
                interface IResourceStatus {

                    /** ResourceStatus effectiveInstanceMetadata */
                    effectiveInstanceMetadata?: (google.cloud.compute.v1beta.IResourceStatusEffectiveInstanceMetadata|null);

                    /** ResourceStatus physicalHost */
                    physicalHost?: (string|null);

                    /** ResourceStatus physicalHostTopology */
                    physicalHostTopology?: (google.cloud.compute.v1beta.IResourceStatusPhysicalHostTopology|null);

                    /** ResourceStatus reservationConsumptionInfo */
                    reservationConsumptionInfo?: (google.cloud.compute.v1beta.IResourceStatusReservationConsumptionInfo|null);

                    /** ResourceStatus scheduling */
                    scheduling?: (google.cloud.compute.v1beta.IResourceStatusScheduling|null);

                    /** ResourceStatus shutdownDetails */
                    shutdownDetails?: (google.cloud.compute.v1beta.IResourceStatusShutdownDetails|null);

                    /** ResourceStatus upcomingMaintenance */
                    upcomingMaintenance?: (google.cloud.compute.v1beta.IUpcomingMaintenance|null);
                }

                /** Represents a ResourceStatus. */
                class ResourceStatus implements IResourceStatus {

                    /**
                     * Constructs a new ResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourceStatus);

                    /** ResourceStatus effectiveInstanceMetadata. */
                    public effectiveInstanceMetadata?: (google.cloud.compute.v1beta.IResourceStatusEffectiveInstanceMetadata|null);

                    /** ResourceStatus physicalHost. */
                    public physicalHost?: (string|null);

                    /** ResourceStatus physicalHostTopology. */
                    public physicalHostTopology?: (google.cloud.compute.v1beta.IResourceStatusPhysicalHostTopology|null);

                    /** ResourceStatus reservationConsumptionInfo. */
                    public reservationConsumptionInfo?: (google.cloud.compute.v1beta.IResourceStatusReservationConsumptionInfo|null);

                    /** ResourceStatus scheduling. */
                    public scheduling?: (google.cloud.compute.v1beta.IResourceStatusScheduling|null);

                    /** ResourceStatus shutdownDetails. */
                    public shutdownDetails?: (google.cloud.compute.v1beta.IResourceStatusShutdownDetails|null);

                    /** ResourceStatus upcomingMaintenance. */
                    public upcomingMaintenance?: (google.cloud.compute.v1beta.IUpcomingMaintenance|null);

                    /**
                     * Creates a new ResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourceStatus): google.cloud.compute.v1beta.ResourceStatus;

                    /**
                     * Encodes the specified ResourceStatus message. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatus.verify|verify} messages.
                     * @param message ResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatus.verify|verify} messages.
                     * @param message ResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourceStatus;

                    /**
                     * Decodes a ResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourceStatus;

                    /**
                     * Verifies a ResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourceStatus;

                    /**
                     * Creates a plain object from a ResourceStatus message. Also converts values to other types if specified.
                     * @param message ResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusEffectiveInstanceMetadata. */
                interface IResourceStatusEffectiveInstanceMetadata {

                    /** ResourceStatusEffectiveInstanceMetadata blockProjectSshKeysMetadataValue */
                    blockProjectSshKeysMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableGuestAttributesMetadataValue */
                    enableGuestAttributesMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsInventoryMetadataValue */
                    enableOsInventoryMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsconfigMetadataValue */
                    enableOsconfigMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsloginMetadataValue */
                    enableOsloginMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata gceContainerDeclarationMetadataValue */
                    gceContainerDeclarationMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata serialPortEnableMetadataValue */
                    serialPortEnableMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata serialPortLoggingEnableMetadataValue */
                    serialPortLoggingEnableMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata vmDnsSettingMetadataValue */
                    vmDnsSettingMetadataValue?: (string|null);
                }

                /** Represents a ResourceStatusEffectiveInstanceMetadata. */
                class ResourceStatusEffectiveInstanceMetadata implements IResourceStatusEffectiveInstanceMetadata {

                    /**
                     * Constructs a new ResourceStatusEffectiveInstanceMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourceStatusEffectiveInstanceMetadata);

                    /** ResourceStatusEffectiveInstanceMetadata blockProjectSshKeysMetadataValue. */
                    public blockProjectSshKeysMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableGuestAttributesMetadataValue. */
                    public enableGuestAttributesMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsInventoryMetadataValue. */
                    public enableOsInventoryMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsconfigMetadataValue. */
                    public enableOsconfigMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata enableOsloginMetadataValue. */
                    public enableOsloginMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata gceContainerDeclarationMetadataValue. */
                    public gceContainerDeclarationMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata serialPortEnableMetadataValue. */
                    public serialPortEnableMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata serialPortLoggingEnableMetadataValue. */
                    public serialPortLoggingEnableMetadataValue?: (boolean|null);

                    /** ResourceStatusEffectiveInstanceMetadata vmDnsSettingMetadataValue. */
                    public vmDnsSettingMetadataValue?: (string|null);

                    /**
                     * Creates a new ResourceStatusEffectiveInstanceMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusEffectiveInstanceMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourceStatusEffectiveInstanceMetadata): google.cloud.compute.v1beta.ResourceStatusEffectiveInstanceMetadata;

                    /**
                     * Encodes the specified ResourceStatusEffectiveInstanceMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusEffectiveInstanceMetadata.verify|verify} messages.
                     * @param message ResourceStatusEffectiveInstanceMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourceStatusEffectiveInstanceMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusEffectiveInstanceMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusEffectiveInstanceMetadata.verify|verify} messages.
                     * @param message ResourceStatusEffectiveInstanceMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourceStatusEffectiveInstanceMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusEffectiveInstanceMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusEffectiveInstanceMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourceStatusEffectiveInstanceMetadata;

                    /**
                     * Decodes a ResourceStatusEffectiveInstanceMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusEffectiveInstanceMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourceStatusEffectiveInstanceMetadata;

                    /**
                     * Verifies a ResourceStatusEffectiveInstanceMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusEffectiveInstanceMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusEffectiveInstanceMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourceStatusEffectiveInstanceMetadata;

                    /**
                     * Creates a plain object from a ResourceStatusEffectiveInstanceMetadata message. Also converts values to other types if specified.
                     * @param message ResourceStatusEffectiveInstanceMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourceStatusEffectiveInstanceMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusEffectiveInstanceMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusEffectiveInstanceMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusPhysicalHostTopology. */
                interface IResourceStatusPhysicalHostTopology {

                    /** ResourceStatusPhysicalHostTopology block */
                    block?: (string|null);

                    /** ResourceStatusPhysicalHostTopology cluster */
                    cluster?: (string|null);

                    /** ResourceStatusPhysicalHostTopology host */
                    host?: (string|null);

                    /** ResourceStatusPhysicalHostTopology subblock */
                    subblock?: (string|null);
                }

                /** Represents a ResourceStatusPhysicalHostTopology. */
                class ResourceStatusPhysicalHostTopology implements IResourceStatusPhysicalHostTopology {

                    /**
                     * Constructs a new ResourceStatusPhysicalHostTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourceStatusPhysicalHostTopology);

                    /** ResourceStatusPhysicalHostTopology block. */
                    public block?: (string|null);

                    /** ResourceStatusPhysicalHostTopology cluster. */
                    public cluster?: (string|null);

                    /** ResourceStatusPhysicalHostTopology host. */
                    public host?: (string|null);

                    /** ResourceStatusPhysicalHostTopology subblock. */
                    public subblock?: (string|null);

                    /**
                     * Creates a new ResourceStatusPhysicalHostTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusPhysicalHostTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourceStatusPhysicalHostTopology): google.cloud.compute.v1beta.ResourceStatusPhysicalHostTopology;

                    /**
                     * Encodes the specified ResourceStatusPhysicalHostTopology message. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusPhysicalHostTopology.verify|verify} messages.
                     * @param message ResourceStatusPhysicalHostTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourceStatusPhysicalHostTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusPhysicalHostTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusPhysicalHostTopology.verify|verify} messages.
                     * @param message ResourceStatusPhysicalHostTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourceStatusPhysicalHostTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusPhysicalHostTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusPhysicalHostTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourceStatusPhysicalHostTopology;

                    /**
                     * Decodes a ResourceStatusPhysicalHostTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusPhysicalHostTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourceStatusPhysicalHostTopology;

                    /**
                     * Verifies a ResourceStatusPhysicalHostTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusPhysicalHostTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusPhysicalHostTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourceStatusPhysicalHostTopology;

                    /**
                     * Creates a plain object from a ResourceStatusPhysicalHostTopology message. Also converts values to other types if specified.
                     * @param message ResourceStatusPhysicalHostTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourceStatusPhysicalHostTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusPhysicalHostTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusPhysicalHostTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusReservationConsumptionInfo. */
                interface IResourceStatusReservationConsumptionInfo {

                    /** ResourceStatusReservationConsumptionInfo consumedReservation */
                    consumedReservation?: (string|null);
                }

                /** Represents a ResourceStatusReservationConsumptionInfo. */
                class ResourceStatusReservationConsumptionInfo implements IResourceStatusReservationConsumptionInfo {

                    /**
                     * Constructs a new ResourceStatusReservationConsumptionInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourceStatusReservationConsumptionInfo);

                    /** ResourceStatusReservationConsumptionInfo consumedReservation. */
                    public consumedReservation?: (string|null);

                    /**
                     * Creates a new ResourceStatusReservationConsumptionInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusReservationConsumptionInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourceStatusReservationConsumptionInfo): google.cloud.compute.v1beta.ResourceStatusReservationConsumptionInfo;

                    /**
                     * Encodes the specified ResourceStatusReservationConsumptionInfo message. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusReservationConsumptionInfo.verify|verify} messages.
                     * @param message ResourceStatusReservationConsumptionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourceStatusReservationConsumptionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusReservationConsumptionInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusReservationConsumptionInfo.verify|verify} messages.
                     * @param message ResourceStatusReservationConsumptionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourceStatusReservationConsumptionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusReservationConsumptionInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusReservationConsumptionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourceStatusReservationConsumptionInfo;

                    /**
                     * Decodes a ResourceStatusReservationConsumptionInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusReservationConsumptionInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourceStatusReservationConsumptionInfo;

                    /**
                     * Verifies a ResourceStatusReservationConsumptionInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusReservationConsumptionInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusReservationConsumptionInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourceStatusReservationConsumptionInfo;

                    /**
                     * Creates a plain object from a ResourceStatusReservationConsumptionInfo message. Also converts values to other types if specified.
                     * @param message ResourceStatusReservationConsumptionInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourceStatusReservationConsumptionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusReservationConsumptionInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusReservationConsumptionInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusScheduling. */
                interface IResourceStatusScheduling {

                    /** ResourceStatusScheduling availabilityDomain */
                    availabilityDomain?: (number|null);

                    /** ResourceStatusScheduling terminationTimestamp */
                    terminationTimestamp?: (string|null);
                }

                /** Represents a ResourceStatusScheduling. */
                class ResourceStatusScheduling implements IResourceStatusScheduling {

                    /**
                     * Constructs a new ResourceStatusScheduling.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourceStatusScheduling);

                    /** ResourceStatusScheduling availabilityDomain. */
                    public availabilityDomain?: (number|null);

                    /** ResourceStatusScheduling terminationTimestamp. */
                    public terminationTimestamp?: (string|null);

                    /**
                     * Creates a new ResourceStatusScheduling instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusScheduling instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourceStatusScheduling): google.cloud.compute.v1beta.ResourceStatusScheduling;

                    /**
                     * Encodes the specified ResourceStatusScheduling message. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusScheduling.verify|verify} messages.
                     * @param message ResourceStatusScheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourceStatusScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusScheduling message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusScheduling.verify|verify} messages.
                     * @param message ResourceStatusScheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourceStatusScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusScheduling message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusScheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourceStatusScheduling;

                    /**
                     * Decodes a ResourceStatusScheduling message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusScheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourceStatusScheduling;

                    /**
                     * Verifies a ResourceStatusScheduling message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusScheduling message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusScheduling
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourceStatusScheduling;

                    /**
                     * Creates a plain object from a ResourceStatusScheduling message. Also converts values to other types if specified.
                     * @param message ResourceStatusScheduling
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourceStatusScheduling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusScheduling to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusScheduling
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResourceStatusShutdownDetails. */
                interface IResourceStatusShutdownDetails {

                    /** ResourceStatusShutdownDetails maxDuration */
                    maxDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** ResourceStatusShutdownDetails requestTimestamp */
                    requestTimestamp?: (string|null);

                    /** ResourceStatusShutdownDetails stopState */
                    stopState?: (string|null);

                    /** ResourceStatusShutdownDetails targetState */
                    targetState?: (string|null);
                }

                /** Represents a ResourceStatusShutdownDetails. */
                class ResourceStatusShutdownDetails implements IResourceStatusShutdownDetails {

                    /**
                     * Constructs a new ResourceStatusShutdownDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResourceStatusShutdownDetails);

                    /** ResourceStatusShutdownDetails maxDuration. */
                    public maxDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** ResourceStatusShutdownDetails requestTimestamp. */
                    public requestTimestamp?: (string|null);

                    /** ResourceStatusShutdownDetails stopState. */
                    public stopState?: (string|null);

                    /** ResourceStatusShutdownDetails targetState. */
                    public targetState?: (string|null);

                    /**
                     * Creates a new ResourceStatusShutdownDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResourceStatusShutdownDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResourceStatusShutdownDetails): google.cloud.compute.v1beta.ResourceStatusShutdownDetails;

                    /**
                     * Encodes the specified ResourceStatusShutdownDetails message. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusShutdownDetails.verify|verify} messages.
                     * @param message ResourceStatusShutdownDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResourceStatusShutdownDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResourceStatusShutdownDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResourceStatusShutdownDetails.verify|verify} messages.
                     * @param message ResourceStatusShutdownDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResourceStatusShutdownDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResourceStatusShutdownDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResourceStatusShutdownDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResourceStatusShutdownDetails;

                    /**
                     * Decodes a ResourceStatusShutdownDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResourceStatusShutdownDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResourceStatusShutdownDetails;

                    /**
                     * Verifies a ResourceStatusShutdownDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResourceStatusShutdownDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResourceStatusShutdownDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResourceStatusShutdownDetails;

                    /**
                     * Creates a plain object from a ResourceStatusShutdownDetails message. Also converts values to other types if specified.
                     * @param message ResourceStatusShutdownDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResourceStatusShutdownDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResourceStatusShutdownDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResourceStatusShutdownDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ResourceStatusShutdownDetails {

                    /** StopState enum. */
                    enum StopState {
                        UNDEFINED_STOP_STATE = 0,
                        PENDING_STOP = 362509770,
                        STOPPING = 350791796
                    }

                    /** TargetState enum. */
                    enum TargetState {
                        UNDEFINED_TARGET_STATE = 0,
                        DELETED = 120962041,
                        STOPPED = 444276141
                    }
                }

                /** Properties of a ResumeInstanceRequest. */
                interface IResumeInstanceRequest {

                    /** ResumeInstanceRequest instance */
                    instance?: (string|null);

                    /** ResumeInstanceRequest instancesResumeRequestResource */
                    instancesResumeRequestResource?: (google.cloud.compute.v1beta.IInstancesResumeRequest|null);

                    /** ResumeInstanceRequest project */
                    project?: (string|null);

                    /** ResumeInstanceRequest requestId */
                    requestId?: (string|null);

                    /** ResumeInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResumeInstanceRequest. */
                class ResumeInstanceRequest implements IResumeInstanceRequest {

                    /**
                     * Constructs a new ResumeInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResumeInstanceRequest);

                    /** ResumeInstanceRequest instance. */
                    public instance: string;

                    /** ResumeInstanceRequest instancesResumeRequestResource. */
                    public instancesResumeRequestResource?: (google.cloud.compute.v1beta.IInstancesResumeRequest|null);

                    /** ResumeInstanceRequest project. */
                    public project: string;

                    /** ResumeInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** ResumeInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResumeInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResumeInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResumeInstanceRequest): google.cloud.compute.v1beta.ResumeInstanceRequest;

                    /**
                     * Encodes the specified ResumeInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResumeInstanceRequest.verify|verify} messages.
                     * @param message ResumeInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResumeInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResumeInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResumeInstanceRequest.verify|verify} messages.
                     * @param message ResumeInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResumeInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResumeInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResumeInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResumeInstanceRequest;

                    /**
                     * Decodes a ResumeInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResumeInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResumeInstanceRequest;

                    /**
                     * Verifies a ResumeInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResumeInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResumeInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResumeInstanceRequest;

                    /**
                     * Creates a plain object from a ResumeInstanceRequest message. Also converts values to other types if specified.
                     * @param message ResumeInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResumeInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResumeInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResumeInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResumeInstancesInstanceGroupManagerRequest. */
                interface IResumeInstancesInstanceGroupManagerRequest {

                    /** ResumeInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResumeInstancesInstanceGroupManagerRequest instanceGroupManagersResumeInstancesRequestResource */
                    instanceGroupManagersResumeInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersResumeInstancesRequest|null);

                    /** ResumeInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResumeInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** ResumeInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a ResumeInstancesInstanceGroupManagerRequest. */
                class ResumeInstancesInstanceGroupManagerRequest implements IResumeInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResumeInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResumeInstancesInstanceGroupManagerRequest);

                    /** ResumeInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResumeInstancesInstanceGroupManagerRequest instanceGroupManagersResumeInstancesRequestResource. */
                    public instanceGroupManagersResumeInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersResumeInstancesRequest|null);

                    /** ResumeInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResumeInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** ResumeInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new ResumeInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResumeInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResumeInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.ResumeInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResumeInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResumeInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResumeInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResumeInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResumeInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResumeInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResumeInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResumeInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResumeInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResumeInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResumeInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResumeInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResumeInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResumeInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResumeInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResumeInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResumeInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResumeInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResumeInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResumeInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResumeInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResumeInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResumeInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ResumeInstancesRegionInstanceGroupManagerRequest. */
                interface IResumeInstancesRegionInstanceGroupManagerRequest {

                    /** ResumeInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersResumeInstancesRequestResource */
                    regionInstanceGroupManagersResumeInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersResumeInstancesRequest|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a ResumeInstancesRegionInstanceGroupManagerRequest. */
                class ResumeInstancesRegionInstanceGroupManagerRequest implements IResumeInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new ResumeInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IResumeInstancesRegionInstanceGroupManagerRequest);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** ResumeInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** ResumeInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** ResumeInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersResumeInstancesRequestResource. */
                    public regionInstanceGroupManagersResumeInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersResumeInstancesRequest|null);

                    /** ResumeInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new ResumeInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ResumeInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IResumeInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.ResumeInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified ResumeInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ResumeInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResumeInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IResumeInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ResumeInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ResumeInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message ResumeInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IResumeInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ResumeInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ResumeInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ResumeInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a ResumeInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ResumeInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ResumeInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a ResumeInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ResumeInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ResumeInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ResumeInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a ResumeInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message ResumeInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ResumeInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ResumeInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ResumeInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Rollout. */
                interface IRollout {

                    /** Rollout cancellationTime */
                    cancellationTime?: (string|null);

                    /** Rollout completionTime */
                    completionTime?: (string|null);

                    /** Rollout creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Rollout currentWaveNumber */
                    currentWaveNumber?: (number|Long|string|null);

                    /** Rollout description */
                    description?: (string|null);

                    /** Rollout etag */
                    etag?: (string|null);

                    /** Rollout id */
                    id?: (number|Long|string|null);

                    /** Rollout kind */
                    kind?: (string|null);

                    /** Rollout name */
                    name?: (string|null);

                    /** Rollout rolloutEntity */
                    rolloutEntity?: (google.cloud.compute.v1beta.IRolloutRolloutEntity|null);

                    /** Rollout rolloutPlan */
                    rolloutPlan?: (string|null);

                    /** Rollout selfLink */
                    selfLink?: (string|null);

                    /** Rollout selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** Rollout state */
                    state?: (string|null);

                    /** Rollout waveDetails */
                    waveDetails?: (google.cloud.compute.v1beta.IRolloutWaveDetails[]|null);
                }

                /** Represents a Rollout. */
                class Rollout implements IRollout {

                    /**
                     * Constructs a new Rollout.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRollout);

                    /** Rollout cancellationTime. */
                    public cancellationTime?: (string|null);

                    /** Rollout completionTime. */
                    public completionTime?: (string|null);

                    /** Rollout creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Rollout currentWaveNumber. */
                    public currentWaveNumber?: (number|Long|string|null);

                    /** Rollout description. */
                    public description?: (string|null);

                    /** Rollout etag. */
                    public etag?: (string|null);

                    /** Rollout id. */
                    public id?: (number|Long|string|null);

                    /** Rollout kind. */
                    public kind?: (string|null);

                    /** Rollout name. */
                    public name?: (string|null);

                    /** Rollout rolloutEntity. */
                    public rolloutEntity?: (google.cloud.compute.v1beta.IRolloutRolloutEntity|null);

                    /** Rollout rolloutPlan. */
                    public rolloutPlan?: (string|null);

                    /** Rollout selfLink. */
                    public selfLink?: (string|null);

                    /** Rollout selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** Rollout state. */
                    public state?: (string|null);

                    /** Rollout waveDetails. */
                    public waveDetails: google.cloud.compute.v1beta.IRolloutWaveDetails[];

                    /**
                     * Creates a new Rollout instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Rollout instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRollout): google.cloud.compute.v1beta.Rollout;

                    /**
                     * Encodes the specified Rollout message. Does not implicitly {@link google.cloud.compute.v1beta.Rollout.verify|verify} messages.
                     * @param message Rollout message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRollout, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Rollout message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Rollout.verify|verify} messages.
                     * @param message Rollout message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRollout, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Rollout message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Rollout
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Rollout;

                    /**
                     * Decodes a Rollout message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Rollout
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Rollout;

                    /**
                     * Verifies a Rollout message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Rollout message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Rollout
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Rollout;

                    /**
                     * Creates a plain object from a Rollout message. Also converts values to other types if specified.
                     * @param message Rollout
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Rollout, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Rollout to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Rollout
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Rollout {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        CANCELLED = 41957681,
                        CANCELLING = 226950512,
                        CANCEL_FAILED = 389121442,
                        COMPLETED = 309921323,
                        COMPLETE_FAILED = 188367363,
                        COMPLETING = 480759734,
                        FAILED = 455706685,
                        PAUSED = 205491502,
                        PAUSE_FAILED = 7486150,
                        PAUSING = 464660755,
                        PROCESSING = 370416403,
                        READY = 77848963,
                        RESUMING = 446856618,
                        ROLLBACK_WAVE_FAILED = 326793064,
                        ROLLING_BACK = 259411649,
                        STATE_UNSPECIFIED = 470755401,
                        UNINITIALIZED = 327337595,
                        WAVE_FAILED = 195452995
                    }
                }

                /** Properties of a RolloutPlan. */
                interface IRolloutPlan {

                    /** RolloutPlan creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** RolloutPlan description */
                    description?: (string|null);

                    /** RolloutPlan id */
                    id?: (number|Long|string|null);

                    /** RolloutPlan kind */
                    kind?: (string|null);

                    /** RolloutPlan locationScope */
                    locationScope?: (string|null);

                    /** RolloutPlan name */
                    name?: (string|null);

                    /** RolloutPlan selfLink */
                    selfLink?: (string|null);

                    /** RolloutPlan selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** RolloutPlan waves */
                    waves?: (google.cloud.compute.v1beta.IRolloutPlanWave[]|null);
                }

                /** Represents a RolloutPlan. */
                class RolloutPlan implements IRolloutPlan {

                    /**
                     * Constructs a new RolloutPlan.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlan);

                    /** RolloutPlan creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** RolloutPlan description. */
                    public description?: (string|null);

                    /** RolloutPlan id. */
                    public id?: (number|Long|string|null);

                    /** RolloutPlan kind. */
                    public kind?: (string|null);

                    /** RolloutPlan locationScope. */
                    public locationScope?: (string|null);

                    /** RolloutPlan name. */
                    public name?: (string|null);

                    /** RolloutPlan selfLink. */
                    public selfLink?: (string|null);

                    /** RolloutPlan selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** RolloutPlan waves. */
                    public waves: google.cloud.compute.v1beta.IRolloutPlanWave[];

                    /**
                     * Creates a new RolloutPlan instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlan instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlan): google.cloud.compute.v1beta.RolloutPlan;

                    /**
                     * Encodes the specified RolloutPlan message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlan.verify|verify} messages.
                     * @param message RolloutPlan message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlan, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlan message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlan.verify|verify} messages.
                     * @param message RolloutPlan message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlan, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlan message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlan
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlan;

                    /**
                     * Decodes a RolloutPlan message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlan
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlan;

                    /**
                     * Verifies a RolloutPlan message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlan message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlan
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlan;

                    /**
                     * Creates a plain object from a RolloutPlan message. Also converts values to other types if specified.
                     * @param message RolloutPlan
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlan, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlan to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlan
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RolloutPlan {

                    /** LocationScope enum. */
                    enum LocationScope {
                        UNDEFINED_LOCATION_SCOPE = 0,
                        LOCATION_SCOPE_UNSPECIFIED = 416410498,
                        REGIONAL = 92288543,
                        ZONAL = 85547428
                    }
                }

                /** Properties of a RolloutPlanWave. */
                interface IRolloutPlanWave {

                    /** RolloutPlanWave displayName */
                    displayName?: (string|null);

                    /** RolloutPlanWave number */
                    number?: (number|Long|string|null);

                    /** RolloutPlanWave orchestrationOptions */
                    orchestrationOptions?: (google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptions|null);

                    /** RolloutPlanWave selectors */
                    selectors?: (google.cloud.compute.v1beta.IRolloutPlanWaveSelector[]|null);

                    /** RolloutPlanWave validation */
                    validation?: (google.cloud.compute.v1beta.IRolloutPlanWaveValidation|null);
                }

                /** Represents a RolloutPlanWave. */
                class RolloutPlanWave implements IRolloutPlanWave {

                    /**
                     * Constructs a new RolloutPlanWave.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlanWave);

                    /** RolloutPlanWave displayName. */
                    public displayName?: (string|null);

                    /** RolloutPlanWave number. */
                    public number?: (number|Long|string|null);

                    /** RolloutPlanWave orchestrationOptions. */
                    public orchestrationOptions?: (google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptions|null);

                    /** RolloutPlanWave selectors. */
                    public selectors: google.cloud.compute.v1beta.IRolloutPlanWaveSelector[];

                    /** RolloutPlanWave validation. */
                    public validation?: (google.cloud.compute.v1beta.IRolloutPlanWaveValidation|null);

                    /**
                     * Creates a new RolloutPlanWave instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlanWave instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlanWave): google.cloud.compute.v1beta.RolloutPlanWave;

                    /**
                     * Encodes the specified RolloutPlanWave message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWave.verify|verify} messages.
                     * @param message RolloutPlanWave message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlanWave, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlanWave message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWave.verify|verify} messages.
                     * @param message RolloutPlanWave message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlanWave, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlanWave message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlanWave
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlanWave;

                    /**
                     * Decodes a RolloutPlanWave message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlanWave
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlanWave;

                    /**
                     * Verifies a RolloutPlanWave message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlanWave message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlanWave
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlanWave;

                    /**
                     * Creates a plain object from a RolloutPlanWave message. Also converts values to other types if specified.
                     * @param message RolloutPlanWave
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlanWave, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlanWave to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlanWave
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutPlanWaveOrchestrationOptions. */
                interface IRolloutPlanWaveOrchestrationOptions {

                    /** RolloutPlanWaveOrchestrationOptions delays */
                    delays?: (google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptionsDelay[]|null);

                    /** RolloutPlanWaveOrchestrationOptions maxConcurrentLocations */
                    maxConcurrentLocations?: (number|Long|string|null);

                    /** RolloutPlanWaveOrchestrationOptions maxConcurrentResourcesPerLocation */
                    maxConcurrentResourcesPerLocation?: (number|Long|string|null);
                }

                /** Represents a RolloutPlanWaveOrchestrationOptions. */
                class RolloutPlanWaveOrchestrationOptions implements IRolloutPlanWaveOrchestrationOptions {

                    /**
                     * Constructs a new RolloutPlanWaveOrchestrationOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptions);

                    /** RolloutPlanWaveOrchestrationOptions delays. */
                    public delays: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptionsDelay[];

                    /** RolloutPlanWaveOrchestrationOptions maxConcurrentLocations. */
                    public maxConcurrentLocations?: (number|Long|string|null);

                    /** RolloutPlanWaveOrchestrationOptions maxConcurrentResourcesPerLocation. */
                    public maxConcurrentResourcesPerLocation?: (number|Long|string|null);

                    /**
                     * Creates a new RolloutPlanWaveOrchestrationOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlanWaveOrchestrationOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptions): google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptions;

                    /**
                     * Encodes the specified RolloutPlanWaveOrchestrationOptions message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptions.verify|verify} messages.
                     * @param message RolloutPlanWaveOrchestrationOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlanWaveOrchestrationOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptions.verify|verify} messages.
                     * @param message RolloutPlanWaveOrchestrationOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlanWaveOrchestrationOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlanWaveOrchestrationOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptions;

                    /**
                     * Decodes a RolloutPlanWaveOrchestrationOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlanWaveOrchestrationOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptions;

                    /**
                     * Verifies a RolloutPlanWaveOrchestrationOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlanWaveOrchestrationOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlanWaveOrchestrationOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptions;

                    /**
                     * Creates a plain object from a RolloutPlanWaveOrchestrationOptions message. Also converts values to other types if specified.
                     * @param message RolloutPlanWaveOrchestrationOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlanWaveOrchestrationOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlanWaveOrchestrationOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutPlanWaveOrchestrationOptionsDelay. */
                interface IRolloutPlanWaveOrchestrationOptionsDelay {

                    /** RolloutPlanWaveOrchestrationOptionsDelay delimiter */
                    delimiter?: (string|null);

                    /** RolloutPlanWaveOrchestrationOptionsDelay duration */
                    duration?: (string|null);

                    /** RolloutPlanWaveOrchestrationOptionsDelay type */
                    type?: (string|null);
                }

                /** Represents a RolloutPlanWaveOrchestrationOptionsDelay. */
                class RolloutPlanWaveOrchestrationOptionsDelay implements IRolloutPlanWaveOrchestrationOptionsDelay {

                    /**
                     * Constructs a new RolloutPlanWaveOrchestrationOptionsDelay.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptionsDelay);

                    /** RolloutPlanWaveOrchestrationOptionsDelay delimiter. */
                    public delimiter?: (string|null);

                    /** RolloutPlanWaveOrchestrationOptionsDelay duration. */
                    public duration?: (string|null);

                    /** RolloutPlanWaveOrchestrationOptionsDelay type. */
                    public type?: (string|null);

                    /**
                     * Creates a new RolloutPlanWaveOrchestrationOptionsDelay instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlanWaveOrchestrationOptionsDelay instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptionsDelay): google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptionsDelay;

                    /**
                     * Encodes the specified RolloutPlanWaveOrchestrationOptionsDelay message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptionsDelay.verify|verify} messages.
                     * @param message RolloutPlanWaveOrchestrationOptionsDelay message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptionsDelay, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlanWaveOrchestrationOptionsDelay message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptionsDelay.verify|verify} messages.
                     * @param message RolloutPlanWaveOrchestrationOptionsDelay message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlanWaveOrchestrationOptionsDelay, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlanWaveOrchestrationOptionsDelay message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlanWaveOrchestrationOptionsDelay
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptionsDelay;

                    /**
                     * Decodes a RolloutPlanWaveOrchestrationOptionsDelay message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlanWaveOrchestrationOptionsDelay
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptionsDelay;

                    /**
                     * Verifies a RolloutPlanWaveOrchestrationOptionsDelay message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlanWaveOrchestrationOptionsDelay message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlanWaveOrchestrationOptionsDelay
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptionsDelay;

                    /**
                     * Creates a plain object from a RolloutPlanWaveOrchestrationOptionsDelay message. Also converts values to other types if specified.
                     * @param message RolloutPlanWaveOrchestrationOptionsDelay
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlanWaveOrchestrationOptionsDelay, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlanWaveOrchestrationOptionsDelay to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlanWaveOrchestrationOptionsDelay
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RolloutPlanWaveOrchestrationOptionsDelay {

                    /** Delimiter enum. */
                    enum Delimiter {
                        UNDEFINED_DELIMITER = 0,
                        DELIMITER_BATCH = 253390530,
                        DELIMITER_LOCATION = 189398797,
                        DELIMITER_UNSPECIFIED = 372199615
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        TYPE_MINIMUM = 234909673,
                        TYPE_OFFSET = 165747000,
                        TYPE_UNSPECIFIED = 437714322
                    }
                }

                /** Properties of a RolloutPlanWaveSelector. */
                interface IRolloutPlanWaveSelector {

                    /** RolloutPlanWaveSelector locationSelector */
                    locationSelector?: (google.cloud.compute.v1beta.IRolloutPlanWaveSelectorLocationSelector|null);

                    /** RolloutPlanWaveSelector resourceHierarchySelector */
                    resourceHierarchySelector?: (google.cloud.compute.v1beta.IRolloutPlanWaveSelectorResourceHierarchySelector|null);
                }

                /** Represents a RolloutPlanWaveSelector. */
                class RolloutPlanWaveSelector implements IRolloutPlanWaveSelector {

                    /**
                     * Constructs a new RolloutPlanWaveSelector.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveSelector);

                    /** RolloutPlanWaveSelector locationSelector. */
                    public locationSelector?: (google.cloud.compute.v1beta.IRolloutPlanWaveSelectorLocationSelector|null);

                    /** RolloutPlanWaveSelector resourceHierarchySelector. */
                    public resourceHierarchySelector?: (google.cloud.compute.v1beta.IRolloutPlanWaveSelectorResourceHierarchySelector|null);

                    /**
                     * Creates a new RolloutPlanWaveSelector instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlanWaveSelector instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveSelector): google.cloud.compute.v1beta.RolloutPlanWaveSelector;

                    /**
                     * Encodes the specified RolloutPlanWaveSelector message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveSelector.verify|verify} messages.
                     * @param message RolloutPlanWaveSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlanWaveSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlanWaveSelector message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveSelector.verify|verify} messages.
                     * @param message RolloutPlanWaveSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlanWaveSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlanWaveSelector message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlanWaveSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlanWaveSelector;

                    /**
                     * Decodes a RolloutPlanWaveSelector message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlanWaveSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlanWaveSelector;

                    /**
                     * Verifies a RolloutPlanWaveSelector message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlanWaveSelector message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlanWaveSelector
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlanWaveSelector;

                    /**
                     * Creates a plain object from a RolloutPlanWaveSelector message. Also converts values to other types if specified.
                     * @param message RolloutPlanWaveSelector
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlanWaveSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlanWaveSelector to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlanWaveSelector
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutPlanWaveSelectorLocationSelector. */
                interface IRolloutPlanWaveSelectorLocationSelector {

                    /** RolloutPlanWaveSelectorLocationSelector includedLocations */
                    includedLocations?: (string[]|null);
                }

                /** Represents a RolloutPlanWaveSelectorLocationSelector. */
                class RolloutPlanWaveSelectorLocationSelector implements IRolloutPlanWaveSelectorLocationSelector {

                    /**
                     * Constructs a new RolloutPlanWaveSelectorLocationSelector.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveSelectorLocationSelector);

                    /** RolloutPlanWaveSelectorLocationSelector includedLocations. */
                    public includedLocations: string[];

                    /**
                     * Creates a new RolloutPlanWaveSelectorLocationSelector instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlanWaveSelectorLocationSelector instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveSelectorLocationSelector): google.cloud.compute.v1beta.RolloutPlanWaveSelectorLocationSelector;

                    /**
                     * Encodes the specified RolloutPlanWaveSelectorLocationSelector message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveSelectorLocationSelector.verify|verify} messages.
                     * @param message RolloutPlanWaveSelectorLocationSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlanWaveSelectorLocationSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlanWaveSelectorLocationSelector message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveSelectorLocationSelector.verify|verify} messages.
                     * @param message RolloutPlanWaveSelectorLocationSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlanWaveSelectorLocationSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlanWaveSelectorLocationSelector message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlanWaveSelectorLocationSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlanWaveSelectorLocationSelector;

                    /**
                     * Decodes a RolloutPlanWaveSelectorLocationSelector message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlanWaveSelectorLocationSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlanWaveSelectorLocationSelector;

                    /**
                     * Verifies a RolloutPlanWaveSelectorLocationSelector message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlanWaveSelectorLocationSelector message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlanWaveSelectorLocationSelector
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlanWaveSelectorLocationSelector;

                    /**
                     * Creates a plain object from a RolloutPlanWaveSelectorLocationSelector message. Also converts values to other types if specified.
                     * @param message RolloutPlanWaveSelectorLocationSelector
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlanWaveSelectorLocationSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlanWaveSelectorLocationSelector to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlanWaveSelectorLocationSelector
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutPlanWaveSelectorResourceHierarchySelector. */
                interface IRolloutPlanWaveSelectorResourceHierarchySelector {

                    /** RolloutPlanWaveSelectorResourceHierarchySelector includedFolders */
                    includedFolders?: (string[]|null);

                    /** RolloutPlanWaveSelectorResourceHierarchySelector includedOrganizations */
                    includedOrganizations?: (string[]|null);

                    /** RolloutPlanWaveSelectorResourceHierarchySelector includedProjects */
                    includedProjects?: (string[]|null);
                }

                /** Represents a RolloutPlanWaveSelectorResourceHierarchySelector. */
                class RolloutPlanWaveSelectorResourceHierarchySelector implements IRolloutPlanWaveSelectorResourceHierarchySelector {

                    /**
                     * Constructs a new RolloutPlanWaveSelectorResourceHierarchySelector.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveSelectorResourceHierarchySelector);

                    /** RolloutPlanWaveSelectorResourceHierarchySelector includedFolders. */
                    public includedFolders: string[];

                    /** RolloutPlanWaveSelectorResourceHierarchySelector includedOrganizations. */
                    public includedOrganizations: string[];

                    /** RolloutPlanWaveSelectorResourceHierarchySelector includedProjects. */
                    public includedProjects: string[];

                    /**
                     * Creates a new RolloutPlanWaveSelectorResourceHierarchySelector instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlanWaveSelectorResourceHierarchySelector instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveSelectorResourceHierarchySelector): google.cloud.compute.v1beta.RolloutPlanWaveSelectorResourceHierarchySelector;

                    /**
                     * Encodes the specified RolloutPlanWaveSelectorResourceHierarchySelector message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveSelectorResourceHierarchySelector.verify|verify} messages.
                     * @param message RolloutPlanWaveSelectorResourceHierarchySelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlanWaveSelectorResourceHierarchySelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlanWaveSelectorResourceHierarchySelector message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveSelectorResourceHierarchySelector.verify|verify} messages.
                     * @param message RolloutPlanWaveSelectorResourceHierarchySelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlanWaveSelectorResourceHierarchySelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlanWaveSelectorResourceHierarchySelector message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlanWaveSelectorResourceHierarchySelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlanWaveSelectorResourceHierarchySelector;

                    /**
                     * Decodes a RolloutPlanWaveSelectorResourceHierarchySelector message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlanWaveSelectorResourceHierarchySelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlanWaveSelectorResourceHierarchySelector;

                    /**
                     * Verifies a RolloutPlanWaveSelectorResourceHierarchySelector message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlanWaveSelectorResourceHierarchySelector message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlanWaveSelectorResourceHierarchySelector
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlanWaveSelectorResourceHierarchySelector;

                    /**
                     * Creates a plain object from a RolloutPlanWaveSelectorResourceHierarchySelector message. Also converts values to other types if specified.
                     * @param message RolloutPlanWaveSelectorResourceHierarchySelector
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlanWaveSelectorResourceHierarchySelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlanWaveSelectorResourceHierarchySelector to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlanWaveSelectorResourceHierarchySelector
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutPlanWaveValidation. */
                interface IRolloutPlanWaveValidation {

                    /** RolloutPlanWaveValidation timeBasedValidationMetadata */
                    timeBasedValidationMetadata?: (google.cloud.compute.v1beta.IRolloutPlanWaveValidationTimeBasedValidationMetadata|null);

                    /** RolloutPlanWaveValidation type */
                    type?: (string|null);
                }

                /** Represents a RolloutPlanWaveValidation. */
                class RolloutPlanWaveValidation implements IRolloutPlanWaveValidation {

                    /**
                     * Constructs a new RolloutPlanWaveValidation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveValidation);

                    /** RolloutPlanWaveValidation timeBasedValidationMetadata. */
                    public timeBasedValidationMetadata?: (google.cloud.compute.v1beta.IRolloutPlanWaveValidationTimeBasedValidationMetadata|null);

                    /** RolloutPlanWaveValidation type. */
                    public type?: (string|null);

                    /**
                     * Creates a new RolloutPlanWaveValidation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlanWaveValidation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveValidation): google.cloud.compute.v1beta.RolloutPlanWaveValidation;

                    /**
                     * Encodes the specified RolloutPlanWaveValidation message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveValidation.verify|verify} messages.
                     * @param message RolloutPlanWaveValidation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlanWaveValidation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlanWaveValidation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveValidation.verify|verify} messages.
                     * @param message RolloutPlanWaveValidation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlanWaveValidation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlanWaveValidation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlanWaveValidation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlanWaveValidation;

                    /**
                     * Decodes a RolloutPlanWaveValidation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlanWaveValidation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlanWaveValidation;

                    /**
                     * Verifies a RolloutPlanWaveValidation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlanWaveValidation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlanWaveValidation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlanWaveValidation;

                    /**
                     * Creates a plain object from a RolloutPlanWaveValidation message. Also converts values to other types if specified.
                     * @param message RolloutPlanWaveValidation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlanWaveValidation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlanWaveValidation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlanWaveValidation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutPlanWaveValidationTimeBasedValidationMetadata. */
                interface IRolloutPlanWaveValidationTimeBasedValidationMetadata {

                    /** RolloutPlanWaveValidationTimeBasedValidationMetadata waitDuration */
                    waitDuration?: (string|null);
                }

                /** Represents a RolloutPlanWaveValidationTimeBasedValidationMetadata. */
                class RolloutPlanWaveValidationTimeBasedValidationMetadata implements IRolloutPlanWaveValidationTimeBasedValidationMetadata {

                    /**
                     * Constructs a new RolloutPlanWaveValidationTimeBasedValidationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveValidationTimeBasedValidationMetadata);

                    /** RolloutPlanWaveValidationTimeBasedValidationMetadata waitDuration. */
                    public waitDuration?: (string|null);

                    /**
                     * Creates a new RolloutPlanWaveValidationTimeBasedValidationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlanWaveValidationTimeBasedValidationMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlanWaveValidationTimeBasedValidationMetadata): google.cloud.compute.v1beta.RolloutPlanWaveValidationTimeBasedValidationMetadata;

                    /**
                     * Encodes the specified RolloutPlanWaveValidationTimeBasedValidationMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveValidationTimeBasedValidationMetadata.verify|verify} messages.
                     * @param message RolloutPlanWaveValidationTimeBasedValidationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlanWaveValidationTimeBasedValidationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlanWaveValidationTimeBasedValidationMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlanWaveValidationTimeBasedValidationMetadata.verify|verify} messages.
                     * @param message RolloutPlanWaveValidationTimeBasedValidationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlanWaveValidationTimeBasedValidationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlanWaveValidationTimeBasedValidationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlanWaveValidationTimeBasedValidationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlanWaveValidationTimeBasedValidationMetadata;

                    /**
                     * Decodes a RolloutPlanWaveValidationTimeBasedValidationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlanWaveValidationTimeBasedValidationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlanWaveValidationTimeBasedValidationMetadata;

                    /**
                     * Verifies a RolloutPlanWaveValidationTimeBasedValidationMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlanWaveValidationTimeBasedValidationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlanWaveValidationTimeBasedValidationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlanWaveValidationTimeBasedValidationMetadata;

                    /**
                     * Creates a plain object from a RolloutPlanWaveValidationTimeBasedValidationMetadata message. Also converts values to other types if specified.
                     * @param message RolloutPlanWaveValidationTimeBasedValidationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlanWaveValidationTimeBasedValidationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlanWaveValidationTimeBasedValidationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlanWaveValidationTimeBasedValidationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutPlansListResponse. */
                interface IRolloutPlansListResponse {

                    /** RolloutPlansListResponse etag */
                    etag?: (string|null);

                    /** RolloutPlansListResponse id */
                    id?: (string|null);

                    /** RolloutPlansListResponse items */
                    items?: (google.cloud.compute.v1beta.IRolloutPlan[]|null);

                    /** RolloutPlansListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** RolloutPlansListResponse selfLink */
                    selfLink?: (string|null);

                    /** RolloutPlansListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** RolloutPlansListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RolloutPlansListResponse. */
                class RolloutPlansListResponse implements IRolloutPlansListResponse {

                    /**
                     * Constructs a new RolloutPlansListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPlansListResponse);

                    /** RolloutPlansListResponse etag. */
                    public etag?: (string|null);

                    /** RolloutPlansListResponse id. */
                    public id?: (string|null);

                    /** RolloutPlansListResponse items. */
                    public items: google.cloud.compute.v1beta.IRolloutPlan[];

                    /** RolloutPlansListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RolloutPlansListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** RolloutPlansListResponse unreachables. */
                    public unreachables: string[];

                    /** RolloutPlansListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RolloutPlansListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPlansListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPlansListResponse): google.cloud.compute.v1beta.RolloutPlansListResponse;

                    /**
                     * Encodes the specified RolloutPlansListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlansListResponse.verify|verify} messages.
                     * @param message RolloutPlansListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPlansListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPlansListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPlansListResponse.verify|verify} messages.
                     * @param message RolloutPlansListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPlansListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPlansListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPlansListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPlansListResponse;

                    /**
                     * Decodes a RolloutPlansListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPlansListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPlansListResponse;

                    /**
                     * Verifies a RolloutPlansListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPlansListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPlansListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPlansListResponse;

                    /**
                     * Creates a plain object from a RolloutPlansListResponse message. Also converts values to other types if specified.
                     * @param message RolloutPlansListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPlansListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPlansListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPlansListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutPolicy. */
                interface IRolloutPolicy {

                    /** RolloutPolicy defaultRolloutTime */
                    defaultRolloutTime?: (string|null);

                    /** RolloutPolicy locationRolloutPolicies */
                    locationRolloutPolicies?: ({ [k: string]: string }|null);
                }

                /** Represents a RolloutPolicy. */
                class RolloutPolicy implements IRolloutPolicy {

                    /**
                     * Constructs a new RolloutPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutPolicy);

                    /** RolloutPolicy defaultRolloutTime. */
                    public defaultRolloutTime?: (string|null);

                    /** RolloutPolicy locationRolloutPolicies. */
                    public locationRolloutPolicies: { [k: string]: string };

                    /**
                     * Creates a new RolloutPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutPolicy): google.cloud.compute.v1beta.RolloutPolicy;

                    /**
                     * Encodes the specified RolloutPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPolicy.verify|verify} messages.
                     * @param message RolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutPolicy.verify|verify} messages.
                     * @param message RolloutPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutPolicy;

                    /**
                     * Decodes a RolloutPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutPolicy;

                    /**
                     * Verifies a RolloutPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutPolicy;

                    /**
                     * Creates a plain object from a RolloutPolicy message. Also converts values to other types if specified.
                     * @param message RolloutPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutRolloutEntity. */
                interface IRolloutRolloutEntity {

                    /** RolloutRolloutEntity orchestratedEntity */
                    orchestratedEntity?: (google.cloud.compute.v1beta.IRolloutRolloutEntityOrchestratedEntity|null);
                }

                /** Represents a RolloutRolloutEntity. */
                class RolloutRolloutEntity implements IRolloutRolloutEntity {

                    /**
                     * Constructs a new RolloutRolloutEntity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutRolloutEntity);

                    /** RolloutRolloutEntity orchestratedEntity. */
                    public orchestratedEntity?: (google.cloud.compute.v1beta.IRolloutRolloutEntityOrchestratedEntity|null);

                    /**
                     * Creates a new RolloutRolloutEntity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutRolloutEntity instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutRolloutEntity): google.cloud.compute.v1beta.RolloutRolloutEntity;

                    /**
                     * Encodes the specified RolloutRolloutEntity message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutRolloutEntity.verify|verify} messages.
                     * @param message RolloutRolloutEntity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutRolloutEntity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutRolloutEntity message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutRolloutEntity.verify|verify} messages.
                     * @param message RolloutRolloutEntity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutRolloutEntity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutRolloutEntity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutRolloutEntity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutRolloutEntity;

                    /**
                     * Decodes a RolloutRolloutEntity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutRolloutEntity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutRolloutEntity;

                    /**
                     * Verifies a RolloutRolloutEntity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutRolloutEntity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutRolloutEntity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutRolloutEntity;

                    /**
                     * Creates a plain object from a RolloutRolloutEntity message. Also converts values to other types if specified.
                     * @param message RolloutRolloutEntity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutRolloutEntity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutRolloutEntity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutRolloutEntity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutRolloutEntityOrchestratedEntity. */
                interface IRolloutRolloutEntityOrchestratedEntity {

                    /** RolloutRolloutEntityOrchestratedEntity conflictBehavior */
                    conflictBehavior?: (string|null);

                    /** RolloutRolloutEntityOrchestratedEntity orchestrationAction */
                    orchestrationAction?: (string|null);

                    /** RolloutRolloutEntityOrchestratedEntity orchestrationSource */
                    orchestrationSource?: (string|null);
                }

                /** Represents a RolloutRolloutEntityOrchestratedEntity. */
                class RolloutRolloutEntityOrchestratedEntity implements IRolloutRolloutEntityOrchestratedEntity {

                    /**
                     * Constructs a new RolloutRolloutEntityOrchestratedEntity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutRolloutEntityOrchestratedEntity);

                    /** RolloutRolloutEntityOrchestratedEntity conflictBehavior. */
                    public conflictBehavior?: (string|null);

                    /** RolloutRolloutEntityOrchestratedEntity orchestrationAction. */
                    public orchestrationAction?: (string|null);

                    /** RolloutRolloutEntityOrchestratedEntity orchestrationSource. */
                    public orchestrationSource?: (string|null);

                    /**
                     * Creates a new RolloutRolloutEntityOrchestratedEntity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutRolloutEntityOrchestratedEntity instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutRolloutEntityOrchestratedEntity): google.cloud.compute.v1beta.RolloutRolloutEntityOrchestratedEntity;

                    /**
                     * Encodes the specified RolloutRolloutEntityOrchestratedEntity message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutRolloutEntityOrchestratedEntity.verify|verify} messages.
                     * @param message RolloutRolloutEntityOrchestratedEntity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutRolloutEntityOrchestratedEntity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutRolloutEntityOrchestratedEntity message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutRolloutEntityOrchestratedEntity.verify|verify} messages.
                     * @param message RolloutRolloutEntityOrchestratedEntity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutRolloutEntityOrchestratedEntity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutRolloutEntityOrchestratedEntity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutRolloutEntityOrchestratedEntity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutRolloutEntityOrchestratedEntity;

                    /**
                     * Decodes a RolloutRolloutEntityOrchestratedEntity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutRolloutEntityOrchestratedEntity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutRolloutEntityOrchestratedEntity;

                    /**
                     * Verifies a RolloutRolloutEntityOrchestratedEntity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutRolloutEntityOrchestratedEntity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutRolloutEntityOrchestratedEntity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutRolloutEntityOrchestratedEntity;

                    /**
                     * Creates a plain object from a RolloutRolloutEntityOrchestratedEntity message. Also converts values to other types if specified.
                     * @param message RolloutRolloutEntityOrchestratedEntity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutRolloutEntityOrchestratedEntity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutRolloutEntityOrchestratedEntity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutRolloutEntityOrchestratedEntity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutWaveDetails. */
                interface IRolloutWaveDetails {

                    /** RolloutWaveDetails orchestratedWaveDetails */
                    orchestratedWaveDetails?: (google.cloud.compute.v1beta.IRolloutWaveDetailsOrchestratedWaveDetails|null);

                    /** RolloutWaveDetails waveDisplayName */
                    waveDisplayName?: (string|null);

                    /** RolloutWaveDetails waveNumber */
                    waveNumber?: (number|Long|string|null);
                }

                /** Represents a RolloutWaveDetails. */
                class RolloutWaveDetails implements IRolloutWaveDetails {

                    /**
                     * Constructs a new RolloutWaveDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutWaveDetails);

                    /** RolloutWaveDetails orchestratedWaveDetails. */
                    public orchestratedWaveDetails?: (google.cloud.compute.v1beta.IRolloutWaveDetailsOrchestratedWaveDetails|null);

                    /** RolloutWaveDetails waveDisplayName. */
                    public waveDisplayName?: (string|null);

                    /** RolloutWaveDetails waveNumber. */
                    public waveNumber?: (number|Long|string|null);

                    /**
                     * Creates a new RolloutWaveDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutWaveDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutWaveDetails): google.cloud.compute.v1beta.RolloutWaveDetails;

                    /**
                     * Encodes the specified RolloutWaveDetails message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutWaveDetails.verify|verify} messages.
                     * @param message RolloutWaveDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutWaveDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutWaveDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutWaveDetails.verify|verify} messages.
                     * @param message RolloutWaveDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutWaveDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutWaveDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutWaveDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutWaveDetails;

                    /**
                     * Decodes a RolloutWaveDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutWaveDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutWaveDetails;

                    /**
                     * Verifies a RolloutWaveDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutWaveDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutWaveDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutWaveDetails;

                    /**
                     * Creates a plain object from a RolloutWaveDetails message. Also converts values to other types if specified.
                     * @param message RolloutWaveDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutWaveDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutWaveDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutWaveDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutWaveDetailsOrchestratedWaveDetails. */
                interface IRolloutWaveDetailsOrchestratedWaveDetails {

                    /** RolloutWaveDetailsOrchestratedWaveDetails completedResourcesCount */
                    completedResourcesCount?: (number|Long|string|null);

                    /** RolloutWaveDetailsOrchestratedWaveDetails estimatedTotalResourcesCount */
                    estimatedTotalResourcesCount?: (number|Long|string|null);

                    /** RolloutWaveDetailsOrchestratedWaveDetails failedLocations */
                    failedLocations?: (string[]|null);

                    /** RolloutWaveDetailsOrchestratedWaveDetails failedResourcesCount */
                    failedResourcesCount?: (number|Long|string|null);
                }

                /** Represents a RolloutWaveDetailsOrchestratedWaveDetails. */
                class RolloutWaveDetailsOrchestratedWaveDetails implements IRolloutWaveDetailsOrchestratedWaveDetails {

                    /**
                     * Constructs a new RolloutWaveDetailsOrchestratedWaveDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutWaveDetailsOrchestratedWaveDetails);

                    /** RolloutWaveDetailsOrchestratedWaveDetails completedResourcesCount. */
                    public completedResourcesCount?: (number|Long|string|null);

                    /** RolloutWaveDetailsOrchestratedWaveDetails estimatedTotalResourcesCount. */
                    public estimatedTotalResourcesCount?: (number|Long|string|null);

                    /** RolloutWaveDetailsOrchestratedWaveDetails failedLocations. */
                    public failedLocations: string[];

                    /** RolloutWaveDetailsOrchestratedWaveDetails failedResourcesCount. */
                    public failedResourcesCount?: (number|Long|string|null);

                    /**
                     * Creates a new RolloutWaveDetailsOrchestratedWaveDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutWaveDetailsOrchestratedWaveDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutWaveDetailsOrchestratedWaveDetails): google.cloud.compute.v1beta.RolloutWaveDetailsOrchestratedWaveDetails;

                    /**
                     * Encodes the specified RolloutWaveDetailsOrchestratedWaveDetails message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutWaveDetailsOrchestratedWaveDetails.verify|verify} messages.
                     * @param message RolloutWaveDetailsOrchestratedWaveDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutWaveDetailsOrchestratedWaveDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutWaveDetailsOrchestratedWaveDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutWaveDetailsOrchestratedWaveDetails.verify|verify} messages.
                     * @param message RolloutWaveDetailsOrchestratedWaveDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutWaveDetailsOrchestratedWaveDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutWaveDetailsOrchestratedWaveDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutWaveDetailsOrchestratedWaveDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutWaveDetailsOrchestratedWaveDetails;

                    /**
                     * Decodes a RolloutWaveDetailsOrchestratedWaveDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutWaveDetailsOrchestratedWaveDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutWaveDetailsOrchestratedWaveDetails;

                    /**
                     * Verifies a RolloutWaveDetailsOrchestratedWaveDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutWaveDetailsOrchestratedWaveDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutWaveDetailsOrchestratedWaveDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutWaveDetailsOrchestratedWaveDetails;

                    /**
                     * Creates a plain object from a RolloutWaveDetailsOrchestratedWaveDetails message. Also converts values to other types if specified.
                     * @param message RolloutWaveDetailsOrchestratedWaveDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutWaveDetailsOrchestratedWaveDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutWaveDetailsOrchestratedWaveDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutWaveDetailsOrchestratedWaveDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RolloutsListResponse. */
                interface IRolloutsListResponse {

                    /** RolloutsListResponse etag */
                    etag?: (string|null);

                    /** RolloutsListResponse id */
                    id?: (string|null);

                    /** RolloutsListResponse items */
                    items?: (google.cloud.compute.v1beta.IRollout[]|null);

                    /** RolloutsListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** RolloutsListResponse selfLink */
                    selfLink?: (string|null);

                    /** RolloutsListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** RolloutsListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RolloutsListResponse. */
                class RolloutsListResponse implements IRolloutsListResponse {

                    /**
                     * Constructs a new RolloutsListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRolloutsListResponse);

                    /** RolloutsListResponse etag. */
                    public etag?: (string|null);

                    /** RolloutsListResponse id. */
                    public id?: (string|null);

                    /** RolloutsListResponse items. */
                    public items: google.cloud.compute.v1beta.IRollout[];

                    /** RolloutsListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RolloutsListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** RolloutsListResponse unreachables. */
                    public unreachables: string[];

                    /** RolloutsListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RolloutsListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RolloutsListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRolloutsListResponse): google.cloud.compute.v1beta.RolloutsListResponse;

                    /**
                     * Encodes the specified RolloutsListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RolloutsListResponse.verify|verify} messages.
                     * @param message RolloutsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRolloutsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RolloutsListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RolloutsListResponse.verify|verify} messages.
                     * @param message RolloutsListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRolloutsListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RolloutsListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RolloutsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RolloutsListResponse;

                    /**
                     * Decodes a RolloutsListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RolloutsListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RolloutsListResponse;

                    /**
                     * Verifies a RolloutsListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RolloutsListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RolloutsListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RolloutsListResponse;

                    /**
                     * Creates a plain object from a RolloutsListResponse message. Also converts values to other types if specified.
                     * @param message RolloutsListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RolloutsListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RolloutsListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RolloutsListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Route. */
                interface IRoute {

                    /** Route asPaths */
                    asPaths?: (google.cloud.compute.v1beta.IRouteAsPath[]|null);

                    /** Route creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Route description */
                    description?: (string|null);

                    /** Route destRange */
                    destRange?: (string|null);

                    /** Route id */
                    id?: (number|Long|string|null);

                    /** Route kind */
                    kind?: (string|null);

                    /** Route name */
                    name?: (string|null);

                    /** Route network */
                    network?: (string|null);

                    /** Route nextHopGateway */
                    nextHopGateway?: (string|null);

                    /** Route nextHopHub */
                    nextHopHub?: (string|null);

                    /** Route nextHopIlb */
                    nextHopIlb?: (string|null);

                    /** Route nextHopInstance */
                    nextHopInstance?: (string|null);

                    /** Route nextHopInterRegionCost */
                    nextHopInterRegionCost?: (number|null);

                    /** Route nextHopInterconnectAttachment */
                    nextHopInterconnectAttachment?: (string|null);

                    /** Route nextHopIp */
                    nextHopIp?: (string|null);

                    /** Route nextHopMed */
                    nextHopMed?: (number|null);

                    /** Route nextHopNetwork */
                    nextHopNetwork?: (string|null);

                    /** Route nextHopOrigin */
                    nextHopOrigin?: (string|null);

                    /** Route nextHopPeering */
                    nextHopPeering?: (string|null);

                    /** Route nextHopVpnTunnel */
                    nextHopVpnTunnel?: (string|null);

                    /** Route params */
                    params?: (google.cloud.compute.v1beta.IRouteParams|null);

                    /** Route priority */
                    priority?: (number|null);

                    /** Route routeStatus */
                    routeStatus?: (string|null);

                    /** Route routeType */
                    routeType?: (string|null);

                    /** Route selfLink */
                    selfLink?: (string|null);

                    /** Route tags */
                    tags?: (string[]|null);

                    /** Route warnings */
                    warnings?: (google.cloud.compute.v1beta.IWarnings[]|null);
                }

                /** Represents a Route. */
                class Route implements IRoute {

                    /**
                     * Constructs a new Route.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoute);

                    /** Route asPaths. */
                    public asPaths: google.cloud.compute.v1beta.IRouteAsPath[];

                    /** Route creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Route description. */
                    public description?: (string|null);

                    /** Route destRange. */
                    public destRange?: (string|null);

                    /** Route id. */
                    public id?: (number|Long|string|null);

                    /** Route kind. */
                    public kind?: (string|null);

                    /** Route name. */
                    public name?: (string|null);

                    /** Route network. */
                    public network?: (string|null);

                    /** Route nextHopGateway. */
                    public nextHopGateway?: (string|null);

                    /** Route nextHopHub. */
                    public nextHopHub?: (string|null);

                    /** Route nextHopIlb. */
                    public nextHopIlb?: (string|null);

                    /** Route nextHopInstance. */
                    public nextHopInstance?: (string|null);

                    /** Route nextHopInterRegionCost. */
                    public nextHopInterRegionCost?: (number|null);

                    /** Route nextHopInterconnectAttachment. */
                    public nextHopInterconnectAttachment?: (string|null);

                    /** Route nextHopIp. */
                    public nextHopIp?: (string|null);

                    /** Route nextHopMed. */
                    public nextHopMed?: (number|null);

                    /** Route nextHopNetwork. */
                    public nextHopNetwork?: (string|null);

                    /** Route nextHopOrigin. */
                    public nextHopOrigin?: (string|null);

                    /** Route nextHopPeering. */
                    public nextHopPeering?: (string|null);

                    /** Route nextHopVpnTunnel. */
                    public nextHopVpnTunnel?: (string|null);

                    /** Route params. */
                    public params?: (google.cloud.compute.v1beta.IRouteParams|null);

                    /** Route priority. */
                    public priority?: (number|null);

                    /** Route routeStatus. */
                    public routeStatus?: (string|null);

                    /** Route routeType. */
                    public routeType?: (string|null);

                    /** Route selfLink. */
                    public selfLink?: (string|null);

                    /** Route tags. */
                    public tags: string[];

                    /** Route warnings. */
                    public warnings: google.cloud.compute.v1beta.IWarnings[];

                    /**
                     * Creates a new Route instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Route instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoute): google.cloud.compute.v1beta.Route;

                    /**
                     * Encodes the specified Route message. Does not implicitly {@link google.cloud.compute.v1beta.Route.verify|verify} messages.
                     * @param message Route message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Route message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Route.verify|verify} messages.
                     * @param message Route message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Route message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Route
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Route;

                    /**
                     * Decodes a Route message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Route
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Route;

                    /**
                     * Verifies a Route message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Route message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Route
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Route;

                    /**
                     * Creates a plain object from a Route message. Also converts values to other types if specified.
                     * @param message Route
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Route, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Route to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Route
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Route {

                    /** NextHopOrigin enum. */
                    enum NextHopOrigin {
                        UNDEFINED_NEXT_HOP_ORIGIN = 0,
                        EGP = 68590,
                        IGP = 72434,
                        INCOMPLETE = 11941214
                    }

                    /** RouteStatus enum. */
                    enum RouteStatus {
                        UNDEFINED_ROUTE_STATUS = 0,
                        ACTIVE = 314733318,
                        DROPPED = 496235424,
                        INACTIVE = 270421099,
                        PENDING = 35394935
                    }

                    /** RouteType enum. */
                    enum RouteType {
                        UNDEFINED_ROUTE_TYPE = 0,
                        BGP = 65707,
                        STATIC = 308331118,
                        SUBNET = 309278557,
                        TRANSIT = 187793843
                    }
                }

                /** Properties of a RouteAsPath. */
                interface IRouteAsPath {

                    /** RouteAsPath asLists */
                    asLists?: (number[]|null);

                    /** RouteAsPath pathSegmentType */
                    pathSegmentType?: (string|null);
                }

                /** Represents a RouteAsPath. */
                class RouteAsPath implements IRouteAsPath {

                    /**
                     * Constructs a new RouteAsPath.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouteAsPath);

                    /** RouteAsPath asLists. */
                    public asLists: number[];

                    /** RouteAsPath pathSegmentType. */
                    public pathSegmentType?: (string|null);

                    /**
                     * Creates a new RouteAsPath instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouteAsPath instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouteAsPath): google.cloud.compute.v1beta.RouteAsPath;

                    /**
                     * Encodes the specified RouteAsPath message. Does not implicitly {@link google.cloud.compute.v1beta.RouteAsPath.verify|verify} messages.
                     * @param message RouteAsPath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouteAsPath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouteAsPath message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouteAsPath.verify|verify} messages.
                     * @param message RouteAsPath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouteAsPath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouteAsPath message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouteAsPath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouteAsPath;

                    /**
                     * Decodes a RouteAsPath message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouteAsPath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouteAsPath;

                    /**
                     * Verifies a RouteAsPath message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouteAsPath message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouteAsPath
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouteAsPath;

                    /**
                     * Creates a plain object from a RouteAsPath message. Also converts values to other types if specified.
                     * @param message RouteAsPath
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouteAsPath, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouteAsPath to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouteAsPath
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouteAsPath {

                    /** PathSegmentType enum. */
                    enum PathSegmentType {
                        UNDEFINED_PATH_SEGMENT_TYPE = 0,
                        AS_CONFED_SEQUENCE = 222152624,
                        AS_CONFED_SET = 374040307,
                        AS_SEQUENCE = 106735918,
                        AS_SET = 329846453
                    }
                }

                /** Properties of a RouteList. */
                interface IRouteList {

                    /** RouteList id */
                    id?: (string|null);

                    /** RouteList items */
                    items?: (google.cloud.compute.v1beta.IRoute[]|null);

                    /** RouteList kind */
                    kind?: (string|null);

                    /** RouteList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RouteList selfLink */
                    selfLink?: (string|null);

                    /** RouteList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RouteList. */
                class RouteList implements IRouteList {

                    /**
                     * Constructs a new RouteList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouteList);

                    /** RouteList id. */
                    public id?: (string|null);

                    /** RouteList items. */
                    public items: google.cloud.compute.v1beta.IRoute[];

                    /** RouteList kind. */
                    public kind?: (string|null);

                    /** RouteList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RouteList selfLink. */
                    public selfLink?: (string|null);

                    /** RouteList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RouteList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouteList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouteList): google.cloud.compute.v1beta.RouteList;

                    /**
                     * Encodes the specified RouteList message. Does not implicitly {@link google.cloud.compute.v1beta.RouteList.verify|verify} messages.
                     * @param message RouteList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouteList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouteList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouteList.verify|verify} messages.
                     * @param message RouteList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouteList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouteList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouteList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouteList;

                    /**
                     * Decodes a RouteList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouteList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouteList;

                    /**
                     * Verifies a RouteList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouteList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouteList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouteList;

                    /**
                     * Creates a plain object from a RouteList message. Also converts values to other types if specified.
                     * @param message RouteList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouteList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouteList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouteList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouteParams. */
                interface IRouteParams {

                    /** RouteParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a RouteParams. */
                class RouteParams implements IRouteParams {

                    /**
                     * Constructs a new RouteParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouteParams);

                    /** RouteParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new RouteParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouteParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouteParams): google.cloud.compute.v1beta.RouteParams;

                    /**
                     * Encodes the specified RouteParams message. Does not implicitly {@link google.cloud.compute.v1beta.RouteParams.verify|verify} messages.
                     * @param message RouteParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouteParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouteParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouteParams.verify|verify} messages.
                     * @param message RouteParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouteParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouteParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouteParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouteParams;

                    /**
                     * Decodes a RouteParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouteParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouteParams;

                    /**
                     * Verifies a RouteParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouteParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouteParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouteParams;

                    /**
                     * Creates a plain object from a RouteParams message. Also converts values to other types if specified.
                     * @param message RouteParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouteParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouteParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouteParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutePolicy. */
                interface IRoutePolicy {

                    /** RoutePolicy description */
                    description?: (string|null);

                    /** RoutePolicy fingerprint */
                    fingerprint?: (string|null);

                    /** RoutePolicy name */
                    name?: (string|null);

                    /** RoutePolicy terms */
                    terms?: (google.cloud.compute.v1beta.IRoutePolicyPolicyTerm[]|null);

                    /** RoutePolicy type */
                    type?: (string|null);
                }

                /** Represents a RoutePolicy. */
                class RoutePolicy implements IRoutePolicy {

                    /**
                     * Constructs a new RoutePolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutePolicy);

                    /** RoutePolicy description. */
                    public description?: (string|null);

                    /** RoutePolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** RoutePolicy name. */
                    public name?: (string|null);

                    /** RoutePolicy terms. */
                    public terms: google.cloud.compute.v1beta.IRoutePolicyPolicyTerm[];

                    /** RoutePolicy type. */
                    public type?: (string|null);

                    /**
                     * Creates a new RoutePolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutePolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutePolicy): google.cloud.compute.v1beta.RoutePolicy;

                    /**
                     * Encodes the specified RoutePolicy message. Does not implicitly {@link google.cloud.compute.v1beta.RoutePolicy.verify|verify} messages.
                     * @param message RoutePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutePolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutePolicy.verify|verify} messages.
                     * @param message RoutePolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutePolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutePolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutePolicy;

                    /**
                     * Decodes a RoutePolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutePolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutePolicy;

                    /**
                     * Verifies a RoutePolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutePolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutePolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutePolicy;

                    /**
                     * Creates a plain object from a RoutePolicy message. Also converts values to other types if specified.
                     * @param message RoutePolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutePolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutePolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutePolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RoutePolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        ROUTE_POLICY_TYPE_EXPORT = 293086882,
                        ROUTE_POLICY_TYPE_IMPORT = 397444755
                    }
                }

                /** Properties of a RoutePolicyPolicyTerm. */
                interface IRoutePolicyPolicyTerm {

                    /** RoutePolicyPolicyTerm actions */
                    actions?: (google.cloud.compute.v1beta.IExpr[]|null);

                    /** RoutePolicyPolicyTerm match */
                    match?: (google.cloud.compute.v1beta.IExpr|null);

                    /** RoutePolicyPolicyTerm priority */
                    priority?: (number|null);
                }

                /** Represents a RoutePolicyPolicyTerm. */
                class RoutePolicyPolicyTerm implements IRoutePolicyPolicyTerm {

                    /**
                     * Constructs a new RoutePolicyPolicyTerm.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutePolicyPolicyTerm);

                    /** RoutePolicyPolicyTerm actions. */
                    public actions: google.cloud.compute.v1beta.IExpr[];

                    /** RoutePolicyPolicyTerm match. */
                    public match?: (google.cloud.compute.v1beta.IExpr|null);

                    /** RoutePolicyPolicyTerm priority. */
                    public priority?: (number|null);

                    /**
                     * Creates a new RoutePolicyPolicyTerm instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutePolicyPolicyTerm instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutePolicyPolicyTerm): google.cloud.compute.v1beta.RoutePolicyPolicyTerm;

                    /**
                     * Encodes the specified RoutePolicyPolicyTerm message. Does not implicitly {@link google.cloud.compute.v1beta.RoutePolicyPolicyTerm.verify|verify} messages.
                     * @param message RoutePolicyPolicyTerm message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutePolicyPolicyTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutePolicyPolicyTerm message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutePolicyPolicyTerm.verify|verify} messages.
                     * @param message RoutePolicyPolicyTerm message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutePolicyPolicyTerm, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutePolicyPolicyTerm message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutePolicyPolicyTerm
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutePolicyPolicyTerm;

                    /**
                     * Decodes a RoutePolicyPolicyTerm message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutePolicyPolicyTerm
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutePolicyPolicyTerm;

                    /**
                     * Verifies a RoutePolicyPolicyTerm message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutePolicyPolicyTerm message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutePolicyPolicyTerm
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutePolicyPolicyTerm;

                    /**
                     * Creates a plain object from a RoutePolicyPolicyTerm message. Also converts values to other types if specified.
                     * @param message RoutePolicyPolicyTerm
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutePolicyPolicyTerm, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutePolicyPolicyTerm to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutePolicyPolicyTerm
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Router. */
                interface IRouter {

                    /** Router bgp */
                    bgp?: (google.cloud.compute.v1beta.IRouterBgp|null);

                    /** Router bgpPeers */
                    bgpPeers?: (google.cloud.compute.v1beta.IRouterBgpPeer[]|null);

                    /** Router creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Router description */
                    description?: (string|null);

                    /** Router encryptedInterconnectRouter */
                    encryptedInterconnectRouter?: (boolean|null);

                    /** Router id */
                    id?: (number|Long|string|null);

                    /** Router interfaces */
                    interfaces?: (google.cloud.compute.v1beta.IRouterInterface[]|null);

                    /** Router kind */
                    kind?: (string|null);

                    /** Router md5AuthenticationKeys */
                    md5AuthenticationKeys?: (google.cloud.compute.v1beta.IRouterMd5AuthenticationKey[]|null);

                    /** Router name */
                    name?: (string|null);

                    /** Router nats */
                    nats?: (google.cloud.compute.v1beta.IRouterNat[]|null);

                    /** Router nccGateway */
                    nccGateway?: (string|null);

                    /** Router network */
                    network?: (string|null);

                    /** Router params */
                    params?: (google.cloud.compute.v1beta.IRouterParams|null);

                    /** Router region */
                    region?: (string|null);

                    /** Router selfLink */
                    selfLink?: (string|null);
                }

                /** Represents a Router. */
                class Router implements IRouter {

                    /**
                     * Constructs a new Router.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouter);

                    /** Router bgp. */
                    public bgp?: (google.cloud.compute.v1beta.IRouterBgp|null);

                    /** Router bgpPeers. */
                    public bgpPeers: google.cloud.compute.v1beta.IRouterBgpPeer[];

                    /** Router creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Router description. */
                    public description?: (string|null);

                    /** Router encryptedInterconnectRouter. */
                    public encryptedInterconnectRouter?: (boolean|null);

                    /** Router id. */
                    public id?: (number|Long|string|null);

                    /** Router interfaces. */
                    public interfaces: google.cloud.compute.v1beta.IRouterInterface[];

                    /** Router kind. */
                    public kind?: (string|null);

                    /** Router md5AuthenticationKeys. */
                    public md5AuthenticationKeys: google.cloud.compute.v1beta.IRouterMd5AuthenticationKey[];

                    /** Router name. */
                    public name?: (string|null);

                    /** Router nats. */
                    public nats: google.cloud.compute.v1beta.IRouterNat[];

                    /** Router nccGateway. */
                    public nccGateway?: (string|null);

                    /** Router network. */
                    public network?: (string|null);

                    /** Router params. */
                    public params?: (google.cloud.compute.v1beta.IRouterParams|null);

                    /** Router region. */
                    public region?: (string|null);

                    /** Router selfLink. */
                    public selfLink?: (string|null);

                    /**
                     * Creates a new Router instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Router instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouter): google.cloud.compute.v1beta.Router;

                    /**
                     * Encodes the specified Router message. Does not implicitly {@link google.cloud.compute.v1beta.Router.verify|verify} messages.
                     * @param message Router message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Router message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Router.verify|verify} messages.
                     * @param message Router message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Router message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Router
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Router;

                    /**
                     * Decodes a Router message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Router
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Router;

                    /**
                     * Verifies a Router message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Router message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Router
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Router;

                    /**
                     * Creates a plain object from a Router message. Also converts values to other types if specified.
                     * @param message Router
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Router, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Router to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Router
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterAdvertisedIpRange. */
                interface IRouterAdvertisedIpRange {

                    /** RouterAdvertisedIpRange description */
                    description?: (string|null);

                    /** RouterAdvertisedIpRange range */
                    range?: (string|null);
                }

                /** Represents a RouterAdvertisedIpRange. */
                class RouterAdvertisedIpRange implements IRouterAdvertisedIpRange {

                    /**
                     * Constructs a new RouterAdvertisedIpRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterAdvertisedIpRange);

                    /** RouterAdvertisedIpRange description. */
                    public description?: (string|null);

                    /** RouterAdvertisedIpRange range. */
                    public range?: (string|null);

                    /**
                     * Creates a new RouterAdvertisedIpRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterAdvertisedIpRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterAdvertisedIpRange): google.cloud.compute.v1beta.RouterAdvertisedIpRange;

                    /**
                     * Encodes the specified RouterAdvertisedIpRange message. Does not implicitly {@link google.cloud.compute.v1beta.RouterAdvertisedIpRange.verify|verify} messages.
                     * @param message RouterAdvertisedIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterAdvertisedIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterAdvertisedIpRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterAdvertisedIpRange.verify|verify} messages.
                     * @param message RouterAdvertisedIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterAdvertisedIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterAdvertisedIpRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterAdvertisedIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterAdvertisedIpRange;

                    /**
                     * Decodes a RouterAdvertisedIpRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterAdvertisedIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterAdvertisedIpRange;

                    /**
                     * Verifies a RouterAdvertisedIpRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterAdvertisedIpRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterAdvertisedIpRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterAdvertisedIpRange;

                    /**
                     * Creates a plain object from a RouterAdvertisedIpRange message. Also converts values to other types if specified.
                     * @param message RouterAdvertisedIpRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterAdvertisedIpRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterAdvertisedIpRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterAdvertisedIpRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterAggregatedList. */
                interface IRouterAggregatedList {

                    /** RouterAggregatedList id */
                    id?: (string|null);

                    /** RouterAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IRoutersScopedList }|null);

                    /** RouterAggregatedList kind */
                    kind?: (string|null);

                    /** RouterAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RouterAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** RouterAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** RouterAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RouterAggregatedList. */
                class RouterAggregatedList implements IRouterAggregatedList {

                    /**
                     * Constructs a new RouterAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterAggregatedList);

                    /** RouterAggregatedList id. */
                    public id?: (string|null);

                    /** RouterAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IRoutersScopedList };

                    /** RouterAggregatedList kind. */
                    public kind?: (string|null);

                    /** RouterAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RouterAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** RouterAggregatedList unreachables. */
                    public unreachables: string[];

                    /** RouterAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RouterAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterAggregatedList): google.cloud.compute.v1beta.RouterAggregatedList;

                    /**
                     * Encodes the specified RouterAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.RouterAggregatedList.verify|verify} messages.
                     * @param message RouterAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterAggregatedList.verify|verify} messages.
                     * @param message RouterAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterAggregatedList;

                    /**
                     * Decodes a RouterAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterAggregatedList;

                    /**
                     * Verifies a RouterAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterAggregatedList;

                    /**
                     * Creates a plain object from a RouterAggregatedList message. Also converts values to other types if specified.
                     * @param message RouterAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterBgp. */
                interface IRouterBgp {

                    /** RouterBgp advertiseMode */
                    advertiseMode?: (string|null);

                    /** RouterBgp advertisedGroups */
                    advertisedGroups?: (string[]|null);

                    /** RouterBgp advertisedIpRanges */
                    advertisedIpRanges?: (google.cloud.compute.v1beta.IRouterAdvertisedIpRange[]|null);

                    /** RouterBgp asn */
                    asn?: (number|null);

                    /** RouterBgp identifierRange */
                    identifierRange?: (string|null);

                    /** RouterBgp keepaliveInterval */
                    keepaliveInterval?: (number|null);
                }

                /** Represents a RouterBgp. */
                class RouterBgp implements IRouterBgp {

                    /**
                     * Constructs a new RouterBgp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterBgp);

                    /** RouterBgp advertiseMode. */
                    public advertiseMode?: (string|null);

                    /** RouterBgp advertisedGroups. */
                    public advertisedGroups: string[];

                    /** RouterBgp advertisedIpRanges. */
                    public advertisedIpRanges: google.cloud.compute.v1beta.IRouterAdvertisedIpRange[];

                    /** RouterBgp asn. */
                    public asn?: (number|null);

                    /** RouterBgp identifierRange. */
                    public identifierRange?: (string|null);

                    /** RouterBgp keepaliveInterval. */
                    public keepaliveInterval?: (number|null);

                    /**
                     * Creates a new RouterBgp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterBgp instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterBgp): google.cloud.compute.v1beta.RouterBgp;

                    /**
                     * Encodes the specified RouterBgp message. Does not implicitly {@link google.cloud.compute.v1beta.RouterBgp.verify|verify} messages.
                     * @param message RouterBgp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterBgp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterBgp message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterBgp.verify|verify} messages.
                     * @param message RouterBgp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterBgp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterBgp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterBgp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterBgp;

                    /**
                     * Decodes a RouterBgp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterBgp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterBgp;

                    /**
                     * Verifies a RouterBgp message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterBgp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterBgp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterBgp;

                    /**
                     * Creates a plain object from a RouterBgp message. Also converts values to other types if specified.
                     * @param message RouterBgp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterBgp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterBgp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterBgp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterBgp {

                    /** AdvertiseMode enum. */
                    enum AdvertiseMode {
                        UNDEFINED_ADVERTISE_MODE = 0,
                        CUSTOM = 388595569,
                        DEFAULT = 115302945
                    }

                    /** AdvertisedGroups enum. */
                    enum AdvertisedGroups {
                        UNDEFINED_ADVERTISED_GROUPS = 0,
                        ALL_SUBNETS = 3622872
                    }
                }

                /** Properties of a RouterBgpPeer. */
                interface IRouterBgpPeer {

                    /** RouterBgpPeer advertiseMode */
                    advertiseMode?: (string|null);

                    /** RouterBgpPeer advertisedGroups */
                    advertisedGroups?: (string[]|null);

                    /** RouterBgpPeer advertisedIpRanges */
                    advertisedIpRanges?: (google.cloud.compute.v1beta.IRouterAdvertisedIpRange[]|null);

                    /** RouterBgpPeer advertisedRoutePriority */
                    advertisedRoutePriority?: (number|null);

                    /** RouterBgpPeer bfd */
                    bfd?: (google.cloud.compute.v1beta.IRouterBgpPeerBfd|null);

                    /** RouterBgpPeer customLearnedIpRanges */
                    customLearnedIpRanges?: (google.cloud.compute.v1beta.IRouterBgpPeerCustomLearnedIpRange[]|null);

                    /** RouterBgpPeer customLearnedRoutePriority */
                    customLearnedRoutePriority?: (number|null);

                    /** RouterBgpPeer enable */
                    enable?: (string|null);

                    /** RouterBgpPeer enableIpv4 */
                    enableIpv4?: (boolean|null);

                    /** RouterBgpPeer enableIpv6 */
                    enableIpv6?: (boolean|null);

                    /** RouterBgpPeer exportPolicies */
                    exportPolicies?: (string[]|null);

                    /** RouterBgpPeer importPolicies */
                    importPolicies?: (string[]|null);

                    /** RouterBgpPeer interfaceName */
                    interfaceName?: (string|null);

                    /** RouterBgpPeer ipAddress */
                    ipAddress?: (string|null);

                    /** RouterBgpPeer ipv4NexthopAddress */
                    ipv4NexthopAddress?: (string|null);

                    /** RouterBgpPeer ipv6NexthopAddress */
                    ipv6NexthopAddress?: (string|null);

                    /** RouterBgpPeer managementType */
                    managementType?: (string|null);

                    /** RouterBgpPeer md5AuthenticationKeyName */
                    md5AuthenticationKeyName?: (string|null);

                    /** RouterBgpPeer name */
                    name?: (string|null);

                    /** RouterBgpPeer peerAsn */
                    peerAsn?: (number|null);

                    /** RouterBgpPeer peerIpAddress */
                    peerIpAddress?: (string|null);

                    /** RouterBgpPeer peerIpv4NexthopAddress */
                    peerIpv4NexthopAddress?: (string|null);

                    /** RouterBgpPeer peerIpv6NexthopAddress */
                    peerIpv6NexthopAddress?: (string|null);

                    /** RouterBgpPeer routerApplianceInstance */
                    routerApplianceInstance?: (string|null);
                }

                /** Represents a RouterBgpPeer. */
                class RouterBgpPeer implements IRouterBgpPeer {

                    /**
                     * Constructs a new RouterBgpPeer.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterBgpPeer);

                    /** RouterBgpPeer advertiseMode. */
                    public advertiseMode?: (string|null);

                    /** RouterBgpPeer advertisedGroups. */
                    public advertisedGroups: string[];

                    /** RouterBgpPeer advertisedIpRanges. */
                    public advertisedIpRanges: google.cloud.compute.v1beta.IRouterAdvertisedIpRange[];

                    /** RouterBgpPeer advertisedRoutePriority. */
                    public advertisedRoutePriority?: (number|null);

                    /** RouterBgpPeer bfd. */
                    public bfd?: (google.cloud.compute.v1beta.IRouterBgpPeerBfd|null);

                    /** RouterBgpPeer customLearnedIpRanges. */
                    public customLearnedIpRanges: google.cloud.compute.v1beta.IRouterBgpPeerCustomLearnedIpRange[];

                    /** RouterBgpPeer customLearnedRoutePriority. */
                    public customLearnedRoutePriority?: (number|null);

                    /** RouterBgpPeer enable. */
                    public enable?: (string|null);

                    /** RouterBgpPeer enableIpv4. */
                    public enableIpv4?: (boolean|null);

                    /** RouterBgpPeer enableIpv6. */
                    public enableIpv6?: (boolean|null);

                    /** RouterBgpPeer exportPolicies. */
                    public exportPolicies: string[];

                    /** RouterBgpPeer importPolicies. */
                    public importPolicies: string[];

                    /** RouterBgpPeer interfaceName. */
                    public interfaceName?: (string|null);

                    /** RouterBgpPeer ipAddress. */
                    public ipAddress?: (string|null);

                    /** RouterBgpPeer ipv4NexthopAddress. */
                    public ipv4NexthopAddress?: (string|null);

                    /** RouterBgpPeer ipv6NexthopAddress. */
                    public ipv6NexthopAddress?: (string|null);

                    /** RouterBgpPeer managementType. */
                    public managementType?: (string|null);

                    /** RouterBgpPeer md5AuthenticationKeyName. */
                    public md5AuthenticationKeyName?: (string|null);

                    /** RouterBgpPeer name. */
                    public name?: (string|null);

                    /** RouterBgpPeer peerAsn. */
                    public peerAsn?: (number|null);

                    /** RouterBgpPeer peerIpAddress. */
                    public peerIpAddress?: (string|null);

                    /** RouterBgpPeer peerIpv4NexthopAddress. */
                    public peerIpv4NexthopAddress?: (string|null);

                    /** RouterBgpPeer peerIpv6NexthopAddress. */
                    public peerIpv6NexthopAddress?: (string|null);

                    /** RouterBgpPeer routerApplianceInstance. */
                    public routerApplianceInstance?: (string|null);

                    /**
                     * Creates a new RouterBgpPeer instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterBgpPeer instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterBgpPeer): google.cloud.compute.v1beta.RouterBgpPeer;

                    /**
                     * Encodes the specified RouterBgpPeer message. Does not implicitly {@link google.cloud.compute.v1beta.RouterBgpPeer.verify|verify} messages.
                     * @param message RouterBgpPeer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterBgpPeer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterBgpPeer message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterBgpPeer.verify|verify} messages.
                     * @param message RouterBgpPeer message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterBgpPeer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterBgpPeer message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterBgpPeer
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterBgpPeer;

                    /**
                     * Decodes a RouterBgpPeer message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterBgpPeer
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterBgpPeer;

                    /**
                     * Verifies a RouterBgpPeer message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterBgpPeer message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterBgpPeer
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterBgpPeer;

                    /**
                     * Creates a plain object from a RouterBgpPeer message. Also converts values to other types if specified.
                     * @param message RouterBgpPeer
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterBgpPeer, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterBgpPeer to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterBgpPeer
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterBgpPeer {

                    /** AdvertiseMode enum. */
                    enum AdvertiseMode {
                        UNDEFINED_ADVERTISE_MODE = 0,
                        CUSTOM = 388595569,
                        DEFAULT = 115302945
                    }

                    /** AdvertisedGroups enum. */
                    enum AdvertisedGroups {
                        UNDEFINED_ADVERTISED_GROUPS = 0,
                        ALL_SUBNETS = 3622872
                    }

                    /** Enable enum. */
                    enum Enable {
                        UNDEFINED_ENABLE = 0,
                        FALSE = 66658563,
                        TRUE = 2583950
                    }

                    /** ManagementType enum. */
                    enum ManagementType {
                        UNDEFINED_MANAGEMENT_TYPE = 0,
                        MANAGED_BY_ATTACHMENT = 458926411,
                        MANAGED_BY_USER = 317294067
                    }
                }

                /** Properties of a RouterBgpPeerBfd. */
                interface IRouterBgpPeerBfd {

                    /** RouterBgpPeerBfd minReceiveInterval */
                    minReceiveInterval?: (number|null);

                    /** RouterBgpPeerBfd minTransmitInterval */
                    minTransmitInterval?: (number|null);

                    /** RouterBgpPeerBfd multiplier */
                    multiplier?: (number|null);

                    /** RouterBgpPeerBfd sessionInitializationMode */
                    sessionInitializationMode?: (string|null);
                }

                /** Represents a RouterBgpPeerBfd. */
                class RouterBgpPeerBfd implements IRouterBgpPeerBfd {

                    /**
                     * Constructs a new RouterBgpPeerBfd.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterBgpPeerBfd);

                    /** RouterBgpPeerBfd minReceiveInterval. */
                    public minReceiveInterval?: (number|null);

                    /** RouterBgpPeerBfd minTransmitInterval. */
                    public minTransmitInterval?: (number|null);

                    /** RouterBgpPeerBfd multiplier. */
                    public multiplier?: (number|null);

                    /** RouterBgpPeerBfd sessionInitializationMode. */
                    public sessionInitializationMode?: (string|null);

                    /**
                     * Creates a new RouterBgpPeerBfd instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterBgpPeerBfd instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterBgpPeerBfd): google.cloud.compute.v1beta.RouterBgpPeerBfd;

                    /**
                     * Encodes the specified RouterBgpPeerBfd message. Does not implicitly {@link google.cloud.compute.v1beta.RouterBgpPeerBfd.verify|verify} messages.
                     * @param message RouterBgpPeerBfd message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterBgpPeerBfd, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterBgpPeerBfd message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterBgpPeerBfd.verify|verify} messages.
                     * @param message RouterBgpPeerBfd message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterBgpPeerBfd, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterBgpPeerBfd message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterBgpPeerBfd
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterBgpPeerBfd;

                    /**
                     * Decodes a RouterBgpPeerBfd message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterBgpPeerBfd
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterBgpPeerBfd;

                    /**
                     * Verifies a RouterBgpPeerBfd message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterBgpPeerBfd message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterBgpPeerBfd
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterBgpPeerBfd;

                    /**
                     * Creates a plain object from a RouterBgpPeerBfd message. Also converts values to other types if specified.
                     * @param message RouterBgpPeerBfd
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterBgpPeerBfd, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterBgpPeerBfd to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterBgpPeerBfd
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterBgpPeerBfd {

                    /** SessionInitializationMode enum. */
                    enum SessionInitializationMode {
                        UNDEFINED_SESSION_INITIALIZATION_MODE = 0,
                        ACTIVE = 314733318,
                        DISABLED = 516696700,
                        PASSIVE = 462813959
                    }
                }

                /** Properties of a RouterBgpPeerCustomLearnedIpRange. */
                interface IRouterBgpPeerCustomLearnedIpRange {

                    /** RouterBgpPeerCustomLearnedIpRange range */
                    range?: (string|null);
                }

                /** Represents a RouterBgpPeerCustomLearnedIpRange. */
                class RouterBgpPeerCustomLearnedIpRange implements IRouterBgpPeerCustomLearnedIpRange {

                    /**
                     * Constructs a new RouterBgpPeerCustomLearnedIpRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterBgpPeerCustomLearnedIpRange);

                    /** RouterBgpPeerCustomLearnedIpRange range. */
                    public range?: (string|null);

                    /**
                     * Creates a new RouterBgpPeerCustomLearnedIpRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterBgpPeerCustomLearnedIpRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterBgpPeerCustomLearnedIpRange): google.cloud.compute.v1beta.RouterBgpPeerCustomLearnedIpRange;

                    /**
                     * Encodes the specified RouterBgpPeerCustomLearnedIpRange message. Does not implicitly {@link google.cloud.compute.v1beta.RouterBgpPeerCustomLearnedIpRange.verify|verify} messages.
                     * @param message RouterBgpPeerCustomLearnedIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterBgpPeerCustomLearnedIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterBgpPeerCustomLearnedIpRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterBgpPeerCustomLearnedIpRange.verify|verify} messages.
                     * @param message RouterBgpPeerCustomLearnedIpRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterBgpPeerCustomLearnedIpRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterBgpPeerCustomLearnedIpRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterBgpPeerCustomLearnedIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterBgpPeerCustomLearnedIpRange;

                    /**
                     * Decodes a RouterBgpPeerCustomLearnedIpRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterBgpPeerCustomLearnedIpRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterBgpPeerCustomLearnedIpRange;

                    /**
                     * Verifies a RouterBgpPeerCustomLearnedIpRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterBgpPeerCustomLearnedIpRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterBgpPeerCustomLearnedIpRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterBgpPeerCustomLearnedIpRange;

                    /**
                     * Creates a plain object from a RouterBgpPeerCustomLearnedIpRange message. Also converts values to other types if specified.
                     * @param message RouterBgpPeerCustomLearnedIpRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterBgpPeerCustomLearnedIpRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterBgpPeerCustomLearnedIpRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterBgpPeerCustomLearnedIpRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterInterface. */
                interface IRouterInterface {

                    /** RouterInterface ipRange */
                    ipRange?: (string|null);

                    /** RouterInterface ipVersion */
                    ipVersion?: (string|null);

                    /** RouterInterface linkedInterconnectAttachment */
                    linkedInterconnectAttachment?: (string|null);

                    /** RouterInterface linkedVpnTunnel */
                    linkedVpnTunnel?: (string|null);

                    /** RouterInterface managementType */
                    managementType?: (string|null);

                    /** RouterInterface name */
                    name?: (string|null);

                    /** RouterInterface privateIpAddress */
                    privateIpAddress?: (string|null);

                    /** RouterInterface redundantInterface */
                    redundantInterface?: (string|null);

                    /** RouterInterface subnetwork */
                    subnetwork?: (string|null);
                }

                /** Represents a RouterInterface. */
                class RouterInterface implements IRouterInterface {

                    /**
                     * Constructs a new RouterInterface.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterInterface);

                    /** RouterInterface ipRange. */
                    public ipRange?: (string|null);

                    /** RouterInterface ipVersion. */
                    public ipVersion?: (string|null);

                    /** RouterInterface linkedInterconnectAttachment. */
                    public linkedInterconnectAttachment?: (string|null);

                    /** RouterInterface linkedVpnTunnel. */
                    public linkedVpnTunnel?: (string|null);

                    /** RouterInterface managementType. */
                    public managementType?: (string|null);

                    /** RouterInterface name. */
                    public name?: (string|null);

                    /** RouterInterface privateIpAddress. */
                    public privateIpAddress?: (string|null);

                    /** RouterInterface redundantInterface. */
                    public redundantInterface?: (string|null);

                    /** RouterInterface subnetwork. */
                    public subnetwork?: (string|null);

                    /**
                     * Creates a new RouterInterface instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterInterface instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterInterface): google.cloud.compute.v1beta.RouterInterface;

                    /**
                     * Encodes the specified RouterInterface message. Does not implicitly {@link google.cloud.compute.v1beta.RouterInterface.verify|verify} messages.
                     * @param message RouterInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterInterface message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterInterface.verify|verify} messages.
                     * @param message RouterInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterInterface message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterInterface;

                    /**
                     * Decodes a RouterInterface message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterInterface;

                    /**
                     * Verifies a RouterInterface message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterInterface message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterInterface
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterInterface;

                    /**
                     * Creates a plain object from a RouterInterface message. Also converts values to other types if specified.
                     * @param message RouterInterface
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterInterface, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterInterface to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterInterface
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterInterface {

                    /** IpVersion enum. */
                    enum IpVersion {
                        UNDEFINED_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343
                    }

                    /** ManagementType enum. */
                    enum ManagementType {
                        UNDEFINED_MANAGEMENT_TYPE = 0,
                        MANAGED_BY_ATTACHMENT = 458926411,
                        MANAGED_BY_USER = 317294067
                    }
                }

                /** Properties of a RouterList. */
                interface IRouterList {

                    /** RouterList id */
                    id?: (string|null);

                    /** RouterList items */
                    items?: (google.cloud.compute.v1beta.IRouter[]|null);

                    /** RouterList kind */
                    kind?: (string|null);

                    /** RouterList nextPageToken */
                    nextPageToken?: (string|null);

                    /** RouterList selfLink */
                    selfLink?: (string|null);

                    /** RouterList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RouterList. */
                class RouterList implements IRouterList {

                    /**
                     * Constructs a new RouterList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterList);

                    /** RouterList id. */
                    public id?: (string|null);

                    /** RouterList items. */
                    public items: google.cloud.compute.v1beta.IRouter[];

                    /** RouterList kind. */
                    public kind?: (string|null);

                    /** RouterList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RouterList selfLink. */
                    public selfLink?: (string|null);

                    /** RouterList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RouterList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterList): google.cloud.compute.v1beta.RouterList;

                    /**
                     * Encodes the specified RouterList message. Does not implicitly {@link google.cloud.compute.v1beta.RouterList.verify|verify} messages.
                     * @param message RouterList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterList.verify|verify} messages.
                     * @param message RouterList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterList;

                    /**
                     * Decodes a RouterList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterList;

                    /**
                     * Verifies a RouterList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterList;

                    /**
                     * Creates a plain object from a RouterList message. Also converts values to other types if specified.
                     * @param message RouterList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterMd5AuthenticationKey. */
                interface IRouterMd5AuthenticationKey {

                    /** RouterMd5AuthenticationKey key */
                    key?: (string|null);

                    /** RouterMd5AuthenticationKey name */
                    name?: (string|null);
                }

                /** Represents a RouterMd5AuthenticationKey. */
                class RouterMd5AuthenticationKey implements IRouterMd5AuthenticationKey {

                    /**
                     * Constructs a new RouterMd5AuthenticationKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterMd5AuthenticationKey);

                    /** RouterMd5AuthenticationKey key. */
                    public key?: (string|null);

                    /** RouterMd5AuthenticationKey name. */
                    public name?: (string|null);

                    /**
                     * Creates a new RouterMd5AuthenticationKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterMd5AuthenticationKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterMd5AuthenticationKey): google.cloud.compute.v1beta.RouterMd5AuthenticationKey;

                    /**
                     * Encodes the specified RouterMd5AuthenticationKey message. Does not implicitly {@link google.cloud.compute.v1beta.RouterMd5AuthenticationKey.verify|verify} messages.
                     * @param message RouterMd5AuthenticationKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterMd5AuthenticationKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterMd5AuthenticationKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterMd5AuthenticationKey.verify|verify} messages.
                     * @param message RouterMd5AuthenticationKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterMd5AuthenticationKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterMd5AuthenticationKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterMd5AuthenticationKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterMd5AuthenticationKey;

                    /**
                     * Decodes a RouterMd5AuthenticationKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterMd5AuthenticationKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterMd5AuthenticationKey;

                    /**
                     * Verifies a RouterMd5AuthenticationKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterMd5AuthenticationKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterMd5AuthenticationKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterMd5AuthenticationKey;

                    /**
                     * Creates a plain object from a RouterMd5AuthenticationKey message. Also converts values to other types if specified.
                     * @param message RouterMd5AuthenticationKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterMd5AuthenticationKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterMd5AuthenticationKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterMd5AuthenticationKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterNat. */
                interface IRouterNat {

                    /** RouterNat autoNetworkTier */
                    autoNetworkTier?: (string|null);

                    /** RouterNat drainNatIps */
                    drainNatIps?: (string[]|null);

                    /** RouterNat enableDynamicPortAllocation */
                    enableDynamicPortAllocation?: (boolean|null);

                    /** RouterNat enableEndpointIndependentMapping */
                    enableEndpointIndependentMapping?: (boolean|null);

                    /** RouterNat endpointTypes */
                    endpointTypes?: (string[]|null);

                    /** RouterNat icmpIdleTimeoutSec */
                    icmpIdleTimeoutSec?: (number|null);

                    /** RouterNat logConfig */
                    logConfig?: (google.cloud.compute.v1beta.IRouterNatLogConfig|null);

                    /** RouterNat maxPortsPerVm */
                    maxPortsPerVm?: (number|null);

                    /** RouterNat minPortsPerVm */
                    minPortsPerVm?: (number|null);

                    /** RouterNat name */
                    name?: (string|null);

                    /** RouterNat nat64Subnetworks */
                    nat64Subnetworks?: (google.cloud.compute.v1beta.IRouterNatSubnetworkToNat64[]|null);

                    /** RouterNat natIpAllocateOption */
                    natIpAllocateOption?: (string|null);

                    /** RouterNat natIps */
                    natIps?: (string[]|null);

                    /** RouterNat rules */
                    rules?: (google.cloud.compute.v1beta.IRouterNatRule[]|null);

                    /** RouterNat sourceSubnetworkIpRangesToNat */
                    sourceSubnetworkIpRangesToNat?: (string|null);

                    /** RouterNat sourceSubnetworkIpRangesToNat64 */
                    sourceSubnetworkIpRangesToNat64?: (string|null);

                    /** RouterNat subnetworks */
                    subnetworks?: (google.cloud.compute.v1beta.IRouterNatSubnetworkToNat[]|null);

                    /** RouterNat tcpEstablishedIdleTimeoutSec */
                    tcpEstablishedIdleTimeoutSec?: (number|null);

                    /** RouterNat tcpTimeWaitTimeoutSec */
                    tcpTimeWaitTimeoutSec?: (number|null);

                    /** RouterNat tcpTransitoryIdleTimeoutSec */
                    tcpTransitoryIdleTimeoutSec?: (number|null);

                    /** RouterNat type */
                    type?: (string|null);

                    /** RouterNat udpIdleTimeoutSec */
                    udpIdleTimeoutSec?: (number|null);
                }

                /** Represents a RouterNat. */
                class RouterNat implements IRouterNat {

                    /**
                     * Constructs a new RouterNat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterNat);

                    /** RouterNat autoNetworkTier. */
                    public autoNetworkTier?: (string|null);

                    /** RouterNat drainNatIps. */
                    public drainNatIps: string[];

                    /** RouterNat enableDynamicPortAllocation. */
                    public enableDynamicPortAllocation?: (boolean|null);

                    /** RouterNat enableEndpointIndependentMapping. */
                    public enableEndpointIndependentMapping?: (boolean|null);

                    /** RouterNat endpointTypes. */
                    public endpointTypes: string[];

                    /** RouterNat icmpIdleTimeoutSec. */
                    public icmpIdleTimeoutSec?: (number|null);

                    /** RouterNat logConfig. */
                    public logConfig?: (google.cloud.compute.v1beta.IRouterNatLogConfig|null);

                    /** RouterNat maxPortsPerVm. */
                    public maxPortsPerVm?: (number|null);

                    /** RouterNat minPortsPerVm. */
                    public minPortsPerVm?: (number|null);

                    /** RouterNat name. */
                    public name?: (string|null);

                    /** RouterNat nat64Subnetworks. */
                    public nat64Subnetworks: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat64[];

                    /** RouterNat natIpAllocateOption. */
                    public natIpAllocateOption?: (string|null);

                    /** RouterNat natIps. */
                    public natIps: string[];

                    /** RouterNat rules. */
                    public rules: google.cloud.compute.v1beta.IRouterNatRule[];

                    /** RouterNat sourceSubnetworkIpRangesToNat. */
                    public sourceSubnetworkIpRangesToNat?: (string|null);

                    /** RouterNat sourceSubnetworkIpRangesToNat64. */
                    public sourceSubnetworkIpRangesToNat64?: (string|null);

                    /** RouterNat subnetworks. */
                    public subnetworks: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat[];

                    /** RouterNat tcpEstablishedIdleTimeoutSec. */
                    public tcpEstablishedIdleTimeoutSec?: (number|null);

                    /** RouterNat tcpTimeWaitTimeoutSec. */
                    public tcpTimeWaitTimeoutSec?: (number|null);

                    /** RouterNat tcpTransitoryIdleTimeoutSec. */
                    public tcpTransitoryIdleTimeoutSec?: (number|null);

                    /** RouterNat type. */
                    public type?: (string|null);

                    /** RouterNat udpIdleTimeoutSec. */
                    public udpIdleTimeoutSec?: (number|null);

                    /**
                     * Creates a new RouterNat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNat instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterNat): google.cloud.compute.v1beta.RouterNat;

                    /**
                     * Encodes the specified RouterNat message. Does not implicitly {@link google.cloud.compute.v1beta.RouterNat.verify|verify} messages.
                     * @param message RouterNat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterNat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNat message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterNat.verify|verify} messages.
                     * @param message RouterNat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterNat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterNat;

                    /**
                     * Decodes a RouterNat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterNat;

                    /**
                     * Verifies a RouterNat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterNat;

                    /**
                     * Creates a plain object from a RouterNat message. Also converts values to other types if specified.
                     * @param message RouterNat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterNat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterNat {

                    /** AutoNetworkTier enum. */
                    enum AutoNetworkTier {
                        UNDEFINED_AUTO_NETWORK_TIER = 0,
                        FIXED_STANDARD = 310464328,
                        PREMIUM = 399530551,
                        STANDARD = 484642493,
                        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234
                    }

                    /** EndpointTypes enum. */
                    enum EndpointTypes {
                        UNDEFINED_ENDPOINT_TYPES = 0,
                        ENDPOINT_TYPE_MANAGED_PROXY_LB = 439196930,
                        ENDPOINT_TYPE_SWG = 159344456,
                        ENDPOINT_TYPE_VM = 57095474
                    }

                    /** NatIpAllocateOption enum. */
                    enum NatIpAllocateOption {
                        UNDEFINED_NAT_IP_ALLOCATE_OPTION = 0,
                        AUTO_ONLY = 182333500,
                        MANUAL_ONLY = 261251205
                    }

                    /** SourceSubnetworkIpRangesToNat enum. */
                    enum SourceSubnetworkIpRangesToNat {
                        UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT = 0,
                        ALL_SUBNETWORKS_ALL_IP_RANGES = 179964376,
                        ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES = 185573819,
                        LIST_OF_SUBNETWORKS = 517542270
                    }

                    /** SourceSubnetworkIpRangesToNat64 enum. */
                    enum SourceSubnetworkIpRangesToNat64 {
                        UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT64 = 0,
                        ALL_IPV6_SUBNETWORKS = 341632747,
                        LIST_OF_IPV6_SUBNETWORKS = 521079860
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        PRIVATE = 403485027,
                        PUBLIC = 223389289
                    }
                }

                /** Properties of a RouterNatLogConfig. */
                interface IRouterNatLogConfig {

                    /** RouterNatLogConfig enable */
                    enable?: (boolean|null);

                    /** RouterNatLogConfig filter */
                    filter?: (string|null);
                }

                /** Represents a RouterNatLogConfig. */
                class RouterNatLogConfig implements IRouterNatLogConfig {

                    /**
                     * Constructs a new RouterNatLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterNatLogConfig);

                    /** RouterNatLogConfig enable. */
                    public enable?: (boolean|null);

                    /** RouterNatLogConfig filter. */
                    public filter?: (string|null);

                    /**
                     * Creates a new RouterNatLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterNatLogConfig): google.cloud.compute.v1beta.RouterNatLogConfig;

                    /**
                     * Encodes the specified RouterNatLogConfig message. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatLogConfig.verify|verify} messages.
                     * @param message RouterNatLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterNatLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatLogConfig.verify|verify} messages.
                     * @param message RouterNatLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterNatLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterNatLogConfig;

                    /**
                     * Decodes a RouterNatLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterNatLogConfig;

                    /**
                     * Verifies a RouterNatLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterNatLogConfig;

                    /**
                     * Creates a plain object from a RouterNatLogConfig message. Also converts values to other types if specified.
                     * @param message RouterNatLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterNatLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterNatLogConfig {

                    /** Filter enum. */
                    enum Filter {
                        UNDEFINED_FILTER = 0,
                        ALL = 64897,
                        ERRORS_ONLY = 307484672,
                        TRANSLATIONS_ONLY = 357212649
                    }
                }

                /** Properties of a RouterNatRule. */
                interface IRouterNatRule {

                    /** RouterNatRule action */
                    action?: (google.cloud.compute.v1beta.IRouterNatRuleAction|null);

                    /** RouterNatRule description */
                    description?: (string|null);

                    /** RouterNatRule match */
                    match?: (string|null);

                    /** RouterNatRule ruleNumber */
                    ruleNumber?: (number|null);
                }

                /** Represents a RouterNatRule. */
                class RouterNatRule implements IRouterNatRule {

                    /**
                     * Constructs a new RouterNatRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterNatRule);

                    /** RouterNatRule action. */
                    public action?: (google.cloud.compute.v1beta.IRouterNatRuleAction|null);

                    /** RouterNatRule description. */
                    public description?: (string|null);

                    /** RouterNatRule match. */
                    public match?: (string|null);

                    /** RouterNatRule ruleNumber. */
                    public ruleNumber?: (number|null);

                    /**
                     * Creates a new RouterNatRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterNatRule): google.cloud.compute.v1beta.RouterNatRule;

                    /**
                     * Encodes the specified RouterNatRule message. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatRule.verify|verify} messages.
                     * @param message RouterNatRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterNatRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatRule.verify|verify} messages.
                     * @param message RouterNatRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterNatRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterNatRule;

                    /**
                     * Decodes a RouterNatRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterNatRule;

                    /**
                     * Verifies a RouterNatRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterNatRule;

                    /**
                     * Creates a plain object from a RouterNatRule message. Also converts values to other types if specified.
                     * @param message RouterNatRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterNatRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterNatRuleAction. */
                interface IRouterNatRuleAction {

                    /** RouterNatRuleAction sourceNatActiveIps */
                    sourceNatActiveIps?: (string[]|null);

                    /** RouterNatRuleAction sourceNatActiveRanges */
                    sourceNatActiveRanges?: (string[]|null);

                    /** RouterNatRuleAction sourceNatDrainIps */
                    sourceNatDrainIps?: (string[]|null);

                    /** RouterNatRuleAction sourceNatDrainRanges */
                    sourceNatDrainRanges?: (string[]|null);
                }

                /** Represents a RouterNatRuleAction. */
                class RouterNatRuleAction implements IRouterNatRuleAction {

                    /**
                     * Constructs a new RouterNatRuleAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterNatRuleAction);

                    /** RouterNatRuleAction sourceNatActiveIps. */
                    public sourceNatActiveIps: string[];

                    /** RouterNatRuleAction sourceNatActiveRanges. */
                    public sourceNatActiveRanges: string[];

                    /** RouterNatRuleAction sourceNatDrainIps. */
                    public sourceNatDrainIps: string[];

                    /** RouterNatRuleAction sourceNatDrainRanges. */
                    public sourceNatDrainRanges: string[];

                    /**
                     * Creates a new RouterNatRuleAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatRuleAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterNatRuleAction): google.cloud.compute.v1beta.RouterNatRuleAction;

                    /**
                     * Encodes the specified RouterNatRuleAction message. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatRuleAction.verify|verify} messages.
                     * @param message RouterNatRuleAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterNatRuleAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatRuleAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatRuleAction.verify|verify} messages.
                     * @param message RouterNatRuleAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterNatRuleAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatRuleAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatRuleAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterNatRuleAction;

                    /**
                     * Decodes a RouterNatRuleAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatRuleAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterNatRuleAction;

                    /**
                     * Verifies a RouterNatRuleAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatRuleAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatRuleAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterNatRuleAction;

                    /**
                     * Creates a plain object from a RouterNatRuleAction message. Also converts values to other types if specified.
                     * @param message RouterNatRuleAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterNatRuleAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatRuleAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatRuleAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterNatSubnetworkToNat. */
                interface IRouterNatSubnetworkToNat {

                    /** RouterNatSubnetworkToNat name */
                    name?: (string|null);

                    /** RouterNatSubnetworkToNat secondaryIpRangeNames */
                    secondaryIpRangeNames?: (string[]|null);

                    /** RouterNatSubnetworkToNat sourceIpRangesToNat */
                    sourceIpRangesToNat?: (string[]|null);
                }

                /** Represents a RouterNatSubnetworkToNat. */
                class RouterNatSubnetworkToNat implements IRouterNatSubnetworkToNat {

                    /**
                     * Constructs a new RouterNatSubnetworkToNat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat);

                    /** RouterNatSubnetworkToNat name. */
                    public name?: (string|null);

                    /** RouterNatSubnetworkToNat secondaryIpRangeNames. */
                    public secondaryIpRangeNames: string[];

                    /** RouterNatSubnetworkToNat sourceIpRangesToNat. */
                    public sourceIpRangesToNat: string[];

                    /**
                     * Creates a new RouterNatSubnetworkToNat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatSubnetworkToNat instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat): google.cloud.compute.v1beta.RouterNatSubnetworkToNat;

                    /**
                     * Encodes the specified RouterNatSubnetworkToNat message. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatSubnetworkToNat.verify|verify} messages.
                     * @param message RouterNatSubnetworkToNat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatSubnetworkToNat message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatSubnetworkToNat.verify|verify} messages.
                     * @param message RouterNatSubnetworkToNat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatSubnetworkToNat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatSubnetworkToNat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterNatSubnetworkToNat;

                    /**
                     * Decodes a RouterNatSubnetworkToNat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatSubnetworkToNat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterNatSubnetworkToNat;

                    /**
                     * Verifies a RouterNatSubnetworkToNat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatSubnetworkToNat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatSubnetworkToNat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterNatSubnetworkToNat;

                    /**
                     * Creates a plain object from a RouterNatSubnetworkToNat message. Also converts values to other types if specified.
                     * @param message RouterNatSubnetworkToNat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterNatSubnetworkToNat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatSubnetworkToNat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatSubnetworkToNat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterNatSubnetworkToNat {

                    /** SourceIpRangesToNat enum. */
                    enum SourceIpRangesToNat {
                        UNDEFINED_SOURCE_IP_RANGES_TO_NAT = 0,
                        ALL_IP_RANGES = 35608496,
                        LIST_OF_SECONDARY_IP_RANGES = 192289308,
                        PRIMARY_IP_RANGE = 297109954
                    }
                }

                /** Properties of a RouterNatSubnetworkToNat64. */
                interface IRouterNatSubnetworkToNat64 {

                    /** RouterNatSubnetworkToNat64 name */
                    name?: (string|null);
                }

                /** Represents a RouterNatSubnetworkToNat64. */
                class RouterNatSubnetworkToNat64 implements IRouterNatSubnetworkToNat64 {

                    /**
                     * Constructs a new RouterNatSubnetworkToNat64.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat64);

                    /** RouterNatSubnetworkToNat64 name. */
                    public name?: (string|null);

                    /**
                     * Creates a new RouterNatSubnetworkToNat64 instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterNatSubnetworkToNat64 instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat64): google.cloud.compute.v1beta.RouterNatSubnetworkToNat64;

                    /**
                     * Encodes the specified RouterNatSubnetworkToNat64 message. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatSubnetworkToNat64.verify|verify} messages.
                     * @param message RouterNatSubnetworkToNat64 message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat64, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterNatSubnetworkToNat64 message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterNatSubnetworkToNat64.verify|verify} messages.
                     * @param message RouterNatSubnetworkToNat64 message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterNatSubnetworkToNat64, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterNatSubnetworkToNat64 message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterNatSubnetworkToNat64
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterNatSubnetworkToNat64;

                    /**
                     * Decodes a RouterNatSubnetworkToNat64 message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterNatSubnetworkToNat64
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterNatSubnetworkToNat64;

                    /**
                     * Verifies a RouterNatSubnetworkToNat64 message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterNatSubnetworkToNat64 message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterNatSubnetworkToNat64
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterNatSubnetworkToNat64;

                    /**
                     * Creates a plain object from a RouterNatSubnetworkToNat64 message. Also converts values to other types if specified.
                     * @param message RouterNatSubnetworkToNat64
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterNatSubnetworkToNat64, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterNatSubnetworkToNat64 to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterNatSubnetworkToNat64
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterParams. */
                interface IRouterParams {

                    /** RouterParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a RouterParams. */
                class RouterParams implements IRouterParams {

                    /**
                     * Constructs a new RouterParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterParams);

                    /** RouterParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new RouterParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterParams): google.cloud.compute.v1beta.RouterParams;

                    /**
                     * Encodes the specified RouterParams message. Does not implicitly {@link google.cloud.compute.v1beta.RouterParams.verify|verify} messages.
                     * @param message RouterParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterParams.verify|verify} messages.
                     * @param message RouterParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterParams;

                    /**
                     * Decodes a RouterParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterParams;

                    /**
                     * Verifies a RouterParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterParams;

                    /**
                     * Creates a plain object from a RouterParams message. Also converts values to other types if specified.
                     * @param message RouterParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterStatus. */
                interface IRouterStatus {

                    /** RouterStatus bestRoutes */
                    bestRoutes?: (google.cloud.compute.v1beta.IRoute[]|null);

                    /** RouterStatus bestRoutesForRouter */
                    bestRoutesForRouter?: (google.cloud.compute.v1beta.IRoute[]|null);

                    /** RouterStatus bgpPeerStatus */
                    bgpPeerStatus?: (google.cloud.compute.v1beta.IRouterStatusBgpPeerStatus[]|null);

                    /** RouterStatus natStatus */
                    natStatus?: (google.cloud.compute.v1beta.IRouterStatusNatStatus[]|null);

                    /** RouterStatus nccGateway */
                    nccGateway?: (string|null);

                    /** RouterStatus network */
                    network?: (string|null);
                }

                /** Represents a RouterStatus. */
                class RouterStatus implements IRouterStatus {

                    /**
                     * Constructs a new RouterStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterStatus);

                    /** RouterStatus bestRoutes. */
                    public bestRoutes: google.cloud.compute.v1beta.IRoute[];

                    /** RouterStatus bestRoutesForRouter. */
                    public bestRoutesForRouter: google.cloud.compute.v1beta.IRoute[];

                    /** RouterStatus bgpPeerStatus. */
                    public bgpPeerStatus: google.cloud.compute.v1beta.IRouterStatusBgpPeerStatus[];

                    /** RouterStatus natStatus. */
                    public natStatus: google.cloud.compute.v1beta.IRouterStatusNatStatus[];

                    /** RouterStatus nccGateway. */
                    public nccGateway?: (string|null);

                    /** RouterStatus network. */
                    public network?: (string|null);

                    /**
                     * Creates a new RouterStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterStatus): google.cloud.compute.v1beta.RouterStatus;

                    /**
                     * Encodes the specified RouterStatus message. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatus.verify|verify} messages.
                     * @param message RouterStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatus.verify|verify} messages.
                     * @param message RouterStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterStatus;

                    /**
                     * Decodes a RouterStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterStatus;

                    /**
                     * Verifies a RouterStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterStatus;

                    /**
                     * Creates a plain object from a RouterStatus message. Also converts values to other types if specified.
                     * @param message RouterStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterStatusBgpPeerStatus. */
                interface IRouterStatusBgpPeerStatus {

                    /** RouterStatusBgpPeerStatus advertisedRoutes */
                    advertisedRoutes?: (google.cloud.compute.v1beta.IRoute[]|null);

                    /** RouterStatusBgpPeerStatus bfdStatus */
                    bfdStatus?: (google.cloud.compute.v1beta.IBfdStatus|null);

                    /** RouterStatusBgpPeerStatus enableIpv4 */
                    enableIpv4?: (boolean|null);

                    /** RouterStatusBgpPeerStatus enableIpv6 */
                    enableIpv6?: (boolean|null);

                    /** RouterStatusBgpPeerStatus ipAddress */
                    ipAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus ipv4NexthopAddress */
                    ipv4NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus ipv6NexthopAddress */
                    ipv6NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus linkedVpnTunnel */
                    linkedVpnTunnel?: (string|null);

                    /** RouterStatusBgpPeerStatus md5AuthEnabled */
                    md5AuthEnabled?: (boolean|null);

                    /** RouterStatusBgpPeerStatus name */
                    name?: (string|null);

                    /** RouterStatusBgpPeerStatus numLearnedRoutes */
                    numLearnedRoutes?: (number|null);

                    /** RouterStatusBgpPeerStatus peerIpAddress */
                    peerIpAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus peerIpv4NexthopAddress */
                    peerIpv4NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus peerIpv6NexthopAddress */
                    peerIpv6NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus routerApplianceInstance */
                    routerApplianceInstance?: (string|null);

                    /** RouterStatusBgpPeerStatus state */
                    state?: (string|null);

                    /** RouterStatusBgpPeerStatus status */
                    status?: (string|null);

                    /** RouterStatusBgpPeerStatus statusReason */
                    statusReason?: (string|null);

                    /** RouterStatusBgpPeerStatus uptime */
                    uptime?: (string|null);

                    /** RouterStatusBgpPeerStatus uptimeSeconds */
                    uptimeSeconds?: (string|null);
                }

                /** Represents a RouterStatusBgpPeerStatus. */
                class RouterStatusBgpPeerStatus implements IRouterStatusBgpPeerStatus {

                    /**
                     * Constructs a new RouterStatusBgpPeerStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterStatusBgpPeerStatus);

                    /** RouterStatusBgpPeerStatus advertisedRoutes. */
                    public advertisedRoutes: google.cloud.compute.v1beta.IRoute[];

                    /** RouterStatusBgpPeerStatus bfdStatus. */
                    public bfdStatus?: (google.cloud.compute.v1beta.IBfdStatus|null);

                    /** RouterStatusBgpPeerStatus enableIpv4. */
                    public enableIpv4?: (boolean|null);

                    /** RouterStatusBgpPeerStatus enableIpv6. */
                    public enableIpv6?: (boolean|null);

                    /** RouterStatusBgpPeerStatus ipAddress. */
                    public ipAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus ipv4NexthopAddress. */
                    public ipv4NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus ipv6NexthopAddress. */
                    public ipv6NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus linkedVpnTunnel. */
                    public linkedVpnTunnel?: (string|null);

                    /** RouterStatusBgpPeerStatus md5AuthEnabled. */
                    public md5AuthEnabled?: (boolean|null);

                    /** RouterStatusBgpPeerStatus name. */
                    public name?: (string|null);

                    /** RouterStatusBgpPeerStatus numLearnedRoutes. */
                    public numLearnedRoutes?: (number|null);

                    /** RouterStatusBgpPeerStatus peerIpAddress. */
                    public peerIpAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus peerIpv4NexthopAddress. */
                    public peerIpv4NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus peerIpv6NexthopAddress. */
                    public peerIpv6NexthopAddress?: (string|null);

                    /** RouterStatusBgpPeerStatus routerApplianceInstance. */
                    public routerApplianceInstance?: (string|null);

                    /** RouterStatusBgpPeerStatus state. */
                    public state?: (string|null);

                    /** RouterStatusBgpPeerStatus status. */
                    public status?: (string|null);

                    /** RouterStatusBgpPeerStatus statusReason. */
                    public statusReason?: (string|null);

                    /** RouterStatusBgpPeerStatus uptime. */
                    public uptime?: (string|null);

                    /** RouterStatusBgpPeerStatus uptimeSeconds. */
                    public uptimeSeconds?: (string|null);

                    /**
                     * Creates a new RouterStatusBgpPeerStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatusBgpPeerStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterStatusBgpPeerStatus): google.cloud.compute.v1beta.RouterStatusBgpPeerStatus;

                    /**
                     * Encodes the specified RouterStatusBgpPeerStatus message. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatusBgpPeerStatus.verify|verify} messages.
                     * @param message RouterStatusBgpPeerStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterStatusBgpPeerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatusBgpPeerStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatusBgpPeerStatus.verify|verify} messages.
                     * @param message RouterStatusBgpPeerStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterStatusBgpPeerStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatusBgpPeerStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatusBgpPeerStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterStatusBgpPeerStatus;

                    /**
                     * Decodes a RouterStatusBgpPeerStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatusBgpPeerStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterStatusBgpPeerStatus;

                    /**
                     * Verifies a RouterStatusBgpPeerStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatusBgpPeerStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatusBgpPeerStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterStatusBgpPeerStatus;

                    /**
                     * Creates a plain object from a RouterStatusBgpPeerStatus message. Also converts values to other types if specified.
                     * @param message RouterStatusBgpPeerStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterStatusBgpPeerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatusBgpPeerStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatusBgpPeerStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RouterStatusBgpPeerStatus {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DOWN = 2104482,
                        UNKNOWN = 433141802,
                        UP = 2715
                    }

                    /** StatusReason enum. */
                    enum StatusReason {
                        UNDEFINED_STATUS_REASON = 0,
                        IPV4_PEER_ON_IPV6_ONLY_CONNECTION = 435936662,
                        IPV6_PEER_ON_IPV4_ONLY_CONNECTION = 436304082,
                        MD5_AUTH_INTERNAL_PROBLEM = 140462259,
                        STATUS_REASON_UNSPECIFIED = 394331913
                    }
                }

                /** Properties of a RouterStatusNatStatus. */
                interface IRouterStatusNatStatus {

                    /** RouterStatusNatStatus autoAllocatedNatIps */
                    autoAllocatedNatIps?: (string[]|null);

                    /** RouterStatusNatStatus drainAutoAllocatedNatIps */
                    drainAutoAllocatedNatIps?: (string[]|null);

                    /** RouterStatusNatStatus drainUserAllocatedNatIps */
                    drainUserAllocatedNatIps?: (string[]|null);

                    /** RouterStatusNatStatus minExtraNatIpsNeeded */
                    minExtraNatIpsNeeded?: (number|null);

                    /** RouterStatusNatStatus name */
                    name?: (string|null);

                    /** RouterStatusNatStatus numVmEndpointsWithNatMappings */
                    numVmEndpointsWithNatMappings?: (number|null);

                    /** RouterStatusNatStatus ruleStatus */
                    ruleStatus?: (google.cloud.compute.v1beta.IRouterStatusNatStatusNatRuleStatus[]|null);

                    /** RouterStatusNatStatus userAllocatedNatIpResources */
                    userAllocatedNatIpResources?: (string[]|null);

                    /** RouterStatusNatStatus userAllocatedNatIps */
                    userAllocatedNatIps?: (string[]|null);
                }

                /** Represents a RouterStatusNatStatus. */
                class RouterStatusNatStatus implements IRouterStatusNatStatus {

                    /**
                     * Constructs a new RouterStatusNatStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterStatusNatStatus);

                    /** RouterStatusNatStatus autoAllocatedNatIps. */
                    public autoAllocatedNatIps: string[];

                    /** RouterStatusNatStatus drainAutoAllocatedNatIps. */
                    public drainAutoAllocatedNatIps: string[];

                    /** RouterStatusNatStatus drainUserAllocatedNatIps. */
                    public drainUserAllocatedNatIps: string[];

                    /** RouterStatusNatStatus minExtraNatIpsNeeded. */
                    public minExtraNatIpsNeeded?: (number|null);

                    /** RouterStatusNatStatus name. */
                    public name?: (string|null);

                    /** RouterStatusNatStatus numVmEndpointsWithNatMappings. */
                    public numVmEndpointsWithNatMappings?: (number|null);

                    /** RouterStatusNatStatus ruleStatus. */
                    public ruleStatus: google.cloud.compute.v1beta.IRouterStatusNatStatusNatRuleStatus[];

                    /** RouterStatusNatStatus userAllocatedNatIpResources. */
                    public userAllocatedNatIpResources: string[];

                    /** RouterStatusNatStatus userAllocatedNatIps. */
                    public userAllocatedNatIps: string[];

                    /**
                     * Creates a new RouterStatusNatStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatusNatStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterStatusNatStatus): google.cloud.compute.v1beta.RouterStatusNatStatus;

                    /**
                     * Encodes the specified RouterStatusNatStatus message. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatusNatStatus.verify|verify} messages.
                     * @param message RouterStatusNatStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterStatusNatStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatusNatStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatusNatStatus.verify|verify} messages.
                     * @param message RouterStatusNatStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterStatusNatStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatusNatStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatusNatStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterStatusNatStatus;

                    /**
                     * Decodes a RouterStatusNatStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatusNatStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterStatusNatStatus;

                    /**
                     * Verifies a RouterStatusNatStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatusNatStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatusNatStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterStatusNatStatus;

                    /**
                     * Creates a plain object from a RouterStatusNatStatus message. Also converts values to other types if specified.
                     * @param message RouterStatusNatStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterStatusNatStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatusNatStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatusNatStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterStatusNatStatusNatRuleStatus. */
                interface IRouterStatusNatStatusNatRuleStatus {

                    /** RouterStatusNatStatusNatRuleStatus activeNatIps */
                    activeNatIps?: (string[]|null);

                    /** RouterStatusNatStatusNatRuleStatus drainNatIps */
                    drainNatIps?: (string[]|null);

                    /** RouterStatusNatStatusNatRuleStatus minExtraIpsNeeded */
                    minExtraIpsNeeded?: (number|null);

                    /** RouterStatusNatStatusNatRuleStatus numVmEndpointsWithNatMappings */
                    numVmEndpointsWithNatMappings?: (number|null);

                    /** RouterStatusNatStatusNatRuleStatus ruleNumber */
                    ruleNumber?: (number|null);
                }

                /** Represents a RouterStatusNatStatusNatRuleStatus. */
                class RouterStatusNatStatusNatRuleStatus implements IRouterStatusNatStatusNatRuleStatus {

                    /**
                     * Constructs a new RouterStatusNatStatusNatRuleStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterStatusNatStatusNatRuleStatus);

                    /** RouterStatusNatStatusNatRuleStatus activeNatIps. */
                    public activeNatIps: string[];

                    /** RouterStatusNatStatusNatRuleStatus drainNatIps. */
                    public drainNatIps: string[];

                    /** RouterStatusNatStatusNatRuleStatus minExtraIpsNeeded. */
                    public minExtraIpsNeeded?: (number|null);

                    /** RouterStatusNatStatusNatRuleStatus numVmEndpointsWithNatMappings. */
                    public numVmEndpointsWithNatMappings?: (number|null);

                    /** RouterStatusNatStatusNatRuleStatus ruleNumber. */
                    public ruleNumber?: (number|null);

                    /**
                     * Creates a new RouterStatusNatStatusNatRuleStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatusNatStatusNatRuleStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterStatusNatStatusNatRuleStatus): google.cloud.compute.v1beta.RouterStatusNatStatusNatRuleStatus;

                    /**
                     * Encodes the specified RouterStatusNatStatusNatRuleStatus message. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatusNatStatusNatRuleStatus.verify|verify} messages.
                     * @param message RouterStatusNatStatusNatRuleStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterStatusNatStatusNatRuleStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatusNatStatusNatRuleStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatusNatStatusNatRuleStatus.verify|verify} messages.
                     * @param message RouterStatusNatStatusNatRuleStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterStatusNatStatusNatRuleStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatusNatStatusNatRuleStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatusNatStatusNatRuleStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterStatusNatStatusNatRuleStatus;

                    /**
                     * Decodes a RouterStatusNatStatusNatRuleStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatusNatStatusNatRuleStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterStatusNatStatusNatRuleStatus;

                    /**
                     * Verifies a RouterStatusNatStatusNatRuleStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatusNatStatusNatRuleStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatusNatStatusNatRuleStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterStatusNatStatusNatRuleStatus;

                    /**
                     * Creates a plain object from a RouterStatusNatStatusNatRuleStatus message. Also converts values to other types if specified.
                     * @param message RouterStatusNatStatusNatRuleStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterStatusNatStatusNatRuleStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatusNatStatusNatRuleStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatusNatStatusNatRuleStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RouterStatusResponse. */
                interface IRouterStatusResponse {

                    /** RouterStatusResponse kind */
                    kind?: (string|null);

                    /** RouterStatusResponse result */
                    result?: (google.cloud.compute.v1beta.IRouterStatus|null);
                }

                /** Represents a RouterStatusResponse. */
                class RouterStatusResponse implements IRouterStatusResponse {

                    /**
                     * Constructs a new RouterStatusResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRouterStatusResponse);

                    /** RouterStatusResponse kind. */
                    public kind?: (string|null);

                    /** RouterStatusResponse result. */
                    public result?: (google.cloud.compute.v1beta.IRouterStatus|null);

                    /**
                     * Creates a new RouterStatusResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RouterStatusResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRouterStatusResponse): google.cloud.compute.v1beta.RouterStatusResponse;

                    /**
                     * Encodes the specified RouterStatusResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatusResponse.verify|verify} messages.
                     * @param message RouterStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRouterStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RouterStatusResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RouterStatusResponse.verify|verify} messages.
                     * @param message RouterStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRouterStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RouterStatusResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RouterStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RouterStatusResponse;

                    /**
                     * Decodes a RouterStatusResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RouterStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RouterStatusResponse;

                    /**
                     * Verifies a RouterStatusResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RouterStatusResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RouterStatusResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RouterStatusResponse;

                    /**
                     * Creates a plain object from a RouterStatusResponse message. Also converts values to other types if specified.
                     * @param message RouterStatusResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RouterStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RouterStatusResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RouterStatusResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersGetNamedSetResponse. */
                interface IRoutersGetNamedSetResponse {

                    /** RoutersGetNamedSetResponse etag */
                    etag?: (string|null);

                    /** RoutersGetNamedSetResponse resource */
                    resource?: (google.cloud.compute.v1beta.INamedSet|null);
                }

                /** Represents a RoutersGetNamedSetResponse. */
                class RoutersGetNamedSetResponse implements IRoutersGetNamedSetResponse {

                    /**
                     * Constructs a new RoutersGetNamedSetResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutersGetNamedSetResponse);

                    /** RoutersGetNamedSetResponse etag. */
                    public etag?: (string|null);

                    /** RoutersGetNamedSetResponse resource. */
                    public resource?: (google.cloud.compute.v1beta.INamedSet|null);

                    /**
                     * Creates a new RoutersGetNamedSetResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersGetNamedSetResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutersGetNamedSetResponse): google.cloud.compute.v1beta.RoutersGetNamedSetResponse;

                    /**
                     * Encodes the specified RoutersGetNamedSetResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RoutersGetNamedSetResponse.verify|verify} messages.
                     * @param message RoutersGetNamedSetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutersGetNamedSetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersGetNamedSetResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutersGetNamedSetResponse.verify|verify} messages.
                     * @param message RoutersGetNamedSetResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutersGetNamedSetResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersGetNamedSetResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersGetNamedSetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutersGetNamedSetResponse;

                    /**
                     * Decodes a RoutersGetNamedSetResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersGetNamedSetResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutersGetNamedSetResponse;

                    /**
                     * Verifies a RoutersGetNamedSetResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersGetNamedSetResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersGetNamedSetResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutersGetNamedSetResponse;

                    /**
                     * Creates a plain object from a RoutersGetNamedSetResponse message. Also converts values to other types if specified.
                     * @param message RoutersGetNamedSetResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutersGetNamedSetResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersGetNamedSetResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersGetNamedSetResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersGetRoutePolicyResponse. */
                interface IRoutersGetRoutePolicyResponse {

                    /** RoutersGetRoutePolicyResponse resource */
                    resource?: (google.cloud.compute.v1beta.IRoutePolicy|null);
                }

                /** Represents a RoutersGetRoutePolicyResponse. */
                class RoutersGetRoutePolicyResponse implements IRoutersGetRoutePolicyResponse {

                    /**
                     * Constructs a new RoutersGetRoutePolicyResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutersGetRoutePolicyResponse);

                    /** RoutersGetRoutePolicyResponse resource. */
                    public resource?: (google.cloud.compute.v1beta.IRoutePolicy|null);

                    /**
                     * Creates a new RoutersGetRoutePolicyResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersGetRoutePolicyResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutersGetRoutePolicyResponse): google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse;

                    /**
                     * Encodes the specified RoutersGetRoutePolicyResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse.verify|verify} messages.
                     * @param message RoutersGetRoutePolicyResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutersGetRoutePolicyResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersGetRoutePolicyResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse.verify|verify} messages.
                     * @param message RoutersGetRoutePolicyResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutersGetRoutePolicyResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersGetRoutePolicyResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersGetRoutePolicyResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse;

                    /**
                     * Decodes a RoutersGetRoutePolicyResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersGetRoutePolicyResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse;

                    /**
                     * Verifies a RoutersGetRoutePolicyResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersGetRoutePolicyResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersGetRoutePolicyResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse;

                    /**
                     * Creates a plain object from a RoutersGetRoutePolicyResponse message. Also converts values to other types if specified.
                     * @param message RoutersGetRoutePolicyResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersGetRoutePolicyResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersGetRoutePolicyResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersListBgpRoutes. */
                interface IRoutersListBgpRoutes {

                    /** RoutersListBgpRoutes etag */
                    etag?: (string|null);

                    /** RoutersListBgpRoutes id */
                    id?: (string|null);

                    /** RoutersListBgpRoutes kind */
                    kind?: (string|null);

                    /** RoutersListBgpRoutes nextPageToken */
                    nextPageToken?: (string|null);

                    /** RoutersListBgpRoutes result */
                    result?: (google.cloud.compute.v1beta.IBgpRoute[]|null);

                    /** RoutersListBgpRoutes selfLink */
                    selfLink?: (string|null);

                    /** RoutersListBgpRoutes unreachables */
                    unreachables?: (string[]|null);

                    /** RoutersListBgpRoutes warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RoutersListBgpRoutes. */
                class RoutersListBgpRoutes implements IRoutersListBgpRoutes {

                    /**
                     * Constructs a new RoutersListBgpRoutes.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutersListBgpRoutes);

                    /** RoutersListBgpRoutes etag. */
                    public etag?: (string|null);

                    /** RoutersListBgpRoutes id. */
                    public id?: (string|null);

                    /** RoutersListBgpRoutes kind. */
                    public kind?: (string|null);

                    /** RoutersListBgpRoutes nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RoutersListBgpRoutes result. */
                    public result: google.cloud.compute.v1beta.IBgpRoute[];

                    /** RoutersListBgpRoutes selfLink. */
                    public selfLink?: (string|null);

                    /** RoutersListBgpRoutes unreachables. */
                    public unreachables: string[];

                    /** RoutersListBgpRoutes warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RoutersListBgpRoutes instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersListBgpRoutes instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutersListBgpRoutes): google.cloud.compute.v1beta.RoutersListBgpRoutes;

                    /**
                     * Encodes the specified RoutersListBgpRoutes message. Does not implicitly {@link google.cloud.compute.v1beta.RoutersListBgpRoutes.verify|verify} messages.
                     * @param message RoutersListBgpRoutes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutersListBgpRoutes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersListBgpRoutes message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutersListBgpRoutes.verify|verify} messages.
                     * @param message RoutersListBgpRoutes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutersListBgpRoutes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersListBgpRoutes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersListBgpRoutes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutersListBgpRoutes;

                    /**
                     * Decodes a RoutersListBgpRoutes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersListBgpRoutes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutersListBgpRoutes;

                    /**
                     * Verifies a RoutersListBgpRoutes message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersListBgpRoutes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersListBgpRoutes
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutersListBgpRoutes;

                    /**
                     * Creates a plain object from a RoutersListBgpRoutes message. Also converts values to other types if specified.
                     * @param message RoutersListBgpRoutes
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutersListBgpRoutes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersListBgpRoutes to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersListBgpRoutes
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersListNamedSets. */
                interface IRoutersListNamedSets {

                    /** RoutersListNamedSets etag */
                    etag?: (string|null);

                    /** RoutersListNamedSets id */
                    id?: (string|null);

                    /** RoutersListNamedSets kind */
                    kind?: (string|null);

                    /** RoutersListNamedSets nextPageToken */
                    nextPageToken?: (string|null);

                    /** RoutersListNamedSets result */
                    result?: (google.cloud.compute.v1beta.INamedSet[]|null);

                    /** RoutersListNamedSets selfLink */
                    selfLink?: (string|null);

                    /** RoutersListNamedSets unreachables */
                    unreachables?: (string[]|null);

                    /** RoutersListNamedSets warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RoutersListNamedSets. */
                class RoutersListNamedSets implements IRoutersListNamedSets {

                    /**
                     * Constructs a new RoutersListNamedSets.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutersListNamedSets);

                    /** RoutersListNamedSets etag. */
                    public etag?: (string|null);

                    /** RoutersListNamedSets id. */
                    public id?: (string|null);

                    /** RoutersListNamedSets kind. */
                    public kind?: (string|null);

                    /** RoutersListNamedSets nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RoutersListNamedSets result. */
                    public result: google.cloud.compute.v1beta.INamedSet[];

                    /** RoutersListNamedSets selfLink. */
                    public selfLink?: (string|null);

                    /** RoutersListNamedSets unreachables. */
                    public unreachables: string[];

                    /** RoutersListNamedSets warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RoutersListNamedSets instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersListNamedSets instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutersListNamedSets): google.cloud.compute.v1beta.RoutersListNamedSets;

                    /**
                     * Encodes the specified RoutersListNamedSets message. Does not implicitly {@link google.cloud.compute.v1beta.RoutersListNamedSets.verify|verify} messages.
                     * @param message RoutersListNamedSets message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutersListNamedSets, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersListNamedSets message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutersListNamedSets.verify|verify} messages.
                     * @param message RoutersListNamedSets message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutersListNamedSets, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersListNamedSets message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersListNamedSets
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutersListNamedSets;

                    /**
                     * Decodes a RoutersListNamedSets message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersListNamedSets
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutersListNamedSets;

                    /**
                     * Verifies a RoutersListNamedSets message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersListNamedSets message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersListNamedSets
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutersListNamedSets;

                    /**
                     * Creates a plain object from a RoutersListNamedSets message. Also converts values to other types if specified.
                     * @param message RoutersListNamedSets
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutersListNamedSets, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersListNamedSets to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersListNamedSets
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersListRoutePolicies. */
                interface IRoutersListRoutePolicies {

                    /** RoutersListRoutePolicies etag */
                    etag?: (string|null);

                    /** RoutersListRoutePolicies id */
                    id?: (string|null);

                    /** RoutersListRoutePolicies kind */
                    kind?: (string|null);

                    /** RoutersListRoutePolicies nextPageToken */
                    nextPageToken?: (string|null);

                    /** RoutersListRoutePolicies result */
                    result?: (google.cloud.compute.v1beta.IRoutePolicy[]|null);

                    /** RoutersListRoutePolicies selfLink */
                    selfLink?: (string|null);

                    /** RoutersListRoutePolicies unreachables */
                    unreachables?: (string[]|null);

                    /** RoutersListRoutePolicies warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RoutersListRoutePolicies. */
                class RoutersListRoutePolicies implements IRoutersListRoutePolicies {

                    /**
                     * Constructs a new RoutersListRoutePolicies.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutersListRoutePolicies);

                    /** RoutersListRoutePolicies etag. */
                    public etag?: (string|null);

                    /** RoutersListRoutePolicies id. */
                    public id?: (string|null);

                    /** RoutersListRoutePolicies kind. */
                    public kind?: (string|null);

                    /** RoutersListRoutePolicies nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** RoutersListRoutePolicies result. */
                    public result: google.cloud.compute.v1beta.IRoutePolicy[];

                    /** RoutersListRoutePolicies selfLink. */
                    public selfLink?: (string|null);

                    /** RoutersListRoutePolicies unreachables. */
                    public unreachables: string[];

                    /** RoutersListRoutePolicies warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RoutersListRoutePolicies instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersListRoutePolicies instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutersListRoutePolicies): google.cloud.compute.v1beta.RoutersListRoutePolicies;

                    /**
                     * Encodes the specified RoutersListRoutePolicies message. Does not implicitly {@link google.cloud.compute.v1beta.RoutersListRoutePolicies.verify|verify} messages.
                     * @param message RoutersListRoutePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutersListRoutePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersListRoutePolicies message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutersListRoutePolicies.verify|verify} messages.
                     * @param message RoutersListRoutePolicies message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutersListRoutePolicies, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersListRoutePolicies message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersListRoutePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutersListRoutePolicies;

                    /**
                     * Decodes a RoutersListRoutePolicies message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersListRoutePolicies
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutersListRoutePolicies;

                    /**
                     * Verifies a RoutersListRoutePolicies message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersListRoutePolicies message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersListRoutePolicies
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutersListRoutePolicies;

                    /**
                     * Creates a plain object from a RoutersListRoutePolicies message. Also converts values to other types if specified.
                     * @param message RoutersListRoutePolicies
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutersListRoutePolicies, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersListRoutePolicies to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersListRoutePolicies
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersPreviewResponse. */
                interface IRoutersPreviewResponse {

                    /** RoutersPreviewResponse resource */
                    resource?: (google.cloud.compute.v1beta.IRouter|null);
                }

                /** Represents a RoutersPreviewResponse. */
                class RoutersPreviewResponse implements IRoutersPreviewResponse {

                    /**
                     * Constructs a new RoutersPreviewResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutersPreviewResponse);

                    /** RoutersPreviewResponse resource. */
                    public resource?: (google.cloud.compute.v1beta.IRouter|null);

                    /**
                     * Creates a new RoutersPreviewResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersPreviewResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutersPreviewResponse): google.cloud.compute.v1beta.RoutersPreviewResponse;

                    /**
                     * Encodes the specified RoutersPreviewResponse message. Does not implicitly {@link google.cloud.compute.v1beta.RoutersPreviewResponse.verify|verify} messages.
                     * @param message RoutersPreviewResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutersPreviewResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersPreviewResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutersPreviewResponse.verify|verify} messages.
                     * @param message RoutersPreviewResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutersPreviewResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersPreviewResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersPreviewResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutersPreviewResponse;

                    /**
                     * Decodes a RoutersPreviewResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersPreviewResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutersPreviewResponse;

                    /**
                     * Verifies a RoutersPreviewResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersPreviewResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersPreviewResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutersPreviewResponse;

                    /**
                     * Creates a plain object from a RoutersPreviewResponse message. Also converts values to other types if specified.
                     * @param message RoutersPreviewResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutersPreviewResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersPreviewResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersPreviewResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RoutersScopedList. */
                interface IRoutersScopedList {

                    /** RoutersScopedList routers */
                    routers?: (google.cloud.compute.v1beta.IRouter[]|null);

                    /** RoutersScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a RoutersScopedList. */
                class RoutersScopedList implements IRoutersScopedList {

                    /**
                     * Constructs a new RoutersScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IRoutersScopedList);

                    /** RoutersScopedList routers. */
                    public routers: google.cloud.compute.v1beta.IRouter[];

                    /** RoutersScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new RoutersScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoutersScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IRoutersScopedList): google.cloud.compute.v1beta.RoutersScopedList;

                    /**
                     * Encodes the specified RoutersScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.RoutersScopedList.verify|verify} messages.
                     * @param message RoutersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IRoutersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoutersScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.RoutersScopedList.verify|verify} messages.
                     * @param message RoutersScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IRoutersScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoutersScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoutersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.RoutersScopedList;

                    /**
                     * Decodes a RoutersScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoutersScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.RoutersScopedList;

                    /**
                     * Verifies a RoutersScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoutersScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoutersScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.RoutersScopedList;

                    /**
                     * Creates a plain object from a RoutersScopedList message. Also converts values to other types if specified.
                     * @param message RoutersScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.RoutersScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoutersScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoutersScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SSLHealthCheck. */
                interface ISSLHealthCheck {

                    /** SSLHealthCheck port */
                    port?: (number|null);

                    /** SSLHealthCheck portName */
                    portName?: (string|null);

                    /** SSLHealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** SSLHealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** SSLHealthCheck request */
                    request?: (string|null);

                    /** SSLHealthCheck response */
                    response?: (string|null);
                }

                /** Represents a SSLHealthCheck. */
                class SSLHealthCheck implements ISSLHealthCheck {

                    /**
                     * Constructs a new SSLHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISSLHealthCheck);

                    /** SSLHealthCheck port. */
                    public port?: (number|null);

                    /** SSLHealthCheck portName. */
                    public portName?: (string|null);

                    /** SSLHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** SSLHealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** SSLHealthCheck request. */
                    public request?: (string|null);

                    /** SSLHealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new SSLHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SSLHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISSLHealthCheck): google.cloud.compute.v1beta.SSLHealthCheck;

                    /**
                     * Encodes the specified SSLHealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.SSLHealthCheck.verify|verify} messages.
                     * @param message SSLHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISSLHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SSLHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SSLHealthCheck.verify|verify} messages.
                     * @param message SSLHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISSLHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SSLHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SSLHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SSLHealthCheck;

                    /**
                     * Decodes a SSLHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SSLHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SSLHealthCheck;

                    /**
                     * Verifies a SSLHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SSLHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SSLHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SSLHealthCheck;

                    /**
                     * Creates a plain object from a SSLHealthCheck message. Also converts values to other types if specified.
                     * @param message SSLHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SSLHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SSLHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SSLHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SSLHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a SavedAttachedDisk. */
                interface ISavedAttachedDisk {

                    /** SavedAttachedDisk autoDelete */
                    autoDelete?: (boolean|null);

                    /** SavedAttachedDisk boot */
                    boot?: (boolean|null);

                    /** SavedAttachedDisk deviceName */
                    deviceName?: (string|null);

                    /** SavedAttachedDisk diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** SavedAttachedDisk diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** SavedAttachedDisk diskType */
                    diskType?: (string|null);

                    /** SavedAttachedDisk guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1beta.IGuestOsFeature[]|null);

                    /** SavedAttachedDisk index */
                    index?: (number|null);

                    /** SavedAttachedDisk interface */
                    "interface"?: (string|null);

                    /** SavedAttachedDisk kind */
                    kind?: (string|null);

                    /** SavedAttachedDisk licenses */
                    licenses?: (string[]|null);

                    /** SavedAttachedDisk mode */
                    mode?: (string|null);

                    /** SavedAttachedDisk source */
                    source?: (string|null);

                    /** SavedAttachedDisk storageBytes */
                    storageBytes?: (number|Long|string|null);

                    /** SavedAttachedDisk storageBytesStatus */
                    storageBytesStatus?: (string|null);

                    /** SavedAttachedDisk type */
                    type?: (string|null);
                }

                /** Represents a SavedAttachedDisk. */
                class SavedAttachedDisk implements ISavedAttachedDisk {

                    /**
                     * Constructs a new SavedAttachedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISavedAttachedDisk);

                    /** SavedAttachedDisk autoDelete. */
                    public autoDelete?: (boolean|null);

                    /** SavedAttachedDisk boot. */
                    public boot?: (boolean|null);

                    /** SavedAttachedDisk deviceName. */
                    public deviceName?: (string|null);

                    /** SavedAttachedDisk diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** SavedAttachedDisk diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** SavedAttachedDisk diskType. */
                    public diskType?: (string|null);

                    /** SavedAttachedDisk guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1beta.IGuestOsFeature[];

                    /** SavedAttachedDisk index. */
                    public index?: (number|null);

                    /** SavedAttachedDisk interface. */
                    public interface?: (string|null);

                    /** SavedAttachedDisk kind. */
                    public kind?: (string|null);

                    /** SavedAttachedDisk licenses. */
                    public licenses: string[];

                    /** SavedAttachedDisk mode. */
                    public mode?: (string|null);

                    /** SavedAttachedDisk source. */
                    public source?: (string|null);

                    /** SavedAttachedDisk storageBytes. */
                    public storageBytes?: (number|Long|string|null);

                    /** SavedAttachedDisk storageBytesStatus. */
                    public storageBytesStatus?: (string|null);

                    /** SavedAttachedDisk type. */
                    public type?: (string|null);

                    /**
                     * Creates a new SavedAttachedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SavedAttachedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISavedAttachedDisk): google.cloud.compute.v1beta.SavedAttachedDisk;

                    /**
                     * Encodes the specified SavedAttachedDisk message. Does not implicitly {@link google.cloud.compute.v1beta.SavedAttachedDisk.verify|verify} messages.
                     * @param message SavedAttachedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISavedAttachedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SavedAttachedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SavedAttachedDisk.verify|verify} messages.
                     * @param message SavedAttachedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISavedAttachedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SavedAttachedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SavedAttachedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SavedAttachedDisk;

                    /**
                     * Decodes a SavedAttachedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SavedAttachedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SavedAttachedDisk;

                    /**
                     * Verifies a SavedAttachedDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SavedAttachedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SavedAttachedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SavedAttachedDisk;

                    /**
                     * Creates a plain object from a SavedAttachedDisk message. Also converts values to other types if specified.
                     * @param message SavedAttachedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SavedAttachedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SavedAttachedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SavedAttachedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SavedAttachedDisk {

                    /** Interface enum. */
                    enum Interface {
                        UNDEFINED_INTERFACE = 0,
                        NVME = 2408800,
                        SCSI = 2539686
                    }

                    /** Mode enum. */
                    enum Mode {
                        UNDEFINED_MODE = 0,
                        READ_ONLY = 91950261,
                        READ_WRITE = 173607894
                    }

                    /** StorageBytesStatus enum. */
                    enum StorageBytesStatus {
                        UNDEFINED_STORAGE_BYTES_STATUS = 0,
                        UPDATING = 494614342,
                        UP_TO_DATE = 101306702
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        PERSISTENT = 460683927,
                        SCRATCH = 496778970
                    }
                }

                /** Properties of a SavedDisk. */
                interface ISavedDisk {

                    /** SavedDisk architecture */
                    architecture?: (string|null);

                    /** SavedDisk kind */
                    kind?: (string|null);

                    /** SavedDisk sourceDisk */
                    sourceDisk?: (string|null);

                    /** SavedDisk storageBytes */
                    storageBytes?: (number|Long|string|null);

                    /** SavedDisk storageBytesStatus */
                    storageBytesStatus?: (string|null);
                }

                /** Represents a SavedDisk. */
                class SavedDisk implements ISavedDisk {

                    /**
                     * Constructs a new SavedDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISavedDisk);

                    /** SavedDisk architecture. */
                    public architecture?: (string|null);

                    /** SavedDisk kind. */
                    public kind?: (string|null);

                    /** SavedDisk sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** SavedDisk storageBytes. */
                    public storageBytes?: (number|Long|string|null);

                    /** SavedDisk storageBytesStatus. */
                    public storageBytesStatus?: (string|null);

                    /**
                     * Creates a new SavedDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SavedDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISavedDisk): google.cloud.compute.v1beta.SavedDisk;

                    /**
                     * Encodes the specified SavedDisk message. Does not implicitly {@link google.cloud.compute.v1beta.SavedDisk.verify|verify} messages.
                     * @param message SavedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISavedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SavedDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SavedDisk.verify|verify} messages.
                     * @param message SavedDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISavedDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SavedDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SavedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SavedDisk;

                    /**
                     * Decodes a SavedDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SavedDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SavedDisk;

                    /**
                     * Verifies a SavedDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SavedDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SavedDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SavedDisk;

                    /**
                     * Creates a plain object from a SavedDisk message. Also converts values to other types if specified.
                     * @param message SavedDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SavedDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SavedDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SavedDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SavedDisk {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** StorageBytesStatus enum. */
                    enum StorageBytesStatus {
                        UNDEFINED_STORAGE_BYTES_STATUS = 0,
                        UPDATING = 494614342,
                        UP_TO_DATE = 101306702
                    }
                }

                /** Properties of a ScalingScheduleStatus. */
                interface IScalingScheduleStatus {

                    /** ScalingScheduleStatus lastStartTime */
                    lastStartTime?: (string|null);

                    /** ScalingScheduleStatus nextStartTime */
                    nextStartTime?: (string|null);

                    /** ScalingScheduleStatus state */
                    state?: (string|null);
                }

                /** Represents a ScalingScheduleStatus. */
                class ScalingScheduleStatus implements IScalingScheduleStatus {

                    /**
                     * Constructs a new ScalingScheduleStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IScalingScheduleStatus);

                    /** ScalingScheduleStatus lastStartTime. */
                    public lastStartTime?: (string|null);

                    /** ScalingScheduleStatus nextStartTime. */
                    public nextStartTime?: (string|null);

                    /** ScalingScheduleStatus state. */
                    public state?: (string|null);

                    /**
                     * Creates a new ScalingScheduleStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ScalingScheduleStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IScalingScheduleStatus): google.cloud.compute.v1beta.ScalingScheduleStatus;

                    /**
                     * Encodes the specified ScalingScheduleStatus message. Does not implicitly {@link google.cloud.compute.v1beta.ScalingScheduleStatus.verify|verify} messages.
                     * @param message ScalingScheduleStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IScalingScheduleStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ScalingScheduleStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ScalingScheduleStatus.verify|verify} messages.
                     * @param message ScalingScheduleStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IScalingScheduleStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ScalingScheduleStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ScalingScheduleStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ScalingScheduleStatus;

                    /**
                     * Decodes a ScalingScheduleStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ScalingScheduleStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ScalingScheduleStatus;

                    /**
                     * Verifies a ScalingScheduleStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ScalingScheduleStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ScalingScheduleStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ScalingScheduleStatus;

                    /**
                     * Creates a plain object from a ScalingScheduleStatus message. Also converts values to other types if specified.
                     * @param message ScalingScheduleStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ScalingScheduleStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ScalingScheduleStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ScalingScheduleStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ScalingScheduleStatus {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DISABLED = 516696700,
                        OBSOLETE = 66532761,
                        READY = 77848963
                    }
                }

                /** Properties of a Scheduling. */
                interface IScheduling {

                    /** Scheduling automaticRestart */
                    automaticRestart?: (boolean|null);

                    /** Scheduling availabilityDomain */
                    availabilityDomain?: (number|null);

                    /** Scheduling gracefulShutdown */
                    gracefulShutdown?: (google.cloud.compute.v1beta.ISchedulingGracefulShutdown|null);

                    /** Scheduling hostErrorTimeoutSeconds */
                    hostErrorTimeoutSeconds?: (number|null);

                    /** Scheduling instanceTerminationAction */
                    instanceTerminationAction?: (string|null);

                    /** Scheduling localSsdRecoveryTimeout */
                    localSsdRecoveryTimeout?: (google.cloud.compute.v1beta.IDuration|null);

                    /** Scheduling locationHint */
                    locationHint?: (string|null);

                    /** Scheduling maintenanceFreezeDurationHours */
                    maintenanceFreezeDurationHours?: (number|null);

                    /** Scheduling maintenanceInterval */
                    maintenanceInterval?: (string|null);

                    /** Scheduling maxRunDuration */
                    maxRunDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** Scheduling minNodeCpus */
                    minNodeCpus?: (number|null);

                    /** Scheduling nodeAffinities */
                    nodeAffinities?: (google.cloud.compute.v1beta.ISchedulingNodeAffinity[]|null);

                    /** Scheduling onHostMaintenance */
                    onHostMaintenance?: (string|null);

                    /** Scheduling onInstanceStopAction */
                    onInstanceStopAction?: (google.cloud.compute.v1beta.ISchedulingOnInstanceStopAction|null);

                    /** Scheduling preemptible */
                    preemptible?: (boolean|null);

                    /** Scheduling preemptionNoticeDuration */
                    preemptionNoticeDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** Scheduling provisioningModel */
                    provisioningModel?: (string|null);

                    /** Scheduling skipGuestOsShutdown */
                    skipGuestOsShutdown?: (boolean|null);

                    /** Scheduling terminationTime */
                    terminationTime?: (string|null);
                }

                /** Represents a Scheduling. */
                class Scheduling implements IScheduling {

                    /**
                     * Constructs a new Scheduling.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IScheduling);

                    /** Scheduling automaticRestart. */
                    public automaticRestart?: (boolean|null);

                    /** Scheduling availabilityDomain. */
                    public availabilityDomain?: (number|null);

                    /** Scheduling gracefulShutdown. */
                    public gracefulShutdown?: (google.cloud.compute.v1beta.ISchedulingGracefulShutdown|null);

                    /** Scheduling hostErrorTimeoutSeconds. */
                    public hostErrorTimeoutSeconds?: (number|null);

                    /** Scheduling instanceTerminationAction. */
                    public instanceTerminationAction?: (string|null);

                    /** Scheduling localSsdRecoveryTimeout. */
                    public localSsdRecoveryTimeout?: (google.cloud.compute.v1beta.IDuration|null);

                    /** Scheduling locationHint. */
                    public locationHint?: (string|null);

                    /** Scheduling maintenanceFreezeDurationHours. */
                    public maintenanceFreezeDurationHours?: (number|null);

                    /** Scheduling maintenanceInterval. */
                    public maintenanceInterval?: (string|null);

                    /** Scheduling maxRunDuration. */
                    public maxRunDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** Scheduling minNodeCpus. */
                    public minNodeCpus?: (number|null);

                    /** Scheduling nodeAffinities. */
                    public nodeAffinities: google.cloud.compute.v1beta.ISchedulingNodeAffinity[];

                    /** Scheduling onHostMaintenance. */
                    public onHostMaintenance?: (string|null);

                    /** Scheduling onInstanceStopAction. */
                    public onInstanceStopAction?: (google.cloud.compute.v1beta.ISchedulingOnInstanceStopAction|null);

                    /** Scheduling preemptible. */
                    public preemptible?: (boolean|null);

                    /** Scheduling preemptionNoticeDuration. */
                    public preemptionNoticeDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /** Scheduling provisioningModel. */
                    public provisioningModel?: (string|null);

                    /** Scheduling skipGuestOsShutdown. */
                    public skipGuestOsShutdown?: (boolean|null);

                    /** Scheduling terminationTime. */
                    public terminationTime?: (string|null);

                    /**
                     * Creates a new Scheduling instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Scheduling instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IScheduling): google.cloud.compute.v1beta.Scheduling;

                    /**
                     * Encodes the specified Scheduling message. Does not implicitly {@link google.cloud.compute.v1beta.Scheduling.verify|verify} messages.
                     * @param message Scheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Scheduling message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Scheduling.verify|verify} messages.
                     * @param message Scheduling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IScheduling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Scheduling message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Scheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Scheduling;

                    /**
                     * Decodes a Scheduling message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Scheduling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Scheduling;

                    /**
                     * Verifies a Scheduling message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Scheduling message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Scheduling
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Scheduling;

                    /**
                     * Creates a plain object from a Scheduling message. Also converts values to other types if specified.
                     * @param message Scheduling
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Scheduling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Scheduling to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Scheduling
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Scheduling {

                    /** InstanceTerminationAction enum. */
                    enum InstanceTerminationAction {
                        UNDEFINED_INSTANCE_TERMINATION_ACTION = 0,
                        DELETE = 402225579,
                        INSTANCE_TERMINATION_ACTION_UNSPECIFIED = 92954803,
                        STOP = 2555906
                    }

                    /** MaintenanceInterval enum. */
                    enum MaintenanceInterval {
                        UNDEFINED_MAINTENANCE_INTERVAL = 0,
                        AS_NEEDED = 500724834,
                        PERIODIC = 142804635,
                        RECURRENT = 194244550
                    }

                    /** OnHostMaintenance enum. */
                    enum OnHostMaintenance {
                        UNDEFINED_ON_HOST_MAINTENANCE = 0,
                        MIGRATE = 165699979,
                        TERMINATE = 527617601
                    }

                    /** ProvisioningModel enum. */
                    enum ProvisioningModel {
                        UNDEFINED_PROVISIONING_MODEL = 0,
                        FLEX_START = 101746812,
                        RESERVATION_BOUND = 293538571,
                        SPOT = 2552066,
                        STANDARD = 484642493
                    }
                }

                /** Properties of a SchedulingGracefulShutdown. */
                interface ISchedulingGracefulShutdown {

                    /** SchedulingGracefulShutdown enabled */
                    enabled?: (boolean|null);

                    /** SchedulingGracefulShutdown maxDuration */
                    maxDuration?: (google.cloud.compute.v1beta.IDuration|null);
                }

                /** Represents a SchedulingGracefulShutdown. */
                class SchedulingGracefulShutdown implements ISchedulingGracefulShutdown {

                    /**
                     * Constructs a new SchedulingGracefulShutdown.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISchedulingGracefulShutdown);

                    /** SchedulingGracefulShutdown enabled. */
                    public enabled?: (boolean|null);

                    /** SchedulingGracefulShutdown maxDuration. */
                    public maxDuration?: (google.cloud.compute.v1beta.IDuration|null);

                    /**
                     * Creates a new SchedulingGracefulShutdown instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SchedulingGracefulShutdown instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISchedulingGracefulShutdown): google.cloud.compute.v1beta.SchedulingGracefulShutdown;

                    /**
                     * Encodes the specified SchedulingGracefulShutdown message. Does not implicitly {@link google.cloud.compute.v1beta.SchedulingGracefulShutdown.verify|verify} messages.
                     * @param message SchedulingGracefulShutdown message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISchedulingGracefulShutdown, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SchedulingGracefulShutdown message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SchedulingGracefulShutdown.verify|verify} messages.
                     * @param message SchedulingGracefulShutdown message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISchedulingGracefulShutdown, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SchedulingGracefulShutdown message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SchedulingGracefulShutdown
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SchedulingGracefulShutdown;

                    /**
                     * Decodes a SchedulingGracefulShutdown message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SchedulingGracefulShutdown
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SchedulingGracefulShutdown;

                    /**
                     * Verifies a SchedulingGracefulShutdown message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SchedulingGracefulShutdown message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SchedulingGracefulShutdown
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SchedulingGracefulShutdown;

                    /**
                     * Creates a plain object from a SchedulingGracefulShutdown message. Also converts values to other types if specified.
                     * @param message SchedulingGracefulShutdown
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SchedulingGracefulShutdown, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SchedulingGracefulShutdown to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SchedulingGracefulShutdown
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SchedulingNodeAffinity. */
                interface ISchedulingNodeAffinity {

                    /** SchedulingNodeAffinity key */
                    key?: (string|null);

                    /** SchedulingNodeAffinity operator */
                    operator?: (string|null);

                    /** SchedulingNodeAffinity values */
                    values?: (string[]|null);
                }

                /** Represents a SchedulingNodeAffinity. */
                class SchedulingNodeAffinity implements ISchedulingNodeAffinity {

                    /**
                     * Constructs a new SchedulingNodeAffinity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISchedulingNodeAffinity);

                    /** SchedulingNodeAffinity key. */
                    public key?: (string|null);

                    /** SchedulingNodeAffinity operator. */
                    public operator?: (string|null);

                    /** SchedulingNodeAffinity values. */
                    public values: string[];

                    /**
                     * Creates a new SchedulingNodeAffinity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SchedulingNodeAffinity instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISchedulingNodeAffinity): google.cloud.compute.v1beta.SchedulingNodeAffinity;

                    /**
                     * Encodes the specified SchedulingNodeAffinity message. Does not implicitly {@link google.cloud.compute.v1beta.SchedulingNodeAffinity.verify|verify} messages.
                     * @param message SchedulingNodeAffinity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISchedulingNodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SchedulingNodeAffinity message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SchedulingNodeAffinity.verify|verify} messages.
                     * @param message SchedulingNodeAffinity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISchedulingNodeAffinity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SchedulingNodeAffinity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SchedulingNodeAffinity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SchedulingNodeAffinity;

                    /**
                     * Decodes a SchedulingNodeAffinity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SchedulingNodeAffinity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SchedulingNodeAffinity;

                    /**
                     * Verifies a SchedulingNodeAffinity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SchedulingNodeAffinity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SchedulingNodeAffinity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SchedulingNodeAffinity;

                    /**
                     * Creates a plain object from a SchedulingNodeAffinity message. Also converts values to other types if specified.
                     * @param message SchedulingNodeAffinity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SchedulingNodeAffinity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SchedulingNodeAffinity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SchedulingNodeAffinity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SchedulingNodeAffinity {

                    /** Operator enum. */
                    enum Operator {
                        UNDEFINED_OPERATOR = 0,
                        IN = 2341,
                        NOT_IN = 161144369,
                        OPERATOR_UNSPECIFIED = 128892924
                    }
                }

                /** Properties of a SchedulingOnInstanceStopAction. */
                interface ISchedulingOnInstanceStopAction {

                    /** SchedulingOnInstanceStopAction discardLocalSsd */
                    discardLocalSsd?: (boolean|null);
                }

                /** Represents a SchedulingOnInstanceStopAction. */
                class SchedulingOnInstanceStopAction implements ISchedulingOnInstanceStopAction {

                    /**
                     * Constructs a new SchedulingOnInstanceStopAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISchedulingOnInstanceStopAction);

                    /** SchedulingOnInstanceStopAction discardLocalSsd. */
                    public discardLocalSsd?: (boolean|null);

                    /**
                     * Creates a new SchedulingOnInstanceStopAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SchedulingOnInstanceStopAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISchedulingOnInstanceStopAction): google.cloud.compute.v1beta.SchedulingOnInstanceStopAction;

                    /**
                     * Encodes the specified SchedulingOnInstanceStopAction message. Does not implicitly {@link google.cloud.compute.v1beta.SchedulingOnInstanceStopAction.verify|verify} messages.
                     * @param message SchedulingOnInstanceStopAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISchedulingOnInstanceStopAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SchedulingOnInstanceStopAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SchedulingOnInstanceStopAction.verify|verify} messages.
                     * @param message SchedulingOnInstanceStopAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISchedulingOnInstanceStopAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SchedulingOnInstanceStopAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SchedulingOnInstanceStopAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SchedulingOnInstanceStopAction;

                    /**
                     * Decodes a SchedulingOnInstanceStopAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SchedulingOnInstanceStopAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SchedulingOnInstanceStopAction;

                    /**
                     * Verifies a SchedulingOnInstanceStopAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SchedulingOnInstanceStopAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SchedulingOnInstanceStopAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SchedulingOnInstanceStopAction;

                    /**
                     * Creates a plain object from a SchedulingOnInstanceStopAction message. Also converts values to other types if specified.
                     * @param message SchedulingOnInstanceStopAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SchedulingOnInstanceStopAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SchedulingOnInstanceStopAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SchedulingOnInstanceStopAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Screenshot. */
                interface IScreenshot {

                    /** Screenshot contents */
                    contents?: (string|null);

                    /** Screenshot kind */
                    kind?: (string|null);
                }

                /** Represents a Screenshot. */
                class Screenshot implements IScreenshot {

                    /**
                     * Constructs a new Screenshot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IScreenshot);

                    /** Screenshot contents. */
                    public contents?: (string|null);

                    /** Screenshot kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new Screenshot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Screenshot instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IScreenshot): google.cloud.compute.v1beta.Screenshot;

                    /**
                     * Encodes the specified Screenshot message. Does not implicitly {@link google.cloud.compute.v1beta.Screenshot.verify|verify} messages.
                     * @param message Screenshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IScreenshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Screenshot message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Screenshot.verify|verify} messages.
                     * @param message Screenshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IScreenshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Screenshot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Screenshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Screenshot;

                    /**
                     * Decodes a Screenshot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Screenshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Screenshot;

                    /**
                     * Verifies a Screenshot message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Screenshot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Screenshot
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Screenshot;

                    /**
                     * Creates a plain object from a Screenshot message. Also converts values to other types if specified.
                     * @param message Screenshot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Screenshot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Screenshot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Screenshot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPoliciesAggregatedList. */
                interface ISecurityPoliciesAggregatedList {

                    /** SecurityPoliciesAggregatedList etag */
                    etag?: (string|null);

                    /** SecurityPoliciesAggregatedList id */
                    id?: (string|null);

                    /** SecurityPoliciesAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ISecurityPoliciesScopedList }|null);

                    /** SecurityPoliciesAggregatedList kind */
                    kind?: (string|null);

                    /** SecurityPoliciesAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SecurityPoliciesAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SecurityPoliciesAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SecurityPoliciesAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SecurityPoliciesAggregatedList. */
                class SecurityPoliciesAggregatedList implements ISecurityPoliciesAggregatedList {

                    /**
                     * Constructs a new SecurityPoliciesAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPoliciesAggregatedList);

                    /** SecurityPoliciesAggregatedList etag. */
                    public etag?: (string|null);

                    /** SecurityPoliciesAggregatedList id. */
                    public id?: (string|null);

                    /** SecurityPoliciesAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ISecurityPoliciesScopedList };

                    /** SecurityPoliciesAggregatedList kind. */
                    public kind?: (string|null);

                    /** SecurityPoliciesAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SecurityPoliciesAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SecurityPoliciesAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SecurityPoliciesAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SecurityPoliciesAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPoliciesAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPoliciesAggregatedList): google.cloud.compute.v1beta.SecurityPoliciesAggregatedList;

                    /**
                     * Encodes the specified SecurityPoliciesAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPoliciesAggregatedList.verify|verify} messages.
                     * @param message SecurityPoliciesAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPoliciesAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPoliciesAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPoliciesAggregatedList.verify|verify} messages.
                     * @param message SecurityPoliciesAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPoliciesAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPoliciesAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPoliciesAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPoliciesAggregatedList;

                    /**
                     * Decodes a SecurityPoliciesAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPoliciesAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPoliciesAggregatedList;

                    /**
                     * Verifies a SecurityPoliciesAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPoliciesAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPoliciesAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPoliciesAggregatedList;

                    /**
                     * Creates a plain object from a SecurityPoliciesAggregatedList message. Also converts values to other types if specified.
                     * @param message SecurityPoliciesAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPoliciesAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPoliciesAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPoliciesAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPoliciesListPreconfiguredExpressionSetsResponse. */
                interface ISecurityPoliciesListPreconfiguredExpressionSetsResponse {

                    /** SecurityPoliciesListPreconfiguredExpressionSetsResponse preconfiguredExpressionSets */
                    preconfiguredExpressionSets?: (google.cloud.compute.v1beta.ISecurityPoliciesWafConfig|null);
                }

                /** Represents a SecurityPoliciesListPreconfiguredExpressionSetsResponse. */
                class SecurityPoliciesListPreconfiguredExpressionSetsResponse implements ISecurityPoliciesListPreconfiguredExpressionSetsResponse {

                    /**
                     * Constructs a new SecurityPoliciesListPreconfiguredExpressionSetsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPoliciesListPreconfiguredExpressionSetsResponse);

                    /** SecurityPoliciesListPreconfiguredExpressionSetsResponse preconfiguredExpressionSets. */
                    public preconfiguredExpressionSets?: (google.cloud.compute.v1beta.ISecurityPoliciesWafConfig|null);

                    /**
                     * Creates a new SecurityPoliciesListPreconfiguredExpressionSetsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPoliciesListPreconfiguredExpressionSetsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPoliciesListPreconfiguredExpressionSetsResponse): google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse;

                    /**
                     * Encodes the specified SecurityPoliciesListPreconfiguredExpressionSetsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse.verify|verify} messages.
                     * @param message SecurityPoliciesListPreconfiguredExpressionSetsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPoliciesListPreconfiguredExpressionSetsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPoliciesListPreconfiguredExpressionSetsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse.verify|verify} messages.
                     * @param message SecurityPoliciesListPreconfiguredExpressionSetsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPoliciesListPreconfiguredExpressionSetsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPoliciesListPreconfiguredExpressionSetsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse;

                    /**
                     * Decodes a SecurityPoliciesListPreconfiguredExpressionSetsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse;

                    /**
                     * Verifies a SecurityPoliciesListPreconfiguredExpressionSetsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPoliciesListPreconfiguredExpressionSetsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse;

                    /**
                     * Creates a plain object from a SecurityPoliciesListPreconfiguredExpressionSetsResponse message. Also converts values to other types if specified.
                     * @param message SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPoliciesListPreconfiguredExpressionSetsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPoliciesScopedList. */
                interface ISecurityPoliciesScopedList {

                    /** SecurityPoliciesScopedList securityPolicies */
                    securityPolicies?: (google.cloud.compute.v1beta.ISecurityPolicy[]|null);

                    /** SecurityPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SecurityPoliciesScopedList. */
                class SecurityPoliciesScopedList implements ISecurityPoliciesScopedList {

                    /**
                     * Constructs a new SecurityPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPoliciesScopedList);

                    /** SecurityPoliciesScopedList securityPolicies. */
                    public securityPolicies: google.cloud.compute.v1beta.ISecurityPolicy[];

                    /** SecurityPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SecurityPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPoliciesScopedList): google.cloud.compute.v1beta.SecurityPoliciesScopedList;

                    /**
                     * Encodes the specified SecurityPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPoliciesScopedList.verify|verify} messages.
                     * @param message SecurityPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPoliciesScopedList.verify|verify} messages.
                     * @param message SecurityPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPoliciesScopedList;

                    /**
                     * Decodes a SecurityPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPoliciesScopedList;

                    /**
                     * Verifies a SecurityPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPoliciesScopedList;

                    /**
                     * Creates a plain object from a SecurityPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message SecurityPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPoliciesWafConfig. */
                interface ISecurityPoliciesWafConfig {

                    /** SecurityPoliciesWafConfig wafRules */
                    wafRules?: (google.cloud.compute.v1beta.IPreconfiguredWafSet|null);
                }

                /** Represents a SecurityPoliciesWafConfig. */
                class SecurityPoliciesWafConfig implements ISecurityPoliciesWafConfig {

                    /**
                     * Constructs a new SecurityPoliciesWafConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPoliciesWafConfig);

                    /** SecurityPoliciesWafConfig wafRules. */
                    public wafRules?: (google.cloud.compute.v1beta.IPreconfiguredWafSet|null);

                    /**
                     * Creates a new SecurityPoliciesWafConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPoliciesWafConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPoliciesWafConfig): google.cloud.compute.v1beta.SecurityPoliciesWafConfig;

                    /**
                     * Encodes the specified SecurityPoliciesWafConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPoliciesWafConfig.verify|verify} messages.
                     * @param message SecurityPoliciesWafConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPoliciesWafConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPoliciesWafConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPoliciesWafConfig.verify|verify} messages.
                     * @param message SecurityPoliciesWafConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPoliciesWafConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPoliciesWafConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPoliciesWafConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPoliciesWafConfig;

                    /**
                     * Decodes a SecurityPoliciesWafConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPoliciesWafConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPoliciesWafConfig;

                    /**
                     * Verifies a SecurityPoliciesWafConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPoliciesWafConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPoliciesWafConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPoliciesWafConfig;

                    /**
                     * Creates a plain object from a SecurityPoliciesWafConfig message. Also converts values to other types if specified.
                     * @param message SecurityPoliciesWafConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPoliciesWafConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPoliciesWafConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPoliciesWafConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicy. */
                interface ISecurityPolicy {

                    /** SecurityPolicy adaptiveProtectionConfig */
                    adaptiveProtectionConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfig|null);

                    /** SecurityPolicy advancedOptionsConfig */
                    advancedOptionsConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfig|null);

                    /** SecurityPolicy associations */
                    associations?: (google.cloud.compute.v1beta.ISecurityPolicyAssociation[]|null);

                    /** SecurityPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** SecurityPolicy ddosProtectionConfig */
                    ddosProtectionConfig?: (google.cloud.compute.v1beta.ISecurityPolicyDdosProtectionConfig|null);

                    /** SecurityPolicy description */
                    description?: (string|null);

                    /** SecurityPolicy displayName */
                    displayName?: (string|null);

                    /** SecurityPolicy fingerprint */
                    fingerprint?: (string|null);

                    /** SecurityPolicy id */
                    id?: (number|Long|string|null);

                    /** SecurityPolicy kind */
                    kind?: (string|null);

                    /** SecurityPolicy labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** SecurityPolicy labels */
                    labels?: ({ [k: string]: string }|null);

                    /** SecurityPolicy name */
                    name?: (string|null);

                    /** SecurityPolicy parent */
                    parent?: (string|null);

                    /** SecurityPolicy recaptchaOptionsConfig */
                    recaptchaOptionsConfig?: (google.cloud.compute.v1beta.ISecurityPolicyRecaptchaOptionsConfig|null);

                    /** SecurityPolicy region */
                    region?: (string|null);

                    /** SecurityPolicy ruleTupleCount */
                    ruleTupleCount?: (number|null);

                    /** SecurityPolicy rules */
                    rules?: (google.cloud.compute.v1beta.ISecurityPolicyRule[]|null);

                    /** SecurityPolicy selfLink */
                    selfLink?: (string|null);

                    /** SecurityPolicy selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** SecurityPolicy shortName */
                    shortName?: (string|null);

                    /** SecurityPolicy type */
                    type?: (string|null);

                    /** SecurityPolicy userDefinedFields */
                    userDefinedFields?: (google.cloud.compute.v1beta.ISecurityPolicyUserDefinedField[]|null);
                }

                /** Represents a SecurityPolicy. */
                class SecurityPolicy implements ISecurityPolicy {

                    /**
                     * Constructs a new SecurityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicy);

                    /** SecurityPolicy adaptiveProtectionConfig. */
                    public adaptiveProtectionConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfig|null);

                    /** SecurityPolicy advancedOptionsConfig. */
                    public advancedOptionsConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfig|null);

                    /** SecurityPolicy associations. */
                    public associations: google.cloud.compute.v1beta.ISecurityPolicyAssociation[];

                    /** SecurityPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** SecurityPolicy ddosProtectionConfig. */
                    public ddosProtectionConfig?: (google.cloud.compute.v1beta.ISecurityPolicyDdosProtectionConfig|null);

                    /** SecurityPolicy description. */
                    public description?: (string|null);

                    /** SecurityPolicy displayName. */
                    public displayName?: (string|null);

                    /** SecurityPolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** SecurityPolicy id. */
                    public id?: (number|Long|string|null);

                    /** SecurityPolicy kind. */
                    public kind?: (string|null);

                    /** SecurityPolicy labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** SecurityPolicy labels. */
                    public labels: { [k: string]: string };

                    /** SecurityPolicy name. */
                    public name?: (string|null);

                    /** SecurityPolicy parent. */
                    public parent?: (string|null);

                    /** SecurityPolicy recaptchaOptionsConfig. */
                    public recaptchaOptionsConfig?: (google.cloud.compute.v1beta.ISecurityPolicyRecaptchaOptionsConfig|null);

                    /** SecurityPolicy region. */
                    public region?: (string|null);

                    /** SecurityPolicy ruleTupleCount. */
                    public ruleTupleCount?: (number|null);

                    /** SecurityPolicy rules. */
                    public rules: google.cloud.compute.v1beta.ISecurityPolicyRule[];

                    /** SecurityPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** SecurityPolicy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** SecurityPolicy shortName. */
                    public shortName?: (string|null);

                    /** SecurityPolicy type. */
                    public type?: (string|null);

                    /** SecurityPolicy userDefinedFields. */
                    public userDefinedFields: google.cloud.compute.v1beta.ISecurityPolicyUserDefinedField[];

                    /**
                     * Creates a new SecurityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicy): google.cloud.compute.v1beta.SecurityPolicy;

                    /**
                     * Encodes the specified SecurityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicy.verify|verify} messages.
                     * @param message SecurityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicy.verify|verify} messages.
                     * @param message SecurityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicy;

                    /**
                     * Decodes a SecurityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicy;

                    /**
                     * Verifies a SecurityPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicy;

                    /**
                     * Creates a plain object from a SecurityPolicy message. Also converts values to other types if specified.
                     * @param message SecurityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicy {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        CLOUD_ARMOR = 260640373,
                        CLOUD_ARMOR_EDGE = 250728775,
                        CLOUD_ARMOR_INTERNAL_SERVICE = 442437533,
                        CLOUD_ARMOR_NETWORK = 488527428,
                        FIREWALL = 219901184
                    }
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfig {

                    /** SecurityPolicyAdaptiveProtectionConfig autoDeployConfig */
                    autoDeployConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigAutoDeployConfig|null);

                    /** SecurityPolicyAdaptiveProtectionConfig layer7DdosDefenseConfig */
                    layer7DdosDefenseConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfig. */
                class SecurityPolicyAdaptiveProtectionConfig implements ISecurityPolicyAdaptiveProtectionConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfig);

                    /** SecurityPolicyAdaptiveProtectionConfig autoDeployConfig. */
                    public autoDeployConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigAutoDeployConfig|null);

                    /** SecurityPolicyAdaptiveProtectionConfig layer7DdosDefenseConfig. */
                    public layer7DdosDefenseConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig|null);

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfig): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfigAutoDeployConfig {

                    /** SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig confidenceThreshold */
                    confidenceThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig expirationSec */
                    expirationSec?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig impactedBaselineThreshold */
                    impactedBaselineThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig loadThreshold */
                    loadThreshold?: (number|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig. */
                class SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig implements ISecurityPolicyAdaptiveProtectionConfigAutoDeployConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigAutoDeployConfig);

                    /** SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig confidenceThreshold. */
                    public confidenceThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig expirationSec. */
                    public expirationSec?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig impactedBaselineThreshold. */
                    public impactedBaselineThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig loadThreshold. */
                    public loadThreshold?: (number|null);

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigAutoDeployConfig): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigAutoDeployConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigAutoDeployConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig {

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig enable */
                    enable?: (boolean|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig ruleVisibility */
                    ruleVisibility?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig thresholdConfigs */
                    thresholdConfigs?: (google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig[]|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig. */
                class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig implements ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig enable. */
                    public enable?: (boolean|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig ruleVisibility. */
                    public ruleVisibility?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig thresholdConfigs. */
                    public thresholdConfigs: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig[];

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig {

                    /** RuleVisibility enum. */
                    enum RuleVisibility {
                        UNDEFINED_RULE_VISIBILITY = 0,
                        PREMIUM = 399530551,
                        STANDARD = 484642493
                    }
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig {

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployConfidenceThreshold */
                    autoDeployConfidenceThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployExpirationSec */
                    autoDeployExpirationSec?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployImpactedBaselineThreshold */
                    autoDeployImpactedBaselineThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployLoadThreshold */
                    autoDeployLoadThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionAbsoluteQps */
                    detectionAbsoluteQps?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionLoadThreshold */
                    detectionLoadThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionRelativeToBaselineQps */
                    detectionRelativeToBaselineQps?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig name */
                    name?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig trafficGranularityConfigs */
                    trafficGranularityConfigs?: (google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig[]|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig. */
                class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig implements ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployConfidenceThreshold. */
                    public autoDeployConfidenceThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployExpirationSec. */
                    public autoDeployExpirationSec?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployImpactedBaselineThreshold. */
                    public autoDeployImpactedBaselineThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig autoDeployLoadThreshold. */
                    public autoDeployLoadThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionAbsoluteQps. */
                    public detectionAbsoluteQps?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionLoadThreshold. */
                    public detectionLoadThreshold?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig detectionRelativeToBaselineQps. */
                    public detectionRelativeToBaselineQps?: (number|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig name. */
                    public name?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig trafficGranularityConfigs. */
                    public trafficGranularityConfigs: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig[];

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig. */
                interface ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig {

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig enableEachUniqueValue */
                    enableEachUniqueValue?: (boolean|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig type */
                    type?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig value */
                    value?: (string|null);
                }

                /** Represents a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig. */
                class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig implements ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig {

                    /**
                     * Constructs a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig enableEachUniqueValue. */
                    public enableEachUniqueValue?: (boolean|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig type. */
                    public type?: (string|null);

                    /** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig value. */
                    public value?: (string|null);

                    /**
                     * Creates a new SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig;

                    /**
                     * Decodes a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig;

                    /**
                     * Verifies a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        HTTP_HEADER_HOST = 374321891,
                        HTTP_PATH = 311503228,
                        UNSPECIFIED_TYPE = 53933922
                    }
                }

                /** Properties of a SecurityPolicyAdvancedOptionsConfig. */
                interface ISecurityPolicyAdvancedOptionsConfig {

                    /** SecurityPolicyAdvancedOptionsConfig jsonCustomConfig */
                    jsonCustomConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig|null);

                    /** SecurityPolicyAdvancedOptionsConfig jsonParsing */
                    jsonParsing?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig logLevel */
                    logLevel?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig requestBodyInspectionSize */
                    requestBodyInspectionSize?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig userIpRequestHeaders */
                    userIpRequestHeaders?: (string[]|null);
                }

                /** Represents a SecurityPolicyAdvancedOptionsConfig. */
                class SecurityPolicyAdvancedOptionsConfig implements ISecurityPolicyAdvancedOptionsConfig {

                    /**
                     * Constructs a new SecurityPolicyAdvancedOptionsConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfig);

                    /** SecurityPolicyAdvancedOptionsConfig jsonCustomConfig. */
                    public jsonCustomConfig?: (google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig|null);

                    /** SecurityPolicyAdvancedOptionsConfig jsonParsing. */
                    public jsonParsing?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig logLevel. */
                    public logLevel?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig requestBodyInspectionSize. */
                    public requestBodyInspectionSize?: (string|null);

                    /** SecurityPolicyAdvancedOptionsConfig userIpRequestHeaders. */
                    public userIpRequestHeaders: string[];

                    /**
                     * Creates a new SecurityPolicyAdvancedOptionsConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdvancedOptionsConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfig): google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdvancedOptionsConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdvancedOptionsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdvancedOptionsConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdvancedOptionsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdvancedOptionsConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdvancedOptionsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfig;

                    /**
                     * Decodes a SecurityPolicyAdvancedOptionsConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdvancedOptionsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfig;

                    /**
                     * Verifies a SecurityPolicyAdvancedOptionsConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdvancedOptionsConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdvancedOptionsConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdvancedOptionsConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdvancedOptionsConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdvancedOptionsConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdvancedOptionsConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyAdvancedOptionsConfig {

                    /** JsonParsing enum. */
                    enum JsonParsing {
                        UNDEFINED_JSON_PARSING = 0,
                        DISABLED = 516696700,
                        STANDARD = 484642493,
                        STANDARD_WITH_GRAPHQL = 106979218
                    }

                    /** LogLevel enum. */
                    enum LogLevel {
                        UNDEFINED_LOG_LEVEL = 0,
                        NORMAL = 161067239,
                        VERBOSE = 532219234
                    }
                }

                /** Properties of a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig. */
                interface ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig {

                    /** SecurityPolicyAdvancedOptionsConfigJsonCustomConfig contentTypes */
                    contentTypes?: (string[]|null);
                }

                /** Represents a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig. */
                class SecurityPolicyAdvancedOptionsConfigJsonCustomConfig implements ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig {

                    /**
                     * Constructs a new SecurityPolicyAdvancedOptionsConfigJsonCustomConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig);

                    /** SecurityPolicyAdvancedOptionsConfigJsonCustomConfig contentTypes. */
                    public contentTypes: string[];

                    /**
                     * Creates a new SecurityPolicyAdvancedOptionsConfigJsonCustomConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAdvancedOptionsConfigJsonCustomConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig): google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig;

                    /**
                     * Encodes the specified SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig.verify|verify} messages.
                     * @param message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyAdvancedOptionsConfigJsonCustomConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig;

                    /**
                     * Decodes a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig;

                    /**
                     * Verifies a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyAdvancedOptionsConfigJsonCustomConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAdvancedOptionsConfigJsonCustomConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyAssociation. */
                interface ISecurityPolicyAssociation {

                    /** SecurityPolicyAssociation attachmentId */
                    attachmentId?: (string|null);

                    /** SecurityPolicyAssociation displayName */
                    displayName?: (string|null);

                    /** SecurityPolicyAssociation excludedFolders */
                    excludedFolders?: (string[]|null);

                    /** SecurityPolicyAssociation excludedProjects */
                    excludedProjects?: (string[]|null);

                    /** SecurityPolicyAssociation name */
                    name?: (string|null);

                    /** SecurityPolicyAssociation securityPolicyId */
                    securityPolicyId?: (string|null);

                    /** SecurityPolicyAssociation shortName */
                    shortName?: (string|null);
                }

                /** Represents a SecurityPolicyAssociation. */
                class SecurityPolicyAssociation implements ISecurityPolicyAssociation {

                    /**
                     * Constructs a new SecurityPolicyAssociation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyAssociation);

                    /** SecurityPolicyAssociation attachmentId. */
                    public attachmentId?: (string|null);

                    /** SecurityPolicyAssociation displayName. */
                    public displayName?: (string|null);

                    /** SecurityPolicyAssociation excludedFolders. */
                    public excludedFolders: string[];

                    /** SecurityPolicyAssociation excludedProjects. */
                    public excludedProjects: string[];

                    /** SecurityPolicyAssociation name. */
                    public name?: (string|null);

                    /** SecurityPolicyAssociation securityPolicyId. */
                    public securityPolicyId?: (string|null);

                    /** SecurityPolicyAssociation shortName. */
                    public shortName?: (string|null);

                    /**
                     * Creates a new SecurityPolicyAssociation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyAssociation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyAssociation): google.cloud.compute.v1beta.SecurityPolicyAssociation;

                    /**
                     * Encodes the specified SecurityPolicyAssociation message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAssociation.verify|verify} messages.
                     * @param message SecurityPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyAssociation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyAssociation.verify|verify} messages.
                     * @param message SecurityPolicyAssociation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyAssociation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyAssociation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyAssociation;

                    /**
                     * Decodes a SecurityPolicyAssociation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyAssociation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyAssociation;

                    /**
                     * Verifies a SecurityPolicyAssociation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyAssociation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyAssociation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyAssociation;

                    /**
                     * Creates a plain object from a SecurityPolicyAssociation message. Also converts values to other types if specified.
                     * @param message SecurityPolicyAssociation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyAssociation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyAssociation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyAssociation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyDdosProtectionConfig. */
                interface ISecurityPolicyDdosProtectionConfig {

                    /** SecurityPolicyDdosProtectionConfig ddosAdaptiveProtection */
                    ddosAdaptiveProtection?: (string|null);

                    /** SecurityPolicyDdosProtectionConfig ddosImpactedBaselineThreshold */
                    ddosImpactedBaselineThreshold?: (number|null);

                    /** SecurityPolicyDdosProtectionConfig ddosProtection */
                    ddosProtection?: (string|null);
                }

                /** Represents a SecurityPolicyDdosProtectionConfig. */
                class SecurityPolicyDdosProtectionConfig implements ISecurityPolicyDdosProtectionConfig {

                    /**
                     * Constructs a new SecurityPolicyDdosProtectionConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyDdosProtectionConfig);

                    /** SecurityPolicyDdosProtectionConfig ddosAdaptiveProtection. */
                    public ddosAdaptiveProtection?: (string|null);

                    /** SecurityPolicyDdosProtectionConfig ddosImpactedBaselineThreshold. */
                    public ddosImpactedBaselineThreshold?: (number|null);

                    /** SecurityPolicyDdosProtectionConfig ddosProtection. */
                    public ddosProtection?: (string|null);

                    /**
                     * Creates a new SecurityPolicyDdosProtectionConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyDdosProtectionConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyDdosProtectionConfig): google.cloud.compute.v1beta.SecurityPolicyDdosProtectionConfig;

                    /**
                     * Encodes the specified SecurityPolicyDdosProtectionConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyDdosProtectionConfig.verify|verify} messages.
                     * @param message SecurityPolicyDdosProtectionConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyDdosProtectionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyDdosProtectionConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyDdosProtectionConfig.verify|verify} messages.
                     * @param message SecurityPolicyDdosProtectionConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyDdosProtectionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyDdosProtectionConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyDdosProtectionConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyDdosProtectionConfig;

                    /**
                     * Decodes a SecurityPolicyDdosProtectionConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyDdosProtectionConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyDdosProtectionConfig;

                    /**
                     * Verifies a SecurityPolicyDdosProtectionConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyDdosProtectionConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyDdosProtectionConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyDdosProtectionConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyDdosProtectionConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyDdosProtectionConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyDdosProtectionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyDdosProtectionConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyDdosProtectionConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyDdosProtectionConfig {

                    /** DdosAdaptiveProtection enum. */
                    enum DdosAdaptiveProtection {
                        UNDEFINED_DDOS_ADAPTIVE_PROTECTION = 0,
                        DISABLED = 516696700,
                        ENABLED = 182130465,
                        PREVIEW = 399798184
                    }

                    /** DdosProtection enum. */
                    enum DdosProtection {
                        UNDEFINED_DDOS_PROTECTION = 0,
                        ADVANCED = 63789090,
                        ADVANCED_PREVIEW = 40905867,
                        STANDARD = 484642493
                    }
                }

                /** Properties of a SecurityPolicyList. */
                interface ISecurityPolicyList {

                    /** SecurityPolicyList id */
                    id?: (string|null);

                    /** SecurityPolicyList items */
                    items?: (google.cloud.compute.v1beta.ISecurityPolicy[]|null);

                    /** SecurityPolicyList kind */
                    kind?: (string|null);

                    /** SecurityPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SecurityPolicyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SecurityPolicyList. */
                class SecurityPolicyList implements ISecurityPolicyList {

                    /**
                     * Constructs a new SecurityPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyList);

                    /** SecurityPolicyList id. */
                    public id?: (string|null);

                    /** SecurityPolicyList items. */
                    public items: google.cloud.compute.v1beta.ISecurityPolicy[];

                    /** SecurityPolicyList kind. */
                    public kind?: (string|null);

                    /** SecurityPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SecurityPolicyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SecurityPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyList): google.cloud.compute.v1beta.SecurityPolicyList;

                    /**
                     * Encodes the specified SecurityPolicyList message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyList.verify|verify} messages.
                     * @param message SecurityPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyList.verify|verify} messages.
                     * @param message SecurityPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyList;

                    /**
                     * Decodes a SecurityPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyList;

                    /**
                     * Verifies a SecurityPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyList;

                    /**
                     * Creates a plain object from a SecurityPolicyList message. Also converts values to other types if specified.
                     * @param message SecurityPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRecaptchaOptionsConfig. */
                interface ISecurityPolicyRecaptchaOptionsConfig {

                    /** SecurityPolicyRecaptchaOptionsConfig redirectSiteKey */
                    redirectSiteKey?: (string|null);
                }

                /** Represents a SecurityPolicyRecaptchaOptionsConfig. */
                class SecurityPolicyRecaptchaOptionsConfig implements ISecurityPolicyRecaptchaOptionsConfig {

                    /**
                     * Constructs a new SecurityPolicyRecaptchaOptionsConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRecaptchaOptionsConfig);

                    /** SecurityPolicyRecaptchaOptionsConfig redirectSiteKey. */
                    public redirectSiteKey?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRecaptchaOptionsConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRecaptchaOptionsConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRecaptchaOptionsConfig): google.cloud.compute.v1beta.SecurityPolicyRecaptchaOptionsConfig;

                    /**
                     * Encodes the specified SecurityPolicyRecaptchaOptionsConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRecaptchaOptionsConfig.verify|verify} messages.
                     * @param message SecurityPolicyRecaptchaOptionsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRecaptchaOptionsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRecaptchaOptionsConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRecaptchaOptionsConfig.verify|verify} messages.
                     * @param message SecurityPolicyRecaptchaOptionsConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRecaptchaOptionsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRecaptchaOptionsConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRecaptchaOptionsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRecaptchaOptionsConfig;

                    /**
                     * Decodes a SecurityPolicyRecaptchaOptionsConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRecaptchaOptionsConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRecaptchaOptionsConfig;

                    /**
                     * Verifies a SecurityPolicyRecaptchaOptionsConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRecaptchaOptionsConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRecaptchaOptionsConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRecaptchaOptionsConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyRecaptchaOptionsConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRecaptchaOptionsConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRecaptchaOptionsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRecaptchaOptionsConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRecaptchaOptionsConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyReference. */
                interface ISecurityPolicyReference {

                    /** SecurityPolicyReference securityPolicy */
                    securityPolicy?: (string|null);
                }

                /** Represents a SecurityPolicyReference. */
                class SecurityPolicyReference implements ISecurityPolicyReference {

                    /**
                     * Constructs a new SecurityPolicyReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyReference);

                    /** SecurityPolicyReference securityPolicy. */
                    public securityPolicy?: (string|null);

                    /**
                     * Creates a new SecurityPolicyReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyReference): google.cloud.compute.v1beta.SecurityPolicyReference;

                    /**
                     * Encodes the specified SecurityPolicyReference message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyReference.verify|verify} messages.
                     * @param message SecurityPolicyReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyReference.verify|verify} messages.
                     * @param message SecurityPolicyReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyReference;

                    /**
                     * Decodes a SecurityPolicyReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyReference;

                    /**
                     * Verifies a SecurityPolicyReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyReference;

                    /**
                     * Creates a plain object from a SecurityPolicyReference message. Also converts values to other types if specified.
                     * @param message SecurityPolicyReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRule. */
                interface ISecurityPolicyRule {

                    /** SecurityPolicyRule action */
                    action?: (string|null);

                    /** SecurityPolicyRule description */
                    description?: (string|null);

                    /** SecurityPolicyRule direction */
                    direction?: (string|null);

                    /** SecurityPolicyRule enableLogging */
                    enableLogging?: (boolean|null);

                    /** SecurityPolicyRule headerAction */
                    headerAction?: (google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderAction|null);

                    /** SecurityPolicyRule kind */
                    kind?: (string|null);

                    /** SecurityPolicyRule match */
                    match?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcher|null);

                    /** SecurityPolicyRule networkMatch */
                    networkMatch?: (google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcher|null);

                    /** SecurityPolicyRule preconfiguredWafConfig */
                    preconfiguredWafConfig?: (google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfig|null);

                    /** SecurityPolicyRule preview */
                    preview?: (boolean|null);

                    /** SecurityPolicyRule priority */
                    priority?: (number|null);

                    /** SecurityPolicyRule rateLimitOptions */
                    rateLimitOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptions|null);

                    /** SecurityPolicyRule redirectOptions */
                    redirectOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRedirectOptions|null);

                    /** SecurityPolicyRule ruleNumber */
                    ruleNumber?: (number|Long|string|null);

                    /** SecurityPolicyRule ruleTupleCount */
                    ruleTupleCount?: (number|null);

                    /** SecurityPolicyRule targetResources */
                    targetResources?: (string[]|null);

                    /** SecurityPolicyRule targetServiceAccounts */
                    targetServiceAccounts?: (string[]|null);
                }

                /** Represents a SecurityPolicyRule. */
                class SecurityPolicyRule implements ISecurityPolicyRule {

                    /**
                     * Constructs a new SecurityPolicyRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRule);

                    /** SecurityPolicyRule action. */
                    public action?: (string|null);

                    /** SecurityPolicyRule description. */
                    public description?: (string|null);

                    /** SecurityPolicyRule direction. */
                    public direction?: (string|null);

                    /** SecurityPolicyRule enableLogging. */
                    public enableLogging?: (boolean|null);

                    /** SecurityPolicyRule headerAction. */
                    public headerAction?: (google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderAction|null);

                    /** SecurityPolicyRule kind. */
                    public kind?: (string|null);

                    /** SecurityPolicyRule match. */
                    public match?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcher|null);

                    /** SecurityPolicyRule networkMatch. */
                    public networkMatch?: (google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcher|null);

                    /** SecurityPolicyRule preconfiguredWafConfig. */
                    public preconfiguredWafConfig?: (google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfig|null);

                    /** SecurityPolicyRule preview. */
                    public preview?: (boolean|null);

                    /** SecurityPolicyRule priority. */
                    public priority?: (number|null);

                    /** SecurityPolicyRule rateLimitOptions. */
                    public rateLimitOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptions|null);

                    /** SecurityPolicyRule redirectOptions. */
                    public redirectOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRedirectOptions|null);

                    /** SecurityPolicyRule ruleNumber. */
                    public ruleNumber?: (number|Long|string|null);

                    /** SecurityPolicyRule ruleTupleCount. */
                    public ruleTupleCount?: (number|null);

                    /** SecurityPolicyRule targetResources. */
                    public targetResources: string[];

                    /** SecurityPolicyRule targetServiceAccounts. */
                    public targetServiceAccounts: string[];

                    /**
                     * Creates a new SecurityPolicyRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRule instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRule): google.cloud.compute.v1beta.SecurityPolicyRule;

                    /**
                     * Encodes the specified SecurityPolicyRule message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRule.verify|verify} messages.
                     * @param message SecurityPolicyRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRule message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRule.verify|verify} messages.
                     * @param message SecurityPolicyRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRule;

                    /**
                     * Decodes a SecurityPolicyRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRule;

                    /**
                     * Verifies a SecurityPolicyRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRule;

                    /**
                     * Creates a plain object from a SecurityPolicyRule message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRule {

                    /** Direction enum. */
                    enum Direction {
                        UNDEFINED_DIRECTION = 0,
                        EGRESS = 432880501,
                        INGRESS = 516931221
                    }
                }

                /** Properties of a SecurityPolicyRuleHttpHeaderAction. */
                interface ISecurityPolicyRuleHttpHeaderAction {

                    /** SecurityPolicyRuleHttpHeaderAction requestHeadersToAdds */
                    requestHeadersToAdds?: (google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption[]|null);
                }

                /** Represents a SecurityPolicyRuleHttpHeaderAction. */
                class SecurityPolicyRuleHttpHeaderAction implements ISecurityPolicyRuleHttpHeaderAction {

                    /**
                     * Constructs a new SecurityPolicyRuleHttpHeaderAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderAction);

                    /** SecurityPolicyRuleHttpHeaderAction requestHeadersToAdds. */
                    public requestHeadersToAdds: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption[];

                    /**
                     * Creates a new SecurityPolicyRuleHttpHeaderAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleHttpHeaderAction instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderAction): google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderAction;

                    /**
                     * Encodes the specified SecurityPolicyRuleHttpHeaderAction message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderAction.verify|verify} messages.
                     * @param message SecurityPolicyRuleHttpHeaderAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleHttpHeaderAction message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderAction.verify|verify} messages.
                     * @param message SecurityPolicyRuleHttpHeaderAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleHttpHeaderAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleHttpHeaderAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderAction;

                    /**
                     * Decodes a SecurityPolicyRuleHttpHeaderAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleHttpHeaderAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderAction;

                    /**
                     * Verifies a SecurityPolicyRuleHttpHeaderAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleHttpHeaderAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleHttpHeaderAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderAction;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleHttpHeaderAction message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleHttpHeaderAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleHttpHeaderAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleHttpHeaderAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption. */
                interface ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption {

                    /** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption headerName */
                    headerName?: (string|null);

                    /** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption headerValue */
                    headerValue?: (string|null);
                }

                /** Represents a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption. */
                class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption implements ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption {

                    /**
                     * Constructs a new SecurityPolicyRuleHttpHeaderActionHttpHeaderOption.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption);

                    /** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption headerName. */
                    public headerName?: (string|null);

                    /** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption headerValue. */
                    public headerValue?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRuleHttpHeaderActionHttpHeaderOption instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleHttpHeaderActionHttpHeaderOption instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption): google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption;

                    /**
                     * Encodes the specified SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption.verify|verify} messages.
                     * @param message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption.verify|verify} messages.
                     * @param message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleHttpHeaderActionHttpHeaderOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption;

                    /**
                     * Decodes a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption;

                    /**
                     * Verifies a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleHttpHeaderActionHttpHeaderOption message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleHttpHeaderActionHttpHeaderOption to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleMatcher. */
                interface ISecurityPolicyRuleMatcher {

                    /** SecurityPolicyRuleMatcher config */
                    config?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfig|null);

                    /** SecurityPolicyRuleMatcher expr */
                    expr?: (google.cloud.compute.v1beta.IExpr|null);

                    /** SecurityPolicyRuleMatcher exprOptions */
                    exprOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptions|null);

                    /** SecurityPolicyRuleMatcher versionedExpr */
                    versionedExpr?: (string|null);
                }

                /** Represents a SecurityPolicyRuleMatcher. */
                class SecurityPolicyRuleMatcher implements ISecurityPolicyRuleMatcher {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcher);

                    /** SecurityPolicyRuleMatcher config. */
                    public config?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfig|null);

                    /** SecurityPolicyRuleMatcher expr. */
                    public expr?: (google.cloud.compute.v1beta.IExpr|null);

                    /** SecurityPolicyRuleMatcher exprOptions. */
                    public exprOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptions|null);

                    /** SecurityPolicyRuleMatcher versionedExpr. */
                    public versionedExpr?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRuleMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcher): google.cloud.compute.v1beta.SecurityPolicyRuleMatcher;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcher message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcher.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcher.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleMatcher;

                    /**
                     * Decodes a SecurityPolicyRuleMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleMatcher;

                    /**
                     * Verifies a SecurityPolicyRuleMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleMatcher;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcher message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRuleMatcher {

                    /** VersionedExpr enum. */
                    enum VersionedExpr {
                        UNDEFINED_VERSIONED_EXPR = 0,
                        FIREWALL = 219901184,
                        SRC_IPS_V1 = 70925961
                    }
                }

                /** Properties of a SecurityPolicyRuleMatcherConfig. */
                interface ISecurityPolicyRuleMatcherConfig {

                    /** SecurityPolicyRuleMatcherConfig destIpRanges */
                    destIpRanges?: (string[]|null);

                    /** SecurityPolicyRuleMatcherConfig layer4Configs */
                    layer4Configs?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfigLayer4Config[]|null);

                    /** SecurityPolicyRuleMatcherConfig srcIpRanges */
                    srcIpRanges?: (string[]|null);
                }

                /** Represents a SecurityPolicyRuleMatcherConfig. */
                class SecurityPolicyRuleMatcherConfig implements ISecurityPolicyRuleMatcherConfig {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcherConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfig);

                    /** SecurityPolicyRuleMatcherConfig destIpRanges. */
                    public destIpRanges: string[];

                    /** SecurityPolicyRuleMatcherConfig layer4Configs. */
                    public layer4Configs: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfigLayer4Config[];

                    /** SecurityPolicyRuleMatcherConfig srcIpRanges. */
                    public srcIpRanges: string[];

                    /**
                     * Creates a new SecurityPolicyRuleMatcherConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcherConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfig): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfig;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfig.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfig.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcherConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfig;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcherConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfig;

                    /**
                     * Verifies a SecurityPolicyRuleMatcherConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcherConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcherConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcherConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcherConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcherConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcherConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleMatcherConfigLayer4Config. */
                interface ISecurityPolicyRuleMatcherConfigLayer4Config {

                    /** SecurityPolicyRuleMatcherConfigLayer4Config ipProtocol */
                    ipProtocol?: (string|null);

                    /** SecurityPolicyRuleMatcherConfigLayer4Config ports */
                    ports?: (string[]|null);
                }

                /** Represents a SecurityPolicyRuleMatcherConfigLayer4Config. */
                class SecurityPolicyRuleMatcherConfigLayer4Config implements ISecurityPolicyRuleMatcherConfigLayer4Config {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcherConfigLayer4Config.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfigLayer4Config);

                    /** SecurityPolicyRuleMatcherConfigLayer4Config ipProtocol. */
                    public ipProtocol?: (string|null);

                    /** SecurityPolicyRuleMatcherConfigLayer4Config ports. */
                    public ports: string[];

                    /**
                     * Creates a new SecurityPolicyRuleMatcherConfigLayer4Config instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcherConfigLayer4Config instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfigLayer4Config): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfigLayer4Config;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherConfigLayer4Config message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfigLayer4Config.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherConfigLayer4Config message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfigLayer4Config, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherConfigLayer4Config message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfigLayer4Config.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherConfigLayer4Config message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherConfigLayer4Config, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherConfigLayer4Config message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcherConfigLayer4Config
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfigLayer4Config;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherConfigLayer4Config message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcherConfigLayer4Config
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfigLayer4Config;

                    /**
                     * Verifies a SecurityPolicyRuleMatcherConfigLayer4Config message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcherConfigLayer4Config message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcherConfigLayer4Config
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfigLayer4Config;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcherConfigLayer4Config message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcherConfigLayer4Config
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleMatcherConfigLayer4Config, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcherConfigLayer4Config to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcherConfigLayer4Config
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleMatcherExprOptions. */
                interface ISecurityPolicyRuleMatcherExprOptions {

                    /** SecurityPolicyRuleMatcherExprOptions recaptchaOptions */
                    recaptchaOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions|null);
                }

                /** Represents a SecurityPolicyRuleMatcherExprOptions. */
                class SecurityPolicyRuleMatcherExprOptions implements ISecurityPolicyRuleMatcherExprOptions {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcherExprOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptions);

                    /** SecurityPolicyRuleMatcherExprOptions recaptchaOptions. */
                    public recaptchaOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions|null);

                    /**
                     * Creates a new SecurityPolicyRuleMatcherExprOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcherExprOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptions): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptions;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherExprOptions message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherExprOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherExprOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherExprOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherExprOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcherExprOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptions;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherExprOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcherExprOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptions;

                    /**
                     * Verifies a SecurityPolicyRuleMatcherExprOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcherExprOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcherExprOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptions;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcherExprOptions message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcherExprOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcherExprOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcherExprOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions. */
                interface ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions {

                    /** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions actionTokenSiteKeys */
                    actionTokenSiteKeys?: (string[]|null);

                    /** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions sessionTokenSiteKeys */
                    sessionTokenSiteKeys?: (string[]|null);
                }

                /** Represents a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions. */
                class SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions implements ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions {

                    /**
                     * Constructs a new SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions);

                    /** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions actionTokenSiteKeys. */
                    public actionTokenSiteKeys: string[];

                    /** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions sessionTokenSiteKeys. */
                    public sessionTokenSiteKeys: string[];

                    /**
                     * Creates a new SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleMatcherExprOptionsRecaptchaOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions;

                    /**
                     * Decodes a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions;

                    /**
                     * Verifies a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleNetworkMatcher. */
                interface ISecurityPolicyRuleNetworkMatcher {

                    /** SecurityPolicyRuleNetworkMatcher destIpRanges */
                    destIpRanges?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher destPorts */
                    destPorts?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher ipProtocols */
                    ipProtocols?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher srcAsns */
                    srcAsns?: (number[]|null);

                    /** SecurityPolicyRuleNetworkMatcher srcIpRanges */
                    srcIpRanges?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher srcPorts */
                    srcPorts?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher srcRegionCodes */
                    srcRegionCodes?: (string[]|null);

                    /** SecurityPolicyRuleNetworkMatcher userDefinedFields */
                    userDefinedFields?: (google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch[]|null);
                }

                /** Represents a SecurityPolicyRuleNetworkMatcher. */
                class SecurityPolicyRuleNetworkMatcher implements ISecurityPolicyRuleNetworkMatcher {

                    /**
                     * Constructs a new SecurityPolicyRuleNetworkMatcher.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcher);

                    /** SecurityPolicyRuleNetworkMatcher destIpRanges. */
                    public destIpRanges: string[];

                    /** SecurityPolicyRuleNetworkMatcher destPorts. */
                    public destPorts: string[];

                    /** SecurityPolicyRuleNetworkMatcher ipProtocols. */
                    public ipProtocols: string[];

                    /** SecurityPolicyRuleNetworkMatcher srcAsns. */
                    public srcAsns: number[];

                    /** SecurityPolicyRuleNetworkMatcher srcIpRanges. */
                    public srcIpRanges: string[];

                    /** SecurityPolicyRuleNetworkMatcher srcPorts. */
                    public srcPorts: string[];

                    /** SecurityPolicyRuleNetworkMatcher srcRegionCodes. */
                    public srcRegionCodes: string[];

                    /** SecurityPolicyRuleNetworkMatcher userDefinedFields. */
                    public userDefinedFields: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch[];

                    /**
                     * Creates a new SecurityPolicyRuleNetworkMatcher instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleNetworkMatcher instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcher): google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcher;

                    /**
                     * Encodes the specified SecurityPolicyRuleNetworkMatcher message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcher.verify|verify} messages.
                     * @param message SecurityPolicyRuleNetworkMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleNetworkMatcher message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcher.verify|verify} messages.
                     * @param message SecurityPolicyRuleNetworkMatcher message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcher, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleNetworkMatcher message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleNetworkMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcher;

                    /**
                     * Decodes a SecurityPolicyRuleNetworkMatcher message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleNetworkMatcher
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcher;

                    /**
                     * Verifies a SecurityPolicyRuleNetworkMatcher message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleNetworkMatcher message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleNetworkMatcher
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcher;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleNetworkMatcher message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleNetworkMatcher
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcher, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleNetworkMatcher to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleNetworkMatcher
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch. */
                interface ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch {

                    /** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch name */
                    name?: (string|null);

                    /** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch values */
                    values?: (string[]|null);
                }

                /** Represents a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch. */
                class SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch implements ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch {

                    /**
                     * Constructs a new SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch);

                    /** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch name. */
                    public name?: (string|null);

                    /** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch values. */
                    public values: string[];

                    /**
                     * Creates a new SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch): google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch;

                    /**
                     * Encodes the specified SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch.verify|verify} messages.
                     * @param message SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch.verify|verify} messages.
                     * @param message SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch;

                    /**
                     * Decodes a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch;

                    /**
                     * Verifies a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRulePreconfiguredWafConfig. */
                interface ISecurityPolicyRulePreconfiguredWafConfig {

                    /** SecurityPolicyRulePreconfiguredWafConfig exclusions */
                    exclusions?: (google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusion[]|null);
                }

                /** Represents a SecurityPolicyRulePreconfiguredWafConfig. */
                class SecurityPolicyRulePreconfiguredWafConfig implements ISecurityPolicyRulePreconfiguredWafConfig {

                    /**
                     * Constructs a new SecurityPolicyRulePreconfiguredWafConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfig);

                    /** SecurityPolicyRulePreconfiguredWafConfig exclusions. */
                    public exclusions: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusion[];

                    /**
                     * Creates a new SecurityPolicyRulePreconfiguredWafConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRulePreconfiguredWafConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfig): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfig;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfig.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfig.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRulePreconfiguredWafConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfig;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRulePreconfiguredWafConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfig;

                    /**
                     * Verifies a SecurityPolicyRulePreconfiguredWafConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRulePreconfiguredWafConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRulePreconfiguredWafConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyRulePreconfiguredWafConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRulePreconfiguredWafConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRulePreconfiguredWafConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRulePreconfiguredWafConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRulePreconfiguredWafConfigExclusion. */
                interface ISecurityPolicyRulePreconfiguredWafConfigExclusion {

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestBodiesToExclude */
                    requestBodiesToExclude?: (google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestCookiesToExclude */
                    requestCookiesToExclude?: (google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestHeadersToExclude */
                    requestHeadersToExclude?: (google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestQueryParamsToExclude */
                    requestQueryParamsToExclude?: (google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestUrisToExclude */
                    requestUrisToExclude?: (google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion targetRuleIds */
                    targetRuleIds?: (string[]|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion targetRuleSet */
                    targetRuleSet?: (string|null);
                }

                /** Represents a SecurityPolicyRulePreconfiguredWafConfigExclusion. */
                class SecurityPolicyRulePreconfiguredWafConfigExclusion implements ISecurityPolicyRulePreconfiguredWafConfigExclusion {

                    /**
                     * Constructs a new SecurityPolicyRulePreconfiguredWafConfigExclusion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusion);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestBodiesToExclude. */
                    public requestBodiesToExclude: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestCookiesToExclude. */
                    public requestCookiesToExclude: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestHeadersToExclude. */
                    public requestHeadersToExclude: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestQueryParamsToExclude. */
                    public requestQueryParamsToExclude: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion requestUrisToExclude. */
                    public requestUrisToExclude: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion targetRuleIds. */
                    public targetRuleIds: string[];

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusion targetRuleSet. */
                    public targetRuleSet?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRulePreconfiguredWafConfigExclusion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusion instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusion): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusion;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfigExclusion message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusion.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfigExclusion message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusion.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfigExclusion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusion;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfigExclusion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusion;

                    /**
                     * Verifies a SecurityPolicyRulePreconfiguredWafConfigExclusion message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRulePreconfiguredWafConfigExclusion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusion
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusion;

                    /**
                     * Creates a plain object from a SecurityPolicyRulePreconfiguredWafConfigExclusion message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRulePreconfiguredWafConfigExclusion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRulePreconfiguredWafConfigExclusion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams. */
                interface ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams {

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams op */
                    op?: (string|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams val */
                    val?: (string|null);
                }

                /** Represents a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams. */
                class SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams implements ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams {

                    /**
                     * Constructs a new SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams op. */
                    public op?: (string|null);

                    /** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams val. */
                    public val?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams.verify|verify} messages.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams;

                    /**
                     * Decodes a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams;

                    /**
                     * Verifies a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams;

                    /**
                     * Creates a plain object from a SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams {

                    /** Op enum. */
                    enum Op {
                        UNDEFINED_OP = 0,
                        CONTAINS = 215180831,
                        ENDS_WITH = 490402221,
                        EQUALS = 442201023,
                        EQUALS_ANY = 337226060,
                        STARTS_WITH = 139505652
                    }
                }

                /** Properties of a SecurityPolicyRuleRateLimitOptions. */
                interface ISecurityPolicyRuleRateLimitOptions {

                    /** SecurityPolicyRuleRateLimitOptions banDurationSec */
                    banDurationSec?: (number|null);

                    /** SecurityPolicyRuleRateLimitOptions banThreshold */
                    banThreshold?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsThreshold|null);

                    /** SecurityPolicyRuleRateLimitOptions conformAction */
                    conformAction?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKey */
                    enforceOnKey?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKeyConfigs */
                    enforceOnKeyConfigs?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig[]|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKeyName */
                    enforceOnKeyName?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions exceedAction */
                    exceedAction?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions exceedRedirectOptions */
                    exceedRedirectOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRedirectOptions|null);

                    /** SecurityPolicyRuleRateLimitOptions rateLimitThreshold */
                    rateLimitThreshold?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsThreshold|null);
                }

                /** Represents a SecurityPolicyRuleRateLimitOptions. */
                class SecurityPolicyRuleRateLimitOptions implements ISecurityPolicyRuleRateLimitOptions {

                    /**
                     * Constructs a new SecurityPolicyRuleRateLimitOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptions);

                    /** SecurityPolicyRuleRateLimitOptions banDurationSec. */
                    public banDurationSec?: (number|null);

                    /** SecurityPolicyRuleRateLimitOptions banThreshold. */
                    public banThreshold?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsThreshold|null);

                    /** SecurityPolicyRuleRateLimitOptions conformAction. */
                    public conformAction?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKey. */
                    public enforceOnKey?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKeyConfigs. */
                    public enforceOnKeyConfigs: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig[];

                    /** SecurityPolicyRuleRateLimitOptions enforceOnKeyName. */
                    public enforceOnKeyName?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions exceedAction. */
                    public exceedAction?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptions exceedRedirectOptions. */
                    public exceedRedirectOptions?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRedirectOptions|null);

                    /** SecurityPolicyRuleRateLimitOptions rateLimitThreshold. */
                    public rateLimitThreshold?: (google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsThreshold|null);

                    /**
                     * Creates a new SecurityPolicyRuleRateLimitOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleRateLimitOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptions): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptions;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptions message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleRateLimitOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptions;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleRateLimitOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptions;

                    /**
                     * Verifies a SecurityPolicyRuleRateLimitOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleRateLimitOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleRateLimitOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptions;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleRateLimitOptions message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleRateLimitOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleRateLimitOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleRateLimitOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRuleRateLimitOptions {

                    /** EnforceOnKey enum. */
                    enum EnforceOnKey {
                        UNDEFINED_ENFORCE_ON_KEY = 0,
                        ALL = 64897,
                        ALL_IPS = 343973966,
                        HTTP_COOKIE = 494981627,
                        HTTP_HEADER = 91597348,
                        HTTP_PATH = 311503228,
                        IP = 2343,
                        REGION_CODE = 79559768,
                        SNI = 82254,
                        TLS_JA3_FINGERPRINT = 327127933,
                        TLS_JA4_FINGERPRINT = 33724926,
                        USER_IP = 34009627,
                        XFF_IP = 438707118
                    }
                }

                /** Properties of a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig. */
                interface ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig {

                    /** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig enforceOnKeyName */
                    enforceOnKeyName?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig enforceOnKeyType */
                    enforceOnKeyType?: (string|null);
                }

                /** Represents a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig. */
                class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig implements ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig {

                    /**
                     * Constructs a new SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig);

                    /** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig enforceOnKeyName. */
                    public enforceOnKeyName?: (string|null);

                    /** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig enforceOnKeyType. */
                    public enforceOnKeyType?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig;

                    /**
                     * Verifies a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig {

                    /** EnforceOnKeyType enum. */
                    enum EnforceOnKeyType {
                        UNDEFINED_ENFORCE_ON_KEY_TYPE = 0,
                        ALL = 64897,
                        ALL_IPS = 343973966,
                        HTTP_COOKIE = 494981627,
                        HTTP_HEADER = 91597348,
                        HTTP_PATH = 311503228,
                        IP = 2343,
                        REGION_CODE = 79559768,
                        SNI = 82254,
                        TLS_JA3_FINGERPRINT = 327127933,
                        TLS_JA4_FINGERPRINT = 33724926,
                        USER_IP = 34009627,
                        XFF_IP = 438707118
                    }
                }

                /** Properties of a SecurityPolicyRuleRateLimitOptionsThreshold. */
                interface ISecurityPolicyRuleRateLimitOptionsThreshold {

                    /** SecurityPolicyRuleRateLimitOptionsThreshold count */
                    count?: (number|null);

                    /** SecurityPolicyRuleRateLimitOptionsThreshold intervalSec */
                    intervalSec?: (number|null);
                }

                /** Represents a SecurityPolicyRuleRateLimitOptionsThreshold. */
                class SecurityPolicyRuleRateLimitOptionsThreshold implements ISecurityPolicyRuleRateLimitOptionsThreshold {

                    /**
                     * Constructs a new SecurityPolicyRuleRateLimitOptionsThreshold.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsThreshold);

                    /** SecurityPolicyRuleRateLimitOptionsThreshold count. */
                    public count?: (number|null);

                    /** SecurityPolicyRuleRateLimitOptionsThreshold intervalSec. */
                    public intervalSec?: (number|null);

                    /**
                     * Creates a new SecurityPolicyRuleRateLimitOptionsThreshold instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleRateLimitOptionsThreshold instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsThreshold): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsThreshold;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptionsThreshold message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsThreshold.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptionsThreshold message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsThreshold, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleRateLimitOptionsThreshold message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsThreshold.verify|verify} messages.
                     * @param message SecurityPolicyRuleRateLimitOptionsThreshold message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleRateLimitOptionsThreshold, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptionsThreshold message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleRateLimitOptionsThreshold
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsThreshold;

                    /**
                     * Decodes a SecurityPolicyRuleRateLimitOptionsThreshold message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleRateLimitOptionsThreshold
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsThreshold;

                    /**
                     * Verifies a SecurityPolicyRuleRateLimitOptionsThreshold message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleRateLimitOptionsThreshold message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleRateLimitOptionsThreshold
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsThreshold;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleRateLimitOptionsThreshold message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleRateLimitOptionsThreshold
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleRateLimitOptionsThreshold, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleRateLimitOptionsThreshold to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleRateLimitOptionsThreshold
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SecurityPolicyRuleRedirectOptions. */
                interface ISecurityPolicyRuleRedirectOptions {

                    /** SecurityPolicyRuleRedirectOptions target */
                    target?: (string|null);

                    /** SecurityPolicyRuleRedirectOptions type */
                    type?: (string|null);
                }

                /** Represents a SecurityPolicyRuleRedirectOptions. */
                class SecurityPolicyRuleRedirectOptions implements ISecurityPolicyRuleRedirectOptions {

                    /**
                     * Constructs a new SecurityPolicyRuleRedirectOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleRedirectOptions);

                    /** SecurityPolicyRuleRedirectOptions target. */
                    public target?: (string|null);

                    /** SecurityPolicyRuleRedirectOptions type. */
                    public type?: (string|null);

                    /**
                     * Creates a new SecurityPolicyRuleRedirectOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyRuleRedirectOptions instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyRuleRedirectOptions): google.cloud.compute.v1beta.SecurityPolicyRuleRedirectOptions;

                    /**
                     * Encodes the specified SecurityPolicyRuleRedirectOptions message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleRedirectOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleRedirectOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyRuleRedirectOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyRuleRedirectOptions message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyRuleRedirectOptions.verify|verify} messages.
                     * @param message SecurityPolicyRuleRedirectOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyRuleRedirectOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyRuleRedirectOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyRuleRedirectOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyRuleRedirectOptions;

                    /**
                     * Decodes a SecurityPolicyRuleRedirectOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyRuleRedirectOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyRuleRedirectOptions;

                    /**
                     * Verifies a SecurityPolicyRuleRedirectOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyRuleRedirectOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyRuleRedirectOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyRuleRedirectOptions;

                    /**
                     * Creates a plain object from a SecurityPolicyRuleRedirectOptions message. Also converts values to other types if specified.
                     * @param message SecurityPolicyRuleRedirectOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyRuleRedirectOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyRuleRedirectOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyRuleRedirectOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyRuleRedirectOptions {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        EXTERNAL_302 = 395733761,
                        GOOGLE_RECAPTCHA = 518803009
                    }
                }

                /** Properties of a SecurityPolicyUserDefinedField. */
                interface ISecurityPolicyUserDefinedField {

                    /** SecurityPolicyUserDefinedField base */
                    base?: (string|null);

                    /** SecurityPolicyUserDefinedField mask */
                    mask?: (string|null);

                    /** SecurityPolicyUserDefinedField name */
                    name?: (string|null);

                    /** SecurityPolicyUserDefinedField offset */
                    offset?: (number|null);

                    /** SecurityPolicyUserDefinedField size */
                    size?: (number|null);
                }

                /** Represents a SecurityPolicyUserDefinedField. */
                class SecurityPolicyUserDefinedField implements ISecurityPolicyUserDefinedField {

                    /**
                     * Constructs a new SecurityPolicyUserDefinedField.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecurityPolicyUserDefinedField);

                    /** SecurityPolicyUserDefinedField base. */
                    public base?: (string|null);

                    /** SecurityPolicyUserDefinedField mask. */
                    public mask?: (string|null);

                    /** SecurityPolicyUserDefinedField name. */
                    public name?: (string|null);

                    /** SecurityPolicyUserDefinedField offset. */
                    public offset?: (number|null);

                    /** SecurityPolicyUserDefinedField size. */
                    public size?: (number|null);

                    /**
                     * Creates a new SecurityPolicyUserDefinedField instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecurityPolicyUserDefinedField instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecurityPolicyUserDefinedField): google.cloud.compute.v1beta.SecurityPolicyUserDefinedField;

                    /**
                     * Encodes the specified SecurityPolicyUserDefinedField message. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyUserDefinedField.verify|verify} messages.
                     * @param message SecurityPolicyUserDefinedField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecurityPolicyUserDefinedField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecurityPolicyUserDefinedField message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecurityPolicyUserDefinedField.verify|verify} messages.
                     * @param message SecurityPolicyUserDefinedField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecurityPolicyUserDefinedField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecurityPolicyUserDefinedField message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecurityPolicyUserDefinedField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecurityPolicyUserDefinedField;

                    /**
                     * Decodes a SecurityPolicyUserDefinedField message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecurityPolicyUserDefinedField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecurityPolicyUserDefinedField;

                    /**
                     * Verifies a SecurityPolicyUserDefinedField message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecurityPolicyUserDefinedField message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecurityPolicyUserDefinedField
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecurityPolicyUserDefinedField;

                    /**
                     * Creates a plain object from a SecurityPolicyUserDefinedField message. Also converts values to other types if specified.
                     * @param message SecurityPolicyUserDefinedField
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecurityPolicyUserDefinedField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecurityPolicyUserDefinedField to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecurityPolicyUserDefinedField
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SecurityPolicyUserDefinedField {

                    /** Base enum. */
                    enum Base {
                        UNDEFINED_BASE = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        TCP = 82881,
                        UDP = 83873
                    }
                }

                /** Properties of a SecuritySettings. */
                interface ISecuritySettings {

                    /** SecuritySettings authentication */
                    authentication?: (string|null);

                    /** SecuritySettings awsV4Authentication */
                    awsV4Authentication?: (google.cloud.compute.v1beta.IAWSV4Signature|null);

                    /** SecuritySettings clientTlsPolicy */
                    clientTlsPolicy?: (string|null);

                    /** SecuritySettings subjectAltNames */
                    subjectAltNames?: (string[]|null);
                }

                /** Represents a SecuritySettings. */
                class SecuritySettings implements ISecuritySettings {

                    /**
                     * Constructs a new SecuritySettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISecuritySettings);

                    /** SecuritySettings authentication. */
                    public authentication?: (string|null);

                    /** SecuritySettings awsV4Authentication. */
                    public awsV4Authentication?: (google.cloud.compute.v1beta.IAWSV4Signature|null);

                    /** SecuritySettings clientTlsPolicy. */
                    public clientTlsPolicy?: (string|null);

                    /** SecuritySettings subjectAltNames. */
                    public subjectAltNames: string[];

                    /**
                     * Creates a new SecuritySettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecuritySettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISecuritySettings): google.cloud.compute.v1beta.SecuritySettings;

                    /**
                     * Encodes the specified SecuritySettings message. Does not implicitly {@link google.cloud.compute.v1beta.SecuritySettings.verify|verify} messages.
                     * @param message SecuritySettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISecuritySettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecuritySettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SecuritySettings.verify|verify} messages.
                     * @param message SecuritySettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISecuritySettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecuritySettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecuritySettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SecuritySettings;

                    /**
                     * Decodes a SecuritySettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecuritySettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SecuritySettings;

                    /**
                     * Verifies a SecuritySettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SecuritySettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecuritySettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SecuritySettings;

                    /**
                     * Creates a plain object from a SecuritySettings message. Also converts values to other types if specified.
                     * @param message SecuritySettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SecuritySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecuritySettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecuritySettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SendDiagnosticInterruptInstanceRequest. */
                interface ISendDiagnosticInterruptInstanceRequest {

                    /** SendDiagnosticInterruptInstanceRequest instance */
                    instance?: (string|null);

                    /** SendDiagnosticInterruptInstanceRequest project */
                    project?: (string|null);

                    /** SendDiagnosticInterruptInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SendDiagnosticInterruptInstanceRequest. */
                class SendDiagnosticInterruptInstanceRequest implements ISendDiagnosticInterruptInstanceRequest {

                    /**
                     * Constructs a new SendDiagnosticInterruptInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest);

                    /** SendDiagnosticInterruptInstanceRequest instance. */
                    public instance: string;

                    /** SendDiagnosticInterruptInstanceRequest project. */
                    public project: string;

                    /** SendDiagnosticInterruptInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SendDiagnosticInterruptInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SendDiagnosticInterruptInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest): google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceRequest;

                    /**
                     * Encodes the specified SendDiagnosticInterruptInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceRequest.verify|verify} messages.
                     * @param message SendDiagnosticInterruptInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SendDiagnosticInterruptInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceRequest.verify|verify} messages.
                     * @param message SendDiagnosticInterruptInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SendDiagnosticInterruptInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SendDiagnosticInterruptInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceRequest;

                    /**
                     * Decodes a SendDiagnosticInterruptInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SendDiagnosticInterruptInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceRequest;

                    /**
                     * Verifies a SendDiagnosticInterruptInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SendDiagnosticInterruptInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SendDiagnosticInterruptInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceRequest;

                    /**
                     * Creates a plain object from a SendDiagnosticInterruptInstanceRequest message. Also converts values to other types if specified.
                     * @param message SendDiagnosticInterruptInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SendDiagnosticInterruptInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SendDiagnosticInterruptInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SendDiagnosticInterruptInstanceResponse. */
                interface ISendDiagnosticInterruptInstanceResponse {
                }

                /** Represents a SendDiagnosticInterruptInstanceResponse. */
                class SendDiagnosticInterruptInstanceResponse implements ISendDiagnosticInterruptInstanceResponse {

                    /**
                     * Constructs a new SendDiagnosticInterruptInstanceResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceResponse);

                    /**
                     * Creates a new SendDiagnosticInterruptInstanceResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SendDiagnosticInterruptInstanceResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceResponse): google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse;

                    /**
                     * Encodes the specified SendDiagnosticInterruptInstanceResponse message. Does not implicitly {@link google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse.verify|verify} messages.
                     * @param message SendDiagnosticInterruptInstanceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SendDiagnosticInterruptInstanceResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse.verify|verify} messages.
                     * @param message SendDiagnosticInterruptInstanceResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SendDiagnosticInterruptInstanceResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SendDiagnosticInterruptInstanceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse;

                    /**
                     * Decodes a SendDiagnosticInterruptInstanceResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SendDiagnosticInterruptInstanceResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse;

                    /**
                     * Verifies a SendDiagnosticInterruptInstanceResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SendDiagnosticInterruptInstanceResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SendDiagnosticInterruptInstanceResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse;

                    /**
                     * Creates a plain object from a SendDiagnosticInterruptInstanceResponse message. Also converts values to other types if specified.
                     * @param message SendDiagnosticInterruptInstanceResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SendDiagnosticInterruptInstanceResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SendDiagnosticInterruptInstanceResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SerialPortOutput. */
                interface ISerialPortOutput {

                    /** SerialPortOutput contents */
                    contents?: (string|null);

                    /** SerialPortOutput kind */
                    kind?: (string|null);

                    /** SerialPortOutput next */
                    next?: (number|Long|string|null);

                    /** SerialPortOutput selfLink */
                    selfLink?: (string|null);

                    /** SerialPortOutput start */
                    start?: (number|Long|string|null);
                }

                /** Represents a SerialPortOutput. */
                class SerialPortOutput implements ISerialPortOutput {

                    /**
                     * Constructs a new SerialPortOutput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISerialPortOutput);

                    /** SerialPortOutput contents. */
                    public contents?: (string|null);

                    /** SerialPortOutput kind. */
                    public kind?: (string|null);

                    /** SerialPortOutput next. */
                    public next?: (number|Long|string|null);

                    /** SerialPortOutput selfLink. */
                    public selfLink?: (string|null);

                    /** SerialPortOutput start. */
                    public start?: (number|Long|string|null);

                    /**
                     * Creates a new SerialPortOutput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SerialPortOutput instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISerialPortOutput): google.cloud.compute.v1beta.SerialPortOutput;

                    /**
                     * Encodes the specified SerialPortOutput message. Does not implicitly {@link google.cloud.compute.v1beta.SerialPortOutput.verify|verify} messages.
                     * @param message SerialPortOutput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISerialPortOutput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SerialPortOutput message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SerialPortOutput.verify|verify} messages.
                     * @param message SerialPortOutput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISerialPortOutput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SerialPortOutput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SerialPortOutput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SerialPortOutput;

                    /**
                     * Decodes a SerialPortOutput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SerialPortOutput
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SerialPortOutput;

                    /**
                     * Verifies a SerialPortOutput message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SerialPortOutput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SerialPortOutput
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SerialPortOutput;

                    /**
                     * Creates a plain object from a SerialPortOutput message. Also converts values to other types if specified.
                     * @param message SerialPortOutput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SerialPortOutput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SerialPortOutput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SerialPortOutput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServerBinding. */
                interface IServerBinding {

                    /** ServerBinding type */
                    type?: (string|null);
                }

                /** Represents a ServerBinding. */
                class ServerBinding implements IServerBinding {

                    /**
                     * Constructs a new ServerBinding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServerBinding);

                    /** ServerBinding type. */
                    public type?: (string|null);

                    /**
                     * Creates a new ServerBinding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServerBinding instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServerBinding): google.cloud.compute.v1beta.ServerBinding;

                    /**
                     * Encodes the specified ServerBinding message. Does not implicitly {@link google.cloud.compute.v1beta.ServerBinding.verify|verify} messages.
                     * @param message ServerBinding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServerBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServerBinding message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServerBinding.verify|verify} messages.
                     * @param message ServerBinding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServerBinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServerBinding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServerBinding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServerBinding;

                    /**
                     * Decodes a ServerBinding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServerBinding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServerBinding;

                    /**
                     * Verifies a ServerBinding message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServerBinding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServerBinding
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServerBinding;

                    /**
                     * Creates a plain object from a ServerBinding message. Also converts values to other types if specified.
                     * @param message ServerBinding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServerBinding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServerBinding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServerBinding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ServerBinding {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        RESTART_NODE_ON_ANY_SERVER = 502950985,
                        RESTART_NODE_ON_MINIMAL_SERVERS = 204166495,
                        SERVER_BINDING_TYPE_UNSPECIFIED = 180825512
                    }
                }

                /** Properties of a ServiceAccount. */
                interface IServiceAccount {

                    /** ServiceAccount email */
                    email?: (string|null);

                    /** ServiceAccount scopes */
                    scopes?: (string[]|null);
                }

                /** Represents a ServiceAccount. */
                class ServiceAccount implements IServiceAccount {

                    /**
                     * Constructs a new ServiceAccount.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServiceAccount);

                    /** ServiceAccount email. */
                    public email?: (string|null);

                    /** ServiceAccount scopes. */
                    public scopes: string[];

                    /**
                     * Creates a new ServiceAccount instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAccount instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServiceAccount): google.cloud.compute.v1beta.ServiceAccount;

                    /**
                     * Encodes the specified ServiceAccount message. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAccount.verify|verify} messages.
                     * @param message ServiceAccount message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServiceAccount, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAccount message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAccount.verify|verify} messages.
                     * @param message ServiceAccount message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServiceAccount, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAccount message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAccount
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServiceAccount;

                    /**
                     * Decodes a ServiceAccount message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAccount
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServiceAccount;

                    /**
                     * Verifies a ServiceAccount message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAccount message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAccount
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServiceAccount;

                    /**
                     * Creates a plain object from a ServiceAccount message. Also converts values to other types if specified.
                     * @param message ServiceAccount
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServiceAccount, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAccount to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAccount
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServiceAttachment. */
                interface IServiceAttachment {

                    /** ServiceAttachment connectedEndpoints */
                    connectedEndpoints?: (google.cloud.compute.v1beta.IServiceAttachmentConnectedEndpoint[]|null);

                    /** ServiceAttachment connectionPreference */
                    connectionPreference?: (string|null);

                    /** ServiceAttachment consumerAcceptLists */
                    consumerAcceptLists?: (google.cloud.compute.v1beta.IServiceAttachmentConsumerProjectLimit[]|null);

                    /** ServiceAttachment consumerRejectLists */
                    consumerRejectLists?: (string[]|null);

                    /** ServiceAttachment creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** ServiceAttachment description */
                    description?: (string|null);

                    /** ServiceAttachment domainNames */
                    domainNames?: (string[]|null);

                    /** ServiceAttachment enableProxyProtocol */
                    enableProxyProtocol?: (boolean|null);

                    /** ServiceAttachment fingerprint */
                    fingerprint?: (string|null);

                    /** ServiceAttachment id */
                    id?: (number|Long|string|null);

                    /** ServiceAttachment kind */
                    kind?: (string|null);

                    /** ServiceAttachment metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** ServiceAttachment name */
                    name?: (string|null);

                    /** ServiceAttachment natSubnets */
                    natSubnets?: (string[]|null);

                    /** ServiceAttachment producerForwardingRule */
                    producerForwardingRule?: (string|null);

                    /** ServiceAttachment propagatedConnectionLimit */
                    propagatedConnectionLimit?: (number|null);

                    /** ServiceAttachment pscServiceAttachmentId */
                    pscServiceAttachmentId?: (google.cloud.compute.v1beta.IUint128|null);

                    /** ServiceAttachment reconcileConnections */
                    reconcileConnections?: (boolean|null);

                    /** ServiceAttachment region */
                    region?: (string|null);

                    /** ServiceAttachment selfLink */
                    selfLink?: (string|null);

                    /** ServiceAttachment targetService */
                    targetService?: (string|null);

                    /** ServiceAttachment tunnelingConfig */
                    tunnelingConfig?: (google.cloud.compute.v1beta.IServiceAttachmentTunnelingConfig|null);
                }

                /** Represents a ServiceAttachment. */
                class ServiceAttachment implements IServiceAttachment {

                    /**
                     * Constructs a new ServiceAttachment.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServiceAttachment);

                    /** ServiceAttachment connectedEndpoints. */
                    public connectedEndpoints: google.cloud.compute.v1beta.IServiceAttachmentConnectedEndpoint[];

                    /** ServiceAttachment connectionPreference. */
                    public connectionPreference?: (string|null);

                    /** ServiceAttachment consumerAcceptLists. */
                    public consumerAcceptLists: google.cloud.compute.v1beta.IServiceAttachmentConsumerProjectLimit[];

                    /** ServiceAttachment consumerRejectLists. */
                    public consumerRejectLists: string[];

                    /** ServiceAttachment creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** ServiceAttachment description. */
                    public description?: (string|null);

                    /** ServiceAttachment domainNames. */
                    public domainNames: string[];

                    /** ServiceAttachment enableProxyProtocol. */
                    public enableProxyProtocol?: (boolean|null);

                    /** ServiceAttachment fingerprint. */
                    public fingerprint?: (string|null);

                    /** ServiceAttachment id. */
                    public id?: (number|Long|string|null);

                    /** ServiceAttachment kind. */
                    public kind?: (string|null);

                    /** ServiceAttachment metadata. */
                    public metadata: { [k: string]: string };

                    /** ServiceAttachment name. */
                    public name?: (string|null);

                    /** ServiceAttachment natSubnets. */
                    public natSubnets: string[];

                    /** ServiceAttachment producerForwardingRule. */
                    public producerForwardingRule?: (string|null);

                    /** ServiceAttachment propagatedConnectionLimit. */
                    public propagatedConnectionLimit?: (number|null);

                    /** ServiceAttachment pscServiceAttachmentId. */
                    public pscServiceAttachmentId?: (google.cloud.compute.v1beta.IUint128|null);

                    /** ServiceAttachment reconcileConnections. */
                    public reconcileConnections?: (boolean|null);

                    /** ServiceAttachment region. */
                    public region?: (string|null);

                    /** ServiceAttachment selfLink. */
                    public selfLink?: (string|null);

                    /** ServiceAttachment targetService. */
                    public targetService?: (string|null);

                    /** ServiceAttachment tunnelingConfig. */
                    public tunnelingConfig?: (google.cloud.compute.v1beta.IServiceAttachmentTunnelingConfig|null);

                    /**
                     * Creates a new ServiceAttachment instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachment instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServiceAttachment): google.cloud.compute.v1beta.ServiceAttachment;

                    /**
                     * Encodes the specified ServiceAttachment message. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachment.verify|verify} messages.
                     * @param message ServiceAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServiceAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachment message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachment.verify|verify} messages.
                     * @param message ServiceAttachment message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServiceAttachment, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachment message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServiceAttachment;

                    /**
                     * Decodes a ServiceAttachment message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachment
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServiceAttachment;

                    /**
                     * Verifies a ServiceAttachment message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachment message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachment
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServiceAttachment;

                    /**
                     * Creates a plain object from a ServiceAttachment message. Also converts values to other types if specified.
                     * @param message ServiceAttachment
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServiceAttachment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachment to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachment
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ServiceAttachment {

                    /** ConnectionPreference enum. */
                    enum ConnectionPreference {
                        UNDEFINED_CONNECTION_PREFERENCE = 0,
                        ACCEPT_AUTOMATIC = 75250580,
                        ACCEPT_MANUAL = 373061341,
                        CONNECTION_PREFERENCE_UNSPECIFIED = 34590772
                    }
                }

                /** Properties of a ServiceAttachmentAggregatedList. */
                interface IServiceAttachmentAggregatedList {

                    /** ServiceAttachmentAggregatedList id */
                    id?: (string|null);

                    /** ServiceAttachmentAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IServiceAttachmentsScopedList }|null);

                    /** ServiceAttachmentAggregatedList kind */
                    kind?: (string|null);

                    /** ServiceAttachmentAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ServiceAttachmentAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** ServiceAttachmentAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** ServiceAttachmentAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ServiceAttachmentAggregatedList. */
                class ServiceAttachmentAggregatedList implements IServiceAttachmentAggregatedList {

                    /**
                     * Constructs a new ServiceAttachmentAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServiceAttachmentAggregatedList);

                    /** ServiceAttachmentAggregatedList id. */
                    public id?: (string|null);

                    /** ServiceAttachmentAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IServiceAttachmentsScopedList };

                    /** ServiceAttachmentAggregatedList kind. */
                    public kind?: (string|null);

                    /** ServiceAttachmentAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ServiceAttachmentAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** ServiceAttachmentAggregatedList unreachables. */
                    public unreachables: string[];

                    /** ServiceAttachmentAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ServiceAttachmentAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServiceAttachmentAggregatedList): google.cloud.compute.v1beta.ServiceAttachmentAggregatedList;

                    /**
                     * Encodes the specified ServiceAttachmentAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentAggregatedList.verify|verify} messages.
                     * @param message ServiceAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServiceAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentAggregatedList.verify|verify} messages.
                     * @param message ServiceAttachmentAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServiceAttachmentAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServiceAttachmentAggregatedList;

                    /**
                     * Decodes a ServiceAttachmentAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServiceAttachmentAggregatedList;

                    /**
                     * Verifies a ServiceAttachmentAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServiceAttachmentAggregatedList;

                    /**
                     * Creates a plain object from a ServiceAttachmentAggregatedList message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServiceAttachmentAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServiceAttachmentConnectedEndpoint. */
                interface IServiceAttachmentConnectedEndpoint {

                    /** ServiceAttachmentConnectedEndpoint consumerNetwork */
                    consumerNetwork?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint endpoint */
                    endpoint?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint endpointWithId */
                    endpointWithId?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint natIps */
                    natIps?: (string[]|null);

                    /** ServiceAttachmentConnectedEndpoint propagatedConnectionCount */
                    propagatedConnectionCount?: (number|null);

                    /** ServiceAttachmentConnectedEndpoint pscConnectionId */
                    pscConnectionId?: (number|Long|string|null);

                    /** ServiceAttachmentConnectedEndpoint status */
                    status?: (string|null);
                }

                /** Represents a ServiceAttachmentConnectedEndpoint. */
                class ServiceAttachmentConnectedEndpoint implements IServiceAttachmentConnectedEndpoint {

                    /**
                     * Constructs a new ServiceAttachmentConnectedEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServiceAttachmentConnectedEndpoint);

                    /** ServiceAttachmentConnectedEndpoint consumerNetwork. */
                    public consumerNetwork?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint endpoint. */
                    public endpoint?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint endpointWithId. */
                    public endpointWithId?: (string|null);

                    /** ServiceAttachmentConnectedEndpoint natIps. */
                    public natIps: string[];

                    /** ServiceAttachmentConnectedEndpoint propagatedConnectionCount. */
                    public propagatedConnectionCount?: (number|null);

                    /** ServiceAttachmentConnectedEndpoint pscConnectionId. */
                    public pscConnectionId?: (number|Long|string|null);

                    /** ServiceAttachmentConnectedEndpoint status. */
                    public status?: (string|null);

                    /**
                     * Creates a new ServiceAttachmentConnectedEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentConnectedEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServiceAttachmentConnectedEndpoint): google.cloud.compute.v1beta.ServiceAttachmentConnectedEndpoint;

                    /**
                     * Encodes the specified ServiceAttachmentConnectedEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentConnectedEndpoint.verify|verify} messages.
                     * @param message ServiceAttachmentConnectedEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServiceAttachmentConnectedEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentConnectedEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentConnectedEndpoint.verify|verify} messages.
                     * @param message ServiceAttachmentConnectedEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServiceAttachmentConnectedEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentConnectedEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentConnectedEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServiceAttachmentConnectedEndpoint;

                    /**
                     * Decodes a ServiceAttachmentConnectedEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentConnectedEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServiceAttachmentConnectedEndpoint;

                    /**
                     * Verifies a ServiceAttachmentConnectedEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentConnectedEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentConnectedEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServiceAttachmentConnectedEndpoint;

                    /**
                     * Creates a plain object from a ServiceAttachmentConnectedEndpoint message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentConnectedEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServiceAttachmentConnectedEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentConnectedEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentConnectedEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ServiceAttachmentConnectedEndpoint {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACCEPTED = 246714279,
                        CLOSED = 380163436,
                        NEEDS_ATTENTION = 344491452,
                        PENDING = 35394935,
                        REJECTED = 174130302,
                        STATUS_UNSPECIFIED = 42133066
                    }
                }

                /** Properties of a ServiceAttachmentConsumerProjectLimit. */
                interface IServiceAttachmentConsumerProjectLimit {

                    /** ServiceAttachmentConsumerProjectLimit connectionLimit */
                    connectionLimit?: (number|null);

                    /** ServiceAttachmentConsumerProjectLimit endpointUrl */
                    endpointUrl?: (string|null);

                    /** ServiceAttachmentConsumerProjectLimit networkUrl */
                    networkUrl?: (string|null);

                    /** ServiceAttachmentConsumerProjectLimit projectIdOrNum */
                    projectIdOrNum?: (string|null);
                }

                /** Represents a ServiceAttachmentConsumerProjectLimit. */
                class ServiceAttachmentConsumerProjectLimit implements IServiceAttachmentConsumerProjectLimit {

                    /**
                     * Constructs a new ServiceAttachmentConsumerProjectLimit.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServiceAttachmentConsumerProjectLimit);

                    /** ServiceAttachmentConsumerProjectLimit connectionLimit. */
                    public connectionLimit?: (number|null);

                    /** ServiceAttachmentConsumerProjectLimit endpointUrl. */
                    public endpointUrl?: (string|null);

                    /** ServiceAttachmentConsumerProjectLimit networkUrl. */
                    public networkUrl?: (string|null);

                    /** ServiceAttachmentConsumerProjectLimit projectIdOrNum. */
                    public projectIdOrNum?: (string|null);

                    /**
                     * Creates a new ServiceAttachmentConsumerProjectLimit instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentConsumerProjectLimit instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServiceAttachmentConsumerProjectLimit): google.cloud.compute.v1beta.ServiceAttachmentConsumerProjectLimit;

                    /**
                     * Encodes the specified ServiceAttachmentConsumerProjectLimit message. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentConsumerProjectLimit.verify|verify} messages.
                     * @param message ServiceAttachmentConsumerProjectLimit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServiceAttachmentConsumerProjectLimit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentConsumerProjectLimit message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentConsumerProjectLimit.verify|verify} messages.
                     * @param message ServiceAttachmentConsumerProjectLimit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServiceAttachmentConsumerProjectLimit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentConsumerProjectLimit message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentConsumerProjectLimit
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServiceAttachmentConsumerProjectLimit;

                    /**
                     * Decodes a ServiceAttachmentConsumerProjectLimit message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentConsumerProjectLimit
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServiceAttachmentConsumerProjectLimit;

                    /**
                     * Verifies a ServiceAttachmentConsumerProjectLimit message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentConsumerProjectLimit message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentConsumerProjectLimit
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServiceAttachmentConsumerProjectLimit;

                    /**
                     * Creates a plain object from a ServiceAttachmentConsumerProjectLimit message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentConsumerProjectLimit
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServiceAttachmentConsumerProjectLimit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentConsumerProjectLimit to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentConsumerProjectLimit
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServiceAttachmentList. */
                interface IServiceAttachmentList {

                    /** ServiceAttachmentList id */
                    id?: (string|null);

                    /** ServiceAttachmentList items */
                    items?: (google.cloud.compute.v1beta.IServiceAttachment[]|null);

                    /** ServiceAttachmentList kind */
                    kind?: (string|null);

                    /** ServiceAttachmentList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ServiceAttachmentList selfLink */
                    selfLink?: (string|null);

                    /** ServiceAttachmentList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ServiceAttachmentList. */
                class ServiceAttachmentList implements IServiceAttachmentList {

                    /**
                     * Constructs a new ServiceAttachmentList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServiceAttachmentList);

                    /** ServiceAttachmentList id. */
                    public id?: (string|null);

                    /** ServiceAttachmentList items. */
                    public items: google.cloud.compute.v1beta.IServiceAttachment[];

                    /** ServiceAttachmentList kind. */
                    public kind?: (string|null);

                    /** ServiceAttachmentList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ServiceAttachmentList selfLink. */
                    public selfLink?: (string|null);

                    /** ServiceAttachmentList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ServiceAttachmentList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServiceAttachmentList): google.cloud.compute.v1beta.ServiceAttachmentList;

                    /**
                     * Encodes the specified ServiceAttachmentList message. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentList.verify|verify} messages.
                     * @param message ServiceAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServiceAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentList.verify|verify} messages.
                     * @param message ServiceAttachmentList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServiceAttachmentList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServiceAttachmentList;

                    /**
                     * Decodes a ServiceAttachmentList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServiceAttachmentList;

                    /**
                     * Verifies a ServiceAttachmentList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServiceAttachmentList;

                    /**
                     * Creates a plain object from a ServiceAttachmentList message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServiceAttachmentList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ServiceAttachmentTunnelingConfig. */
                interface IServiceAttachmentTunnelingConfig {

                    /** ServiceAttachmentTunnelingConfig encapsulationProfile */
                    encapsulationProfile?: (string|null);

                    /** ServiceAttachmentTunnelingConfig routingMode */
                    routingMode?: (string|null);
                }

                /** Represents a ServiceAttachmentTunnelingConfig. */
                class ServiceAttachmentTunnelingConfig implements IServiceAttachmentTunnelingConfig {

                    /**
                     * Constructs a new ServiceAttachmentTunnelingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServiceAttachmentTunnelingConfig);

                    /** ServiceAttachmentTunnelingConfig encapsulationProfile. */
                    public encapsulationProfile?: (string|null);

                    /** ServiceAttachmentTunnelingConfig routingMode. */
                    public routingMode?: (string|null);

                    /**
                     * Creates a new ServiceAttachmentTunnelingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentTunnelingConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServiceAttachmentTunnelingConfig): google.cloud.compute.v1beta.ServiceAttachmentTunnelingConfig;

                    /**
                     * Encodes the specified ServiceAttachmentTunnelingConfig message. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentTunnelingConfig.verify|verify} messages.
                     * @param message ServiceAttachmentTunnelingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServiceAttachmentTunnelingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentTunnelingConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentTunnelingConfig.verify|verify} messages.
                     * @param message ServiceAttachmentTunnelingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServiceAttachmentTunnelingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentTunnelingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentTunnelingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServiceAttachmentTunnelingConfig;

                    /**
                     * Decodes a ServiceAttachmentTunnelingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentTunnelingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServiceAttachmentTunnelingConfig;

                    /**
                     * Verifies a ServiceAttachmentTunnelingConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentTunnelingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentTunnelingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServiceAttachmentTunnelingConfig;

                    /**
                     * Creates a plain object from a ServiceAttachmentTunnelingConfig message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentTunnelingConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServiceAttachmentTunnelingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentTunnelingConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentTunnelingConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ServiceAttachmentTunnelingConfig {

                    /** EncapsulationProfile enum. */
                    enum EncapsulationProfile {
                        UNDEFINED_ENCAPSULATION_PROFILE = 0,
                        GENEVE_SECURITY_V1 = 374039743,
                        UNSPECIFIED_ENCAPSULATION_PROFILE = 368782710
                    }

                    /** RoutingMode enum. */
                    enum RoutingMode {
                        UNDEFINED_ROUTING_MODE = 0,
                        PACKET_INJECTION = 321485248,
                        STANDARD_ROUTING = 141399332,
                        UNSPECIFIED_ROUTING_MODE = 126139844
                    }
                }

                /** Properties of a ServiceAttachmentsScopedList. */
                interface IServiceAttachmentsScopedList {

                    /** ServiceAttachmentsScopedList serviceAttachments */
                    serviceAttachments?: (google.cloud.compute.v1beta.IServiceAttachment[]|null);

                    /** ServiceAttachmentsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ServiceAttachmentsScopedList. */
                class ServiceAttachmentsScopedList implements IServiceAttachmentsScopedList {

                    /**
                     * Constructs a new ServiceAttachmentsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IServiceAttachmentsScopedList);

                    /** ServiceAttachmentsScopedList serviceAttachments. */
                    public serviceAttachments: google.cloud.compute.v1beta.IServiceAttachment[];

                    /** ServiceAttachmentsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ServiceAttachmentsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ServiceAttachmentsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IServiceAttachmentsScopedList): google.cloud.compute.v1beta.ServiceAttachmentsScopedList;

                    /**
                     * Encodes the specified ServiceAttachmentsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentsScopedList.verify|verify} messages.
                     * @param message ServiceAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IServiceAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ServiceAttachmentsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ServiceAttachmentsScopedList.verify|verify} messages.
                     * @param message ServiceAttachmentsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IServiceAttachmentsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ServiceAttachmentsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ServiceAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ServiceAttachmentsScopedList;

                    /**
                     * Decodes a ServiceAttachmentsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ServiceAttachmentsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ServiceAttachmentsScopedList;

                    /**
                     * Verifies a ServiceAttachmentsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ServiceAttachmentsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ServiceAttachmentsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ServiceAttachmentsScopedList;

                    /**
                     * Creates a plain object from a ServiceAttachmentsScopedList message. Also converts values to other types if specified.
                     * @param message ServiceAttachmentsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ServiceAttachmentsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ServiceAttachmentsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ServiceAttachmentsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetAutoHealingPoliciesInstanceGroupManagerRequest. */
                interface ISetAutoHealingPoliciesInstanceGroupManagerRequest {

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest instanceGroupManagersSetAutoHealingRequestResource */
                    instanceGroupManagersSetAutoHealingRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersSetAutoHealingRequest|null);

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetAutoHealingPoliciesInstanceGroupManagerRequest. */
                class SetAutoHealingPoliciesInstanceGroupManagerRequest implements ISetAutoHealingPoliciesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetAutoHealingPoliciesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetAutoHealingPoliciesInstanceGroupManagerRequest);

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest instanceGroupManagersSetAutoHealingRequestResource. */
                    public instanceGroupManagersSetAutoHealingRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersSetAutoHealingRequest|null);

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** SetAutoHealingPoliciesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetAutoHealingPoliciesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetAutoHealingPoliciesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetAutoHealingPoliciesInstanceGroupManagerRequest): google.cloud.compute.v1beta.SetAutoHealingPoliciesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetAutoHealingPoliciesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetAutoHealingPoliciesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetAutoHealingPoliciesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetAutoHealingPoliciesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetAutoHealingPoliciesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetAutoHealingPoliciesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetAutoHealingPoliciesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetAutoHealingPoliciesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetAutoHealingPoliciesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetAutoHealingPoliciesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetAutoHealingPoliciesInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetAutoHealingPoliciesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetAutoHealingPoliciesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetAutoHealingPoliciesInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetAutoHealingPoliciesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetAutoHealingPoliciesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetAutoHealingPoliciesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetAutoHealingPoliciesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetAutoHealingPoliciesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetAutoHealingPoliciesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetAutoHealingPoliciesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetAutoHealingPoliciesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetAutoHealingPoliciesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetAutoHealingPoliciesRegionInstanceGroupManagerRequest. */
                interface ISetAutoHealingPoliciesRegionInstanceGroupManagerRequest {

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetAutoHealingRequestResource */
                    regionInstanceGroupManagersSetAutoHealingRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetAutoHealingRequest|null);

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetAutoHealingPoliciesRegionInstanceGroupManagerRequest. */
                class SetAutoHealingPoliciesRegionInstanceGroupManagerRequest implements ISetAutoHealingPoliciesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetAutoHealingPoliciesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetAutoHealingPoliciesRegionInstanceGroupManagerRequest);

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetAutoHealingRequestResource. */
                    public regionInstanceGroupManagersSetAutoHealingRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetAutoHealingRequest|null);

                    /** SetAutoHealingPoliciesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetAutoHealingPoliciesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetAutoHealingPoliciesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetAutoHealingPoliciesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.SetAutoHealingPoliciesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetAutoHealingPoliciesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetAutoHealingPoliciesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetAutoHealingPoliciesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetAutoHealingPoliciesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetAutoHealingPoliciesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetAutoHealingPoliciesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetAutoHealingPoliciesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetAutoHealingPoliciesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetAutoHealingPoliciesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetAutoHealingPoliciesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetAutoHealingPoliciesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetAutoHealingPoliciesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetAutoHealingPoliciesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetAutoHealingPoliciesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetBackendServiceTargetSslProxyRequest. */
                interface ISetBackendServiceTargetSslProxyRequest {

                    /** SetBackendServiceTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetBackendServiceTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetBackendServiceTargetSslProxyRequest targetSslProxiesSetBackendServiceRequestResource */
                    targetSslProxiesSetBackendServiceRequestResource?: (google.cloud.compute.v1beta.ITargetSslProxiesSetBackendServiceRequest|null);

                    /** SetBackendServiceTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetBackendServiceTargetSslProxyRequest. */
                class SetBackendServiceTargetSslProxyRequest implements ISetBackendServiceTargetSslProxyRequest {

                    /**
                     * Constructs a new SetBackendServiceTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetBackendServiceTargetSslProxyRequest);

                    /** SetBackendServiceTargetSslProxyRequest project. */
                    public project: string;

                    /** SetBackendServiceTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetBackendServiceTargetSslProxyRequest targetSslProxiesSetBackendServiceRequestResource. */
                    public targetSslProxiesSetBackendServiceRequestResource?: (google.cloud.compute.v1beta.ITargetSslProxiesSetBackendServiceRequest|null);

                    /** SetBackendServiceTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetBackendServiceTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetBackendServiceTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetBackendServiceTargetSslProxyRequest): google.cloud.compute.v1beta.SetBackendServiceTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetBackendServiceTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetBackendServiceTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetBackendServiceTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetBackendServiceTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetBackendServiceTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetBackendServiceTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetBackendServiceTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetBackendServiceTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetBackendServiceTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetBackendServiceTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetBackendServiceTargetSslProxyRequest;

                    /**
                     * Decodes a SetBackendServiceTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetBackendServiceTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetBackendServiceTargetSslProxyRequest;

                    /**
                     * Verifies a SetBackendServiceTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetBackendServiceTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetBackendServiceTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetBackendServiceTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetBackendServiceTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetBackendServiceTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetBackendServiceTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetBackendServiceTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetBackendServiceTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetBackendServiceTargetTcpProxyRequest. */
                interface ISetBackendServiceTargetTcpProxyRequest {

                    /** SetBackendServiceTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** SetBackendServiceTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetBackendServiceTargetTcpProxyRequest targetTcpProxiesSetBackendServiceRequestResource */
                    targetTcpProxiesSetBackendServiceRequestResource?: (google.cloud.compute.v1beta.ITargetTcpProxiesSetBackendServiceRequest|null);

                    /** SetBackendServiceTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a SetBackendServiceTargetTcpProxyRequest. */
                class SetBackendServiceTargetTcpProxyRequest implements ISetBackendServiceTargetTcpProxyRequest {

                    /**
                     * Constructs a new SetBackendServiceTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetBackendServiceTargetTcpProxyRequest);

                    /** SetBackendServiceTargetTcpProxyRequest project. */
                    public project: string;

                    /** SetBackendServiceTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetBackendServiceTargetTcpProxyRequest targetTcpProxiesSetBackendServiceRequestResource. */
                    public targetTcpProxiesSetBackendServiceRequestResource?: (google.cloud.compute.v1beta.ITargetTcpProxiesSetBackendServiceRequest|null);

                    /** SetBackendServiceTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new SetBackendServiceTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetBackendServiceTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetBackendServiceTargetTcpProxyRequest): google.cloud.compute.v1beta.SetBackendServiceTargetTcpProxyRequest;

                    /**
                     * Encodes the specified SetBackendServiceTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetBackendServiceTargetTcpProxyRequest.verify|verify} messages.
                     * @param message SetBackendServiceTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetBackendServiceTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetBackendServiceTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetBackendServiceTargetTcpProxyRequest.verify|verify} messages.
                     * @param message SetBackendServiceTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetBackendServiceTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetBackendServiceTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetBackendServiceTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetBackendServiceTargetTcpProxyRequest;

                    /**
                     * Decodes a SetBackendServiceTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetBackendServiceTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetBackendServiceTargetTcpProxyRequest;

                    /**
                     * Verifies a SetBackendServiceTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetBackendServiceTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetBackendServiceTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetBackendServiceTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a SetBackendServiceTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message SetBackendServiceTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetBackendServiceTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetBackendServiceTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetBackendServiceTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetBackupTargetPoolRequest. */
                interface ISetBackupTargetPoolRequest {

                    /** SetBackupTargetPoolRequest failoverRatio */
                    failoverRatio?: (number|null);

                    /** SetBackupTargetPoolRequest project */
                    project?: (string|null);

                    /** SetBackupTargetPoolRequest region */
                    region?: (string|null);

                    /** SetBackupTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** SetBackupTargetPoolRequest targetPool */
                    targetPool?: (string|null);

                    /** SetBackupTargetPoolRequest targetReferenceResource */
                    targetReferenceResource?: (google.cloud.compute.v1beta.ITargetReference|null);
                }

                /** Represents a SetBackupTargetPoolRequest. */
                class SetBackupTargetPoolRequest implements ISetBackupTargetPoolRequest {

                    /**
                     * Constructs a new SetBackupTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetBackupTargetPoolRequest);

                    /** SetBackupTargetPoolRequest failoverRatio. */
                    public failoverRatio?: (number|null);

                    /** SetBackupTargetPoolRequest project. */
                    public project: string;

                    /** SetBackupTargetPoolRequest region. */
                    public region: string;

                    /** SetBackupTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** SetBackupTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /** SetBackupTargetPoolRequest targetReferenceResource. */
                    public targetReferenceResource?: (google.cloud.compute.v1beta.ITargetReference|null);

                    /**
                     * Creates a new SetBackupTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetBackupTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetBackupTargetPoolRequest): google.cloud.compute.v1beta.SetBackupTargetPoolRequest;

                    /**
                     * Encodes the specified SetBackupTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetBackupTargetPoolRequest.verify|verify} messages.
                     * @param message SetBackupTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetBackupTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetBackupTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetBackupTargetPoolRequest.verify|verify} messages.
                     * @param message SetBackupTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetBackupTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetBackupTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetBackupTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetBackupTargetPoolRequest;

                    /**
                     * Decodes a SetBackupTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetBackupTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetBackupTargetPoolRequest;

                    /**
                     * Verifies a SetBackupTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetBackupTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetBackupTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetBackupTargetPoolRequest;

                    /**
                     * Creates a plain object from a SetBackupTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message SetBackupTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetBackupTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetBackupTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetBackupTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCertificateMapTargetHttpsProxyRequest. */
                interface ISetCertificateMapTargetHttpsProxyRequest {

                    /** SetCertificateMapTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetCertificateMapTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetCertificateMapTargetHttpsProxyRequest targetHttpsProxiesSetCertificateMapRequestResource */
                    targetHttpsProxiesSetCertificateMapRequestResource?: (google.cloud.compute.v1beta.ITargetHttpsProxiesSetCertificateMapRequest|null);

                    /** SetCertificateMapTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetCertificateMapTargetHttpsProxyRequest. */
                class SetCertificateMapTargetHttpsProxyRequest implements ISetCertificateMapTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetCertificateMapTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetCertificateMapTargetHttpsProxyRequest);

                    /** SetCertificateMapTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetCertificateMapTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetCertificateMapTargetHttpsProxyRequest targetHttpsProxiesSetCertificateMapRequestResource. */
                    public targetHttpsProxiesSetCertificateMapRequestResource?: (google.cloud.compute.v1beta.ITargetHttpsProxiesSetCertificateMapRequest|null);

                    /** SetCertificateMapTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetCertificateMapTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCertificateMapTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetCertificateMapTargetHttpsProxyRequest): google.cloud.compute.v1beta.SetCertificateMapTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetCertificateMapTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetCertificateMapTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetCertificateMapTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetCertificateMapTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCertificateMapTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetCertificateMapTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetCertificateMapTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetCertificateMapTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCertificateMapTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCertificateMapTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetCertificateMapTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetCertificateMapTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCertificateMapTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetCertificateMapTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetCertificateMapTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCertificateMapTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCertificateMapTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetCertificateMapTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetCertificateMapTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetCertificateMapTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetCertificateMapTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCertificateMapTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCertificateMapTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCertificateMapTargetSslProxyRequest. */
                interface ISetCertificateMapTargetSslProxyRequest {

                    /** SetCertificateMapTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetCertificateMapTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetCertificateMapTargetSslProxyRequest targetSslProxiesSetCertificateMapRequestResource */
                    targetSslProxiesSetCertificateMapRequestResource?: (google.cloud.compute.v1beta.ITargetSslProxiesSetCertificateMapRequest|null);

                    /** SetCertificateMapTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetCertificateMapTargetSslProxyRequest. */
                class SetCertificateMapTargetSslProxyRequest implements ISetCertificateMapTargetSslProxyRequest {

                    /**
                     * Constructs a new SetCertificateMapTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetCertificateMapTargetSslProxyRequest);

                    /** SetCertificateMapTargetSslProxyRequest project. */
                    public project: string;

                    /** SetCertificateMapTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetCertificateMapTargetSslProxyRequest targetSslProxiesSetCertificateMapRequestResource. */
                    public targetSslProxiesSetCertificateMapRequestResource?: (google.cloud.compute.v1beta.ITargetSslProxiesSetCertificateMapRequest|null);

                    /** SetCertificateMapTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetCertificateMapTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCertificateMapTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetCertificateMapTargetSslProxyRequest): google.cloud.compute.v1beta.SetCertificateMapTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetCertificateMapTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetCertificateMapTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetCertificateMapTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetCertificateMapTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCertificateMapTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetCertificateMapTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetCertificateMapTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetCertificateMapTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCertificateMapTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCertificateMapTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetCertificateMapTargetSslProxyRequest;

                    /**
                     * Decodes a SetCertificateMapTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCertificateMapTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetCertificateMapTargetSslProxyRequest;

                    /**
                     * Verifies a SetCertificateMapTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCertificateMapTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCertificateMapTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetCertificateMapTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetCertificateMapTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetCertificateMapTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetCertificateMapTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCertificateMapTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCertificateMapTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCloudArmorTierProjectRequest. */
                interface ISetCloudArmorTierProjectRequest {

                    /** SetCloudArmorTierProjectRequest project */
                    project?: (string|null);

                    /** SetCloudArmorTierProjectRequest projectsSetCloudArmorTierRequestResource */
                    projectsSetCloudArmorTierRequestResource?: (google.cloud.compute.v1beta.IProjectsSetCloudArmorTierRequest|null);

                    /** SetCloudArmorTierProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetCloudArmorTierProjectRequest. */
                class SetCloudArmorTierProjectRequest implements ISetCloudArmorTierProjectRequest {

                    /**
                     * Constructs a new SetCloudArmorTierProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetCloudArmorTierProjectRequest);

                    /** SetCloudArmorTierProjectRequest project. */
                    public project: string;

                    /** SetCloudArmorTierProjectRequest projectsSetCloudArmorTierRequestResource. */
                    public projectsSetCloudArmorTierRequestResource?: (google.cloud.compute.v1beta.IProjectsSetCloudArmorTierRequest|null);

                    /** SetCloudArmorTierProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetCloudArmorTierProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCloudArmorTierProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetCloudArmorTierProjectRequest): google.cloud.compute.v1beta.SetCloudArmorTierProjectRequest;

                    /**
                     * Encodes the specified SetCloudArmorTierProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetCloudArmorTierProjectRequest.verify|verify} messages.
                     * @param message SetCloudArmorTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetCloudArmorTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCloudArmorTierProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetCloudArmorTierProjectRequest.verify|verify} messages.
                     * @param message SetCloudArmorTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetCloudArmorTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCloudArmorTierProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCloudArmorTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetCloudArmorTierProjectRequest;

                    /**
                     * Decodes a SetCloudArmorTierProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCloudArmorTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetCloudArmorTierProjectRequest;

                    /**
                     * Verifies a SetCloudArmorTierProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCloudArmorTierProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCloudArmorTierProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetCloudArmorTierProjectRequest;

                    /**
                     * Creates a plain object from a SetCloudArmorTierProjectRequest message. Also converts values to other types if specified.
                     * @param message SetCloudArmorTierProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetCloudArmorTierProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCloudArmorTierProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCloudArmorTierProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCommonInstanceMetadataOperationMetadata. */
                interface ISetCommonInstanceMetadataOperationMetadata {

                    /** SetCommonInstanceMetadataOperationMetadata clientOperationId */
                    clientOperationId?: (string|null);

                    /** SetCommonInstanceMetadataOperationMetadata perLocationOperations */
                    perLocationOperations?: ({ [k: string]: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo }|null);
                }

                /** Represents a SetCommonInstanceMetadataOperationMetadata. */
                class SetCommonInstanceMetadataOperationMetadata implements ISetCommonInstanceMetadataOperationMetadata {

                    /**
                     * Constructs a new SetCommonInstanceMetadataOperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadata);

                    /** SetCommonInstanceMetadataOperationMetadata clientOperationId. */
                    public clientOperationId?: (string|null);

                    /** SetCommonInstanceMetadataOperationMetadata perLocationOperations. */
                    public perLocationOperations: { [k: string]: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo };

                    /**
                     * Creates a new SetCommonInstanceMetadataOperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCommonInstanceMetadataOperationMetadata instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadata): google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadata;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataOperationMetadata message. Does not implicitly {@link google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadata.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataOperationMetadata message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadata.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataOperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCommonInstanceMetadataOperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCommonInstanceMetadataOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadata;

                    /**
                     * Decodes a SetCommonInstanceMetadataOperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCommonInstanceMetadataOperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadata;

                    /**
                     * Verifies a SetCommonInstanceMetadataOperationMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCommonInstanceMetadataOperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCommonInstanceMetadataOperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadata;

                    /**
                     * Creates a plain object from a SetCommonInstanceMetadataOperationMetadata message. Also converts values to other types if specified.
                     * @param message SetCommonInstanceMetadataOperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCommonInstanceMetadataOperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCommonInstanceMetadataOperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo. */
                interface ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo {

                    /** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo error */
                    error?: (google.cloud.compute.v1beta.IStatus|null);

                    /** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo state */
                    state?: (string|null);
                }

                /** Represents a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo. */
                class SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo implements ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo {

                    /**
                     * Constructs a new SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo);

                    /** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo error. */
                    public error?: (google.cloud.compute.v1beta.IStatus|null);

                    /** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo state. */
                    public state?: (string|null);

                    /**
                     * Creates a new SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo): google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message. Does not implicitly {@link google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo;

                    /**
                     * Decodes a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo;

                    /**
                     * Verifies a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo;

                    /**
                     * Creates a plain object from a SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo message. Also converts values to other types if specified.
                     * @param message SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ABANDONED = 81797556,
                        DONE = 2104194,
                        FAILED = 455706685,
                        PROPAGATED = 507550299,
                        PROPAGATING = 164807046,
                        UNSPECIFIED = 526786327
                    }
                }

                /** Properties of a SetCommonInstanceMetadataProjectRequest. */
                interface ISetCommonInstanceMetadataProjectRequest {

                    /** SetCommonInstanceMetadataProjectRequest metadataResource */
                    metadataResource?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** SetCommonInstanceMetadataProjectRequest project */
                    project?: (string|null);

                    /** SetCommonInstanceMetadataProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetCommonInstanceMetadataProjectRequest. */
                class SetCommonInstanceMetadataProjectRequest implements ISetCommonInstanceMetadataProjectRequest {

                    /**
                     * Constructs a new SetCommonInstanceMetadataProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetCommonInstanceMetadataProjectRequest);

                    /** SetCommonInstanceMetadataProjectRequest metadataResource. */
                    public metadataResource?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** SetCommonInstanceMetadataProjectRequest project. */
                    public project: string;

                    /** SetCommonInstanceMetadataProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetCommonInstanceMetadataProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetCommonInstanceMetadataProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetCommonInstanceMetadataProjectRequest): google.cloud.compute.v1beta.SetCommonInstanceMetadataProjectRequest;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetCommonInstanceMetadataProjectRequest.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetCommonInstanceMetadataProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetCommonInstanceMetadataProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetCommonInstanceMetadataProjectRequest.verify|verify} messages.
                     * @param message SetCommonInstanceMetadataProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetCommonInstanceMetadataProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetCommonInstanceMetadataProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetCommonInstanceMetadataProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetCommonInstanceMetadataProjectRequest;

                    /**
                     * Decodes a SetCommonInstanceMetadataProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetCommonInstanceMetadataProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetCommonInstanceMetadataProjectRequest;

                    /**
                     * Verifies a SetCommonInstanceMetadataProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetCommonInstanceMetadataProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetCommonInstanceMetadataProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetCommonInstanceMetadataProjectRequest;

                    /**
                     * Creates a plain object from a SetCommonInstanceMetadataProjectRequest message. Also converts values to other types if specified.
                     * @param message SetCommonInstanceMetadataProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetCommonInstanceMetadataProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetCommonInstanceMetadataProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetCommonInstanceMetadataProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetDefaultNetworkTierProjectRequest. */
                interface ISetDefaultNetworkTierProjectRequest {

                    /** SetDefaultNetworkTierProjectRequest project */
                    project?: (string|null);

                    /** SetDefaultNetworkTierProjectRequest projectsSetDefaultNetworkTierRequestResource */
                    projectsSetDefaultNetworkTierRequestResource?: (google.cloud.compute.v1beta.IProjectsSetDefaultNetworkTierRequest|null);

                    /** SetDefaultNetworkTierProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetDefaultNetworkTierProjectRequest. */
                class SetDefaultNetworkTierProjectRequest implements ISetDefaultNetworkTierProjectRequest {

                    /**
                     * Constructs a new SetDefaultNetworkTierProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetDefaultNetworkTierProjectRequest);

                    /** SetDefaultNetworkTierProjectRequest project. */
                    public project: string;

                    /** SetDefaultNetworkTierProjectRequest projectsSetDefaultNetworkTierRequestResource. */
                    public projectsSetDefaultNetworkTierRequestResource?: (google.cloud.compute.v1beta.IProjectsSetDefaultNetworkTierRequest|null);

                    /** SetDefaultNetworkTierProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetDefaultNetworkTierProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetDefaultNetworkTierProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetDefaultNetworkTierProjectRequest): google.cloud.compute.v1beta.SetDefaultNetworkTierProjectRequest;

                    /**
                     * Encodes the specified SetDefaultNetworkTierProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetDefaultNetworkTierProjectRequest.verify|verify} messages.
                     * @param message SetDefaultNetworkTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetDefaultNetworkTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetDefaultNetworkTierProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetDefaultNetworkTierProjectRequest.verify|verify} messages.
                     * @param message SetDefaultNetworkTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetDefaultNetworkTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetDefaultNetworkTierProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetDefaultNetworkTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetDefaultNetworkTierProjectRequest;

                    /**
                     * Decodes a SetDefaultNetworkTierProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetDefaultNetworkTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetDefaultNetworkTierProjectRequest;

                    /**
                     * Verifies a SetDefaultNetworkTierProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetDefaultNetworkTierProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetDefaultNetworkTierProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetDefaultNetworkTierProjectRequest;

                    /**
                     * Creates a plain object from a SetDefaultNetworkTierProjectRequest message. Also converts values to other types if specified.
                     * @param message SetDefaultNetworkTierProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetDefaultNetworkTierProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetDefaultNetworkTierProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetDefaultNetworkTierProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetDeletionProtectionInstanceRequest. */
                interface ISetDeletionProtectionInstanceRequest {

                    /** SetDeletionProtectionInstanceRequest deletionProtection */
                    deletionProtection?: (boolean|null);

                    /** SetDeletionProtectionInstanceRequest project */
                    project?: (string|null);

                    /** SetDeletionProtectionInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetDeletionProtectionInstanceRequest resource */
                    resource?: (string|null);

                    /** SetDeletionProtectionInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetDeletionProtectionInstanceRequest. */
                class SetDeletionProtectionInstanceRequest implements ISetDeletionProtectionInstanceRequest {

                    /**
                     * Constructs a new SetDeletionProtectionInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest);

                    /** SetDeletionProtectionInstanceRequest deletionProtection. */
                    public deletionProtection?: (boolean|null);

                    /** SetDeletionProtectionInstanceRequest project. */
                    public project: string;

                    /** SetDeletionProtectionInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetDeletionProtectionInstanceRequest resource. */
                    public resource: string;

                    /** SetDeletionProtectionInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetDeletionProtectionInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetDeletionProtectionInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest): google.cloud.compute.v1beta.SetDeletionProtectionInstanceRequest;

                    /**
                     * Encodes the specified SetDeletionProtectionInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetDeletionProtectionInstanceRequest.verify|verify} messages.
                     * @param message SetDeletionProtectionInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetDeletionProtectionInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetDeletionProtectionInstanceRequest.verify|verify} messages.
                     * @param message SetDeletionProtectionInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetDeletionProtectionInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetDeletionProtectionInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetDeletionProtectionInstanceRequest;

                    /**
                     * Decodes a SetDeletionProtectionInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetDeletionProtectionInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetDeletionProtectionInstanceRequest;

                    /**
                     * Verifies a SetDeletionProtectionInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetDeletionProtectionInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetDeletionProtectionInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetDeletionProtectionInstanceRequest;

                    /**
                     * Creates a plain object from a SetDeletionProtectionInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetDeletionProtectionInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetDeletionProtectionInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetDeletionProtectionInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetDeletionProtectionInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetDiskAutoDeleteInstanceRequest. */
                interface ISetDiskAutoDeleteInstanceRequest {

                    /** SetDiskAutoDeleteInstanceRequest autoDelete */
                    autoDelete?: (boolean|null);

                    /** SetDiskAutoDeleteInstanceRequest deviceName */
                    deviceName?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest instance */
                    instance?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest project */
                    project?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetDiskAutoDeleteInstanceRequest. */
                class SetDiskAutoDeleteInstanceRequest implements ISetDiskAutoDeleteInstanceRequest {

                    /**
                     * Constructs a new SetDiskAutoDeleteInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest);

                    /** SetDiskAutoDeleteInstanceRequest autoDelete. */
                    public autoDelete: boolean;

                    /** SetDiskAutoDeleteInstanceRequest deviceName. */
                    public deviceName: string;

                    /** SetDiskAutoDeleteInstanceRequest instance. */
                    public instance: string;

                    /** SetDiskAutoDeleteInstanceRequest project. */
                    public project: string;

                    /** SetDiskAutoDeleteInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetDiskAutoDeleteInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetDiskAutoDeleteInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetDiskAutoDeleteInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest): google.cloud.compute.v1beta.SetDiskAutoDeleteInstanceRequest;

                    /**
                     * Encodes the specified SetDiskAutoDeleteInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetDiskAutoDeleteInstanceRequest.verify|verify} messages.
                     * @param message SetDiskAutoDeleteInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetDiskAutoDeleteInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetDiskAutoDeleteInstanceRequest.verify|verify} messages.
                     * @param message SetDiskAutoDeleteInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetDiskAutoDeleteInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetDiskAutoDeleteInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetDiskAutoDeleteInstanceRequest;

                    /**
                     * Decodes a SetDiskAutoDeleteInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetDiskAutoDeleteInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetDiskAutoDeleteInstanceRequest;

                    /**
                     * Verifies a SetDiskAutoDeleteInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetDiskAutoDeleteInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetDiskAutoDeleteInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetDiskAutoDeleteInstanceRequest;

                    /**
                     * Creates a plain object from a SetDiskAutoDeleteInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetDiskAutoDeleteInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetDiskAutoDeleteInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetDiskAutoDeleteInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetDiskAutoDeleteInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetEdgeSecurityPolicyBackendBucketRequest. */
                interface ISetEdgeSecurityPolicyBackendBucketRequest {

                    /** SetEdgeSecurityPolicyBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** SetEdgeSecurityPolicyBackendBucketRequest project */
                    project?: (string|null);

                    /** SetEdgeSecurityPolicyBackendBucketRequest requestId */
                    requestId?: (string|null);

                    /** SetEdgeSecurityPolicyBackendBucketRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);
                }

                /** Represents a SetEdgeSecurityPolicyBackendBucketRequest. */
                class SetEdgeSecurityPolicyBackendBucketRequest implements ISetEdgeSecurityPolicyBackendBucketRequest {

                    /**
                     * Constructs a new SetEdgeSecurityPolicyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendBucketRequest);

                    /** SetEdgeSecurityPolicyBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** SetEdgeSecurityPolicyBackendBucketRequest project. */
                    public project: string;

                    /** SetEdgeSecurityPolicyBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /** SetEdgeSecurityPolicyBackendBucketRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);

                    /**
                     * Creates a new SetEdgeSecurityPolicyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetEdgeSecurityPolicyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendBucketRequest): google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendBucketRequest;

                    /**
                     * Encodes the specified SetEdgeSecurityPolicyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message SetEdgeSecurityPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetEdgeSecurityPolicyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message SetEdgeSecurityPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetEdgeSecurityPolicyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetEdgeSecurityPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendBucketRequest;

                    /**
                     * Decodes a SetEdgeSecurityPolicyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetEdgeSecurityPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendBucketRequest;

                    /**
                     * Verifies a SetEdgeSecurityPolicyBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetEdgeSecurityPolicyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetEdgeSecurityPolicyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendBucketRequest;

                    /**
                     * Creates a plain object from a SetEdgeSecurityPolicyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message SetEdgeSecurityPolicyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetEdgeSecurityPolicyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetEdgeSecurityPolicyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetEdgeSecurityPolicyBackendServiceRequest. */
                interface ISetEdgeSecurityPolicyBackendServiceRequest {

                    /** SetEdgeSecurityPolicyBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** SetEdgeSecurityPolicyBackendServiceRequest project */
                    project?: (string|null);

                    /** SetEdgeSecurityPolicyBackendServiceRequest requestId */
                    requestId?: (string|null);

                    /** SetEdgeSecurityPolicyBackendServiceRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);
                }

                /** Represents a SetEdgeSecurityPolicyBackendServiceRequest. */
                class SetEdgeSecurityPolicyBackendServiceRequest implements ISetEdgeSecurityPolicyBackendServiceRequest {

                    /**
                     * Constructs a new SetEdgeSecurityPolicyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendServiceRequest);

                    /** SetEdgeSecurityPolicyBackendServiceRequest backendService. */
                    public backendService: string;

                    /** SetEdgeSecurityPolicyBackendServiceRequest project. */
                    public project: string;

                    /** SetEdgeSecurityPolicyBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetEdgeSecurityPolicyBackendServiceRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);

                    /**
                     * Creates a new SetEdgeSecurityPolicyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetEdgeSecurityPolicyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendServiceRequest): google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendServiceRequest;

                    /**
                     * Encodes the specified SetEdgeSecurityPolicyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetEdgeSecurityPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetEdgeSecurityPolicyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetEdgeSecurityPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetEdgeSecurityPolicyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetEdgeSecurityPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendServiceRequest;

                    /**
                     * Decodes a SetEdgeSecurityPolicyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetEdgeSecurityPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendServiceRequest;

                    /**
                     * Verifies a SetEdgeSecurityPolicyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetEdgeSecurityPolicyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetEdgeSecurityPolicyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetEdgeSecurityPolicyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetEdgeSecurityPolicyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetEdgeSecurityPolicyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetEdgeSecurityPolicyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetEdgeSecurityPolicyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyBackendBucketRequest. */
                interface ISetIamPolicyBackendBucketRequest {

                    /** SetIamPolicyBackendBucketRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyBackendBucketRequest project */
                    project?: (string|null);

                    /** SetIamPolicyBackendBucketRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyBackendBucketRequest. */
                class SetIamPolicyBackendBucketRequest implements ISetIamPolicyBackendBucketRequest {

                    /**
                     * Constructs a new SetIamPolicyBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyBackendBucketRequest);

                    /** SetIamPolicyBackendBucketRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyBackendBucketRequest project. */
                    public project: string;

                    /** SetIamPolicyBackendBucketRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyBackendBucketRequest): google.cloud.compute.v1beta.SetIamPolicyBackendBucketRequest;

                    /**
                     * Encodes the specified SetIamPolicyBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message SetIamPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyBackendBucketRequest.verify|verify} messages.
                     * @param message SetIamPolicyBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyBackendBucketRequest;

                    /**
                     * Decodes a SetIamPolicyBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyBackendBucketRequest;

                    /**
                     * Verifies a SetIamPolicyBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyBackendBucketRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyBackendServiceRequest. */
                interface ISetIamPolicyBackendServiceRequest {

                    /** SetIamPolicyBackendServiceRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyBackendServiceRequest project */
                    project?: (string|null);

                    /** SetIamPolicyBackendServiceRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyBackendServiceRequest. */
                class SetIamPolicyBackendServiceRequest implements ISetIamPolicyBackendServiceRequest {

                    /**
                     * Constructs a new SetIamPolicyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyBackendServiceRequest);

                    /** SetIamPolicyBackendServiceRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyBackendServiceRequest project. */
                    public project: string;

                    /** SetIamPolicyBackendServiceRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyBackendServiceRequest): google.cloud.compute.v1beta.SetIamPolicyBackendServiceRequest;

                    /**
                     * Encodes the specified SetIamPolicyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetIamPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetIamPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyBackendServiceRequest;

                    /**
                     * Decodes a SetIamPolicyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyBackendServiceRequest;

                    /**
                     * Verifies a SetIamPolicyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyDiskRequest. */
                interface ISetIamPolicyDiskRequest {

                    /** SetIamPolicyDiskRequest project */
                    project?: (string|null);

                    /** SetIamPolicyDiskRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyDiskRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyDiskRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyDiskRequest. */
                class SetIamPolicyDiskRequest implements ISetIamPolicyDiskRequest {

                    /**
                     * Constructs a new SetIamPolicyDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyDiskRequest);

                    /** SetIamPolicyDiskRequest project. */
                    public project: string;

                    /** SetIamPolicyDiskRequest resource. */
                    public resource: string;

                    /** SetIamPolicyDiskRequest zone. */
                    public zone: string;

                    /** SetIamPolicyDiskRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyDiskRequest): google.cloud.compute.v1beta.SetIamPolicyDiskRequest;

                    /**
                     * Encodes the specified SetIamPolicyDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyDiskRequest.verify|verify} messages.
                     * @param message SetIamPolicyDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyDiskRequest.verify|verify} messages.
                     * @param message SetIamPolicyDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyDiskRequest;

                    /**
                     * Decodes a SetIamPolicyDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyDiskRequest;

                    /**
                     * Verifies a SetIamPolicyDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyDiskRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyDiskRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyFirewallPolicyRequest. */
                interface ISetIamPolicyFirewallPolicyRequest {

                    /** SetIamPolicyFirewallPolicyRequest globalOrganizationSetPolicyRequestResource */
                    globalOrganizationSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalOrganizationSetPolicyRequest|null);

                    /** SetIamPolicyFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyFirewallPolicyRequest. */
                class SetIamPolicyFirewallPolicyRequest implements ISetIamPolicyFirewallPolicyRequest {

                    /**
                     * Constructs a new SetIamPolicyFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyFirewallPolicyRequest);

                    /** SetIamPolicyFirewallPolicyRequest globalOrganizationSetPolicyRequestResource. */
                    public globalOrganizationSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalOrganizationSetPolicyRequest|null);

                    /** SetIamPolicyFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyFirewallPolicyRequest): google.cloud.compute.v1beta.SetIamPolicyFirewallPolicyRequest;

                    /**
                     * Encodes the specified SetIamPolicyFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyFirewallPolicyRequest;

                    /**
                     * Decodes a SetIamPolicyFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyFirewallPolicyRequest;

                    /**
                     * Verifies a SetIamPolicyFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyImageRequest. */
                interface ISetIamPolicyImageRequest {

                    /** SetIamPolicyImageRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyImageRequest project */
                    project?: (string|null);

                    /** SetIamPolicyImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyImageRequest. */
                class SetIamPolicyImageRequest implements ISetIamPolicyImageRequest {

                    /**
                     * Constructs a new SetIamPolicyImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyImageRequest);

                    /** SetIamPolicyImageRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyImageRequest project. */
                    public project: string;

                    /** SetIamPolicyImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyImageRequest): google.cloud.compute.v1beta.SetIamPolicyImageRequest;

                    /**
                     * Encodes the specified SetIamPolicyImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyImageRequest.verify|verify} messages.
                     * @param message SetIamPolicyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyImageRequest.verify|verify} messages.
                     * @param message SetIamPolicyImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyImageRequest;

                    /**
                     * Decodes a SetIamPolicyImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyImageRequest;

                    /**
                     * Verifies a SetIamPolicyImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyImageRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyImageRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInstanceRequest. */
                interface ISetIamPolicyInstanceRequest {

                    /** SetIamPolicyInstanceRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInstanceRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyInstanceRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyInstanceRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyInstanceRequest. */
                class SetIamPolicyInstanceRequest implements ISetIamPolicyInstanceRequest {

                    /**
                     * Constructs a new SetIamPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest);

                    /** SetIamPolicyInstanceRequest project. */
                    public project: string;

                    /** SetIamPolicyInstanceRequest resource. */
                    public resource: string;

                    /** SetIamPolicyInstanceRequest zone. */
                    public zone: string;

                    /** SetIamPolicyInstanceRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest): google.cloud.compute.v1beta.SetIamPolicyInstanceRequest;

                    /**
                     * Encodes the specified SetIamPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyInstanceRequest;

                    /**
                     * Decodes a SetIamPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyInstanceRequest;

                    /**
                     * Verifies a SetIamPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInstanceTemplateRequest. */
                interface ISetIamPolicyInstanceTemplateRequest {

                    /** SetIamPolicyInstanceTemplateRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInstanceTemplateRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInstanceTemplateRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyInstanceTemplateRequest. */
                class SetIamPolicyInstanceTemplateRequest implements ISetIamPolicyInstanceTemplateRequest {

                    /**
                     * Constructs a new SetIamPolicyInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyInstanceTemplateRequest);

                    /** SetIamPolicyInstanceTemplateRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInstanceTemplateRequest project. */
                    public project: string;

                    /** SetIamPolicyInstanceTemplateRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyInstanceTemplateRequest): google.cloud.compute.v1beta.SetIamPolicyInstanceTemplateRequest;

                    /**
                     * Encodes the specified SetIamPolicyInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInstanceTemplateRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInstanceTemplateRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyInstanceTemplateRequest;

                    /**
                     * Decodes a SetIamPolicyInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyInstanceTemplateRequest;

                    /**
                     * Verifies a SetIamPolicyInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInstantSnapshotGroupRequest. */
                interface ISetIamPolicyInstantSnapshotGroupRequest {

                    /** SetIamPolicyInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInstantSnapshotGroupRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyInstantSnapshotGroupRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyInstantSnapshotGroupRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyInstantSnapshotGroupRequest. */
                class SetIamPolicyInstantSnapshotGroupRequest implements ISetIamPolicyInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new SetIamPolicyInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotGroupRequest);

                    /** SetIamPolicyInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** SetIamPolicyInstantSnapshotGroupRequest resource. */
                    public resource: string;

                    /** SetIamPolicyInstantSnapshotGroupRequest zone. */
                    public zone: string;

                    /** SetIamPolicyInstantSnapshotGroupRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotGroupRequest): google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicyInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotGroupRequest;

                    /**
                     * Decodes a SetIamPolicyInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotGroupRequest;

                    /**
                     * Verifies a SetIamPolicyInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInstantSnapshotRequest. */
                interface ISetIamPolicyInstantSnapshotRequest {

                    /** SetIamPolicyInstantSnapshotRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyInstantSnapshotRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyInstantSnapshotRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyInstantSnapshotRequest. */
                class SetIamPolicyInstantSnapshotRequest implements ISetIamPolicyInstantSnapshotRequest {

                    /**
                     * Constructs a new SetIamPolicyInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotRequest);

                    /** SetIamPolicyInstantSnapshotRequest project. */
                    public project: string;

                    /** SetIamPolicyInstantSnapshotRequest resource. */
                    public resource: string;

                    /** SetIamPolicyInstantSnapshotRequest zone. */
                    public zone: string;

                    /** SetIamPolicyInstantSnapshotRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotRequest): google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotRequest;

                    /**
                     * Encodes the specified SetIamPolicyInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotRequest;

                    /**
                     * Decodes a SetIamPolicyInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotRequest;

                    /**
                     * Verifies a SetIamPolicyInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInterconnectAttachmentGroupRequest. */
                interface ISetIamPolicyInterconnectAttachmentGroupRequest {

                    /** SetIamPolicyInterconnectAttachmentGroupRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInterconnectAttachmentGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyInterconnectAttachmentGroupRequest. */
                class SetIamPolicyInterconnectAttachmentGroupRequest implements ISetIamPolicyInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new SetIamPolicyInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyInterconnectAttachmentGroupRequest);

                    /** SetIamPolicyInterconnectAttachmentGroupRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** SetIamPolicyInterconnectAttachmentGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyInterconnectAttachmentGroupRequest): google.cloud.compute.v1beta.SetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicyInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a SetIamPolicyInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a SetIamPolicyInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyInterconnectGroupRequest. */
                interface ISetIamPolicyInterconnectGroupRequest {

                    /** SetIamPolicyInterconnectGroupRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInterconnectGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicyInterconnectGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyInterconnectGroupRequest. */
                class SetIamPolicyInterconnectGroupRequest implements ISetIamPolicyInterconnectGroupRequest {

                    /**
                     * Constructs a new SetIamPolicyInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyInterconnectGroupRequest);

                    /** SetIamPolicyInterconnectGroupRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyInterconnectGroupRequest project. */
                    public project: string;

                    /** SetIamPolicyInterconnectGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyInterconnectGroupRequest): google.cloud.compute.v1beta.SetIamPolicyInterconnectGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicyInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInterconnectGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyInterconnectGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyInterconnectGroupRequest;

                    /**
                     * Decodes a SetIamPolicyInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyInterconnectGroupRequest;

                    /**
                     * Verifies a SetIamPolicyInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyLicenseRequest. */
                interface ISetIamPolicyLicenseRequest {

                    /** SetIamPolicyLicenseRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyLicenseRequest project */
                    project?: (string|null);

                    /** SetIamPolicyLicenseRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyLicenseRequest. */
                class SetIamPolicyLicenseRequest implements ISetIamPolicyLicenseRequest {

                    /**
                     * Constructs a new SetIamPolicyLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyLicenseRequest);

                    /** SetIamPolicyLicenseRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyLicenseRequest project. */
                    public project: string;

                    /** SetIamPolicyLicenseRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyLicenseRequest): google.cloud.compute.v1beta.SetIamPolicyLicenseRequest;

                    /**
                     * Encodes the specified SetIamPolicyLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyLicenseRequest.verify|verify} messages.
                     * @param message SetIamPolicyLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyLicenseRequest.verify|verify} messages.
                     * @param message SetIamPolicyLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyLicenseRequest;

                    /**
                     * Decodes a SetIamPolicyLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyLicenseRequest;

                    /**
                     * Verifies a SetIamPolicyLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyLicenseRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyLicenseRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyMachineImageRequest. */
                interface ISetIamPolicyMachineImageRequest {

                    /** SetIamPolicyMachineImageRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyMachineImageRequest project */
                    project?: (string|null);

                    /** SetIamPolicyMachineImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyMachineImageRequest. */
                class SetIamPolicyMachineImageRequest implements ISetIamPolicyMachineImageRequest {

                    /**
                     * Constructs a new SetIamPolicyMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyMachineImageRequest);

                    /** SetIamPolicyMachineImageRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyMachineImageRequest project. */
                    public project: string;

                    /** SetIamPolicyMachineImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyMachineImageRequest): google.cloud.compute.v1beta.SetIamPolicyMachineImageRequest;

                    /**
                     * Encodes the specified SetIamPolicyMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyMachineImageRequest.verify|verify} messages.
                     * @param message SetIamPolicyMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyMachineImageRequest.verify|verify} messages.
                     * @param message SetIamPolicyMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyMachineImageRequest;

                    /**
                     * Decodes a SetIamPolicyMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyMachineImageRequest;

                    /**
                     * Verifies a SetIamPolicyMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyMachineImageRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyMachineImageRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyNetworkAttachmentRequest. */
                interface ISetIamPolicyNetworkAttachmentRequest {

                    /** SetIamPolicyNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** SetIamPolicyNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** SetIamPolicyNetworkAttachmentRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyNetworkAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyNetworkAttachmentRequest. */
                class SetIamPolicyNetworkAttachmentRequest implements ISetIamPolicyNetworkAttachmentRequest {

                    /**
                     * Constructs a new SetIamPolicyNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyNetworkAttachmentRequest);

                    /** SetIamPolicyNetworkAttachmentRequest project. */
                    public project: string;

                    /** SetIamPolicyNetworkAttachmentRequest region. */
                    public region: string;

                    /** SetIamPolicyNetworkAttachmentRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyNetworkAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyNetworkAttachmentRequest): google.cloud.compute.v1beta.SetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Encodes the specified SetIamPolicyNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyNetworkAttachmentRequest.verify|verify} messages.
                     * @param message SetIamPolicyNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyNetworkAttachmentRequest.verify|verify} messages.
                     * @param message SetIamPolicyNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Decodes a SetIamPolicyNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Verifies a SetIamPolicyNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyNetworkFirewallPolicyRequest. */
                interface ISetIamPolicyNetworkFirewallPolicyRequest {

                    /** SetIamPolicyNetworkFirewallPolicyRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** SetIamPolicyNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyNetworkFirewallPolicyRequest. */
                class SetIamPolicyNetworkFirewallPolicyRequest implements ISetIamPolicyNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new SetIamPolicyNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyNetworkFirewallPolicyRequest);

                    /** SetIamPolicyNetworkFirewallPolicyRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicyNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** SetIamPolicyNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.SetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified SetIamPolicyNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a SetIamPolicyNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a SetIamPolicyNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyNodeGroupRequest. */
                interface ISetIamPolicyNodeGroupRequest {

                    /** SetIamPolicyNodeGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicyNodeGroupRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyNodeGroupRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyNodeGroupRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyNodeGroupRequest. */
                class SetIamPolicyNodeGroupRequest implements ISetIamPolicyNodeGroupRequest {

                    /**
                     * Constructs a new SetIamPolicyNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyNodeGroupRequest);

                    /** SetIamPolicyNodeGroupRequest project. */
                    public project: string;

                    /** SetIamPolicyNodeGroupRequest resource. */
                    public resource: string;

                    /** SetIamPolicyNodeGroupRequest zone. */
                    public zone: string;

                    /** SetIamPolicyNodeGroupRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyNodeGroupRequest): google.cloud.compute.v1beta.SetIamPolicyNodeGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicyNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyNodeGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyNodeGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyNodeGroupRequest;

                    /**
                     * Decodes a SetIamPolicyNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyNodeGroupRequest;

                    /**
                     * Verifies a SetIamPolicyNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyNodeGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyNodeTemplateRequest. */
                interface ISetIamPolicyNodeTemplateRequest {

                    /** SetIamPolicyNodeTemplateRequest project */
                    project?: (string|null);

                    /** SetIamPolicyNodeTemplateRequest region */
                    region?: (string|null);

                    /** SetIamPolicyNodeTemplateRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyNodeTemplateRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyNodeTemplateRequest. */
                class SetIamPolicyNodeTemplateRequest implements ISetIamPolicyNodeTemplateRequest {

                    /**
                     * Constructs a new SetIamPolicyNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyNodeTemplateRequest);

                    /** SetIamPolicyNodeTemplateRequest project. */
                    public project: string;

                    /** SetIamPolicyNodeTemplateRequest region. */
                    public region: string;

                    /** SetIamPolicyNodeTemplateRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyNodeTemplateRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyNodeTemplateRequest): google.cloud.compute.v1beta.SetIamPolicyNodeTemplateRequest;

                    /**
                     * Encodes the specified SetIamPolicyNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyNodeTemplateRequest.verify|verify} messages.
                     * @param message SetIamPolicyNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyNodeTemplateRequest.verify|verify} messages.
                     * @param message SetIamPolicyNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyNodeTemplateRequest;

                    /**
                     * Decodes a SetIamPolicyNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyNodeTemplateRequest;

                    /**
                     * Verifies a SetIamPolicyNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyNodeTemplateRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionBackendBucketRequest. */
                interface ISetIamPolicyRegionBackendBucketRequest {

                    /** SetIamPolicyRegionBackendBucketRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionBackendBucketRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionBackendBucketRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionBackendBucketRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionBackendBucketRequest. */
                class SetIamPolicyRegionBackendBucketRequest implements ISetIamPolicyRegionBackendBucketRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendBucketRequest);

                    /** SetIamPolicyRegionBackendBucketRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionBackendBucketRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionBackendBucketRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionBackendBucketRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendBucketRequest): google.cloud.compute.v1beta.SetIamPolicyRegionBackendBucketRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionBackendBucketRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionBackendBucketRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyRegionBackendBucketRequest;

                    /**
                     * Decodes a SetIamPolicyRegionBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyRegionBackendBucketRequest;

                    /**
                     * Verifies a SetIamPolicyRegionBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyRegionBackendBucketRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyRegionBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionBackendServiceRequest. */
                interface ISetIamPolicyRegionBackendServiceRequest {

                    /** SetIamPolicyRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionBackendServiceRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionBackendServiceRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionBackendServiceRequest. */
                class SetIamPolicyRegionBackendServiceRequest implements ISetIamPolicyRegionBackendServiceRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendServiceRequest);

                    /** SetIamPolicyRegionBackendServiceRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionBackendServiceRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionBackendServiceRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionBackendServiceRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendServiceRequest): google.cloud.compute.v1beta.SetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Decodes a SetIamPolicyRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Verifies a SetIamPolicyRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionDiskRequest. */
                interface ISetIamPolicyRegionDiskRequest {

                    /** SetIamPolicyRegionDiskRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionDiskRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionDiskRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionDiskRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionDiskRequest. */
                class SetIamPolicyRegionDiskRequest implements ISetIamPolicyRegionDiskRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionDiskRequest);

                    /** SetIamPolicyRegionDiskRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionDiskRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionDiskRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionDiskRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionDiskRequest): google.cloud.compute.v1beta.SetIamPolicyRegionDiskRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionDiskRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionDiskRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyRegionDiskRequest;

                    /**
                     * Decodes a SetIamPolicyRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyRegionDiskRequest;

                    /**
                     * Verifies a SetIamPolicyRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyRegionDiskRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionInstantSnapshotGroupRequest. */
                interface ISetIamPolicyRegionInstantSnapshotGroupRequest {

                    /** SetIamPolicyRegionInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionInstantSnapshotGroupRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionInstantSnapshotGroupRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionInstantSnapshotGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionInstantSnapshotGroupRequest. */
                class SetIamPolicyRegionInstantSnapshotGroupRequest implements ISetIamPolicyRegionInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotGroupRequest);

                    /** SetIamPolicyRegionInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionInstantSnapshotGroupRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionInstantSnapshotGroupRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionInstantSnapshotGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotGroupRequest): google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotGroupRequest;

                    /**
                     * Decodes a SetIamPolicyRegionInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotGroupRequest;

                    /**
                     * Verifies a SetIamPolicyRegionInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionInstantSnapshotRequest. */
                interface ISetIamPolicyRegionInstantSnapshotRequest {

                    /** SetIamPolicyRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionInstantSnapshotRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionInstantSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionInstantSnapshotRequest. */
                class SetIamPolicyRegionInstantSnapshotRequest implements ISetIamPolicyRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotRequest);

                    /** SetIamPolicyRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionInstantSnapshotRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionInstantSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotRequest): google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Decodes a SetIamPolicyRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Verifies a SetIamPolicyRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionNetworkFirewallPolicyRequest. */
                interface ISetIamPolicyRegionNetworkFirewallPolicyRequest {

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionNetworkFirewallPolicyRequest. */
                class SetIamPolicyRegionNetworkFirewallPolicyRequest implements ISetIamPolicyRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionNetworkFirewallPolicyRequest);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.SetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a SetIamPolicyRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a SetIamPolicyRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyRegionSnapshotRequest. */
                interface ISetIamPolicyRegionSnapshotRequest {

                    /** SetIamPolicyRegionSnapshotRequest project */
                    project?: (string|null);

                    /** SetIamPolicyRegionSnapshotRequest region */
                    region?: (string|null);

                    /** SetIamPolicyRegionSnapshotRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyRegionSnapshotRequest. */
                class SetIamPolicyRegionSnapshotRequest implements ISetIamPolicyRegionSnapshotRequest {

                    /**
                     * Constructs a new SetIamPolicyRegionSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionSnapshotRequest);

                    /** SetIamPolicyRegionSnapshotRequest project. */
                    public project: string;

                    /** SetIamPolicyRegionSnapshotRequest region. */
                    public region: string;

                    /** SetIamPolicyRegionSnapshotRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyRegionSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyRegionSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyRegionSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyRegionSnapshotRequest): google.cloud.compute.v1beta.SetIamPolicyRegionSnapshotRequest;

                    /**
                     * Encodes the specified SetIamPolicyRegionSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyRegionSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyRegionSnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicyRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyRegionSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyRegionSnapshotRequest;

                    /**
                     * Decodes a SetIamPolicyRegionSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyRegionSnapshotRequest;

                    /**
                     * Verifies a SetIamPolicyRegionSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyRegionSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyRegionSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyRegionSnapshotRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyRegionSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyRegionSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyRegionSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyRegionSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyRegionSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyReservationBlockRequest. */
                interface ISetIamPolicyReservationBlockRequest {

                    /** SetIamPolicyReservationBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** SetIamPolicyReservationBlockRequest project */
                    project?: (string|null);

                    /** SetIamPolicyReservationBlockRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyReservationBlockRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyReservationBlockRequest zoneSetNestedPolicyRequestResource */
                    zoneSetNestedPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetNestedPolicyRequest|null);
                }

                /** Represents a SetIamPolicyReservationBlockRequest. */
                class SetIamPolicyReservationBlockRequest implements ISetIamPolicyReservationBlockRequest {

                    /**
                     * Constructs a new SetIamPolicyReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyReservationBlockRequest);

                    /** SetIamPolicyReservationBlockRequest parentResource. */
                    public parentResource: string;

                    /** SetIamPolicyReservationBlockRequest project. */
                    public project: string;

                    /** SetIamPolicyReservationBlockRequest resource. */
                    public resource: string;

                    /** SetIamPolicyReservationBlockRequest zone. */
                    public zone: string;

                    /** SetIamPolicyReservationBlockRequest zoneSetNestedPolicyRequestResource. */
                    public zoneSetNestedPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetNestedPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyReservationBlockRequest): google.cloud.compute.v1beta.SetIamPolicyReservationBlockRequest;

                    /**
                     * Encodes the specified SetIamPolicyReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyReservationBlockRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyReservationBlockRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyReservationBlockRequest;

                    /**
                     * Decodes a SetIamPolicyReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyReservationBlockRequest;

                    /**
                     * Verifies a SetIamPolicyReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyReservationBlockRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyReservationRequest. */
                interface ISetIamPolicyReservationRequest {

                    /** SetIamPolicyReservationRequest project */
                    project?: (string|null);

                    /** SetIamPolicyReservationRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyReservationRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyReservationRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyReservationRequest. */
                class SetIamPolicyReservationRequest implements ISetIamPolicyReservationRequest {

                    /**
                     * Constructs a new SetIamPolicyReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyReservationRequest);

                    /** SetIamPolicyReservationRequest project. */
                    public project: string;

                    /** SetIamPolicyReservationRequest resource. */
                    public resource: string;

                    /** SetIamPolicyReservationRequest zone. */
                    public zone: string;

                    /** SetIamPolicyReservationRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyReservationRequest): google.cloud.compute.v1beta.SetIamPolicyReservationRequest;

                    /**
                     * Encodes the specified SetIamPolicyReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyReservationRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyReservationRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyReservationRequest;

                    /**
                     * Decodes a SetIamPolicyReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyReservationRequest;

                    /**
                     * Verifies a SetIamPolicyReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyReservationRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyReservationRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyReservationSubBlockRequest. */
                interface ISetIamPolicyReservationSubBlockRequest {

                    /** SetIamPolicyReservationSubBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** SetIamPolicyReservationSubBlockRequest project */
                    project?: (string|null);

                    /** SetIamPolicyReservationSubBlockRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyReservationSubBlockRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyReservationSubBlockRequest zoneSetNestedPolicyRequestResource */
                    zoneSetNestedPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetNestedPolicyRequest|null);
                }

                /** Represents a SetIamPolicyReservationSubBlockRequest. */
                class SetIamPolicyReservationSubBlockRequest implements ISetIamPolicyReservationSubBlockRequest {

                    /**
                     * Constructs a new SetIamPolicyReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyReservationSubBlockRequest);

                    /** SetIamPolicyReservationSubBlockRequest parentResource. */
                    public parentResource: string;

                    /** SetIamPolicyReservationSubBlockRequest project. */
                    public project: string;

                    /** SetIamPolicyReservationSubBlockRequest resource. */
                    public resource: string;

                    /** SetIamPolicyReservationSubBlockRequest zone. */
                    public zone: string;

                    /** SetIamPolicyReservationSubBlockRequest zoneSetNestedPolicyRequestResource. */
                    public zoneSetNestedPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetNestedPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyReservationSubBlockRequest): google.cloud.compute.v1beta.SetIamPolicyReservationSubBlockRequest;

                    /**
                     * Encodes the specified SetIamPolicyReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyReservationSubBlockRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyReservationSubBlockRequest.verify|verify} messages.
                     * @param message SetIamPolicyReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyReservationSubBlockRequest;

                    /**
                     * Decodes a SetIamPolicyReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyReservationSubBlockRequest;

                    /**
                     * Verifies a SetIamPolicyReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyResourcePolicyRequest. */
                interface ISetIamPolicyResourcePolicyRequest {

                    /** SetIamPolicyResourcePolicyRequest project */
                    project?: (string|null);

                    /** SetIamPolicyResourcePolicyRequest region */
                    region?: (string|null);

                    /** SetIamPolicyResourcePolicyRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyResourcePolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyResourcePolicyRequest. */
                class SetIamPolicyResourcePolicyRequest implements ISetIamPolicyResourcePolicyRequest {

                    /**
                     * Constructs a new SetIamPolicyResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyResourcePolicyRequest);

                    /** SetIamPolicyResourcePolicyRequest project. */
                    public project: string;

                    /** SetIamPolicyResourcePolicyRequest region. */
                    public region: string;

                    /** SetIamPolicyResourcePolicyRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyResourcePolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyResourcePolicyRequest): google.cloud.compute.v1beta.SetIamPolicyResourcePolicyRequest;

                    /**
                     * Encodes the specified SetIamPolicyResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyResourcePolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyResourcePolicyRequest.verify|verify} messages.
                     * @param message SetIamPolicyResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyResourcePolicyRequest;

                    /**
                     * Decodes a SetIamPolicyResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyResourcePolicyRequest;

                    /**
                     * Verifies a SetIamPolicyResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyResourcePolicyRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyServiceAttachmentRequest. */
                interface ISetIamPolicyServiceAttachmentRequest {

                    /** SetIamPolicyServiceAttachmentRequest project */
                    project?: (string|null);

                    /** SetIamPolicyServiceAttachmentRequest region */
                    region?: (string|null);

                    /** SetIamPolicyServiceAttachmentRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyServiceAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicyServiceAttachmentRequest. */
                class SetIamPolicyServiceAttachmentRequest implements ISetIamPolicyServiceAttachmentRequest {

                    /**
                     * Constructs a new SetIamPolicyServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyServiceAttachmentRequest);

                    /** SetIamPolicyServiceAttachmentRequest project. */
                    public project: string;

                    /** SetIamPolicyServiceAttachmentRequest region. */
                    public region: string;

                    /** SetIamPolicyServiceAttachmentRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicyServiceAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicyServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyServiceAttachmentRequest): google.cloud.compute.v1beta.SetIamPolicyServiceAttachmentRequest;

                    /**
                     * Encodes the specified SetIamPolicyServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyServiceAttachmentRequest.verify|verify} messages.
                     * @param message SetIamPolicyServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyServiceAttachmentRequest.verify|verify} messages.
                     * @param message SetIamPolicyServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyServiceAttachmentRequest;

                    /**
                     * Decodes a SetIamPolicyServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyServiceAttachmentRequest;

                    /**
                     * Verifies a SetIamPolicyServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicySnapshotGroupRequest. */
                interface ISetIamPolicySnapshotGroupRequest {

                    /** SetIamPolicySnapshotGroupRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicySnapshotGroupRequest project */
                    project?: (string|null);

                    /** SetIamPolicySnapshotGroupRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicySnapshotGroupRequest. */
                class SetIamPolicySnapshotGroupRequest implements ISetIamPolicySnapshotGroupRequest {

                    /**
                     * Constructs a new SetIamPolicySnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicySnapshotGroupRequest);

                    /** SetIamPolicySnapshotGroupRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicySnapshotGroupRequest project. */
                    public project: string;

                    /** SetIamPolicySnapshotGroupRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicySnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicySnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicySnapshotGroupRequest): google.cloud.compute.v1beta.SetIamPolicySnapshotGroupRequest;

                    /**
                     * Encodes the specified SetIamPolicySnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicySnapshotGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicySnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicySnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicySnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicySnapshotGroupRequest.verify|verify} messages.
                     * @param message SetIamPolicySnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicySnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicySnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicySnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicySnapshotGroupRequest;

                    /**
                     * Decodes a SetIamPolicySnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicySnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicySnapshotGroupRequest;

                    /**
                     * Verifies a SetIamPolicySnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicySnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicySnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicySnapshotGroupRequest;

                    /**
                     * Creates a plain object from a SetIamPolicySnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicySnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicySnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicySnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicySnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicySnapshotRequest. */
                interface ISetIamPolicySnapshotRequest {

                    /** SetIamPolicySnapshotRequest globalSetPolicyRequestResource */
                    globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicySnapshotRequest project */
                    project?: (string|null);

                    /** SetIamPolicySnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicySnapshotRequest. */
                class SetIamPolicySnapshotRequest implements ISetIamPolicySnapshotRequest {

                    /**
                     * Constructs a new SetIamPolicySnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicySnapshotRequest);

                    /** SetIamPolicySnapshotRequest globalSetPolicyRequestResource. */
                    public globalSetPolicyRequestResource?: (google.cloud.compute.v1beta.IGlobalSetPolicyRequest|null);

                    /** SetIamPolicySnapshotRequest project. */
                    public project: string;

                    /** SetIamPolicySnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicySnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicySnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicySnapshotRequest): google.cloud.compute.v1beta.SetIamPolicySnapshotRequest;

                    /**
                     * Encodes the specified SetIamPolicySnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicySnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicySnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicySnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicySnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicySnapshotRequest.verify|verify} messages.
                     * @param message SetIamPolicySnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicySnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicySnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicySnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicySnapshotRequest;

                    /**
                     * Decodes a SetIamPolicySnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicySnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicySnapshotRequest;

                    /**
                     * Verifies a SetIamPolicySnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicySnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicySnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicySnapshotRequest;

                    /**
                     * Creates a plain object from a SetIamPolicySnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicySnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicySnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicySnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicySnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicyStoragePoolRequest. */
                interface ISetIamPolicyStoragePoolRequest {

                    /** SetIamPolicyStoragePoolRequest project */
                    project?: (string|null);

                    /** SetIamPolicyStoragePoolRequest resource */
                    resource?: (string|null);

                    /** SetIamPolicyStoragePoolRequest zone */
                    zone?: (string|null);

                    /** SetIamPolicyStoragePoolRequest zoneSetPolicyRequestResource */
                    zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);
                }

                /** Represents a SetIamPolicyStoragePoolRequest. */
                class SetIamPolicyStoragePoolRequest implements ISetIamPolicyStoragePoolRequest {

                    /**
                     * Constructs a new SetIamPolicyStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicyStoragePoolRequest);

                    /** SetIamPolicyStoragePoolRequest project. */
                    public project: string;

                    /** SetIamPolicyStoragePoolRequest resource. */
                    public resource: string;

                    /** SetIamPolicyStoragePoolRequest zone. */
                    public zone: string;

                    /** SetIamPolicyStoragePoolRequest zoneSetPolicyRequestResource. */
                    public zoneSetPolicyRequestResource?: (google.cloud.compute.v1beta.IZoneSetPolicyRequest|null);

                    /**
                     * Creates a new SetIamPolicyStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicyStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicyStoragePoolRequest): google.cloud.compute.v1beta.SetIamPolicyStoragePoolRequest;

                    /**
                     * Encodes the specified SetIamPolicyStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyStoragePoolRequest.verify|verify} messages.
                     * @param message SetIamPolicyStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicyStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicyStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicyStoragePoolRequest.verify|verify} messages.
                     * @param message SetIamPolicyStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicyStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicyStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicyStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicyStoragePoolRequest;

                    /**
                     * Decodes a SetIamPolicyStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicyStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicyStoragePoolRequest;

                    /**
                     * Verifies a SetIamPolicyStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicyStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicyStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicyStoragePoolRequest;

                    /**
                     * Creates a plain object from a SetIamPolicyStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicyStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicyStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicyStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicyStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetIamPolicySubnetworkRequest. */
                interface ISetIamPolicySubnetworkRequest {

                    /** SetIamPolicySubnetworkRequest project */
                    project?: (string|null);

                    /** SetIamPolicySubnetworkRequest region */
                    region?: (string|null);

                    /** SetIamPolicySubnetworkRequest regionSetPolicyRequestResource */
                    regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicySubnetworkRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetIamPolicySubnetworkRequest. */
                class SetIamPolicySubnetworkRequest implements ISetIamPolicySubnetworkRequest {

                    /**
                     * Constructs a new SetIamPolicySubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetIamPolicySubnetworkRequest);

                    /** SetIamPolicySubnetworkRequest project. */
                    public project: string;

                    /** SetIamPolicySubnetworkRequest region. */
                    public region: string;

                    /** SetIamPolicySubnetworkRequest regionSetPolicyRequestResource. */
                    public regionSetPolicyRequestResource?: (google.cloud.compute.v1beta.IRegionSetPolicyRequest|null);

                    /** SetIamPolicySubnetworkRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetIamPolicySubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetIamPolicySubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetIamPolicySubnetworkRequest): google.cloud.compute.v1beta.SetIamPolicySubnetworkRequest;

                    /**
                     * Encodes the specified SetIamPolicySubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicySubnetworkRequest.verify|verify} messages.
                     * @param message SetIamPolicySubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetIamPolicySubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetIamPolicySubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetIamPolicySubnetworkRequest.verify|verify} messages.
                     * @param message SetIamPolicySubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetIamPolicySubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetIamPolicySubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetIamPolicySubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetIamPolicySubnetworkRequest;

                    /**
                     * Decodes a SetIamPolicySubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetIamPolicySubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetIamPolicySubnetworkRequest;

                    /**
                     * Verifies a SetIamPolicySubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetIamPolicySubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetIamPolicySubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetIamPolicySubnetworkRequest;

                    /**
                     * Creates a plain object from a SetIamPolicySubnetworkRequest message. Also converts values to other types if specified.
                     * @param message SetIamPolicySubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetIamPolicySubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetIamPolicySubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetIamPolicySubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetInstanceTemplateInstanceGroupManagerRequest. */
                interface ISetInstanceTemplateInstanceGroupManagerRequest {

                    /** SetInstanceTemplateInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest instanceGroupManagersSetInstanceTemplateRequestResource */
                    instanceGroupManagersSetInstanceTemplateRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersSetInstanceTemplateRequest|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetInstanceTemplateInstanceGroupManagerRequest. */
                class SetInstanceTemplateInstanceGroupManagerRequest implements ISetInstanceTemplateInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetInstanceTemplateInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetInstanceTemplateInstanceGroupManagerRequest);

                    /** SetInstanceTemplateInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetInstanceTemplateInstanceGroupManagerRequest instanceGroupManagersSetInstanceTemplateRequestResource. */
                    public instanceGroupManagersSetInstanceTemplateRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersSetInstanceTemplateRequest|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetInstanceTemplateInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** SetInstanceTemplateInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetInstanceTemplateInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetInstanceTemplateInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetInstanceTemplateInstanceGroupManagerRequest): google.cloud.compute.v1beta.SetInstanceTemplateInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetInstanceTemplateInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetInstanceTemplateInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetInstanceTemplateInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetInstanceTemplateInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetInstanceTemplateInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetInstanceTemplateInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetInstanceTemplateInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetInstanceTemplateInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetInstanceTemplateInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetInstanceTemplateInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetInstanceTemplateInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetInstanceTemplateInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetInstanceTemplateInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetInstanceTemplateInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetInstanceTemplateInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetInstanceTemplateInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetInstanceTemplateInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetInstanceTemplateInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetInstanceTemplateInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetInstanceTemplateInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetInstanceTemplateInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetInstanceTemplateInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetInstanceTemplateInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetInstanceTemplateRegionInstanceGroupManagerRequest. */
                interface ISetInstanceTemplateRegionInstanceGroupManagerRequest {

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetTemplateRequestResource */
                    regionInstanceGroupManagersSetTemplateRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTemplateRequest|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetInstanceTemplateRegionInstanceGroupManagerRequest. */
                class SetInstanceTemplateRegionInstanceGroupManagerRequest implements ISetInstanceTemplateRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetInstanceTemplateRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetInstanceTemplateRegionInstanceGroupManagerRequest);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetTemplateRequestResource. */
                    public regionInstanceGroupManagersSetTemplateRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTemplateRequest|null);

                    /** SetInstanceTemplateRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetInstanceTemplateRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetInstanceTemplateRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetInstanceTemplateRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.SetInstanceTemplateRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetInstanceTemplateRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetInstanceTemplateRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetInstanceTemplateRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetInstanceTemplateRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetInstanceTemplateRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetInstanceTemplateRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetInstanceTemplateRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetInstanceTemplateRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetInstanceTemplateRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetInstanceTemplateRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetInstanceTemplateRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetInstanceTemplateRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetInstanceTemplateRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetInstanceTemplateRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetInstanceTemplateRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetInstanceTemplateRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetInstanceTemplateRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetInstanceTemplateRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetInstanceTemplateRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetInstanceTemplateRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetInstanceTemplateRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetInstanceTemplateRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetInstanceTemplateRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsAddressRequest. */
                interface ISetLabelsAddressRequest {

                    /** SetLabelsAddressRequest project */
                    project?: (string|null);

                    /** SetLabelsAddressRequest region */
                    region?: (string|null);

                    /** SetLabelsAddressRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsAddressRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsAddressRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsAddressRequest. */
                class SetLabelsAddressRequest implements ISetLabelsAddressRequest {

                    /**
                     * Constructs a new SetLabelsAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsAddressRequest);

                    /** SetLabelsAddressRequest project. */
                    public project: string;

                    /** SetLabelsAddressRequest region. */
                    public region: string;

                    /** SetLabelsAddressRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsAddressRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsAddressRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsAddressRequest): google.cloud.compute.v1beta.SetLabelsAddressRequest;

                    /**
                     * Encodes the specified SetLabelsAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsAddressRequest.verify|verify} messages.
                     * @param message SetLabelsAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsAddressRequest.verify|verify} messages.
                     * @param message SetLabelsAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsAddressRequest;

                    /**
                     * Decodes a SetLabelsAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsAddressRequest;

                    /**
                     * Verifies a SetLabelsAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsAddressRequest;

                    /**
                     * Creates a plain object from a SetLabelsAddressRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsDiskRequest. */
                interface ISetLabelsDiskRequest {

                    /** SetLabelsDiskRequest project */
                    project?: (string|null);

                    /** SetLabelsDiskRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsDiskRequest resource */
                    resource?: (string|null);

                    /** SetLabelsDiskRequest zone */
                    zone?: (string|null);

                    /** SetLabelsDiskRequest zoneSetLabelsRequestResource */
                    zoneSetLabelsRequestResource?: (google.cloud.compute.v1beta.IZoneSetLabelsRequest|null);
                }

                /** Represents a SetLabelsDiskRequest. */
                class SetLabelsDiskRequest implements ISetLabelsDiskRequest {

                    /**
                     * Constructs a new SetLabelsDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsDiskRequest);

                    /** SetLabelsDiskRequest project. */
                    public project: string;

                    /** SetLabelsDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsDiskRequest resource. */
                    public resource: string;

                    /** SetLabelsDiskRequest zone. */
                    public zone: string;

                    /** SetLabelsDiskRequest zoneSetLabelsRequestResource. */
                    public zoneSetLabelsRequestResource?: (google.cloud.compute.v1beta.IZoneSetLabelsRequest|null);

                    /**
                     * Creates a new SetLabelsDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsDiskRequest): google.cloud.compute.v1beta.SetLabelsDiskRequest;

                    /**
                     * Encodes the specified SetLabelsDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsDiskRequest.verify|verify} messages.
                     * @param message SetLabelsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsDiskRequest.verify|verify} messages.
                     * @param message SetLabelsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsDiskRequest;

                    /**
                     * Decodes a SetLabelsDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsDiskRequest;

                    /**
                     * Verifies a SetLabelsDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsDiskRequest;

                    /**
                     * Creates a plain object from a SetLabelsDiskRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsExternalVpnGatewayRequest. */
                interface ISetLabelsExternalVpnGatewayRequest {

                    /** SetLabelsExternalVpnGatewayRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsExternalVpnGatewayRequest project */
                    project?: (string|null);

                    /** SetLabelsExternalVpnGatewayRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsExternalVpnGatewayRequest. */
                class SetLabelsExternalVpnGatewayRequest implements ISetLabelsExternalVpnGatewayRequest {

                    /**
                     * Constructs a new SetLabelsExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsExternalVpnGatewayRequest);

                    /** SetLabelsExternalVpnGatewayRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsExternalVpnGatewayRequest project. */
                    public project: string;

                    /** SetLabelsExternalVpnGatewayRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsExternalVpnGatewayRequest): google.cloud.compute.v1beta.SetLabelsExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified SetLabelsExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsExternalVpnGatewayRequest;

                    /**
                     * Decodes a SetLabelsExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsExternalVpnGatewayRequest;

                    /**
                     * Verifies a SetLabelsExternalVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from a SetLabelsExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsForwardingRuleRequest. */
                interface ISetLabelsForwardingRuleRequest {

                    /** SetLabelsForwardingRuleRequest project */
                    project?: (string|null);

                    /** SetLabelsForwardingRuleRequest region */
                    region?: (string|null);

                    /** SetLabelsForwardingRuleRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsForwardingRuleRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsForwardingRuleRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsForwardingRuleRequest. */
                class SetLabelsForwardingRuleRequest implements ISetLabelsForwardingRuleRequest {

                    /**
                     * Constructs a new SetLabelsForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsForwardingRuleRequest);

                    /** SetLabelsForwardingRuleRequest project. */
                    public project: string;

                    /** SetLabelsForwardingRuleRequest region. */
                    public region: string;

                    /** SetLabelsForwardingRuleRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsForwardingRuleRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsForwardingRuleRequest): google.cloud.compute.v1beta.SetLabelsForwardingRuleRequest;

                    /**
                     * Encodes the specified SetLabelsForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsForwardingRuleRequest.verify|verify} messages.
                     * @param message SetLabelsForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsForwardingRuleRequest.verify|verify} messages.
                     * @param message SetLabelsForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsForwardingRuleRequest;

                    /**
                     * Decodes a SetLabelsForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsForwardingRuleRequest;

                    /**
                     * Verifies a SetLabelsForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsForwardingRuleRequest;

                    /**
                     * Creates a plain object from a SetLabelsForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsGlobalAddressRequest. */
                interface ISetLabelsGlobalAddressRequest {

                    /** SetLabelsGlobalAddressRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsGlobalAddressRequest project */
                    project?: (string|null);

                    /** SetLabelsGlobalAddressRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsGlobalAddressRequest. */
                class SetLabelsGlobalAddressRequest implements ISetLabelsGlobalAddressRequest {

                    /**
                     * Constructs a new SetLabelsGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsGlobalAddressRequest);

                    /** SetLabelsGlobalAddressRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsGlobalAddressRequest project. */
                    public project: string;

                    /** SetLabelsGlobalAddressRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsGlobalAddressRequest): google.cloud.compute.v1beta.SetLabelsGlobalAddressRequest;

                    /**
                     * Encodes the specified SetLabelsGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsGlobalAddressRequest.verify|verify} messages.
                     * @param message SetLabelsGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsGlobalAddressRequest.verify|verify} messages.
                     * @param message SetLabelsGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsGlobalAddressRequest;

                    /**
                     * Decodes a SetLabelsGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsGlobalAddressRequest;

                    /**
                     * Verifies a SetLabelsGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsGlobalAddressRequest;

                    /**
                     * Creates a plain object from a SetLabelsGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsGlobalForwardingRuleRequest. */
                interface ISetLabelsGlobalForwardingRuleRequest {

                    /** SetLabelsGlobalForwardingRuleRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** SetLabelsGlobalForwardingRuleRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsGlobalForwardingRuleRequest. */
                class SetLabelsGlobalForwardingRuleRequest implements ISetLabelsGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new SetLabelsGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsGlobalForwardingRuleRequest);

                    /** SetLabelsGlobalForwardingRuleRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** SetLabelsGlobalForwardingRuleRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsGlobalForwardingRuleRequest): google.cloud.compute.v1beta.SetLabelsGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified SetLabelsGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message SetLabelsGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message SetLabelsGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsGlobalForwardingRuleRequest;

                    /**
                     * Decodes a SetLabelsGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsGlobalForwardingRuleRequest;

                    /**
                     * Verifies a SetLabelsGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a SetLabelsGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsImageRequest. */
                interface ISetLabelsImageRequest {

                    /** SetLabelsImageRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsImageRequest project */
                    project?: (string|null);

                    /** SetLabelsImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsImageRequest. */
                class SetLabelsImageRequest implements ISetLabelsImageRequest {

                    /**
                     * Constructs a new SetLabelsImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsImageRequest);

                    /** SetLabelsImageRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsImageRequest project. */
                    public project: string;

                    /** SetLabelsImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsImageRequest): google.cloud.compute.v1beta.SetLabelsImageRequest;

                    /**
                     * Encodes the specified SetLabelsImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsImageRequest.verify|verify} messages.
                     * @param message SetLabelsImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsImageRequest.verify|verify} messages.
                     * @param message SetLabelsImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsImageRequest;

                    /**
                     * Decodes a SetLabelsImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsImageRequest;

                    /**
                     * Verifies a SetLabelsImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsImageRequest;

                    /**
                     * Creates a plain object from a SetLabelsImageRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsInstanceRequest. */
                interface ISetLabelsInstanceRequest {

                    /** SetLabelsInstanceRequest instance */
                    instance?: (string|null);

                    /** SetLabelsInstanceRequest instancesSetLabelsRequestResource */
                    instancesSetLabelsRequestResource?: (google.cloud.compute.v1beta.IInstancesSetLabelsRequest|null);

                    /** SetLabelsInstanceRequest project */
                    project?: (string|null);

                    /** SetLabelsInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetLabelsInstanceRequest. */
                class SetLabelsInstanceRequest implements ISetLabelsInstanceRequest {

                    /**
                     * Constructs a new SetLabelsInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsInstanceRequest);

                    /** SetLabelsInstanceRequest instance. */
                    public instance: string;

                    /** SetLabelsInstanceRequest instancesSetLabelsRequestResource. */
                    public instancesSetLabelsRequestResource?: (google.cloud.compute.v1beta.IInstancesSetLabelsRequest|null);

                    /** SetLabelsInstanceRequest project. */
                    public project: string;

                    /** SetLabelsInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetLabelsInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsInstanceRequest): google.cloud.compute.v1beta.SetLabelsInstanceRequest;

                    /**
                     * Encodes the specified SetLabelsInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsInstanceRequest.verify|verify} messages.
                     * @param message SetLabelsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsInstanceRequest.verify|verify} messages.
                     * @param message SetLabelsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsInstanceRequest;

                    /**
                     * Decodes a SetLabelsInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsInstanceRequest;

                    /**
                     * Verifies a SetLabelsInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsInstanceRequest;

                    /**
                     * Creates a plain object from a SetLabelsInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsInstantSnapshotRequest. */
                interface ISetLabelsInstantSnapshotRequest {

                    /** SetLabelsInstantSnapshotRequest project */
                    project?: (string|null);

                    /** SetLabelsInstantSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** SetLabelsInstantSnapshotRequest zone */
                    zone?: (string|null);

                    /** SetLabelsInstantSnapshotRequest zoneSetLabelsRequestResource */
                    zoneSetLabelsRequestResource?: (google.cloud.compute.v1beta.IZoneSetLabelsRequest|null);
                }

                /** Represents a SetLabelsInstantSnapshotRequest. */
                class SetLabelsInstantSnapshotRequest implements ISetLabelsInstantSnapshotRequest {

                    /**
                     * Constructs a new SetLabelsInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsInstantSnapshotRequest);

                    /** SetLabelsInstantSnapshotRequest project. */
                    public project: string;

                    /** SetLabelsInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsInstantSnapshotRequest resource. */
                    public resource: string;

                    /** SetLabelsInstantSnapshotRequest zone. */
                    public zone: string;

                    /** SetLabelsInstantSnapshotRequest zoneSetLabelsRequestResource. */
                    public zoneSetLabelsRequestResource?: (google.cloud.compute.v1beta.IZoneSetLabelsRequest|null);

                    /**
                     * Creates a new SetLabelsInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsInstantSnapshotRequest): google.cloud.compute.v1beta.SetLabelsInstantSnapshotRequest;

                    /**
                     * Encodes the specified SetLabelsInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsInstantSnapshotRequest;

                    /**
                     * Decodes a SetLabelsInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsInstantSnapshotRequest;

                    /**
                     * Verifies a SetLabelsInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a SetLabelsInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsInterconnectAttachmentRequest. */
                interface ISetLabelsInterconnectAttachmentRequest {

                    /** SetLabelsInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** SetLabelsInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** SetLabelsInterconnectAttachmentRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsInterconnectAttachmentRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsInterconnectAttachmentRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsInterconnectAttachmentRequest. */
                class SetLabelsInterconnectAttachmentRequest implements ISetLabelsInterconnectAttachmentRequest {

                    /**
                     * Constructs a new SetLabelsInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsInterconnectAttachmentRequest);

                    /** SetLabelsInterconnectAttachmentRequest project. */
                    public project: string;

                    /** SetLabelsInterconnectAttachmentRequest region. */
                    public region: string;

                    /** SetLabelsInterconnectAttachmentRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsInterconnectAttachmentRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsInterconnectAttachmentRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsInterconnectAttachmentRequest): google.cloud.compute.v1beta.SetLabelsInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified SetLabelsInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message SetLabelsInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message SetLabelsInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsInterconnectAttachmentRequest;

                    /**
                     * Decodes a SetLabelsInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsInterconnectAttachmentRequest;

                    /**
                     * Verifies a SetLabelsInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a SetLabelsInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsInterconnectRequest. */
                interface ISetLabelsInterconnectRequest {

                    /** SetLabelsInterconnectRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsInterconnectRequest project */
                    project?: (string|null);

                    /** SetLabelsInterconnectRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsInterconnectRequest. */
                class SetLabelsInterconnectRequest implements ISetLabelsInterconnectRequest {

                    /**
                     * Constructs a new SetLabelsInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsInterconnectRequest);

                    /** SetLabelsInterconnectRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsInterconnectRequest project. */
                    public project: string;

                    /** SetLabelsInterconnectRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsInterconnectRequest): google.cloud.compute.v1beta.SetLabelsInterconnectRequest;

                    /**
                     * Encodes the specified SetLabelsInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsInterconnectRequest.verify|verify} messages.
                     * @param message SetLabelsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsInterconnectRequest.verify|verify} messages.
                     * @param message SetLabelsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsInterconnectRequest;

                    /**
                     * Decodes a SetLabelsInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsInterconnectRequest;

                    /**
                     * Verifies a SetLabelsInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsInterconnectRequest;

                    /**
                     * Creates a plain object from a SetLabelsInterconnectRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsMachineImageRequest. */
                interface ISetLabelsMachineImageRequest {

                    /** SetLabelsMachineImageRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsMachineImageRequest project */
                    project?: (string|null);

                    /** SetLabelsMachineImageRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsMachineImageRequest. */
                class SetLabelsMachineImageRequest implements ISetLabelsMachineImageRequest {

                    /**
                     * Constructs a new SetLabelsMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsMachineImageRequest);

                    /** SetLabelsMachineImageRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsMachineImageRequest project. */
                    public project: string;

                    /** SetLabelsMachineImageRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsMachineImageRequest): google.cloud.compute.v1beta.SetLabelsMachineImageRequest;

                    /**
                     * Encodes the specified SetLabelsMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsMachineImageRequest.verify|verify} messages.
                     * @param message SetLabelsMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsMachineImageRequest.verify|verify} messages.
                     * @param message SetLabelsMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsMachineImageRequest;

                    /**
                     * Decodes a SetLabelsMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsMachineImageRequest;

                    /**
                     * Verifies a SetLabelsMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsMachineImageRequest;

                    /**
                     * Creates a plain object from a SetLabelsMachineImageRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsRegionDiskRequest. */
                interface ISetLabelsRegionDiskRequest {

                    /** SetLabelsRegionDiskRequest project */
                    project?: (string|null);

                    /** SetLabelsRegionDiskRequest region */
                    region?: (string|null);

                    /** SetLabelsRegionDiskRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionDiskRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsRegionDiskRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsRegionDiskRequest. */
                class SetLabelsRegionDiskRequest implements ISetLabelsRegionDiskRequest {

                    /**
                     * Constructs a new SetLabelsRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsRegionDiskRequest);

                    /** SetLabelsRegionDiskRequest project. */
                    public project: string;

                    /** SetLabelsRegionDiskRequest region. */
                    public region: string;

                    /** SetLabelsRegionDiskRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsRegionDiskRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsRegionDiskRequest): google.cloud.compute.v1beta.SetLabelsRegionDiskRequest;

                    /**
                     * Encodes the specified SetLabelsRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsRegionDiskRequest.verify|verify} messages.
                     * @param message SetLabelsRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsRegionDiskRequest.verify|verify} messages.
                     * @param message SetLabelsRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsRegionDiskRequest;

                    /**
                     * Decodes a SetLabelsRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsRegionDiskRequest;

                    /**
                     * Verifies a SetLabelsRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsRegionDiskRequest;

                    /**
                     * Creates a plain object from a SetLabelsRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsRegionInstantSnapshotRequest. */
                interface ISetLabelsRegionInstantSnapshotRequest {

                    /** SetLabelsRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** SetLabelsRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** SetLabelsRegionInstantSnapshotRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionInstantSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsRegionInstantSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsRegionInstantSnapshotRequest. */
                class SetLabelsRegionInstantSnapshotRequest implements ISetLabelsRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new SetLabelsRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsRegionInstantSnapshotRequest);

                    /** SetLabelsRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** SetLabelsRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** SetLabelsRegionInstantSnapshotRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionInstantSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsRegionInstantSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsRegionInstantSnapshotRequest): google.cloud.compute.v1beta.SetLabelsRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified SetLabelsRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsRegionInstantSnapshotRequest;

                    /**
                     * Decodes a SetLabelsRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsRegionInstantSnapshotRequest;

                    /**
                     * Verifies a SetLabelsRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a SetLabelsRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsRegionSecurityPolicyRequest. */
                interface ISetLabelsRegionSecurityPolicyRequest {

                    /** SetLabelsRegionSecurityPolicyRequest project */
                    project?: (string|null);

                    /** SetLabelsRegionSecurityPolicyRequest region */
                    region?: (string|null);

                    /** SetLabelsRegionSecurityPolicyRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionSecurityPolicyRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsRegionSecurityPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsRegionSecurityPolicyRequest. */
                class SetLabelsRegionSecurityPolicyRequest implements ISetLabelsRegionSecurityPolicyRequest {

                    /**
                     * Constructs a new SetLabelsRegionSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsRegionSecurityPolicyRequest);

                    /** SetLabelsRegionSecurityPolicyRequest project. */
                    public project: string;

                    /** SetLabelsRegionSecurityPolicyRequest region. */
                    public region: string;

                    /** SetLabelsRegionSecurityPolicyRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionSecurityPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsRegionSecurityPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsRegionSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsRegionSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsRegionSecurityPolicyRequest): google.cloud.compute.v1beta.SetLabelsRegionSecurityPolicyRequest;

                    /**
                     * Encodes the specified SetLabelsRegionSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message SetLabelsRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsRegionSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsRegionSecurityPolicyRequest.verify|verify} messages.
                     * @param message SetLabelsRegionSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsRegionSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsRegionSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsRegionSecurityPolicyRequest;

                    /**
                     * Decodes a SetLabelsRegionSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsRegionSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsRegionSecurityPolicyRequest;

                    /**
                     * Verifies a SetLabelsRegionSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsRegionSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsRegionSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsRegionSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a SetLabelsRegionSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsRegionSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsRegionSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsRegionSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsRegionSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsRegionSnapshotRequest. */
                interface ISetLabelsRegionSnapshotRequest {

                    /** SetLabelsRegionSnapshotRequest project */
                    project?: (string|null);

                    /** SetLabelsRegionSnapshotRequest region */
                    region?: (string|null);

                    /** SetLabelsRegionSnapshotRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionSnapshotRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsRegionSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsRegionSnapshotRequest. */
                class SetLabelsRegionSnapshotRequest implements ISetLabelsRegionSnapshotRequest {

                    /**
                     * Constructs a new SetLabelsRegionSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsRegionSnapshotRequest);

                    /** SetLabelsRegionSnapshotRequest project. */
                    public project: string;

                    /** SetLabelsRegionSnapshotRequest region. */
                    public region: string;

                    /** SetLabelsRegionSnapshotRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsRegionSnapshotRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsRegionSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsRegionSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsRegionSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsRegionSnapshotRequest): google.cloud.compute.v1beta.SetLabelsRegionSnapshotRequest;

                    /**
                     * Encodes the specified SetLabelsRegionSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsRegionSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsRegionSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsRegionSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsRegionSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsRegionSnapshotRequest;

                    /**
                     * Decodes a SetLabelsRegionSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsRegionSnapshotRequest;

                    /**
                     * Verifies a SetLabelsRegionSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsRegionSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsRegionSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsRegionSnapshotRequest;

                    /**
                     * Creates a plain object from a SetLabelsRegionSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsRegionSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsRegionSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsRegionSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsRegionSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsSecurityPolicyRequest. */
                interface ISetLabelsSecurityPolicyRequest {

                    /** SetLabelsSecurityPolicyRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsSecurityPolicyRequest project */
                    project?: (string|null);

                    /** SetLabelsSecurityPolicyRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsSecurityPolicyRequest. */
                class SetLabelsSecurityPolicyRequest implements ISetLabelsSecurityPolicyRequest {

                    /**
                     * Constructs a new SetLabelsSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsSecurityPolicyRequest);

                    /** SetLabelsSecurityPolicyRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsSecurityPolicyRequest project. */
                    public project: string;

                    /** SetLabelsSecurityPolicyRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsSecurityPolicyRequest): google.cloud.compute.v1beta.SetLabelsSecurityPolicyRequest;

                    /**
                     * Encodes the specified SetLabelsSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsSecurityPolicyRequest.verify|verify} messages.
                     * @param message SetLabelsSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsSecurityPolicyRequest.verify|verify} messages.
                     * @param message SetLabelsSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsSecurityPolicyRequest;

                    /**
                     * Decodes a SetLabelsSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsSecurityPolicyRequest;

                    /**
                     * Verifies a SetLabelsSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a SetLabelsSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsSnapshotRequest. */
                interface ISetLabelsSnapshotRequest {

                    /** SetLabelsSnapshotRequest globalSetLabelsRequestResource */
                    globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsSnapshotRequest project */
                    project?: (string|null);

                    /** SetLabelsSnapshotRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsSnapshotRequest. */
                class SetLabelsSnapshotRequest implements ISetLabelsSnapshotRequest {

                    /**
                     * Constructs a new SetLabelsSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsSnapshotRequest);

                    /** SetLabelsSnapshotRequest globalSetLabelsRequestResource. */
                    public globalSetLabelsRequestResource?: (google.cloud.compute.v1beta.IGlobalSetLabelsRequest|null);

                    /** SetLabelsSnapshotRequest project. */
                    public project: string;

                    /** SetLabelsSnapshotRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsSnapshotRequest): google.cloud.compute.v1beta.SetLabelsSnapshotRequest;

                    /**
                     * Encodes the specified SetLabelsSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsSnapshotRequest.verify|verify} messages.
                     * @param message SetLabelsSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsSnapshotRequest;

                    /**
                     * Decodes a SetLabelsSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsSnapshotRequest;

                    /**
                     * Verifies a SetLabelsSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsSnapshotRequest;

                    /**
                     * Creates a plain object from a SetLabelsSnapshotRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsTargetVpnGatewayRequest. */
                interface ISetLabelsTargetVpnGatewayRequest {

                    /** SetLabelsTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** SetLabelsTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** SetLabelsTargetVpnGatewayRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsTargetVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsTargetVpnGatewayRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsTargetVpnGatewayRequest. */
                class SetLabelsTargetVpnGatewayRequest implements ISetLabelsTargetVpnGatewayRequest {

                    /**
                     * Constructs a new SetLabelsTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsTargetVpnGatewayRequest);

                    /** SetLabelsTargetVpnGatewayRequest project. */
                    public project: string;

                    /** SetLabelsTargetVpnGatewayRequest region. */
                    public region: string;

                    /** SetLabelsTargetVpnGatewayRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsTargetVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsTargetVpnGatewayRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsTargetVpnGatewayRequest): google.cloud.compute.v1beta.SetLabelsTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified SetLabelsTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsTargetVpnGatewayRequest;

                    /**
                     * Decodes a SetLabelsTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsTargetVpnGatewayRequest;

                    /**
                     * Verifies a SetLabelsTargetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a SetLabelsTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsVpnGatewayRequest. */
                interface ISetLabelsVpnGatewayRequest {

                    /** SetLabelsVpnGatewayRequest project */
                    project?: (string|null);

                    /** SetLabelsVpnGatewayRequest region */
                    region?: (string|null);

                    /** SetLabelsVpnGatewayRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsVpnGatewayRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsVpnGatewayRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsVpnGatewayRequest. */
                class SetLabelsVpnGatewayRequest implements ISetLabelsVpnGatewayRequest {

                    /**
                     * Constructs a new SetLabelsVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsVpnGatewayRequest);

                    /** SetLabelsVpnGatewayRequest project. */
                    public project: string;

                    /** SetLabelsVpnGatewayRequest region. */
                    public region: string;

                    /** SetLabelsVpnGatewayRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsVpnGatewayRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsVpnGatewayRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsVpnGatewayRequest): google.cloud.compute.v1beta.SetLabelsVpnGatewayRequest;

                    /**
                     * Encodes the specified SetLabelsVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsVpnGatewayRequest.verify|verify} messages.
                     * @param message SetLabelsVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsVpnGatewayRequest;

                    /**
                     * Decodes a SetLabelsVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsVpnGatewayRequest;

                    /**
                     * Verifies a SetLabelsVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsVpnGatewayRequest;

                    /**
                     * Creates a plain object from a SetLabelsVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetLabelsVpnTunnelRequest. */
                interface ISetLabelsVpnTunnelRequest {

                    /** SetLabelsVpnTunnelRequest project */
                    project?: (string|null);

                    /** SetLabelsVpnTunnelRequest region */
                    region?: (string|null);

                    /** SetLabelsVpnTunnelRequest regionSetLabelsRequestResource */
                    regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsVpnTunnelRequest requestId */
                    requestId?: (string|null);

                    /** SetLabelsVpnTunnelRequest resource */
                    resource?: (string|null);
                }

                /** Represents a SetLabelsVpnTunnelRequest. */
                class SetLabelsVpnTunnelRequest implements ISetLabelsVpnTunnelRequest {

                    /**
                     * Constructs a new SetLabelsVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetLabelsVpnTunnelRequest);

                    /** SetLabelsVpnTunnelRequest project. */
                    public project: string;

                    /** SetLabelsVpnTunnelRequest region. */
                    public region: string;

                    /** SetLabelsVpnTunnelRequest regionSetLabelsRequestResource. */
                    public regionSetLabelsRequestResource?: (google.cloud.compute.v1beta.IRegionSetLabelsRequest|null);

                    /** SetLabelsVpnTunnelRequest requestId. */
                    public requestId?: (string|null);

                    /** SetLabelsVpnTunnelRequest resource. */
                    public resource: string;

                    /**
                     * Creates a new SetLabelsVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetLabelsVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetLabelsVpnTunnelRequest): google.cloud.compute.v1beta.SetLabelsVpnTunnelRequest;

                    /**
                     * Encodes the specified SetLabelsVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsVpnTunnelRequest.verify|verify} messages.
                     * @param message SetLabelsVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetLabelsVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetLabelsVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetLabelsVpnTunnelRequest.verify|verify} messages.
                     * @param message SetLabelsVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetLabelsVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetLabelsVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetLabelsVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetLabelsVpnTunnelRequest;

                    /**
                     * Decodes a SetLabelsVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetLabelsVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetLabelsVpnTunnelRequest;

                    /**
                     * Verifies a SetLabelsVpnTunnelRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetLabelsVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetLabelsVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetLabelsVpnTunnelRequest;

                    /**
                     * Creates a plain object from a SetLabelsVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message SetLabelsVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetLabelsVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetLabelsVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetLabelsVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetMachineResourcesInstanceRequest. */
                interface ISetMachineResourcesInstanceRequest {

                    /** SetMachineResourcesInstanceRequest instance */
                    instance?: (string|null);

                    /** SetMachineResourcesInstanceRequest instancesSetMachineResourcesRequestResource */
                    instancesSetMachineResourcesRequestResource?: (google.cloud.compute.v1beta.IInstancesSetMachineResourcesRequest|null);

                    /** SetMachineResourcesInstanceRequest project */
                    project?: (string|null);

                    /** SetMachineResourcesInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetMachineResourcesInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetMachineResourcesInstanceRequest. */
                class SetMachineResourcesInstanceRequest implements ISetMachineResourcesInstanceRequest {

                    /**
                     * Constructs a new SetMachineResourcesInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest);

                    /** SetMachineResourcesInstanceRequest instance. */
                    public instance: string;

                    /** SetMachineResourcesInstanceRequest instancesSetMachineResourcesRequestResource. */
                    public instancesSetMachineResourcesRequestResource?: (google.cloud.compute.v1beta.IInstancesSetMachineResourcesRequest|null);

                    /** SetMachineResourcesInstanceRequest project. */
                    public project: string;

                    /** SetMachineResourcesInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetMachineResourcesInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetMachineResourcesInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetMachineResourcesInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest): google.cloud.compute.v1beta.SetMachineResourcesInstanceRequest;

                    /**
                     * Encodes the specified SetMachineResourcesInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetMachineResourcesInstanceRequest.verify|verify} messages.
                     * @param message SetMachineResourcesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetMachineResourcesInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetMachineResourcesInstanceRequest.verify|verify} messages.
                     * @param message SetMachineResourcesInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetMachineResourcesInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetMachineResourcesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetMachineResourcesInstanceRequest;

                    /**
                     * Decodes a SetMachineResourcesInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetMachineResourcesInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetMachineResourcesInstanceRequest;

                    /**
                     * Verifies a SetMachineResourcesInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetMachineResourcesInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetMachineResourcesInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetMachineResourcesInstanceRequest;

                    /**
                     * Creates a plain object from a SetMachineResourcesInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetMachineResourcesInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetMachineResourcesInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetMachineResourcesInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetMachineResourcesInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetMachineTypeInstanceRequest. */
                interface ISetMachineTypeInstanceRequest {

                    /** SetMachineTypeInstanceRequest instance */
                    instance?: (string|null);

                    /** SetMachineTypeInstanceRequest instancesSetMachineTypeRequestResource */
                    instancesSetMachineTypeRequestResource?: (google.cloud.compute.v1beta.IInstancesSetMachineTypeRequest|null);

                    /** SetMachineTypeInstanceRequest project */
                    project?: (string|null);

                    /** SetMachineTypeInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetMachineTypeInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetMachineTypeInstanceRequest. */
                class SetMachineTypeInstanceRequest implements ISetMachineTypeInstanceRequest {

                    /**
                     * Constructs a new SetMachineTypeInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest);

                    /** SetMachineTypeInstanceRequest instance. */
                    public instance: string;

                    /** SetMachineTypeInstanceRequest instancesSetMachineTypeRequestResource. */
                    public instancesSetMachineTypeRequestResource?: (google.cloud.compute.v1beta.IInstancesSetMachineTypeRequest|null);

                    /** SetMachineTypeInstanceRequest project. */
                    public project: string;

                    /** SetMachineTypeInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetMachineTypeInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetMachineTypeInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetMachineTypeInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest): google.cloud.compute.v1beta.SetMachineTypeInstanceRequest;

                    /**
                     * Encodes the specified SetMachineTypeInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetMachineTypeInstanceRequest.verify|verify} messages.
                     * @param message SetMachineTypeInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetMachineTypeInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetMachineTypeInstanceRequest.verify|verify} messages.
                     * @param message SetMachineTypeInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetMachineTypeInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetMachineTypeInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetMachineTypeInstanceRequest;

                    /**
                     * Decodes a SetMachineTypeInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetMachineTypeInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetMachineTypeInstanceRequest;

                    /**
                     * Verifies a SetMachineTypeInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetMachineTypeInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetMachineTypeInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetMachineTypeInstanceRequest;

                    /**
                     * Creates a plain object from a SetMachineTypeInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetMachineTypeInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetMachineTypeInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetMachineTypeInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetMachineTypeInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetManagedProtectionTierProjectRequest. */
                interface ISetManagedProtectionTierProjectRequest {

                    /** SetManagedProtectionTierProjectRequest project */
                    project?: (string|null);

                    /** SetManagedProtectionTierProjectRequest projectsSetManagedProtectionTierRequestResource */
                    projectsSetManagedProtectionTierRequestResource?: (google.cloud.compute.v1beta.IProjectsSetManagedProtectionTierRequest|null);

                    /** SetManagedProtectionTierProjectRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetManagedProtectionTierProjectRequest. */
                class SetManagedProtectionTierProjectRequest implements ISetManagedProtectionTierProjectRequest {

                    /**
                     * Constructs a new SetManagedProtectionTierProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetManagedProtectionTierProjectRequest);

                    /** SetManagedProtectionTierProjectRequest project. */
                    public project: string;

                    /** SetManagedProtectionTierProjectRequest projectsSetManagedProtectionTierRequestResource. */
                    public projectsSetManagedProtectionTierRequestResource?: (google.cloud.compute.v1beta.IProjectsSetManagedProtectionTierRequest|null);

                    /** SetManagedProtectionTierProjectRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetManagedProtectionTierProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetManagedProtectionTierProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetManagedProtectionTierProjectRequest): google.cloud.compute.v1beta.SetManagedProtectionTierProjectRequest;

                    /**
                     * Encodes the specified SetManagedProtectionTierProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetManagedProtectionTierProjectRequest.verify|verify} messages.
                     * @param message SetManagedProtectionTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetManagedProtectionTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetManagedProtectionTierProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetManagedProtectionTierProjectRequest.verify|verify} messages.
                     * @param message SetManagedProtectionTierProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetManagedProtectionTierProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetManagedProtectionTierProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetManagedProtectionTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetManagedProtectionTierProjectRequest;

                    /**
                     * Decodes a SetManagedProtectionTierProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetManagedProtectionTierProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetManagedProtectionTierProjectRequest;

                    /**
                     * Verifies a SetManagedProtectionTierProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetManagedProtectionTierProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetManagedProtectionTierProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetManagedProtectionTierProjectRequest;

                    /**
                     * Creates a plain object from a SetManagedProtectionTierProjectRequest message. Also converts values to other types if specified.
                     * @param message SetManagedProtectionTierProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetManagedProtectionTierProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetManagedProtectionTierProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetManagedProtectionTierProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetMetadataInstanceRequest. */
                interface ISetMetadataInstanceRequest {

                    /** SetMetadataInstanceRequest instance */
                    instance?: (string|null);

                    /** SetMetadataInstanceRequest metadataResource */
                    metadataResource?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** SetMetadataInstanceRequest project */
                    project?: (string|null);

                    /** SetMetadataInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetMetadataInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetMetadataInstanceRequest. */
                class SetMetadataInstanceRequest implements ISetMetadataInstanceRequest {

                    /**
                     * Constructs a new SetMetadataInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetMetadataInstanceRequest);

                    /** SetMetadataInstanceRequest instance. */
                    public instance: string;

                    /** SetMetadataInstanceRequest metadataResource. */
                    public metadataResource?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** SetMetadataInstanceRequest project. */
                    public project: string;

                    /** SetMetadataInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetMetadataInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetMetadataInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetMetadataInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetMetadataInstanceRequest): google.cloud.compute.v1beta.SetMetadataInstanceRequest;

                    /**
                     * Encodes the specified SetMetadataInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetMetadataInstanceRequest.verify|verify} messages.
                     * @param message SetMetadataInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetMetadataInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetMetadataInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetMetadataInstanceRequest.verify|verify} messages.
                     * @param message SetMetadataInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetMetadataInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetMetadataInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetMetadataInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetMetadataInstanceRequest;

                    /**
                     * Decodes a SetMetadataInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetMetadataInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetMetadataInstanceRequest;

                    /**
                     * Verifies a SetMetadataInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetMetadataInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetMetadataInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetMetadataInstanceRequest;

                    /**
                     * Creates a plain object from a SetMetadataInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetMetadataInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetMetadataInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetMetadataInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetMetadataInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetMinCpuPlatformInstanceRequest. */
                interface ISetMinCpuPlatformInstanceRequest {

                    /** SetMinCpuPlatformInstanceRequest instance */
                    instance?: (string|null);

                    /** SetMinCpuPlatformInstanceRequest instancesSetMinCpuPlatformRequestResource */
                    instancesSetMinCpuPlatformRequestResource?: (google.cloud.compute.v1beta.IInstancesSetMinCpuPlatformRequest|null);

                    /** SetMinCpuPlatformInstanceRequest project */
                    project?: (string|null);

                    /** SetMinCpuPlatformInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetMinCpuPlatformInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetMinCpuPlatformInstanceRequest. */
                class SetMinCpuPlatformInstanceRequest implements ISetMinCpuPlatformInstanceRequest {

                    /**
                     * Constructs a new SetMinCpuPlatformInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest);

                    /** SetMinCpuPlatformInstanceRequest instance. */
                    public instance: string;

                    /** SetMinCpuPlatformInstanceRequest instancesSetMinCpuPlatformRequestResource. */
                    public instancesSetMinCpuPlatformRequestResource?: (google.cloud.compute.v1beta.IInstancesSetMinCpuPlatformRequest|null);

                    /** SetMinCpuPlatformInstanceRequest project. */
                    public project: string;

                    /** SetMinCpuPlatformInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetMinCpuPlatformInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetMinCpuPlatformInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetMinCpuPlatformInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest): google.cloud.compute.v1beta.SetMinCpuPlatformInstanceRequest;

                    /**
                     * Encodes the specified SetMinCpuPlatformInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetMinCpuPlatformInstanceRequest.verify|verify} messages.
                     * @param message SetMinCpuPlatformInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetMinCpuPlatformInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetMinCpuPlatformInstanceRequest.verify|verify} messages.
                     * @param message SetMinCpuPlatformInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetMinCpuPlatformInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetMinCpuPlatformInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetMinCpuPlatformInstanceRequest;

                    /**
                     * Decodes a SetMinCpuPlatformInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetMinCpuPlatformInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetMinCpuPlatformInstanceRequest;

                    /**
                     * Verifies a SetMinCpuPlatformInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetMinCpuPlatformInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetMinCpuPlatformInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetMinCpuPlatformInstanceRequest;

                    /**
                     * Creates a plain object from a SetMinCpuPlatformInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetMinCpuPlatformInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetMinCpuPlatformInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetMinCpuPlatformInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetMinCpuPlatformInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetNameInstanceRequest. */
                interface ISetNameInstanceRequest {

                    /** SetNameInstanceRequest instance */
                    instance?: (string|null);

                    /** SetNameInstanceRequest instancesSetNameRequestResource */
                    instancesSetNameRequestResource?: (google.cloud.compute.v1beta.IInstancesSetNameRequest|null);

                    /** SetNameInstanceRequest project */
                    project?: (string|null);

                    /** SetNameInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetNameInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetNameInstanceRequest. */
                class SetNameInstanceRequest implements ISetNameInstanceRequest {

                    /**
                     * Constructs a new SetNameInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetNameInstanceRequest);

                    /** SetNameInstanceRequest instance. */
                    public instance: string;

                    /** SetNameInstanceRequest instancesSetNameRequestResource. */
                    public instancesSetNameRequestResource?: (google.cloud.compute.v1beta.IInstancesSetNameRequest|null);

                    /** SetNameInstanceRequest project. */
                    public project: string;

                    /** SetNameInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetNameInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetNameInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetNameInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetNameInstanceRequest): google.cloud.compute.v1beta.SetNameInstanceRequest;

                    /**
                     * Encodes the specified SetNameInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetNameInstanceRequest.verify|verify} messages.
                     * @param message SetNameInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetNameInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetNameInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetNameInstanceRequest.verify|verify} messages.
                     * @param message SetNameInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetNameInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetNameInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetNameInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetNameInstanceRequest;

                    /**
                     * Decodes a SetNameInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetNameInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetNameInstanceRequest;

                    /**
                     * Verifies a SetNameInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetNameInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetNameInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetNameInstanceRequest;

                    /**
                     * Creates a plain object from a SetNameInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetNameInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetNameInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetNameInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetNameInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetNamedPortsInstanceGroupRequest. */
                interface ISetNamedPortsInstanceGroupRequest {

                    /** SetNamedPortsInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** SetNamedPortsInstanceGroupRequest instanceGroupsSetNamedPortsRequestResource */
                    instanceGroupsSetNamedPortsRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupsSetNamedPortsRequest|null);

                    /** SetNamedPortsInstanceGroupRequest project */
                    project?: (string|null);

                    /** SetNamedPortsInstanceGroupRequest requestId */
                    requestId?: (string|null);

                    /** SetNamedPortsInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetNamedPortsInstanceGroupRequest. */
                class SetNamedPortsInstanceGroupRequest implements ISetNamedPortsInstanceGroupRequest {

                    /**
                     * Constructs a new SetNamedPortsInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetNamedPortsInstanceGroupRequest);

                    /** SetNamedPortsInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** SetNamedPortsInstanceGroupRequest instanceGroupsSetNamedPortsRequestResource. */
                    public instanceGroupsSetNamedPortsRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupsSetNamedPortsRequest|null);

                    /** SetNamedPortsInstanceGroupRequest project. */
                    public project: string;

                    /** SetNamedPortsInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** SetNamedPortsInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetNamedPortsInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetNamedPortsInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetNamedPortsInstanceGroupRequest): google.cloud.compute.v1beta.SetNamedPortsInstanceGroupRequest;

                    /**
                     * Encodes the specified SetNamedPortsInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetNamedPortsInstanceGroupRequest.verify|verify} messages.
                     * @param message SetNamedPortsInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetNamedPortsInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetNamedPortsInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetNamedPortsInstanceGroupRequest.verify|verify} messages.
                     * @param message SetNamedPortsInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetNamedPortsInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetNamedPortsInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetNamedPortsInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetNamedPortsInstanceGroupRequest;

                    /**
                     * Decodes a SetNamedPortsInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetNamedPortsInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetNamedPortsInstanceGroupRequest;

                    /**
                     * Verifies a SetNamedPortsInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetNamedPortsInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetNamedPortsInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetNamedPortsInstanceGroupRequest;

                    /**
                     * Creates a plain object from a SetNamedPortsInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message SetNamedPortsInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetNamedPortsInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetNamedPortsInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetNamedPortsInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetNamedPortsRegionInstanceGroupRequest. */
                interface ISetNamedPortsRegionInstanceGroupRequest {

                    /** SetNamedPortsRegionInstanceGroupRequest instanceGroup */
                    instanceGroup?: (string|null);

                    /** SetNamedPortsRegionInstanceGroupRequest project */
                    project?: (string|null);

                    /** SetNamedPortsRegionInstanceGroupRequest region */
                    region?: (string|null);

                    /** SetNamedPortsRegionInstanceGroupRequest regionInstanceGroupsSetNamedPortsRequestResource */
                    regionInstanceGroupsSetNamedPortsRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupsSetNamedPortsRequest|null);

                    /** SetNamedPortsRegionInstanceGroupRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetNamedPortsRegionInstanceGroupRequest. */
                class SetNamedPortsRegionInstanceGroupRequest implements ISetNamedPortsRegionInstanceGroupRequest {

                    /**
                     * Constructs a new SetNamedPortsRegionInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetNamedPortsRegionInstanceGroupRequest);

                    /** SetNamedPortsRegionInstanceGroupRequest instanceGroup. */
                    public instanceGroup: string;

                    /** SetNamedPortsRegionInstanceGroupRequest project. */
                    public project: string;

                    /** SetNamedPortsRegionInstanceGroupRequest region. */
                    public region: string;

                    /** SetNamedPortsRegionInstanceGroupRequest regionInstanceGroupsSetNamedPortsRequestResource. */
                    public regionInstanceGroupsSetNamedPortsRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupsSetNamedPortsRequest|null);

                    /** SetNamedPortsRegionInstanceGroupRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetNamedPortsRegionInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetNamedPortsRegionInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetNamedPortsRegionInstanceGroupRequest): google.cloud.compute.v1beta.SetNamedPortsRegionInstanceGroupRequest;

                    /**
                     * Encodes the specified SetNamedPortsRegionInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetNamedPortsRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message SetNamedPortsRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetNamedPortsRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetNamedPortsRegionInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetNamedPortsRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message SetNamedPortsRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetNamedPortsRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetNamedPortsRegionInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetNamedPortsRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetNamedPortsRegionInstanceGroupRequest;

                    /**
                     * Decodes a SetNamedPortsRegionInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetNamedPortsRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetNamedPortsRegionInstanceGroupRequest;

                    /**
                     * Verifies a SetNamedPortsRegionInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetNamedPortsRegionInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetNamedPortsRegionInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetNamedPortsRegionInstanceGroupRequest;

                    /**
                     * Creates a plain object from a SetNamedPortsRegionInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message SetNamedPortsRegionInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetNamedPortsRegionInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetNamedPortsRegionInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetNamedPortsRegionInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetNodeTemplateNodeGroupRequest. */
                interface ISetNodeTemplateNodeGroupRequest {

                    /** SetNodeTemplateNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** SetNodeTemplateNodeGroupRequest nodeGroupsSetNodeTemplateRequestResource */
                    nodeGroupsSetNodeTemplateRequestResource?: (google.cloud.compute.v1beta.INodeGroupsSetNodeTemplateRequest|null);

                    /** SetNodeTemplateNodeGroupRequest project */
                    project?: (string|null);

                    /** SetNodeTemplateNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** SetNodeTemplateNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetNodeTemplateNodeGroupRequest. */
                class SetNodeTemplateNodeGroupRequest implements ISetNodeTemplateNodeGroupRequest {

                    /**
                     * Constructs a new SetNodeTemplateNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetNodeTemplateNodeGroupRequest);

                    /** SetNodeTemplateNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** SetNodeTemplateNodeGroupRequest nodeGroupsSetNodeTemplateRequestResource. */
                    public nodeGroupsSetNodeTemplateRequestResource?: (google.cloud.compute.v1beta.INodeGroupsSetNodeTemplateRequest|null);

                    /** SetNodeTemplateNodeGroupRequest project. */
                    public project: string;

                    /** SetNodeTemplateNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** SetNodeTemplateNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetNodeTemplateNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetNodeTemplateNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetNodeTemplateNodeGroupRequest): google.cloud.compute.v1beta.SetNodeTemplateNodeGroupRequest;

                    /**
                     * Encodes the specified SetNodeTemplateNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetNodeTemplateNodeGroupRequest.verify|verify} messages.
                     * @param message SetNodeTemplateNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetNodeTemplateNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetNodeTemplateNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetNodeTemplateNodeGroupRequest.verify|verify} messages.
                     * @param message SetNodeTemplateNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetNodeTemplateNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetNodeTemplateNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetNodeTemplateNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetNodeTemplateNodeGroupRequest;

                    /**
                     * Decodes a SetNodeTemplateNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetNodeTemplateNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetNodeTemplateNodeGroupRequest;

                    /**
                     * Verifies a SetNodeTemplateNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetNodeTemplateNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetNodeTemplateNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetNodeTemplateNodeGroupRequest;

                    /**
                     * Creates a plain object from a SetNodeTemplateNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message SetNodeTemplateNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetNodeTemplateNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetNodeTemplateNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetNodeTemplateNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetPrivateIpGoogleAccessSubnetworkRequest. */
                interface ISetPrivateIpGoogleAccessSubnetworkRequest {

                    /** SetPrivateIpGoogleAccessSubnetworkRequest project */
                    project?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest region */
                    region?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest requestId */
                    requestId?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest subnetwork */
                    subnetwork?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest subnetworksSetPrivateIpGoogleAccessRequestResource */
                    subnetworksSetPrivateIpGoogleAccessRequestResource?: (google.cloud.compute.v1beta.ISubnetworksSetPrivateIpGoogleAccessRequest|null);
                }

                /** Represents a SetPrivateIpGoogleAccessSubnetworkRequest. */
                class SetPrivateIpGoogleAccessSubnetworkRequest implements ISetPrivateIpGoogleAccessSubnetworkRequest {

                    /**
                     * Constructs a new SetPrivateIpGoogleAccessSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetPrivateIpGoogleAccessSubnetworkRequest);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest project. */
                    public project: string;

                    /** SetPrivateIpGoogleAccessSubnetworkRequest region. */
                    public region: string;

                    /** SetPrivateIpGoogleAccessSubnetworkRequest requestId. */
                    public requestId?: (string|null);

                    /** SetPrivateIpGoogleAccessSubnetworkRequest subnetwork. */
                    public subnetwork: string;

                    /** SetPrivateIpGoogleAccessSubnetworkRequest subnetworksSetPrivateIpGoogleAccessRequestResource. */
                    public subnetworksSetPrivateIpGoogleAccessRequestResource?: (google.cloud.compute.v1beta.ISubnetworksSetPrivateIpGoogleAccessRequest|null);

                    /**
                     * Creates a new SetPrivateIpGoogleAccessSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetPrivateIpGoogleAccessSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetPrivateIpGoogleAccessSubnetworkRequest): google.cloud.compute.v1beta.SetPrivateIpGoogleAccessSubnetworkRequest;

                    /**
                     * Encodes the specified SetPrivateIpGoogleAccessSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetPrivateIpGoogleAccessSubnetworkRequest.verify|verify} messages.
                     * @param message SetPrivateIpGoogleAccessSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetPrivateIpGoogleAccessSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetPrivateIpGoogleAccessSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetPrivateIpGoogleAccessSubnetworkRequest.verify|verify} messages.
                     * @param message SetPrivateIpGoogleAccessSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetPrivateIpGoogleAccessSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetPrivateIpGoogleAccessSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetPrivateIpGoogleAccessSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetPrivateIpGoogleAccessSubnetworkRequest;

                    /**
                     * Decodes a SetPrivateIpGoogleAccessSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetPrivateIpGoogleAccessSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetPrivateIpGoogleAccessSubnetworkRequest;

                    /**
                     * Verifies a SetPrivateIpGoogleAccessSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetPrivateIpGoogleAccessSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetPrivateIpGoogleAccessSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetPrivateIpGoogleAccessSubnetworkRequest;

                    /**
                     * Creates a plain object from a SetPrivateIpGoogleAccessSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message SetPrivateIpGoogleAccessSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetPrivateIpGoogleAccessSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetPrivateIpGoogleAccessSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetPrivateIpGoogleAccessSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetProxyHeaderTargetSslProxyRequest. */
                interface ISetProxyHeaderTargetSslProxyRequest {

                    /** SetProxyHeaderTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetProxyHeaderTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetProxyHeaderTargetSslProxyRequest targetSslProxiesSetProxyHeaderRequestResource */
                    targetSslProxiesSetProxyHeaderRequestResource?: (google.cloud.compute.v1beta.ITargetSslProxiesSetProxyHeaderRequest|null);

                    /** SetProxyHeaderTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetProxyHeaderTargetSslProxyRequest. */
                class SetProxyHeaderTargetSslProxyRequest implements ISetProxyHeaderTargetSslProxyRequest {

                    /**
                     * Constructs a new SetProxyHeaderTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetProxyHeaderTargetSslProxyRequest);

                    /** SetProxyHeaderTargetSslProxyRequest project. */
                    public project: string;

                    /** SetProxyHeaderTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetProxyHeaderTargetSslProxyRequest targetSslProxiesSetProxyHeaderRequestResource. */
                    public targetSslProxiesSetProxyHeaderRequestResource?: (google.cloud.compute.v1beta.ITargetSslProxiesSetProxyHeaderRequest|null);

                    /** SetProxyHeaderTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetProxyHeaderTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetProxyHeaderTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetProxyHeaderTargetSslProxyRequest): google.cloud.compute.v1beta.SetProxyHeaderTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetProxyHeaderTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetProxyHeaderTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetProxyHeaderTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetProxyHeaderTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetProxyHeaderTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetProxyHeaderTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetProxyHeaderTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetProxyHeaderTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetProxyHeaderTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetProxyHeaderTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetProxyHeaderTargetSslProxyRequest;

                    /**
                     * Decodes a SetProxyHeaderTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetProxyHeaderTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetProxyHeaderTargetSslProxyRequest;

                    /**
                     * Verifies a SetProxyHeaderTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetProxyHeaderTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetProxyHeaderTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetProxyHeaderTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetProxyHeaderTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetProxyHeaderTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetProxyHeaderTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetProxyHeaderTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetProxyHeaderTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetProxyHeaderTargetTcpProxyRequest. */
                interface ISetProxyHeaderTargetTcpProxyRequest {

                    /** SetProxyHeaderTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** SetProxyHeaderTargetTcpProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetProxyHeaderTargetTcpProxyRequest targetTcpProxiesSetProxyHeaderRequestResource */
                    targetTcpProxiesSetProxyHeaderRequestResource?: (google.cloud.compute.v1beta.ITargetTcpProxiesSetProxyHeaderRequest|null);

                    /** SetProxyHeaderTargetTcpProxyRequest targetTcpProxy */
                    targetTcpProxy?: (string|null);
                }

                /** Represents a SetProxyHeaderTargetTcpProxyRequest. */
                class SetProxyHeaderTargetTcpProxyRequest implements ISetProxyHeaderTargetTcpProxyRequest {

                    /**
                     * Constructs a new SetProxyHeaderTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetProxyHeaderTargetTcpProxyRequest);

                    /** SetProxyHeaderTargetTcpProxyRequest project. */
                    public project: string;

                    /** SetProxyHeaderTargetTcpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetProxyHeaderTargetTcpProxyRequest targetTcpProxiesSetProxyHeaderRequestResource. */
                    public targetTcpProxiesSetProxyHeaderRequestResource?: (google.cloud.compute.v1beta.ITargetTcpProxiesSetProxyHeaderRequest|null);

                    /** SetProxyHeaderTargetTcpProxyRequest targetTcpProxy. */
                    public targetTcpProxy: string;

                    /**
                     * Creates a new SetProxyHeaderTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetProxyHeaderTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetProxyHeaderTargetTcpProxyRequest): google.cloud.compute.v1beta.SetProxyHeaderTargetTcpProxyRequest;

                    /**
                     * Encodes the specified SetProxyHeaderTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetProxyHeaderTargetTcpProxyRequest.verify|verify} messages.
                     * @param message SetProxyHeaderTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetProxyHeaderTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetProxyHeaderTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetProxyHeaderTargetTcpProxyRequest.verify|verify} messages.
                     * @param message SetProxyHeaderTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetProxyHeaderTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetProxyHeaderTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetProxyHeaderTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetProxyHeaderTargetTcpProxyRequest;

                    /**
                     * Decodes a SetProxyHeaderTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetProxyHeaderTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetProxyHeaderTargetTcpProxyRequest;

                    /**
                     * Verifies a SetProxyHeaderTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetProxyHeaderTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetProxyHeaderTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetProxyHeaderTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a SetProxyHeaderTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message SetProxyHeaderTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetProxyHeaderTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetProxyHeaderTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetProxyHeaderTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetQuicOverrideTargetHttpsProxyRequest. */
                interface ISetQuicOverrideTargetHttpsProxyRequest {

                    /** SetQuicOverrideTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest targetHttpsProxiesSetQuicOverrideRequestResource */
                    targetHttpsProxiesSetQuicOverrideRequestResource?: (google.cloud.compute.v1beta.ITargetHttpsProxiesSetQuicOverrideRequest|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetQuicOverrideTargetHttpsProxyRequest. */
                class SetQuicOverrideTargetHttpsProxyRequest implements ISetQuicOverrideTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetQuicOverrideTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetQuicOverrideTargetHttpsProxyRequest);

                    /** SetQuicOverrideTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetQuicOverrideTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest targetHttpsProxiesSetQuicOverrideRequestResource. */
                    public targetHttpsProxiesSetQuicOverrideRequestResource?: (google.cloud.compute.v1beta.ITargetHttpsProxiesSetQuicOverrideRequest|null);

                    /** SetQuicOverrideTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetQuicOverrideTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetQuicOverrideTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetQuicOverrideTargetHttpsProxyRequest): google.cloud.compute.v1beta.SetQuicOverrideTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetQuicOverrideTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetQuicOverrideTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetQuicOverrideTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetQuicOverrideTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetQuicOverrideTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetQuicOverrideTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetQuicOverrideTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetQuicOverrideTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetQuicOverrideTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetQuicOverrideTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetQuicOverrideTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetQuicOverrideTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetQuicOverrideTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetQuicOverrideTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetQuicOverrideTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetQuicOverrideTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetQuicOverrideTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetQuicOverrideTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetQuicOverrideTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetQuicOverrideTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetQuicOverrideTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetQuicOverrideTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetQuicOverrideTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSchedulingInstanceRequest. */
                interface ISetSchedulingInstanceRequest {

                    /** SetSchedulingInstanceRequest instance */
                    instance?: (string|null);

                    /** SetSchedulingInstanceRequest project */
                    project?: (string|null);

                    /** SetSchedulingInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetSchedulingInstanceRequest schedulingResource */
                    schedulingResource?: (google.cloud.compute.v1beta.IScheduling|null);

                    /** SetSchedulingInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetSchedulingInstanceRequest. */
                class SetSchedulingInstanceRequest implements ISetSchedulingInstanceRequest {

                    /**
                     * Constructs a new SetSchedulingInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSchedulingInstanceRequest);

                    /** SetSchedulingInstanceRequest instance. */
                    public instance: string;

                    /** SetSchedulingInstanceRequest project. */
                    public project: string;

                    /** SetSchedulingInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSchedulingInstanceRequest schedulingResource. */
                    public schedulingResource?: (google.cloud.compute.v1beta.IScheduling|null);

                    /** SetSchedulingInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetSchedulingInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSchedulingInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSchedulingInstanceRequest): google.cloud.compute.v1beta.SetSchedulingInstanceRequest;

                    /**
                     * Encodes the specified SetSchedulingInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSchedulingInstanceRequest.verify|verify} messages.
                     * @param message SetSchedulingInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSchedulingInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSchedulingInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSchedulingInstanceRequest.verify|verify} messages.
                     * @param message SetSchedulingInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSchedulingInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSchedulingInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSchedulingInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSchedulingInstanceRequest;

                    /**
                     * Decodes a SetSchedulingInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSchedulingInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSchedulingInstanceRequest;

                    /**
                     * Verifies a SetSchedulingInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSchedulingInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSchedulingInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSchedulingInstanceRequest;

                    /**
                     * Creates a plain object from a SetSchedulingInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetSchedulingInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSchedulingInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSchedulingInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSchedulingInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyBackendServiceRequest. */
                interface ISetSecurityPolicyBackendServiceRequest {

                    /** SetSecurityPolicyBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** SetSecurityPolicyBackendServiceRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyBackendServiceRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyBackendServiceRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);
                }

                /** Represents a SetSecurityPolicyBackendServiceRequest. */
                class SetSecurityPolicyBackendServiceRequest implements ISetSecurityPolicyBackendServiceRequest {

                    /**
                     * Constructs a new SetSecurityPolicyBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyBackendServiceRequest);

                    /** SetSecurityPolicyBackendServiceRequest backendService. */
                    public backendService: string;

                    /** SetSecurityPolicyBackendServiceRequest project. */
                    public project: string;

                    /** SetSecurityPolicyBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyBackendServiceRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);

                    /**
                     * Creates a new SetSecurityPolicyBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyBackendServiceRequest): google.cloud.compute.v1beta.SetSecurityPolicyBackendServiceRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSecurityPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyBackendServiceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSecurityPolicyBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSecurityPolicyBackendServiceRequest;

                    /**
                     * Decodes a SetSecurityPolicyBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSecurityPolicyBackendServiceRequest;

                    /**
                     * Verifies a SetSecurityPolicyBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSecurityPolicyBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSecurityPolicyBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyInstanceRequest. */
                interface ISetSecurityPolicyInstanceRequest {

                    /** SetSecurityPolicyInstanceRequest instance */
                    instance?: (string|null);

                    /** SetSecurityPolicyInstanceRequest instancesSetSecurityPolicyRequestResource */
                    instancesSetSecurityPolicyRequestResource?: (google.cloud.compute.v1beta.IInstancesSetSecurityPolicyRequest|null);

                    /** SetSecurityPolicyInstanceRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetSecurityPolicyInstanceRequest. */
                class SetSecurityPolicyInstanceRequest implements ISetSecurityPolicyInstanceRequest {

                    /**
                     * Constructs a new SetSecurityPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest);

                    /** SetSecurityPolicyInstanceRequest instance. */
                    public instance: string;

                    /** SetSecurityPolicyInstanceRequest instancesSetSecurityPolicyRequestResource. */
                    public instancesSetSecurityPolicyRequestResource?: (google.cloud.compute.v1beta.IInstancesSetSecurityPolicyRequest|null);

                    /** SetSecurityPolicyInstanceRequest project. */
                    public project: string;

                    /** SetSecurityPolicyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetSecurityPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest): google.cloud.compute.v1beta.SetSecurityPolicyInstanceRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSecurityPolicyInstanceRequest;

                    /**
                     * Decodes a SetSecurityPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSecurityPolicyInstanceRequest;

                    /**
                     * Verifies a SetSecurityPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSecurityPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSecurityPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyRegionBackendServiceRequest. */
                interface ISetSecurityPolicyRegionBackendServiceRequest {

                    /** SetSecurityPolicyRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);
                }

                /** Represents a SetSecurityPolicyRegionBackendServiceRequest. */
                class SetSecurityPolicyRegionBackendServiceRequest implements ISetSecurityPolicyRegionBackendServiceRequest {

                    /**
                     * Constructs a new SetSecurityPolicyRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyRegionBackendServiceRequest);

                    /** SetSecurityPolicyRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** SetSecurityPolicyRegionBackendServiceRequest project. */
                    public project: string;

                    /** SetSecurityPolicyRegionBackendServiceRequest region. */
                    public region: string;

                    /** SetSecurityPolicyRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyRegionBackendServiceRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);

                    /**
                     * Creates a new SetSecurityPolicyRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyRegionBackendServiceRequest): google.cloud.compute.v1beta.SetSecurityPolicyRegionBackendServiceRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSecurityPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyRegionBackendServiceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSecurityPolicyRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSecurityPolicyRegionBackendServiceRequest;

                    /**
                     * Decodes a SetSecurityPolicyRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSecurityPolicyRegionBackendServiceRequest;

                    /**
                     * Verifies a SetSecurityPolicyRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSecurityPolicyRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSecurityPolicyRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyTargetInstanceRequest. */
                interface ISetSecurityPolicyTargetInstanceRequest {

                    /** SetSecurityPolicyTargetInstanceRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyTargetInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyTargetInstanceRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);

                    /** SetSecurityPolicyTargetInstanceRequest targetInstance */
                    targetInstance?: (string|null);

                    /** SetSecurityPolicyTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetSecurityPolicyTargetInstanceRequest. */
                class SetSecurityPolicyTargetInstanceRequest implements ISetSecurityPolicyTargetInstanceRequest {

                    /**
                     * Constructs a new SetSecurityPolicyTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyTargetInstanceRequest);

                    /** SetSecurityPolicyTargetInstanceRequest project. */
                    public project: string;

                    /** SetSecurityPolicyTargetInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyTargetInstanceRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);

                    /** SetSecurityPolicyTargetInstanceRequest targetInstance. */
                    public targetInstance: string;

                    /** SetSecurityPolicyTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetSecurityPolicyTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyTargetInstanceRequest): google.cloud.compute.v1beta.SetSecurityPolicyTargetInstanceRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyTargetInstanceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSecurityPolicyTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyTargetInstanceRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSecurityPolicyTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSecurityPolicyTargetInstanceRequest;

                    /**
                     * Decodes a SetSecurityPolicyTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSecurityPolicyTargetInstanceRequest;

                    /**
                     * Verifies a SetSecurityPolicyTargetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSecurityPolicyTargetInstanceRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSecurityPolicyTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSecurityPolicyTargetPoolRequest. */
                interface ISetSecurityPolicyTargetPoolRequest {

                    /** SetSecurityPolicyTargetPoolRequest project */
                    project?: (string|null);

                    /** SetSecurityPolicyTargetPoolRequest region */
                    region?: (string|null);

                    /** SetSecurityPolicyTargetPoolRequest requestId */
                    requestId?: (string|null);

                    /** SetSecurityPolicyTargetPoolRequest securityPolicyReferenceResource */
                    securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);

                    /** SetSecurityPolicyTargetPoolRequest targetPool */
                    targetPool?: (string|null);
                }

                /** Represents a SetSecurityPolicyTargetPoolRequest. */
                class SetSecurityPolicyTargetPoolRequest implements ISetSecurityPolicyTargetPoolRequest {

                    /**
                     * Constructs a new SetSecurityPolicyTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyTargetPoolRequest);

                    /** SetSecurityPolicyTargetPoolRequest project. */
                    public project: string;

                    /** SetSecurityPolicyTargetPoolRequest region. */
                    public region: string;

                    /** SetSecurityPolicyTargetPoolRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSecurityPolicyTargetPoolRequest securityPolicyReferenceResource. */
                    public securityPolicyReferenceResource?: (google.cloud.compute.v1beta.ISecurityPolicyReference|null);

                    /** SetSecurityPolicyTargetPoolRequest targetPool. */
                    public targetPool: string;

                    /**
                     * Creates a new SetSecurityPolicyTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSecurityPolicyTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSecurityPolicyTargetPoolRequest): google.cloud.compute.v1beta.SetSecurityPolicyTargetPoolRequest;

                    /**
                     * Encodes the specified SetSecurityPolicyTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyTargetPoolRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSecurityPolicyTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSecurityPolicyTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSecurityPolicyTargetPoolRequest.verify|verify} messages.
                     * @param message SetSecurityPolicyTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSecurityPolicyTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSecurityPolicyTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSecurityPolicyTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSecurityPolicyTargetPoolRequest;

                    /**
                     * Decodes a SetSecurityPolicyTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSecurityPolicyTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSecurityPolicyTargetPoolRequest;

                    /**
                     * Verifies a SetSecurityPolicyTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSecurityPolicyTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSecurityPolicyTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSecurityPolicyTargetPoolRequest;

                    /**
                     * Creates a plain object from a SetSecurityPolicyTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message SetSecurityPolicyTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSecurityPolicyTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSecurityPolicyTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSecurityPolicyTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetServiceAccountInstanceRequest. */
                interface ISetServiceAccountInstanceRequest {

                    /** SetServiceAccountInstanceRequest instance */
                    instance?: (string|null);

                    /** SetServiceAccountInstanceRequest instancesSetServiceAccountRequestResource */
                    instancesSetServiceAccountRequestResource?: (google.cloud.compute.v1beta.IInstancesSetServiceAccountRequest|null);

                    /** SetServiceAccountInstanceRequest project */
                    project?: (string|null);

                    /** SetServiceAccountInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetServiceAccountInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetServiceAccountInstanceRequest. */
                class SetServiceAccountInstanceRequest implements ISetServiceAccountInstanceRequest {

                    /**
                     * Constructs a new SetServiceAccountInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest);

                    /** SetServiceAccountInstanceRequest instance. */
                    public instance: string;

                    /** SetServiceAccountInstanceRequest instancesSetServiceAccountRequestResource. */
                    public instancesSetServiceAccountRequestResource?: (google.cloud.compute.v1beta.IInstancesSetServiceAccountRequest|null);

                    /** SetServiceAccountInstanceRequest project. */
                    public project: string;

                    /** SetServiceAccountInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetServiceAccountInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetServiceAccountInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetServiceAccountInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest): google.cloud.compute.v1beta.SetServiceAccountInstanceRequest;

                    /**
                     * Encodes the specified SetServiceAccountInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetServiceAccountInstanceRequest.verify|verify} messages.
                     * @param message SetServiceAccountInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetServiceAccountInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetServiceAccountInstanceRequest.verify|verify} messages.
                     * @param message SetServiceAccountInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetServiceAccountInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetServiceAccountInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetServiceAccountInstanceRequest;

                    /**
                     * Decodes a SetServiceAccountInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetServiceAccountInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetServiceAccountInstanceRequest;

                    /**
                     * Verifies a SetServiceAccountInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetServiceAccountInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetServiceAccountInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetServiceAccountInstanceRequest;

                    /**
                     * Creates a plain object from a SetServiceAccountInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetServiceAccountInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetServiceAccountInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetServiceAccountInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetServiceAccountInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetShieldedInstanceIntegrityPolicyInstanceRequest. */
                interface ISetShieldedInstanceIntegrityPolicyInstanceRequest {

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest instance */
                    instance?: (string|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest project */
                    project?: (string|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest shieldedInstanceIntegrityPolicyResource */
                    shieldedInstanceIntegrityPolicyResource?: (google.cloud.compute.v1beta.IShieldedInstanceIntegrityPolicy|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetShieldedInstanceIntegrityPolicyInstanceRequest. */
                class SetShieldedInstanceIntegrityPolicyInstanceRequest implements ISetShieldedInstanceIntegrityPolicyInstanceRequest {

                    /**
                     * Constructs a new SetShieldedInstanceIntegrityPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest instance. */
                    public instance: string;

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest project. */
                    public project: string;

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest shieldedInstanceIntegrityPolicyResource. */
                    public shieldedInstanceIntegrityPolicyResource?: (google.cloud.compute.v1beta.IShieldedInstanceIntegrityPolicy|null);

                    /** SetShieldedInstanceIntegrityPolicyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetShieldedInstanceIntegrityPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetShieldedInstanceIntegrityPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest): google.cloud.compute.v1beta.SetShieldedInstanceIntegrityPolicyInstanceRequest;

                    /**
                     * Encodes the specified SetShieldedInstanceIntegrityPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetShieldedInstanceIntegrityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetShieldedInstanceIntegrityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetShieldedInstanceIntegrityPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetShieldedInstanceIntegrityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetShieldedInstanceIntegrityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetShieldedInstanceIntegrityPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetShieldedInstanceIntegrityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetShieldedInstanceIntegrityPolicyInstanceRequest;

                    /**
                     * Decodes a SetShieldedInstanceIntegrityPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetShieldedInstanceIntegrityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetShieldedInstanceIntegrityPolicyInstanceRequest;

                    /**
                     * Verifies a SetShieldedInstanceIntegrityPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetShieldedInstanceIntegrityPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetShieldedInstanceIntegrityPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetShieldedInstanceIntegrityPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a SetShieldedInstanceIntegrityPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetShieldedInstanceIntegrityPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetShieldedInstanceIntegrityPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetShieldedInstanceIntegrityPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetShieldedInstanceIntegrityPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetShieldedVmIntegrityPolicyInstanceRequest. */
                interface ISetShieldedVmIntegrityPolicyInstanceRequest {

                    /** SetShieldedVmIntegrityPolicyInstanceRequest instance */
                    instance?: (string|null);

                    /** SetShieldedVmIntegrityPolicyInstanceRequest project */
                    project?: (string|null);

                    /** SetShieldedVmIntegrityPolicyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetShieldedVmIntegrityPolicyInstanceRequest shieldedVmIntegrityPolicyResource */
                    shieldedVmIntegrityPolicyResource?: (google.cloud.compute.v1beta.IShieldedVmIntegrityPolicy|null);

                    /** SetShieldedVmIntegrityPolicyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetShieldedVmIntegrityPolicyInstanceRequest. */
                class SetShieldedVmIntegrityPolicyInstanceRequest implements ISetShieldedVmIntegrityPolicyInstanceRequest {

                    /**
                     * Constructs a new SetShieldedVmIntegrityPolicyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest);

                    /** SetShieldedVmIntegrityPolicyInstanceRequest instance. */
                    public instance: string;

                    /** SetShieldedVmIntegrityPolicyInstanceRequest project. */
                    public project: string;

                    /** SetShieldedVmIntegrityPolicyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetShieldedVmIntegrityPolicyInstanceRequest shieldedVmIntegrityPolicyResource. */
                    public shieldedVmIntegrityPolicyResource?: (google.cloud.compute.v1beta.IShieldedVmIntegrityPolicy|null);

                    /** SetShieldedVmIntegrityPolicyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetShieldedVmIntegrityPolicyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetShieldedVmIntegrityPolicyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest): google.cloud.compute.v1beta.SetShieldedVmIntegrityPolicyInstanceRequest;

                    /**
                     * Encodes the specified SetShieldedVmIntegrityPolicyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetShieldedVmIntegrityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetShieldedVmIntegrityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetShieldedVmIntegrityPolicyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetShieldedVmIntegrityPolicyInstanceRequest.verify|verify} messages.
                     * @param message SetShieldedVmIntegrityPolicyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetShieldedVmIntegrityPolicyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetShieldedVmIntegrityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetShieldedVmIntegrityPolicyInstanceRequest;

                    /**
                     * Decodes a SetShieldedVmIntegrityPolicyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetShieldedVmIntegrityPolicyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetShieldedVmIntegrityPolicyInstanceRequest;

                    /**
                     * Verifies a SetShieldedVmIntegrityPolicyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetShieldedVmIntegrityPolicyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetShieldedVmIntegrityPolicyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetShieldedVmIntegrityPolicyInstanceRequest;

                    /**
                     * Creates a plain object from a SetShieldedVmIntegrityPolicyInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetShieldedVmIntegrityPolicyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetShieldedVmIntegrityPolicyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetShieldedVmIntegrityPolicyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetShieldedVmIntegrityPolicyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslCertificatesRegionTargetHttpsProxyRequest. */
                interface ISetSslCertificatesRegionTargetHttpsProxyRequest {

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest regionTargetHttpsProxiesSetSslCertificatesRequestResource */
                    regionTargetHttpsProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1beta.IRegionTargetHttpsProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetSslCertificatesRegionTargetHttpsProxyRequest. */
                class SetSslCertificatesRegionTargetHttpsProxyRequest implements ISetSslCertificatesRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetSslCertificatesRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSslCertificatesRegionTargetHttpsProxyRequest);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest regionTargetHttpsProxiesSetSslCertificatesRequestResource. */
                    public regionTargetHttpsProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1beta.IRegionTargetHttpsProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslCertificatesRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetSslCertificatesRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslCertificatesRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSslCertificatesRegionTargetHttpsProxyRequest): google.cloud.compute.v1beta.SetSslCertificatesRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetSslCertificatesRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSslCertificatesRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSslCertificatesRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslCertificatesRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSslCertificatesRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSslCertificatesRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslCertificatesRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslCertificatesRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSslCertificatesRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetSslCertificatesRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslCertificatesRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSslCertificatesRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetSslCertificatesRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslCertificatesRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslCertificatesRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSslCertificatesRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetSslCertificatesRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslCertificatesRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSslCertificatesRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslCertificatesRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslCertificatesRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslCertificatesTargetHttpsProxyRequest. */
                interface ISetSslCertificatesTargetHttpsProxyRequest {

                    /** SetSslCertificatesTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest targetHttpsProxiesSetSslCertificatesRequestResource */
                    targetHttpsProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1beta.ITargetHttpsProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetSslCertificatesTargetHttpsProxyRequest. */
                class SetSslCertificatesTargetHttpsProxyRequest implements ISetSslCertificatesTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetSslCertificatesTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSslCertificatesTargetHttpsProxyRequest);

                    /** SetSslCertificatesTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetSslCertificatesTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest targetHttpsProxiesSetSslCertificatesRequestResource. */
                    public targetHttpsProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1beta.ITargetHttpsProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetSslCertificatesTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslCertificatesTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSslCertificatesTargetHttpsProxyRequest): google.cloud.compute.v1beta.SetSslCertificatesTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetSslCertificatesTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSslCertificatesTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSslCertificatesTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslCertificatesTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSslCertificatesTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSslCertificatesTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslCertificatesTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslCertificatesTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSslCertificatesTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetSslCertificatesTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslCertificatesTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSslCertificatesTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetSslCertificatesTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslCertificatesTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslCertificatesTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSslCertificatesTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetSslCertificatesTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslCertificatesTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSslCertificatesTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslCertificatesTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslCertificatesTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslCertificatesTargetSslProxyRequest. */
                interface ISetSslCertificatesTargetSslProxyRequest {

                    /** SetSslCertificatesTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetSslCertificatesTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslCertificatesTargetSslProxyRequest targetSslProxiesSetSslCertificatesRequestResource */
                    targetSslProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1beta.ITargetSslProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetSslCertificatesTargetSslProxyRequest. */
                class SetSslCertificatesTargetSslProxyRequest implements ISetSslCertificatesTargetSslProxyRequest {

                    /**
                     * Constructs a new SetSslCertificatesTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSslCertificatesTargetSslProxyRequest);

                    /** SetSslCertificatesTargetSslProxyRequest project. */
                    public project: string;

                    /** SetSslCertificatesTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslCertificatesTargetSslProxyRequest targetSslProxiesSetSslCertificatesRequestResource. */
                    public targetSslProxiesSetSslCertificatesRequestResource?: (google.cloud.compute.v1beta.ITargetSslProxiesSetSslCertificatesRequest|null);

                    /** SetSslCertificatesTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetSslCertificatesTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslCertificatesTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSslCertificatesTargetSslProxyRequest): google.cloud.compute.v1beta.SetSslCertificatesTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetSslCertificatesTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSslCertificatesTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSslCertificatesTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslCertificatesTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSslCertificatesTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetSslCertificatesTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSslCertificatesTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslCertificatesTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslCertificatesTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSslCertificatesTargetSslProxyRequest;

                    /**
                     * Decodes a SetSslCertificatesTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslCertificatesTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSslCertificatesTargetSslProxyRequest;

                    /**
                     * Verifies a SetSslCertificatesTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslCertificatesTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslCertificatesTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSslCertificatesTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetSslCertificatesTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslCertificatesTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSslCertificatesTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslCertificatesTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslCertificatesTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslPolicyTargetHttpsProxyRequest. */
                interface ISetSslPolicyTargetHttpsProxyRequest {

                    /** SetSslPolicyTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetSslPolicyTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslPolicyTargetHttpsProxyRequest sslPolicyReferenceResource */
                    sslPolicyReferenceResource?: (google.cloud.compute.v1beta.ISslPolicyReference|null);

                    /** SetSslPolicyTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);
                }

                /** Represents a SetSslPolicyTargetHttpsProxyRequest. */
                class SetSslPolicyTargetHttpsProxyRequest implements ISetSslPolicyTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetSslPolicyTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSslPolicyTargetHttpsProxyRequest);

                    /** SetSslPolicyTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetSslPolicyTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslPolicyTargetHttpsProxyRequest sslPolicyReferenceResource. */
                    public sslPolicyReferenceResource?: (google.cloud.compute.v1beta.ISslPolicyReference|null);

                    /** SetSslPolicyTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /**
                     * Creates a new SetSslPolicyTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslPolicyTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSslPolicyTargetHttpsProxyRequest): google.cloud.compute.v1beta.SetSslPolicyTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetSslPolicyTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSslPolicyTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslPolicyTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSslPolicyTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslPolicyTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSslPolicyTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetSslPolicyTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSslPolicyTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslPolicyTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslPolicyTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSslPolicyTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetSslPolicyTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslPolicyTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSslPolicyTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetSslPolicyTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslPolicyTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslPolicyTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSslPolicyTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetSslPolicyTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslPolicyTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSslPolicyTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslPolicyTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslPolicyTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetSslPolicyTargetSslProxyRequest. */
                interface ISetSslPolicyTargetSslProxyRequest {

                    /** SetSslPolicyTargetSslProxyRequest project */
                    project?: (string|null);

                    /** SetSslPolicyTargetSslProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetSslPolicyTargetSslProxyRequest sslPolicyReferenceResource */
                    sslPolicyReferenceResource?: (google.cloud.compute.v1beta.ISslPolicyReference|null);

                    /** SetSslPolicyTargetSslProxyRequest targetSslProxy */
                    targetSslProxy?: (string|null);
                }

                /** Represents a SetSslPolicyTargetSslProxyRequest. */
                class SetSslPolicyTargetSslProxyRequest implements ISetSslPolicyTargetSslProxyRequest {

                    /**
                     * Constructs a new SetSslPolicyTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetSslPolicyTargetSslProxyRequest);

                    /** SetSslPolicyTargetSslProxyRequest project. */
                    public project: string;

                    /** SetSslPolicyTargetSslProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetSslPolicyTargetSslProxyRequest sslPolicyReferenceResource. */
                    public sslPolicyReferenceResource?: (google.cloud.compute.v1beta.ISslPolicyReference|null);

                    /** SetSslPolicyTargetSslProxyRequest targetSslProxy. */
                    public targetSslProxy: string;

                    /**
                     * Creates a new SetSslPolicyTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetSslPolicyTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetSslPolicyTargetSslProxyRequest): google.cloud.compute.v1beta.SetSslPolicyTargetSslProxyRequest;

                    /**
                     * Encodes the specified SetSslPolicyTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetSslPolicyTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetSslPolicyTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetSslPolicyTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetSslPolicyTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetSslPolicyTargetSslProxyRequest.verify|verify} messages.
                     * @param message SetSslPolicyTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetSslPolicyTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetSslPolicyTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetSslPolicyTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetSslPolicyTargetSslProxyRequest;

                    /**
                     * Decodes a SetSslPolicyTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetSslPolicyTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetSslPolicyTargetSslProxyRequest;

                    /**
                     * Verifies a SetSslPolicyTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetSslPolicyTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetSslPolicyTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetSslPolicyTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a SetSslPolicyTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message SetSslPolicyTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetSslPolicyTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetSslPolicyTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetSslPolicyTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTagsInstanceRequest. */
                interface ISetTagsInstanceRequest {

                    /** SetTagsInstanceRequest instance */
                    instance?: (string|null);

                    /** SetTagsInstanceRequest project */
                    project?: (string|null);

                    /** SetTagsInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SetTagsInstanceRequest tagsResource */
                    tagsResource?: (google.cloud.compute.v1beta.ITags|null);

                    /** SetTagsInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetTagsInstanceRequest. */
                class SetTagsInstanceRequest implements ISetTagsInstanceRequest {

                    /**
                     * Constructs a new SetTagsInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetTagsInstanceRequest);

                    /** SetTagsInstanceRequest instance. */
                    public instance: string;

                    /** SetTagsInstanceRequest project. */
                    public project: string;

                    /** SetTagsInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SetTagsInstanceRequest tagsResource. */
                    public tagsResource?: (google.cloud.compute.v1beta.ITags|null);

                    /** SetTagsInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetTagsInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTagsInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetTagsInstanceRequest): google.cloud.compute.v1beta.SetTagsInstanceRequest;

                    /**
                     * Encodes the specified SetTagsInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetTagsInstanceRequest.verify|verify} messages.
                     * @param message SetTagsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetTagsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTagsInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetTagsInstanceRequest.verify|verify} messages.
                     * @param message SetTagsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetTagsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTagsInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTagsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetTagsInstanceRequest;

                    /**
                     * Decodes a SetTagsInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTagsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetTagsInstanceRequest;

                    /**
                     * Verifies a SetTagsInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTagsInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTagsInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetTagsInstanceRequest;

                    /**
                     * Creates a plain object from a SetTagsInstanceRequest message. Also converts values to other types if specified.
                     * @param message SetTagsInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetTagsInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTagsInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTagsInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTargetForwardingRuleRequest. */
                interface ISetTargetForwardingRuleRequest {

                    /** SetTargetForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** SetTargetForwardingRuleRequest project */
                    project?: (string|null);

                    /** SetTargetForwardingRuleRequest region */
                    region?: (string|null);

                    /** SetTargetForwardingRuleRequest requestId */
                    requestId?: (string|null);

                    /** SetTargetForwardingRuleRequest targetReferenceResource */
                    targetReferenceResource?: (google.cloud.compute.v1beta.ITargetReference|null);
                }

                /** Represents a SetTargetForwardingRuleRequest. */
                class SetTargetForwardingRuleRequest implements ISetTargetForwardingRuleRequest {

                    /**
                     * Constructs a new SetTargetForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetTargetForwardingRuleRequest);

                    /** SetTargetForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** SetTargetForwardingRuleRequest project. */
                    public project: string;

                    /** SetTargetForwardingRuleRequest region. */
                    public region: string;

                    /** SetTargetForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /** SetTargetForwardingRuleRequest targetReferenceResource. */
                    public targetReferenceResource?: (google.cloud.compute.v1beta.ITargetReference|null);

                    /**
                     * Creates a new SetTargetForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTargetForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetTargetForwardingRuleRequest): google.cloud.compute.v1beta.SetTargetForwardingRuleRequest;

                    /**
                     * Encodes the specified SetTargetForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetTargetForwardingRuleRequest.verify|verify} messages.
                     * @param message SetTargetForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetTargetForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTargetForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetTargetForwardingRuleRequest.verify|verify} messages.
                     * @param message SetTargetForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetTargetForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTargetForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTargetForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetTargetForwardingRuleRequest;

                    /**
                     * Decodes a SetTargetForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTargetForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetTargetForwardingRuleRequest;

                    /**
                     * Verifies a SetTargetForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTargetForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTargetForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetTargetForwardingRuleRequest;

                    /**
                     * Creates a plain object from a SetTargetForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message SetTargetForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetTargetForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTargetForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTargetForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTargetGlobalForwardingRuleRequest. */
                interface ISetTargetGlobalForwardingRuleRequest {

                    /** SetTargetGlobalForwardingRuleRequest forwardingRule */
                    forwardingRule?: (string|null);

                    /** SetTargetGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** SetTargetGlobalForwardingRuleRequest requestId */
                    requestId?: (string|null);

                    /** SetTargetGlobalForwardingRuleRequest targetReferenceResource */
                    targetReferenceResource?: (google.cloud.compute.v1beta.ITargetReference|null);
                }

                /** Represents a SetTargetGlobalForwardingRuleRequest. */
                class SetTargetGlobalForwardingRuleRequest implements ISetTargetGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new SetTargetGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetTargetGlobalForwardingRuleRequest);

                    /** SetTargetGlobalForwardingRuleRequest forwardingRule. */
                    public forwardingRule: string;

                    /** SetTargetGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** SetTargetGlobalForwardingRuleRequest requestId. */
                    public requestId?: (string|null);

                    /** SetTargetGlobalForwardingRuleRequest targetReferenceResource. */
                    public targetReferenceResource?: (google.cloud.compute.v1beta.ITargetReference|null);

                    /**
                     * Creates a new SetTargetGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTargetGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetTargetGlobalForwardingRuleRequest): google.cloud.compute.v1beta.SetTargetGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified SetTargetGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetTargetGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message SetTargetGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetTargetGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTargetGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetTargetGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message SetTargetGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetTargetGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTargetGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTargetGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetTargetGlobalForwardingRuleRequest;

                    /**
                     * Decodes a SetTargetGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTargetGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetTargetGlobalForwardingRuleRequest;

                    /**
                     * Verifies a SetTargetGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTargetGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTargetGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetTargetGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a SetTargetGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message SetTargetGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetTargetGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTargetGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTargetGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTargetPoolsInstanceGroupManagerRequest. */
                interface ISetTargetPoolsInstanceGroupManagerRequest {

                    /** SetTargetPoolsInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest instanceGroupManagersSetTargetPoolsRequestResource */
                    instanceGroupManagersSetTargetPoolsRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersSetTargetPoolsRequest|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SetTargetPoolsInstanceGroupManagerRequest. */
                class SetTargetPoolsInstanceGroupManagerRequest implements ISetTargetPoolsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetTargetPoolsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetTargetPoolsInstanceGroupManagerRequest);

                    /** SetTargetPoolsInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetTargetPoolsInstanceGroupManagerRequest instanceGroupManagersSetTargetPoolsRequestResource. */
                    public instanceGroupManagersSetTargetPoolsRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersSetTargetPoolsRequest|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetTargetPoolsInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** SetTargetPoolsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SetTargetPoolsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTargetPoolsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetTargetPoolsInstanceGroupManagerRequest): google.cloud.compute.v1beta.SetTargetPoolsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetTargetPoolsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetTargetPoolsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetTargetPoolsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetTargetPoolsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTargetPoolsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetTargetPoolsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetTargetPoolsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetTargetPoolsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTargetPoolsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTargetPoolsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetTargetPoolsInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetTargetPoolsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTargetPoolsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetTargetPoolsInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetTargetPoolsInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTargetPoolsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTargetPoolsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetTargetPoolsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetTargetPoolsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetTargetPoolsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetTargetPoolsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTargetPoolsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTargetPoolsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetTargetPoolsRegionInstanceGroupManagerRequest. */
                interface ISetTargetPoolsRegionInstanceGroupManagerRequest {

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetTargetPoolsRequestResource */
                    regionInstanceGroupManagersSetTargetPoolsRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTargetPoolsRequest|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SetTargetPoolsRegionInstanceGroupManagerRequest. */
                class SetTargetPoolsRegionInstanceGroupManagerRequest implements ISetTargetPoolsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SetTargetPoolsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetTargetPoolsRegionInstanceGroupManagerRequest);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest regionInstanceGroupManagersSetTargetPoolsRequestResource. */
                    public regionInstanceGroupManagersSetTargetPoolsRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersSetTargetPoolsRequest|null);

                    /** SetTargetPoolsRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SetTargetPoolsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetTargetPoolsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetTargetPoolsRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.SetTargetPoolsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SetTargetPoolsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetTargetPoolsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetTargetPoolsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetTargetPoolsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetTargetPoolsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetTargetPoolsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SetTargetPoolsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetTargetPoolsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetTargetPoolsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetTargetPoolsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetTargetPoolsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a SetTargetPoolsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetTargetPoolsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetTargetPoolsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a SetTargetPoolsRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetTargetPoolsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetTargetPoolsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetTargetPoolsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SetTargetPoolsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SetTargetPoolsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetTargetPoolsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetTargetPoolsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetTargetPoolsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUrlMapRegionTargetHttpProxyRequest. */
                interface ISetUrlMapRegionTargetHttpProxyRequest {

                    /** SetUrlMapRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest urlMapReferenceResource */
                    urlMapReferenceResource?: (google.cloud.compute.v1beta.IUrlMapReference|null);
                }

                /** Represents a SetUrlMapRegionTargetHttpProxyRequest. */
                class SetUrlMapRegionTargetHttpProxyRequest implements ISetUrlMapRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new SetUrlMapRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpProxyRequest);

                    /** SetUrlMapRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** SetUrlMapRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** SetUrlMapRegionTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUrlMapRegionTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /** SetUrlMapRegionTargetHttpProxyRequest urlMapReferenceResource. */
                    public urlMapReferenceResource?: (google.cloud.compute.v1beta.IUrlMapReference|null);

                    /**
                     * Creates a new SetUrlMapRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUrlMapRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpProxyRequest): google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified SetUrlMapRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUrlMapRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUrlMapRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUrlMapRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpProxyRequest;

                    /**
                     * Decodes a SetUrlMapRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUrlMapRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpProxyRequest;

                    /**
                     * Verifies a SetUrlMapRegionTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUrlMapRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUrlMapRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a SetUrlMapRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message SetUrlMapRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUrlMapRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUrlMapRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUrlMapRegionTargetHttpsProxyRequest. */
                interface ISetUrlMapRegionTargetHttpsProxyRequest {

                    /** SetUrlMapRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest urlMapReferenceResource */
                    urlMapReferenceResource?: (google.cloud.compute.v1beta.IUrlMapReference|null);
                }

                /** Represents a SetUrlMapRegionTargetHttpsProxyRequest. */
                class SetUrlMapRegionTargetHttpsProxyRequest implements ISetUrlMapRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetUrlMapRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpsProxyRequest);

                    /** SetUrlMapRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetUrlMapRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** SetUrlMapRegionTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUrlMapRegionTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /** SetUrlMapRegionTargetHttpsProxyRequest urlMapReferenceResource. */
                    public urlMapReferenceResource?: (google.cloud.compute.v1beta.IUrlMapReference|null);

                    /**
                     * Creates a new SetUrlMapRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUrlMapRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpsProxyRequest): google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetUrlMapRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUrlMapRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUrlMapRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUrlMapRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetUrlMapRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUrlMapRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetUrlMapRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUrlMapRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUrlMapRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetUrlMapRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetUrlMapRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetUrlMapRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUrlMapRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUrlMapRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUrlMapTargetHttpProxyRequest. */
                interface ISetUrlMapTargetHttpProxyRequest {

                    /** SetUrlMapTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** SetUrlMapTargetHttpProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetUrlMapTargetHttpProxyRequest targetHttpProxy */
                    targetHttpProxy?: (string|null);

                    /** SetUrlMapTargetHttpProxyRequest urlMapReferenceResource */
                    urlMapReferenceResource?: (google.cloud.compute.v1beta.IUrlMapReference|null);
                }

                /** Represents a SetUrlMapTargetHttpProxyRequest. */
                class SetUrlMapTargetHttpProxyRequest implements ISetUrlMapTargetHttpProxyRequest {

                    /**
                     * Constructs a new SetUrlMapTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetUrlMapTargetHttpProxyRequest);

                    /** SetUrlMapTargetHttpProxyRequest project. */
                    public project: string;

                    /** SetUrlMapTargetHttpProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUrlMapTargetHttpProxyRequest targetHttpProxy. */
                    public targetHttpProxy: string;

                    /** SetUrlMapTargetHttpProxyRequest urlMapReferenceResource. */
                    public urlMapReferenceResource?: (google.cloud.compute.v1beta.IUrlMapReference|null);

                    /**
                     * Creates a new SetUrlMapTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUrlMapTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetUrlMapTargetHttpProxyRequest): google.cloud.compute.v1beta.SetUrlMapTargetHttpProxyRequest;

                    /**
                     * Encodes the specified SetUrlMapTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetUrlMapTargetHttpProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetUrlMapTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUrlMapTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetUrlMapTargetHttpProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetUrlMapTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUrlMapTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUrlMapTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetUrlMapTargetHttpProxyRequest;

                    /**
                     * Decodes a SetUrlMapTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUrlMapTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetUrlMapTargetHttpProxyRequest;

                    /**
                     * Verifies a SetUrlMapTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUrlMapTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUrlMapTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetUrlMapTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a SetUrlMapTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message SetUrlMapTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetUrlMapTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUrlMapTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUrlMapTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUrlMapTargetHttpsProxyRequest. */
                interface ISetUrlMapTargetHttpsProxyRequest {

                    /** SetUrlMapTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** SetUrlMapTargetHttpsProxyRequest requestId */
                    requestId?: (string|null);

                    /** SetUrlMapTargetHttpsProxyRequest targetHttpsProxy */
                    targetHttpsProxy?: (string|null);

                    /** SetUrlMapTargetHttpsProxyRequest urlMapReferenceResource */
                    urlMapReferenceResource?: (google.cloud.compute.v1beta.IUrlMapReference|null);
                }

                /** Represents a SetUrlMapTargetHttpsProxyRequest. */
                class SetUrlMapTargetHttpsProxyRequest implements ISetUrlMapTargetHttpsProxyRequest {

                    /**
                     * Constructs a new SetUrlMapTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetUrlMapTargetHttpsProxyRequest);

                    /** SetUrlMapTargetHttpsProxyRequest project. */
                    public project: string;

                    /** SetUrlMapTargetHttpsProxyRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUrlMapTargetHttpsProxyRequest targetHttpsProxy. */
                    public targetHttpsProxy: string;

                    /** SetUrlMapTargetHttpsProxyRequest urlMapReferenceResource. */
                    public urlMapReferenceResource?: (google.cloud.compute.v1beta.IUrlMapReference|null);

                    /**
                     * Creates a new SetUrlMapTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUrlMapTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetUrlMapTargetHttpsProxyRequest): google.cloud.compute.v1beta.SetUrlMapTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified SetUrlMapTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetUrlMapTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetUrlMapTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUrlMapTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetUrlMapTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message SetUrlMapTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetUrlMapTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUrlMapTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUrlMapTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetUrlMapTargetHttpsProxyRequest;

                    /**
                     * Decodes a SetUrlMapTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUrlMapTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetUrlMapTargetHttpsProxyRequest;

                    /**
                     * Verifies a SetUrlMapTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUrlMapTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUrlMapTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetUrlMapTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a SetUrlMapTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message SetUrlMapTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetUrlMapTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUrlMapTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUrlMapTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SetUsageExportBucketProjectRequest. */
                interface ISetUsageExportBucketProjectRequest {

                    /** SetUsageExportBucketProjectRequest project */
                    project?: (string|null);

                    /** SetUsageExportBucketProjectRequest requestId */
                    requestId?: (string|null);

                    /** SetUsageExportBucketProjectRequest usageExportLocationResource */
                    usageExportLocationResource?: (google.cloud.compute.v1beta.IUsageExportLocation|null);
                }

                /** Represents a SetUsageExportBucketProjectRequest. */
                class SetUsageExportBucketProjectRequest implements ISetUsageExportBucketProjectRequest {

                    /**
                     * Constructs a new SetUsageExportBucketProjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISetUsageExportBucketProjectRequest);

                    /** SetUsageExportBucketProjectRequest project. */
                    public project: string;

                    /** SetUsageExportBucketProjectRequest requestId. */
                    public requestId?: (string|null);

                    /** SetUsageExportBucketProjectRequest usageExportLocationResource. */
                    public usageExportLocationResource?: (google.cloud.compute.v1beta.IUsageExportLocation|null);

                    /**
                     * Creates a new SetUsageExportBucketProjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SetUsageExportBucketProjectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISetUsageExportBucketProjectRequest): google.cloud.compute.v1beta.SetUsageExportBucketProjectRequest;

                    /**
                     * Encodes the specified SetUsageExportBucketProjectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SetUsageExportBucketProjectRequest.verify|verify} messages.
                     * @param message SetUsageExportBucketProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISetUsageExportBucketProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SetUsageExportBucketProjectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SetUsageExportBucketProjectRequest.verify|verify} messages.
                     * @param message SetUsageExportBucketProjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISetUsageExportBucketProjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SetUsageExportBucketProjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SetUsageExportBucketProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SetUsageExportBucketProjectRequest;

                    /**
                     * Decodes a SetUsageExportBucketProjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SetUsageExportBucketProjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SetUsageExportBucketProjectRequest;

                    /**
                     * Verifies a SetUsageExportBucketProjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SetUsageExportBucketProjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SetUsageExportBucketProjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SetUsageExportBucketProjectRequest;

                    /**
                     * Creates a plain object from a SetUsageExportBucketProjectRequest message. Also converts values to other types if specified.
                     * @param message SetUsageExportBucketProjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SetUsageExportBucketProjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SetUsageExportBucketProjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SetUsageExportBucketProjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShareSettings. */
                interface IShareSettings {

                    /** ShareSettings projectMap */
                    projectMap?: ({ [k: string]: google.cloud.compute.v1beta.IShareSettingsProjectConfig }|null);

                    /** ShareSettings projects */
                    projects?: (string[]|null);

                    /** ShareSettings shareType */
                    shareType?: (string|null);
                }

                /** Represents a ShareSettings. */
                class ShareSettings implements IShareSettings {

                    /**
                     * Constructs a new ShareSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShareSettings);

                    /** ShareSettings projectMap. */
                    public projectMap: { [k: string]: google.cloud.compute.v1beta.IShareSettingsProjectConfig };

                    /** ShareSettings projects. */
                    public projects: string[];

                    /** ShareSettings shareType. */
                    public shareType?: (string|null);

                    /**
                     * Creates a new ShareSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShareSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShareSettings): google.cloud.compute.v1beta.ShareSettings;

                    /**
                     * Encodes the specified ShareSettings message. Does not implicitly {@link google.cloud.compute.v1beta.ShareSettings.verify|verify} messages.
                     * @param message ShareSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShareSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShareSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShareSettings.verify|verify} messages.
                     * @param message ShareSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShareSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShareSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShareSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShareSettings;

                    /**
                     * Decodes a ShareSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShareSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShareSettings;

                    /**
                     * Verifies a ShareSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShareSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShareSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShareSettings;

                    /**
                     * Creates a plain object from a ShareSettings message. Also converts values to other types if specified.
                     * @param message ShareSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShareSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShareSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShareSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ShareSettings {

                    /** ShareType enum. */
                    enum ShareType {
                        UNDEFINED_SHARE_TYPE = 0,
                        LOCAL = 72607563,
                        ORGANIZATION = 274978099,
                        SHARE_TYPE_UNSPECIFIED = 494771730,
                        SPECIFIC_PROJECTS = 347838695
                    }
                }

                /** Properties of a ShareSettingsProjectConfig. */
                interface IShareSettingsProjectConfig {

                    /** ShareSettingsProjectConfig projectId */
                    projectId?: (string|null);
                }

                /** Represents a ShareSettingsProjectConfig. */
                class ShareSettingsProjectConfig implements IShareSettingsProjectConfig {

                    /**
                     * Constructs a new ShareSettingsProjectConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShareSettingsProjectConfig);

                    /** ShareSettingsProjectConfig projectId. */
                    public projectId?: (string|null);

                    /**
                     * Creates a new ShareSettingsProjectConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShareSettingsProjectConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShareSettingsProjectConfig): google.cloud.compute.v1beta.ShareSettingsProjectConfig;

                    /**
                     * Encodes the specified ShareSettingsProjectConfig message. Does not implicitly {@link google.cloud.compute.v1beta.ShareSettingsProjectConfig.verify|verify} messages.
                     * @param message ShareSettingsProjectConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShareSettingsProjectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShareSettingsProjectConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShareSettingsProjectConfig.verify|verify} messages.
                     * @param message ShareSettingsProjectConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShareSettingsProjectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShareSettingsProjectConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShareSettingsProjectConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShareSettingsProjectConfig;

                    /**
                     * Decodes a ShareSettingsProjectConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShareSettingsProjectConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShareSettingsProjectConfig;

                    /**
                     * Verifies a ShareSettingsProjectConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShareSettingsProjectConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShareSettingsProjectConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShareSettingsProjectConfig;

                    /**
                     * Creates a plain object from a ShareSettingsProjectConfig message. Also converts values to other types if specified.
                     * @param message ShareSettingsProjectConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShareSettingsProjectConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShareSettingsProjectConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShareSettingsProjectConfig
                     * @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 enableIntegrityMonitoring */
                    enableIntegrityMonitoring?: (boolean|null);

                    /** ShieldedInstanceConfig enableSecureBoot */
                    enableSecureBoot?: (boolean|null);

                    /** ShieldedInstanceConfig enableVtpm */
                    enableVtpm?: (boolean|null);
                }

                /** Represents a ShieldedInstanceConfig. */
                class ShieldedInstanceConfig implements IShieldedInstanceConfig {

                    /**
                     * Constructs a new ShieldedInstanceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShieldedInstanceConfig);

                    /** ShieldedInstanceConfig enableIntegrityMonitoring. */
                    public enableIntegrityMonitoring?: (boolean|null);

                    /** ShieldedInstanceConfig enableSecureBoot. */
                    public enableSecureBoot?: (boolean|null);

                    /** ShieldedInstanceConfig enableVtpm. */
                    public enableVtpm?: (boolean|null);

                    /**
                     * Creates a new ShieldedInstanceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedInstanceConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShieldedInstanceConfig): google.cloud.compute.v1beta.ShieldedInstanceConfig;

                    /**
                     * Encodes the specified ShieldedInstanceConfig message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IShieldedInstanceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedInstanceConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 ShieldedInstanceIdentity. */
                interface IShieldedInstanceIdentity {

                    /** ShieldedInstanceIdentity eccP256EncryptionKey */
                    eccP256EncryptionKey?: (google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity eccP256SigningKey */
                    eccP256SigningKey?: (google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity encryptionKey */
                    encryptionKey?: (google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity kind */
                    kind?: (string|null);

                    /** ShieldedInstanceIdentity signingKey */
                    signingKey?: (google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry|null);
                }

                /** Represents a ShieldedInstanceIdentity. */
                class ShieldedInstanceIdentity implements IShieldedInstanceIdentity {

                    /**
                     * Constructs a new ShieldedInstanceIdentity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShieldedInstanceIdentity);

                    /** ShieldedInstanceIdentity eccP256EncryptionKey. */
                    public eccP256EncryptionKey?: (google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity eccP256SigningKey. */
                    public eccP256SigningKey?: (google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity encryptionKey. */
                    public encryptionKey?: (google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry|null);

                    /** ShieldedInstanceIdentity kind. */
                    public kind?: (string|null);

                    /** ShieldedInstanceIdentity signingKey. */
                    public signingKey?: (google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry|null);

                    /**
                     * Creates a new ShieldedInstanceIdentity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedInstanceIdentity instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShieldedInstanceIdentity): google.cloud.compute.v1beta.ShieldedInstanceIdentity;

                    /**
                     * Encodes the specified ShieldedInstanceIdentity message. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedInstanceIdentity.verify|verify} messages.
                     * @param message ShieldedInstanceIdentity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShieldedInstanceIdentity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedInstanceIdentity message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedInstanceIdentity.verify|verify} messages.
                     * @param message ShieldedInstanceIdentity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShieldedInstanceIdentity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedInstanceIdentity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedInstanceIdentity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShieldedInstanceIdentity;

                    /**
                     * Decodes a ShieldedInstanceIdentity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedInstanceIdentity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShieldedInstanceIdentity;

                    /**
                     * Verifies a ShieldedInstanceIdentity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedInstanceIdentity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedInstanceIdentity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShieldedInstanceIdentity;

                    /**
                     * Creates a plain object from a ShieldedInstanceIdentity message. Also converts values to other types if specified.
                     * @param message ShieldedInstanceIdentity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShieldedInstanceIdentity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedInstanceIdentity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedInstanceIdentity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShieldedInstanceIdentityEntry. */
                interface IShieldedInstanceIdentityEntry {

                    /** ShieldedInstanceIdentityEntry ekCert */
                    ekCert?: (string|null);

                    /** ShieldedInstanceIdentityEntry ekPub */
                    ekPub?: (string|null);
                }

                /** Represents a ShieldedInstanceIdentityEntry. */
                class ShieldedInstanceIdentityEntry implements IShieldedInstanceIdentityEntry {

                    /**
                     * Constructs a new ShieldedInstanceIdentityEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry);

                    /** ShieldedInstanceIdentityEntry ekCert. */
                    public ekCert?: (string|null);

                    /** ShieldedInstanceIdentityEntry ekPub. */
                    public ekPub?: (string|null);

                    /**
                     * Creates a new ShieldedInstanceIdentityEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedInstanceIdentityEntry instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry): google.cloud.compute.v1beta.ShieldedInstanceIdentityEntry;

                    /**
                     * Encodes the specified ShieldedInstanceIdentityEntry message. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedInstanceIdentityEntry.verify|verify} messages.
                     * @param message ShieldedInstanceIdentityEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedInstanceIdentityEntry message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedInstanceIdentityEntry.verify|verify} messages.
                     * @param message ShieldedInstanceIdentityEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShieldedInstanceIdentityEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedInstanceIdentityEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedInstanceIdentityEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShieldedInstanceIdentityEntry;

                    /**
                     * Decodes a ShieldedInstanceIdentityEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedInstanceIdentityEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShieldedInstanceIdentityEntry;

                    /**
                     * Verifies a ShieldedInstanceIdentityEntry message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedInstanceIdentityEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedInstanceIdentityEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShieldedInstanceIdentityEntry;

                    /**
                     * Creates a plain object from a ShieldedInstanceIdentityEntry message. Also converts values to other types if specified.
                     * @param message ShieldedInstanceIdentityEntry
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShieldedInstanceIdentityEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedInstanceIdentityEntry to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedInstanceIdentityEntry
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShieldedInstanceIntegrityPolicy. */
                interface IShieldedInstanceIntegrityPolicy {

                    /** ShieldedInstanceIntegrityPolicy updateAutoLearnPolicy */
                    updateAutoLearnPolicy?: (boolean|null);
                }

                /** Represents a ShieldedInstanceIntegrityPolicy. */
                class ShieldedInstanceIntegrityPolicy implements IShieldedInstanceIntegrityPolicy {

                    /**
                     * Constructs a new ShieldedInstanceIntegrityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShieldedInstanceIntegrityPolicy);

                    /** ShieldedInstanceIntegrityPolicy updateAutoLearnPolicy. */
                    public updateAutoLearnPolicy?: (boolean|null);

                    /**
                     * Creates a new ShieldedInstanceIntegrityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedInstanceIntegrityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShieldedInstanceIntegrityPolicy): google.cloud.compute.v1beta.ShieldedInstanceIntegrityPolicy;

                    /**
                     * Encodes the specified ShieldedInstanceIntegrityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedInstanceIntegrityPolicy.verify|verify} messages.
                     * @param message ShieldedInstanceIntegrityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShieldedInstanceIntegrityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedInstanceIntegrityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedInstanceIntegrityPolicy.verify|verify} messages.
                     * @param message ShieldedInstanceIntegrityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShieldedInstanceIntegrityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedInstanceIntegrityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedInstanceIntegrityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShieldedInstanceIntegrityPolicy;

                    /**
                     * Decodes a ShieldedInstanceIntegrityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedInstanceIntegrityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShieldedInstanceIntegrityPolicy;

                    /**
                     * Verifies a ShieldedInstanceIntegrityPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedInstanceIntegrityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedInstanceIntegrityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShieldedInstanceIntegrityPolicy;

                    /**
                     * Creates a plain object from a ShieldedInstanceIntegrityPolicy message. Also converts values to other types if specified.
                     * @param message ShieldedInstanceIntegrityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShieldedInstanceIntegrityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedInstanceIntegrityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedInstanceIntegrityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShieldedVmConfig. */
                interface IShieldedVmConfig {

                    /** ShieldedVmConfig enableIntegrityMonitoring */
                    enableIntegrityMonitoring?: (boolean|null);

                    /** ShieldedVmConfig enableSecureBoot */
                    enableSecureBoot?: (boolean|null);

                    /** ShieldedVmConfig enableVtpm */
                    enableVtpm?: (boolean|null);
                }

                /** Represents a ShieldedVmConfig. */
                class ShieldedVmConfig implements IShieldedVmConfig {

                    /**
                     * Constructs a new ShieldedVmConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShieldedVmConfig);

                    /** ShieldedVmConfig enableIntegrityMonitoring. */
                    public enableIntegrityMonitoring?: (boolean|null);

                    /** ShieldedVmConfig enableSecureBoot. */
                    public enableSecureBoot?: (boolean|null);

                    /** ShieldedVmConfig enableVtpm. */
                    public enableVtpm?: (boolean|null);

                    /**
                     * Creates a new ShieldedVmConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedVmConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShieldedVmConfig): google.cloud.compute.v1beta.ShieldedVmConfig;

                    /**
                     * Encodes the specified ShieldedVmConfig message. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedVmConfig.verify|verify} messages.
                     * @param message ShieldedVmConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShieldedVmConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedVmConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedVmConfig.verify|verify} messages.
                     * @param message ShieldedVmConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShieldedVmConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedVmConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedVmConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShieldedVmConfig;

                    /**
                     * Decodes a ShieldedVmConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedVmConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShieldedVmConfig;

                    /**
                     * Verifies a ShieldedVmConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedVmConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedVmConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShieldedVmConfig;

                    /**
                     * Creates a plain object from a ShieldedVmConfig message. Also converts values to other types if specified.
                     * @param message ShieldedVmConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShieldedVmConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedVmConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedVmConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShieldedVmIdentity. */
                interface IShieldedVmIdentity {

                    /** ShieldedVmIdentity encryptionKey */
                    encryptionKey?: (google.cloud.compute.v1beta.IShieldedVmIdentityEntry|null);

                    /** ShieldedVmIdentity kind */
                    kind?: (string|null);

                    /** ShieldedVmIdentity signingKey */
                    signingKey?: (google.cloud.compute.v1beta.IShieldedVmIdentityEntry|null);
                }

                /** Represents a ShieldedVmIdentity. */
                class ShieldedVmIdentity implements IShieldedVmIdentity {

                    /**
                     * Constructs a new ShieldedVmIdentity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShieldedVmIdentity);

                    /** ShieldedVmIdentity encryptionKey. */
                    public encryptionKey?: (google.cloud.compute.v1beta.IShieldedVmIdentityEntry|null);

                    /** ShieldedVmIdentity kind. */
                    public kind?: (string|null);

                    /** ShieldedVmIdentity signingKey. */
                    public signingKey?: (google.cloud.compute.v1beta.IShieldedVmIdentityEntry|null);

                    /**
                     * Creates a new ShieldedVmIdentity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedVmIdentity instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShieldedVmIdentity): google.cloud.compute.v1beta.ShieldedVmIdentity;

                    /**
                     * Encodes the specified ShieldedVmIdentity message. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedVmIdentity.verify|verify} messages.
                     * @param message ShieldedVmIdentity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShieldedVmIdentity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedVmIdentity message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedVmIdentity.verify|verify} messages.
                     * @param message ShieldedVmIdentity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShieldedVmIdentity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedVmIdentity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedVmIdentity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShieldedVmIdentity;

                    /**
                     * Decodes a ShieldedVmIdentity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedVmIdentity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShieldedVmIdentity;

                    /**
                     * Verifies a ShieldedVmIdentity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedVmIdentity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedVmIdentity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShieldedVmIdentity;

                    /**
                     * Creates a plain object from a ShieldedVmIdentity message. Also converts values to other types if specified.
                     * @param message ShieldedVmIdentity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShieldedVmIdentity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedVmIdentity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedVmIdentity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShieldedVmIdentityEntry. */
                interface IShieldedVmIdentityEntry {

                    /** ShieldedVmIdentityEntry ekCert */
                    ekCert?: (string|null);

                    /** ShieldedVmIdentityEntry ekPub */
                    ekPub?: (string|null);
                }

                /** Represents a ShieldedVmIdentityEntry. */
                class ShieldedVmIdentityEntry implements IShieldedVmIdentityEntry {

                    /**
                     * Constructs a new ShieldedVmIdentityEntry.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShieldedVmIdentityEntry);

                    /** ShieldedVmIdentityEntry ekCert. */
                    public ekCert?: (string|null);

                    /** ShieldedVmIdentityEntry ekPub. */
                    public ekPub?: (string|null);

                    /**
                     * Creates a new ShieldedVmIdentityEntry instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedVmIdentityEntry instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShieldedVmIdentityEntry): google.cloud.compute.v1beta.ShieldedVmIdentityEntry;

                    /**
                     * Encodes the specified ShieldedVmIdentityEntry message. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedVmIdentityEntry.verify|verify} messages.
                     * @param message ShieldedVmIdentityEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShieldedVmIdentityEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedVmIdentityEntry message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedVmIdentityEntry.verify|verify} messages.
                     * @param message ShieldedVmIdentityEntry message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShieldedVmIdentityEntry, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedVmIdentityEntry message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedVmIdentityEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShieldedVmIdentityEntry;

                    /**
                     * Decodes a ShieldedVmIdentityEntry message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedVmIdentityEntry
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShieldedVmIdentityEntry;

                    /**
                     * Verifies a ShieldedVmIdentityEntry message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedVmIdentityEntry message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedVmIdentityEntry
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShieldedVmIdentityEntry;

                    /**
                     * Creates a plain object from a ShieldedVmIdentityEntry message. Also converts values to other types if specified.
                     * @param message ShieldedVmIdentityEntry
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShieldedVmIdentityEntry, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedVmIdentityEntry to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedVmIdentityEntry
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ShieldedVmIntegrityPolicy. */
                interface IShieldedVmIntegrityPolicy {

                    /** ShieldedVmIntegrityPolicy updateAutoLearnPolicy */
                    updateAutoLearnPolicy?: (boolean|null);
                }

                /** Represents a ShieldedVmIntegrityPolicy. */
                class ShieldedVmIntegrityPolicy implements IShieldedVmIntegrityPolicy {

                    /**
                     * Constructs a new ShieldedVmIntegrityPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IShieldedVmIntegrityPolicy);

                    /** ShieldedVmIntegrityPolicy updateAutoLearnPolicy. */
                    public updateAutoLearnPolicy?: (boolean|null);

                    /**
                     * Creates a new ShieldedVmIntegrityPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ShieldedVmIntegrityPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IShieldedVmIntegrityPolicy): google.cloud.compute.v1beta.ShieldedVmIntegrityPolicy;

                    /**
                     * Encodes the specified ShieldedVmIntegrityPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedVmIntegrityPolicy.verify|verify} messages.
                     * @param message ShieldedVmIntegrityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IShieldedVmIntegrityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ShieldedVmIntegrityPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ShieldedVmIntegrityPolicy.verify|verify} messages.
                     * @param message ShieldedVmIntegrityPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IShieldedVmIntegrityPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ShieldedVmIntegrityPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ShieldedVmIntegrityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ShieldedVmIntegrityPolicy;

                    /**
                     * Decodes a ShieldedVmIntegrityPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ShieldedVmIntegrityPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ShieldedVmIntegrityPolicy;

                    /**
                     * Verifies a ShieldedVmIntegrityPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ShieldedVmIntegrityPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ShieldedVmIntegrityPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ShieldedVmIntegrityPolicy;

                    /**
                     * Creates a plain object from a ShieldedVmIntegrityPolicy message. Also converts values to other types if specified.
                     * @param message ShieldedVmIntegrityPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ShieldedVmIntegrityPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ShieldedVmIntegrityPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ShieldedVmIntegrityPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SignedUrlKey. */
                interface ISignedUrlKey {

                    /** SignedUrlKey keyName */
                    keyName?: (string|null);

                    /** SignedUrlKey keyValue */
                    keyValue?: (string|null);
                }

                /** Represents a SignedUrlKey. */
                class SignedUrlKey implements ISignedUrlKey {

                    /**
                     * Constructs a new SignedUrlKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISignedUrlKey);

                    /** SignedUrlKey keyName. */
                    public keyName?: (string|null);

                    /** SignedUrlKey keyValue. */
                    public keyValue?: (string|null);

                    /**
                     * Creates a new SignedUrlKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SignedUrlKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISignedUrlKey): google.cloud.compute.v1beta.SignedUrlKey;

                    /**
                     * Encodes the specified SignedUrlKey message. Does not implicitly {@link google.cloud.compute.v1beta.SignedUrlKey.verify|verify} messages.
                     * @param message SignedUrlKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISignedUrlKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SignedUrlKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SignedUrlKey.verify|verify} messages.
                     * @param message SignedUrlKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISignedUrlKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SignedUrlKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SignedUrlKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SignedUrlKey;

                    /**
                     * Decodes a SignedUrlKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SignedUrlKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SignedUrlKey;

                    /**
                     * Verifies a SignedUrlKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SignedUrlKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SignedUrlKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SignedUrlKey;

                    /**
                     * Creates a plain object from a SignedUrlKey message. Also converts values to other types if specified.
                     * @param message SignedUrlKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SignedUrlKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SignedUrlKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SignedUrlKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SimulateMaintenanceEventInstanceRequest. */
                interface ISimulateMaintenanceEventInstanceRequest {

                    /** SimulateMaintenanceEventInstanceRequest instance */
                    instance?: (string|null);

                    /** SimulateMaintenanceEventInstanceRequest project */
                    project?: (string|null);

                    /** SimulateMaintenanceEventInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SimulateMaintenanceEventInstanceRequest withExtendedNotifications */
                    withExtendedNotifications?: (boolean|null);

                    /** SimulateMaintenanceEventInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SimulateMaintenanceEventInstanceRequest. */
                class SimulateMaintenanceEventInstanceRequest implements ISimulateMaintenanceEventInstanceRequest {

                    /**
                     * Constructs a new SimulateMaintenanceEventInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest);

                    /** SimulateMaintenanceEventInstanceRequest instance. */
                    public instance: string;

                    /** SimulateMaintenanceEventInstanceRequest project. */
                    public project: string;

                    /** SimulateMaintenanceEventInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SimulateMaintenanceEventInstanceRequest withExtendedNotifications. */
                    public withExtendedNotifications?: (boolean|null);

                    /** SimulateMaintenanceEventInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SimulateMaintenanceEventInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SimulateMaintenanceEventInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest): google.cloud.compute.v1beta.SimulateMaintenanceEventInstanceRequest;

                    /**
                     * Encodes the specified SimulateMaintenanceEventInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SimulateMaintenanceEventInstanceRequest.verify|verify} messages.
                     * @param message SimulateMaintenanceEventInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SimulateMaintenanceEventInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SimulateMaintenanceEventInstanceRequest.verify|verify} messages.
                     * @param message SimulateMaintenanceEventInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SimulateMaintenanceEventInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SimulateMaintenanceEventInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SimulateMaintenanceEventInstanceRequest;

                    /**
                     * Decodes a SimulateMaintenanceEventInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SimulateMaintenanceEventInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SimulateMaintenanceEventInstanceRequest;

                    /**
                     * Verifies a SimulateMaintenanceEventInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SimulateMaintenanceEventInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SimulateMaintenanceEventInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SimulateMaintenanceEventInstanceRequest;

                    /**
                     * Creates a plain object from a SimulateMaintenanceEventInstanceRequest message. Also converts values to other types if specified.
                     * @param message SimulateMaintenanceEventInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SimulateMaintenanceEventInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SimulateMaintenanceEventInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SimulateMaintenanceEventInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SimulateMaintenanceEventNodeGroupRequest. */
                interface ISimulateMaintenanceEventNodeGroupRequest {

                    /** SimulateMaintenanceEventNodeGroupRequest nodeGroup */
                    nodeGroup?: (string|null);

                    /** SimulateMaintenanceEventNodeGroupRequest nodeGroupsSimulateMaintenanceEventRequestResource */
                    nodeGroupsSimulateMaintenanceEventRequestResource?: (google.cloud.compute.v1beta.INodeGroupsSimulateMaintenanceEventRequest|null);

                    /** SimulateMaintenanceEventNodeGroupRequest project */
                    project?: (string|null);

                    /** SimulateMaintenanceEventNodeGroupRequest requestId */
                    requestId?: (string|null);

                    /** SimulateMaintenanceEventNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SimulateMaintenanceEventNodeGroupRequest. */
                class SimulateMaintenanceEventNodeGroupRequest implements ISimulateMaintenanceEventNodeGroupRequest {

                    /**
                     * Constructs a new SimulateMaintenanceEventNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISimulateMaintenanceEventNodeGroupRequest);

                    /** SimulateMaintenanceEventNodeGroupRequest nodeGroup. */
                    public nodeGroup: string;

                    /** SimulateMaintenanceEventNodeGroupRequest nodeGroupsSimulateMaintenanceEventRequestResource. */
                    public nodeGroupsSimulateMaintenanceEventRequestResource?: (google.cloud.compute.v1beta.INodeGroupsSimulateMaintenanceEventRequest|null);

                    /** SimulateMaintenanceEventNodeGroupRequest project. */
                    public project: string;

                    /** SimulateMaintenanceEventNodeGroupRequest requestId. */
                    public requestId?: (string|null);

                    /** SimulateMaintenanceEventNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SimulateMaintenanceEventNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SimulateMaintenanceEventNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISimulateMaintenanceEventNodeGroupRequest): google.cloud.compute.v1beta.SimulateMaintenanceEventNodeGroupRequest;

                    /**
                     * Encodes the specified SimulateMaintenanceEventNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SimulateMaintenanceEventNodeGroupRequest.verify|verify} messages.
                     * @param message SimulateMaintenanceEventNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISimulateMaintenanceEventNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SimulateMaintenanceEventNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SimulateMaintenanceEventNodeGroupRequest.verify|verify} messages.
                     * @param message SimulateMaintenanceEventNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISimulateMaintenanceEventNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SimulateMaintenanceEventNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SimulateMaintenanceEventNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SimulateMaintenanceEventNodeGroupRequest;

                    /**
                     * Decodes a SimulateMaintenanceEventNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SimulateMaintenanceEventNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SimulateMaintenanceEventNodeGroupRequest;

                    /**
                     * Verifies a SimulateMaintenanceEventNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SimulateMaintenanceEventNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SimulateMaintenanceEventNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SimulateMaintenanceEventNodeGroupRequest;

                    /**
                     * Creates a plain object from a SimulateMaintenanceEventNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message SimulateMaintenanceEventNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SimulateMaintenanceEventNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SimulateMaintenanceEventNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SimulateMaintenanceEventNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Snapshot. */
                interface ISnapshot {

                    /** Snapshot architecture */
                    architecture?: (string|null);

                    /** Snapshot autoCreated */
                    autoCreated?: (boolean|null);

                    /** Snapshot chainName */
                    chainName?: (string|null);

                    /** Snapshot creationSizeBytes */
                    creationSizeBytes?: (number|Long|string|null);

                    /** Snapshot creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Snapshot description */
                    description?: (string|null);

                    /** Snapshot diskSizeGb */
                    diskSizeGb?: (number|Long|string|null);

                    /** Snapshot downloadBytes */
                    downloadBytes?: (number|Long|string|null);

                    /** Snapshot enableConfidentialCompute */
                    enableConfidentialCompute?: (boolean|null);

                    /** Snapshot guestFlush */
                    guestFlush?: (boolean|null);

                    /** Snapshot guestOsFeatures */
                    guestOsFeatures?: (google.cloud.compute.v1beta.IGuestOsFeature[]|null);

                    /** Snapshot id */
                    id?: (number|Long|string|null);

                    /** Snapshot kind */
                    kind?: (string|null);

                    /** Snapshot labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** Snapshot labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Snapshot licenseCodes */
                    licenseCodes?: ((number|Long|string)[]|null);

                    /** Snapshot licenses */
                    licenses?: (string[]|null);

                    /** Snapshot locationHint */
                    locationHint?: (string|null);

                    /** Snapshot name */
                    name?: (string|null);

                    /** Snapshot params */
                    params?: (google.cloud.compute.v1beta.ISnapshotParams|null);

                    /** Snapshot region */
                    region?: (string|null);

                    /** Snapshot satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** Snapshot satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Snapshot selfLink */
                    selfLink?: (string|null);

                    /** Snapshot snapshotEncryptionKey */
                    snapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Snapshot snapshotGroupId */
                    snapshotGroupId?: (string|null);

                    /** Snapshot snapshotGroupName */
                    snapshotGroupName?: (string|null);

                    /** Snapshot snapshotType */
                    snapshotType?: (string|null);

                    /** Snapshot sourceDisk */
                    sourceDisk?: (string|null);

                    /** Snapshot sourceDiskEncryptionKey */
                    sourceDiskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Snapshot sourceDiskForRecoveryCheckpoint */
                    sourceDiskForRecoveryCheckpoint?: (string|null);

                    /** Snapshot sourceDiskId */
                    sourceDiskId?: (string|null);

                    /** Snapshot sourceInstantSnapshot */
                    sourceInstantSnapshot?: (string|null);

                    /** Snapshot sourceInstantSnapshotEncryptionKey */
                    sourceInstantSnapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Snapshot sourceInstantSnapshotId */
                    sourceInstantSnapshotId?: (string|null);

                    /** Snapshot sourceSnapshotSchedulePolicy */
                    sourceSnapshotSchedulePolicy?: (string|null);

                    /** Snapshot sourceSnapshotSchedulePolicyId */
                    sourceSnapshotSchedulePolicyId?: (string|null);

                    /** Snapshot status */
                    status?: (string|null);

                    /** Snapshot storageBytes */
                    storageBytes?: (number|Long|string|null);

                    /** Snapshot storageBytesStatus */
                    storageBytesStatus?: (string|null);

                    /** Snapshot storageLocations */
                    storageLocations?: (string[]|null);

                    /** Snapshot userLicenses */
                    userLicenses?: (string[]|null);
                }

                /** Represents a Snapshot. */
                class Snapshot implements ISnapshot {

                    /**
                     * Constructs a new Snapshot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshot);

                    /** Snapshot architecture. */
                    public architecture?: (string|null);

                    /** Snapshot autoCreated. */
                    public autoCreated?: (boolean|null);

                    /** Snapshot chainName. */
                    public chainName?: (string|null);

                    /** Snapshot creationSizeBytes. */
                    public creationSizeBytes?: (number|Long|string|null);

                    /** Snapshot creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Snapshot description. */
                    public description?: (string|null);

                    /** Snapshot diskSizeGb. */
                    public diskSizeGb?: (number|Long|string|null);

                    /** Snapshot downloadBytes. */
                    public downloadBytes?: (number|Long|string|null);

                    /** Snapshot enableConfidentialCompute. */
                    public enableConfidentialCompute?: (boolean|null);

                    /** Snapshot guestFlush. */
                    public guestFlush?: (boolean|null);

                    /** Snapshot guestOsFeatures. */
                    public guestOsFeatures: google.cloud.compute.v1beta.IGuestOsFeature[];

                    /** Snapshot id. */
                    public id?: (number|Long|string|null);

                    /** Snapshot kind. */
                    public kind?: (string|null);

                    /** Snapshot labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** Snapshot labels. */
                    public labels: { [k: string]: string };

                    /** Snapshot licenseCodes. */
                    public licenseCodes: (number|Long|string)[];

                    /** Snapshot licenses. */
                    public licenses: string[];

                    /** Snapshot locationHint. */
                    public locationHint?: (string|null);

                    /** Snapshot name. */
                    public name?: (string|null);

                    /** Snapshot params. */
                    public params?: (google.cloud.compute.v1beta.ISnapshotParams|null);

                    /** Snapshot region. */
                    public region?: (string|null);

                    /** Snapshot satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Snapshot satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Snapshot selfLink. */
                    public selfLink?: (string|null);

                    /** Snapshot snapshotEncryptionKey. */
                    public snapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Snapshot snapshotGroupId. */
                    public snapshotGroupId?: (string|null);

                    /** Snapshot snapshotGroupName. */
                    public snapshotGroupName?: (string|null);

                    /** Snapshot snapshotType. */
                    public snapshotType?: (string|null);

                    /** Snapshot sourceDisk. */
                    public sourceDisk?: (string|null);

                    /** Snapshot sourceDiskEncryptionKey. */
                    public sourceDiskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Snapshot sourceDiskForRecoveryCheckpoint. */
                    public sourceDiskForRecoveryCheckpoint?: (string|null);

                    /** Snapshot sourceDiskId. */
                    public sourceDiskId?: (string|null);

                    /** Snapshot sourceInstantSnapshot. */
                    public sourceInstantSnapshot?: (string|null);

                    /** Snapshot sourceInstantSnapshotEncryptionKey. */
                    public sourceInstantSnapshotEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** Snapshot sourceInstantSnapshotId. */
                    public sourceInstantSnapshotId?: (string|null);

                    /** Snapshot sourceSnapshotSchedulePolicy. */
                    public sourceSnapshotSchedulePolicy?: (string|null);

                    /** Snapshot sourceSnapshotSchedulePolicyId. */
                    public sourceSnapshotSchedulePolicyId?: (string|null);

                    /** Snapshot status. */
                    public status?: (string|null);

                    /** Snapshot storageBytes. */
                    public storageBytes?: (number|Long|string|null);

                    /** Snapshot storageBytesStatus. */
                    public storageBytesStatus?: (string|null);

                    /** Snapshot storageLocations. */
                    public storageLocations: string[];

                    /** Snapshot userLicenses. */
                    public userLicenses: string[];

                    /**
                     * Creates a new Snapshot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Snapshot instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshot): google.cloud.compute.v1beta.Snapshot;

                    /**
                     * Encodes the specified Snapshot message. Does not implicitly {@link google.cloud.compute.v1beta.Snapshot.verify|verify} messages.
                     * @param message Snapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Snapshot message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Snapshot.verify|verify} messages.
                     * @param message Snapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Snapshot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Snapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Snapshot;

                    /**
                     * Decodes a Snapshot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Snapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Snapshot;

                    /**
                     * Verifies a Snapshot message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Snapshot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Snapshot
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Snapshot;

                    /**
                     * Creates a plain object from a Snapshot message. Also converts values to other types if specified.
                     * @param message Snapshot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Snapshot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Snapshot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Snapshot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Snapshot {

                    /** Architecture enum. */
                    enum Architecture {
                        UNDEFINED_ARCHITECTURE = 0,
                        ARCHITECTURE_UNSPECIFIED = 394750507,
                        ARM64 = 62547450,
                        X86_64 = 425300551
                    }

                    /** SnapshotType enum. */
                    enum SnapshotType {
                        UNDEFINED_SNAPSHOT_TYPE = 0,
                        ARCHIVE = 506752162,
                        STANDARD = 484642493
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963,
                        UPLOADING = 267603489
                    }

                    /** StorageBytesStatus enum. */
                    enum StorageBytesStatus {
                        UNDEFINED_STORAGE_BYTES_STATUS = 0,
                        UPDATING = 494614342,
                        UP_TO_DATE = 101306702
                    }
                }

                /** Properties of a SnapshotAggregatedList. */
                interface ISnapshotAggregatedList {

                    /** SnapshotAggregatedList etag */
                    etag?: (string|null);

                    /** SnapshotAggregatedList id */
                    id?: (string|null);

                    /** SnapshotAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ISnapshotsScopedList }|null);

                    /** SnapshotAggregatedList kind */
                    kind?: (string|null);

                    /** SnapshotAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SnapshotAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SnapshotAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SnapshotAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SnapshotAggregatedList. */
                class SnapshotAggregatedList implements ISnapshotAggregatedList {

                    /**
                     * Constructs a new SnapshotAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotAggregatedList);

                    /** SnapshotAggregatedList etag. */
                    public etag?: (string|null);

                    /** SnapshotAggregatedList id. */
                    public id?: (string|null);

                    /** SnapshotAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ISnapshotsScopedList };

                    /** SnapshotAggregatedList kind. */
                    public kind?: (string|null);

                    /** SnapshotAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SnapshotAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SnapshotAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SnapshotAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SnapshotAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotAggregatedList): google.cloud.compute.v1beta.SnapshotAggregatedList;

                    /**
                     * Encodes the specified SnapshotAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotAggregatedList.verify|verify} messages.
                     * @param message SnapshotAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotAggregatedList.verify|verify} messages.
                     * @param message SnapshotAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotAggregatedList;

                    /**
                     * Decodes a SnapshotAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotAggregatedList;

                    /**
                     * Verifies a SnapshotAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotAggregatedList;

                    /**
                     * Creates a plain object from a SnapshotAggregatedList message. Also converts values to other types if specified.
                     * @param message SnapshotAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotGroup. */
                interface ISnapshotGroup {

                    /** SnapshotGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** SnapshotGroup description */
                    description?: (string|null);

                    /** SnapshotGroup id */
                    id?: (number|Long|string|null);

                    /** SnapshotGroup kind */
                    kind?: (string|null);

                    /** SnapshotGroup name */
                    name?: (string|null);

                    /** SnapshotGroup selfLink */
                    selfLink?: (string|null);

                    /** SnapshotGroup selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** SnapshotGroup sourceInfo */
                    sourceInfo?: (google.cloud.compute.v1beta.ISnapshotGroupSourceInfo|null);

                    /** SnapshotGroup sourceInstantSnapshotGroup */
                    sourceInstantSnapshotGroup?: (string|null);

                    /** SnapshotGroup sourceInstantSnapshotGroupInfo */
                    sourceInstantSnapshotGroupInfo?: (google.cloud.compute.v1beta.ISnapshotGroupSourceInstantSnapshotGroupInfo|null);

                    /** SnapshotGroup status */
                    status?: (string|null);
                }

                /** Represents a SnapshotGroup. */
                class SnapshotGroup implements ISnapshotGroup {

                    /**
                     * Constructs a new SnapshotGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotGroup);

                    /** SnapshotGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** SnapshotGroup description. */
                    public description?: (string|null);

                    /** SnapshotGroup id. */
                    public id?: (number|Long|string|null);

                    /** SnapshotGroup kind. */
                    public kind?: (string|null);

                    /** SnapshotGroup name. */
                    public name?: (string|null);

                    /** SnapshotGroup selfLink. */
                    public selfLink?: (string|null);

                    /** SnapshotGroup selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** SnapshotGroup sourceInfo. */
                    public sourceInfo?: (google.cloud.compute.v1beta.ISnapshotGroupSourceInfo|null);

                    /** SnapshotGroup sourceInstantSnapshotGroup. */
                    public sourceInstantSnapshotGroup?: (string|null);

                    /** SnapshotGroup sourceInstantSnapshotGroupInfo. */
                    public sourceInstantSnapshotGroupInfo?: (google.cloud.compute.v1beta.ISnapshotGroupSourceInstantSnapshotGroupInfo|null);

                    /** SnapshotGroup status. */
                    public status?: (string|null);

                    /**
                     * Creates a new SnapshotGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotGroup): google.cloud.compute.v1beta.SnapshotGroup;

                    /**
                     * Encodes the specified SnapshotGroup message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotGroup.verify|verify} messages.
                     * @param message SnapshotGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotGroup.verify|verify} messages.
                     * @param message SnapshotGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotGroup;

                    /**
                     * Decodes a SnapshotGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotGroup;

                    /**
                     * Verifies a SnapshotGroup message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotGroup;

                    /**
                     * Creates a plain object from a SnapshotGroup message. Also converts values to other types if specified.
                     * @param message SnapshotGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SnapshotGroup {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        INVALID = 530283991,
                        READY = 77848963,
                        UNKNOWN = 433141802,
                        UPLOADING = 267603489
                    }
                }

                /** Properties of a SnapshotGroupParameters. */
                interface ISnapshotGroupParameters {

                    /** SnapshotGroupParameters replicaZones */
                    replicaZones?: (string[]|null);

                    /** SnapshotGroupParameters sourceSnapshotGroup */
                    sourceSnapshotGroup?: (string|null);

                    /** SnapshotGroupParameters type */
                    type?: (string|null);
                }

                /** Represents a SnapshotGroupParameters. */
                class SnapshotGroupParameters implements ISnapshotGroupParameters {

                    /**
                     * Constructs a new SnapshotGroupParameters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotGroupParameters);

                    /** SnapshotGroupParameters replicaZones. */
                    public replicaZones: string[];

                    /** SnapshotGroupParameters sourceSnapshotGroup. */
                    public sourceSnapshotGroup?: (string|null);

                    /** SnapshotGroupParameters type. */
                    public type?: (string|null);

                    /**
                     * Creates a new SnapshotGroupParameters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotGroupParameters instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotGroupParameters): google.cloud.compute.v1beta.SnapshotGroupParameters;

                    /**
                     * Encodes the specified SnapshotGroupParameters message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotGroupParameters.verify|verify} messages.
                     * @param message SnapshotGroupParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotGroupParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotGroupParameters message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotGroupParameters.verify|verify} messages.
                     * @param message SnapshotGroupParameters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotGroupParameters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotGroupParameters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotGroupParameters
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotGroupParameters;

                    /**
                     * Decodes a SnapshotGroupParameters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotGroupParameters
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotGroupParameters;

                    /**
                     * Verifies a SnapshotGroupParameters message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotGroupParameters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotGroupParameters
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotGroupParameters;

                    /**
                     * Creates a plain object from a SnapshotGroupParameters message. Also converts values to other types if specified.
                     * @param message SnapshotGroupParameters
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotGroupParameters, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotGroupParameters to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotGroupParameters
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotGroupSourceInfo. */
                interface ISnapshotGroupSourceInfo {

                    /** SnapshotGroupSourceInfo consistencyGroup */
                    consistencyGroup?: (string|null);

                    /** SnapshotGroupSourceInfo consistencyGroupId */
                    consistencyGroupId?: (string|null);
                }

                /** Represents a SnapshotGroupSourceInfo. */
                class SnapshotGroupSourceInfo implements ISnapshotGroupSourceInfo {

                    /**
                     * Constructs a new SnapshotGroupSourceInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotGroupSourceInfo);

                    /** SnapshotGroupSourceInfo consistencyGroup. */
                    public consistencyGroup?: (string|null);

                    /** SnapshotGroupSourceInfo consistencyGroupId. */
                    public consistencyGroupId?: (string|null);

                    /**
                     * Creates a new SnapshotGroupSourceInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotGroupSourceInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotGroupSourceInfo): google.cloud.compute.v1beta.SnapshotGroupSourceInfo;

                    /**
                     * Encodes the specified SnapshotGroupSourceInfo message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotGroupSourceInfo.verify|verify} messages.
                     * @param message SnapshotGroupSourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotGroupSourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotGroupSourceInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotGroupSourceInfo.verify|verify} messages.
                     * @param message SnapshotGroupSourceInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotGroupSourceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotGroupSourceInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotGroupSourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotGroupSourceInfo;

                    /**
                     * Decodes a SnapshotGroupSourceInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotGroupSourceInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotGroupSourceInfo;

                    /**
                     * Verifies a SnapshotGroupSourceInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotGroupSourceInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotGroupSourceInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotGroupSourceInfo;

                    /**
                     * Creates a plain object from a SnapshotGroupSourceInfo message. Also converts values to other types if specified.
                     * @param message SnapshotGroupSourceInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotGroupSourceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotGroupSourceInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotGroupSourceInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotGroupSourceInstantSnapshotGroupInfo. */
                interface ISnapshotGroupSourceInstantSnapshotGroupInfo {

                    /** SnapshotGroupSourceInstantSnapshotGroupInfo instantSnapshotGroup */
                    instantSnapshotGroup?: (string|null);

                    /** SnapshotGroupSourceInstantSnapshotGroupInfo instantSnapshotGroupId */
                    instantSnapshotGroupId?: (string|null);
                }

                /** Represents a SnapshotGroupSourceInstantSnapshotGroupInfo. */
                class SnapshotGroupSourceInstantSnapshotGroupInfo implements ISnapshotGroupSourceInstantSnapshotGroupInfo {

                    /**
                     * Constructs a new SnapshotGroupSourceInstantSnapshotGroupInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotGroupSourceInstantSnapshotGroupInfo);

                    /** SnapshotGroupSourceInstantSnapshotGroupInfo instantSnapshotGroup. */
                    public instantSnapshotGroup?: (string|null);

                    /** SnapshotGroupSourceInstantSnapshotGroupInfo instantSnapshotGroupId. */
                    public instantSnapshotGroupId?: (string|null);

                    /**
                     * Creates a new SnapshotGroupSourceInstantSnapshotGroupInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotGroupSourceInstantSnapshotGroupInfo instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotGroupSourceInstantSnapshotGroupInfo): google.cloud.compute.v1beta.SnapshotGroupSourceInstantSnapshotGroupInfo;

                    /**
                     * Encodes the specified SnapshotGroupSourceInstantSnapshotGroupInfo message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotGroupSourceInstantSnapshotGroupInfo.verify|verify} messages.
                     * @param message SnapshotGroupSourceInstantSnapshotGroupInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotGroupSourceInstantSnapshotGroupInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotGroupSourceInstantSnapshotGroupInfo message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotGroupSourceInstantSnapshotGroupInfo.verify|verify} messages.
                     * @param message SnapshotGroupSourceInstantSnapshotGroupInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotGroupSourceInstantSnapshotGroupInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotGroupSourceInstantSnapshotGroupInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotGroupSourceInstantSnapshotGroupInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotGroupSourceInstantSnapshotGroupInfo;

                    /**
                     * Decodes a SnapshotGroupSourceInstantSnapshotGroupInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotGroupSourceInstantSnapshotGroupInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotGroupSourceInstantSnapshotGroupInfo;

                    /**
                     * Verifies a SnapshotGroupSourceInstantSnapshotGroupInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotGroupSourceInstantSnapshotGroupInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotGroupSourceInstantSnapshotGroupInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotGroupSourceInstantSnapshotGroupInfo;

                    /**
                     * Creates a plain object from a SnapshotGroupSourceInstantSnapshotGroupInfo message. Also converts values to other types if specified.
                     * @param message SnapshotGroupSourceInstantSnapshotGroupInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotGroupSourceInstantSnapshotGroupInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotGroupSourceInstantSnapshotGroupInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotGroupSourceInstantSnapshotGroupInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotList. */
                interface ISnapshotList {

                    /** SnapshotList id */
                    id?: (string|null);

                    /** SnapshotList items */
                    items?: (google.cloud.compute.v1beta.ISnapshot[]|null);

                    /** SnapshotList kind */
                    kind?: (string|null);

                    /** SnapshotList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SnapshotList selfLink */
                    selfLink?: (string|null);

                    /** SnapshotList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SnapshotList. */
                class SnapshotList implements ISnapshotList {

                    /**
                     * Constructs a new SnapshotList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotList);

                    /** SnapshotList id. */
                    public id?: (string|null);

                    /** SnapshotList items. */
                    public items: google.cloud.compute.v1beta.ISnapshot[];

                    /** SnapshotList kind. */
                    public kind?: (string|null);

                    /** SnapshotList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SnapshotList selfLink. */
                    public selfLink?: (string|null);

                    /** SnapshotList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SnapshotList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotList): google.cloud.compute.v1beta.SnapshotList;

                    /**
                     * Encodes the specified SnapshotList message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotList.verify|verify} messages.
                     * @param message SnapshotList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotList.verify|verify} messages.
                     * @param message SnapshotList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotList;

                    /**
                     * Decodes a SnapshotList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotList;

                    /**
                     * Verifies a SnapshotList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotList;

                    /**
                     * Creates a plain object from a SnapshotList message. Also converts values to other types if specified.
                     * @param message SnapshotList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotParams. */
                interface ISnapshotParams {

                    /** SnapshotParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a SnapshotParams. */
                class SnapshotParams implements ISnapshotParams {

                    /**
                     * Constructs a new SnapshotParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotParams);

                    /** SnapshotParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new SnapshotParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotParams): google.cloud.compute.v1beta.SnapshotParams;

                    /**
                     * Encodes the specified SnapshotParams message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotParams.verify|verify} messages.
                     * @param message SnapshotParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotParams.verify|verify} messages.
                     * @param message SnapshotParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotParams;

                    /**
                     * Decodes a SnapshotParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotParams;

                    /**
                     * Verifies a SnapshotParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotParams;

                    /**
                     * Creates a plain object from a SnapshotParams message. Also converts values to other types if specified.
                     * @param message SnapshotParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotSettings. */
                interface ISnapshotSettings {

                    /** SnapshotSettings accessLocation */
                    accessLocation?: (google.cloud.compute.v1beta.ISnapshotSettingsAccessLocation|null);

                    /** SnapshotSettings storageLocation */
                    storageLocation?: (google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettings|null);
                }

                /** Represents a SnapshotSettings. */
                class SnapshotSettings implements ISnapshotSettings {

                    /**
                     * Constructs a new SnapshotSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotSettings);

                    /** SnapshotSettings accessLocation. */
                    public accessLocation?: (google.cloud.compute.v1beta.ISnapshotSettingsAccessLocation|null);

                    /** SnapshotSettings storageLocation. */
                    public storageLocation?: (google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettings|null);

                    /**
                     * Creates a new SnapshotSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotSettings): google.cloud.compute.v1beta.SnapshotSettings;

                    /**
                     * Encodes the specified SnapshotSettings message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettings.verify|verify} messages.
                     * @param message SnapshotSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettings.verify|verify} messages.
                     * @param message SnapshotSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotSettings;

                    /**
                     * Decodes a SnapshotSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotSettings;

                    /**
                     * Verifies a SnapshotSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotSettings;

                    /**
                     * Creates a plain object from a SnapshotSettings message. Also converts values to other types if specified.
                     * @param message SnapshotSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotSettingsAccessLocation. */
                interface ISnapshotSettingsAccessLocation {

                    /** SnapshotSettingsAccessLocation locations */
                    locations?: ({ [k: string]: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocationAccessLocationPreference }|null);

                    /** SnapshotSettingsAccessLocation policy */
                    policy?: (string|null);
                }

                /** Represents a SnapshotSettingsAccessLocation. */
                class SnapshotSettingsAccessLocation implements ISnapshotSettingsAccessLocation {

                    /**
                     * Constructs a new SnapshotSettingsAccessLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocation);

                    /** SnapshotSettingsAccessLocation locations. */
                    public locations: { [k: string]: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocationAccessLocationPreference };

                    /** SnapshotSettingsAccessLocation policy. */
                    public policy?: (string|null);

                    /**
                     * Creates a new SnapshotSettingsAccessLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotSettingsAccessLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocation): google.cloud.compute.v1beta.SnapshotSettingsAccessLocation;

                    /**
                     * Encodes the specified SnapshotSettingsAccessLocation message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettingsAccessLocation.verify|verify} messages.
                     * @param message SnapshotSettingsAccessLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotSettingsAccessLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettingsAccessLocation.verify|verify} messages.
                     * @param message SnapshotSettingsAccessLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotSettingsAccessLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotSettingsAccessLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotSettingsAccessLocation;

                    /**
                     * Decodes a SnapshotSettingsAccessLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotSettingsAccessLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotSettingsAccessLocation;

                    /**
                     * Verifies a SnapshotSettingsAccessLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotSettingsAccessLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotSettingsAccessLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotSettingsAccessLocation;

                    /**
                     * Creates a plain object from a SnapshotSettingsAccessLocation message. Also converts values to other types if specified.
                     * @param message SnapshotSettingsAccessLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotSettingsAccessLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotSettingsAccessLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotSettingsAccessLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SnapshotSettingsAccessLocation {

                    /** Policy enum. */
                    enum Policy {
                        UNDEFINED_POLICY = 0,
                        ALL_REGIONS = 273143585,
                        POLICY_UNSPECIFIED = 197974922,
                        SPECIFIC_REGIONS = 454128082
                    }
                }

                /** Properties of a SnapshotSettingsAccessLocationAccessLocationPreference. */
                interface ISnapshotSettingsAccessLocationAccessLocationPreference {

                    /** SnapshotSettingsAccessLocationAccessLocationPreference region */
                    region?: (string|null);
                }

                /** Represents a SnapshotSettingsAccessLocationAccessLocationPreference. */
                class SnapshotSettingsAccessLocationAccessLocationPreference implements ISnapshotSettingsAccessLocationAccessLocationPreference {

                    /**
                     * Constructs a new SnapshotSettingsAccessLocationAccessLocationPreference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocationAccessLocationPreference);

                    /** SnapshotSettingsAccessLocationAccessLocationPreference region. */
                    public region?: (string|null);

                    /**
                     * Creates a new SnapshotSettingsAccessLocationAccessLocationPreference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotSettingsAccessLocationAccessLocationPreference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocationAccessLocationPreference): google.cloud.compute.v1beta.SnapshotSettingsAccessLocationAccessLocationPreference;

                    /**
                     * Encodes the specified SnapshotSettingsAccessLocationAccessLocationPreference message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettingsAccessLocationAccessLocationPreference.verify|verify} messages.
                     * @param message SnapshotSettingsAccessLocationAccessLocationPreference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocationAccessLocationPreference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotSettingsAccessLocationAccessLocationPreference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettingsAccessLocationAccessLocationPreference.verify|verify} messages.
                     * @param message SnapshotSettingsAccessLocationAccessLocationPreference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotSettingsAccessLocationAccessLocationPreference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotSettingsAccessLocationAccessLocationPreference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotSettingsAccessLocationAccessLocationPreference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotSettingsAccessLocationAccessLocationPreference;

                    /**
                     * Decodes a SnapshotSettingsAccessLocationAccessLocationPreference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotSettingsAccessLocationAccessLocationPreference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotSettingsAccessLocationAccessLocationPreference;

                    /**
                     * Verifies a SnapshotSettingsAccessLocationAccessLocationPreference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotSettingsAccessLocationAccessLocationPreference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotSettingsAccessLocationAccessLocationPreference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotSettingsAccessLocationAccessLocationPreference;

                    /**
                     * Creates a plain object from a SnapshotSettingsAccessLocationAccessLocationPreference message. Also converts values to other types if specified.
                     * @param message SnapshotSettingsAccessLocationAccessLocationPreference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotSettingsAccessLocationAccessLocationPreference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotSettingsAccessLocationAccessLocationPreference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotSettingsAccessLocationAccessLocationPreference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotSettingsStorageLocationSettings. */
                interface ISnapshotSettingsStorageLocationSettings {

                    /** SnapshotSettingsStorageLocationSettings locations */
                    locations?: ({ [k: string]: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference }|null);

                    /** SnapshotSettingsStorageLocationSettings policy */
                    policy?: (string|null);
                }

                /** Represents a SnapshotSettingsStorageLocationSettings. */
                class SnapshotSettingsStorageLocationSettings implements ISnapshotSettingsStorageLocationSettings {

                    /**
                     * Constructs a new SnapshotSettingsStorageLocationSettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettings);

                    /** SnapshotSettingsStorageLocationSettings locations. */
                    public locations: { [k: string]: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference };

                    /** SnapshotSettingsStorageLocationSettings policy. */
                    public policy?: (string|null);

                    /**
                     * Creates a new SnapshotSettingsStorageLocationSettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotSettingsStorageLocationSettings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettings): google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettings;

                    /**
                     * Encodes the specified SnapshotSettingsStorageLocationSettings message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettings.verify|verify} messages.
                     * @param message SnapshotSettingsStorageLocationSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotSettingsStorageLocationSettings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettings.verify|verify} messages.
                     * @param message SnapshotSettingsStorageLocationSettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotSettingsStorageLocationSettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotSettingsStorageLocationSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettings;

                    /**
                     * Decodes a SnapshotSettingsStorageLocationSettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotSettingsStorageLocationSettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettings;

                    /**
                     * Verifies a SnapshotSettingsStorageLocationSettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotSettingsStorageLocationSettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotSettingsStorageLocationSettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettings;

                    /**
                     * Creates a plain object from a SnapshotSettingsStorageLocationSettings message. Also converts values to other types if specified.
                     * @param message SnapshotSettingsStorageLocationSettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotSettingsStorageLocationSettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotSettingsStorageLocationSettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SnapshotSettingsStorageLocationSettings {

                    /** Policy enum. */
                    enum Policy {
                        UNDEFINED_POLICY = 0,
                        LOCAL_REGION = 403535464,
                        NEAREST_MULTI_REGION = 212467515,
                        SPECIFIC_LOCATIONS = 280093809,
                        STORAGE_LOCATION_POLICY_UNSPECIFIED = 250644592
                    }
                }

                /** Properties of a SnapshotSettingsStorageLocationSettingsStorageLocationPreference. */
                interface ISnapshotSettingsStorageLocationSettingsStorageLocationPreference {

                    /** SnapshotSettingsStorageLocationSettingsStorageLocationPreference name */
                    name?: (string|null);
                }

                /** Represents a SnapshotSettingsStorageLocationSettingsStorageLocationPreference. */
                class SnapshotSettingsStorageLocationSettingsStorageLocationPreference implements ISnapshotSettingsStorageLocationSettingsStorageLocationPreference {

                    /**
                     * Constructs a new SnapshotSettingsStorageLocationSettingsStorageLocationPreference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference);

                    /** SnapshotSettingsStorageLocationSettingsStorageLocationPreference name. */
                    public name?: (string|null);

                    /**
                     * Creates a new SnapshotSettingsStorageLocationSettingsStorageLocationPreference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotSettingsStorageLocationSettingsStorageLocationPreference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference): google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettingsStorageLocationPreference;

                    /**
                     * Encodes the specified SnapshotSettingsStorageLocationSettingsStorageLocationPreference message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettingsStorageLocationPreference.verify|verify} messages.
                     * @param message SnapshotSettingsStorageLocationSettingsStorageLocationPreference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotSettingsStorageLocationSettingsStorageLocationPreference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettingsStorageLocationPreference.verify|verify} messages.
                     * @param message SnapshotSettingsStorageLocationSettingsStorageLocationPreference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotSettingsStorageLocationSettingsStorageLocationPreference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettingsStorageLocationPreference;

                    /**
                     * Decodes a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettingsStorageLocationPreference;

                    /**
                     * Verifies a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettingsStorageLocationPreference;

                    /**
                     * Creates a plain object from a SnapshotSettingsStorageLocationSettingsStorageLocationPreference message. Also converts values to other types if specified.
                     * @param message SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotSettingsStorageLocationSettingsStorageLocationPreference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotSettingsStorageLocationSettingsStorageLocationPreference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotSettingsStorageLocationSettingsStorageLocationPreference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SnapshotsScopedList. */
                interface ISnapshotsScopedList {

                    /** SnapshotsScopedList snapshots */
                    snapshots?: (google.cloud.compute.v1beta.ISnapshot[]|null);

                    /** SnapshotsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SnapshotsScopedList. */
                class SnapshotsScopedList implements ISnapshotsScopedList {

                    /**
                     * Constructs a new SnapshotsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISnapshotsScopedList);

                    /** SnapshotsScopedList snapshots. */
                    public snapshots: google.cloud.compute.v1beta.ISnapshot[];

                    /** SnapshotsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SnapshotsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SnapshotsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISnapshotsScopedList): google.cloud.compute.v1beta.SnapshotsScopedList;

                    /**
                     * Encodes the specified SnapshotsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotsScopedList.verify|verify} messages.
                     * @param message SnapshotsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISnapshotsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SnapshotsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SnapshotsScopedList.verify|verify} messages.
                     * @param message SnapshotsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISnapshotsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SnapshotsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SnapshotsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SnapshotsScopedList;

                    /**
                     * Decodes a SnapshotsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SnapshotsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SnapshotsScopedList;

                    /**
                     * Verifies a SnapshotsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SnapshotsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SnapshotsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SnapshotsScopedList;

                    /**
                     * Creates a plain object from a SnapshotsScopedList message. Also converts values to other types if specified.
                     * @param message SnapshotsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SnapshotsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SnapshotsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SnapshotsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceDiskEncryptionKey. */
                interface ISourceDiskEncryptionKey {

                    /** SourceDiskEncryptionKey diskEncryptionKey */
                    diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** SourceDiskEncryptionKey sourceDisk */
                    sourceDisk?: (string|null);
                }

                /** Represents a SourceDiskEncryptionKey. */
                class SourceDiskEncryptionKey implements ISourceDiskEncryptionKey {

                    /**
                     * Constructs a new SourceDiskEncryptionKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISourceDiskEncryptionKey);

                    /** SourceDiskEncryptionKey diskEncryptionKey. */
                    public diskEncryptionKey?: (google.cloud.compute.v1beta.ICustomerEncryptionKey|null);

                    /** SourceDiskEncryptionKey sourceDisk. */
                    public sourceDisk?: (string|null);

                    /**
                     * Creates a new SourceDiskEncryptionKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceDiskEncryptionKey instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISourceDiskEncryptionKey): google.cloud.compute.v1beta.SourceDiskEncryptionKey;

                    /**
                     * Encodes the specified SourceDiskEncryptionKey message. Does not implicitly {@link google.cloud.compute.v1beta.SourceDiskEncryptionKey.verify|verify} messages.
                     * @param message SourceDiskEncryptionKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISourceDiskEncryptionKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceDiskEncryptionKey message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SourceDiskEncryptionKey.verify|verify} messages.
                     * @param message SourceDiskEncryptionKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISourceDiskEncryptionKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceDiskEncryptionKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceDiskEncryptionKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SourceDiskEncryptionKey;

                    /**
                     * Decodes a SourceDiskEncryptionKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceDiskEncryptionKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SourceDiskEncryptionKey;

                    /**
                     * Verifies a SourceDiskEncryptionKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceDiskEncryptionKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceDiskEncryptionKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SourceDiskEncryptionKey;

                    /**
                     * Creates a plain object from a SourceDiskEncryptionKey message. Also converts values to other types if specified.
                     * @param message SourceDiskEncryptionKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SourceDiskEncryptionKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceDiskEncryptionKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceDiskEncryptionKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceInstanceParams. */
                interface ISourceInstanceParams {

                    /** SourceInstanceParams diskConfigs */
                    diskConfigs?: (google.cloud.compute.v1beta.IDiskInstantiationConfig[]|null);
                }

                /** Represents a SourceInstanceParams. */
                class SourceInstanceParams implements ISourceInstanceParams {

                    /**
                     * Constructs a new SourceInstanceParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISourceInstanceParams);

                    /** SourceInstanceParams diskConfigs. */
                    public diskConfigs: google.cloud.compute.v1beta.IDiskInstantiationConfig[];

                    /**
                     * Creates a new SourceInstanceParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceInstanceParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISourceInstanceParams): google.cloud.compute.v1beta.SourceInstanceParams;

                    /**
                     * Encodes the specified SourceInstanceParams message. Does not implicitly {@link google.cloud.compute.v1beta.SourceInstanceParams.verify|verify} messages.
                     * @param message SourceInstanceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISourceInstanceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceInstanceParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SourceInstanceParams.verify|verify} messages.
                     * @param message SourceInstanceParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISourceInstanceParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceInstanceParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceInstanceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SourceInstanceParams;

                    /**
                     * Decodes a SourceInstanceParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceInstanceParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SourceInstanceParams;

                    /**
                     * Verifies a SourceInstanceParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceInstanceParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceInstanceParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SourceInstanceParams;

                    /**
                     * Creates a plain object from a SourceInstanceParams message. Also converts values to other types if specified.
                     * @param message SourceInstanceParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SourceInstanceParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceInstanceParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceInstanceParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceInstanceProperties. */
                interface ISourceInstanceProperties {

                    /** SourceInstanceProperties canIpForward */
                    canIpForward?: (boolean|null);

                    /** SourceInstanceProperties deletionProtection */
                    deletionProtection?: (boolean|null);

                    /** SourceInstanceProperties description */
                    description?: (string|null);

                    /** SourceInstanceProperties disks */
                    disks?: (google.cloud.compute.v1beta.ISavedAttachedDisk[]|null);

                    /** SourceInstanceProperties guestAccelerators */
                    guestAccelerators?: (google.cloud.compute.v1beta.IAcceleratorConfig[]|null);

                    /** SourceInstanceProperties keyRevocationActionType */
                    keyRevocationActionType?: (string|null);

                    /** SourceInstanceProperties labels */
                    labels?: ({ [k: string]: string }|null);

                    /** SourceInstanceProperties machineType */
                    machineType?: (string|null);

                    /** SourceInstanceProperties metadata */
                    metadata?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** SourceInstanceProperties minCpuPlatform */
                    minCpuPlatform?: (string|null);

                    /** SourceInstanceProperties networkInterfaces */
                    networkInterfaces?: (google.cloud.compute.v1beta.INetworkInterface[]|null);

                    /** SourceInstanceProperties postKeyRevocationActionType */
                    postKeyRevocationActionType?: (string|null);

                    /** SourceInstanceProperties scheduling */
                    scheduling?: (google.cloud.compute.v1beta.IScheduling|null);

                    /** SourceInstanceProperties serviceAccounts */
                    serviceAccounts?: (google.cloud.compute.v1beta.IServiceAccount[]|null);

                    /** SourceInstanceProperties tags */
                    tags?: (google.cloud.compute.v1beta.ITags|null);
                }

                /** Represents a SourceInstanceProperties. */
                class SourceInstanceProperties implements ISourceInstanceProperties {

                    /**
                     * Constructs a new SourceInstanceProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISourceInstanceProperties);

                    /** SourceInstanceProperties canIpForward. */
                    public canIpForward?: (boolean|null);

                    /** SourceInstanceProperties deletionProtection. */
                    public deletionProtection?: (boolean|null);

                    /** SourceInstanceProperties description. */
                    public description?: (string|null);

                    /** SourceInstanceProperties disks. */
                    public disks: google.cloud.compute.v1beta.ISavedAttachedDisk[];

                    /** SourceInstanceProperties guestAccelerators. */
                    public guestAccelerators: google.cloud.compute.v1beta.IAcceleratorConfig[];

                    /** SourceInstanceProperties keyRevocationActionType. */
                    public keyRevocationActionType?: (string|null);

                    /** SourceInstanceProperties labels. */
                    public labels: { [k: string]: string };

                    /** SourceInstanceProperties machineType. */
                    public machineType?: (string|null);

                    /** SourceInstanceProperties metadata. */
                    public metadata?: (google.cloud.compute.v1beta.IMetadata|null);

                    /** SourceInstanceProperties minCpuPlatform. */
                    public minCpuPlatform?: (string|null);

                    /** SourceInstanceProperties networkInterfaces. */
                    public networkInterfaces: google.cloud.compute.v1beta.INetworkInterface[];

                    /** SourceInstanceProperties postKeyRevocationActionType. */
                    public postKeyRevocationActionType?: (string|null);

                    /** SourceInstanceProperties scheduling. */
                    public scheduling?: (google.cloud.compute.v1beta.IScheduling|null);

                    /** SourceInstanceProperties serviceAccounts. */
                    public serviceAccounts: google.cloud.compute.v1beta.IServiceAccount[];

                    /** SourceInstanceProperties tags. */
                    public tags?: (google.cloud.compute.v1beta.ITags|null);

                    /**
                     * Creates a new SourceInstanceProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceInstanceProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISourceInstanceProperties): google.cloud.compute.v1beta.SourceInstanceProperties;

                    /**
                     * Encodes the specified SourceInstanceProperties message. Does not implicitly {@link google.cloud.compute.v1beta.SourceInstanceProperties.verify|verify} messages.
                     * @param message SourceInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISourceInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceInstanceProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SourceInstanceProperties.verify|verify} messages.
                     * @param message SourceInstanceProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISourceInstanceProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceInstanceProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SourceInstanceProperties;

                    /**
                     * Decodes a SourceInstanceProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceInstanceProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SourceInstanceProperties;

                    /**
                     * Verifies a SourceInstanceProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceInstanceProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceInstanceProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SourceInstanceProperties;

                    /**
                     * Creates a plain object from a SourceInstanceProperties message. Also converts values to other types if specified.
                     * @param message SourceInstanceProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SourceInstanceProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceInstanceProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceInstanceProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SourceInstanceProperties {

                    /** KeyRevocationActionType enum. */
                    enum KeyRevocationActionType {
                        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0,
                        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106,
                        NONE = 2402104,
                        STOP = 2555906
                    }

                    /** PostKeyRevocationActionType enum. */
                    enum PostKeyRevocationActionType {
                        UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE = 0,
                        NOOP = 2402146,
                        POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 228738393,
                        SHUTDOWN = 76412502
                    }
                }

                /** Properties of a SslCertificate. */
                interface ISslCertificate {

                    /** SslCertificate certificate */
                    certificate?: (string|null);

                    /** SslCertificate creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** SslCertificate description */
                    description?: (string|null);

                    /** SslCertificate expireTime */
                    expireTime?: (string|null);

                    /** SslCertificate id */
                    id?: (number|Long|string|null);

                    /** SslCertificate kind */
                    kind?: (string|null);

                    /** SslCertificate managed */
                    managed?: (google.cloud.compute.v1beta.ISslCertificateManagedSslCertificate|null);

                    /** SslCertificate name */
                    name?: (string|null);

                    /** SslCertificate privateKey */
                    privateKey?: (string|null);

                    /** SslCertificate region */
                    region?: (string|null);

                    /** SslCertificate selfLink */
                    selfLink?: (string|null);

                    /** SslCertificate selfManaged */
                    selfManaged?: (google.cloud.compute.v1beta.ISslCertificateSelfManagedSslCertificate|null);

                    /** SslCertificate subjectAlternativeNames */
                    subjectAlternativeNames?: (string[]|null);

                    /** SslCertificate type */
                    type?: (string|null);
                }

                /** Represents a SslCertificate. */
                class SslCertificate implements ISslCertificate {

                    /**
                     * Constructs a new SslCertificate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslCertificate);

                    /** SslCertificate certificate. */
                    public certificate?: (string|null);

                    /** SslCertificate creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** SslCertificate description. */
                    public description?: (string|null);

                    /** SslCertificate expireTime. */
                    public expireTime?: (string|null);

                    /** SslCertificate id. */
                    public id?: (number|Long|string|null);

                    /** SslCertificate kind. */
                    public kind?: (string|null);

                    /** SslCertificate managed. */
                    public managed?: (google.cloud.compute.v1beta.ISslCertificateManagedSslCertificate|null);

                    /** SslCertificate name. */
                    public name?: (string|null);

                    /** SslCertificate privateKey. */
                    public privateKey?: (string|null);

                    /** SslCertificate region. */
                    public region?: (string|null);

                    /** SslCertificate selfLink. */
                    public selfLink?: (string|null);

                    /** SslCertificate selfManaged. */
                    public selfManaged?: (google.cloud.compute.v1beta.ISslCertificateSelfManagedSslCertificate|null);

                    /** SslCertificate subjectAlternativeNames. */
                    public subjectAlternativeNames: string[];

                    /** SslCertificate type. */
                    public type?: (string|null);

                    /**
                     * Creates a new SslCertificate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificate instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslCertificate): google.cloud.compute.v1beta.SslCertificate;

                    /**
                     * Encodes the specified SslCertificate message. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificate.verify|verify} messages.
                     * @param message SslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificate message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificate.verify|verify} messages.
                     * @param message SslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslCertificate;

                    /**
                     * Decodes a SslCertificate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslCertificate;

                    /**
                     * Verifies a SslCertificate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslCertificate;

                    /**
                     * Creates a plain object from a SslCertificate message. Also converts values to other types if specified.
                     * @param message SslCertificate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslCertificate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SslCertificate {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        MANAGED = 479501183,
                        SELF_MANAGED = 434437516,
                        TYPE_UNSPECIFIED = 437714322
                    }
                }

                /** Properties of a SslCertificateAggregatedList. */
                interface ISslCertificateAggregatedList {

                    /** SslCertificateAggregatedList id */
                    id?: (string|null);

                    /** SslCertificateAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ISslCertificatesScopedList }|null);

                    /** SslCertificateAggregatedList kind */
                    kind?: (string|null);

                    /** SslCertificateAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SslCertificateAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SslCertificateAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SslCertificateAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SslCertificateAggregatedList. */
                class SslCertificateAggregatedList implements ISslCertificateAggregatedList {

                    /**
                     * Constructs a new SslCertificateAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslCertificateAggregatedList);

                    /** SslCertificateAggregatedList id. */
                    public id?: (string|null);

                    /** SslCertificateAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ISslCertificatesScopedList };

                    /** SslCertificateAggregatedList kind. */
                    public kind?: (string|null);

                    /** SslCertificateAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SslCertificateAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SslCertificateAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SslCertificateAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SslCertificateAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificateAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslCertificateAggregatedList): google.cloud.compute.v1beta.SslCertificateAggregatedList;

                    /**
                     * Encodes the specified SslCertificateAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificateAggregatedList.verify|verify} messages.
                     * @param message SslCertificateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslCertificateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificateAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificateAggregatedList.verify|verify} messages.
                     * @param message SslCertificateAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslCertificateAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificateAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslCertificateAggregatedList;

                    /**
                     * Decodes a SslCertificateAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificateAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslCertificateAggregatedList;

                    /**
                     * Verifies a SslCertificateAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificateAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificateAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslCertificateAggregatedList;

                    /**
                     * Creates a plain object from a SslCertificateAggregatedList message. Also converts values to other types if specified.
                     * @param message SslCertificateAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslCertificateAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificateAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificateAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslCertificateList. */
                interface ISslCertificateList {

                    /** SslCertificateList id */
                    id?: (string|null);

                    /** SslCertificateList items */
                    items?: (google.cloud.compute.v1beta.ISslCertificate[]|null);

                    /** SslCertificateList kind */
                    kind?: (string|null);

                    /** SslCertificateList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SslCertificateList selfLink */
                    selfLink?: (string|null);

                    /** SslCertificateList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SslCertificateList. */
                class SslCertificateList implements ISslCertificateList {

                    /**
                     * Constructs a new SslCertificateList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslCertificateList);

                    /** SslCertificateList id. */
                    public id?: (string|null);

                    /** SslCertificateList items. */
                    public items: google.cloud.compute.v1beta.ISslCertificate[];

                    /** SslCertificateList kind. */
                    public kind?: (string|null);

                    /** SslCertificateList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SslCertificateList selfLink. */
                    public selfLink?: (string|null);

                    /** SslCertificateList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SslCertificateList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificateList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslCertificateList): google.cloud.compute.v1beta.SslCertificateList;

                    /**
                     * Encodes the specified SslCertificateList message. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificateList.verify|verify} messages.
                     * @param message SslCertificateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslCertificateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificateList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificateList.verify|verify} messages.
                     * @param message SslCertificateList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslCertificateList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificateList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslCertificateList;

                    /**
                     * Decodes a SslCertificateList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificateList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslCertificateList;

                    /**
                     * Verifies a SslCertificateList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificateList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificateList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslCertificateList;

                    /**
                     * Creates a plain object from a SslCertificateList message. Also converts values to other types if specified.
                     * @param message SslCertificateList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslCertificateList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificateList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificateList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslCertificateManagedSslCertificate. */
                interface ISslCertificateManagedSslCertificate {

                    /** SslCertificateManagedSslCertificate domainStatus */
                    domainStatus?: ({ [k: string]: string }|null);

                    /** SslCertificateManagedSslCertificate domains */
                    domains?: (string[]|null);

                    /** SslCertificateManagedSslCertificate status */
                    status?: (string|null);
                }

                /** Represents a SslCertificateManagedSslCertificate. */
                class SslCertificateManagedSslCertificate implements ISslCertificateManagedSslCertificate {

                    /**
                     * Constructs a new SslCertificateManagedSslCertificate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslCertificateManagedSslCertificate);

                    /** SslCertificateManagedSslCertificate domainStatus. */
                    public domainStatus: { [k: string]: string };

                    /** SslCertificateManagedSslCertificate domains. */
                    public domains: string[];

                    /** SslCertificateManagedSslCertificate status. */
                    public status?: (string|null);

                    /**
                     * Creates a new SslCertificateManagedSslCertificate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificateManagedSslCertificate instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslCertificateManagedSslCertificate): google.cloud.compute.v1beta.SslCertificateManagedSslCertificate;

                    /**
                     * Encodes the specified SslCertificateManagedSslCertificate message. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificateManagedSslCertificate.verify|verify} messages.
                     * @param message SslCertificateManagedSslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslCertificateManagedSslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificateManagedSslCertificate message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificateManagedSslCertificate.verify|verify} messages.
                     * @param message SslCertificateManagedSslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslCertificateManagedSslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificateManagedSslCertificate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificateManagedSslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslCertificateManagedSslCertificate;

                    /**
                     * Decodes a SslCertificateManagedSslCertificate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificateManagedSslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslCertificateManagedSslCertificate;

                    /**
                     * Verifies a SslCertificateManagedSslCertificate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificateManagedSslCertificate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificateManagedSslCertificate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslCertificateManagedSslCertificate;

                    /**
                     * Creates a plain object from a SslCertificateManagedSslCertificate message. Also converts values to other types if specified.
                     * @param message SslCertificateManagedSslCertificate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslCertificateManagedSslCertificate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificateManagedSslCertificate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificateManagedSslCertificate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SslCertificateManagedSslCertificate {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ACTIVE = 314733318,
                        MANAGED_CERTIFICATE_STATUS_UNSPECIFIED = 474800850,
                        PROVISIONING = 290896621,
                        PROVISIONING_FAILED = 76813775,
                        PROVISIONING_FAILED_PERMANENTLY = 275036203,
                        RENEWAL_FAILED = 434659076
                    }
                }

                /** Properties of a SslCertificateSelfManagedSslCertificate. */
                interface ISslCertificateSelfManagedSslCertificate {

                    /** SslCertificateSelfManagedSslCertificate certificate */
                    certificate?: (string|null);

                    /** SslCertificateSelfManagedSslCertificate privateKey */
                    privateKey?: (string|null);
                }

                /** Represents a SslCertificateSelfManagedSslCertificate. */
                class SslCertificateSelfManagedSslCertificate implements ISslCertificateSelfManagedSslCertificate {

                    /**
                     * Constructs a new SslCertificateSelfManagedSslCertificate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslCertificateSelfManagedSslCertificate);

                    /** SslCertificateSelfManagedSslCertificate certificate. */
                    public certificate?: (string|null);

                    /** SslCertificateSelfManagedSslCertificate privateKey. */
                    public privateKey?: (string|null);

                    /**
                     * Creates a new SslCertificateSelfManagedSslCertificate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificateSelfManagedSslCertificate instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslCertificateSelfManagedSslCertificate): google.cloud.compute.v1beta.SslCertificateSelfManagedSslCertificate;

                    /**
                     * Encodes the specified SslCertificateSelfManagedSslCertificate message. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificateSelfManagedSslCertificate.verify|verify} messages.
                     * @param message SslCertificateSelfManagedSslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslCertificateSelfManagedSslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificateSelfManagedSslCertificate message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificateSelfManagedSslCertificate.verify|verify} messages.
                     * @param message SslCertificateSelfManagedSslCertificate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslCertificateSelfManagedSslCertificate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificateSelfManagedSslCertificate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificateSelfManagedSslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslCertificateSelfManagedSslCertificate;

                    /**
                     * Decodes a SslCertificateSelfManagedSslCertificate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificateSelfManagedSslCertificate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslCertificateSelfManagedSslCertificate;

                    /**
                     * Verifies a SslCertificateSelfManagedSslCertificate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificateSelfManagedSslCertificate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificateSelfManagedSslCertificate
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslCertificateSelfManagedSslCertificate;

                    /**
                     * Creates a plain object from a SslCertificateSelfManagedSslCertificate message. Also converts values to other types if specified.
                     * @param message SslCertificateSelfManagedSslCertificate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslCertificateSelfManagedSslCertificate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificateSelfManagedSslCertificate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificateSelfManagedSslCertificate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslCertificatesScopedList. */
                interface ISslCertificatesScopedList {

                    /** SslCertificatesScopedList sslCertificates */
                    sslCertificates?: (google.cloud.compute.v1beta.ISslCertificate[]|null);

                    /** SslCertificatesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SslCertificatesScopedList. */
                class SslCertificatesScopedList implements ISslCertificatesScopedList {

                    /**
                     * Constructs a new SslCertificatesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslCertificatesScopedList);

                    /** SslCertificatesScopedList sslCertificates. */
                    public sslCertificates: google.cloud.compute.v1beta.ISslCertificate[];

                    /** SslCertificatesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SslCertificatesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslCertificatesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslCertificatesScopedList): google.cloud.compute.v1beta.SslCertificatesScopedList;

                    /**
                     * Encodes the specified SslCertificatesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificatesScopedList.verify|verify} messages.
                     * @param message SslCertificatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslCertificatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslCertificatesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslCertificatesScopedList.verify|verify} messages.
                     * @param message SslCertificatesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslCertificatesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslCertificatesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslCertificatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslCertificatesScopedList;

                    /**
                     * Decodes a SslCertificatesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslCertificatesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslCertificatesScopedList;

                    /**
                     * Verifies a SslCertificatesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslCertificatesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslCertificatesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslCertificatesScopedList;

                    /**
                     * Creates a plain object from a SslCertificatesScopedList message. Also converts values to other types if specified.
                     * @param message SslCertificatesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslCertificatesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslCertificatesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslCertificatesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPoliciesAggregatedList. */
                interface ISslPoliciesAggregatedList {

                    /** SslPoliciesAggregatedList etag */
                    etag?: (string|null);

                    /** SslPoliciesAggregatedList id */
                    id?: (string|null);

                    /** SslPoliciesAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ISslPoliciesScopedList }|null);

                    /** SslPoliciesAggregatedList kind */
                    kind?: (string|null);

                    /** SslPoliciesAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SslPoliciesAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SslPoliciesAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SslPoliciesAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SslPoliciesAggregatedList. */
                class SslPoliciesAggregatedList implements ISslPoliciesAggregatedList {

                    /**
                     * Constructs a new SslPoliciesAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslPoliciesAggregatedList);

                    /** SslPoliciesAggregatedList etag. */
                    public etag?: (string|null);

                    /** SslPoliciesAggregatedList id. */
                    public id?: (string|null);

                    /** SslPoliciesAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ISslPoliciesScopedList };

                    /** SslPoliciesAggregatedList kind. */
                    public kind?: (string|null);

                    /** SslPoliciesAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SslPoliciesAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SslPoliciesAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SslPoliciesAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SslPoliciesAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPoliciesAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslPoliciesAggregatedList): google.cloud.compute.v1beta.SslPoliciesAggregatedList;

                    /**
                     * Encodes the specified SslPoliciesAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.SslPoliciesAggregatedList.verify|verify} messages.
                     * @param message SslPoliciesAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslPoliciesAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPoliciesAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslPoliciesAggregatedList.verify|verify} messages.
                     * @param message SslPoliciesAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslPoliciesAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPoliciesAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPoliciesAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslPoliciesAggregatedList;

                    /**
                     * Decodes a SslPoliciesAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPoliciesAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslPoliciesAggregatedList;

                    /**
                     * Verifies a SslPoliciesAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPoliciesAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPoliciesAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslPoliciesAggregatedList;

                    /**
                     * Creates a plain object from a SslPoliciesAggregatedList message. Also converts values to other types if specified.
                     * @param message SslPoliciesAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslPoliciesAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPoliciesAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPoliciesAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPoliciesList. */
                interface ISslPoliciesList {

                    /** SslPoliciesList id */
                    id?: (string|null);

                    /** SslPoliciesList items */
                    items?: (google.cloud.compute.v1beta.ISslPolicy[]|null);

                    /** SslPoliciesList kind */
                    kind?: (string|null);

                    /** SslPoliciesList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SslPoliciesList selfLink */
                    selfLink?: (string|null);

                    /** SslPoliciesList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SslPoliciesList. */
                class SslPoliciesList implements ISslPoliciesList {

                    /**
                     * Constructs a new SslPoliciesList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslPoliciesList);

                    /** SslPoliciesList id. */
                    public id?: (string|null);

                    /** SslPoliciesList items. */
                    public items: google.cloud.compute.v1beta.ISslPolicy[];

                    /** SslPoliciesList kind. */
                    public kind?: (string|null);

                    /** SslPoliciesList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SslPoliciesList selfLink. */
                    public selfLink?: (string|null);

                    /** SslPoliciesList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SslPoliciesList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPoliciesList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslPoliciesList): google.cloud.compute.v1beta.SslPoliciesList;

                    /**
                     * Encodes the specified SslPoliciesList message. Does not implicitly {@link google.cloud.compute.v1beta.SslPoliciesList.verify|verify} messages.
                     * @param message SslPoliciesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslPoliciesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPoliciesList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslPoliciesList.verify|verify} messages.
                     * @param message SslPoliciesList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslPoliciesList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPoliciesList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPoliciesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslPoliciesList;

                    /**
                     * Decodes a SslPoliciesList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPoliciesList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslPoliciesList;

                    /**
                     * Verifies a SslPoliciesList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPoliciesList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPoliciesList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslPoliciesList;

                    /**
                     * Creates a plain object from a SslPoliciesList message. Also converts values to other types if specified.
                     * @param message SslPoliciesList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslPoliciesList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPoliciesList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPoliciesList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPoliciesListAvailableFeaturesResponse. */
                interface ISslPoliciesListAvailableFeaturesResponse {

                    /** SslPoliciesListAvailableFeaturesResponse features */
                    features?: (string[]|null);
                }

                /** Represents a SslPoliciesListAvailableFeaturesResponse. */
                class SslPoliciesListAvailableFeaturesResponse implements ISslPoliciesListAvailableFeaturesResponse {

                    /**
                     * Constructs a new SslPoliciesListAvailableFeaturesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslPoliciesListAvailableFeaturesResponse);

                    /** SslPoliciesListAvailableFeaturesResponse features. */
                    public features: string[];

                    /**
                     * Creates a new SslPoliciesListAvailableFeaturesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPoliciesListAvailableFeaturesResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslPoliciesListAvailableFeaturesResponse): google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse;

                    /**
                     * Encodes the specified SslPoliciesListAvailableFeaturesResponse message. Does not implicitly {@link google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse.verify|verify} messages.
                     * @param message SslPoliciesListAvailableFeaturesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslPoliciesListAvailableFeaturesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPoliciesListAvailableFeaturesResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse.verify|verify} messages.
                     * @param message SslPoliciesListAvailableFeaturesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslPoliciesListAvailableFeaturesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPoliciesListAvailableFeaturesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPoliciesListAvailableFeaturesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse;

                    /**
                     * Decodes a SslPoliciesListAvailableFeaturesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPoliciesListAvailableFeaturesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse;

                    /**
                     * Verifies a SslPoliciesListAvailableFeaturesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPoliciesListAvailableFeaturesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPoliciesListAvailableFeaturesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse;

                    /**
                     * Creates a plain object from a SslPoliciesListAvailableFeaturesResponse message. Also converts values to other types if specified.
                     * @param message SslPoliciesListAvailableFeaturesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPoliciesListAvailableFeaturesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPoliciesListAvailableFeaturesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPoliciesScopedList. */
                interface ISslPoliciesScopedList {

                    /** SslPoliciesScopedList sslPolicies */
                    sslPolicies?: (google.cloud.compute.v1beta.ISslPolicy[]|null);

                    /** SslPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SslPoliciesScopedList. */
                class SslPoliciesScopedList implements ISslPoliciesScopedList {

                    /**
                     * Constructs a new SslPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslPoliciesScopedList);

                    /** SslPoliciesScopedList sslPolicies. */
                    public sslPolicies: google.cloud.compute.v1beta.ISslPolicy[];

                    /** SslPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SslPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslPoliciesScopedList): google.cloud.compute.v1beta.SslPoliciesScopedList;

                    /**
                     * Encodes the specified SslPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.SslPoliciesScopedList.verify|verify} messages.
                     * @param message SslPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslPoliciesScopedList.verify|verify} messages.
                     * @param message SslPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslPoliciesScopedList;

                    /**
                     * Decodes a SslPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslPoliciesScopedList;

                    /**
                     * Verifies a SslPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslPoliciesScopedList;

                    /**
                     * Creates a plain object from a SslPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message SslPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SslPolicy. */
                interface ISslPolicy {

                    /** SslPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** SslPolicy customFeatures */
                    customFeatures?: (string[]|null);

                    /** SslPolicy description */
                    description?: (string|null);

                    /** SslPolicy enabledFeatures */
                    enabledFeatures?: (string[]|null);

                    /** SslPolicy fingerprint */
                    fingerprint?: (string|null);

                    /** SslPolicy id */
                    id?: (number|Long|string|null);

                    /** SslPolicy kind */
                    kind?: (string|null);

                    /** SslPolicy minTlsVersion */
                    minTlsVersion?: (string|null);

                    /** SslPolicy name */
                    name?: (string|null);

                    /** SslPolicy profile */
                    profile?: (string|null);

                    /** SslPolicy region */
                    region?: (string|null);

                    /** SslPolicy selfLink */
                    selfLink?: (string|null);

                    /** SslPolicy warnings */
                    warnings?: (google.cloud.compute.v1beta.IWarnings[]|null);
                }

                /** Represents a SslPolicy. */
                class SslPolicy implements ISslPolicy {

                    /**
                     * Constructs a new SslPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslPolicy);

                    /** SslPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** SslPolicy customFeatures. */
                    public customFeatures: string[];

                    /** SslPolicy description. */
                    public description?: (string|null);

                    /** SslPolicy enabledFeatures. */
                    public enabledFeatures: string[];

                    /** SslPolicy fingerprint. */
                    public fingerprint?: (string|null);

                    /** SslPolicy id. */
                    public id?: (number|Long|string|null);

                    /** SslPolicy kind. */
                    public kind?: (string|null);

                    /** SslPolicy minTlsVersion. */
                    public minTlsVersion?: (string|null);

                    /** SslPolicy name. */
                    public name?: (string|null);

                    /** SslPolicy profile. */
                    public profile?: (string|null);

                    /** SslPolicy region. */
                    public region?: (string|null);

                    /** SslPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** SslPolicy warnings. */
                    public warnings: google.cloud.compute.v1beta.IWarnings[];

                    /**
                     * Creates a new SslPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslPolicy): google.cloud.compute.v1beta.SslPolicy;

                    /**
                     * Encodes the specified SslPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.SslPolicy.verify|verify} messages.
                     * @param message SslPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslPolicy.verify|verify} messages.
                     * @param message SslPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslPolicy;

                    /**
                     * Decodes a SslPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslPolicy;

                    /**
                     * Verifies a SslPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslPolicy;

                    /**
                     * Creates a plain object from a SslPolicy message. Also converts values to other types if specified.
                     * @param message SslPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SslPolicy {

                    /** MinTlsVersion enum. */
                    enum MinTlsVersion {
                        UNDEFINED_MIN_TLS_VERSION = 0,
                        TLS_1_0 = 33116734,
                        TLS_1_1 = 33116735,
                        TLS_1_2 = 33116736,
                        TLS_1_3 = 33116737
                    }

                    /** Profile enum. */
                    enum Profile {
                        UNDEFINED_PROFILE = 0,
                        COMPATIBLE = 179357396,
                        CUSTOM = 388595569,
                        FIPS_202205 = 475828188,
                        MODERN = 132013855,
                        RESTRICTED = 261551195
                    }
                }

                /** Properties of a SslPolicyReference. */
                interface ISslPolicyReference {

                    /** SslPolicyReference sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a SslPolicyReference. */
                class SslPolicyReference implements ISslPolicyReference {

                    /**
                     * Constructs a new SslPolicyReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISslPolicyReference);

                    /** SslPolicyReference sslPolicy. */
                    public sslPolicy?: (string|null);

                    /**
                     * Creates a new SslPolicyReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SslPolicyReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISslPolicyReference): google.cloud.compute.v1beta.SslPolicyReference;

                    /**
                     * Encodes the specified SslPolicyReference message. Does not implicitly {@link google.cloud.compute.v1beta.SslPolicyReference.verify|verify} messages.
                     * @param message SslPolicyReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISslPolicyReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SslPolicyReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SslPolicyReference.verify|verify} messages.
                     * @param message SslPolicyReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISslPolicyReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SslPolicyReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SslPolicyReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SslPolicyReference;

                    /**
                     * Decodes a SslPolicyReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SslPolicyReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SslPolicyReference;

                    /**
                     * Verifies a SslPolicyReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SslPolicyReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SslPolicyReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SslPolicyReference;

                    /**
                     * Creates a plain object from a SslPolicyReference message. Also converts values to other types if specified.
                     * @param message SslPolicyReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SslPolicyReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SslPolicyReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SslPolicyReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartAsyncReplicationDiskRequest. */
                interface IStartAsyncReplicationDiskRequest {

                    /** StartAsyncReplicationDiskRequest disk */
                    disk?: (string|null);

                    /** StartAsyncReplicationDiskRequest disksStartAsyncReplicationRequestResource */
                    disksStartAsyncReplicationRequestResource?: (google.cloud.compute.v1beta.IDisksStartAsyncReplicationRequest|null);

                    /** StartAsyncReplicationDiskRequest project */
                    project?: (string|null);

                    /** StartAsyncReplicationDiskRequest requestId */
                    requestId?: (string|null);

                    /** StartAsyncReplicationDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StartAsyncReplicationDiskRequest. */
                class StartAsyncReplicationDiskRequest implements IStartAsyncReplicationDiskRequest {

                    /**
                     * Constructs a new StartAsyncReplicationDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStartAsyncReplicationDiskRequest);

                    /** StartAsyncReplicationDiskRequest disk. */
                    public disk: string;

                    /** StartAsyncReplicationDiskRequest disksStartAsyncReplicationRequestResource. */
                    public disksStartAsyncReplicationRequestResource?: (google.cloud.compute.v1beta.IDisksStartAsyncReplicationRequest|null);

                    /** StartAsyncReplicationDiskRequest project. */
                    public project: string;

                    /** StartAsyncReplicationDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** StartAsyncReplicationDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StartAsyncReplicationDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartAsyncReplicationDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStartAsyncReplicationDiskRequest): google.cloud.compute.v1beta.StartAsyncReplicationDiskRequest;

                    /**
                     * Encodes the specified StartAsyncReplicationDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StartAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StartAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStartAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartAsyncReplicationDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StartAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StartAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStartAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartAsyncReplicationDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StartAsyncReplicationDiskRequest;

                    /**
                     * Decodes a StartAsyncReplicationDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StartAsyncReplicationDiskRequest;

                    /**
                     * Verifies a StartAsyncReplicationDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartAsyncReplicationDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartAsyncReplicationDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StartAsyncReplicationDiskRequest;

                    /**
                     * Creates a plain object from a StartAsyncReplicationDiskRequest message. Also converts values to other types if specified.
                     * @param message StartAsyncReplicationDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StartAsyncReplicationDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartAsyncReplicationDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartAsyncReplicationDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartAsyncReplicationRegionDiskRequest. */
                interface IStartAsyncReplicationRegionDiskRequest {

                    /** StartAsyncReplicationRegionDiskRequest disk */
                    disk?: (string|null);

                    /** StartAsyncReplicationRegionDiskRequest project */
                    project?: (string|null);

                    /** StartAsyncReplicationRegionDiskRequest region */
                    region?: (string|null);

                    /** StartAsyncReplicationRegionDiskRequest regionDisksStartAsyncReplicationRequestResource */
                    regionDisksStartAsyncReplicationRequestResource?: (google.cloud.compute.v1beta.IRegionDisksStartAsyncReplicationRequest|null);

                    /** StartAsyncReplicationRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StartAsyncReplicationRegionDiskRequest. */
                class StartAsyncReplicationRegionDiskRequest implements IStartAsyncReplicationRegionDiskRequest {

                    /**
                     * Constructs a new StartAsyncReplicationRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStartAsyncReplicationRegionDiskRequest);

                    /** StartAsyncReplicationRegionDiskRequest disk. */
                    public disk: string;

                    /** StartAsyncReplicationRegionDiskRequest project. */
                    public project: string;

                    /** StartAsyncReplicationRegionDiskRequest region. */
                    public region: string;

                    /** StartAsyncReplicationRegionDiskRequest regionDisksStartAsyncReplicationRequestResource. */
                    public regionDisksStartAsyncReplicationRequestResource?: (google.cloud.compute.v1beta.IRegionDisksStartAsyncReplicationRequest|null);

                    /** StartAsyncReplicationRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StartAsyncReplicationRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartAsyncReplicationRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStartAsyncReplicationRegionDiskRequest): google.cloud.compute.v1beta.StartAsyncReplicationRegionDiskRequest;

                    /**
                     * Encodes the specified StartAsyncReplicationRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StartAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StartAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStartAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartAsyncReplicationRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StartAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StartAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStartAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartAsyncReplicationRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StartAsyncReplicationRegionDiskRequest;

                    /**
                     * Decodes a StartAsyncReplicationRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StartAsyncReplicationRegionDiskRequest;

                    /**
                     * Verifies a StartAsyncReplicationRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartAsyncReplicationRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartAsyncReplicationRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StartAsyncReplicationRegionDiskRequest;

                    /**
                     * Creates a plain object from a StartAsyncReplicationRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message StartAsyncReplicationRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StartAsyncReplicationRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartAsyncReplicationRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartAsyncReplicationRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartInstanceRequest. */
                interface IStartInstanceRequest {

                    /** StartInstanceRequest instance */
                    instance?: (string|null);

                    /** StartInstanceRequest project */
                    project?: (string|null);

                    /** StartInstanceRequest requestId */
                    requestId?: (string|null);

                    /** StartInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StartInstanceRequest. */
                class StartInstanceRequest implements IStartInstanceRequest {

                    /**
                     * Constructs a new StartInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStartInstanceRequest);

                    /** StartInstanceRequest instance. */
                    public instance: string;

                    /** StartInstanceRequest project. */
                    public project: string;

                    /** StartInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** StartInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StartInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStartInstanceRequest): google.cloud.compute.v1beta.StartInstanceRequest;

                    /**
                     * Encodes the specified StartInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StartInstanceRequest.verify|verify} messages.
                     * @param message StartInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStartInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StartInstanceRequest.verify|verify} messages.
                     * @param message StartInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStartInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StartInstanceRequest;

                    /**
                     * Decodes a StartInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StartInstanceRequest;

                    /**
                     * Verifies a StartInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StartInstanceRequest;

                    /**
                     * Creates a plain object from a StartInstanceRequest message. Also converts values to other types if specified.
                     * @param message StartInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StartInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartInstancesInstanceGroupManagerRequest. */
                interface IStartInstancesInstanceGroupManagerRequest {

                    /** StartInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** StartInstancesInstanceGroupManagerRequest instanceGroupManagersStartInstancesRequestResource */
                    instanceGroupManagersStartInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersStartInstancesRequest|null);

                    /** StartInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** StartInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** StartInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StartInstancesInstanceGroupManagerRequest. */
                class StartInstancesInstanceGroupManagerRequest implements IStartInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new StartInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStartInstancesInstanceGroupManagerRequest);

                    /** StartInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** StartInstancesInstanceGroupManagerRequest instanceGroupManagersStartInstancesRequestResource. */
                    public instanceGroupManagersStartInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersStartInstancesRequest|null);

                    /** StartInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** StartInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** StartInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StartInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStartInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.StartInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified StartInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StartInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StartInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStartInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StartInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StartInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStartInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StartInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a StartInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StartInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a StartInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StartInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a StartInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message StartInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StartInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartInstancesRegionInstanceGroupManagerRequest. */
                interface IStartInstancesRegionInstanceGroupManagerRequest {

                    /** StartInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersStartInstancesRequestResource */
                    regionInstanceGroupManagersStartInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersStartInstancesRequest|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StartInstancesRegionInstanceGroupManagerRequest. */
                class StartInstancesRegionInstanceGroupManagerRequest implements IStartInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new StartInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStartInstancesRegionInstanceGroupManagerRequest);

                    /** StartInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** StartInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** StartInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** StartInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersStartInstancesRequestResource. */
                    public regionInstanceGroupManagersStartInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersStartInstancesRequest|null);

                    /** StartInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StartInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStartInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.StartInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified StartInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StartInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StartInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStartInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StartInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StartInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStartInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StartInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a StartInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StartInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a StartInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StartInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a StartInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message StartInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StartInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartWithEncryptionKeyInstanceRequest. */
                interface IStartWithEncryptionKeyInstanceRequest {

                    /** StartWithEncryptionKeyInstanceRequest instance */
                    instance?: (string|null);

                    /** StartWithEncryptionKeyInstanceRequest instancesStartWithEncryptionKeyRequestResource */
                    instancesStartWithEncryptionKeyRequestResource?: (google.cloud.compute.v1beta.IInstancesStartWithEncryptionKeyRequest|null);

                    /** StartWithEncryptionKeyInstanceRequest project */
                    project?: (string|null);

                    /** StartWithEncryptionKeyInstanceRequest requestId */
                    requestId?: (string|null);

                    /** StartWithEncryptionKeyInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StartWithEncryptionKeyInstanceRequest. */
                class StartWithEncryptionKeyInstanceRequest implements IStartWithEncryptionKeyInstanceRequest {

                    /**
                     * Constructs a new StartWithEncryptionKeyInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest);

                    /** StartWithEncryptionKeyInstanceRequest instance. */
                    public instance: string;

                    /** StartWithEncryptionKeyInstanceRequest instancesStartWithEncryptionKeyRequestResource. */
                    public instancesStartWithEncryptionKeyRequestResource?: (google.cloud.compute.v1beta.IInstancesStartWithEncryptionKeyRequest|null);

                    /** StartWithEncryptionKeyInstanceRequest project. */
                    public project: string;

                    /** StartWithEncryptionKeyInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** StartWithEncryptionKeyInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StartWithEncryptionKeyInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartWithEncryptionKeyInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest): google.cloud.compute.v1beta.StartWithEncryptionKeyInstanceRequest;

                    /**
                     * Encodes the specified StartWithEncryptionKeyInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StartWithEncryptionKeyInstanceRequest.verify|verify} messages.
                     * @param message StartWithEncryptionKeyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartWithEncryptionKeyInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StartWithEncryptionKeyInstanceRequest.verify|verify} messages.
                     * @param message StartWithEncryptionKeyInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartWithEncryptionKeyInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartWithEncryptionKeyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StartWithEncryptionKeyInstanceRequest;

                    /**
                     * Decodes a StartWithEncryptionKeyInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartWithEncryptionKeyInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StartWithEncryptionKeyInstanceRequest;

                    /**
                     * Verifies a StartWithEncryptionKeyInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartWithEncryptionKeyInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartWithEncryptionKeyInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StartWithEncryptionKeyInstanceRequest;

                    /**
                     * Creates a plain object from a StartWithEncryptionKeyInstanceRequest message. Also converts values to other types if specified.
                     * @param message StartWithEncryptionKeyInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StartWithEncryptionKeyInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartWithEncryptionKeyInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartWithEncryptionKeyInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StatefulPolicy. */
                interface IStatefulPolicy {

                    /** StatefulPolicy preservedState */
                    preservedState?: (google.cloud.compute.v1beta.IStatefulPolicyPreservedState|null);
                }

                /** Represents a StatefulPolicy. */
                class StatefulPolicy implements IStatefulPolicy {

                    /**
                     * Constructs a new StatefulPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStatefulPolicy);

                    /** StatefulPolicy preservedState. */
                    public preservedState?: (google.cloud.compute.v1beta.IStatefulPolicyPreservedState|null);

                    /**
                     * Creates a new StatefulPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatefulPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStatefulPolicy): google.cloud.compute.v1beta.StatefulPolicy;

                    /**
                     * Encodes the specified StatefulPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.StatefulPolicy.verify|verify} messages.
                     * @param message StatefulPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStatefulPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatefulPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StatefulPolicy.verify|verify} messages.
                     * @param message StatefulPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStatefulPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatefulPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatefulPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StatefulPolicy;

                    /**
                     * Decodes a StatefulPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatefulPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StatefulPolicy;

                    /**
                     * Verifies a StatefulPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatefulPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatefulPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StatefulPolicy;

                    /**
                     * Creates a plain object from a StatefulPolicy message. Also converts values to other types if specified.
                     * @param message StatefulPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StatefulPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatefulPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatefulPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StatefulPolicyPreservedState. */
                interface IStatefulPolicyPreservedState {

                    /** StatefulPolicyPreservedState disks */
                    disks?: ({ [k: string]: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateDiskDevice }|null);

                    /** StatefulPolicyPreservedState externalIPs */
                    externalIPs?: ({ [k: string]: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateNetworkIp }|null);

                    /** StatefulPolicyPreservedState internalIPs */
                    internalIPs?: ({ [k: string]: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateNetworkIp }|null);
                }

                /** Represents a StatefulPolicyPreservedState. */
                class StatefulPolicyPreservedState implements IStatefulPolicyPreservedState {

                    /**
                     * Constructs a new StatefulPolicyPreservedState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStatefulPolicyPreservedState);

                    /** StatefulPolicyPreservedState disks. */
                    public disks: { [k: string]: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateDiskDevice };

                    /** StatefulPolicyPreservedState externalIPs. */
                    public externalIPs: { [k: string]: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateNetworkIp };

                    /** StatefulPolicyPreservedState internalIPs. */
                    public internalIPs: { [k: string]: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateNetworkIp };

                    /**
                     * Creates a new StatefulPolicyPreservedState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatefulPolicyPreservedState instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStatefulPolicyPreservedState): google.cloud.compute.v1beta.StatefulPolicyPreservedState;

                    /**
                     * Encodes the specified StatefulPolicyPreservedState message. Does not implicitly {@link google.cloud.compute.v1beta.StatefulPolicyPreservedState.verify|verify} messages.
                     * @param message StatefulPolicyPreservedState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStatefulPolicyPreservedState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatefulPolicyPreservedState message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StatefulPolicyPreservedState.verify|verify} messages.
                     * @param message StatefulPolicyPreservedState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStatefulPolicyPreservedState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatefulPolicyPreservedState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatefulPolicyPreservedState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StatefulPolicyPreservedState;

                    /**
                     * Decodes a StatefulPolicyPreservedState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatefulPolicyPreservedState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StatefulPolicyPreservedState;

                    /**
                     * Verifies a StatefulPolicyPreservedState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatefulPolicyPreservedState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatefulPolicyPreservedState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StatefulPolicyPreservedState;

                    /**
                     * Creates a plain object from a StatefulPolicyPreservedState message. Also converts values to other types if specified.
                     * @param message StatefulPolicyPreservedState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StatefulPolicyPreservedState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatefulPolicyPreservedState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatefulPolicyPreservedState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StatefulPolicyPreservedStateDiskDevice. */
                interface IStatefulPolicyPreservedStateDiskDevice {

                    /** StatefulPolicyPreservedStateDiskDevice autoDelete */
                    autoDelete?: (string|null);
                }

                /** Represents a StatefulPolicyPreservedStateDiskDevice. */
                class StatefulPolicyPreservedStateDiskDevice implements IStatefulPolicyPreservedStateDiskDevice {

                    /**
                     * Constructs a new StatefulPolicyPreservedStateDiskDevice.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateDiskDevice);

                    /** StatefulPolicyPreservedStateDiskDevice autoDelete. */
                    public autoDelete?: (string|null);

                    /**
                     * Creates a new StatefulPolicyPreservedStateDiskDevice instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatefulPolicyPreservedStateDiskDevice instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateDiskDevice): google.cloud.compute.v1beta.StatefulPolicyPreservedStateDiskDevice;

                    /**
                     * Encodes the specified StatefulPolicyPreservedStateDiskDevice message. Does not implicitly {@link google.cloud.compute.v1beta.StatefulPolicyPreservedStateDiskDevice.verify|verify} messages.
                     * @param message StatefulPolicyPreservedStateDiskDevice message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateDiskDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatefulPolicyPreservedStateDiskDevice message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StatefulPolicyPreservedStateDiskDevice.verify|verify} messages.
                     * @param message StatefulPolicyPreservedStateDiskDevice message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateDiskDevice, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatefulPolicyPreservedStateDiskDevice message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatefulPolicyPreservedStateDiskDevice
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StatefulPolicyPreservedStateDiskDevice;

                    /**
                     * Decodes a StatefulPolicyPreservedStateDiskDevice message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatefulPolicyPreservedStateDiskDevice
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StatefulPolicyPreservedStateDiskDevice;

                    /**
                     * Verifies a StatefulPolicyPreservedStateDiskDevice message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatefulPolicyPreservedStateDiskDevice message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatefulPolicyPreservedStateDiskDevice
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StatefulPolicyPreservedStateDiskDevice;

                    /**
                     * Creates a plain object from a StatefulPolicyPreservedStateDiskDevice message. Also converts values to other types if specified.
                     * @param message StatefulPolicyPreservedStateDiskDevice
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StatefulPolicyPreservedStateDiskDevice, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatefulPolicyPreservedStateDiskDevice to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatefulPolicyPreservedStateDiskDevice
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StatefulPolicyPreservedStateDiskDevice {

                    /** AutoDelete enum. */
                    enum AutoDelete {
                        UNDEFINED_AUTO_DELETE = 0,
                        NEVER = 74175084,
                        ON_PERMANENT_INSTANCE_DELETION = 95727719
                    }
                }

                /** Properties of a StatefulPolicyPreservedStateNetworkIp. */
                interface IStatefulPolicyPreservedStateNetworkIp {

                    /** StatefulPolicyPreservedStateNetworkIp autoDelete */
                    autoDelete?: (string|null);
                }

                /** Represents a StatefulPolicyPreservedStateNetworkIp. */
                class StatefulPolicyPreservedStateNetworkIp implements IStatefulPolicyPreservedStateNetworkIp {

                    /**
                     * Constructs a new StatefulPolicyPreservedStateNetworkIp.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateNetworkIp);

                    /** StatefulPolicyPreservedStateNetworkIp autoDelete. */
                    public autoDelete?: (string|null);

                    /**
                     * Creates a new StatefulPolicyPreservedStateNetworkIp instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatefulPolicyPreservedStateNetworkIp instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateNetworkIp): google.cloud.compute.v1beta.StatefulPolicyPreservedStateNetworkIp;

                    /**
                     * Encodes the specified StatefulPolicyPreservedStateNetworkIp message. Does not implicitly {@link google.cloud.compute.v1beta.StatefulPolicyPreservedStateNetworkIp.verify|verify} messages.
                     * @param message StatefulPolicyPreservedStateNetworkIp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateNetworkIp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatefulPolicyPreservedStateNetworkIp message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StatefulPolicyPreservedStateNetworkIp.verify|verify} messages.
                     * @param message StatefulPolicyPreservedStateNetworkIp message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStatefulPolicyPreservedStateNetworkIp, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatefulPolicyPreservedStateNetworkIp message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatefulPolicyPreservedStateNetworkIp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StatefulPolicyPreservedStateNetworkIp;

                    /**
                     * Decodes a StatefulPolicyPreservedStateNetworkIp message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatefulPolicyPreservedStateNetworkIp
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StatefulPolicyPreservedStateNetworkIp;

                    /**
                     * Verifies a StatefulPolicyPreservedStateNetworkIp message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatefulPolicyPreservedStateNetworkIp message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatefulPolicyPreservedStateNetworkIp
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StatefulPolicyPreservedStateNetworkIp;

                    /**
                     * Creates a plain object from a StatefulPolicyPreservedStateNetworkIp message. Also converts values to other types if specified.
                     * @param message StatefulPolicyPreservedStateNetworkIp
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StatefulPolicyPreservedStateNetworkIp, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatefulPolicyPreservedStateNetworkIp to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatefulPolicyPreservedStateNetworkIp
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StatefulPolicyPreservedStateNetworkIp {

                    /** AutoDelete enum. */
                    enum AutoDelete {
                        UNDEFINED_AUTO_DELETE = 0,
                        NEVER = 74175084,
                        ON_PERMANENT_INSTANCE_DELETION = 95727719
                    }
                }

                /** Properties of a Status. */
                interface IStatus {

                    /** Status code */
                    code?: (number|null);

                    /** Status details */
                    details?: (google.protobuf.IAny[]|null);

                    /** Status message */
                    message?: (string|null);
                }

                /** Represents a Status. */
                class Status implements IStatus {

                    /**
                     * Constructs a new Status.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStatus);

                    /** Status code. */
                    public code?: (number|null);

                    /** Status details. */
                    public details: google.protobuf.IAny[];

                    /** Status message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Status instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Status instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStatus): google.cloud.compute.v1beta.Status;

                    /**
                     * Encodes the specified Status message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Status message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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;
                }

                /** Properties of a StopAsyncReplicationDiskRequest. */
                interface IStopAsyncReplicationDiskRequest {

                    /** StopAsyncReplicationDiskRequest disk */
                    disk?: (string|null);

                    /** StopAsyncReplicationDiskRequest project */
                    project?: (string|null);

                    /** StopAsyncReplicationDiskRequest requestId */
                    requestId?: (string|null);

                    /** StopAsyncReplicationDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StopAsyncReplicationDiskRequest. */
                class StopAsyncReplicationDiskRequest implements IStopAsyncReplicationDiskRequest {

                    /**
                     * Constructs a new StopAsyncReplicationDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStopAsyncReplicationDiskRequest);

                    /** StopAsyncReplicationDiskRequest disk. */
                    public disk: string;

                    /** StopAsyncReplicationDiskRequest project. */
                    public project: string;

                    /** StopAsyncReplicationDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** StopAsyncReplicationDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StopAsyncReplicationDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopAsyncReplicationDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStopAsyncReplicationDiskRequest): google.cloud.compute.v1beta.StopAsyncReplicationDiskRequest;

                    /**
                     * Encodes the specified StopAsyncReplicationDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StopAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StopAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStopAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopAsyncReplicationDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StopAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StopAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStopAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopAsyncReplicationDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StopAsyncReplicationDiskRequest;

                    /**
                     * Decodes a StopAsyncReplicationDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StopAsyncReplicationDiskRequest;

                    /**
                     * Verifies a StopAsyncReplicationDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopAsyncReplicationDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopAsyncReplicationDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StopAsyncReplicationDiskRequest;

                    /**
                     * Creates a plain object from a StopAsyncReplicationDiskRequest message. Also converts values to other types if specified.
                     * @param message StopAsyncReplicationDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StopAsyncReplicationDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopAsyncReplicationDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopAsyncReplicationDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopAsyncReplicationRegionDiskRequest. */
                interface IStopAsyncReplicationRegionDiskRequest {

                    /** StopAsyncReplicationRegionDiskRequest disk */
                    disk?: (string|null);

                    /** StopAsyncReplicationRegionDiskRequest project */
                    project?: (string|null);

                    /** StopAsyncReplicationRegionDiskRequest region */
                    region?: (string|null);

                    /** StopAsyncReplicationRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StopAsyncReplicationRegionDiskRequest. */
                class StopAsyncReplicationRegionDiskRequest implements IStopAsyncReplicationRegionDiskRequest {

                    /**
                     * Constructs a new StopAsyncReplicationRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStopAsyncReplicationRegionDiskRequest);

                    /** StopAsyncReplicationRegionDiskRequest disk. */
                    public disk: string;

                    /** StopAsyncReplicationRegionDiskRequest project. */
                    public project: string;

                    /** StopAsyncReplicationRegionDiskRequest region. */
                    public region: string;

                    /** StopAsyncReplicationRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StopAsyncReplicationRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopAsyncReplicationRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStopAsyncReplicationRegionDiskRequest): google.cloud.compute.v1beta.StopAsyncReplicationRegionDiskRequest;

                    /**
                     * Encodes the specified StopAsyncReplicationRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StopAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StopAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStopAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopAsyncReplicationRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StopAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StopAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStopAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopAsyncReplicationRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StopAsyncReplicationRegionDiskRequest;

                    /**
                     * Decodes a StopAsyncReplicationRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StopAsyncReplicationRegionDiskRequest;

                    /**
                     * Verifies a StopAsyncReplicationRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopAsyncReplicationRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopAsyncReplicationRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StopAsyncReplicationRegionDiskRequest;

                    /**
                     * Creates a plain object from a StopAsyncReplicationRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message StopAsyncReplicationRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StopAsyncReplicationRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopAsyncReplicationRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopAsyncReplicationRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopGroupAsyncReplicationDiskRequest. */
                interface IStopGroupAsyncReplicationDiskRequest {

                    /** StopGroupAsyncReplicationDiskRequest disksStopGroupAsyncReplicationResourceResource */
                    disksStopGroupAsyncReplicationResourceResource?: (google.cloud.compute.v1beta.IDisksStopGroupAsyncReplicationResource|null);

                    /** StopGroupAsyncReplicationDiskRequest project */
                    project?: (string|null);

                    /** StopGroupAsyncReplicationDiskRequest requestId */
                    requestId?: (string|null);

                    /** StopGroupAsyncReplicationDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StopGroupAsyncReplicationDiskRequest. */
                class StopGroupAsyncReplicationDiskRequest implements IStopGroupAsyncReplicationDiskRequest {

                    /**
                     * Constructs a new StopGroupAsyncReplicationDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStopGroupAsyncReplicationDiskRequest);

                    /** StopGroupAsyncReplicationDiskRequest disksStopGroupAsyncReplicationResourceResource. */
                    public disksStopGroupAsyncReplicationResourceResource?: (google.cloud.compute.v1beta.IDisksStopGroupAsyncReplicationResource|null);

                    /** StopGroupAsyncReplicationDiskRequest project. */
                    public project: string;

                    /** StopGroupAsyncReplicationDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** StopGroupAsyncReplicationDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StopGroupAsyncReplicationDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopGroupAsyncReplicationDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStopGroupAsyncReplicationDiskRequest): google.cloud.compute.v1beta.StopGroupAsyncReplicationDiskRequest;

                    /**
                     * Encodes the specified StopGroupAsyncReplicationDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StopGroupAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StopGroupAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStopGroupAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopGroupAsyncReplicationDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StopGroupAsyncReplicationDiskRequest.verify|verify} messages.
                     * @param message StopGroupAsyncReplicationDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStopGroupAsyncReplicationDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopGroupAsyncReplicationDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopGroupAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StopGroupAsyncReplicationDiskRequest;

                    /**
                     * Decodes a StopGroupAsyncReplicationDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopGroupAsyncReplicationDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StopGroupAsyncReplicationDiskRequest;

                    /**
                     * Verifies a StopGroupAsyncReplicationDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopGroupAsyncReplicationDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopGroupAsyncReplicationDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StopGroupAsyncReplicationDiskRequest;

                    /**
                     * Creates a plain object from a StopGroupAsyncReplicationDiskRequest message. Also converts values to other types if specified.
                     * @param message StopGroupAsyncReplicationDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StopGroupAsyncReplicationDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopGroupAsyncReplicationDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopGroupAsyncReplicationDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopGroupAsyncReplicationRegionDiskRequest. */
                interface IStopGroupAsyncReplicationRegionDiskRequest {

                    /** StopGroupAsyncReplicationRegionDiskRequest disksStopGroupAsyncReplicationResourceResource */
                    disksStopGroupAsyncReplicationResourceResource?: (google.cloud.compute.v1beta.IDisksStopGroupAsyncReplicationResource|null);

                    /** StopGroupAsyncReplicationRegionDiskRequest project */
                    project?: (string|null);

                    /** StopGroupAsyncReplicationRegionDiskRequest region */
                    region?: (string|null);

                    /** StopGroupAsyncReplicationRegionDiskRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StopGroupAsyncReplicationRegionDiskRequest. */
                class StopGroupAsyncReplicationRegionDiskRequest implements IStopGroupAsyncReplicationRegionDiskRequest {

                    /**
                     * Constructs a new StopGroupAsyncReplicationRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStopGroupAsyncReplicationRegionDiskRequest);

                    /** StopGroupAsyncReplicationRegionDiskRequest disksStopGroupAsyncReplicationResourceResource. */
                    public disksStopGroupAsyncReplicationResourceResource?: (google.cloud.compute.v1beta.IDisksStopGroupAsyncReplicationResource|null);

                    /** StopGroupAsyncReplicationRegionDiskRequest project. */
                    public project: string;

                    /** StopGroupAsyncReplicationRegionDiskRequest region. */
                    public region: string;

                    /** StopGroupAsyncReplicationRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StopGroupAsyncReplicationRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopGroupAsyncReplicationRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStopGroupAsyncReplicationRegionDiskRequest): google.cloud.compute.v1beta.StopGroupAsyncReplicationRegionDiskRequest;

                    /**
                     * Encodes the specified StopGroupAsyncReplicationRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StopGroupAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StopGroupAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStopGroupAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopGroupAsyncReplicationRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StopGroupAsyncReplicationRegionDiskRequest.verify|verify} messages.
                     * @param message StopGroupAsyncReplicationRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStopGroupAsyncReplicationRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopGroupAsyncReplicationRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopGroupAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StopGroupAsyncReplicationRegionDiskRequest;

                    /**
                     * Decodes a StopGroupAsyncReplicationRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopGroupAsyncReplicationRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StopGroupAsyncReplicationRegionDiskRequest;

                    /**
                     * Verifies a StopGroupAsyncReplicationRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopGroupAsyncReplicationRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopGroupAsyncReplicationRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StopGroupAsyncReplicationRegionDiskRequest;

                    /**
                     * Creates a plain object from a StopGroupAsyncReplicationRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message StopGroupAsyncReplicationRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StopGroupAsyncReplicationRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopGroupAsyncReplicationRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopGroupAsyncReplicationRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopInstanceRequest. */
                interface IStopInstanceRequest {

                    /** StopInstanceRequest discardLocalSsd */
                    discardLocalSsd?: (boolean|null);

                    /** StopInstanceRequest instance */
                    instance?: (string|null);

                    /** StopInstanceRequest noGracefulShutdown */
                    noGracefulShutdown?: (boolean|null);

                    /** StopInstanceRequest project */
                    project?: (string|null);

                    /** StopInstanceRequest requestId */
                    requestId?: (string|null);

                    /** StopInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StopInstanceRequest. */
                class StopInstanceRequest implements IStopInstanceRequest {

                    /**
                     * Constructs a new StopInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStopInstanceRequest);

                    /** StopInstanceRequest discardLocalSsd. */
                    public discardLocalSsd?: (boolean|null);

                    /** StopInstanceRequest instance. */
                    public instance: string;

                    /** StopInstanceRequest noGracefulShutdown. */
                    public noGracefulShutdown?: (boolean|null);

                    /** StopInstanceRequest project. */
                    public project: string;

                    /** StopInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** StopInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StopInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStopInstanceRequest): google.cloud.compute.v1beta.StopInstanceRequest;

                    /**
                     * Encodes the specified StopInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StopInstanceRequest.verify|verify} messages.
                     * @param message StopInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStopInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StopInstanceRequest.verify|verify} messages.
                     * @param message StopInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStopInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StopInstanceRequest;

                    /**
                     * Decodes a StopInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StopInstanceRequest;

                    /**
                     * Verifies a StopInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StopInstanceRequest;

                    /**
                     * Creates a plain object from a StopInstanceRequest message. Also converts values to other types if specified.
                     * @param message StopInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StopInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopInstancesInstanceGroupManagerRequest. */
                interface IStopInstancesInstanceGroupManagerRequest {

                    /** StopInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** StopInstancesInstanceGroupManagerRequest instanceGroupManagersStopInstancesRequestResource */
                    instanceGroupManagersStopInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersStopInstancesRequest|null);

                    /** StopInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** StopInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** StopInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a StopInstancesInstanceGroupManagerRequest. */
                class StopInstancesInstanceGroupManagerRequest implements IStopInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new StopInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStopInstancesInstanceGroupManagerRequest);

                    /** StopInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** StopInstancesInstanceGroupManagerRequest instanceGroupManagersStopInstancesRequestResource. */
                    public instanceGroupManagersStopInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersStopInstancesRequest|null);

                    /** StopInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** StopInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** StopInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new StopInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStopInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.StopInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified StopInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StopInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StopInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStopInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StopInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StopInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStopInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StopInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a StopInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StopInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a StopInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StopInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a StopInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message StopInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StopInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopInstancesRegionInstanceGroupManagerRequest. */
                interface IStopInstancesRegionInstanceGroupManagerRequest {

                    /** StopInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersStopInstancesRequestResource */
                    regionInstanceGroupManagersStopInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersStopInstancesRequest|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a StopInstancesRegionInstanceGroupManagerRequest. */
                class StopInstancesRegionInstanceGroupManagerRequest implements IStopInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new StopInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStopInstancesRegionInstanceGroupManagerRequest);

                    /** StopInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** StopInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** StopInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** StopInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersStopInstancesRequestResource. */
                    public regionInstanceGroupManagersStopInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersStopInstancesRequest|null);

                    /** StopInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new StopInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStopInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.StopInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified StopInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.StopInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StopInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStopInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StopInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message StopInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStopInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StopInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a StopInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StopInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a StopInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StopInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a StopInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message StopInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StopInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePool. */
                interface IStoragePool {

                    /** StoragePool capacityProvisioningType */
                    capacityProvisioningType?: (string|null);

                    /** StoragePool creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** StoragePool description */
                    description?: (string|null);

                    /** StoragePool exapoolProvisionedCapacityGb */
                    exapoolProvisionedCapacityGb?: (google.cloud.compute.v1beta.IStoragePoolExapoolProvisionedCapacityGb|null);

                    /** StoragePool id */
                    id?: (number|Long|string|null);

                    /** StoragePool kind */
                    kind?: (string|null);

                    /** StoragePool labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** StoragePool labels */
                    labels?: ({ [k: string]: string }|null);

                    /** StoragePool name */
                    name?: (string|null);

                    /** StoragePool params */
                    params?: (google.cloud.compute.v1beta.IStoragePoolParams|null);

                    /** StoragePool performanceProvisioningType */
                    performanceProvisioningType?: (string|null);

                    /** StoragePool poolProvisionedCapacityGb */
                    poolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePool poolProvisionedIops */
                    poolProvisionedIops?: (number|Long|string|null);

                    /** StoragePool poolProvisionedThroughput */
                    poolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePool resourceStatus */
                    resourceStatus?: (google.cloud.compute.v1beta.IStoragePoolResourceStatus|null);

                    /** StoragePool selfLink */
                    selfLink?: (string|null);

                    /** StoragePool selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** StoragePool state */
                    state?: (string|null);

                    /** StoragePool status */
                    status?: (google.cloud.compute.v1beta.IStoragePoolResourceStatus|null);

                    /** StoragePool storagePoolType */
                    storagePoolType?: (string|null);

                    /** StoragePool zone */
                    zone?: (string|null);
                }

                /** Represents a StoragePool. */
                class StoragePool implements IStoragePool {

                    /**
                     * Constructs a new StoragePool.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePool);

                    /** StoragePool capacityProvisioningType. */
                    public capacityProvisioningType?: (string|null);

                    /** StoragePool creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** StoragePool description. */
                    public description?: (string|null);

                    /** StoragePool exapoolProvisionedCapacityGb. */
                    public exapoolProvisionedCapacityGb?: (google.cloud.compute.v1beta.IStoragePoolExapoolProvisionedCapacityGb|null);

                    /** StoragePool id. */
                    public id?: (number|Long|string|null);

                    /** StoragePool kind. */
                    public kind?: (string|null);

                    /** StoragePool labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** StoragePool labels. */
                    public labels: { [k: string]: string };

                    /** StoragePool name. */
                    public name?: (string|null);

                    /** StoragePool params. */
                    public params?: (google.cloud.compute.v1beta.IStoragePoolParams|null);

                    /** StoragePool performanceProvisioningType. */
                    public performanceProvisioningType?: (string|null);

                    /** StoragePool poolProvisionedCapacityGb. */
                    public poolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePool poolProvisionedIops. */
                    public poolProvisionedIops?: (number|Long|string|null);

                    /** StoragePool poolProvisionedThroughput. */
                    public poolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePool resourceStatus. */
                    public resourceStatus?: (google.cloud.compute.v1beta.IStoragePoolResourceStatus|null);

                    /** StoragePool selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePool selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** StoragePool state. */
                    public state?: (string|null);

                    /** StoragePool status. */
                    public status?: (google.cloud.compute.v1beta.IStoragePoolResourceStatus|null);

                    /** StoragePool storagePoolType. */
                    public storagePoolType?: (string|null);

                    /** StoragePool zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new StoragePool instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePool instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePool): google.cloud.compute.v1beta.StoragePool;

                    /**
                     * Encodes the specified StoragePool message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePool.verify|verify} messages.
                     * @param message StoragePool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePool message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePool.verify|verify} messages.
                     * @param message StoragePool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePool message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePool
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePool;

                    /**
                     * Decodes a StoragePool message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePool
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePool;

                    /**
                     * Verifies a StoragePool message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePool message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePool
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePool;

                    /**
                     * Creates a plain object from a StoragePool message. Also converts values to other types if specified.
                     * @param message StoragePool
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePool to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePool
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StoragePool {

                    /** CapacityProvisioningType enum. */
                    enum CapacityProvisioningType {
                        UNDEFINED_CAPACITY_PROVISIONING_TYPE = 0
                    }

                    /** PerformanceProvisioningType enum. */
                    enum PerformanceProvisioningType {
                        UNDEFINED_PERFORMANCE_PROVISIONING_TYPE = 0
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963
                    }
                }

                /** Properties of a StoragePoolAggregatedList. */
                interface IStoragePoolAggregatedList {

                    /** StoragePoolAggregatedList etag */
                    etag?: (string|null);

                    /** StoragePoolAggregatedList id */
                    id?: (string|null);

                    /** StoragePoolAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IStoragePoolsScopedList }|null);

                    /** StoragePoolAggregatedList kind */
                    kind?: (string|null);

                    /** StoragePoolAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** StoragePoolAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a StoragePoolAggregatedList. */
                class StoragePoolAggregatedList implements IStoragePoolAggregatedList {

                    /**
                     * Constructs a new StoragePoolAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolAggregatedList);

                    /** StoragePoolAggregatedList etag. */
                    public etag?: (string|null);

                    /** StoragePoolAggregatedList id. */
                    public id?: (string|null);

                    /** StoragePoolAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IStoragePoolsScopedList };

                    /** StoragePoolAggregatedList kind. */
                    public kind?: (string|null);

                    /** StoragePoolAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolAggregatedList unreachables. */
                    public unreachables: string[];

                    /** StoragePoolAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new StoragePoolAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolAggregatedList): google.cloud.compute.v1beta.StoragePoolAggregatedList;

                    /**
                     * Encodes the specified StoragePoolAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolAggregatedList.verify|verify} messages.
                     * @param message StoragePoolAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolAggregatedList.verify|verify} messages.
                     * @param message StoragePoolAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolAggregatedList;

                    /**
                     * Decodes a StoragePoolAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolAggregatedList;

                    /**
                     * Verifies a StoragePoolAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolAggregatedList;

                    /**
                     * Creates a plain object from a StoragePoolAggregatedList message. Also converts values to other types if specified.
                     * @param message StoragePoolAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolDisk. */
                interface IStoragePoolDisk {

                    /** StoragePoolDisk attachedInstances */
                    attachedInstances?: (string[]|null);

                    /** StoragePoolDisk creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** StoragePoolDisk disk */
                    disk?: (string|null);

                    /** StoragePoolDisk name */
                    name?: (string|null);

                    /** StoragePoolDisk provisionedIops */
                    provisionedIops?: (number|Long|string|null);

                    /** StoragePoolDisk provisionedThroughput */
                    provisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolDisk resourcePolicies */
                    resourcePolicies?: (string[]|null);

                    /** StoragePoolDisk sizeGb */
                    sizeGb?: (number|Long|string|null);

                    /** StoragePoolDisk status */
                    status?: (string|null);

                    /** StoragePoolDisk type */
                    type?: (string|null);

                    /** StoragePoolDisk usedBytes */
                    usedBytes?: (number|Long|string|null);
                }

                /** Represents a StoragePoolDisk. */
                class StoragePoolDisk implements IStoragePoolDisk {

                    /**
                     * Constructs a new StoragePoolDisk.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolDisk);

                    /** StoragePoolDisk attachedInstances. */
                    public attachedInstances: string[];

                    /** StoragePoolDisk creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** StoragePoolDisk disk. */
                    public disk?: (string|null);

                    /** StoragePoolDisk name. */
                    public name?: (string|null);

                    /** StoragePoolDisk provisionedIops. */
                    public provisionedIops?: (number|Long|string|null);

                    /** StoragePoolDisk provisionedThroughput. */
                    public provisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolDisk resourcePolicies. */
                    public resourcePolicies: string[];

                    /** StoragePoolDisk sizeGb. */
                    public sizeGb?: (number|Long|string|null);

                    /** StoragePoolDisk status. */
                    public status?: (string|null);

                    /** StoragePoolDisk type. */
                    public type?: (string|null);

                    /** StoragePoolDisk usedBytes. */
                    public usedBytes?: (number|Long|string|null);

                    /**
                     * Creates a new StoragePoolDisk instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolDisk instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolDisk): google.cloud.compute.v1beta.StoragePoolDisk;

                    /**
                     * Encodes the specified StoragePoolDisk message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolDisk.verify|verify} messages.
                     * @param message StoragePoolDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolDisk message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolDisk.verify|verify} messages.
                     * @param message StoragePoolDisk message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolDisk, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolDisk message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolDisk;

                    /**
                     * Decodes a StoragePoolDisk message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolDisk
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolDisk;

                    /**
                     * Verifies a StoragePoolDisk message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolDisk message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolDisk
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolDisk;

                    /**
                     * Creates a plain object from a StoragePoolDisk message. Also converts values to other types if specified.
                     * @param message StoragePoolDisk
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolDisk, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolDisk to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolDisk
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StoragePoolDisk {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963,
                        RESTORING = 404263851,
                        UNAVAILABLE = 413756464
                    }
                }

                /** Properties of a StoragePoolExapoolProvisionedCapacityGb. */
                interface IStoragePoolExapoolProvisionedCapacityGb {

                    /** StoragePoolExapoolProvisionedCapacityGb capacityOptimized */
                    capacityOptimized?: (number|Long|string|null);

                    /** StoragePoolExapoolProvisionedCapacityGb readOptimized */
                    readOptimized?: (number|Long|string|null);

                    /** StoragePoolExapoolProvisionedCapacityGb writeOptimized */
                    writeOptimized?: (number|Long|string|null);
                }

                /** Represents a StoragePoolExapoolProvisionedCapacityGb. */
                class StoragePoolExapoolProvisionedCapacityGb implements IStoragePoolExapoolProvisionedCapacityGb {

                    /**
                     * Constructs a new StoragePoolExapoolProvisionedCapacityGb.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolExapoolProvisionedCapacityGb);

                    /** StoragePoolExapoolProvisionedCapacityGb capacityOptimized. */
                    public capacityOptimized?: (number|Long|string|null);

                    /** StoragePoolExapoolProvisionedCapacityGb readOptimized. */
                    public readOptimized?: (number|Long|string|null);

                    /** StoragePoolExapoolProvisionedCapacityGb writeOptimized. */
                    public writeOptimized?: (number|Long|string|null);

                    /**
                     * Creates a new StoragePoolExapoolProvisionedCapacityGb instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolExapoolProvisionedCapacityGb instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolExapoolProvisionedCapacityGb): google.cloud.compute.v1beta.StoragePoolExapoolProvisionedCapacityGb;

                    /**
                     * Encodes the specified StoragePoolExapoolProvisionedCapacityGb message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolExapoolProvisionedCapacityGb.verify|verify} messages.
                     * @param message StoragePoolExapoolProvisionedCapacityGb message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolExapoolProvisionedCapacityGb, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolExapoolProvisionedCapacityGb message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolExapoolProvisionedCapacityGb.verify|verify} messages.
                     * @param message StoragePoolExapoolProvisionedCapacityGb message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolExapoolProvisionedCapacityGb, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolExapoolProvisionedCapacityGb message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolExapoolProvisionedCapacityGb
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolExapoolProvisionedCapacityGb;

                    /**
                     * Decodes a StoragePoolExapoolProvisionedCapacityGb message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolExapoolProvisionedCapacityGb
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolExapoolProvisionedCapacityGb;

                    /**
                     * Verifies a StoragePoolExapoolProvisionedCapacityGb message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolExapoolProvisionedCapacityGb message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolExapoolProvisionedCapacityGb
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolExapoolProvisionedCapacityGb;

                    /**
                     * Creates a plain object from a StoragePoolExapoolProvisionedCapacityGb message. Also converts values to other types if specified.
                     * @param message StoragePoolExapoolProvisionedCapacityGb
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolExapoolProvisionedCapacityGb, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolExapoolProvisionedCapacityGb to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolExapoolProvisionedCapacityGb
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolList. */
                interface IStoragePoolList {

                    /** StoragePoolList etag */
                    etag?: (string|null);

                    /** StoragePoolList id */
                    id?: (string|null);

                    /** StoragePoolList items */
                    items?: (google.cloud.compute.v1beta.IStoragePool[]|null);

                    /** StoragePoolList kind */
                    kind?: (string|null);

                    /** StoragePoolList nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolList selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolList unreachables */
                    unreachables?: (string[]|null);

                    /** StoragePoolList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a StoragePoolList. */
                class StoragePoolList implements IStoragePoolList {

                    /**
                     * Constructs a new StoragePoolList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolList);

                    /** StoragePoolList etag. */
                    public etag?: (string|null);

                    /** StoragePoolList id. */
                    public id?: (string|null);

                    /** StoragePoolList items. */
                    public items: google.cloud.compute.v1beta.IStoragePool[];

                    /** StoragePoolList kind. */
                    public kind?: (string|null);

                    /** StoragePoolList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolList selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolList unreachables. */
                    public unreachables: string[];

                    /** StoragePoolList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new StoragePoolList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolList): google.cloud.compute.v1beta.StoragePoolList;

                    /**
                     * Encodes the specified StoragePoolList message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolList.verify|verify} messages.
                     * @param message StoragePoolList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolList.verify|verify} messages.
                     * @param message StoragePoolList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolList;

                    /**
                     * Decodes a StoragePoolList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolList;

                    /**
                     * Verifies a StoragePoolList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolList;

                    /**
                     * Creates a plain object from a StoragePoolList message. Also converts values to other types if specified.
                     * @param message StoragePoolList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolListDisks. */
                interface IStoragePoolListDisks {

                    /** StoragePoolListDisks etag */
                    etag?: (string|null);

                    /** StoragePoolListDisks id */
                    id?: (string|null);

                    /** StoragePoolListDisks items */
                    items?: (google.cloud.compute.v1beta.IStoragePoolDisk[]|null);

                    /** StoragePoolListDisks kind */
                    kind?: (string|null);

                    /** StoragePoolListDisks nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolListDisks selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolListDisks unreachables */
                    unreachables?: (string[]|null);

                    /** StoragePoolListDisks warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a StoragePoolListDisks. */
                class StoragePoolListDisks implements IStoragePoolListDisks {

                    /**
                     * Constructs a new StoragePoolListDisks.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolListDisks);

                    /** StoragePoolListDisks etag. */
                    public etag?: (string|null);

                    /** StoragePoolListDisks id. */
                    public id?: (string|null);

                    /** StoragePoolListDisks items. */
                    public items: google.cloud.compute.v1beta.IStoragePoolDisk[];

                    /** StoragePoolListDisks kind. */
                    public kind?: (string|null);

                    /** StoragePoolListDisks nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolListDisks selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolListDisks unreachables. */
                    public unreachables: string[];

                    /** StoragePoolListDisks warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new StoragePoolListDisks instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolListDisks instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolListDisks): google.cloud.compute.v1beta.StoragePoolListDisks;

                    /**
                     * Encodes the specified StoragePoolListDisks message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolListDisks.verify|verify} messages.
                     * @param message StoragePoolListDisks message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolListDisks, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolListDisks message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolListDisks.verify|verify} messages.
                     * @param message StoragePoolListDisks message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolListDisks, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolListDisks message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolListDisks
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolListDisks;

                    /**
                     * Decodes a StoragePoolListDisks message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolListDisks
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolListDisks;

                    /**
                     * Verifies a StoragePoolListDisks message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolListDisks message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolListDisks
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolListDisks;

                    /**
                     * Creates a plain object from a StoragePoolListDisks message. Also converts values to other types if specified.
                     * @param message StoragePoolListDisks
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolListDisks, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolListDisks to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolListDisks
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolParams. */
                interface IStoragePoolParams {

                    /** StoragePoolParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a StoragePoolParams. */
                class StoragePoolParams implements IStoragePoolParams {

                    /**
                     * Constructs a new StoragePoolParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolParams);

                    /** StoragePoolParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new StoragePoolParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolParams): google.cloud.compute.v1beta.StoragePoolParams;

                    /**
                     * Encodes the specified StoragePoolParams message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolParams.verify|verify} messages.
                     * @param message StoragePoolParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolParams.verify|verify} messages.
                     * @param message StoragePoolParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolParams;

                    /**
                     * Decodes a StoragePoolParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolParams;

                    /**
                     * Verifies a StoragePoolParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolParams;

                    /**
                     * Creates a plain object from a StoragePoolParams message. Also converts values to other types if specified.
                     * @param message StoragePoolParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolResourceStatus. */
                interface IStoragePoolResourceStatus {

                    /** StoragePoolResourceStatus diskCount */
                    diskCount?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxReadIops */
                    exapoolMaxReadIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxReadThroughput */
                    exapoolMaxReadThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxWriteIops */
                    exapoolMaxWriteIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxWriteThroughput */
                    exapoolMaxWriteThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus lastResizeTimestamp */
                    lastResizeTimestamp?: (string|null);

                    /** StoragePoolResourceStatus maxTotalProvisionedDiskCapacityGb */
                    maxTotalProvisionedDiskCapacityGb?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedCapacityBytes */
                    poolUsedCapacityBytes?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedIops */
                    poolUsedIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedThroughput */
                    poolUsedThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUserWrittenBytes */
                    poolUserWrittenBytes?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskCapacityGb */
                    totalProvisionedDiskCapacityGb?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskIops */
                    totalProvisionedDiskIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskThroughput */
                    totalProvisionedDiskThroughput?: (number|Long|string|null);
                }

                /** Represents a StoragePoolResourceStatus. */
                class StoragePoolResourceStatus implements IStoragePoolResourceStatus {

                    /**
                     * Constructs a new StoragePoolResourceStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolResourceStatus);

                    /** StoragePoolResourceStatus diskCount. */
                    public diskCount?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxReadIops. */
                    public exapoolMaxReadIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxReadThroughput. */
                    public exapoolMaxReadThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxWriteIops. */
                    public exapoolMaxWriteIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus exapoolMaxWriteThroughput. */
                    public exapoolMaxWriteThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus lastResizeTimestamp. */
                    public lastResizeTimestamp?: (string|null);

                    /** StoragePoolResourceStatus maxTotalProvisionedDiskCapacityGb. */
                    public maxTotalProvisionedDiskCapacityGb?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedCapacityBytes. */
                    public poolUsedCapacityBytes?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedIops. */
                    public poolUsedIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUsedThroughput. */
                    public poolUsedThroughput?: (number|Long|string|null);

                    /** StoragePoolResourceStatus poolUserWrittenBytes. */
                    public poolUserWrittenBytes?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskCapacityGb. */
                    public totalProvisionedDiskCapacityGb?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskIops. */
                    public totalProvisionedDiskIops?: (number|Long|string|null);

                    /** StoragePoolResourceStatus totalProvisionedDiskThroughput. */
                    public totalProvisionedDiskThroughput?: (number|Long|string|null);

                    /**
                     * Creates a new StoragePoolResourceStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolResourceStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolResourceStatus): google.cloud.compute.v1beta.StoragePoolResourceStatus;

                    /**
                     * Encodes the specified StoragePoolResourceStatus message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolResourceStatus.verify|verify} messages.
                     * @param message StoragePoolResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolResourceStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolResourceStatus.verify|verify} messages.
                     * @param message StoragePoolResourceStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolResourceStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolResourceStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolResourceStatus;

                    /**
                     * Decodes a StoragePoolResourceStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolResourceStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolResourceStatus;

                    /**
                     * Verifies a StoragePoolResourceStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolResourceStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolResourceStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolResourceStatus;

                    /**
                     * Creates a plain object from a StoragePoolResourceStatus message. Also converts values to other types if specified.
                     * @param message StoragePoolResourceStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolResourceStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolResourceStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolResourceStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolType. */
                interface IStoragePoolType {

                    /** StoragePoolType creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** StoragePoolType deprecated */
                    deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** StoragePoolType description */
                    description?: (string|null);

                    /** StoragePoolType id */
                    id?: (number|Long|string|null);

                    /** StoragePoolType kind */
                    kind?: (string|null);

                    /** StoragePoolType maxPoolProvisionedCapacityGb */
                    maxPoolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePoolType maxPoolProvisionedIops */
                    maxPoolProvisionedIops?: (number|Long|string|null);

                    /** StoragePoolType maxPoolProvisionedThroughput */
                    maxPoolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedCapacityGb */
                    minPoolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedIops */
                    minPoolProvisionedIops?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedThroughput */
                    minPoolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolType minSizeGb */
                    minSizeGb?: (number|Long|string|null);

                    /** StoragePoolType name */
                    name?: (string|null);

                    /** StoragePoolType selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolType selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** StoragePoolType supportedDiskTypes */
                    supportedDiskTypes?: (string[]|null);

                    /** StoragePoolType zone */
                    zone?: (string|null);
                }

                /** Represents a StoragePoolType. */
                class StoragePoolType implements IStoragePoolType {

                    /**
                     * Constructs a new StoragePoolType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolType);

                    /** StoragePoolType creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** StoragePoolType deprecated. */
                    public deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** StoragePoolType description. */
                    public description?: (string|null);

                    /** StoragePoolType id. */
                    public id?: (number|Long|string|null);

                    /** StoragePoolType kind. */
                    public kind?: (string|null);

                    /** StoragePoolType maxPoolProvisionedCapacityGb. */
                    public maxPoolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePoolType maxPoolProvisionedIops. */
                    public maxPoolProvisionedIops?: (number|Long|string|null);

                    /** StoragePoolType maxPoolProvisionedThroughput. */
                    public maxPoolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedCapacityGb. */
                    public minPoolProvisionedCapacityGb?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedIops. */
                    public minPoolProvisionedIops?: (number|Long|string|null);

                    /** StoragePoolType minPoolProvisionedThroughput. */
                    public minPoolProvisionedThroughput?: (number|Long|string|null);

                    /** StoragePoolType minSizeGb. */
                    public minSizeGb?: (number|Long|string|null);

                    /** StoragePoolType name. */
                    public name?: (string|null);

                    /** StoragePoolType selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolType selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** StoragePoolType supportedDiskTypes. */
                    public supportedDiskTypes: string[];

                    /** StoragePoolType zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new StoragePoolType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolType instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolType): google.cloud.compute.v1beta.StoragePoolType;

                    /**
                     * Encodes the specified StoragePoolType message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolType.verify|verify} messages.
                     * @param message StoragePoolType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolType message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolType.verify|verify} messages.
                     * @param message StoragePoolType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolType;

                    /**
                     * Decodes a StoragePoolType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolType;

                    /**
                     * Verifies a StoragePoolType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolType
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolType;

                    /**
                     * Creates a plain object from a StoragePoolType message. Also converts values to other types if specified.
                     * @param message StoragePoolType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolTypeAggregatedList. */
                interface IStoragePoolTypeAggregatedList {

                    /** StoragePoolTypeAggregatedList id */
                    id?: (string|null);

                    /** StoragePoolTypeAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IStoragePoolTypesScopedList }|null);

                    /** StoragePoolTypeAggregatedList kind */
                    kind?: (string|null);

                    /** StoragePoolTypeAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolTypeAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolTypeAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a StoragePoolTypeAggregatedList. */
                class StoragePoolTypeAggregatedList implements IStoragePoolTypeAggregatedList {

                    /**
                     * Constructs a new StoragePoolTypeAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolTypeAggregatedList);

                    /** StoragePoolTypeAggregatedList id. */
                    public id?: (string|null);

                    /** StoragePoolTypeAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IStoragePoolTypesScopedList };

                    /** StoragePoolTypeAggregatedList kind. */
                    public kind?: (string|null);

                    /** StoragePoolTypeAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolTypeAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolTypeAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new StoragePoolTypeAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolTypeAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolTypeAggregatedList): google.cloud.compute.v1beta.StoragePoolTypeAggregatedList;

                    /**
                     * Encodes the specified StoragePoolTypeAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolTypeAggregatedList.verify|verify} messages.
                     * @param message StoragePoolTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolTypeAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolTypeAggregatedList.verify|verify} messages.
                     * @param message StoragePoolTypeAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolTypeAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolTypeAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolTypeAggregatedList;

                    /**
                     * Decodes a StoragePoolTypeAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolTypeAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolTypeAggregatedList;

                    /**
                     * Verifies a StoragePoolTypeAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolTypeAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolTypeAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolTypeAggregatedList;

                    /**
                     * Creates a plain object from a StoragePoolTypeAggregatedList message. Also converts values to other types if specified.
                     * @param message StoragePoolTypeAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolTypeAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolTypeAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolTypeAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolTypeList. */
                interface IStoragePoolTypeList {

                    /** StoragePoolTypeList id */
                    id?: (string|null);

                    /** StoragePoolTypeList items */
                    items?: (google.cloud.compute.v1beta.IStoragePoolType[]|null);

                    /** StoragePoolTypeList kind */
                    kind?: (string|null);

                    /** StoragePoolTypeList nextPageToken */
                    nextPageToken?: (string|null);

                    /** StoragePoolTypeList selfLink */
                    selfLink?: (string|null);

                    /** StoragePoolTypeList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a StoragePoolTypeList. */
                class StoragePoolTypeList implements IStoragePoolTypeList {

                    /**
                     * Constructs a new StoragePoolTypeList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolTypeList);

                    /** StoragePoolTypeList id. */
                    public id?: (string|null);

                    /** StoragePoolTypeList items. */
                    public items: google.cloud.compute.v1beta.IStoragePoolType[];

                    /** StoragePoolTypeList kind. */
                    public kind?: (string|null);

                    /** StoragePoolTypeList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** StoragePoolTypeList selfLink. */
                    public selfLink?: (string|null);

                    /** StoragePoolTypeList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new StoragePoolTypeList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolTypeList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolTypeList): google.cloud.compute.v1beta.StoragePoolTypeList;

                    /**
                     * Encodes the specified StoragePoolTypeList message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolTypeList.verify|verify} messages.
                     * @param message StoragePoolTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolTypeList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolTypeList.verify|verify} messages.
                     * @param message StoragePoolTypeList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolTypeList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolTypeList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolTypeList;

                    /**
                     * Decodes a StoragePoolTypeList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolTypeList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolTypeList;

                    /**
                     * Verifies a StoragePoolTypeList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolTypeList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolTypeList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolTypeList;

                    /**
                     * Creates a plain object from a StoragePoolTypeList message. Also converts values to other types if specified.
                     * @param message StoragePoolTypeList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolTypeList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolTypeList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolTypeList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolTypesScopedList. */
                interface IStoragePoolTypesScopedList {

                    /** StoragePoolTypesScopedList storagePoolTypes */
                    storagePoolTypes?: (google.cloud.compute.v1beta.IStoragePoolType[]|null);

                    /** StoragePoolTypesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a StoragePoolTypesScopedList. */
                class StoragePoolTypesScopedList implements IStoragePoolTypesScopedList {

                    /**
                     * Constructs a new StoragePoolTypesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolTypesScopedList);

                    /** StoragePoolTypesScopedList storagePoolTypes. */
                    public storagePoolTypes: google.cloud.compute.v1beta.IStoragePoolType[];

                    /** StoragePoolTypesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new StoragePoolTypesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolTypesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolTypesScopedList): google.cloud.compute.v1beta.StoragePoolTypesScopedList;

                    /**
                     * Encodes the specified StoragePoolTypesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolTypesScopedList.verify|verify} messages.
                     * @param message StoragePoolTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolTypesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolTypesScopedList.verify|verify} messages.
                     * @param message StoragePoolTypesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolTypesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolTypesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolTypesScopedList;

                    /**
                     * Decodes a StoragePoolTypesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolTypesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolTypesScopedList;

                    /**
                     * Verifies a StoragePoolTypesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolTypesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolTypesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolTypesScopedList;

                    /**
                     * Creates a plain object from a StoragePoolTypesScopedList message. Also converts values to other types if specified.
                     * @param message StoragePoolTypesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolTypesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolTypesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolTypesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoragePoolsScopedList. */
                interface IStoragePoolsScopedList {

                    /** StoragePoolsScopedList storagePools */
                    storagePools?: (google.cloud.compute.v1beta.IStoragePool[]|null);

                    /** StoragePoolsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a StoragePoolsScopedList. */
                class StoragePoolsScopedList implements IStoragePoolsScopedList {

                    /**
                     * Constructs a new StoragePoolsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStoragePoolsScopedList);

                    /** StoragePoolsScopedList storagePools. */
                    public storagePools: google.cloud.compute.v1beta.IStoragePool[];

                    /** StoragePoolsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new StoragePoolsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoragePoolsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStoragePoolsScopedList): google.cloud.compute.v1beta.StoragePoolsScopedList;

                    /**
                     * Encodes the specified StoragePoolsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolsScopedList.verify|verify} messages.
                     * @param message StoragePoolsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStoragePoolsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoragePoolsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StoragePoolsScopedList.verify|verify} messages.
                     * @param message StoragePoolsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStoragePoolsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoragePoolsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoragePoolsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StoragePoolsScopedList;

                    /**
                     * Decodes a StoragePoolsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoragePoolsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StoragePoolsScopedList;

                    /**
                     * Verifies a StoragePoolsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoragePoolsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoragePoolsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StoragePoolsScopedList;

                    /**
                     * Creates a plain object from a StoragePoolsScopedList message. Also converts values to other types if specified.
                     * @param message StoragePoolsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StoragePoolsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoragePoolsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoragePoolsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StructuredEntries. */
                interface IStructuredEntries {

                    /** StructuredEntries entries */
                    entries?: ({ [k: string]: google.protobuf.IValue }|null);
                }

                /** Represents a StructuredEntries. */
                class StructuredEntries implements IStructuredEntries {

                    /**
                     * Constructs a new StructuredEntries.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IStructuredEntries);

                    /** StructuredEntries entries. */
                    public entries: { [k: string]: google.protobuf.IValue };

                    /**
                     * Creates a new StructuredEntries instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StructuredEntries instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IStructuredEntries): google.cloud.compute.v1beta.StructuredEntries;

                    /**
                     * Encodes the specified StructuredEntries message. Does not implicitly {@link google.cloud.compute.v1beta.StructuredEntries.verify|verify} messages.
                     * @param message StructuredEntries message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IStructuredEntries, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StructuredEntries message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.StructuredEntries.verify|verify} messages.
                     * @param message StructuredEntries message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IStructuredEntries, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StructuredEntries message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StructuredEntries
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.StructuredEntries;

                    /**
                     * Decodes a StructuredEntries message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StructuredEntries
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.StructuredEntries;

                    /**
                     * Verifies a StructuredEntries message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StructuredEntries message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StructuredEntries
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.StructuredEntries;

                    /**
                     * Creates a plain object from a StructuredEntries message. Also converts values to other types if specified.
                     * @param message StructuredEntries
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.StructuredEntries, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StructuredEntries to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StructuredEntries
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Subnetwork. */
                interface ISubnetwork {

                    /** Subnetwork allowSubnetCidrRoutesOverlap */
                    allowSubnetCidrRoutesOverlap?: (boolean|null);

                    /** Subnetwork creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Subnetwork description */
                    description?: (string|null);

                    /** Subnetwork enableFlowLogs */
                    enableFlowLogs?: (boolean|null);

                    /** Subnetwork externalIpv6Prefix */
                    externalIpv6Prefix?: (string|null);

                    /** Subnetwork fingerprint */
                    fingerprint?: (string|null);

                    /** Subnetwork gatewayAddress */
                    gatewayAddress?: (string|null);

                    /** Subnetwork id */
                    id?: (number|Long|string|null);

                    /** Subnetwork internalIpv6Prefix */
                    internalIpv6Prefix?: (string|null);

                    /** Subnetwork ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** Subnetwork ipCollection */
                    ipCollection?: (string|null);

                    /** Subnetwork ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** Subnetwork ipv6CidrRange */
                    ipv6CidrRange?: (string|null);

                    /** Subnetwork ipv6GceEndpoint */
                    ipv6GceEndpoint?: (string|null);

                    /** Subnetwork kind */
                    kind?: (string|null);

                    /** Subnetwork logConfig */
                    logConfig?: (google.cloud.compute.v1beta.ISubnetworkLogConfig|null);

                    /** Subnetwork name */
                    name?: (string|null);

                    /** Subnetwork network */
                    network?: (string|null);

                    /** Subnetwork params */
                    params?: (google.cloud.compute.v1beta.ISubnetworkParams|null);

                    /** Subnetwork privateIpGoogleAccess */
                    privateIpGoogleAccess?: (boolean|null);

                    /** Subnetwork privateIpv6GoogleAccess */
                    privateIpv6GoogleAccess?: (string|null);

                    /** Subnetwork purpose */
                    purpose?: (string|null);

                    /** Subnetwork region */
                    region?: (string|null);

                    /** Subnetwork reservedInternalRange */
                    reservedInternalRange?: (string|null);

                    /** Subnetwork resolveSubnetMask */
                    resolveSubnetMask?: (string|null);

                    /** Subnetwork role */
                    role?: (string|null);

                    /** Subnetwork secondaryIpRanges */
                    secondaryIpRanges?: (google.cloud.compute.v1beta.ISubnetworkSecondaryRange[]|null);

                    /** Subnetwork selfLink */
                    selfLink?: (string|null);

                    /** Subnetwork stackType */
                    stackType?: (string|null);

                    /** Subnetwork state */
                    state?: (string|null);

                    /** Subnetwork systemReservedExternalIpv6Ranges */
                    systemReservedExternalIpv6Ranges?: (string[]|null);

                    /** Subnetwork systemReservedInternalIpv6Ranges */
                    systemReservedInternalIpv6Ranges?: (string[]|null);

                    /** Subnetwork utilizationDetails */
                    utilizationDetails?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetails|null);
                }

                /** Represents a Subnetwork. */
                class Subnetwork implements ISubnetwork {

                    /**
                     * Constructs a new Subnetwork.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetwork);

                    /** Subnetwork allowSubnetCidrRoutesOverlap. */
                    public allowSubnetCidrRoutesOverlap?: (boolean|null);

                    /** Subnetwork creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Subnetwork description. */
                    public description?: (string|null);

                    /** Subnetwork enableFlowLogs. */
                    public enableFlowLogs?: (boolean|null);

                    /** Subnetwork externalIpv6Prefix. */
                    public externalIpv6Prefix?: (string|null);

                    /** Subnetwork fingerprint. */
                    public fingerprint?: (string|null);

                    /** Subnetwork gatewayAddress. */
                    public gatewayAddress?: (string|null);

                    /** Subnetwork id. */
                    public id?: (number|Long|string|null);

                    /** Subnetwork internalIpv6Prefix. */
                    public internalIpv6Prefix?: (string|null);

                    /** Subnetwork ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** Subnetwork ipCollection. */
                    public ipCollection?: (string|null);

                    /** Subnetwork ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** Subnetwork ipv6CidrRange. */
                    public ipv6CidrRange?: (string|null);

                    /** Subnetwork ipv6GceEndpoint. */
                    public ipv6GceEndpoint?: (string|null);

                    /** Subnetwork kind. */
                    public kind?: (string|null);

                    /** Subnetwork logConfig. */
                    public logConfig?: (google.cloud.compute.v1beta.ISubnetworkLogConfig|null);

                    /** Subnetwork name. */
                    public name?: (string|null);

                    /** Subnetwork network. */
                    public network?: (string|null);

                    /** Subnetwork params. */
                    public params?: (google.cloud.compute.v1beta.ISubnetworkParams|null);

                    /** Subnetwork privateIpGoogleAccess. */
                    public privateIpGoogleAccess?: (boolean|null);

                    /** Subnetwork privateIpv6GoogleAccess. */
                    public privateIpv6GoogleAccess?: (string|null);

                    /** Subnetwork purpose. */
                    public purpose?: (string|null);

                    /** Subnetwork region. */
                    public region?: (string|null);

                    /** Subnetwork reservedInternalRange. */
                    public reservedInternalRange?: (string|null);

                    /** Subnetwork resolveSubnetMask. */
                    public resolveSubnetMask?: (string|null);

                    /** Subnetwork role. */
                    public role?: (string|null);

                    /** Subnetwork secondaryIpRanges. */
                    public secondaryIpRanges: google.cloud.compute.v1beta.ISubnetworkSecondaryRange[];

                    /** Subnetwork selfLink. */
                    public selfLink?: (string|null);

                    /** Subnetwork stackType. */
                    public stackType?: (string|null);

                    /** Subnetwork state. */
                    public state?: (string|null);

                    /** Subnetwork systemReservedExternalIpv6Ranges. */
                    public systemReservedExternalIpv6Ranges: string[];

                    /** Subnetwork systemReservedInternalIpv6Ranges. */
                    public systemReservedInternalIpv6Ranges: string[];

                    /** Subnetwork utilizationDetails. */
                    public utilizationDetails?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetails|null);

                    /**
                     * Creates a new Subnetwork instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Subnetwork instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetwork): google.cloud.compute.v1beta.Subnetwork;

                    /**
                     * Encodes the specified Subnetwork message. Does not implicitly {@link google.cloud.compute.v1beta.Subnetwork.verify|verify} messages.
                     * @param message Subnetwork message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Subnetwork message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Subnetwork.verify|verify} messages.
                     * @param message Subnetwork message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Subnetwork message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Subnetwork
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Subnetwork;

                    /**
                     * Decodes a Subnetwork message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Subnetwork
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Subnetwork;

                    /**
                     * Verifies a Subnetwork message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Subnetwork message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Subnetwork
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Subnetwork;

                    /**
                     * Creates a plain object from a Subnetwork message. Also converts values to other types if specified.
                     * @param message Subnetwork
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Subnetwork, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Subnetwork to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Subnetwork
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Subnetwork {

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677,
                        UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613
                    }

                    /** Ipv6GceEndpoint enum. */
                    enum Ipv6GceEndpoint {
                        UNDEFINED_IPV6_GCE_ENDPOINT = 0,
                        VM_AND_FR = 41830108,
                        VM_ONLY = 236773428
                    }

                    /** PrivateIpv6GoogleAccess enum. */
                    enum PrivateIpv6GoogleAccess {
                        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0,
                        DISABLE_GOOGLE_ACCESS = 450958579,
                        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994,
                        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263
                    }

                    /** Purpose enum. */
                    enum Purpose {
                        UNDEFINED_PURPOSE = 0,
                        GLOBAL_MANAGED_PROXY = 236463602,
                        INTERNAL_HTTPS_LOAD_BALANCER = 248748889,
                        PEER_MIGRATION = 491902225,
                        PRIVATE = 403485027,
                        PRIVATE_NAT = 367764517,
                        PRIVATE_RFC_1918 = 254902107,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        REGIONAL_MANAGED_PROXY = 153049966
                    }

                    /** ResolveSubnetMask enum. */
                    enum ResolveSubnetMask {
                        UNDEFINED_RESOLVE_SUBNET_MASK = 0,
                        ARP_ALL_RANGES = 445655380,
                        ARP_PRIMARY_RANGE = 120210048
                    }

                    /** Role enum. */
                    enum Role {
                        UNDEFINED_ROLE = 0,
                        ACTIVE = 314733318,
                        BACKUP = 341010882
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100,
                        UNSPECIFIED_STACK_TYPE = 298084569
                    }

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        DRAINING = 480455402,
                        READY = 77848963
                    }
                }

                /** Properties of a SubnetworkAggregatedList. */
                interface ISubnetworkAggregatedList {

                    /** SubnetworkAggregatedList id */
                    id?: (string|null);

                    /** SubnetworkAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ISubnetworksScopedList }|null);

                    /** SubnetworkAggregatedList kind */
                    kind?: (string|null);

                    /** SubnetworkAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SubnetworkAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** SubnetworkAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** SubnetworkAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SubnetworkAggregatedList. */
                class SubnetworkAggregatedList implements ISubnetworkAggregatedList {

                    /**
                     * Constructs a new SubnetworkAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworkAggregatedList);

                    /** SubnetworkAggregatedList id. */
                    public id?: (string|null);

                    /** SubnetworkAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ISubnetworksScopedList };

                    /** SubnetworkAggregatedList kind. */
                    public kind?: (string|null);

                    /** SubnetworkAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SubnetworkAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** SubnetworkAggregatedList unreachables. */
                    public unreachables: string[];

                    /** SubnetworkAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SubnetworkAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworkAggregatedList): google.cloud.compute.v1beta.SubnetworkAggregatedList;

                    /**
                     * Encodes the specified SubnetworkAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkAggregatedList.verify|verify} messages.
                     * @param message SubnetworkAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworkAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkAggregatedList.verify|verify} messages.
                     * @param message SubnetworkAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworkAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworkAggregatedList;

                    /**
                     * Decodes a SubnetworkAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworkAggregatedList;

                    /**
                     * Verifies a SubnetworkAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworkAggregatedList;

                    /**
                     * Creates a plain object from a SubnetworkAggregatedList message. Also converts values to other types if specified.
                     * @param message SubnetworkAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworkAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkList. */
                interface ISubnetworkList {

                    /** SubnetworkList id */
                    id?: (string|null);

                    /** SubnetworkList items */
                    items?: (google.cloud.compute.v1beta.ISubnetwork[]|null);

                    /** SubnetworkList kind */
                    kind?: (string|null);

                    /** SubnetworkList nextPageToken */
                    nextPageToken?: (string|null);

                    /** SubnetworkList selfLink */
                    selfLink?: (string|null);

                    /** SubnetworkList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SubnetworkList. */
                class SubnetworkList implements ISubnetworkList {

                    /**
                     * Constructs a new SubnetworkList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworkList);

                    /** SubnetworkList id. */
                    public id?: (string|null);

                    /** SubnetworkList items. */
                    public items: google.cloud.compute.v1beta.ISubnetwork[];

                    /** SubnetworkList kind. */
                    public kind?: (string|null);

                    /** SubnetworkList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** SubnetworkList selfLink. */
                    public selfLink?: (string|null);

                    /** SubnetworkList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SubnetworkList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworkList): google.cloud.compute.v1beta.SubnetworkList;

                    /**
                     * Encodes the specified SubnetworkList message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkList.verify|verify} messages.
                     * @param message SubnetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkList.verify|verify} messages.
                     * @param message SubnetworkList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworkList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworkList;

                    /**
                     * Decodes a SubnetworkList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworkList;

                    /**
                     * Verifies a SubnetworkList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworkList;

                    /**
                     * Creates a plain object from a SubnetworkList message. Also converts values to other types if specified.
                     * @param message SubnetworkList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworkList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkLogConfig. */
                interface ISubnetworkLogConfig {

                    /** SubnetworkLogConfig aggregationInterval */
                    aggregationInterval?: (string|null);

                    /** SubnetworkLogConfig enable */
                    enable?: (boolean|null);

                    /** SubnetworkLogConfig filterExpr */
                    filterExpr?: (string|null);

                    /** SubnetworkLogConfig flowSampling */
                    flowSampling?: (number|null);

                    /** SubnetworkLogConfig metadata */
                    metadata?: (string|null);

                    /** SubnetworkLogConfig metadataFields */
                    metadataFields?: (string[]|null);
                }

                /** Represents a SubnetworkLogConfig. */
                class SubnetworkLogConfig implements ISubnetworkLogConfig {

                    /**
                     * Constructs a new SubnetworkLogConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworkLogConfig);

                    /** SubnetworkLogConfig aggregationInterval. */
                    public aggregationInterval?: (string|null);

                    /** SubnetworkLogConfig enable. */
                    public enable?: (boolean|null);

                    /** SubnetworkLogConfig filterExpr. */
                    public filterExpr?: (string|null);

                    /** SubnetworkLogConfig flowSampling. */
                    public flowSampling?: (number|null);

                    /** SubnetworkLogConfig metadata. */
                    public metadata?: (string|null);

                    /** SubnetworkLogConfig metadataFields. */
                    public metadataFields: string[];

                    /**
                     * Creates a new SubnetworkLogConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkLogConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworkLogConfig): google.cloud.compute.v1beta.SubnetworkLogConfig;

                    /**
                     * Encodes the specified SubnetworkLogConfig message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkLogConfig.verify|verify} messages.
                     * @param message SubnetworkLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworkLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkLogConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkLogConfig.verify|verify} messages.
                     * @param message SubnetworkLogConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworkLogConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkLogConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworkLogConfig;

                    /**
                     * Decodes a SubnetworkLogConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkLogConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworkLogConfig;

                    /**
                     * Verifies a SubnetworkLogConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkLogConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkLogConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworkLogConfig;

                    /**
                     * Creates a plain object from a SubnetworkLogConfig message. Also converts values to other types if specified.
                     * @param message SubnetworkLogConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworkLogConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkLogConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkLogConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SubnetworkLogConfig {

                    /** AggregationInterval enum. */
                    enum AggregationInterval {
                        UNDEFINED_AGGREGATION_INTERVAL = 0,
                        INTERVAL_10_MIN = 487155916,
                        INTERVAL_15_MIN = 491773521,
                        INTERVAL_1_MIN = 69052714,
                        INTERVAL_30_SEC = 7548937,
                        INTERVAL_5_MIN = 72746798,
                        INTERVAL_5_SEC = 72752429
                    }

                    /** Metadata enum. */
                    enum Metadata {
                        UNDEFINED_METADATA = 0,
                        CUSTOM_METADATA = 62450749,
                        EXCLUDE_ALL_METADATA = 334519954,
                        INCLUDE_ALL_METADATA = 164619908
                    }
                }

                /** Properties of a SubnetworkParams. */
                interface ISubnetworkParams {

                    /** SubnetworkParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a SubnetworkParams. */
                class SubnetworkParams implements ISubnetworkParams {

                    /**
                     * Constructs a new SubnetworkParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworkParams);

                    /** SubnetworkParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new SubnetworkParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworkParams): google.cloud.compute.v1beta.SubnetworkParams;

                    /**
                     * Encodes the specified SubnetworkParams message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkParams.verify|verify} messages.
                     * @param message SubnetworkParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworkParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkParams.verify|verify} messages.
                     * @param message SubnetworkParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworkParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworkParams;

                    /**
                     * Decodes a SubnetworkParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworkParams;

                    /**
                     * Verifies a SubnetworkParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworkParams;

                    /**
                     * Creates a plain object from a SubnetworkParams message. Also converts values to other types if specified.
                     * @param message SubnetworkParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworkParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkSecondaryRange. */
                interface ISubnetworkSecondaryRange {

                    /** SubnetworkSecondaryRange ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** SubnetworkSecondaryRange rangeName */
                    rangeName?: (string|null);

                    /** SubnetworkSecondaryRange reservedInternalRange */
                    reservedInternalRange?: (string|null);
                }

                /** Represents a SubnetworkSecondaryRange. */
                class SubnetworkSecondaryRange implements ISubnetworkSecondaryRange {

                    /**
                     * Constructs a new SubnetworkSecondaryRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworkSecondaryRange);

                    /** SubnetworkSecondaryRange ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** SubnetworkSecondaryRange rangeName. */
                    public rangeName?: (string|null);

                    /** SubnetworkSecondaryRange reservedInternalRange. */
                    public reservedInternalRange?: (string|null);

                    /**
                     * Creates a new SubnetworkSecondaryRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkSecondaryRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworkSecondaryRange): google.cloud.compute.v1beta.SubnetworkSecondaryRange;

                    /**
                     * Encodes the specified SubnetworkSecondaryRange message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkSecondaryRange.verify|verify} messages.
                     * @param message SubnetworkSecondaryRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkSecondaryRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkSecondaryRange.verify|verify} messages.
                     * @param message SubnetworkSecondaryRange message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkSecondaryRange message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkSecondaryRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworkSecondaryRange;

                    /**
                     * Decodes a SubnetworkSecondaryRange message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkSecondaryRange
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworkSecondaryRange;

                    /**
                     * Verifies a SubnetworkSecondaryRange message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkSecondaryRange message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkSecondaryRange
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworkSecondaryRange;

                    /**
                     * Creates a plain object from a SubnetworkSecondaryRange message. Also converts values to other types if specified.
                     * @param message SubnetworkSecondaryRange
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworkSecondaryRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkSecondaryRange to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkSecondaryRange
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkUtilizationDetails. */
                interface ISubnetworkUtilizationDetails {

                    /** SubnetworkUtilizationDetails externalIpv6InstanceUtilization */
                    externalIpv6InstanceUtilization?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails externalIpv6LbUtilization */
                    externalIpv6LbUtilization?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails internalIpv6Utilization */
                    internalIpv6Utilization?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails ipv4Utilizations */
                    ipv4Utilizations?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV4Utilization[]|null);
                }

                /** Represents a SubnetworkUtilizationDetails. */
                class SubnetworkUtilizationDetails implements ISubnetworkUtilizationDetails {

                    /**
                     * Constructs a new SubnetworkUtilizationDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworkUtilizationDetails);

                    /** SubnetworkUtilizationDetails externalIpv6InstanceUtilization. */
                    public externalIpv6InstanceUtilization?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails externalIpv6LbUtilization. */
                    public externalIpv6LbUtilization?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails internalIpv6Utilization. */
                    public internalIpv6Utilization?: (google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization|null);

                    /** SubnetworkUtilizationDetails ipv4Utilizations. */
                    public ipv4Utilizations: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV4Utilization[];

                    /**
                     * Creates a new SubnetworkUtilizationDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkUtilizationDetails instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworkUtilizationDetails): google.cloud.compute.v1beta.SubnetworkUtilizationDetails;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetails message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkUtilizationDetails.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworkUtilizationDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetails message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkUtilizationDetails.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworkUtilizationDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkUtilizationDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkUtilizationDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworkUtilizationDetails;

                    /**
                     * Decodes a SubnetworkUtilizationDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkUtilizationDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworkUtilizationDetails;

                    /**
                     * Verifies a SubnetworkUtilizationDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkUtilizationDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkUtilizationDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworkUtilizationDetails;

                    /**
                     * Creates a plain object from a SubnetworkUtilizationDetails message. Also converts values to other types if specified.
                     * @param message SubnetworkUtilizationDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworkUtilizationDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkUtilizationDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkUtilizationDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkUtilizationDetailsIPV4Utilization. */
                interface ISubnetworkUtilizationDetailsIPV4Utilization {

                    /** SubnetworkUtilizationDetailsIPV4Utilization rangeName */
                    rangeName?: (string|null);

                    /** SubnetworkUtilizationDetailsIPV4Utilization totalAllocatedIp */
                    totalAllocatedIp?: (number|Long|string|null);

                    /** SubnetworkUtilizationDetailsIPV4Utilization totalFreeIp */
                    totalFreeIp?: (number|Long|string|null);
                }

                /** Represents a SubnetworkUtilizationDetailsIPV4Utilization. */
                class SubnetworkUtilizationDetailsIPV4Utilization implements ISubnetworkUtilizationDetailsIPV4Utilization {

                    /**
                     * Constructs a new SubnetworkUtilizationDetailsIPV4Utilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV4Utilization);

                    /** SubnetworkUtilizationDetailsIPV4Utilization rangeName. */
                    public rangeName?: (string|null);

                    /** SubnetworkUtilizationDetailsIPV4Utilization totalAllocatedIp. */
                    public totalAllocatedIp?: (number|Long|string|null);

                    /** SubnetworkUtilizationDetailsIPV4Utilization totalFreeIp. */
                    public totalFreeIp?: (number|Long|string|null);

                    /**
                     * Creates a new SubnetworkUtilizationDetailsIPV4Utilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkUtilizationDetailsIPV4Utilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV4Utilization): google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV4Utilization;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetailsIPV4Utilization message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV4Utilization.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetailsIPV4Utilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV4Utilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetailsIPV4Utilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV4Utilization.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetailsIPV4Utilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV4Utilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkUtilizationDetailsIPV4Utilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkUtilizationDetailsIPV4Utilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV4Utilization;

                    /**
                     * Decodes a SubnetworkUtilizationDetailsIPV4Utilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkUtilizationDetailsIPV4Utilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV4Utilization;

                    /**
                     * Verifies a SubnetworkUtilizationDetailsIPV4Utilization message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkUtilizationDetailsIPV4Utilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkUtilizationDetailsIPV4Utilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV4Utilization;

                    /**
                     * Creates a plain object from a SubnetworkUtilizationDetailsIPV4Utilization message. Also converts values to other types if specified.
                     * @param message SubnetworkUtilizationDetailsIPV4Utilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV4Utilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkUtilizationDetailsIPV4Utilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkUtilizationDetailsIPV4Utilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworkUtilizationDetailsIPV6Utilization. */
                interface ISubnetworkUtilizationDetailsIPV6Utilization {

                    /** SubnetworkUtilizationDetailsIPV6Utilization totalAllocatedIp */
                    totalAllocatedIp?: (google.cloud.compute.v1beta.IUint128|null);

                    /** SubnetworkUtilizationDetailsIPV6Utilization totalFreeIp */
                    totalFreeIp?: (google.cloud.compute.v1beta.IUint128|null);
                }

                /** Represents a SubnetworkUtilizationDetailsIPV6Utilization. */
                class SubnetworkUtilizationDetailsIPV6Utilization implements ISubnetworkUtilizationDetailsIPV6Utilization {

                    /**
                     * Constructs a new SubnetworkUtilizationDetailsIPV6Utilization.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization);

                    /** SubnetworkUtilizationDetailsIPV6Utilization totalAllocatedIp. */
                    public totalAllocatedIp?: (google.cloud.compute.v1beta.IUint128|null);

                    /** SubnetworkUtilizationDetailsIPV6Utilization totalFreeIp. */
                    public totalFreeIp?: (google.cloud.compute.v1beta.IUint128|null);

                    /**
                     * Creates a new SubnetworkUtilizationDetailsIPV6Utilization instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworkUtilizationDetailsIPV6Utilization instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization): google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV6Utilization;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetailsIPV6Utilization message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV6Utilization.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetailsIPV6Utilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworkUtilizationDetailsIPV6Utilization message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV6Utilization.verify|verify} messages.
                     * @param message SubnetworkUtilizationDetailsIPV6Utilization message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworkUtilizationDetailsIPV6Utilization, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworkUtilizationDetailsIPV6Utilization message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworkUtilizationDetailsIPV6Utilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV6Utilization;

                    /**
                     * Decodes a SubnetworkUtilizationDetailsIPV6Utilization message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworkUtilizationDetailsIPV6Utilization
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV6Utilization;

                    /**
                     * Verifies a SubnetworkUtilizationDetailsIPV6Utilization message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworkUtilizationDetailsIPV6Utilization message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworkUtilizationDetailsIPV6Utilization
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV6Utilization;

                    /**
                     * Creates a plain object from a SubnetworkUtilizationDetailsIPV6Utilization message. Also converts values to other types if specified.
                     * @param message SubnetworkUtilizationDetailsIPV6Utilization
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworkUtilizationDetailsIPV6Utilization, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworkUtilizationDetailsIPV6Utilization to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworkUtilizationDetailsIPV6Utilization
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworksExpandIpCidrRangeRequest. */
                interface ISubnetworksExpandIpCidrRangeRequest {

                    /** SubnetworksExpandIpCidrRangeRequest ipCidrRange */
                    ipCidrRange?: (string|null);
                }

                /** Represents a SubnetworksExpandIpCidrRangeRequest. */
                class SubnetworksExpandIpCidrRangeRequest implements ISubnetworksExpandIpCidrRangeRequest {

                    /**
                     * Constructs a new SubnetworksExpandIpCidrRangeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworksExpandIpCidrRangeRequest);

                    /** SubnetworksExpandIpCidrRangeRequest ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /**
                     * Creates a new SubnetworksExpandIpCidrRangeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworksExpandIpCidrRangeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworksExpandIpCidrRangeRequest): google.cloud.compute.v1beta.SubnetworksExpandIpCidrRangeRequest;

                    /**
                     * Encodes the specified SubnetworksExpandIpCidrRangeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworksExpandIpCidrRangeRequest.verify|verify} messages.
                     * @param message SubnetworksExpandIpCidrRangeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworksExpandIpCidrRangeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworksExpandIpCidrRangeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworksExpandIpCidrRangeRequest.verify|verify} messages.
                     * @param message SubnetworksExpandIpCidrRangeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworksExpandIpCidrRangeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworksExpandIpCidrRangeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworksExpandIpCidrRangeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworksExpandIpCidrRangeRequest;

                    /**
                     * Decodes a SubnetworksExpandIpCidrRangeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworksExpandIpCidrRangeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworksExpandIpCidrRangeRequest;

                    /**
                     * Verifies a SubnetworksExpandIpCidrRangeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworksExpandIpCidrRangeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworksExpandIpCidrRangeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworksExpandIpCidrRangeRequest;

                    /**
                     * Creates a plain object from a SubnetworksExpandIpCidrRangeRequest message. Also converts values to other types if specified.
                     * @param message SubnetworksExpandIpCidrRangeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworksExpandIpCidrRangeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworksExpandIpCidrRangeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworksExpandIpCidrRangeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworksScopedList. */
                interface ISubnetworksScopedList {

                    /** SubnetworksScopedList subnetworks */
                    subnetworks?: (google.cloud.compute.v1beta.ISubnetwork[]|null);

                    /** SubnetworksScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SubnetworksScopedList. */
                class SubnetworksScopedList implements ISubnetworksScopedList {

                    /**
                     * Constructs a new SubnetworksScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworksScopedList);

                    /** SubnetworksScopedList subnetworks. */
                    public subnetworks: google.cloud.compute.v1beta.ISubnetwork[];

                    /** SubnetworksScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SubnetworksScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworksScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworksScopedList): google.cloud.compute.v1beta.SubnetworksScopedList;

                    /**
                     * Encodes the specified SubnetworksScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworksScopedList.verify|verify} messages.
                     * @param message SubnetworksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworksScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworksScopedList.verify|verify} messages.
                     * @param message SubnetworksScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworksScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworksScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworksScopedList;

                    /**
                     * Decodes a SubnetworksScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworksScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworksScopedList;

                    /**
                     * Verifies a SubnetworksScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworksScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworksScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworksScopedList;

                    /**
                     * Creates a plain object from a SubnetworksScopedList message. Also converts values to other types if specified.
                     * @param message SubnetworksScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworksScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworksScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworksScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworksScopedWarning. */
                interface ISubnetworksScopedWarning {

                    /** SubnetworksScopedWarning scopeName */
                    scopeName?: (string|null);

                    /** SubnetworksScopedWarning warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a SubnetworksScopedWarning. */
                class SubnetworksScopedWarning implements ISubnetworksScopedWarning {

                    /**
                     * Constructs a new SubnetworksScopedWarning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworksScopedWarning);

                    /** SubnetworksScopedWarning scopeName. */
                    public scopeName?: (string|null);

                    /** SubnetworksScopedWarning warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new SubnetworksScopedWarning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworksScopedWarning instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworksScopedWarning): google.cloud.compute.v1beta.SubnetworksScopedWarning;

                    /**
                     * Encodes the specified SubnetworksScopedWarning message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworksScopedWarning.verify|verify} messages.
                     * @param message SubnetworksScopedWarning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworksScopedWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworksScopedWarning message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworksScopedWarning.verify|verify} messages.
                     * @param message SubnetworksScopedWarning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworksScopedWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworksScopedWarning message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworksScopedWarning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworksScopedWarning;

                    /**
                     * Decodes a SubnetworksScopedWarning message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworksScopedWarning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworksScopedWarning;

                    /**
                     * Verifies a SubnetworksScopedWarning message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworksScopedWarning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworksScopedWarning
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworksScopedWarning;

                    /**
                     * Creates a plain object from a SubnetworksScopedWarning message. Also converts values to other types if specified.
                     * @param message SubnetworksScopedWarning
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworksScopedWarning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworksScopedWarning to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworksScopedWarning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SubnetworksSetPrivateIpGoogleAccessRequest. */
                interface ISubnetworksSetPrivateIpGoogleAccessRequest {

                    /** SubnetworksSetPrivateIpGoogleAccessRequest privateIpGoogleAccess */
                    privateIpGoogleAccess?: (boolean|null);
                }

                /** Represents a SubnetworksSetPrivateIpGoogleAccessRequest. */
                class SubnetworksSetPrivateIpGoogleAccessRequest implements ISubnetworksSetPrivateIpGoogleAccessRequest {

                    /**
                     * Constructs a new SubnetworksSetPrivateIpGoogleAccessRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubnetworksSetPrivateIpGoogleAccessRequest);

                    /** SubnetworksSetPrivateIpGoogleAccessRequest privateIpGoogleAccess. */
                    public privateIpGoogleAccess?: (boolean|null);

                    /**
                     * Creates a new SubnetworksSetPrivateIpGoogleAccessRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SubnetworksSetPrivateIpGoogleAccessRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubnetworksSetPrivateIpGoogleAccessRequest): google.cloud.compute.v1beta.SubnetworksSetPrivateIpGoogleAccessRequest;

                    /**
                     * Encodes the specified SubnetworksSetPrivateIpGoogleAccessRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworksSetPrivateIpGoogleAccessRequest.verify|verify} messages.
                     * @param message SubnetworksSetPrivateIpGoogleAccessRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubnetworksSetPrivateIpGoogleAccessRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SubnetworksSetPrivateIpGoogleAccessRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SubnetworksSetPrivateIpGoogleAccessRequest.verify|verify} messages.
                     * @param message SubnetworksSetPrivateIpGoogleAccessRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubnetworksSetPrivateIpGoogleAccessRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SubnetworksSetPrivateIpGoogleAccessRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SubnetworksSetPrivateIpGoogleAccessRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SubnetworksSetPrivateIpGoogleAccessRequest;

                    /**
                     * Decodes a SubnetworksSetPrivateIpGoogleAccessRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SubnetworksSetPrivateIpGoogleAccessRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SubnetworksSetPrivateIpGoogleAccessRequest;

                    /**
                     * Verifies a SubnetworksSetPrivateIpGoogleAccessRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SubnetworksSetPrivateIpGoogleAccessRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SubnetworksSetPrivateIpGoogleAccessRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SubnetworksSetPrivateIpGoogleAccessRequest;

                    /**
                     * Creates a plain object from a SubnetworksSetPrivateIpGoogleAccessRequest message. Also converts values to other types if specified.
                     * @param message SubnetworksSetPrivateIpGoogleAccessRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SubnetworksSetPrivateIpGoogleAccessRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SubnetworksSetPrivateIpGoogleAccessRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SubnetworksSetPrivateIpGoogleAccessRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Subsetting. */
                interface ISubsetting {

                    /** Subsetting policy */
                    policy?: (string|null);

                    /** Subsetting subsetSize */
                    subsetSize?: (number|null);
                }

                /** Represents a Subsetting. */
                class Subsetting implements ISubsetting {

                    /**
                     * Constructs a new Subsetting.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISubsetting);

                    /** Subsetting policy. */
                    public policy?: (string|null);

                    /** Subsetting subsetSize. */
                    public subsetSize?: (number|null);

                    /**
                     * Creates a new Subsetting instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Subsetting instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISubsetting): google.cloud.compute.v1beta.Subsetting;

                    /**
                     * Encodes the specified Subsetting message. Does not implicitly {@link google.cloud.compute.v1beta.Subsetting.verify|verify} messages.
                     * @param message Subsetting message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISubsetting, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Subsetting message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Subsetting.verify|verify} messages.
                     * @param message Subsetting message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISubsetting, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Subsetting message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Subsetting
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Subsetting;

                    /**
                     * Decodes a Subsetting message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Subsetting
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Subsetting;

                    /**
                     * Verifies a Subsetting message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Subsetting message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Subsetting
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Subsetting;

                    /**
                     * Creates a plain object from a Subsetting message. Also converts values to other types if specified.
                     * @param message Subsetting
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Subsetting, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Subsetting to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Subsetting
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Subsetting {

                    /** Policy enum. */
                    enum Policy {
                        UNDEFINED_POLICY = 0,
                        CONSISTENT_HASH_SUBSETTING = 108989492,
                        NONE = 2402104
                    }
                }

                /** Properties of a SuspendInstanceRequest. */
                interface ISuspendInstanceRequest {

                    /** SuspendInstanceRequest discardLocalSsd */
                    discardLocalSsd?: (boolean|null);

                    /** SuspendInstanceRequest instance */
                    instance?: (string|null);

                    /** SuspendInstanceRequest project */
                    project?: (string|null);

                    /** SuspendInstanceRequest requestId */
                    requestId?: (string|null);

                    /** SuspendInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SuspendInstanceRequest. */
                class SuspendInstanceRequest implements ISuspendInstanceRequest {

                    /**
                     * Constructs a new SuspendInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISuspendInstanceRequest);

                    /** SuspendInstanceRequest discardLocalSsd. */
                    public discardLocalSsd?: (boolean|null);

                    /** SuspendInstanceRequest instance. */
                    public instance: string;

                    /** SuspendInstanceRequest project. */
                    public project: string;

                    /** SuspendInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** SuspendInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SuspendInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuspendInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISuspendInstanceRequest): google.cloud.compute.v1beta.SuspendInstanceRequest;

                    /**
                     * Encodes the specified SuspendInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SuspendInstanceRequest.verify|verify} messages.
                     * @param message SuspendInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISuspendInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuspendInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SuspendInstanceRequest.verify|verify} messages.
                     * @param message SuspendInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISuspendInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuspendInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuspendInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SuspendInstanceRequest;

                    /**
                     * Decodes a SuspendInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuspendInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SuspendInstanceRequest;

                    /**
                     * Verifies a SuspendInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SuspendInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuspendInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SuspendInstanceRequest;

                    /**
                     * Creates a plain object from a SuspendInstanceRequest message. Also converts values to other types if specified.
                     * @param message SuspendInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SuspendInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuspendInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuspendInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuspendInstancesInstanceGroupManagerRequest. */
                interface ISuspendInstancesInstanceGroupManagerRequest {

                    /** SuspendInstancesInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SuspendInstancesInstanceGroupManagerRequest instanceGroupManagersSuspendInstancesRequestResource */
                    instanceGroupManagersSuspendInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersSuspendInstancesRequest|null);

                    /** SuspendInstancesInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SuspendInstancesInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** SuspendInstancesInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a SuspendInstancesInstanceGroupManagerRequest. */
                class SuspendInstancesInstanceGroupManagerRequest implements ISuspendInstancesInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SuspendInstancesInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISuspendInstancesInstanceGroupManagerRequest);

                    /** SuspendInstancesInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SuspendInstancesInstanceGroupManagerRequest instanceGroupManagersSuspendInstancesRequestResource. */
                    public instanceGroupManagersSuspendInstancesRequestResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersSuspendInstancesRequest|null);

                    /** SuspendInstancesInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SuspendInstancesInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** SuspendInstancesInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new SuspendInstancesInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuspendInstancesInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISuspendInstancesInstanceGroupManagerRequest): google.cloud.compute.v1beta.SuspendInstancesInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SuspendInstancesInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SuspendInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SuspendInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISuspendInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuspendInstancesInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SuspendInstancesInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SuspendInstancesInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISuspendInstancesInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuspendInstancesInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuspendInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SuspendInstancesInstanceGroupManagerRequest;

                    /**
                     * Decodes a SuspendInstancesInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuspendInstancesInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SuspendInstancesInstanceGroupManagerRequest;

                    /**
                     * Verifies a SuspendInstancesInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SuspendInstancesInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuspendInstancesInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SuspendInstancesInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SuspendInstancesInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SuspendInstancesInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SuspendInstancesInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuspendInstancesInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuspendInstancesInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SuspendInstancesRegionInstanceGroupManagerRequest. */
                interface ISuspendInstancesRegionInstanceGroupManagerRequest {

                    /** SuspendInstancesRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersSuspendInstancesRequestResource */
                    regionInstanceGroupManagersSuspendInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersSuspendInstancesRequest|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SuspendInstancesRegionInstanceGroupManagerRequest. */
                class SuspendInstancesRegionInstanceGroupManagerRequest implements ISuspendInstancesRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new SuspendInstancesRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISuspendInstancesRegionInstanceGroupManagerRequest);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** SuspendInstancesRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** SuspendInstancesRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** SuspendInstancesRegionInstanceGroupManagerRequest regionInstanceGroupManagersSuspendInstancesRequestResource. */
                    public regionInstanceGroupManagersSuspendInstancesRequestResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagersSuspendInstancesRequest|null);

                    /** SuspendInstancesRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SuspendInstancesRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SuspendInstancesRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISuspendInstancesRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.SuspendInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified SuspendInstancesRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SuspendInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SuspendInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISuspendInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SuspendInstancesRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SuspendInstancesRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message SuspendInstancesRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISuspendInstancesRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SuspendInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SuspendInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SuspendInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a SuspendInstancesRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SuspendInstancesRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SuspendInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a SuspendInstancesRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SuspendInstancesRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SuspendInstancesRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SuspendInstancesRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a SuspendInstancesRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message SuspendInstancesRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SuspendInstancesRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SuspendInstancesRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SuspendInstancesRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SwitchToCustomModeNetworkRequest. */
                interface ISwitchToCustomModeNetworkRequest {

                    /** SwitchToCustomModeNetworkRequest network */
                    network?: (string|null);

                    /** SwitchToCustomModeNetworkRequest project */
                    project?: (string|null);

                    /** SwitchToCustomModeNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a SwitchToCustomModeNetworkRequest. */
                class SwitchToCustomModeNetworkRequest implements ISwitchToCustomModeNetworkRequest {

                    /**
                     * Constructs a new SwitchToCustomModeNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ISwitchToCustomModeNetworkRequest);

                    /** SwitchToCustomModeNetworkRequest network. */
                    public network: string;

                    /** SwitchToCustomModeNetworkRequest project. */
                    public project: string;

                    /** SwitchToCustomModeNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new SwitchToCustomModeNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SwitchToCustomModeNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ISwitchToCustomModeNetworkRequest): google.cloud.compute.v1beta.SwitchToCustomModeNetworkRequest;

                    /**
                     * Encodes the specified SwitchToCustomModeNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.SwitchToCustomModeNetworkRequest.verify|verify} messages.
                     * @param message SwitchToCustomModeNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ISwitchToCustomModeNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SwitchToCustomModeNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.SwitchToCustomModeNetworkRequest.verify|verify} messages.
                     * @param message SwitchToCustomModeNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ISwitchToCustomModeNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SwitchToCustomModeNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SwitchToCustomModeNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.SwitchToCustomModeNetworkRequest;

                    /**
                     * Decodes a SwitchToCustomModeNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SwitchToCustomModeNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.SwitchToCustomModeNetworkRequest;

                    /**
                     * Verifies a SwitchToCustomModeNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SwitchToCustomModeNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SwitchToCustomModeNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.SwitchToCustomModeNetworkRequest;

                    /**
                     * Creates a plain object from a SwitchToCustomModeNetworkRequest message. Also converts values to other types if specified.
                     * @param message SwitchToCustomModeNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.SwitchToCustomModeNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SwitchToCustomModeNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SwitchToCustomModeNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TCPHealthCheck. */
                interface ITCPHealthCheck {

                    /** TCPHealthCheck port */
                    port?: (number|null);

                    /** TCPHealthCheck portName */
                    portName?: (string|null);

                    /** TCPHealthCheck portSpecification */
                    portSpecification?: (string|null);

                    /** TCPHealthCheck proxyHeader */
                    proxyHeader?: (string|null);

                    /** TCPHealthCheck request */
                    request?: (string|null);

                    /** TCPHealthCheck response */
                    response?: (string|null);
                }

                /** Represents a TCPHealthCheck. */
                class TCPHealthCheck implements ITCPHealthCheck {

                    /**
                     * Constructs a new TCPHealthCheck.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITCPHealthCheck);

                    /** TCPHealthCheck port. */
                    public port?: (number|null);

                    /** TCPHealthCheck portName. */
                    public portName?: (string|null);

                    /** TCPHealthCheck portSpecification. */
                    public portSpecification?: (string|null);

                    /** TCPHealthCheck proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** TCPHealthCheck request. */
                    public request?: (string|null);

                    /** TCPHealthCheck response. */
                    public response?: (string|null);

                    /**
                     * Creates a new TCPHealthCheck instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TCPHealthCheck instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITCPHealthCheck): google.cloud.compute.v1beta.TCPHealthCheck;

                    /**
                     * Encodes the specified TCPHealthCheck message. Does not implicitly {@link google.cloud.compute.v1beta.TCPHealthCheck.verify|verify} messages.
                     * @param message TCPHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITCPHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TCPHealthCheck message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TCPHealthCheck.verify|verify} messages.
                     * @param message TCPHealthCheck message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITCPHealthCheck, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TCPHealthCheck message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TCPHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TCPHealthCheck;

                    /**
                     * Decodes a TCPHealthCheck message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TCPHealthCheck
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TCPHealthCheck;

                    /**
                     * Verifies a TCPHealthCheck message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TCPHealthCheck message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TCPHealthCheck
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TCPHealthCheck;

                    /**
                     * Creates a plain object from a TCPHealthCheck message. Also converts values to other types if specified.
                     * @param message TCPHealthCheck
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TCPHealthCheck, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TCPHealthCheck to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TCPHealthCheck
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TCPHealthCheck {

                    /** PortSpecification enum. */
                    enum PortSpecification {
                        UNDEFINED_PORT_SPECIFICATION = 0,
                        USE_FIXED_PORT = 190235748,
                        USE_NAMED_PORT = 349300671,
                        USE_SERVING_PORT = 362637516
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a Tags. */
                interface ITags {

                    /** Tags fingerprint */
                    fingerprint?: (string|null);

                    /** Tags items */
                    items?: (string[]|null);
                }

                /** Represents a Tags. */
                class Tags implements ITags {

                    /**
                     * Constructs a new Tags.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITags);

                    /** Tags fingerprint. */
                    public fingerprint?: (string|null);

                    /** Tags items. */
                    public items: string[];

                    /**
                     * Creates a new Tags instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Tags instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITags): google.cloud.compute.v1beta.Tags;

                    /**
                     * Encodes the specified Tags message. Does not implicitly {@link google.cloud.compute.v1beta.Tags.verify|verify} messages.
                     * @param message Tags message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITags, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Tags message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Tags.verify|verify} messages.
                     * @param message Tags message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITags, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Tags message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Tags
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Tags;

                    /**
                     * Decodes a Tags message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Tags
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Tags;

                    /**
                     * Verifies a Tags message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Tags message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Tags
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Tags;

                    /**
                     * Creates a plain object from a Tags message. Also converts values to other types if specified.
                     * @param message Tags
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Tags, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Tags to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Tags
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetGrpcProxy. */
                interface ITargetGrpcProxy {

                    /** TargetGrpcProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetGrpcProxy description */
                    description?: (string|null);

                    /** TargetGrpcProxy fingerprint */
                    fingerprint?: (string|null);

                    /** TargetGrpcProxy id */
                    id?: (number|Long|string|null);

                    /** TargetGrpcProxy kind */
                    kind?: (string|null);

                    /** TargetGrpcProxy name */
                    name?: (string|null);

                    /** TargetGrpcProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetGrpcProxy selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** TargetGrpcProxy urlMap */
                    urlMap?: (string|null);

                    /** TargetGrpcProxy validateForProxyless */
                    validateForProxyless?: (boolean|null);
                }

                /** Represents a TargetGrpcProxy. */
                class TargetGrpcProxy implements ITargetGrpcProxy {

                    /**
                     * Constructs a new TargetGrpcProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetGrpcProxy);

                    /** TargetGrpcProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetGrpcProxy description. */
                    public description?: (string|null);

                    /** TargetGrpcProxy fingerprint. */
                    public fingerprint?: (string|null);

                    /** TargetGrpcProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetGrpcProxy kind. */
                    public kind?: (string|null);

                    /** TargetGrpcProxy name. */
                    public name?: (string|null);

                    /** TargetGrpcProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetGrpcProxy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** TargetGrpcProxy urlMap. */
                    public urlMap?: (string|null);

                    /** TargetGrpcProxy validateForProxyless. */
                    public validateForProxyless?: (boolean|null);

                    /**
                     * Creates a new TargetGrpcProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetGrpcProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetGrpcProxy): google.cloud.compute.v1beta.TargetGrpcProxy;

                    /**
                     * Encodes the specified TargetGrpcProxy message. Does not implicitly {@link google.cloud.compute.v1beta.TargetGrpcProxy.verify|verify} messages.
                     * @param message TargetGrpcProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetGrpcProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetGrpcProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetGrpcProxy.verify|verify} messages.
                     * @param message TargetGrpcProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetGrpcProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetGrpcProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetGrpcProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetGrpcProxy;

                    /**
                     * Decodes a TargetGrpcProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetGrpcProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetGrpcProxy;

                    /**
                     * Verifies a TargetGrpcProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetGrpcProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetGrpcProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetGrpcProxy;

                    /**
                     * Creates a plain object from a TargetGrpcProxy message. Also converts values to other types if specified.
                     * @param message TargetGrpcProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetGrpcProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetGrpcProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetGrpcProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetGrpcProxyList. */
                interface ITargetGrpcProxyList {

                    /** TargetGrpcProxyList id */
                    id?: (string|null);

                    /** TargetGrpcProxyList items */
                    items?: (google.cloud.compute.v1beta.ITargetGrpcProxy[]|null);

                    /** TargetGrpcProxyList kind */
                    kind?: (string|null);

                    /** TargetGrpcProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetGrpcProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetGrpcProxyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetGrpcProxyList. */
                class TargetGrpcProxyList implements ITargetGrpcProxyList {

                    /**
                     * Constructs a new TargetGrpcProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetGrpcProxyList);

                    /** TargetGrpcProxyList id. */
                    public id?: (string|null);

                    /** TargetGrpcProxyList items. */
                    public items: google.cloud.compute.v1beta.ITargetGrpcProxy[];

                    /** TargetGrpcProxyList kind. */
                    public kind?: (string|null);

                    /** TargetGrpcProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetGrpcProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetGrpcProxyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetGrpcProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetGrpcProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetGrpcProxyList): google.cloud.compute.v1beta.TargetGrpcProxyList;

                    /**
                     * Encodes the specified TargetGrpcProxyList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetGrpcProxyList.verify|verify} messages.
                     * @param message TargetGrpcProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetGrpcProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetGrpcProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetGrpcProxyList.verify|verify} messages.
                     * @param message TargetGrpcProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetGrpcProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetGrpcProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetGrpcProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetGrpcProxyList;

                    /**
                     * Decodes a TargetGrpcProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetGrpcProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetGrpcProxyList;

                    /**
                     * Verifies a TargetGrpcProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetGrpcProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetGrpcProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetGrpcProxyList;

                    /**
                     * Creates a plain object from a TargetGrpcProxyList message. Also converts values to other types if specified.
                     * @param message TargetGrpcProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetGrpcProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetGrpcProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetGrpcProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpProxiesScopedList. */
                interface ITargetHttpProxiesScopedList {

                    /** TargetHttpProxiesScopedList targetHttpProxies */
                    targetHttpProxies?: (google.cloud.compute.v1beta.ITargetHttpProxy[]|null);

                    /** TargetHttpProxiesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetHttpProxiesScopedList. */
                class TargetHttpProxiesScopedList implements ITargetHttpProxiesScopedList {

                    /**
                     * Constructs a new TargetHttpProxiesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpProxiesScopedList);

                    /** TargetHttpProxiesScopedList targetHttpProxies. */
                    public targetHttpProxies: google.cloud.compute.v1beta.ITargetHttpProxy[];

                    /** TargetHttpProxiesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetHttpProxiesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpProxiesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpProxiesScopedList): google.cloud.compute.v1beta.TargetHttpProxiesScopedList;

                    /**
                     * Encodes the specified TargetHttpProxiesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpProxiesScopedList.verify|verify} messages.
                     * @param message TargetHttpProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpProxiesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpProxiesScopedList.verify|verify} messages.
                     * @param message TargetHttpProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpProxiesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpProxiesScopedList;

                    /**
                     * Decodes a TargetHttpProxiesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpProxiesScopedList;

                    /**
                     * Verifies a TargetHttpProxiesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpProxiesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpProxiesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpProxiesScopedList;

                    /**
                     * Creates a plain object from a TargetHttpProxiesScopedList message. Also converts values to other types if specified.
                     * @param message TargetHttpProxiesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpProxiesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpProxiesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpProxiesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpProxy. */
                interface ITargetHttpProxy {

                    /** TargetHttpProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetHttpProxy description */
                    description?: (string|null);

                    /** TargetHttpProxy fingerprint */
                    fingerprint?: (string|null);

                    /** TargetHttpProxy httpFilters */
                    httpFilters?: (string[]|null);

                    /** TargetHttpProxy httpKeepAliveTimeoutSec */
                    httpKeepAliveTimeoutSec?: (number|null);

                    /** TargetHttpProxy id */
                    id?: (number|Long|string|null);

                    /** TargetHttpProxy kind */
                    kind?: (string|null);

                    /** TargetHttpProxy name */
                    name?: (string|null);

                    /** TargetHttpProxy proxyBind */
                    proxyBind?: (boolean|null);

                    /** TargetHttpProxy region */
                    region?: (string|null);

                    /** TargetHttpProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpProxy urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a TargetHttpProxy. */
                class TargetHttpProxy implements ITargetHttpProxy {

                    /**
                     * Constructs a new TargetHttpProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpProxy);

                    /** TargetHttpProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetHttpProxy description. */
                    public description?: (string|null);

                    /** TargetHttpProxy fingerprint. */
                    public fingerprint?: (string|null);

                    /** TargetHttpProxy httpFilters. */
                    public httpFilters: string[];

                    /** TargetHttpProxy httpKeepAliveTimeoutSec. */
                    public httpKeepAliveTimeoutSec?: (number|null);

                    /** TargetHttpProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetHttpProxy kind. */
                    public kind?: (string|null);

                    /** TargetHttpProxy name. */
                    public name?: (string|null);

                    /** TargetHttpProxy proxyBind. */
                    public proxyBind?: (boolean|null);

                    /** TargetHttpProxy region. */
                    public region?: (string|null);

                    /** TargetHttpProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpProxy urlMap. */
                    public urlMap?: (string|null);

                    /**
                     * Creates a new TargetHttpProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpProxy): google.cloud.compute.v1beta.TargetHttpProxy;

                    /**
                     * Encodes the specified TargetHttpProxy message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpProxy.verify|verify} messages.
                     * @param message TargetHttpProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpProxy.verify|verify} messages.
                     * @param message TargetHttpProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpProxy;

                    /**
                     * Decodes a TargetHttpProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpProxy;

                    /**
                     * Verifies a TargetHttpProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpProxy;

                    /**
                     * Creates a plain object from a TargetHttpProxy message. Also converts values to other types if specified.
                     * @param message TargetHttpProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpProxyAggregatedList. */
                interface ITargetHttpProxyAggregatedList {

                    /** TargetHttpProxyAggregatedList id */
                    id?: (string|null);

                    /** TargetHttpProxyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ITargetHttpProxiesScopedList }|null);

                    /** TargetHttpProxyAggregatedList kind */
                    kind?: (string|null);

                    /** TargetHttpProxyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetHttpProxyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpProxyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetHttpProxyAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetHttpProxyAggregatedList. */
                class TargetHttpProxyAggregatedList implements ITargetHttpProxyAggregatedList {

                    /**
                     * Constructs a new TargetHttpProxyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpProxyAggregatedList);

                    /** TargetHttpProxyAggregatedList id. */
                    public id?: (string|null);

                    /** TargetHttpProxyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ITargetHttpProxiesScopedList };

                    /** TargetHttpProxyAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetHttpProxyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetHttpProxyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpProxyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetHttpProxyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetHttpProxyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpProxyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpProxyAggregatedList): google.cloud.compute.v1beta.TargetHttpProxyAggregatedList;

                    /**
                     * Encodes the specified TargetHttpProxyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpProxyAggregatedList.verify|verify} messages.
                     * @param message TargetHttpProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpProxyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpProxyAggregatedList.verify|verify} messages.
                     * @param message TargetHttpProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpProxyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpProxyAggregatedList;

                    /**
                     * Decodes a TargetHttpProxyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpProxyAggregatedList;

                    /**
                     * Verifies a TargetHttpProxyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpProxyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpProxyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpProxyAggregatedList;

                    /**
                     * Creates a plain object from a TargetHttpProxyAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetHttpProxyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpProxyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpProxyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpProxyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpProxyList. */
                interface ITargetHttpProxyList {

                    /** TargetHttpProxyList id */
                    id?: (string|null);

                    /** TargetHttpProxyList items */
                    items?: (google.cloud.compute.v1beta.ITargetHttpProxy[]|null);

                    /** TargetHttpProxyList kind */
                    kind?: (string|null);

                    /** TargetHttpProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetHttpProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpProxyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetHttpProxyList. */
                class TargetHttpProxyList implements ITargetHttpProxyList {

                    /**
                     * Constructs a new TargetHttpProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpProxyList);

                    /** TargetHttpProxyList id. */
                    public id?: (string|null);

                    /** TargetHttpProxyList items. */
                    public items: google.cloud.compute.v1beta.ITargetHttpProxy[];

                    /** TargetHttpProxyList kind. */
                    public kind?: (string|null);

                    /** TargetHttpProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetHttpProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpProxyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetHttpProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpProxyList): google.cloud.compute.v1beta.TargetHttpProxyList;

                    /**
                     * Encodes the specified TargetHttpProxyList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpProxyList.verify|verify} messages.
                     * @param message TargetHttpProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpProxyList.verify|verify} messages.
                     * @param message TargetHttpProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpProxyList;

                    /**
                     * Decodes a TargetHttpProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpProxyList;

                    /**
                     * Verifies a TargetHttpProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpProxyList;

                    /**
                     * Creates a plain object from a TargetHttpProxyList message. Also converts values to other types if specified.
                     * @param message TargetHttpProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxiesScopedList. */
                interface ITargetHttpsProxiesScopedList {

                    /** TargetHttpsProxiesScopedList targetHttpsProxies */
                    targetHttpsProxies?: (google.cloud.compute.v1beta.ITargetHttpsProxy[]|null);

                    /** TargetHttpsProxiesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetHttpsProxiesScopedList. */
                class TargetHttpsProxiesScopedList implements ITargetHttpsProxiesScopedList {

                    /**
                     * Constructs a new TargetHttpsProxiesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpsProxiesScopedList);

                    /** TargetHttpsProxiesScopedList targetHttpsProxies. */
                    public targetHttpsProxies: google.cloud.compute.v1beta.ITargetHttpsProxy[];

                    /** TargetHttpsProxiesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetHttpsProxiesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxiesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpsProxiesScopedList): google.cloud.compute.v1beta.TargetHttpsProxiesScopedList;

                    /**
                     * Encodes the specified TargetHttpsProxiesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxiesScopedList.verify|verify} messages.
                     * @param message TargetHttpsProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpsProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxiesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxiesScopedList.verify|verify} messages.
                     * @param message TargetHttpsProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpsProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxiesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpsProxiesScopedList;

                    /**
                     * Decodes a TargetHttpsProxiesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpsProxiesScopedList;

                    /**
                     * Verifies a TargetHttpsProxiesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxiesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxiesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpsProxiesScopedList;

                    /**
                     * Creates a plain object from a TargetHttpsProxiesScopedList message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxiesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpsProxiesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxiesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxiesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxiesSetCertificateMapRequest. */
                interface ITargetHttpsProxiesSetCertificateMapRequest {

                    /** TargetHttpsProxiesSetCertificateMapRequest certificateMap */
                    certificateMap?: (string|null);
                }

                /** Represents a TargetHttpsProxiesSetCertificateMapRequest. */
                class TargetHttpsProxiesSetCertificateMapRequest implements ITargetHttpsProxiesSetCertificateMapRequest {

                    /**
                     * Constructs a new TargetHttpsProxiesSetCertificateMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpsProxiesSetCertificateMapRequest);

                    /** TargetHttpsProxiesSetCertificateMapRequest certificateMap. */
                    public certificateMap?: (string|null);

                    /**
                     * Creates a new TargetHttpsProxiesSetCertificateMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxiesSetCertificateMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpsProxiesSetCertificateMapRequest): google.cloud.compute.v1beta.TargetHttpsProxiesSetCertificateMapRequest;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetCertificateMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxiesSetCertificateMapRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetCertificateMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpsProxiesSetCertificateMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetCertificateMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxiesSetCertificateMapRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetCertificateMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpsProxiesSetCertificateMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxiesSetCertificateMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxiesSetCertificateMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpsProxiesSetCertificateMapRequest;

                    /**
                     * Decodes a TargetHttpsProxiesSetCertificateMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxiesSetCertificateMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpsProxiesSetCertificateMapRequest;

                    /**
                     * Verifies a TargetHttpsProxiesSetCertificateMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxiesSetCertificateMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxiesSetCertificateMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpsProxiesSetCertificateMapRequest;

                    /**
                     * Creates a plain object from a TargetHttpsProxiesSetCertificateMapRequest message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxiesSetCertificateMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpsProxiesSetCertificateMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxiesSetCertificateMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxiesSetCertificateMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxiesSetQuicOverrideRequest. */
                interface ITargetHttpsProxiesSetQuicOverrideRequest {

                    /** TargetHttpsProxiesSetQuicOverrideRequest quicOverride */
                    quicOverride?: (string|null);
                }

                /** Represents a TargetHttpsProxiesSetQuicOverrideRequest. */
                class TargetHttpsProxiesSetQuicOverrideRequest implements ITargetHttpsProxiesSetQuicOverrideRequest {

                    /**
                     * Constructs a new TargetHttpsProxiesSetQuicOverrideRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpsProxiesSetQuicOverrideRequest);

                    /** TargetHttpsProxiesSetQuicOverrideRequest quicOverride. */
                    public quicOverride?: (string|null);

                    /**
                     * Creates a new TargetHttpsProxiesSetQuicOverrideRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxiesSetQuicOverrideRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpsProxiesSetQuicOverrideRequest): google.cloud.compute.v1beta.TargetHttpsProxiesSetQuicOverrideRequest;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetQuicOverrideRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxiesSetQuicOverrideRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetQuicOverrideRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpsProxiesSetQuicOverrideRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetQuicOverrideRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxiesSetQuicOverrideRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetQuicOverrideRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpsProxiesSetQuicOverrideRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxiesSetQuicOverrideRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxiesSetQuicOverrideRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpsProxiesSetQuicOverrideRequest;

                    /**
                     * Decodes a TargetHttpsProxiesSetQuicOverrideRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxiesSetQuicOverrideRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpsProxiesSetQuicOverrideRequest;

                    /**
                     * Verifies a TargetHttpsProxiesSetQuicOverrideRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxiesSetQuicOverrideRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxiesSetQuicOverrideRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpsProxiesSetQuicOverrideRequest;

                    /**
                     * Creates a plain object from a TargetHttpsProxiesSetQuicOverrideRequest message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxiesSetQuicOverrideRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpsProxiesSetQuicOverrideRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxiesSetQuicOverrideRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxiesSetQuicOverrideRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetHttpsProxiesSetQuicOverrideRequest {

                    /** QuicOverride enum. */
                    enum QuicOverride {
                        UNDEFINED_QUIC_OVERRIDE = 0,
                        DISABLE = 241807048,
                        ENABLE = 438835587,
                        NONE = 2402104
                    }
                }

                /** Properties of a TargetHttpsProxiesSetSslCertificatesRequest. */
                interface ITargetHttpsProxiesSetSslCertificatesRequest {

                    /** TargetHttpsProxiesSetSslCertificatesRequest sslCertificates */
                    sslCertificates?: (string[]|null);
                }

                /** Represents a TargetHttpsProxiesSetSslCertificatesRequest. */
                class TargetHttpsProxiesSetSslCertificatesRequest implements ITargetHttpsProxiesSetSslCertificatesRequest {

                    /**
                     * Constructs a new TargetHttpsProxiesSetSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpsProxiesSetSslCertificatesRequest);

                    /** TargetHttpsProxiesSetSslCertificatesRequest sslCertificates. */
                    public sslCertificates: string[];

                    /**
                     * Creates a new TargetHttpsProxiesSetSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxiesSetSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpsProxiesSetSslCertificatesRequest): google.cloud.compute.v1beta.TargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpsProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxiesSetSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message TargetHttpsProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpsProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxiesSetSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Decodes a TargetHttpsProxiesSetSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Verifies a TargetHttpsProxiesSetSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxiesSetSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxiesSetSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpsProxiesSetSslCertificatesRequest;

                    /**
                     * Creates a plain object from a TargetHttpsProxiesSetSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxiesSetSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpsProxiesSetSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxiesSetSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxiesSetSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxy. */
                interface ITargetHttpsProxy {

                    /** TargetHttpsProxy authentication */
                    authentication?: (string|null);

                    /** TargetHttpsProxy authorization */
                    authorization?: (string|null);

                    /** TargetHttpsProxy authorizationPolicy */
                    authorizationPolicy?: (string|null);

                    /** TargetHttpsProxy certificateMap */
                    certificateMap?: (string|null);

                    /** TargetHttpsProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetHttpsProxy description */
                    description?: (string|null);

                    /** TargetHttpsProxy fingerprint */
                    fingerprint?: (string|null);

                    /** TargetHttpsProxy httpFilters */
                    httpFilters?: (string[]|null);

                    /** TargetHttpsProxy httpKeepAliveTimeoutSec */
                    httpKeepAliveTimeoutSec?: (number|null);

                    /** TargetHttpsProxy id */
                    id?: (number|Long|string|null);

                    /** TargetHttpsProxy kind */
                    kind?: (string|null);

                    /** TargetHttpsProxy name */
                    name?: (string|null);

                    /** TargetHttpsProxy proxyBind */
                    proxyBind?: (boolean|null);

                    /** TargetHttpsProxy quicOverride */
                    quicOverride?: (string|null);

                    /** TargetHttpsProxy region */
                    region?: (string|null);

                    /** TargetHttpsProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpsProxy serverTlsPolicy */
                    serverTlsPolicy?: (string|null);

                    /** TargetHttpsProxy sslCertificates */
                    sslCertificates?: (string[]|null);

                    /** TargetHttpsProxy sslPolicy */
                    sslPolicy?: (string|null);

                    /** TargetHttpsProxy tlsEarlyData */
                    tlsEarlyData?: (string|null);

                    /** TargetHttpsProxy urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a TargetHttpsProxy. */
                class TargetHttpsProxy implements ITargetHttpsProxy {

                    /**
                     * Constructs a new TargetHttpsProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpsProxy);

                    /** TargetHttpsProxy authentication. */
                    public authentication?: (string|null);

                    /** TargetHttpsProxy authorization. */
                    public authorization?: (string|null);

                    /** TargetHttpsProxy authorizationPolicy. */
                    public authorizationPolicy?: (string|null);

                    /** TargetHttpsProxy certificateMap. */
                    public certificateMap?: (string|null);

                    /** TargetHttpsProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetHttpsProxy description. */
                    public description?: (string|null);

                    /** TargetHttpsProxy fingerprint. */
                    public fingerprint?: (string|null);

                    /** TargetHttpsProxy httpFilters. */
                    public httpFilters: string[];

                    /** TargetHttpsProxy httpKeepAliveTimeoutSec. */
                    public httpKeepAliveTimeoutSec?: (number|null);

                    /** TargetHttpsProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetHttpsProxy kind. */
                    public kind?: (string|null);

                    /** TargetHttpsProxy name. */
                    public name?: (string|null);

                    /** TargetHttpsProxy proxyBind. */
                    public proxyBind?: (boolean|null);

                    /** TargetHttpsProxy quicOverride. */
                    public quicOverride?: (string|null);

                    /** TargetHttpsProxy region. */
                    public region?: (string|null);

                    /** TargetHttpsProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpsProxy serverTlsPolicy. */
                    public serverTlsPolicy?: (string|null);

                    /** TargetHttpsProxy sslCertificates. */
                    public sslCertificates: string[];

                    /** TargetHttpsProxy sslPolicy. */
                    public sslPolicy?: (string|null);

                    /** TargetHttpsProxy tlsEarlyData. */
                    public tlsEarlyData?: (string|null);

                    /** TargetHttpsProxy urlMap. */
                    public urlMap?: (string|null);

                    /**
                     * Creates a new TargetHttpsProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpsProxy): google.cloud.compute.v1beta.TargetHttpsProxy;

                    /**
                     * Encodes the specified TargetHttpsProxy message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxy.verify|verify} messages.
                     * @param message TargetHttpsProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpsProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxy.verify|verify} messages.
                     * @param message TargetHttpsProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpsProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpsProxy;

                    /**
                     * Decodes a TargetHttpsProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpsProxy;

                    /**
                     * Verifies a TargetHttpsProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpsProxy;

                    /**
                     * Creates a plain object from a TargetHttpsProxy message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpsProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetHttpsProxy {

                    /** QuicOverride enum. */
                    enum QuicOverride {
                        UNDEFINED_QUIC_OVERRIDE = 0,
                        DISABLE = 241807048,
                        ENABLE = 438835587,
                        NONE = 2402104
                    }

                    /** TlsEarlyData enum. */
                    enum TlsEarlyData {
                        UNDEFINED_TLS_EARLY_DATA = 0,
                        DISABLED = 516696700,
                        PERMISSIVE = 504345247,
                        STRICT = 308826825,
                        UNRESTRICTED = 457266100
                    }
                }

                /** Properties of a TargetHttpsProxyAggregatedList. */
                interface ITargetHttpsProxyAggregatedList {

                    /** TargetHttpsProxyAggregatedList id */
                    id?: (string|null);

                    /** TargetHttpsProxyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ITargetHttpsProxiesScopedList }|null);

                    /** TargetHttpsProxyAggregatedList kind */
                    kind?: (string|null);

                    /** TargetHttpsProxyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetHttpsProxyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpsProxyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetHttpsProxyAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetHttpsProxyAggregatedList. */
                class TargetHttpsProxyAggregatedList implements ITargetHttpsProxyAggregatedList {

                    /**
                     * Constructs a new TargetHttpsProxyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpsProxyAggregatedList);

                    /** TargetHttpsProxyAggregatedList id. */
                    public id?: (string|null);

                    /** TargetHttpsProxyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ITargetHttpsProxiesScopedList };

                    /** TargetHttpsProxyAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetHttpsProxyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetHttpsProxyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpsProxyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetHttpsProxyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetHttpsProxyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpsProxyAggregatedList): google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList;

                    /**
                     * Encodes the specified TargetHttpsProxyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList.verify|verify} messages.
                     * @param message TargetHttpsProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpsProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList.verify|verify} messages.
                     * @param message TargetHttpsProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpsProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList;

                    /**
                     * Decodes a TargetHttpsProxyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList;

                    /**
                     * Verifies a TargetHttpsProxyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList;

                    /**
                     * Creates a plain object from a TargetHttpsProxyAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetHttpsProxyList. */
                interface ITargetHttpsProxyList {

                    /** TargetHttpsProxyList id */
                    id?: (string|null);

                    /** TargetHttpsProxyList items */
                    items?: (google.cloud.compute.v1beta.ITargetHttpsProxy[]|null);

                    /** TargetHttpsProxyList kind */
                    kind?: (string|null);

                    /** TargetHttpsProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetHttpsProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetHttpsProxyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetHttpsProxyList. */
                class TargetHttpsProxyList implements ITargetHttpsProxyList {

                    /**
                     * Constructs a new TargetHttpsProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetHttpsProxyList);

                    /** TargetHttpsProxyList id. */
                    public id?: (string|null);

                    /** TargetHttpsProxyList items. */
                    public items: google.cloud.compute.v1beta.ITargetHttpsProxy[];

                    /** TargetHttpsProxyList kind. */
                    public kind?: (string|null);

                    /** TargetHttpsProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetHttpsProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetHttpsProxyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetHttpsProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetHttpsProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetHttpsProxyList): google.cloud.compute.v1beta.TargetHttpsProxyList;

                    /**
                     * Encodes the specified TargetHttpsProxyList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxyList.verify|verify} messages.
                     * @param message TargetHttpsProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetHttpsProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetHttpsProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetHttpsProxyList.verify|verify} messages.
                     * @param message TargetHttpsProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetHttpsProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetHttpsProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetHttpsProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetHttpsProxyList;

                    /**
                     * Decodes a TargetHttpsProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetHttpsProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetHttpsProxyList;

                    /**
                     * Verifies a TargetHttpsProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetHttpsProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetHttpsProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetHttpsProxyList;

                    /**
                     * Creates a plain object from a TargetHttpsProxyList message. Also converts values to other types if specified.
                     * @param message TargetHttpsProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetHttpsProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetHttpsProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetHttpsProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetInstance. */
                interface ITargetInstance {

                    /** TargetInstance creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetInstance description */
                    description?: (string|null);

                    /** TargetInstance id */
                    id?: (number|Long|string|null);

                    /** TargetInstance instance */
                    instance?: (string|null);

                    /** TargetInstance kind */
                    kind?: (string|null);

                    /** TargetInstance name */
                    name?: (string|null);

                    /** TargetInstance natPolicy */
                    natPolicy?: (string|null);

                    /** TargetInstance network */
                    network?: (string|null);

                    /** TargetInstance securityPolicy */
                    securityPolicy?: (string|null);

                    /** TargetInstance selfLink */
                    selfLink?: (string|null);

                    /** TargetInstance zone */
                    zone?: (string|null);
                }

                /** Represents a TargetInstance. */
                class TargetInstance implements ITargetInstance {

                    /**
                     * Constructs a new TargetInstance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetInstance);

                    /** TargetInstance creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetInstance description. */
                    public description?: (string|null);

                    /** TargetInstance id. */
                    public id?: (number|Long|string|null);

                    /** TargetInstance instance. */
                    public instance?: (string|null);

                    /** TargetInstance kind. */
                    public kind?: (string|null);

                    /** TargetInstance name. */
                    public name?: (string|null);

                    /** TargetInstance natPolicy. */
                    public natPolicy?: (string|null);

                    /** TargetInstance network. */
                    public network?: (string|null);

                    /** TargetInstance securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** TargetInstance selfLink. */
                    public selfLink?: (string|null);

                    /** TargetInstance zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new TargetInstance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetInstance instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetInstance): google.cloud.compute.v1beta.TargetInstance;

                    /**
                     * Encodes the specified TargetInstance message. Does not implicitly {@link google.cloud.compute.v1beta.TargetInstance.verify|verify} messages.
                     * @param message TargetInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetInstance message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetInstance.verify|verify} messages.
                     * @param message TargetInstance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetInstance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetInstance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetInstance;

                    /**
                     * Decodes a TargetInstance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetInstance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetInstance;

                    /**
                     * Verifies a TargetInstance message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetInstance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetInstance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetInstance;

                    /**
                     * Creates a plain object from a TargetInstance message. Also converts values to other types if specified.
                     * @param message TargetInstance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetInstance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetInstance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetInstance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetInstance {

                    /** NatPolicy enum. */
                    enum NatPolicy {
                        UNDEFINED_NAT_POLICY = 0,
                        NO_NAT = 161455491
                    }
                }

                /** Properties of a TargetInstanceAggregatedList. */
                interface ITargetInstanceAggregatedList {

                    /** TargetInstanceAggregatedList id */
                    id?: (string|null);

                    /** TargetInstanceAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ITargetInstancesScopedList }|null);

                    /** TargetInstanceAggregatedList kind */
                    kind?: (string|null);

                    /** TargetInstanceAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetInstanceAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetInstanceAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetInstanceAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetInstanceAggregatedList. */
                class TargetInstanceAggregatedList implements ITargetInstanceAggregatedList {

                    /**
                     * Constructs a new TargetInstanceAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetInstanceAggregatedList);

                    /** TargetInstanceAggregatedList id. */
                    public id?: (string|null);

                    /** TargetInstanceAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ITargetInstancesScopedList };

                    /** TargetInstanceAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetInstanceAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetInstanceAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetInstanceAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetInstanceAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetInstanceAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetInstanceAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetInstanceAggregatedList): google.cloud.compute.v1beta.TargetInstanceAggregatedList;

                    /**
                     * Encodes the specified TargetInstanceAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetInstanceAggregatedList.verify|verify} messages.
                     * @param message TargetInstanceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetInstanceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetInstanceAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetInstanceAggregatedList.verify|verify} messages.
                     * @param message TargetInstanceAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetInstanceAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetInstanceAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetInstanceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetInstanceAggregatedList;

                    /**
                     * Decodes a TargetInstanceAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetInstanceAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetInstanceAggregatedList;

                    /**
                     * Verifies a TargetInstanceAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetInstanceAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetInstanceAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetInstanceAggregatedList;

                    /**
                     * Creates a plain object from a TargetInstanceAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetInstanceAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetInstanceAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetInstanceAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetInstanceAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetInstanceList. */
                interface ITargetInstanceList {

                    /** TargetInstanceList id */
                    id?: (string|null);

                    /** TargetInstanceList items */
                    items?: (google.cloud.compute.v1beta.ITargetInstance[]|null);

                    /** TargetInstanceList kind */
                    kind?: (string|null);

                    /** TargetInstanceList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetInstanceList selfLink */
                    selfLink?: (string|null);

                    /** TargetInstanceList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetInstanceList. */
                class TargetInstanceList implements ITargetInstanceList {

                    /**
                     * Constructs a new TargetInstanceList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetInstanceList);

                    /** TargetInstanceList id. */
                    public id?: (string|null);

                    /** TargetInstanceList items. */
                    public items: google.cloud.compute.v1beta.ITargetInstance[];

                    /** TargetInstanceList kind. */
                    public kind?: (string|null);

                    /** TargetInstanceList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetInstanceList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetInstanceList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetInstanceList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetInstanceList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetInstanceList): google.cloud.compute.v1beta.TargetInstanceList;

                    /**
                     * Encodes the specified TargetInstanceList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetInstanceList.verify|verify} messages.
                     * @param message TargetInstanceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetInstanceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetInstanceList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetInstanceList.verify|verify} messages.
                     * @param message TargetInstanceList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetInstanceList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetInstanceList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetInstanceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetInstanceList;

                    /**
                     * Decodes a TargetInstanceList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetInstanceList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetInstanceList;

                    /**
                     * Verifies a TargetInstanceList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetInstanceList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetInstanceList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetInstanceList;

                    /**
                     * Creates a plain object from a TargetInstanceList message. Also converts values to other types if specified.
                     * @param message TargetInstanceList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetInstanceList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetInstanceList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetInstanceList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetInstancesScopedList. */
                interface ITargetInstancesScopedList {

                    /** TargetInstancesScopedList targetInstances */
                    targetInstances?: (google.cloud.compute.v1beta.ITargetInstance[]|null);

                    /** TargetInstancesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetInstancesScopedList. */
                class TargetInstancesScopedList implements ITargetInstancesScopedList {

                    /**
                     * Constructs a new TargetInstancesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetInstancesScopedList);

                    /** TargetInstancesScopedList targetInstances. */
                    public targetInstances: google.cloud.compute.v1beta.ITargetInstance[];

                    /** TargetInstancesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetInstancesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetInstancesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetInstancesScopedList): google.cloud.compute.v1beta.TargetInstancesScopedList;

                    /**
                     * Encodes the specified TargetInstancesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetInstancesScopedList.verify|verify} messages.
                     * @param message TargetInstancesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetInstancesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetInstancesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetInstancesScopedList.verify|verify} messages.
                     * @param message TargetInstancesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetInstancesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetInstancesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetInstancesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetInstancesScopedList;

                    /**
                     * Decodes a TargetInstancesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetInstancesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetInstancesScopedList;

                    /**
                     * Verifies a TargetInstancesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetInstancesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetInstancesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetInstancesScopedList;

                    /**
                     * Creates a plain object from a TargetInstancesScopedList message. Also converts values to other types if specified.
                     * @param message TargetInstancesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetInstancesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetInstancesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetInstancesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPool. */
                interface ITargetPool {

                    /** TargetPool backupPool */
                    backupPool?: (string|null);

                    /** TargetPool creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetPool description */
                    description?: (string|null);

                    /** TargetPool failoverRatio */
                    failoverRatio?: (number|null);

                    /** TargetPool healthChecks */
                    healthChecks?: (string[]|null);

                    /** TargetPool id */
                    id?: (number|Long|string|null);

                    /** TargetPool instances */
                    instances?: (string[]|null);

                    /** TargetPool kind */
                    kind?: (string|null);

                    /** TargetPool name */
                    name?: (string|null);

                    /** TargetPool region */
                    region?: (string|null);

                    /** TargetPool securityPolicy */
                    securityPolicy?: (string|null);

                    /** TargetPool selfLink */
                    selfLink?: (string|null);

                    /** TargetPool sessionAffinity */
                    sessionAffinity?: (string|null);
                }

                /** Represents a TargetPool. */
                class TargetPool implements ITargetPool {

                    /**
                     * Constructs a new TargetPool.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPool);

                    /** TargetPool backupPool. */
                    public backupPool?: (string|null);

                    /** TargetPool creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetPool description. */
                    public description?: (string|null);

                    /** TargetPool failoverRatio. */
                    public failoverRatio?: (number|null);

                    /** TargetPool healthChecks. */
                    public healthChecks: string[];

                    /** TargetPool id. */
                    public id?: (number|Long|string|null);

                    /** TargetPool instances. */
                    public instances: string[];

                    /** TargetPool kind. */
                    public kind?: (string|null);

                    /** TargetPool name. */
                    public name?: (string|null);

                    /** TargetPool region. */
                    public region?: (string|null);

                    /** TargetPool securityPolicy. */
                    public securityPolicy?: (string|null);

                    /** TargetPool selfLink. */
                    public selfLink?: (string|null);

                    /** TargetPool sessionAffinity. */
                    public sessionAffinity?: (string|null);

                    /**
                     * Creates a new TargetPool instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPool instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPool): google.cloud.compute.v1beta.TargetPool;

                    /**
                     * Encodes the specified TargetPool message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPool.verify|verify} messages.
                     * @param message TargetPool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPool message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPool.verify|verify} messages.
                     * @param message TargetPool message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPool, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPool message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPool
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPool;

                    /**
                     * Decodes a TargetPool message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPool
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPool;

                    /**
                     * Verifies a TargetPool message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPool message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPool
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPool;

                    /**
                     * Creates a plain object from a TargetPool message. Also converts values to other types if specified.
                     * @param message TargetPool
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPool, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPool to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPool
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetPool {

                    /** SessionAffinity enum. */
                    enum SessionAffinity {
                        UNDEFINED_SESSION_AFFINITY = 0,
                        CLIENT_IP = 345665051,
                        CLIENT_IP_NO_DESTINATION = 106122516,
                        CLIENT_IP_PORT_PROTO = 221722926,
                        CLIENT_IP_PROTO = 25322148,
                        GENERATED_COOKIE = 370321204,
                        HEADER_FIELD = 200737960,
                        HTTP_COOKIE = 494981627,
                        NONE = 2402104,
                        STRONG_COOKIE_AFFINITY = 438628091
                    }
                }

                /** Properties of a TargetPoolAggregatedList. */
                interface ITargetPoolAggregatedList {

                    /** TargetPoolAggregatedList id */
                    id?: (string|null);

                    /** TargetPoolAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ITargetPoolsScopedList }|null);

                    /** TargetPoolAggregatedList kind */
                    kind?: (string|null);

                    /** TargetPoolAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetPoolAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetPoolAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetPoolAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetPoolAggregatedList. */
                class TargetPoolAggregatedList implements ITargetPoolAggregatedList {

                    /**
                     * Constructs a new TargetPoolAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPoolAggregatedList);

                    /** TargetPoolAggregatedList id. */
                    public id?: (string|null);

                    /** TargetPoolAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ITargetPoolsScopedList };

                    /** TargetPoolAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetPoolAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetPoolAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetPoolAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetPoolAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetPoolAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPoolAggregatedList): google.cloud.compute.v1beta.TargetPoolAggregatedList;

                    /**
                     * Encodes the specified TargetPoolAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolAggregatedList.verify|verify} messages.
                     * @param message TargetPoolAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPoolAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolAggregatedList.verify|verify} messages.
                     * @param message TargetPoolAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPoolAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPoolAggregatedList;

                    /**
                     * Decodes a TargetPoolAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPoolAggregatedList;

                    /**
                     * Verifies a TargetPoolAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPoolAggregatedList;

                    /**
                     * Creates a plain object from a TargetPoolAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetPoolAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPoolAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolInstanceHealth. */
                interface ITargetPoolInstanceHealth {

                    /** TargetPoolInstanceHealth healthStatus */
                    healthStatus?: (google.cloud.compute.v1beta.IHealthStatus[]|null);

                    /** TargetPoolInstanceHealth kind */
                    kind?: (string|null);
                }

                /** Represents a TargetPoolInstanceHealth. */
                class TargetPoolInstanceHealth implements ITargetPoolInstanceHealth {

                    /**
                     * Constructs a new TargetPoolInstanceHealth.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPoolInstanceHealth);

                    /** TargetPoolInstanceHealth healthStatus. */
                    public healthStatus: google.cloud.compute.v1beta.IHealthStatus[];

                    /** TargetPoolInstanceHealth kind. */
                    public kind?: (string|null);

                    /**
                     * Creates a new TargetPoolInstanceHealth instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolInstanceHealth instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPoolInstanceHealth): google.cloud.compute.v1beta.TargetPoolInstanceHealth;

                    /**
                     * Encodes the specified TargetPoolInstanceHealth message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolInstanceHealth.verify|verify} messages.
                     * @param message TargetPoolInstanceHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPoolInstanceHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolInstanceHealth message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolInstanceHealth.verify|verify} messages.
                     * @param message TargetPoolInstanceHealth message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPoolInstanceHealth, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolInstanceHealth message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolInstanceHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPoolInstanceHealth;

                    /**
                     * Decodes a TargetPoolInstanceHealth message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolInstanceHealth
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPoolInstanceHealth;

                    /**
                     * Verifies a TargetPoolInstanceHealth message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolInstanceHealth message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolInstanceHealth
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPoolInstanceHealth;

                    /**
                     * Creates a plain object from a TargetPoolInstanceHealth message. Also converts values to other types if specified.
                     * @param message TargetPoolInstanceHealth
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPoolInstanceHealth, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolInstanceHealth to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolInstanceHealth
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolList. */
                interface ITargetPoolList {

                    /** TargetPoolList id */
                    id?: (string|null);

                    /** TargetPoolList items */
                    items?: (google.cloud.compute.v1beta.ITargetPool[]|null);

                    /** TargetPoolList kind */
                    kind?: (string|null);

                    /** TargetPoolList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetPoolList selfLink */
                    selfLink?: (string|null);

                    /** TargetPoolList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetPoolList. */
                class TargetPoolList implements ITargetPoolList {

                    /**
                     * Constructs a new TargetPoolList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPoolList);

                    /** TargetPoolList id. */
                    public id?: (string|null);

                    /** TargetPoolList items. */
                    public items: google.cloud.compute.v1beta.ITargetPool[];

                    /** TargetPoolList kind. */
                    public kind?: (string|null);

                    /** TargetPoolList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetPoolList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetPoolList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetPoolList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPoolList): google.cloud.compute.v1beta.TargetPoolList;

                    /**
                     * Encodes the specified TargetPoolList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolList.verify|verify} messages.
                     * @param message TargetPoolList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPoolList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolList.verify|verify} messages.
                     * @param message TargetPoolList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPoolList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPoolList;

                    /**
                     * Decodes a TargetPoolList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPoolList;

                    /**
                     * Verifies a TargetPoolList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPoolList;

                    /**
                     * Creates a plain object from a TargetPoolList message. Also converts values to other types if specified.
                     * @param message TargetPoolList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPoolList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsAddHealthCheckRequest. */
                interface ITargetPoolsAddHealthCheckRequest {

                    /** TargetPoolsAddHealthCheckRequest healthChecks */
                    healthChecks?: (google.cloud.compute.v1beta.IHealthCheckReference[]|null);
                }

                /** Represents a TargetPoolsAddHealthCheckRequest. */
                class TargetPoolsAddHealthCheckRequest implements ITargetPoolsAddHealthCheckRequest {

                    /**
                     * Constructs a new TargetPoolsAddHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPoolsAddHealthCheckRequest);

                    /** TargetPoolsAddHealthCheckRequest healthChecks. */
                    public healthChecks: google.cloud.compute.v1beta.IHealthCheckReference[];

                    /**
                     * Creates a new TargetPoolsAddHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsAddHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPoolsAddHealthCheckRequest): google.cloud.compute.v1beta.TargetPoolsAddHealthCheckRequest;

                    /**
                     * Encodes the specified TargetPoolsAddHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsAddHealthCheckRequest.verify|verify} messages.
                     * @param message TargetPoolsAddHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPoolsAddHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsAddHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsAddHealthCheckRequest.verify|verify} messages.
                     * @param message TargetPoolsAddHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPoolsAddHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsAddHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsAddHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPoolsAddHealthCheckRequest;

                    /**
                     * Decodes a TargetPoolsAddHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsAddHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPoolsAddHealthCheckRequest;

                    /**
                     * Verifies a TargetPoolsAddHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsAddHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsAddHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPoolsAddHealthCheckRequest;

                    /**
                     * Creates a plain object from a TargetPoolsAddHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TargetPoolsAddHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPoolsAddHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsAddHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsAddHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsAddInstanceRequest. */
                interface ITargetPoolsAddInstanceRequest {

                    /** TargetPoolsAddInstanceRequest instances */
                    instances?: (google.cloud.compute.v1beta.IInstanceReference[]|null);
                }

                /** Represents a TargetPoolsAddInstanceRequest. */
                class TargetPoolsAddInstanceRequest implements ITargetPoolsAddInstanceRequest {

                    /**
                     * Constructs a new TargetPoolsAddInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPoolsAddInstanceRequest);

                    /** TargetPoolsAddInstanceRequest instances. */
                    public instances: google.cloud.compute.v1beta.IInstanceReference[];

                    /**
                     * Creates a new TargetPoolsAddInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsAddInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPoolsAddInstanceRequest): google.cloud.compute.v1beta.TargetPoolsAddInstanceRequest;

                    /**
                     * Encodes the specified TargetPoolsAddInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsAddInstanceRequest.verify|verify} messages.
                     * @param message TargetPoolsAddInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPoolsAddInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsAddInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsAddInstanceRequest.verify|verify} messages.
                     * @param message TargetPoolsAddInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPoolsAddInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsAddInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsAddInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPoolsAddInstanceRequest;

                    /**
                     * Decodes a TargetPoolsAddInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsAddInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPoolsAddInstanceRequest;

                    /**
                     * Verifies a TargetPoolsAddInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsAddInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsAddInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPoolsAddInstanceRequest;

                    /**
                     * Creates a plain object from a TargetPoolsAddInstanceRequest message. Also converts values to other types if specified.
                     * @param message TargetPoolsAddInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPoolsAddInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsAddInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsAddInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsRemoveHealthCheckRequest. */
                interface ITargetPoolsRemoveHealthCheckRequest {

                    /** TargetPoolsRemoveHealthCheckRequest healthChecks */
                    healthChecks?: (google.cloud.compute.v1beta.IHealthCheckReference[]|null);
                }

                /** Represents a TargetPoolsRemoveHealthCheckRequest. */
                class TargetPoolsRemoveHealthCheckRequest implements ITargetPoolsRemoveHealthCheckRequest {

                    /**
                     * Constructs a new TargetPoolsRemoveHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPoolsRemoveHealthCheckRequest);

                    /** TargetPoolsRemoveHealthCheckRequest healthChecks. */
                    public healthChecks: google.cloud.compute.v1beta.IHealthCheckReference[];

                    /**
                     * Creates a new TargetPoolsRemoveHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsRemoveHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPoolsRemoveHealthCheckRequest): google.cloud.compute.v1beta.TargetPoolsRemoveHealthCheckRequest;

                    /**
                     * Encodes the specified TargetPoolsRemoveHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsRemoveHealthCheckRequest.verify|verify} messages.
                     * @param message TargetPoolsRemoveHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPoolsRemoveHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsRemoveHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsRemoveHealthCheckRequest.verify|verify} messages.
                     * @param message TargetPoolsRemoveHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPoolsRemoveHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsRemoveHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsRemoveHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPoolsRemoveHealthCheckRequest;

                    /**
                     * Decodes a TargetPoolsRemoveHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsRemoveHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPoolsRemoveHealthCheckRequest;

                    /**
                     * Verifies a TargetPoolsRemoveHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsRemoveHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsRemoveHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPoolsRemoveHealthCheckRequest;

                    /**
                     * Creates a plain object from a TargetPoolsRemoveHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TargetPoolsRemoveHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPoolsRemoveHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsRemoveHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsRemoveHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsRemoveInstanceRequest. */
                interface ITargetPoolsRemoveInstanceRequest {

                    /** TargetPoolsRemoveInstanceRequest instances */
                    instances?: (google.cloud.compute.v1beta.IInstanceReference[]|null);
                }

                /** Represents a TargetPoolsRemoveInstanceRequest. */
                class TargetPoolsRemoveInstanceRequest implements ITargetPoolsRemoveInstanceRequest {

                    /**
                     * Constructs a new TargetPoolsRemoveInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPoolsRemoveInstanceRequest);

                    /** TargetPoolsRemoveInstanceRequest instances. */
                    public instances: google.cloud.compute.v1beta.IInstanceReference[];

                    /**
                     * Creates a new TargetPoolsRemoveInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsRemoveInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPoolsRemoveInstanceRequest): google.cloud.compute.v1beta.TargetPoolsRemoveInstanceRequest;

                    /**
                     * Encodes the specified TargetPoolsRemoveInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsRemoveInstanceRequest.verify|verify} messages.
                     * @param message TargetPoolsRemoveInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPoolsRemoveInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsRemoveInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsRemoveInstanceRequest.verify|verify} messages.
                     * @param message TargetPoolsRemoveInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPoolsRemoveInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsRemoveInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsRemoveInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPoolsRemoveInstanceRequest;

                    /**
                     * Decodes a TargetPoolsRemoveInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsRemoveInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPoolsRemoveInstanceRequest;

                    /**
                     * Verifies a TargetPoolsRemoveInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsRemoveInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsRemoveInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPoolsRemoveInstanceRequest;

                    /**
                     * Creates a plain object from a TargetPoolsRemoveInstanceRequest message. Also converts values to other types if specified.
                     * @param message TargetPoolsRemoveInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPoolsRemoveInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsRemoveInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsRemoveInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetPoolsScopedList. */
                interface ITargetPoolsScopedList {

                    /** TargetPoolsScopedList targetPools */
                    targetPools?: (google.cloud.compute.v1beta.ITargetPool[]|null);

                    /** TargetPoolsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetPoolsScopedList. */
                class TargetPoolsScopedList implements ITargetPoolsScopedList {

                    /**
                     * Constructs a new TargetPoolsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetPoolsScopedList);

                    /** TargetPoolsScopedList targetPools. */
                    public targetPools: google.cloud.compute.v1beta.ITargetPool[];

                    /** TargetPoolsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetPoolsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetPoolsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetPoolsScopedList): google.cloud.compute.v1beta.TargetPoolsScopedList;

                    /**
                     * Encodes the specified TargetPoolsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsScopedList.verify|verify} messages.
                     * @param message TargetPoolsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetPoolsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetPoolsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetPoolsScopedList.verify|verify} messages.
                     * @param message TargetPoolsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetPoolsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetPoolsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetPoolsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetPoolsScopedList;

                    /**
                     * Decodes a TargetPoolsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetPoolsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetPoolsScopedList;

                    /**
                     * Verifies a TargetPoolsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetPoolsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetPoolsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetPoolsScopedList;

                    /**
                     * Creates a plain object from a TargetPoolsScopedList message. Also converts values to other types if specified.
                     * @param message TargetPoolsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetPoolsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetPoolsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetPoolsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetReference. */
                interface ITargetReference {

                    /** TargetReference target */
                    target?: (string|null);
                }

                /** Represents a TargetReference. */
                class TargetReference implements ITargetReference {

                    /**
                     * Constructs a new TargetReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetReference);

                    /** TargetReference target. */
                    public target?: (string|null);

                    /**
                     * Creates a new TargetReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetReference): google.cloud.compute.v1beta.TargetReference;

                    /**
                     * Encodes the specified TargetReference message. Does not implicitly {@link google.cloud.compute.v1beta.TargetReference.verify|verify} messages.
                     * @param message TargetReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetReference.verify|verify} messages.
                     * @param message TargetReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetReference;

                    /**
                     * Decodes a TargetReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetReference;

                    /**
                     * Verifies a TargetReference message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetReference;

                    /**
                     * Creates a plain object from a TargetReference message. Also converts values to other types if specified.
                     * @param message TargetReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetSslProxiesSetBackendServiceRequest. */
                interface ITargetSslProxiesSetBackendServiceRequest {

                    /** TargetSslProxiesSetBackendServiceRequest service */
                    service?: (string|null);
                }

                /** Represents a TargetSslProxiesSetBackendServiceRequest. */
                class TargetSslProxiesSetBackendServiceRequest implements ITargetSslProxiesSetBackendServiceRequest {

                    /**
                     * Constructs a new TargetSslProxiesSetBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetSslProxiesSetBackendServiceRequest);

                    /** TargetSslProxiesSetBackendServiceRequest service. */
                    public service?: (string|null);

                    /**
                     * Creates a new TargetSslProxiesSetBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxiesSetBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetSslProxiesSetBackendServiceRequest): google.cloud.compute.v1beta.TargetSslProxiesSetBackendServiceRequest;

                    /**
                     * Encodes the specified TargetSslProxiesSetBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxiesSetBackendServiceRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetSslProxiesSetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxiesSetBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxiesSetBackendServiceRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetSslProxiesSetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxiesSetBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxiesSetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetSslProxiesSetBackendServiceRequest;

                    /**
                     * Decodes a TargetSslProxiesSetBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxiesSetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetSslProxiesSetBackendServiceRequest;

                    /**
                     * Verifies a TargetSslProxiesSetBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxiesSetBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxiesSetBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetSslProxiesSetBackendServiceRequest;

                    /**
                     * Creates a plain object from a TargetSslProxiesSetBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message TargetSslProxiesSetBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetSslProxiesSetBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxiesSetBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxiesSetBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetSslProxiesSetCertificateMapRequest. */
                interface ITargetSslProxiesSetCertificateMapRequest {

                    /** TargetSslProxiesSetCertificateMapRequest certificateMap */
                    certificateMap?: (string|null);
                }

                /** Represents a TargetSslProxiesSetCertificateMapRequest. */
                class TargetSslProxiesSetCertificateMapRequest implements ITargetSslProxiesSetCertificateMapRequest {

                    /**
                     * Constructs a new TargetSslProxiesSetCertificateMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetSslProxiesSetCertificateMapRequest);

                    /** TargetSslProxiesSetCertificateMapRequest certificateMap. */
                    public certificateMap?: (string|null);

                    /**
                     * Creates a new TargetSslProxiesSetCertificateMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxiesSetCertificateMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetSslProxiesSetCertificateMapRequest): google.cloud.compute.v1beta.TargetSslProxiesSetCertificateMapRequest;

                    /**
                     * Encodes the specified TargetSslProxiesSetCertificateMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxiesSetCertificateMapRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetCertificateMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetSslProxiesSetCertificateMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxiesSetCertificateMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxiesSetCertificateMapRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetCertificateMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetSslProxiesSetCertificateMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxiesSetCertificateMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxiesSetCertificateMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetSslProxiesSetCertificateMapRequest;

                    /**
                     * Decodes a TargetSslProxiesSetCertificateMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxiesSetCertificateMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetSslProxiesSetCertificateMapRequest;

                    /**
                     * Verifies a TargetSslProxiesSetCertificateMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxiesSetCertificateMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxiesSetCertificateMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetSslProxiesSetCertificateMapRequest;

                    /**
                     * Creates a plain object from a TargetSslProxiesSetCertificateMapRequest message. Also converts values to other types if specified.
                     * @param message TargetSslProxiesSetCertificateMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetSslProxiesSetCertificateMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxiesSetCertificateMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxiesSetCertificateMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetSslProxiesSetProxyHeaderRequest. */
                interface ITargetSslProxiesSetProxyHeaderRequest {

                    /** TargetSslProxiesSetProxyHeaderRequest proxyHeader */
                    proxyHeader?: (string|null);
                }

                /** Represents a TargetSslProxiesSetProxyHeaderRequest. */
                class TargetSslProxiesSetProxyHeaderRequest implements ITargetSslProxiesSetProxyHeaderRequest {

                    /**
                     * Constructs a new TargetSslProxiesSetProxyHeaderRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetSslProxiesSetProxyHeaderRequest);

                    /** TargetSslProxiesSetProxyHeaderRequest proxyHeader. */
                    public proxyHeader?: (string|null);

                    /**
                     * Creates a new TargetSslProxiesSetProxyHeaderRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxiesSetProxyHeaderRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetSslProxiesSetProxyHeaderRequest): google.cloud.compute.v1beta.TargetSslProxiesSetProxyHeaderRequest;

                    /**
                     * Encodes the specified TargetSslProxiesSetProxyHeaderRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxiesSetProxyHeaderRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetProxyHeaderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetSslProxiesSetProxyHeaderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxiesSetProxyHeaderRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxiesSetProxyHeaderRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetProxyHeaderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetSslProxiesSetProxyHeaderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxiesSetProxyHeaderRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxiesSetProxyHeaderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetSslProxiesSetProxyHeaderRequest;

                    /**
                     * Decodes a TargetSslProxiesSetProxyHeaderRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxiesSetProxyHeaderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetSslProxiesSetProxyHeaderRequest;

                    /**
                     * Verifies a TargetSslProxiesSetProxyHeaderRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxiesSetProxyHeaderRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxiesSetProxyHeaderRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetSslProxiesSetProxyHeaderRequest;

                    /**
                     * Creates a plain object from a TargetSslProxiesSetProxyHeaderRequest message. Also converts values to other types if specified.
                     * @param message TargetSslProxiesSetProxyHeaderRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetSslProxiesSetProxyHeaderRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxiesSetProxyHeaderRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxiesSetProxyHeaderRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetSslProxiesSetProxyHeaderRequest {

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a TargetSslProxiesSetSslCertificatesRequest. */
                interface ITargetSslProxiesSetSslCertificatesRequest {

                    /** TargetSslProxiesSetSslCertificatesRequest sslCertificates */
                    sslCertificates?: (string[]|null);
                }

                /** Represents a TargetSslProxiesSetSslCertificatesRequest. */
                class TargetSslProxiesSetSslCertificatesRequest implements ITargetSslProxiesSetSslCertificatesRequest {

                    /**
                     * Constructs a new TargetSslProxiesSetSslCertificatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetSslProxiesSetSslCertificatesRequest);

                    /** TargetSslProxiesSetSslCertificatesRequest sslCertificates. */
                    public sslCertificates: string[];

                    /**
                     * Creates a new TargetSslProxiesSetSslCertificatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxiesSetSslCertificatesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetSslProxiesSetSslCertificatesRequest): google.cloud.compute.v1beta.TargetSslProxiesSetSslCertificatesRequest;

                    /**
                     * Encodes the specified TargetSslProxiesSetSslCertificatesRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetSslProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxiesSetSslCertificatesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxiesSetSslCertificatesRequest.verify|verify} messages.
                     * @param message TargetSslProxiesSetSslCertificatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetSslProxiesSetSslCertificatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxiesSetSslCertificatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetSslProxiesSetSslCertificatesRequest;

                    /**
                     * Decodes a TargetSslProxiesSetSslCertificatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxiesSetSslCertificatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetSslProxiesSetSslCertificatesRequest;

                    /**
                     * Verifies a TargetSslProxiesSetSslCertificatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxiesSetSslCertificatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxiesSetSslCertificatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetSslProxiesSetSslCertificatesRequest;

                    /**
                     * Creates a plain object from a TargetSslProxiesSetSslCertificatesRequest message. Also converts values to other types if specified.
                     * @param message TargetSslProxiesSetSslCertificatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetSslProxiesSetSslCertificatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxiesSetSslCertificatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxiesSetSslCertificatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetSslProxy. */
                interface ITargetSslProxy {

                    /** TargetSslProxy certificateMap */
                    certificateMap?: (string|null);

                    /** TargetSslProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetSslProxy description */
                    description?: (string|null);

                    /** TargetSslProxy id */
                    id?: (number|Long|string|null);

                    /** TargetSslProxy kind */
                    kind?: (string|null);

                    /** TargetSslProxy name */
                    name?: (string|null);

                    /** TargetSslProxy proxyHeader */
                    proxyHeader?: (string|null);

                    /** TargetSslProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetSslProxy service */
                    service?: (string|null);

                    /** TargetSslProxy sslCertificates */
                    sslCertificates?: (string[]|null);

                    /** TargetSslProxy sslPolicy */
                    sslPolicy?: (string|null);
                }

                /** Represents a TargetSslProxy. */
                class TargetSslProxy implements ITargetSslProxy {

                    /**
                     * Constructs a new TargetSslProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetSslProxy);

                    /** TargetSslProxy certificateMap. */
                    public certificateMap?: (string|null);

                    /** TargetSslProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetSslProxy description. */
                    public description?: (string|null);

                    /** TargetSslProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetSslProxy kind. */
                    public kind?: (string|null);

                    /** TargetSslProxy name. */
                    public name?: (string|null);

                    /** TargetSslProxy proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** TargetSslProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetSslProxy service. */
                    public service?: (string|null);

                    /** TargetSslProxy sslCertificates. */
                    public sslCertificates: string[];

                    /** TargetSslProxy sslPolicy. */
                    public sslPolicy?: (string|null);

                    /**
                     * Creates a new TargetSslProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetSslProxy): google.cloud.compute.v1beta.TargetSslProxy;

                    /**
                     * Encodes the specified TargetSslProxy message. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxy.verify|verify} messages.
                     * @param message TargetSslProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetSslProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxy.verify|verify} messages.
                     * @param message TargetSslProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetSslProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetSslProxy;

                    /**
                     * Decodes a TargetSslProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetSslProxy;

                    /**
                     * Verifies a TargetSslProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetSslProxy;

                    /**
                     * Creates a plain object from a TargetSslProxy message. Also converts values to other types if specified.
                     * @param message TargetSslProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetSslProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetSslProxy {

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a TargetSslProxyList. */
                interface ITargetSslProxyList {

                    /** TargetSslProxyList id */
                    id?: (string|null);

                    /** TargetSslProxyList items */
                    items?: (google.cloud.compute.v1beta.ITargetSslProxy[]|null);

                    /** TargetSslProxyList kind */
                    kind?: (string|null);

                    /** TargetSslProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetSslProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetSslProxyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetSslProxyList. */
                class TargetSslProxyList implements ITargetSslProxyList {

                    /**
                     * Constructs a new TargetSslProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetSslProxyList);

                    /** TargetSslProxyList id. */
                    public id?: (string|null);

                    /** TargetSslProxyList items. */
                    public items: google.cloud.compute.v1beta.ITargetSslProxy[];

                    /** TargetSslProxyList kind. */
                    public kind?: (string|null);

                    /** TargetSslProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetSslProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetSslProxyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetSslProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetSslProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetSslProxyList): google.cloud.compute.v1beta.TargetSslProxyList;

                    /**
                     * Encodes the specified TargetSslProxyList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxyList.verify|verify} messages.
                     * @param message TargetSslProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetSslProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetSslProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetSslProxyList.verify|verify} messages.
                     * @param message TargetSslProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetSslProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetSslProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetSslProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetSslProxyList;

                    /**
                     * Decodes a TargetSslProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetSslProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetSslProxyList;

                    /**
                     * Verifies a TargetSslProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetSslProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetSslProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetSslProxyList;

                    /**
                     * Creates a plain object from a TargetSslProxyList message. Also converts values to other types if specified.
                     * @param message TargetSslProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetSslProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetSslProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetSslProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetTcpProxiesScopedList. */
                interface ITargetTcpProxiesScopedList {

                    /** TargetTcpProxiesScopedList targetTcpProxies */
                    targetTcpProxies?: (google.cloud.compute.v1beta.ITargetTcpProxy[]|null);

                    /** TargetTcpProxiesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetTcpProxiesScopedList. */
                class TargetTcpProxiesScopedList implements ITargetTcpProxiesScopedList {

                    /**
                     * Constructs a new TargetTcpProxiesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetTcpProxiesScopedList);

                    /** TargetTcpProxiesScopedList targetTcpProxies. */
                    public targetTcpProxies: google.cloud.compute.v1beta.ITargetTcpProxy[];

                    /** TargetTcpProxiesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetTcpProxiesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxiesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetTcpProxiesScopedList): google.cloud.compute.v1beta.TargetTcpProxiesScopedList;

                    /**
                     * Encodes the specified TargetTcpProxiesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxiesScopedList.verify|verify} messages.
                     * @param message TargetTcpProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetTcpProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxiesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxiesScopedList.verify|verify} messages.
                     * @param message TargetTcpProxiesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetTcpProxiesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxiesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetTcpProxiesScopedList;

                    /**
                     * Decodes a TargetTcpProxiesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxiesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetTcpProxiesScopedList;

                    /**
                     * Verifies a TargetTcpProxiesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxiesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxiesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetTcpProxiesScopedList;

                    /**
                     * Creates a plain object from a TargetTcpProxiesScopedList message. Also converts values to other types if specified.
                     * @param message TargetTcpProxiesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetTcpProxiesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxiesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxiesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetTcpProxiesSetBackendServiceRequest. */
                interface ITargetTcpProxiesSetBackendServiceRequest {

                    /** TargetTcpProxiesSetBackendServiceRequest service */
                    service?: (string|null);
                }

                /** Represents a TargetTcpProxiesSetBackendServiceRequest. */
                class TargetTcpProxiesSetBackendServiceRequest implements ITargetTcpProxiesSetBackendServiceRequest {

                    /**
                     * Constructs a new TargetTcpProxiesSetBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetTcpProxiesSetBackendServiceRequest);

                    /** TargetTcpProxiesSetBackendServiceRequest service. */
                    public service?: (string|null);

                    /**
                     * Creates a new TargetTcpProxiesSetBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxiesSetBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetTcpProxiesSetBackendServiceRequest): google.cloud.compute.v1beta.TargetTcpProxiesSetBackendServiceRequest;

                    /**
                     * Encodes the specified TargetTcpProxiesSetBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxiesSetBackendServiceRequest.verify|verify} messages.
                     * @param message TargetTcpProxiesSetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetTcpProxiesSetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxiesSetBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxiesSetBackendServiceRequest.verify|verify} messages.
                     * @param message TargetTcpProxiesSetBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetTcpProxiesSetBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxiesSetBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxiesSetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetTcpProxiesSetBackendServiceRequest;

                    /**
                     * Decodes a TargetTcpProxiesSetBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxiesSetBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetTcpProxiesSetBackendServiceRequest;

                    /**
                     * Verifies a TargetTcpProxiesSetBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxiesSetBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxiesSetBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetTcpProxiesSetBackendServiceRequest;

                    /**
                     * Creates a plain object from a TargetTcpProxiesSetBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message TargetTcpProxiesSetBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetTcpProxiesSetBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxiesSetBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxiesSetBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetTcpProxiesSetProxyHeaderRequest. */
                interface ITargetTcpProxiesSetProxyHeaderRequest {

                    /** TargetTcpProxiesSetProxyHeaderRequest proxyHeader */
                    proxyHeader?: (string|null);
                }

                /** Represents a TargetTcpProxiesSetProxyHeaderRequest. */
                class TargetTcpProxiesSetProxyHeaderRequest implements ITargetTcpProxiesSetProxyHeaderRequest {

                    /**
                     * Constructs a new TargetTcpProxiesSetProxyHeaderRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetTcpProxiesSetProxyHeaderRequest);

                    /** TargetTcpProxiesSetProxyHeaderRequest proxyHeader. */
                    public proxyHeader?: (string|null);

                    /**
                     * Creates a new TargetTcpProxiesSetProxyHeaderRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxiesSetProxyHeaderRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetTcpProxiesSetProxyHeaderRequest): google.cloud.compute.v1beta.TargetTcpProxiesSetProxyHeaderRequest;

                    /**
                     * Encodes the specified TargetTcpProxiesSetProxyHeaderRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxiesSetProxyHeaderRequest.verify|verify} messages.
                     * @param message TargetTcpProxiesSetProxyHeaderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetTcpProxiesSetProxyHeaderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxiesSetProxyHeaderRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxiesSetProxyHeaderRequest.verify|verify} messages.
                     * @param message TargetTcpProxiesSetProxyHeaderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetTcpProxiesSetProxyHeaderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxiesSetProxyHeaderRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxiesSetProxyHeaderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetTcpProxiesSetProxyHeaderRequest;

                    /**
                     * Decodes a TargetTcpProxiesSetProxyHeaderRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxiesSetProxyHeaderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetTcpProxiesSetProxyHeaderRequest;

                    /**
                     * Verifies a TargetTcpProxiesSetProxyHeaderRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxiesSetProxyHeaderRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxiesSetProxyHeaderRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetTcpProxiesSetProxyHeaderRequest;

                    /**
                     * Creates a plain object from a TargetTcpProxiesSetProxyHeaderRequest message. Also converts values to other types if specified.
                     * @param message TargetTcpProxiesSetProxyHeaderRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetTcpProxiesSetProxyHeaderRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxiesSetProxyHeaderRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxiesSetProxyHeaderRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetTcpProxiesSetProxyHeaderRequest {

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a TargetTcpProxy. */
                interface ITargetTcpProxy {

                    /** TargetTcpProxy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetTcpProxy description */
                    description?: (string|null);

                    /** TargetTcpProxy id */
                    id?: (number|Long|string|null);

                    /** TargetTcpProxy kind */
                    kind?: (string|null);

                    /** TargetTcpProxy loadBalancingScheme */
                    loadBalancingScheme?: (string|null);

                    /** TargetTcpProxy name */
                    name?: (string|null);

                    /** TargetTcpProxy proxyBind */
                    proxyBind?: (boolean|null);

                    /** TargetTcpProxy proxyHeader */
                    proxyHeader?: (string|null);

                    /** TargetTcpProxy region */
                    region?: (string|null);

                    /** TargetTcpProxy selfLink */
                    selfLink?: (string|null);

                    /** TargetTcpProxy service */
                    service?: (string|null);
                }

                /** Represents a TargetTcpProxy. */
                class TargetTcpProxy implements ITargetTcpProxy {

                    /**
                     * Constructs a new TargetTcpProxy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetTcpProxy);

                    /** TargetTcpProxy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetTcpProxy description. */
                    public description?: (string|null);

                    /** TargetTcpProxy id. */
                    public id?: (number|Long|string|null);

                    /** TargetTcpProxy kind. */
                    public kind?: (string|null);

                    /** TargetTcpProxy loadBalancingScheme. */
                    public loadBalancingScheme?: (string|null);

                    /** TargetTcpProxy name. */
                    public name?: (string|null);

                    /** TargetTcpProxy proxyBind. */
                    public proxyBind?: (boolean|null);

                    /** TargetTcpProxy proxyHeader. */
                    public proxyHeader?: (string|null);

                    /** TargetTcpProxy region. */
                    public region?: (string|null);

                    /** TargetTcpProxy selfLink. */
                    public selfLink?: (string|null);

                    /** TargetTcpProxy service. */
                    public service?: (string|null);

                    /**
                     * Creates a new TargetTcpProxy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetTcpProxy): google.cloud.compute.v1beta.TargetTcpProxy;

                    /**
                     * Encodes the specified TargetTcpProxy message. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxy.verify|verify} messages.
                     * @param message TargetTcpProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetTcpProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxy.verify|verify} messages.
                     * @param message TargetTcpProxy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetTcpProxy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetTcpProxy;

                    /**
                     * Decodes a TargetTcpProxy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetTcpProxy;

                    /**
                     * Verifies a TargetTcpProxy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetTcpProxy;

                    /**
                     * Creates a plain object from a TargetTcpProxy message. Also converts values to other types if specified.
                     * @param message TargetTcpProxy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetTcpProxy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetTcpProxy {

                    /** LoadBalancingScheme enum. */
                    enum LoadBalancingScheme {
                        UNDEFINED_LOAD_BALANCING_SCHEME = 0,
                        EXTERNAL = 35607499,
                        EXTERNAL_MANAGED = 512006923,
                        INTERNAL_MANAGED = 37350397
                    }

                    /** ProxyHeader enum. */
                    enum ProxyHeader {
                        UNDEFINED_PROXY_HEADER = 0,
                        NONE = 2402104,
                        PROXY_V1 = 334352940
                    }
                }

                /** Properties of a TargetTcpProxyAggregatedList. */
                interface ITargetTcpProxyAggregatedList {

                    /** TargetTcpProxyAggregatedList id */
                    id?: (string|null);

                    /** TargetTcpProxyAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ITargetTcpProxiesScopedList }|null);

                    /** TargetTcpProxyAggregatedList kind */
                    kind?: (string|null);

                    /** TargetTcpProxyAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetTcpProxyAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetTcpProxyAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetTcpProxyAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetTcpProxyAggregatedList. */
                class TargetTcpProxyAggregatedList implements ITargetTcpProxyAggregatedList {

                    /**
                     * Constructs a new TargetTcpProxyAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetTcpProxyAggregatedList);

                    /** TargetTcpProxyAggregatedList id. */
                    public id?: (string|null);

                    /** TargetTcpProxyAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ITargetTcpProxiesScopedList };

                    /** TargetTcpProxyAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetTcpProxyAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetTcpProxyAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetTcpProxyAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetTcpProxyAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetTcpProxyAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxyAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetTcpProxyAggregatedList): google.cloud.compute.v1beta.TargetTcpProxyAggregatedList;

                    /**
                     * Encodes the specified TargetTcpProxyAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxyAggregatedList.verify|verify} messages.
                     * @param message TargetTcpProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetTcpProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxyAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxyAggregatedList.verify|verify} messages.
                     * @param message TargetTcpProxyAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetTcpProxyAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxyAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetTcpProxyAggregatedList;

                    /**
                     * Decodes a TargetTcpProxyAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxyAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetTcpProxyAggregatedList;

                    /**
                     * Verifies a TargetTcpProxyAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxyAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxyAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetTcpProxyAggregatedList;

                    /**
                     * Creates a plain object from a TargetTcpProxyAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetTcpProxyAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetTcpProxyAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxyAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxyAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetTcpProxyList. */
                interface ITargetTcpProxyList {

                    /** TargetTcpProxyList id */
                    id?: (string|null);

                    /** TargetTcpProxyList items */
                    items?: (google.cloud.compute.v1beta.ITargetTcpProxy[]|null);

                    /** TargetTcpProxyList kind */
                    kind?: (string|null);

                    /** TargetTcpProxyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetTcpProxyList selfLink */
                    selfLink?: (string|null);

                    /** TargetTcpProxyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetTcpProxyList. */
                class TargetTcpProxyList implements ITargetTcpProxyList {

                    /**
                     * Constructs a new TargetTcpProxyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetTcpProxyList);

                    /** TargetTcpProxyList id. */
                    public id?: (string|null);

                    /** TargetTcpProxyList items. */
                    public items: google.cloud.compute.v1beta.ITargetTcpProxy[];

                    /** TargetTcpProxyList kind. */
                    public kind?: (string|null);

                    /** TargetTcpProxyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetTcpProxyList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetTcpProxyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetTcpProxyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetTcpProxyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetTcpProxyList): google.cloud.compute.v1beta.TargetTcpProxyList;

                    /**
                     * Encodes the specified TargetTcpProxyList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxyList.verify|verify} messages.
                     * @param message TargetTcpProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetTcpProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetTcpProxyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetTcpProxyList.verify|verify} messages.
                     * @param message TargetTcpProxyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetTcpProxyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetTcpProxyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetTcpProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetTcpProxyList;

                    /**
                     * Decodes a TargetTcpProxyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetTcpProxyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetTcpProxyList;

                    /**
                     * Verifies a TargetTcpProxyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetTcpProxyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetTcpProxyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetTcpProxyList;

                    /**
                     * Creates a plain object from a TargetTcpProxyList message. Also converts values to other types if specified.
                     * @param message TargetTcpProxyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetTcpProxyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetTcpProxyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetTcpProxyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetVpnGateway. */
                interface ITargetVpnGateway {

                    /** TargetVpnGateway creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** TargetVpnGateway description */
                    description?: (string|null);

                    /** TargetVpnGateway forwardingRules */
                    forwardingRules?: (string[]|null);

                    /** TargetVpnGateway id */
                    id?: (number|Long|string|null);

                    /** TargetVpnGateway kind */
                    kind?: (string|null);

                    /** TargetVpnGateway labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** TargetVpnGateway labels */
                    labels?: ({ [k: string]: string }|null);

                    /** TargetVpnGateway name */
                    name?: (string|null);

                    /** TargetVpnGateway network */
                    network?: (string|null);

                    /** TargetVpnGateway params */
                    params?: (google.cloud.compute.v1beta.ITargetVpnGatewayParams|null);

                    /** TargetVpnGateway region */
                    region?: (string|null);

                    /** TargetVpnGateway selfLink */
                    selfLink?: (string|null);

                    /** TargetVpnGateway status */
                    status?: (string|null);

                    /** TargetVpnGateway tunnels */
                    tunnels?: (string[]|null);
                }

                /** Represents a TargetVpnGateway. */
                class TargetVpnGateway implements ITargetVpnGateway {

                    /**
                     * Constructs a new TargetVpnGateway.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetVpnGateway);

                    /** TargetVpnGateway creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** TargetVpnGateway description. */
                    public description?: (string|null);

                    /** TargetVpnGateway forwardingRules. */
                    public forwardingRules: string[];

                    /** TargetVpnGateway id. */
                    public id?: (number|Long|string|null);

                    /** TargetVpnGateway kind. */
                    public kind?: (string|null);

                    /** TargetVpnGateway labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** TargetVpnGateway labels. */
                    public labels: { [k: string]: string };

                    /** TargetVpnGateway name. */
                    public name?: (string|null);

                    /** TargetVpnGateway network. */
                    public network?: (string|null);

                    /** TargetVpnGateway params. */
                    public params?: (google.cloud.compute.v1beta.ITargetVpnGatewayParams|null);

                    /** TargetVpnGateway region. */
                    public region?: (string|null);

                    /** TargetVpnGateway selfLink. */
                    public selfLink?: (string|null);

                    /** TargetVpnGateway status. */
                    public status?: (string|null);

                    /** TargetVpnGateway tunnels. */
                    public tunnels: string[];

                    /**
                     * Creates a new TargetVpnGateway instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGateway instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetVpnGateway): google.cloud.compute.v1beta.TargetVpnGateway;

                    /**
                     * Encodes the specified TargetVpnGateway message. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGateway.verify|verify} messages.
                     * @param message TargetVpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGateway message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGateway.verify|verify} messages.
                     * @param message TargetVpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGateway message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetVpnGateway;

                    /**
                     * Decodes a TargetVpnGateway message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetVpnGateway;

                    /**
                     * Verifies a TargetVpnGateway message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGateway message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGateway
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetVpnGateway;

                    /**
                     * Creates a plain object from a TargetVpnGateway message. Also converts values to other types if specified.
                     * @param message TargetVpnGateway
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetVpnGateway, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGateway to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGateway
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetVpnGateway {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        CREATING = 455564985,
                        DELETING = 528602024,
                        FAILED = 455706685,
                        READY = 77848963
                    }
                }

                /** Properties of a TargetVpnGatewayAggregatedList. */
                interface ITargetVpnGatewayAggregatedList {

                    /** TargetVpnGatewayAggregatedList id */
                    id?: (string|null);

                    /** TargetVpnGatewayAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.ITargetVpnGatewaysScopedList }|null);

                    /** TargetVpnGatewayAggregatedList kind */
                    kind?: (string|null);

                    /** TargetVpnGatewayAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetVpnGatewayAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** TargetVpnGatewayAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** TargetVpnGatewayAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetVpnGatewayAggregatedList. */
                class TargetVpnGatewayAggregatedList implements ITargetVpnGatewayAggregatedList {

                    /**
                     * Constructs a new TargetVpnGatewayAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetVpnGatewayAggregatedList);

                    /** TargetVpnGatewayAggregatedList id. */
                    public id?: (string|null);

                    /** TargetVpnGatewayAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.ITargetVpnGatewaysScopedList };

                    /** TargetVpnGatewayAggregatedList kind. */
                    public kind?: (string|null);

                    /** TargetVpnGatewayAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetVpnGatewayAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetVpnGatewayAggregatedList unreachables. */
                    public unreachables: string[];

                    /** TargetVpnGatewayAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetVpnGatewayAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGatewayAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetVpnGatewayAggregatedList): google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList;

                    /**
                     * Encodes the specified TargetVpnGatewayAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList.verify|verify} messages.
                     * @param message TargetVpnGatewayAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetVpnGatewayAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGatewayAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList.verify|verify} messages.
                     * @param message TargetVpnGatewayAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetVpnGatewayAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGatewayAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGatewayAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList;

                    /**
                     * Decodes a TargetVpnGatewayAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGatewayAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList;

                    /**
                     * Verifies a TargetVpnGatewayAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGatewayAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGatewayAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList;

                    /**
                     * Creates a plain object from a TargetVpnGatewayAggregatedList message. Also converts values to other types if specified.
                     * @param message TargetVpnGatewayAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGatewayAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGatewayAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetVpnGatewayList. */
                interface ITargetVpnGatewayList {

                    /** TargetVpnGatewayList id */
                    id?: (string|null);

                    /** TargetVpnGatewayList items */
                    items?: (google.cloud.compute.v1beta.ITargetVpnGateway[]|null);

                    /** TargetVpnGatewayList kind */
                    kind?: (string|null);

                    /** TargetVpnGatewayList nextPageToken */
                    nextPageToken?: (string|null);

                    /** TargetVpnGatewayList selfLink */
                    selfLink?: (string|null);

                    /** TargetVpnGatewayList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetVpnGatewayList. */
                class TargetVpnGatewayList implements ITargetVpnGatewayList {

                    /**
                     * Constructs a new TargetVpnGatewayList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetVpnGatewayList);

                    /** TargetVpnGatewayList id. */
                    public id?: (string|null);

                    /** TargetVpnGatewayList items. */
                    public items: google.cloud.compute.v1beta.ITargetVpnGateway[];

                    /** TargetVpnGatewayList kind. */
                    public kind?: (string|null);

                    /** TargetVpnGatewayList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** TargetVpnGatewayList selfLink. */
                    public selfLink?: (string|null);

                    /** TargetVpnGatewayList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetVpnGatewayList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGatewayList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetVpnGatewayList): google.cloud.compute.v1beta.TargetVpnGatewayList;

                    /**
                     * Encodes the specified TargetVpnGatewayList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGatewayList.verify|verify} messages.
                     * @param message TargetVpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGatewayList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGatewayList.verify|verify} messages.
                     * @param message TargetVpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGatewayList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetVpnGatewayList;

                    /**
                     * Decodes a TargetVpnGatewayList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetVpnGatewayList;

                    /**
                     * Verifies a TargetVpnGatewayList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGatewayList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGatewayList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetVpnGatewayList;

                    /**
                     * Creates a plain object from a TargetVpnGatewayList message. Also converts values to other types if specified.
                     * @param message TargetVpnGatewayList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetVpnGatewayList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGatewayList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGatewayList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetVpnGatewayParams. */
                interface ITargetVpnGatewayParams {

                    /** TargetVpnGatewayParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a TargetVpnGatewayParams. */
                class TargetVpnGatewayParams implements ITargetVpnGatewayParams {

                    /**
                     * Constructs a new TargetVpnGatewayParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetVpnGatewayParams);

                    /** TargetVpnGatewayParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new TargetVpnGatewayParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGatewayParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetVpnGatewayParams): google.cloud.compute.v1beta.TargetVpnGatewayParams;

                    /**
                     * Encodes the specified TargetVpnGatewayParams message. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGatewayParams.verify|verify} messages.
                     * @param message TargetVpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGatewayParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGatewayParams.verify|verify} messages.
                     * @param message TargetVpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGatewayParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetVpnGatewayParams;

                    /**
                     * Decodes a TargetVpnGatewayParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetVpnGatewayParams;

                    /**
                     * Verifies a TargetVpnGatewayParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGatewayParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGatewayParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetVpnGatewayParams;

                    /**
                     * Creates a plain object from a TargetVpnGatewayParams message. Also converts values to other types if specified.
                     * @param message TargetVpnGatewayParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetVpnGatewayParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGatewayParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGatewayParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TargetVpnGatewaysScopedList. */
                interface ITargetVpnGatewaysScopedList {

                    /** TargetVpnGatewaysScopedList targetVpnGateways */
                    targetVpnGateways?: (google.cloud.compute.v1beta.ITargetVpnGateway[]|null);

                    /** TargetVpnGatewaysScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a TargetVpnGatewaysScopedList. */
                class TargetVpnGatewaysScopedList implements ITargetVpnGatewaysScopedList {

                    /**
                     * Constructs a new TargetVpnGatewaysScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITargetVpnGatewaysScopedList);

                    /** TargetVpnGatewaysScopedList targetVpnGateways. */
                    public targetVpnGateways: google.cloud.compute.v1beta.ITargetVpnGateway[];

                    /** TargetVpnGatewaysScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new TargetVpnGatewaysScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetVpnGatewaysScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITargetVpnGatewaysScopedList): google.cloud.compute.v1beta.TargetVpnGatewaysScopedList;

                    /**
                     * Encodes the specified TargetVpnGatewaysScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGatewaysScopedList.verify|verify} messages.
                     * @param message TargetVpnGatewaysScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITargetVpnGatewaysScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetVpnGatewaysScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TargetVpnGatewaysScopedList.verify|verify} messages.
                     * @param message TargetVpnGatewaysScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITargetVpnGatewaysScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetVpnGatewaysScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetVpnGatewaysScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TargetVpnGatewaysScopedList;

                    /**
                     * Decodes a TargetVpnGatewaysScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetVpnGatewaysScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TargetVpnGatewaysScopedList;

                    /**
                     * Verifies a TargetVpnGatewaysScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetVpnGatewaysScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetVpnGatewaysScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TargetVpnGatewaysScopedList;

                    /**
                     * Creates a plain object from a TargetVpnGatewaysScopedList message. Also converts values to other types if specified.
                     * @param message TargetVpnGatewaysScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TargetVpnGatewaysScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetVpnGatewaysScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetVpnGatewaysScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestFailure. */
                interface ITestFailure {

                    /** TestFailure actualOutputUrl */
                    actualOutputUrl?: (string|null);

                    /** TestFailure actualRedirectResponseCode */
                    actualRedirectResponseCode?: (number|null);

                    /** TestFailure actualService */
                    actualService?: (string|null);

                    /** TestFailure expectedOutputUrl */
                    expectedOutputUrl?: (string|null);

                    /** TestFailure expectedRedirectResponseCode */
                    expectedRedirectResponseCode?: (number|null);

                    /** TestFailure expectedService */
                    expectedService?: (string|null);

                    /** TestFailure headers */
                    headers?: (google.cloud.compute.v1beta.IUrlMapTestHeader[]|null);

                    /** TestFailure host */
                    host?: (string|null);

                    /** TestFailure path */
                    path?: (string|null);
                }

                /** Represents a TestFailure. */
                class TestFailure implements ITestFailure {

                    /**
                     * Constructs a new TestFailure.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestFailure);

                    /** TestFailure actualOutputUrl. */
                    public actualOutputUrl?: (string|null);

                    /** TestFailure actualRedirectResponseCode. */
                    public actualRedirectResponseCode?: (number|null);

                    /** TestFailure actualService. */
                    public actualService?: (string|null);

                    /** TestFailure expectedOutputUrl. */
                    public expectedOutputUrl?: (string|null);

                    /** TestFailure expectedRedirectResponseCode. */
                    public expectedRedirectResponseCode?: (number|null);

                    /** TestFailure expectedService. */
                    public expectedService?: (string|null);

                    /** TestFailure headers. */
                    public headers: google.cloud.compute.v1beta.IUrlMapTestHeader[];

                    /** TestFailure host. */
                    public host?: (string|null);

                    /** TestFailure path. */
                    public path?: (string|null);

                    /**
                     * Creates a new TestFailure instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestFailure instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestFailure): google.cloud.compute.v1beta.TestFailure;

                    /**
                     * Encodes the specified TestFailure message. Does not implicitly {@link google.cloud.compute.v1beta.TestFailure.verify|verify} messages.
                     * @param message TestFailure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestFailure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestFailure message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestFailure.verify|verify} messages.
                     * @param message TestFailure message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestFailure, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestFailure message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestFailure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestFailure;

                    /**
                     * Decodes a TestFailure message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestFailure
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestFailure;

                    /**
                     * Verifies a TestFailure message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestFailure message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestFailure
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestFailure;

                    /**
                     * Creates a plain object from a TestFailure message. Also converts values to other types if specified.
                     * @param message TestFailure
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestFailure, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestFailure to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestFailure
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsAddressRequest. */
                interface ITestIamPermissionsAddressRequest {

                    /** TestIamPermissionsAddressRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsAddressRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsAddressRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsAddressRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsAddressRequest. */
                class TestIamPermissionsAddressRequest implements ITestIamPermissionsAddressRequest {

                    /**
                     * Constructs a new TestIamPermissionsAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsAddressRequest);

                    /** TestIamPermissionsAddressRequest project. */
                    public project: string;

                    /** TestIamPermissionsAddressRequest region. */
                    public region: string;

                    /** TestIamPermissionsAddressRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsAddressRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsAddressRequest): google.cloud.compute.v1beta.TestIamPermissionsAddressRequest;

                    /**
                     * Encodes the specified TestIamPermissionsAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsAddressRequest.verify|verify} messages.
                     * @param message TestIamPermissionsAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsAddressRequest.verify|verify} messages.
                     * @param message TestIamPermissionsAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsAddressRequest;

                    /**
                     * Decodes a TestIamPermissionsAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsAddressRequest;

                    /**
                     * Verifies a TestIamPermissionsAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsAddressRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsAddressRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsAutoscalerRequest. */
                interface ITestIamPermissionsAutoscalerRequest {

                    /** TestIamPermissionsAutoscalerRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsAutoscalerRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsAutoscalerRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsAutoscalerRequest. */
                class TestIamPermissionsAutoscalerRequest implements ITestIamPermissionsAutoscalerRequest {

                    /**
                     * Constructs a new TestIamPermissionsAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsAutoscalerRequest);

                    /** TestIamPermissionsAutoscalerRequest project. */
                    public project: string;

                    /** TestIamPermissionsAutoscalerRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsAutoscalerRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsAutoscalerRequest): google.cloud.compute.v1beta.TestIamPermissionsAutoscalerRequest;

                    /**
                     * Encodes the specified TestIamPermissionsAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsAutoscalerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsAutoscalerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsAutoscalerRequest;

                    /**
                     * Decodes a TestIamPermissionsAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsAutoscalerRequest;

                    /**
                     * Verifies a TestIamPermissionsAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsAutoscalerRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsBackendBucketRequest. */
                interface ITestIamPermissionsBackendBucketRequest {

                    /** TestIamPermissionsBackendBucketRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsBackendBucketRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsBackendBucketRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsBackendBucketRequest. */
                class TestIamPermissionsBackendBucketRequest implements ITestIamPermissionsBackendBucketRequest {

                    /**
                     * Constructs a new TestIamPermissionsBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsBackendBucketRequest);

                    /** TestIamPermissionsBackendBucketRequest project. */
                    public project: string;

                    /** TestIamPermissionsBackendBucketRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsBackendBucketRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsBackendBucketRequest): google.cloud.compute.v1beta.TestIamPermissionsBackendBucketRequest;

                    /**
                     * Encodes the specified TestIamPermissionsBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsBackendBucketRequest.verify|verify} messages.
                     * @param message TestIamPermissionsBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsBackendBucketRequest.verify|verify} messages.
                     * @param message TestIamPermissionsBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsBackendBucketRequest;

                    /**
                     * Decodes a TestIamPermissionsBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsBackendBucketRequest;

                    /**
                     * Verifies a TestIamPermissionsBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsBackendBucketRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsBackendServiceRequest. */
                interface ITestIamPermissionsBackendServiceRequest {

                    /** TestIamPermissionsBackendServiceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsBackendServiceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsBackendServiceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsBackendServiceRequest. */
                class TestIamPermissionsBackendServiceRequest implements ITestIamPermissionsBackendServiceRequest {

                    /**
                     * Constructs a new TestIamPermissionsBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsBackendServiceRequest);

                    /** TestIamPermissionsBackendServiceRequest project. */
                    public project: string;

                    /** TestIamPermissionsBackendServiceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsBackendServiceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsBackendServiceRequest): google.cloud.compute.v1beta.TestIamPermissionsBackendServiceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsBackendServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsBackendServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsBackendServiceRequest;

                    /**
                     * Decodes a TestIamPermissionsBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsBackendServiceRequest;

                    /**
                     * Verifies a TestIamPermissionsBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsBackendServiceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsDiskRequest. */
                interface ITestIamPermissionsDiskRequest {

                    /** TestIamPermissionsDiskRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsDiskRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsDiskRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsDiskRequest. */
                class TestIamPermissionsDiskRequest implements ITestIamPermissionsDiskRequest {

                    /**
                     * Constructs a new TestIamPermissionsDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsDiskRequest);

                    /** TestIamPermissionsDiskRequest project. */
                    public project: string;

                    /** TestIamPermissionsDiskRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsDiskRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsDiskRequest): google.cloud.compute.v1beta.TestIamPermissionsDiskRequest;

                    /**
                     * Encodes the specified TestIamPermissionsDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsDiskRequest.verify|verify} messages.
                     * @param message TestIamPermissionsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsDiskRequest.verify|verify} messages.
                     * @param message TestIamPermissionsDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsDiskRequest;

                    /**
                     * Decodes a TestIamPermissionsDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsDiskRequest;

                    /**
                     * Verifies a TestIamPermissionsDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsDiskRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsDiskRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsExternalVpnGatewayRequest. */
                interface ITestIamPermissionsExternalVpnGatewayRequest {

                    /** TestIamPermissionsExternalVpnGatewayRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsExternalVpnGatewayRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsExternalVpnGatewayRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsExternalVpnGatewayRequest. */
                class TestIamPermissionsExternalVpnGatewayRequest implements ITestIamPermissionsExternalVpnGatewayRequest {

                    /**
                     * Constructs a new TestIamPermissionsExternalVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsExternalVpnGatewayRequest);

                    /** TestIamPermissionsExternalVpnGatewayRequest project. */
                    public project: string;

                    /** TestIamPermissionsExternalVpnGatewayRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsExternalVpnGatewayRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsExternalVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsExternalVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsExternalVpnGatewayRequest): google.cloud.compute.v1beta.TestIamPermissionsExternalVpnGatewayRequest;

                    /**
                     * Encodes the specified TestIamPermissionsExternalVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsExternalVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsExternalVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsExternalVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsExternalVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsExternalVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsExternalVpnGatewayRequest;

                    /**
                     * Decodes a TestIamPermissionsExternalVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsExternalVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsExternalVpnGatewayRequest;

                    /**
                     * Verifies a TestIamPermissionsExternalVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsExternalVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsExternalVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsExternalVpnGatewayRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsExternalVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsExternalVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsExternalVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsExternalVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsExternalVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsFirewallPolicyRequest. */
                interface ITestIamPermissionsFirewallPolicyRequest {

                    /** TestIamPermissionsFirewallPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsFirewallPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsFirewallPolicyRequest. */
                class TestIamPermissionsFirewallPolicyRequest implements ITestIamPermissionsFirewallPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsFirewallPolicyRequest);

                    /** TestIamPermissionsFirewallPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsFirewallPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsFirewallPolicyRequest): google.cloud.compute.v1beta.TestIamPermissionsFirewallPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsFirewallPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsFirewallPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsFirewallRequest. */
                interface ITestIamPermissionsFirewallRequest {

                    /** TestIamPermissionsFirewallRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsFirewallRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsFirewallRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsFirewallRequest. */
                class TestIamPermissionsFirewallRequest implements ITestIamPermissionsFirewallRequest {

                    /**
                     * Constructs a new TestIamPermissionsFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsFirewallRequest);

                    /** TestIamPermissionsFirewallRequest project. */
                    public project: string;

                    /** TestIamPermissionsFirewallRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsFirewallRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsFirewallRequest): google.cloud.compute.v1beta.TestIamPermissionsFirewallRequest;

                    /**
                     * Encodes the specified TestIamPermissionsFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsFirewallRequest.verify|verify} messages.
                     * @param message TestIamPermissionsFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsFirewallRequest.verify|verify} messages.
                     * @param message TestIamPermissionsFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsFirewallRequest;

                    /**
                     * Decodes a TestIamPermissionsFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsFirewallRequest;

                    /**
                     * Verifies a TestIamPermissionsFirewallRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsFirewallRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsFirewallRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsForwardingRuleRequest. */
                interface ITestIamPermissionsForwardingRuleRequest {

                    /** TestIamPermissionsForwardingRuleRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsForwardingRuleRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsForwardingRuleRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsForwardingRuleRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsForwardingRuleRequest. */
                class TestIamPermissionsForwardingRuleRequest implements ITestIamPermissionsForwardingRuleRequest {

                    /**
                     * Constructs a new TestIamPermissionsForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsForwardingRuleRequest);

                    /** TestIamPermissionsForwardingRuleRequest project. */
                    public project: string;

                    /** TestIamPermissionsForwardingRuleRequest region. */
                    public region: string;

                    /** TestIamPermissionsForwardingRuleRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsForwardingRuleRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsForwardingRuleRequest): google.cloud.compute.v1beta.TestIamPermissionsForwardingRuleRequest;

                    /**
                     * Encodes the specified TestIamPermissionsForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsForwardingRuleRequest.verify|verify} messages.
                     * @param message TestIamPermissionsForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsForwardingRuleRequest.verify|verify} messages.
                     * @param message TestIamPermissionsForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsForwardingRuleRequest;

                    /**
                     * Decodes a TestIamPermissionsForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsForwardingRuleRequest;

                    /**
                     * Verifies a TestIamPermissionsForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsForwardingRuleRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsGlobalAddressRequest. */
                interface ITestIamPermissionsGlobalAddressRequest {

                    /** TestIamPermissionsGlobalAddressRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsGlobalAddressRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsGlobalAddressRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsGlobalAddressRequest. */
                class TestIamPermissionsGlobalAddressRequest implements ITestIamPermissionsGlobalAddressRequest {

                    /**
                     * Constructs a new TestIamPermissionsGlobalAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsGlobalAddressRequest);

                    /** TestIamPermissionsGlobalAddressRequest project. */
                    public project: string;

                    /** TestIamPermissionsGlobalAddressRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsGlobalAddressRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsGlobalAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsGlobalAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsGlobalAddressRequest): google.cloud.compute.v1beta.TestIamPermissionsGlobalAddressRequest;

                    /**
                     * Encodes the specified TestIamPermissionsGlobalAddressRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsGlobalAddressRequest.verify|verify} messages.
                     * @param message TestIamPermissionsGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsGlobalAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsGlobalAddressRequest.verify|verify} messages.
                     * @param message TestIamPermissionsGlobalAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsGlobalAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsGlobalAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsGlobalAddressRequest;

                    /**
                     * Decodes a TestIamPermissionsGlobalAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsGlobalAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsGlobalAddressRequest;

                    /**
                     * Verifies a TestIamPermissionsGlobalAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsGlobalAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsGlobalAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsGlobalAddressRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsGlobalAddressRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsGlobalAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsGlobalAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsGlobalAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsGlobalAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsGlobalForwardingRuleRequest. */
                interface ITestIamPermissionsGlobalForwardingRuleRequest {

                    /** TestIamPermissionsGlobalForwardingRuleRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsGlobalForwardingRuleRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsGlobalForwardingRuleRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsGlobalForwardingRuleRequest. */
                class TestIamPermissionsGlobalForwardingRuleRequest implements ITestIamPermissionsGlobalForwardingRuleRequest {

                    /**
                     * Constructs a new TestIamPermissionsGlobalForwardingRuleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsGlobalForwardingRuleRequest);

                    /** TestIamPermissionsGlobalForwardingRuleRequest project. */
                    public project: string;

                    /** TestIamPermissionsGlobalForwardingRuleRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsGlobalForwardingRuleRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsGlobalForwardingRuleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsGlobalForwardingRuleRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsGlobalForwardingRuleRequest): google.cloud.compute.v1beta.TestIamPermissionsGlobalForwardingRuleRequest;

                    /**
                     * Encodes the specified TestIamPermissionsGlobalForwardingRuleRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message TestIamPermissionsGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsGlobalForwardingRuleRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsGlobalForwardingRuleRequest.verify|verify} messages.
                     * @param message TestIamPermissionsGlobalForwardingRuleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsGlobalForwardingRuleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsGlobalForwardingRuleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsGlobalForwardingRuleRequest;

                    /**
                     * Decodes a TestIamPermissionsGlobalForwardingRuleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsGlobalForwardingRuleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsGlobalForwardingRuleRequest;

                    /**
                     * Verifies a TestIamPermissionsGlobalForwardingRuleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsGlobalForwardingRuleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsGlobalForwardingRuleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsGlobalForwardingRuleRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsGlobalForwardingRuleRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsGlobalForwardingRuleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsGlobalForwardingRuleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsGlobalForwardingRuleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsGlobalForwardingRuleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsHealthCheckRequest. */
                interface ITestIamPermissionsHealthCheckRequest {

                    /** TestIamPermissionsHealthCheckRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsHealthCheckRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsHealthCheckRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsHealthCheckRequest. */
                class TestIamPermissionsHealthCheckRequest implements ITestIamPermissionsHealthCheckRequest {

                    /**
                     * Constructs a new TestIamPermissionsHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsHealthCheckRequest);

                    /** TestIamPermissionsHealthCheckRequest project. */
                    public project: string;

                    /** TestIamPermissionsHealthCheckRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsHealthCheckRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsHealthCheckRequest): google.cloud.compute.v1beta.TestIamPermissionsHealthCheckRequest;

                    /**
                     * Encodes the specified TestIamPermissionsHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsHealthCheckRequest;

                    /**
                     * Decodes a TestIamPermissionsHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsHealthCheckRequest;

                    /**
                     * Verifies a TestIamPermissionsHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsHealthCheckRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsImageRequest. */
                interface ITestIamPermissionsImageRequest {

                    /** TestIamPermissionsImageRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsImageRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsImageRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsImageRequest. */
                class TestIamPermissionsImageRequest implements ITestIamPermissionsImageRequest {

                    /**
                     * Constructs a new TestIamPermissionsImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsImageRequest);

                    /** TestIamPermissionsImageRequest project. */
                    public project: string;

                    /** TestIamPermissionsImageRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsImageRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsImageRequest): google.cloud.compute.v1beta.TestIamPermissionsImageRequest;

                    /**
                     * Encodes the specified TestIamPermissionsImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsImageRequest.verify|verify} messages.
                     * @param message TestIamPermissionsImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsImageRequest.verify|verify} messages.
                     * @param message TestIamPermissionsImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsImageRequest;

                    /**
                     * Decodes a TestIamPermissionsImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsImageRequest;

                    /**
                     * Verifies a TestIamPermissionsImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsImageRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsImageRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstanceGroupManagerRequest. */
                interface ITestIamPermissionsInstanceGroupManagerRequest {

                    /** TestIamPermissionsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstanceGroupManagerRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstanceGroupManagerRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsInstanceGroupManagerRequest. */
                class TestIamPermissionsInstanceGroupManagerRequest implements ITestIamPermissionsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupManagerRequest);

                    /** TestIamPermissionsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstanceGroupManagerRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstanceGroupManagerRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupManagerRequest): google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupManagerRequest;

                    /**
                     * Decodes a TestIamPermissionsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupManagerRequest;

                    /**
                     * Verifies a TestIamPermissionsInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstanceGroupRequest. */
                interface ITestIamPermissionsInstanceGroupRequest {

                    /** TestIamPermissionsInstanceGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstanceGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstanceGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsInstanceGroupRequest. */
                class TestIamPermissionsInstanceGroupRequest implements ITestIamPermissionsInstanceGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupRequest);

                    /** TestIamPermissionsInstanceGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstanceGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstanceGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstanceRequest. */
                interface ITestIamPermissionsInstanceRequest {

                    /** TestIamPermissionsInstanceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstanceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstanceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsInstanceRequest. */
                class TestIamPermissionsInstanceRequest implements ITestIamPermissionsInstanceRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest);

                    /** TestIamPermissionsInstanceRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstanceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstanceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest): google.cloud.compute.v1beta.TestIamPermissionsInstanceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstanceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstanceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInstanceRequest;

                    /**
                     * Decodes a TestIamPermissionsInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInstanceRequest;

                    /**
                     * Verifies a TestIamPermissionsInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInstanceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstanceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstanceTemplateRequest. */
                interface ITestIamPermissionsInstanceTemplateRequest {

                    /** TestIamPermissionsInstanceTemplateRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstanceTemplateRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstanceTemplateRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsInstanceTemplateRequest. */
                class TestIamPermissionsInstanceTemplateRequest implements ITestIamPermissionsInstanceTemplateRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstanceTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstanceTemplateRequest);

                    /** TestIamPermissionsInstanceTemplateRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstanceTemplateRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstanceTemplateRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsInstanceTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstanceTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstanceTemplateRequest): google.cloud.compute.v1beta.TestIamPermissionsInstanceTemplateRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstanceTemplateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstanceTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstanceTemplateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstanceTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInstanceTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstanceTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInstanceTemplateRequest;

                    /**
                     * Decodes a TestIamPermissionsInstanceTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstanceTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInstanceTemplateRequest;

                    /**
                     * Verifies a TestIamPermissionsInstanceTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstanceTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstanceTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInstanceTemplateRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstanceTemplateRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstanceTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInstanceTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstanceTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstanceTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstantSnapshotGroupRequest. */
                interface ITestIamPermissionsInstantSnapshotGroupRequest {

                    /** TestIamPermissionsInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstantSnapshotGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstantSnapshotGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstantSnapshotGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsInstantSnapshotGroupRequest. */
                class TestIamPermissionsInstantSnapshotGroupRequest implements ITestIamPermissionsInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotGroupRequest);

                    /** TestIamPermissionsInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstantSnapshotGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstantSnapshotGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstantSnapshotGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInstantSnapshotRequest. */
                interface ITestIamPermissionsInstantSnapshotRequest {

                    /** TestIamPermissionsInstantSnapshotRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInstantSnapshotRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstantSnapshotRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsInstantSnapshotRequest. */
                class TestIamPermissionsInstantSnapshotRequest implements ITestIamPermissionsInstantSnapshotRequest {

                    /**
                     * Constructs a new TestIamPermissionsInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotRequest);

                    /** TestIamPermissionsInstantSnapshotRequest project. */
                    public project: string;

                    /** TestIamPermissionsInstantSnapshotRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInstantSnapshotRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsInstantSnapshotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotRequest): google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotRequest;

                    /**
                     * Decodes a TestIamPermissionsInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotRequest;

                    /**
                     * Verifies a TestIamPermissionsInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInterconnectAttachmentGroupRequest. */
                interface ITestIamPermissionsInterconnectAttachmentGroupRequest {

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsInterconnectAttachmentGroupRequest. */
                class TestIamPermissionsInterconnectAttachmentGroupRequest implements ITestIamPermissionsInterconnectAttachmentGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsInterconnectAttachmentGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentGroupRequest);

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInterconnectAttachmentGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsInterconnectAttachmentGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInterconnectAttachmentGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectAttachmentGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectAttachmentGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectAttachmentGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInterconnectAttachmentGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsInterconnectAttachmentGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInterconnectAttachmentGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsInterconnectAttachmentGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInterconnectAttachmentGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInterconnectAttachmentGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInterconnectAttachmentGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInterconnectAttachmentGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInterconnectAttachmentGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInterconnectAttachmentGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInterconnectAttachmentRequest. */
                interface ITestIamPermissionsInterconnectAttachmentRequest {

                    /** TestIamPermissionsInterconnectAttachmentRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInterconnectAttachmentRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsInterconnectAttachmentRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInterconnectAttachmentRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsInterconnectAttachmentRequest. */
                class TestIamPermissionsInterconnectAttachmentRequest implements ITestIamPermissionsInterconnectAttachmentRequest {

                    /**
                     * Constructs a new TestIamPermissionsInterconnectAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentRequest);

                    /** TestIamPermissionsInterconnectAttachmentRequest project. */
                    public project: string;

                    /** TestIamPermissionsInterconnectAttachmentRequest region. */
                    public region: string;

                    /** TestIamPermissionsInterconnectAttachmentRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInterconnectAttachmentRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsInterconnectAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInterconnectAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentRequest): google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInterconnectAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentRequest;

                    /**
                     * Decodes a TestIamPermissionsInterconnectAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInterconnectAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentRequest;

                    /**
                     * Verifies a TestIamPermissionsInterconnectAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInterconnectAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInterconnectAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInterconnectAttachmentRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInterconnectAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInterconnectAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInterconnectAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInterconnectAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInterconnectGroupRequest. */
                interface ITestIamPermissionsInterconnectGroupRequest {

                    /** TestIamPermissionsInterconnectGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInterconnectGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInterconnectGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsInterconnectGroupRequest. */
                class TestIamPermissionsInterconnectGroupRequest implements ITestIamPermissionsInterconnectGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsInterconnectGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectGroupRequest);

                    /** TestIamPermissionsInterconnectGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsInterconnectGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInterconnectGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsInterconnectGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInterconnectGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsInterconnectGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInterconnectGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInterconnectGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInterconnectGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInterconnectGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsInterconnectGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInterconnectGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInterconnectGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsInterconnectGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInterconnectGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInterconnectGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInterconnectGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInterconnectGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInterconnectGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInterconnectGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInterconnectGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInterconnectGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsInterconnectRequest. */
                interface ITestIamPermissionsInterconnectRequest {

                    /** TestIamPermissionsInterconnectRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsInterconnectRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsInterconnectRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsInterconnectRequest. */
                class TestIamPermissionsInterconnectRequest implements ITestIamPermissionsInterconnectRequest {

                    /**
                     * Constructs a new TestIamPermissionsInterconnectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectRequest);

                    /** TestIamPermissionsInterconnectRequest project. */
                    public project: string;

                    /** TestIamPermissionsInterconnectRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsInterconnectRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsInterconnectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsInterconnectRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectRequest): google.cloud.compute.v1beta.TestIamPermissionsInterconnectRequest;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInterconnectRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsInterconnectRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsInterconnectRequest.verify|verify} messages.
                     * @param message TestIamPermissionsInterconnectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsInterconnectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsInterconnectRequest;

                    /**
                     * Decodes a TestIamPermissionsInterconnectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsInterconnectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsInterconnectRequest;

                    /**
                     * Verifies a TestIamPermissionsInterconnectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsInterconnectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsInterconnectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsInterconnectRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsInterconnectRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsInterconnectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsInterconnectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsInterconnectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsInterconnectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsLicenseCodeRequest. */
                interface ITestIamPermissionsLicenseCodeRequest {

                    /** TestIamPermissionsLicenseCodeRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsLicenseCodeRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsLicenseCodeRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsLicenseCodeRequest. */
                class TestIamPermissionsLicenseCodeRequest implements ITestIamPermissionsLicenseCodeRequest {

                    /**
                     * Constructs a new TestIamPermissionsLicenseCodeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsLicenseCodeRequest);

                    /** TestIamPermissionsLicenseCodeRequest project. */
                    public project: string;

                    /** TestIamPermissionsLicenseCodeRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsLicenseCodeRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsLicenseCodeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsLicenseCodeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsLicenseCodeRequest): google.cloud.compute.v1beta.TestIamPermissionsLicenseCodeRequest;

                    /**
                     * Encodes the specified TestIamPermissionsLicenseCodeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsLicenseCodeRequest.verify|verify} messages.
                     * @param message TestIamPermissionsLicenseCodeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsLicenseCodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsLicenseCodeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsLicenseCodeRequest.verify|verify} messages.
                     * @param message TestIamPermissionsLicenseCodeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsLicenseCodeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsLicenseCodeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsLicenseCodeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsLicenseCodeRequest;

                    /**
                     * Decodes a TestIamPermissionsLicenseCodeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsLicenseCodeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsLicenseCodeRequest;

                    /**
                     * Verifies a TestIamPermissionsLicenseCodeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsLicenseCodeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsLicenseCodeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsLicenseCodeRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsLicenseCodeRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsLicenseCodeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsLicenseCodeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsLicenseCodeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsLicenseCodeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsLicenseRequest. */
                interface ITestIamPermissionsLicenseRequest {

                    /** TestIamPermissionsLicenseRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsLicenseRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsLicenseRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsLicenseRequest. */
                class TestIamPermissionsLicenseRequest implements ITestIamPermissionsLicenseRequest {

                    /**
                     * Constructs a new TestIamPermissionsLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsLicenseRequest);

                    /** TestIamPermissionsLicenseRequest project. */
                    public project: string;

                    /** TestIamPermissionsLicenseRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsLicenseRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsLicenseRequest): google.cloud.compute.v1beta.TestIamPermissionsLicenseRequest;

                    /**
                     * Encodes the specified TestIamPermissionsLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsLicenseRequest.verify|verify} messages.
                     * @param message TestIamPermissionsLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsLicenseRequest.verify|verify} messages.
                     * @param message TestIamPermissionsLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsLicenseRequest;

                    /**
                     * Decodes a TestIamPermissionsLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsLicenseRequest;

                    /**
                     * Verifies a TestIamPermissionsLicenseRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsLicenseRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsLicenseRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsMachineImageRequest. */
                interface ITestIamPermissionsMachineImageRequest {

                    /** TestIamPermissionsMachineImageRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsMachineImageRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsMachineImageRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsMachineImageRequest. */
                class TestIamPermissionsMachineImageRequest implements ITestIamPermissionsMachineImageRequest {

                    /**
                     * Constructs a new TestIamPermissionsMachineImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsMachineImageRequest);

                    /** TestIamPermissionsMachineImageRequest project. */
                    public project: string;

                    /** TestIamPermissionsMachineImageRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsMachineImageRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsMachineImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsMachineImageRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsMachineImageRequest): google.cloud.compute.v1beta.TestIamPermissionsMachineImageRequest;

                    /**
                     * Encodes the specified TestIamPermissionsMachineImageRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsMachineImageRequest.verify|verify} messages.
                     * @param message TestIamPermissionsMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsMachineImageRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsMachineImageRequest.verify|verify} messages.
                     * @param message TestIamPermissionsMachineImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsMachineImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsMachineImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsMachineImageRequest;

                    /**
                     * Decodes a TestIamPermissionsMachineImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsMachineImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsMachineImageRequest;

                    /**
                     * Verifies a TestIamPermissionsMachineImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsMachineImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsMachineImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsMachineImageRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsMachineImageRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsMachineImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsMachineImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsMachineImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsMachineImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNetworkAttachmentRequest. */
                interface ITestIamPermissionsNetworkAttachmentRequest {

                    /** TestIamPermissionsNetworkAttachmentRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNetworkAttachmentRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsNetworkAttachmentRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNetworkAttachmentRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsNetworkAttachmentRequest. */
                class TestIamPermissionsNetworkAttachmentRequest implements ITestIamPermissionsNetworkAttachmentRequest {

                    /**
                     * Constructs a new TestIamPermissionsNetworkAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNetworkAttachmentRequest);

                    /** TestIamPermissionsNetworkAttachmentRequest project. */
                    public project: string;

                    /** TestIamPermissionsNetworkAttachmentRequest region. */
                    public region: string;

                    /** TestIamPermissionsNetworkAttachmentRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNetworkAttachmentRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsNetworkAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNetworkAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNetworkAttachmentRequest): google.cloud.compute.v1beta.TestIamPermissionsNetworkAttachmentRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNetworkAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNetworkAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsNetworkAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNetworkAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsNetworkAttachmentRequest;

                    /**
                     * Decodes a TestIamPermissionsNetworkAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNetworkAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsNetworkAttachmentRequest;

                    /**
                     * Verifies a TestIamPermissionsNetworkAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNetworkAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNetworkAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsNetworkAttachmentRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNetworkAttachmentRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNetworkAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsNetworkAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNetworkAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNetworkAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNetworkEndpointGroupRequest. */
                interface ITestIamPermissionsNetworkEndpointGroupRequest {

                    /** TestIamPermissionsNetworkEndpointGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNetworkEndpointGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNetworkEndpointGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsNetworkEndpointGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsNetworkEndpointGroupRequest. */
                class TestIamPermissionsNetworkEndpointGroupRequest implements ITestIamPermissionsNetworkEndpointGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsNetworkEndpointGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNetworkEndpointGroupRequest);

                    /** TestIamPermissionsNetworkEndpointGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsNetworkEndpointGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNetworkEndpointGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsNetworkEndpointGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsNetworkEndpointGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNetworkEndpointGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNetworkEndpointGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsNetworkEndpointGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkEndpointGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkEndpointGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNetworkEndpointGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkEndpointGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsNetworkEndpointGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNetworkEndpointGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsNetworkEndpointGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsNetworkEndpointGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNetworkEndpointGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsNetworkEndpointGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsNetworkEndpointGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNetworkEndpointGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNetworkEndpointGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsNetworkEndpointGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNetworkEndpointGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNetworkEndpointGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsNetworkEndpointGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNetworkEndpointGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNetworkEndpointGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNetworkFirewallPolicyRequest. */
                interface ITestIamPermissionsNetworkFirewallPolicyRequest {

                    /** TestIamPermissionsNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNetworkFirewallPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsNetworkFirewallPolicyRequest. */
                class TestIamPermissionsNetworkFirewallPolicyRequest implements ITestIamPermissionsNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNetworkFirewallPolicyRequest);

                    /** TestIamPermissionsNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNetworkFirewallPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.TestIamPermissionsNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNetworkRequest. */
                interface ITestIamPermissionsNetworkRequest {

                    /** TestIamPermissionsNetworkRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNetworkRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNetworkRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsNetworkRequest. */
                class TestIamPermissionsNetworkRequest implements ITestIamPermissionsNetworkRequest {

                    /**
                     * Constructs a new TestIamPermissionsNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNetworkRequest);

                    /** TestIamPermissionsNetworkRequest project. */
                    public project: string;

                    /** TestIamPermissionsNetworkRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNetworkRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNetworkRequest): google.cloud.compute.v1beta.TestIamPermissionsNetworkRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNetworkRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNetworkRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsNetworkRequest;

                    /**
                     * Decodes a TestIamPermissionsNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsNetworkRequest;

                    /**
                     * Verifies a TestIamPermissionsNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsNetworkRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNetworkRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNodeGroupRequest. */
                interface ITestIamPermissionsNodeGroupRequest {

                    /** TestIamPermissionsNodeGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNodeGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNodeGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsNodeGroupRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsNodeGroupRequest. */
                class TestIamPermissionsNodeGroupRequest implements ITestIamPermissionsNodeGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsNodeGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNodeGroupRequest);

                    /** TestIamPermissionsNodeGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsNodeGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNodeGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsNodeGroupRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsNodeGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNodeGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNodeGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsNodeGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNodeGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNodeGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNodeGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNodeGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNodeGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsNodeGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNodeGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsNodeGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsNodeGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNodeGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsNodeGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsNodeGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNodeGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNodeGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsNodeGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNodeGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNodeGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsNodeGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNodeGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNodeGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsNodeTemplateRequest. */
                interface ITestIamPermissionsNodeTemplateRequest {

                    /** TestIamPermissionsNodeTemplateRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsNodeTemplateRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsNodeTemplateRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsNodeTemplateRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsNodeTemplateRequest. */
                class TestIamPermissionsNodeTemplateRequest implements ITestIamPermissionsNodeTemplateRequest {

                    /**
                     * Constructs a new TestIamPermissionsNodeTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNodeTemplateRequest);

                    /** TestIamPermissionsNodeTemplateRequest project. */
                    public project: string;

                    /** TestIamPermissionsNodeTemplateRequest region. */
                    public region: string;

                    /** TestIamPermissionsNodeTemplateRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsNodeTemplateRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsNodeTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsNodeTemplateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsNodeTemplateRequest): google.cloud.compute.v1beta.TestIamPermissionsNodeTemplateRequest;

                    /**
                     * Encodes the specified TestIamPermissionsNodeTemplateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNodeTemplateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsNodeTemplateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsNodeTemplateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsNodeTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsNodeTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsNodeTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsNodeTemplateRequest;

                    /**
                     * Decodes a TestIamPermissionsNodeTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsNodeTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsNodeTemplateRequest;

                    /**
                     * Verifies a TestIamPermissionsNodeTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsNodeTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsNodeTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsNodeTemplateRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsNodeTemplateRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsNodeTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsNodeTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsNodeTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsNodeTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsPacketMirroringRequest. */
                interface ITestIamPermissionsPacketMirroringRequest {

                    /** TestIamPermissionsPacketMirroringRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsPacketMirroringRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsPacketMirroringRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsPacketMirroringRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsPacketMirroringRequest. */
                class TestIamPermissionsPacketMirroringRequest implements ITestIamPermissionsPacketMirroringRequest {

                    /**
                     * Constructs a new TestIamPermissionsPacketMirroringRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsPacketMirroringRequest);

                    /** TestIamPermissionsPacketMirroringRequest project. */
                    public project: string;

                    /** TestIamPermissionsPacketMirroringRequest region. */
                    public region: string;

                    /** TestIamPermissionsPacketMirroringRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsPacketMirroringRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsPacketMirroringRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsPacketMirroringRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsPacketMirroringRequest): google.cloud.compute.v1beta.TestIamPermissionsPacketMirroringRequest;

                    /**
                     * Encodes the specified TestIamPermissionsPacketMirroringRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsPacketMirroringRequest.verify|verify} messages.
                     * @param message TestIamPermissionsPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsPacketMirroringRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsPacketMirroringRequest.verify|verify} messages.
                     * @param message TestIamPermissionsPacketMirroringRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsPacketMirroringRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsPacketMirroringRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsPacketMirroringRequest;

                    /**
                     * Decodes a TestIamPermissionsPacketMirroringRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsPacketMirroringRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsPacketMirroringRequest;

                    /**
                     * Verifies a TestIamPermissionsPacketMirroringRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsPacketMirroringRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsPacketMirroringRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsPacketMirroringRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsPacketMirroringRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsPacketMirroringRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsPacketMirroringRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsPacketMirroringRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsPacketMirroringRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionAutoscalerRequest. */
                interface ITestIamPermissionsRegionAutoscalerRequest {

                    /** TestIamPermissionsRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionAutoscalerRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionAutoscalerRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionAutoscalerRequest. */
                class TestIamPermissionsRegionAutoscalerRequest implements ITestIamPermissionsRegionAutoscalerRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionAutoscalerRequest);

                    /** TestIamPermissionsRegionAutoscalerRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionAutoscalerRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionAutoscalerRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionAutoscalerRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionAutoscalerRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionAutoscalerRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionAutoscalerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionAutoscalerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionAutoscalerRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionAutoscalerRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionAutoscalerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionBackendBucketRequest. */
                interface ITestIamPermissionsRegionBackendBucketRequest {

                    /** TestIamPermissionsRegionBackendBucketRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionBackendBucketRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionBackendBucketRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionBackendBucketRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionBackendBucketRequest. */
                class TestIamPermissionsRegionBackendBucketRequest implements ITestIamPermissionsRegionBackendBucketRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendBucketRequest);

                    /** TestIamPermissionsRegionBackendBucketRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionBackendBucketRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionBackendBucketRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionBackendBucketRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendBucketRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionBackendBucketRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionBackendBucketRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionBackendBucketRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionBackendBucketRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionBackendBucketRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionBackendBucketRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionBackendBucketRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionBackendServiceRequest. */
                interface ITestIamPermissionsRegionBackendServiceRequest {

                    /** TestIamPermissionsRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionBackendServiceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionBackendServiceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionBackendServiceRequest. */
                class TestIamPermissionsRegionBackendServiceRequest implements ITestIamPermissionsRegionBackendServiceRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendServiceRequest);

                    /** TestIamPermissionsRegionBackendServiceRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionBackendServiceRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionBackendServiceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionBackendServiceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendServiceRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionBackendServiceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionBackendServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionBackendServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionBackendServiceRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionBackendServiceRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionBackendServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionCommitmentRequest. */
                interface ITestIamPermissionsRegionCommitmentRequest {

                    /** TestIamPermissionsRegionCommitmentRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionCommitmentRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionCommitmentRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionCommitmentRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionCommitmentRequest. */
                class TestIamPermissionsRegionCommitmentRequest implements ITestIamPermissionsRegionCommitmentRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionCommitmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionCommitmentRequest);

                    /** TestIamPermissionsRegionCommitmentRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionCommitmentRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionCommitmentRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionCommitmentRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionCommitmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionCommitmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionCommitmentRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionCommitmentRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionCommitmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionCommitmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionCommitmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionCommitmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionCommitmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionCommitmentRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionCommitmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionCommitmentRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionCommitmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionCommitmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionCommitmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionCommitmentRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionCommitmentRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionCommitmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionCommitmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionCommitmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionCommitmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionCompositeHealthCheckRequest. */
                interface ITestIamPermissionsRegionCompositeHealthCheckRequest {

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionCompositeHealthCheckRequest. */
                class TestIamPermissionsRegionCompositeHealthCheckRequest implements ITestIamPermissionsRegionCompositeHealthCheckRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionCompositeHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionCompositeHealthCheckRequest);

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionCompositeHealthCheckRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionCompositeHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionCompositeHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionCompositeHealthCheckRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionCompositeHealthCheckRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionCompositeHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionCompositeHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionCompositeHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionCompositeHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionCompositeHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionCompositeHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionCompositeHealthCheckRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionCompositeHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionCompositeHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionCompositeHealthCheckRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionCompositeHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionCompositeHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionCompositeHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionCompositeHealthCheckRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionCompositeHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionCompositeHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionCompositeHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionCompositeHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionCompositeHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionDiskRequest. */
                interface ITestIamPermissionsRegionDiskRequest {

                    /** TestIamPermissionsRegionDiskRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionDiskRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionDiskRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionDiskRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionDiskRequest. */
                class TestIamPermissionsRegionDiskRequest implements ITestIamPermissionsRegionDiskRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionDiskRequest);

                    /** TestIamPermissionsRegionDiskRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionDiskRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionDiskRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionDiskRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionDiskRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionDiskRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionDiskRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionDiskRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionDiskRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionDiskRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionDiskRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionDiskRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionHealthAggregationPolicyRequest. */
                interface ITestIamPermissionsRegionHealthAggregationPolicyRequest {

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionHealthAggregationPolicyRequest. */
                class TestIamPermissionsRegionHealthAggregationPolicyRequest implements ITestIamPermissionsRegionHealthAggregationPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionHealthAggregationPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthAggregationPolicyRequest);

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionHealthAggregationPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionHealthAggregationPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionHealthAggregationPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthAggregationPolicyRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthAggregationPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthAggregationPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthAggregationPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionHealthAggregationPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthAggregationPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthAggregationPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthAggregationPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthAggregationPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthAggregationPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionHealthAggregationPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthAggregationPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionHealthAggregationPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionHealthAggregationPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionHealthAggregationPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthAggregationPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionHealthAggregationPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionHealthAggregationPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionHealthAggregationPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionHealthAggregationPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionHealthAggregationPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionHealthCheckRequest. */
                interface ITestIamPermissionsRegionHealthCheckRequest {

                    /** TestIamPermissionsRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionHealthCheckRequest. */
                class TestIamPermissionsRegionHealthCheckRequest implements ITestIamPermissionsRegionHealthCheckRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckRequest);

                    /** TestIamPermissionsRegionHealthCheckRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionHealthCheckRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionHealthCheckRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionHealthCheckRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionHealthCheckRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionHealthCheckServiceRequest. */
                interface ITestIamPermissionsRegionHealthCheckServiceRequest {

                    /** TestIamPermissionsRegionHealthCheckServiceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckServiceRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckServiceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionHealthCheckServiceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionHealthCheckServiceRequest. */
                class TestIamPermissionsRegionHealthCheckServiceRequest implements ITestIamPermissionsRegionHealthCheckServiceRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionHealthCheckServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckServiceRequest);

                    /** TestIamPermissionsRegionHealthCheckServiceRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionHealthCheckServiceRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionHealthCheckServiceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionHealthCheckServiceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionHealthCheckServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionHealthCheckServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckServiceRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckServiceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthCheckServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthCheckServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckServiceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthCheckServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthCheckServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckServiceRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthCheckServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionHealthCheckServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckServiceRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionHealthCheckServiceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionHealthCheckServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionHealthCheckServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckServiceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionHealthCheckServiceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionHealthCheckServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionHealthCheckServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionHealthCheckServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionHealthCheckServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionHealthSourceRequest. */
                interface ITestIamPermissionsRegionHealthSourceRequest {

                    /** TestIamPermissionsRegionHealthSourceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionHealthSourceRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionHealthSourceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionHealthSourceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionHealthSourceRequest. */
                class TestIamPermissionsRegionHealthSourceRequest implements ITestIamPermissionsRegionHealthSourceRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionHealthSourceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthSourceRequest);

                    /** TestIamPermissionsRegionHealthSourceRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionHealthSourceRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionHealthSourceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionHealthSourceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionHealthSourceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionHealthSourceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthSourceRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthSourceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthSourceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionHealthSourceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionHealthSourceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionHealthSourceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionHealthSourceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthSourceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthSourceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthSourceRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionHealthSourceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionHealthSourceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthSourceRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionHealthSourceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionHealthSourceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionHealthSourceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionHealthSourceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionHealthSourceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionHealthSourceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionHealthSourceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionHealthSourceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionHealthSourceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionInstanceGroupManagerRequest. */
                interface ITestIamPermissionsRegionInstanceGroupManagerRequest {

                    /** TestIamPermissionsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupManagerRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupManagerRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionInstanceGroupManagerRequest. */
                class TestIamPermissionsRegionInstanceGroupManagerRequest implements ITestIamPermissionsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupManagerRequest);

                    /** TestIamPermissionsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionInstanceGroupManagerRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionInstanceGroupManagerRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionInstanceGroupManagerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionInstanceGroupRequest. */
                interface ITestIamPermissionsRegionInstanceGroupRequest {

                    /** TestIamPermissionsRegionInstanceGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionInstanceGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionInstanceGroupRequest. */
                class TestIamPermissionsRegionInstanceGroupRequest implements ITestIamPermissionsRegionInstanceGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionInstanceGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupRequest);

                    /** TestIamPermissionsRegionInstanceGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionInstanceGroupRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionInstanceGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionInstanceGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionInstanceGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionInstanceGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstanceGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstanceGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstanceGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionInstanceGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionInstanceGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionInstanceGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionInstanceGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionInstanceGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionInstanceGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionInstanceGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionInstanceGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionInstanceGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionInstanceGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionInstanceGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionInstantSnapshotGroupRequest. */
                interface ITestIamPermissionsRegionInstantSnapshotGroupRequest {

                    /** TestIamPermissionsRegionInstantSnapshotGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotGroupRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionInstantSnapshotGroupRequest. */
                class TestIamPermissionsRegionInstantSnapshotGroupRequest implements ITestIamPermissionsRegionInstantSnapshotGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionInstantSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotGroupRequest);

                    /** TestIamPermissionsRegionInstantSnapshotGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionInstantSnapshotGroupRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionInstantSnapshotGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionInstantSnapshotGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionInstantSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionInstantSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstantSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstantSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstantSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionInstantSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionInstantSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionInstantSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionInstantSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionInstantSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionInstantSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionInstantSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionInstantSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionInstantSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionInstantSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionInstantSnapshotRequest. */
                interface ITestIamPermissionsRegionInstantSnapshotRequest {

                    /** TestIamPermissionsRegionInstantSnapshotRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionInstantSnapshotRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionInstantSnapshotRequest. */
                class TestIamPermissionsRegionInstantSnapshotRequest implements ITestIamPermissionsRegionInstantSnapshotRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionInstantSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotRequest);

                    /** TestIamPermissionsRegionInstantSnapshotRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionInstantSnapshotRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionInstantSnapshotRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionInstantSnapshotRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionInstantSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionInstantSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstantSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionInstantSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionInstantSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionInstantSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionInstantSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionInstantSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionInstantSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionInstantSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionInstantSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionInstantSnapshotRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionInstantSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionInstantSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionInstantSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionInstantSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionNetworkFirewallPolicyRequest. */
                interface ITestIamPermissionsRegionNetworkFirewallPolicyRequest {

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionNetworkFirewallPolicyRequest. */
                class TestIamPermissionsRegionNetworkFirewallPolicyRequest implements ITestIamPermissionsRegionNetworkFirewallPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionNetworkFirewallPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionNetworkFirewallPolicyRequest);

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionNetworkFirewallPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionNetworkFirewallPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionNetworkFirewallPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionNetworkFirewallPolicyRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionNetworkFirewallPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionNetworkFirewallPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionNetworkFirewallPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionNetworkFirewallPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionNetworkFirewallPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionNetworkFirewallPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionNetworkFirewallPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionNetworkFirewallPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionNetworkFirewallPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionNetworkFirewallPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionNetworkFirewallPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionNetworkFirewallPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionNetworkFirewallPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionNetworkFirewallPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionNotificationEndpointRequest. */
                interface ITestIamPermissionsRegionNotificationEndpointRequest {

                    /** TestIamPermissionsRegionNotificationEndpointRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionNotificationEndpointRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionNotificationEndpointRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionNotificationEndpointRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionNotificationEndpointRequest. */
                class TestIamPermissionsRegionNotificationEndpointRequest implements ITestIamPermissionsRegionNotificationEndpointRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionNotificationEndpointRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionNotificationEndpointRequest);

                    /** TestIamPermissionsRegionNotificationEndpointRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionNotificationEndpointRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionNotificationEndpointRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionNotificationEndpointRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionNotificationEndpointRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionNotificationEndpointRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionNotificationEndpointRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionNotificationEndpointRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionNotificationEndpointRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionNotificationEndpointRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionNotificationEndpointRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionNotificationEndpointRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionNotificationEndpointRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionNotificationEndpointRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionNotificationEndpointRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionNotificationEndpointRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionNotificationEndpointRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionNotificationEndpointRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionNotificationEndpointRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionNotificationEndpointRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionNotificationEndpointRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionNotificationEndpointRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionNotificationEndpointRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionNotificationEndpointRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionNotificationEndpointRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionNotificationEndpointRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionNotificationEndpointRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionSnapshotRequest. */
                interface ITestIamPermissionsRegionSnapshotRequest {

                    /** TestIamPermissionsRegionSnapshotRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionSnapshotRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionSnapshotRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionSnapshotRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionSnapshotRequest. */
                class TestIamPermissionsRegionSnapshotRequest implements ITestIamPermissionsRegionSnapshotRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionSnapshotRequest);

                    /** TestIamPermissionsRegionSnapshotRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionSnapshotRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionSnapshotRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionSnapshotRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionSnapshotRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionSnapshotRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionSnapshotRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionSnapshotRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionSnapshotRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionSnapshotRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionSslCertificateRequest. */
                interface ITestIamPermissionsRegionSslCertificateRequest {

                    /** TestIamPermissionsRegionSslCertificateRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionSslCertificateRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionSslCertificateRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionSslCertificateRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionSslCertificateRequest. */
                class TestIamPermissionsRegionSslCertificateRequest implements ITestIamPermissionsRegionSslCertificateRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslCertificateRequest);

                    /** TestIamPermissionsRegionSslCertificateRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionSslCertificateRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionSslCertificateRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionSslCertificateRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslCertificateRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionSslCertificateRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionSslCertificateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionSslCertificateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionSslCertificateRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionSslCertificateRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionSslCertificateRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionSslPolicyRequest. */
                interface ITestIamPermissionsRegionSslPolicyRequest {

                    /** TestIamPermissionsRegionSslPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionSslPolicyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionSslPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionSslPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionSslPolicyRequest. */
                class TestIamPermissionsRegionSslPolicyRequest implements ITestIamPermissionsRegionSslPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslPolicyRequest);

                    /** TestIamPermissionsRegionSslPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionSslPolicyRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionSslPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionSslPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslPolicyRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionSslPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionSslPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionSslPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionSslPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionSslPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionSslPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionTargetHttpProxyRequest. */
                interface ITestIamPermissionsRegionTargetHttpProxyRequest {

                    /** TestIamPermissionsRegionTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionTargetHttpProxyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionTargetHttpProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionTargetHttpProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionTargetHttpProxyRequest. */
                class TestIamPermissionsRegionTargetHttpProxyRequest implements ITestIamPermissionsRegionTargetHttpProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpProxyRequest);

                    /** TestIamPermissionsRegionTargetHttpProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionTargetHttpProxyRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionTargetHttpProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionTargetHttpProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpProxyRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionTargetHttpsProxyRequest. */
                interface ITestIamPermissionsRegionTargetHttpsProxyRequest {

                    /** TestIamPermissionsRegionTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionTargetHttpsProxyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionTargetHttpsProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionTargetHttpsProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionTargetHttpsProxyRequest. */
                class TestIamPermissionsRegionTargetHttpsProxyRequest implements ITestIamPermissionsRegionTargetHttpsProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpsProxyRequest);

                    /** TestIamPermissionsRegionTargetHttpsProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionTargetHttpsProxyRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionTargetHttpsProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionTargetHttpsProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpsProxyRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpsProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpsProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionTargetTcpProxyRequest. */
                interface ITestIamPermissionsRegionTargetTcpProxyRequest {

                    /** TestIamPermissionsRegionTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionTargetTcpProxyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionTargetTcpProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionTargetTcpProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionTargetTcpProxyRequest. */
                class TestIamPermissionsRegionTargetTcpProxyRequest implements ITestIamPermissionsRegionTargetTcpProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetTcpProxyRequest);

                    /** TestIamPermissionsRegionTargetTcpProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionTargetTcpProxyRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionTargetTcpProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionTargetTcpProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetTcpProxyRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetTcpProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionTargetTcpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetTcpProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetTcpProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRegionUrlMapRequest. */
                interface ITestIamPermissionsRegionUrlMapRequest {

                    /** TestIamPermissionsRegionUrlMapRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRegionUrlMapRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRegionUrlMapRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRegionUrlMapRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRegionUrlMapRequest. */
                class TestIamPermissionsRegionUrlMapRequest implements ITestIamPermissionsRegionUrlMapRequest {

                    /**
                     * Constructs a new TestIamPermissionsRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionUrlMapRequest);

                    /** TestIamPermissionsRegionUrlMapRequest project. */
                    public project: string;

                    /** TestIamPermissionsRegionUrlMapRequest region. */
                    public region: string;

                    /** TestIamPermissionsRegionUrlMapRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRegionUrlMapRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRegionUrlMapRequest): google.cloud.compute.v1beta.TestIamPermissionsRegionUrlMapRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionUrlMapRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRegionUrlMapRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRegionUrlMapRequest;

                    /**
                     * Decodes a TestIamPermissionsRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRegionUrlMapRequest;

                    /**
                     * Verifies a TestIamPermissionsRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsReservationBlockRequest. */
                interface ITestIamPermissionsReservationBlockRequest {

                    /** TestIamPermissionsReservationBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** TestIamPermissionsReservationBlockRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsReservationBlockRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsReservationBlockRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsReservationBlockRequest. */
                class TestIamPermissionsReservationBlockRequest implements ITestIamPermissionsReservationBlockRequest {

                    /**
                     * Constructs a new TestIamPermissionsReservationBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsReservationBlockRequest);

                    /** TestIamPermissionsReservationBlockRequest parentResource. */
                    public parentResource: string;

                    /** TestIamPermissionsReservationBlockRequest project. */
                    public project: string;

                    /** TestIamPermissionsReservationBlockRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsReservationBlockRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsReservationBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsReservationBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsReservationBlockRequest): google.cloud.compute.v1beta.TestIamPermissionsReservationBlockRequest;

                    /**
                     * Encodes the specified TestIamPermissionsReservationBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsReservationBlockRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsReservationBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsReservationBlockRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsReservationBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsReservationBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsReservationBlockRequest;

                    /**
                     * Decodes a TestIamPermissionsReservationBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsReservationBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsReservationBlockRequest;

                    /**
                     * Verifies a TestIamPermissionsReservationBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsReservationBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsReservationBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsReservationBlockRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsReservationBlockRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsReservationBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsReservationBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsReservationBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsReservationBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsReservationRequest. */
                interface ITestIamPermissionsReservationRequest {

                    /** TestIamPermissionsReservationRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsReservationRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsReservationRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsReservationRequest. */
                class TestIamPermissionsReservationRequest implements ITestIamPermissionsReservationRequest {

                    /**
                     * Constructs a new TestIamPermissionsReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsReservationRequest);

                    /** TestIamPermissionsReservationRequest project. */
                    public project: string;

                    /** TestIamPermissionsReservationRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsReservationRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsReservationRequest): google.cloud.compute.v1beta.TestIamPermissionsReservationRequest;

                    /**
                     * Encodes the specified TestIamPermissionsReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsReservationRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsReservationRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsReservationRequest;

                    /**
                     * Decodes a TestIamPermissionsReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsReservationRequest;

                    /**
                     * Verifies a TestIamPermissionsReservationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsReservationRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsReservationRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsReservationSubBlockRequest. */
                interface ITestIamPermissionsReservationSubBlockRequest {

                    /** TestIamPermissionsReservationSubBlockRequest parentResource */
                    parentResource?: (string|null);

                    /** TestIamPermissionsReservationSubBlockRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsReservationSubBlockRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsReservationSubBlockRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationSubBlockRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsReservationSubBlockRequest. */
                class TestIamPermissionsReservationSubBlockRequest implements ITestIamPermissionsReservationSubBlockRequest {

                    /**
                     * Constructs a new TestIamPermissionsReservationSubBlockRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsReservationSubBlockRequest);

                    /** TestIamPermissionsReservationSubBlockRequest parentResource. */
                    public parentResource: string;

                    /** TestIamPermissionsReservationSubBlockRequest project. */
                    public project: string;

                    /** TestIamPermissionsReservationSubBlockRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsReservationSubBlockRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsReservationSubBlockRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsReservationSubBlockRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsReservationSubBlockRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsReservationSubBlockRequest): google.cloud.compute.v1beta.TestIamPermissionsReservationSubBlockRequest;

                    /**
                     * Encodes the specified TestIamPermissionsReservationSubBlockRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsReservationSubBlockRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsReservationSubBlockRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsReservationSubBlockRequest.verify|verify} messages.
                     * @param message TestIamPermissionsReservationSubBlockRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsReservationSubBlockRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsReservationSubBlockRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsReservationSubBlockRequest;

                    /**
                     * Decodes a TestIamPermissionsReservationSubBlockRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsReservationSubBlockRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsReservationSubBlockRequest;

                    /**
                     * Verifies a TestIamPermissionsReservationSubBlockRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsReservationSubBlockRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsReservationSubBlockRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsReservationSubBlockRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsReservationSubBlockRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsReservationSubBlockRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsReservationSubBlockRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsReservationSubBlockRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsReservationSubBlockRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsResourcePolicyRequest. */
                interface ITestIamPermissionsResourcePolicyRequest {

                    /** TestIamPermissionsResourcePolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsResourcePolicyRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsResourcePolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsResourcePolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsResourcePolicyRequest. */
                class TestIamPermissionsResourcePolicyRequest implements ITestIamPermissionsResourcePolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsResourcePolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsResourcePolicyRequest);

                    /** TestIamPermissionsResourcePolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsResourcePolicyRequest region. */
                    public region: string;

                    /** TestIamPermissionsResourcePolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsResourcePolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsResourcePolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsResourcePolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsResourcePolicyRequest): google.cloud.compute.v1beta.TestIamPermissionsResourcePolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsResourcePolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsResourcePolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsResourcePolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsResourcePolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsResourcePolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsResourcePolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsResourcePolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsResourcePolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsResourcePolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsResourcePolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsResourcePolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsResourcePolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsResourcePolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsResourcePolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsResourcePolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsResourcePolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsResourcePolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsResourcePolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsResourcePolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsResourcePolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRouteRequest. */
                interface ITestIamPermissionsRouteRequest {

                    /** TestIamPermissionsRouteRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRouteRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRouteRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRouteRequest. */
                class TestIamPermissionsRouteRequest implements ITestIamPermissionsRouteRequest {

                    /**
                     * Constructs a new TestIamPermissionsRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRouteRequest);

                    /** TestIamPermissionsRouteRequest project. */
                    public project: string;

                    /** TestIamPermissionsRouteRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRouteRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRouteRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRouteRequest): google.cloud.compute.v1beta.TestIamPermissionsRouteRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRouteRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRouteRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRouteRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRouteRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRouteRequest;

                    /**
                     * Decodes a TestIamPermissionsRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRouteRequest;

                    /**
                     * Verifies a TestIamPermissionsRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRouteRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRouteRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsRouterRequest. */
                interface ITestIamPermissionsRouterRequest {

                    /** TestIamPermissionsRouterRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsRouterRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsRouterRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsRouterRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsRouterRequest. */
                class TestIamPermissionsRouterRequest implements ITestIamPermissionsRouterRequest {

                    /**
                     * Constructs a new TestIamPermissionsRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRouterRequest);

                    /** TestIamPermissionsRouterRequest project. */
                    public project: string;

                    /** TestIamPermissionsRouterRequest region. */
                    public region: string;

                    /** TestIamPermissionsRouterRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsRouterRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsRouterRequest): google.cloud.compute.v1beta.TestIamPermissionsRouterRequest;

                    /**
                     * Encodes the specified TestIamPermissionsRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRouterRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsRouterRequest.verify|verify} messages.
                     * @param message TestIamPermissionsRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsRouterRequest;

                    /**
                     * Decodes a TestIamPermissionsRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsRouterRequest;

                    /**
                     * Verifies a TestIamPermissionsRouterRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsRouterRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsRouterRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsSecurityPolicyRequest. */
                interface ITestIamPermissionsSecurityPolicyRequest {

                    /** TestIamPermissionsSecurityPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsSecurityPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsSecurityPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsSecurityPolicyRequest. */
                class TestIamPermissionsSecurityPolicyRequest implements ITestIamPermissionsSecurityPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsSecurityPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSecurityPolicyRequest);

                    /** TestIamPermissionsSecurityPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsSecurityPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsSecurityPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsSecurityPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsSecurityPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSecurityPolicyRequest): google.cloud.compute.v1beta.TestIamPermissionsSecurityPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsSecurityPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSecurityPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsSecurityPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSecurityPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSecurityPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsSecurityPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsSecurityPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsSecurityPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsSecurityPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsSecurityPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsSecurityPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsSecurityPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsSecurityPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsSecurityPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsSecurityPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsSecurityPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsSecurityPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsSecurityPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsSecurityPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsSecurityPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsServiceAttachmentRequest. */
                interface ITestIamPermissionsServiceAttachmentRequest {

                    /** TestIamPermissionsServiceAttachmentRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsServiceAttachmentRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsServiceAttachmentRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsServiceAttachmentRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsServiceAttachmentRequest. */
                class TestIamPermissionsServiceAttachmentRequest implements ITestIamPermissionsServiceAttachmentRequest {

                    /**
                     * Constructs a new TestIamPermissionsServiceAttachmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsServiceAttachmentRequest);

                    /** TestIamPermissionsServiceAttachmentRequest project. */
                    public project: string;

                    /** TestIamPermissionsServiceAttachmentRequest region. */
                    public region: string;

                    /** TestIamPermissionsServiceAttachmentRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsServiceAttachmentRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsServiceAttachmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsServiceAttachmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsServiceAttachmentRequest): google.cloud.compute.v1beta.TestIamPermissionsServiceAttachmentRequest;

                    /**
                     * Encodes the specified TestIamPermissionsServiceAttachmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsServiceAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsServiceAttachmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsServiceAttachmentRequest.verify|verify} messages.
                     * @param message TestIamPermissionsServiceAttachmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsServiceAttachmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsServiceAttachmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsServiceAttachmentRequest;

                    /**
                     * Decodes a TestIamPermissionsServiceAttachmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsServiceAttachmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsServiceAttachmentRequest;

                    /**
                     * Verifies a TestIamPermissionsServiceAttachmentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsServiceAttachmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsServiceAttachmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsServiceAttachmentRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsServiceAttachmentRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsServiceAttachmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsServiceAttachmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsServiceAttachmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsServiceAttachmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsSnapshotGroupRequest. */
                interface ITestIamPermissionsSnapshotGroupRequest {

                    /** TestIamPermissionsSnapshotGroupRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsSnapshotGroupRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsSnapshotGroupRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsSnapshotGroupRequest. */
                class TestIamPermissionsSnapshotGroupRequest implements ITestIamPermissionsSnapshotGroupRequest {

                    /**
                     * Constructs a new TestIamPermissionsSnapshotGroupRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotGroupRequest);

                    /** TestIamPermissionsSnapshotGroupRequest project. */
                    public project: string;

                    /** TestIamPermissionsSnapshotGroupRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsSnapshotGroupRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsSnapshotGroupRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsSnapshotGroupRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotGroupRequest): google.cloud.compute.v1beta.TestIamPermissionsSnapshotGroupRequest;

                    /**
                     * Encodes the specified TestIamPermissionsSnapshotGroupRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSnapshotGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsSnapshotGroupRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSnapshotGroupRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSnapshotGroupRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotGroupRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsSnapshotGroupRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsSnapshotGroupRequest;

                    /**
                     * Decodes a TestIamPermissionsSnapshotGroupRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsSnapshotGroupRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsSnapshotGroupRequest;

                    /**
                     * Verifies a TestIamPermissionsSnapshotGroupRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsSnapshotGroupRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsSnapshotGroupRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsSnapshotGroupRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsSnapshotGroupRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsSnapshotGroupRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsSnapshotGroupRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsSnapshotGroupRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsSnapshotGroupRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsSnapshotRequest. */
                interface ITestIamPermissionsSnapshotRequest {

                    /** TestIamPermissionsSnapshotRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsSnapshotRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsSnapshotRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsSnapshotRequest. */
                class TestIamPermissionsSnapshotRequest implements ITestIamPermissionsSnapshotRequest {

                    /**
                     * Constructs a new TestIamPermissionsSnapshotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotRequest);

                    /** TestIamPermissionsSnapshotRequest project. */
                    public project: string;

                    /** TestIamPermissionsSnapshotRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsSnapshotRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsSnapshotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsSnapshotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotRequest): google.cloud.compute.v1beta.TestIamPermissionsSnapshotRequest;

                    /**
                     * Encodes the specified TestIamPermissionsSnapshotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsSnapshotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSnapshotRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSnapshotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsSnapshotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsSnapshotRequest;

                    /**
                     * Decodes a TestIamPermissionsSnapshotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsSnapshotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsSnapshotRequest;

                    /**
                     * Verifies a TestIamPermissionsSnapshotRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsSnapshotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsSnapshotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsSnapshotRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsSnapshotRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsSnapshotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsSnapshotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsSnapshotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsSnapshotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsSslCertificateRequest. */
                interface ITestIamPermissionsSslCertificateRequest {

                    /** TestIamPermissionsSslCertificateRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsSslCertificateRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsSslCertificateRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsSslCertificateRequest. */
                class TestIamPermissionsSslCertificateRequest implements ITestIamPermissionsSslCertificateRequest {

                    /**
                     * Constructs a new TestIamPermissionsSslCertificateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSslCertificateRequest);

                    /** TestIamPermissionsSslCertificateRequest project. */
                    public project: string;

                    /** TestIamPermissionsSslCertificateRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsSslCertificateRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsSslCertificateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsSslCertificateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSslCertificateRequest): google.cloud.compute.v1beta.TestIamPermissionsSslCertificateRequest;

                    /**
                     * Encodes the specified TestIamPermissionsSslCertificateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSslCertificateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsSslCertificateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSslCertificateRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSslCertificateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsSslCertificateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsSslCertificateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsSslCertificateRequest;

                    /**
                     * Decodes a TestIamPermissionsSslCertificateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsSslCertificateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsSslCertificateRequest;

                    /**
                     * Verifies a TestIamPermissionsSslCertificateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsSslCertificateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsSslCertificateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsSslCertificateRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsSslCertificateRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsSslCertificateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsSslCertificateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsSslCertificateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsSslCertificateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsSslPolicyRequest. */
                interface ITestIamPermissionsSslPolicyRequest {

                    /** TestIamPermissionsSslPolicyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsSslPolicyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsSslPolicyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsSslPolicyRequest. */
                class TestIamPermissionsSslPolicyRequest implements ITestIamPermissionsSslPolicyRequest {

                    /**
                     * Constructs a new TestIamPermissionsSslPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSslPolicyRequest);

                    /** TestIamPermissionsSslPolicyRequest project. */
                    public project: string;

                    /** TestIamPermissionsSslPolicyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsSslPolicyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsSslPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsSslPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSslPolicyRequest): google.cloud.compute.v1beta.TestIamPermissionsSslPolicyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsSslPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSslPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsSslPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSslPolicyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSslPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsSslPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsSslPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsSslPolicyRequest;

                    /**
                     * Decodes a TestIamPermissionsSslPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsSslPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsSslPolicyRequest;

                    /**
                     * Verifies a TestIamPermissionsSslPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsSslPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsSslPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsSslPolicyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsSslPolicyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsSslPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsSslPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsSslPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsSslPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsStoragePoolRequest. */
                interface ITestIamPermissionsStoragePoolRequest {

                    /** TestIamPermissionsStoragePoolRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsStoragePoolRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsStoragePoolRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsStoragePoolRequest. */
                class TestIamPermissionsStoragePoolRequest implements ITestIamPermissionsStoragePoolRequest {

                    /**
                     * Constructs a new TestIamPermissionsStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsStoragePoolRequest);

                    /** TestIamPermissionsStoragePoolRequest project. */
                    public project: string;

                    /** TestIamPermissionsStoragePoolRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsStoragePoolRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsStoragePoolRequest): google.cloud.compute.v1beta.TestIamPermissionsStoragePoolRequest;

                    /**
                     * Encodes the specified TestIamPermissionsStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsStoragePoolRequest.verify|verify} messages.
                     * @param message TestIamPermissionsStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsStoragePoolRequest.verify|verify} messages.
                     * @param message TestIamPermissionsStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsStoragePoolRequest;

                    /**
                     * Decodes a TestIamPermissionsStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsStoragePoolRequest;

                    /**
                     * Verifies a TestIamPermissionsStoragePoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsStoragePoolRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsSubnetworkRequest. */
                interface ITestIamPermissionsSubnetworkRequest {

                    /** TestIamPermissionsSubnetworkRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsSubnetworkRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsSubnetworkRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsSubnetworkRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsSubnetworkRequest. */
                class TestIamPermissionsSubnetworkRequest implements ITestIamPermissionsSubnetworkRequest {

                    /**
                     * Constructs a new TestIamPermissionsSubnetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSubnetworkRequest);

                    /** TestIamPermissionsSubnetworkRequest project. */
                    public project: string;

                    /** TestIamPermissionsSubnetworkRequest region. */
                    public region: string;

                    /** TestIamPermissionsSubnetworkRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsSubnetworkRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsSubnetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsSubnetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsSubnetworkRequest): google.cloud.compute.v1beta.TestIamPermissionsSubnetworkRequest;

                    /**
                     * Encodes the specified TestIamPermissionsSubnetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSubnetworkRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsSubnetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsSubnetworkRequest.verify|verify} messages.
                     * @param message TestIamPermissionsSubnetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsSubnetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsSubnetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsSubnetworkRequest;

                    /**
                     * Decodes a TestIamPermissionsSubnetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsSubnetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsSubnetworkRequest;

                    /**
                     * Verifies a TestIamPermissionsSubnetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsSubnetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsSubnetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsSubnetworkRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsSubnetworkRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsSubnetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsSubnetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsSubnetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsSubnetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetGrpcProxyRequest. */
                interface ITestIamPermissionsTargetGrpcProxyRequest {

                    /** TestIamPermissionsTargetGrpcProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetGrpcProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetGrpcProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetGrpcProxyRequest. */
                class TestIamPermissionsTargetGrpcProxyRequest implements ITestIamPermissionsTargetGrpcProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetGrpcProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetGrpcProxyRequest);

                    /** TestIamPermissionsTargetGrpcProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetGrpcProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetGrpcProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetGrpcProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetGrpcProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetGrpcProxyRequest): google.cloud.compute.v1beta.TestIamPermissionsTargetGrpcProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetGrpcProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetGrpcProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetGrpcProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetGrpcProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetGrpcProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetGrpcProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsTargetGrpcProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetGrpcProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetGrpcProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsTargetGrpcProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetGrpcProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetGrpcProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetGrpcProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsTargetGrpcProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetGrpcProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetGrpcProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsTargetGrpcProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetGrpcProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetGrpcProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetHttpProxyRequest. */
                interface ITestIamPermissionsTargetHttpProxyRequest {

                    /** TestIamPermissionsTargetHttpProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetHttpProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetHttpProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetHttpProxyRequest. */
                class TestIamPermissionsTargetHttpProxyRequest implements ITestIamPermissionsTargetHttpProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetHttpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpProxyRequest);

                    /** TestIamPermissionsTargetHttpProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetHttpProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetHttpProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetHttpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetHttpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpProxyRequest): google.cloud.compute.v1beta.TestIamPermissionsTargetHttpProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetHttpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetHttpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetHttpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetHttpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetHttpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetHttpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsTargetHttpProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetHttpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetHttpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsTargetHttpProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetHttpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetHttpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetHttpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsTargetHttpProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetHttpProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetHttpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsTargetHttpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetHttpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetHttpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetHttpsProxyRequest. */
                interface ITestIamPermissionsTargetHttpsProxyRequest {

                    /** TestIamPermissionsTargetHttpsProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetHttpsProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetHttpsProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetHttpsProxyRequest. */
                class TestIamPermissionsTargetHttpsProxyRequest implements ITestIamPermissionsTargetHttpsProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetHttpsProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpsProxyRequest);

                    /** TestIamPermissionsTargetHttpsProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetHttpsProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetHttpsProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetHttpsProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetHttpsProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpsProxyRequest): google.cloud.compute.v1beta.TestIamPermissionsTargetHttpsProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetHttpsProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetHttpsProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetHttpsProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetHttpsProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpsProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetHttpsProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsTargetHttpsProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetHttpsProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetHttpsProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsTargetHttpsProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetHttpsProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetHttpsProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetHttpsProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsTargetHttpsProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetHttpsProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetHttpsProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsTargetHttpsProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetHttpsProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetHttpsProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetInstanceRequest. */
                interface ITestIamPermissionsTargetInstanceRequest {

                    /** TestIamPermissionsTargetInstanceRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetInstanceRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetInstanceRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsTargetInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents a TestIamPermissionsTargetInstanceRequest. */
                class TestIamPermissionsTargetInstanceRequest implements ITestIamPermissionsTargetInstanceRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetInstanceRequest);

                    /** TestIamPermissionsTargetInstanceRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetInstanceRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetInstanceRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /** TestIamPermissionsTargetInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new TestIamPermissionsTargetInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetInstanceRequest): google.cloud.compute.v1beta.TestIamPermissionsTargetInstanceRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetInstanceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetInstanceRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsTargetInstanceRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsTargetInstanceRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetInstanceRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsTargetInstanceRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetInstanceRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsTargetInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetPoolRequest. */
                interface ITestIamPermissionsTargetPoolRequest {

                    /** TestIamPermissionsTargetPoolRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetPoolRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsTargetPoolRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetPoolRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetPoolRequest. */
                class TestIamPermissionsTargetPoolRequest implements ITestIamPermissionsTargetPoolRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetPoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetPoolRequest);

                    /** TestIamPermissionsTargetPoolRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetPoolRequest region. */
                    public region: string;

                    /** TestIamPermissionsTargetPoolRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetPoolRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetPoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetPoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetPoolRequest): google.cloud.compute.v1beta.TestIamPermissionsTargetPoolRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetPoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetPoolRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetPoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetPoolRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetPoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetPoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetPoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsTargetPoolRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetPoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetPoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsTargetPoolRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetPoolRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetPoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetPoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsTargetPoolRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetPoolRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetPoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsTargetPoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetPoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetPoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetSslProxyRequest. */
                interface ITestIamPermissionsTargetSslProxyRequest {

                    /** TestIamPermissionsTargetSslProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetSslProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetSslProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetSslProxyRequest. */
                class TestIamPermissionsTargetSslProxyRequest implements ITestIamPermissionsTargetSslProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetSslProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetSslProxyRequest);

                    /** TestIamPermissionsTargetSslProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetSslProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetSslProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetSslProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetSslProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetSslProxyRequest): google.cloud.compute.v1beta.TestIamPermissionsTargetSslProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetSslProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetSslProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetSslProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetSslProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetSslProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetSslProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetSslProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsTargetSslProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetSslProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetSslProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsTargetSslProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetSslProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetSslProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetSslProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsTargetSslProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetSslProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetSslProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsTargetSslProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetSslProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetSslProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetTcpProxyRequest. */
                interface ITestIamPermissionsTargetTcpProxyRequest {

                    /** TestIamPermissionsTargetTcpProxyRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetTcpProxyRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetTcpProxyRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetTcpProxyRequest. */
                class TestIamPermissionsTargetTcpProxyRequest implements ITestIamPermissionsTargetTcpProxyRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetTcpProxyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetTcpProxyRequest);

                    /** TestIamPermissionsTargetTcpProxyRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetTcpProxyRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetTcpProxyRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetTcpProxyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetTcpProxyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetTcpProxyRequest): google.cloud.compute.v1beta.TestIamPermissionsTargetTcpProxyRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetTcpProxyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetTcpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetTcpProxyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetTcpProxyRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetTcpProxyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetTcpProxyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetTcpProxyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsTargetTcpProxyRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetTcpProxyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetTcpProxyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsTargetTcpProxyRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetTcpProxyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetTcpProxyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetTcpProxyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsTargetTcpProxyRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetTcpProxyRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetTcpProxyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsTargetTcpProxyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetTcpProxyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetTcpProxyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsTargetVpnGatewayRequest. */
                interface ITestIamPermissionsTargetVpnGatewayRequest {

                    /** TestIamPermissionsTargetVpnGatewayRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsTargetVpnGatewayRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsTargetVpnGatewayRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsTargetVpnGatewayRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsTargetVpnGatewayRequest. */
                class TestIamPermissionsTargetVpnGatewayRequest implements ITestIamPermissionsTargetVpnGatewayRequest {

                    /**
                     * Constructs a new TestIamPermissionsTargetVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetVpnGatewayRequest);

                    /** TestIamPermissionsTargetVpnGatewayRequest project. */
                    public project: string;

                    /** TestIamPermissionsTargetVpnGatewayRequest region. */
                    public region: string;

                    /** TestIamPermissionsTargetVpnGatewayRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsTargetVpnGatewayRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsTargetVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsTargetVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsTargetVpnGatewayRequest): google.cloud.compute.v1beta.TestIamPermissionsTargetVpnGatewayRequest;

                    /**
                     * Encodes the specified TestIamPermissionsTargetVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsTargetVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsTargetVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsTargetVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsTargetVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsTargetVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsTargetVpnGatewayRequest;

                    /**
                     * Decodes a TestIamPermissionsTargetVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsTargetVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsTargetVpnGatewayRequest;

                    /**
                     * Verifies a TestIamPermissionsTargetVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsTargetVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsTargetVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsTargetVpnGatewayRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsTargetVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsTargetVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsTargetVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsTargetVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsTargetVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsUrlMapRequest. */
                interface ITestIamPermissionsUrlMapRequest {

                    /** TestIamPermissionsUrlMapRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsUrlMapRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsUrlMapRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsUrlMapRequest. */
                class TestIamPermissionsUrlMapRequest implements ITestIamPermissionsUrlMapRequest {

                    /**
                     * Constructs a new TestIamPermissionsUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsUrlMapRequest);

                    /** TestIamPermissionsUrlMapRequest project. */
                    public project: string;

                    /** TestIamPermissionsUrlMapRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsUrlMapRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsUrlMapRequest): google.cloud.compute.v1beta.TestIamPermissionsUrlMapRequest;

                    /**
                     * Encodes the specified TestIamPermissionsUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsUrlMapRequest.verify|verify} messages.
                     * @param message TestIamPermissionsUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsUrlMapRequest.verify|verify} messages.
                     * @param message TestIamPermissionsUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsUrlMapRequest;

                    /**
                     * Decodes a TestIamPermissionsUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsUrlMapRequest;

                    /**
                     * Verifies a TestIamPermissionsUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsUrlMapRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsUrlMapRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsVpnGatewayRequest. */
                interface ITestIamPermissionsVpnGatewayRequest {

                    /** TestIamPermissionsVpnGatewayRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsVpnGatewayRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsVpnGatewayRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsVpnGatewayRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsVpnGatewayRequest. */
                class TestIamPermissionsVpnGatewayRequest implements ITestIamPermissionsVpnGatewayRequest {

                    /**
                     * Constructs a new TestIamPermissionsVpnGatewayRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsVpnGatewayRequest);

                    /** TestIamPermissionsVpnGatewayRequest project. */
                    public project: string;

                    /** TestIamPermissionsVpnGatewayRequest region. */
                    public region: string;

                    /** TestIamPermissionsVpnGatewayRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsVpnGatewayRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsVpnGatewayRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsVpnGatewayRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsVpnGatewayRequest): google.cloud.compute.v1beta.TestIamPermissionsVpnGatewayRequest;

                    /**
                     * Encodes the specified TestIamPermissionsVpnGatewayRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsVpnGatewayRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsVpnGatewayRequest.verify|verify} messages.
                     * @param message TestIamPermissionsVpnGatewayRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsVpnGatewayRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsVpnGatewayRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsVpnGatewayRequest;

                    /**
                     * Decodes a TestIamPermissionsVpnGatewayRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsVpnGatewayRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsVpnGatewayRequest;

                    /**
                     * Verifies a TestIamPermissionsVpnGatewayRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsVpnGatewayRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsVpnGatewayRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsVpnGatewayRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsVpnGatewayRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsVpnGatewayRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsVpnGatewayRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsVpnGatewayRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsVpnGatewayRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestIamPermissionsVpnTunnelRequest. */
                interface ITestIamPermissionsVpnTunnelRequest {

                    /** TestIamPermissionsVpnTunnelRequest project */
                    project?: (string|null);

                    /** TestIamPermissionsVpnTunnelRequest region */
                    region?: (string|null);

                    /** TestIamPermissionsVpnTunnelRequest resource */
                    resource?: (string|null);

                    /** TestIamPermissionsVpnTunnelRequest testPermissionsRequestResource */
                    testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);
                }

                /** Represents a TestIamPermissionsVpnTunnelRequest. */
                class TestIamPermissionsVpnTunnelRequest implements ITestIamPermissionsVpnTunnelRequest {

                    /**
                     * Constructs a new TestIamPermissionsVpnTunnelRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestIamPermissionsVpnTunnelRequest);

                    /** TestIamPermissionsVpnTunnelRequest project. */
                    public project: string;

                    /** TestIamPermissionsVpnTunnelRequest region. */
                    public region: string;

                    /** TestIamPermissionsVpnTunnelRequest resource. */
                    public resource: string;

                    /** TestIamPermissionsVpnTunnelRequest testPermissionsRequestResource. */
                    public testPermissionsRequestResource?: (google.cloud.compute.v1beta.ITestPermissionsRequest|null);

                    /**
                     * Creates a new TestIamPermissionsVpnTunnelRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestIamPermissionsVpnTunnelRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestIamPermissionsVpnTunnelRequest): google.cloud.compute.v1beta.TestIamPermissionsVpnTunnelRequest;

                    /**
                     * Encodes the specified TestIamPermissionsVpnTunnelRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsVpnTunnelRequest.verify|verify} messages.
                     * @param message TestIamPermissionsVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestIamPermissionsVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestIamPermissionsVpnTunnelRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestIamPermissionsVpnTunnelRequest.verify|verify} messages.
                     * @param message TestIamPermissionsVpnTunnelRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestIamPermissionsVpnTunnelRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestIamPermissionsVpnTunnelRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestIamPermissionsVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestIamPermissionsVpnTunnelRequest;

                    /**
                     * Decodes a TestIamPermissionsVpnTunnelRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestIamPermissionsVpnTunnelRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestIamPermissionsVpnTunnelRequest;

                    /**
                     * Verifies a TestIamPermissionsVpnTunnelRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestIamPermissionsVpnTunnelRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestIamPermissionsVpnTunnelRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestIamPermissionsVpnTunnelRequest;

                    /**
                     * Creates a plain object from a TestIamPermissionsVpnTunnelRequest message. Also converts values to other types if specified.
                     * @param message TestIamPermissionsVpnTunnelRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestIamPermissionsVpnTunnelRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestIamPermissionsVpnTunnelRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestIamPermissionsVpnTunnelRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestPermissionsRequest. */
                interface ITestPermissionsRequest {

                    /** TestPermissionsRequest permissions */
                    permissions?: (string[]|null);
                }

                /** Represents a TestPermissionsRequest. */
                class TestPermissionsRequest implements ITestPermissionsRequest {

                    /**
                     * Constructs a new TestPermissionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestPermissionsRequest);

                    /** TestPermissionsRequest permissions. */
                    public permissions: string[];

                    /**
                     * Creates a new TestPermissionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestPermissionsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestPermissionsRequest): google.cloud.compute.v1beta.TestPermissionsRequest;

                    /**
                     * Encodes the specified TestPermissionsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.TestPermissionsRequest.verify|verify} messages.
                     * @param message TestPermissionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestPermissionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestPermissionsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestPermissionsRequest.verify|verify} messages.
                     * @param message TestPermissionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestPermissionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestPermissionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestPermissionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestPermissionsRequest;

                    /**
                     * Decodes a TestPermissionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestPermissionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestPermissionsRequest;

                    /**
                     * Verifies a TestPermissionsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestPermissionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestPermissionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestPermissionsRequest;

                    /**
                     * Creates a plain object from a TestPermissionsRequest message. Also converts values to other types if specified.
                     * @param message TestPermissionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestPermissionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestPermissionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestPermissionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TestPermissionsResponse. */
                interface ITestPermissionsResponse {

                    /** TestPermissionsResponse permissions */
                    permissions?: (string[]|null);
                }

                /** Represents a TestPermissionsResponse. */
                class TestPermissionsResponse implements ITestPermissionsResponse {

                    /**
                     * Constructs a new TestPermissionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.ITestPermissionsResponse);

                    /** TestPermissionsResponse permissions. */
                    public permissions: string[];

                    /**
                     * Creates a new TestPermissionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TestPermissionsResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.ITestPermissionsResponse): google.cloud.compute.v1beta.TestPermissionsResponse;

                    /**
                     * Encodes the specified TestPermissionsResponse message. Does not implicitly {@link google.cloud.compute.v1beta.TestPermissionsResponse.verify|verify} messages.
                     * @param message TestPermissionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.ITestPermissionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TestPermissionsResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.TestPermissionsResponse.verify|verify} messages.
                     * @param message TestPermissionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.ITestPermissionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TestPermissionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TestPermissionsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.TestPermissionsResponse;

                    /**
                     * Decodes a TestPermissionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TestPermissionsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.TestPermissionsResponse;

                    /**
                     * Verifies a TestPermissionsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TestPermissionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TestPermissionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.TestPermissionsResponse;

                    /**
                     * Creates a plain object from a TestPermissionsResponse message. Also converts values to other types if specified.
                     * @param message TestPermissionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.TestPermissionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TestPermissionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TestPermissionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Uint128. */
                interface IUint128 {

                    /** Uint128 high */
                    high?: (number|Long|string|null);

                    /** Uint128 low */
                    low?: (number|Long|string|null);
                }

                /** Represents an Uint128. */
                class Uint128 implements IUint128 {

                    /**
                     * Constructs a new Uint128.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUint128);

                    /** Uint128 high. */
                    public high?: (number|Long|string|null);

                    /** Uint128 low. */
                    public low?: (number|Long|string|null);

                    /**
                     * Creates a new Uint128 instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Uint128 instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUint128): google.cloud.compute.v1beta.Uint128;

                    /**
                     * Encodes the specified Uint128 message. Does not implicitly {@link google.cloud.compute.v1beta.Uint128.verify|verify} messages.
                     * @param message Uint128 message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUint128, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Uint128 message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Uint128.verify|verify} messages.
                     * @param message Uint128 message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUint128, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Uint128 message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Uint128
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Uint128;

                    /**
                     * Decodes an Uint128 message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Uint128
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Uint128;

                    /**
                     * Verifies an Uint128 message.
                     * @param message Plain 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 Uint128 message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Uint128
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Uint128;

                    /**
                     * Creates a plain object from an Uint128 message. Also converts values to other types if specified.
                     * @param message Uint128
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Uint128, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Uint128 to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Uint128
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpcomingMaintenance. */
                interface IUpcomingMaintenance {

                    /** UpcomingMaintenance canReschedule */
                    canReschedule?: (boolean|null);

                    /** UpcomingMaintenance latestWindowStartTime */
                    latestWindowStartTime?: (string|null);

                    /** UpcomingMaintenance maintenanceOnShutdown */
                    maintenanceOnShutdown?: (boolean|null);

                    /** UpcomingMaintenance maintenanceReasons */
                    maintenanceReasons?: (string[]|null);

                    /** UpcomingMaintenance maintenanceStatus */
                    maintenanceStatus?: (string|null);

                    /** UpcomingMaintenance type */
                    type?: (string|null);

                    /** UpcomingMaintenance windowEndTime */
                    windowEndTime?: (string|null);

                    /** UpcomingMaintenance windowStartTime */
                    windowStartTime?: (string|null);
                }

                /** Represents an UpcomingMaintenance. */
                class UpcomingMaintenance implements IUpcomingMaintenance {

                    /**
                     * Constructs a new UpcomingMaintenance.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpcomingMaintenance);

                    /** UpcomingMaintenance canReschedule. */
                    public canReschedule?: (boolean|null);

                    /** UpcomingMaintenance latestWindowStartTime. */
                    public latestWindowStartTime?: (string|null);

                    /** UpcomingMaintenance maintenanceOnShutdown. */
                    public maintenanceOnShutdown?: (boolean|null);

                    /** UpcomingMaintenance maintenanceReasons. */
                    public maintenanceReasons: string[];

                    /** UpcomingMaintenance maintenanceStatus. */
                    public maintenanceStatus?: (string|null);

                    /** UpcomingMaintenance type. */
                    public type?: (string|null);

                    /** UpcomingMaintenance windowEndTime. */
                    public windowEndTime?: (string|null);

                    /** UpcomingMaintenance windowStartTime. */
                    public windowStartTime?: (string|null);

                    /**
                     * Creates a new UpcomingMaintenance instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpcomingMaintenance instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpcomingMaintenance): google.cloud.compute.v1beta.UpcomingMaintenance;

                    /**
                     * Encodes the specified UpcomingMaintenance message. Does not implicitly {@link google.cloud.compute.v1beta.UpcomingMaintenance.verify|verify} messages.
                     * @param message UpcomingMaintenance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpcomingMaintenance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpcomingMaintenance message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpcomingMaintenance.verify|verify} messages.
                     * @param message UpcomingMaintenance message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpcomingMaintenance, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpcomingMaintenance message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpcomingMaintenance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpcomingMaintenance;

                    /**
                     * Decodes an UpcomingMaintenance message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpcomingMaintenance
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpcomingMaintenance;

                    /**
                     * Verifies an UpcomingMaintenance message.
                     * @param message Plain 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 UpcomingMaintenance message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpcomingMaintenance
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpcomingMaintenance;

                    /**
                     * Creates a plain object from an UpcomingMaintenance message. Also converts values to other types if specified.
                     * @param message UpcomingMaintenance
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpcomingMaintenance, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpcomingMaintenance to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpcomingMaintenance
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace UpcomingMaintenance {

                    /** MaintenanceReasons enum. */
                    enum MaintenanceReasons {
                        UNDEFINED_MAINTENANCE_REASONS = 0,
                        FAILURE_DISK = 8573778,
                        FAILURE_GPU = 467876919,
                        FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED = 223284959,
                        FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED = 88487838,
                        FAILURE_GPU_TEMPERATURE = 24926540,
                        FAILURE_GPU_XID = 51956587,
                        FAILURE_INFRA = 270541467,
                        FAILURE_INTERFACE = 390068356,
                        FAILURE_MEMORY = 440132982,
                        FAILURE_NETWORK = 42811449,
                        FAILURE_NVLINK = 484426295,
                        FAILURE_REDUNDANT_HARDWARE_FAULT = 31000530,
                        FAILURE_TPU = 467889412,
                        INFRASTRUCTURE_RELOCATION = 359845636,
                        MAINTENANCE_REASON_UNKNOWN = 50570235,
                        PLANNED_NETWORK_UPDATE = 135494677,
                        PLANNED_UPDATE = 161733572
                    }

                    /** MaintenanceStatus enum. */
                    enum MaintenanceStatus {
                        UNDEFINED_MAINTENANCE_STATUS = 0,
                        ONGOING = 473158491,
                        PENDING = 35394935,
                        UNKNOWN = 433141802
                    }

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        MULTIPLE = 362714640,
                        SCHEDULED = 478400653,
                        UNKNOWN_TYPE = 490705455,
                        UNSCHEDULED = 450077204
                    }
                }

                /** Properties of an UpdateAccessConfigInstanceRequest. */
                interface IUpdateAccessConfigInstanceRequest {

                    /** UpdateAccessConfigInstanceRequest accessConfigResource */
                    accessConfigResource?: (google.cloud.compute.v1beta.IAccessConfig|null);

                    /** UpdateAccessConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateAccessConfigInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** UpdateAccessConfigInstanceRequest project */
                    project?: (string|null);

                    /** UpdateAccessConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateAccessConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateAccessConfigInstanceRequest. */
                class UpdateAccessConfigInstanceRequest implements IUpdateAccessConfigInstanceRequest {

                    /**
                     * Constructs a new UpdateAccessConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest);

                    /** UpdateAccessConfigInstanceRequest accessConfigResource. */
                    public accessConfigResource?: (google.cloud.compute.v1beta.IAccessConfig|null);

                    /** UpdateAccessConfigInstanceRequest instance. */
                    public instance: string;

                    /** UpdateAccessConfigInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** UpdateAccessConfigInstanceRequest project. */
                    public project: string;

                    /** UpdateAccessConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateAccessConfigInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateAccessConfigInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateAccessConfigInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest): google.cloud.compute.v1beta.UpdateAccessConfigInstanceRequest;

                    /**
                     * Encodes the specified UpdateAccessConfigInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateAccessConfigInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateAccessConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateAccessConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateAccessConfigInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateAccessConfigInstanceRequest;

                    /**
                     * Decodes an UpdateAccessConfigInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateAccessConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateAccessConfigInstanceRequest;

                    /**
                     * Verifies an UpdateAccessConfigInstanceRequest message.
                     * @param message Plain 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 UpdateAccessConfigInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateAccessConfigInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateAccessConfigInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateAccessConfigInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateAccessConfigInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateAccessConfigInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateAccessConfigInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateAccessConfigInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateAutoscalerRequest. */
                interface IUpdateAutoscalerRequest {

                    /** UpdateAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** UpdateAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** UpdateAutoscalerRequest project */
                    project?: (string|null);

                    /** UpdateAutoscalerRequest requestId */
                    requestId?: (string|null);

                    /** UpdateAutoscalerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateAutoscalerRequest. */
                class UpdateAutoscalerRequest implements IUpdateAutoscalerRequest {

                    /**
                     * Constructs a new UpdateAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateAutoscalerRequest);

                    /** UpdateAutoscalerRequest autoscaler. */
                    public autoscaler?: (string|null);

                    /** UpdateAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** UpdateAutoscalerRequest project. */
                    public project: string;

                    /** UpdateAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateAutoscalerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateAutoscalerRequest): google.cloud.compute.v1beta.UpdateAutoscalerRequest;

                    /**
                     * Encodes the specified UpdateAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateAutoscalerRequest.verify|verify} messages.
                     * @param message UpdateAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateAutoscalerRequest.verify|verify} messages.
                     * @param message UpdateAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateAutoscalerRequest;

                    /**
                     * Decodes an UpdateAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateAutoscalerRequest;

                    /**
                     * Verifies an UpdateAutoscalerRequest message.
                     * @param message Plain 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 UpdateAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateAutoscalerRequest;

                    /**
                     * Creates a plain object from an UpdateAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message UpdateAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateBackendBucketRequest. */
                interface IUpdateBackendBucketRequest {

                    /** UpdateBackendBucketRequest backendBucket */
                    backendBucket?: (string|null);

                    /** UpdateBackendBucketRequest backendBucketResource */
                    backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** UpdateBackendBucketRequest project */
                    project?: (string|null);

                    /** UpdateBackendBucketRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateBackendBucketRequest. */
                class UpdateBackendBucketRequest implements IUpdateBackendBucketRequest {

                    /**
                     * Constructs a new UpdateBackendBucketRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateBackendBucketRequest);

                    /** UpdateBackendBucketRequest backendBucket. */
                    public backendBucket: string;

                    /** UpdateBackendBucketRequest backendBucketResource. */
                    public backendBucketResource?: (google.cloud.compute.v1beta.IBackendBucket|null);

                    /** UpdateBackendBucketRequest project. */
                    public project: string;

                    /** UpdateBackendBucketRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateBackendBucketRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateBackendBucketRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateBackendBucketRequest): google.cloud.compute.v1beta.UpdateBackendBucketRequest;

                    /**
                     * Encodes the specified UpdateBackendBucketRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateBackendBucketRequest.verify|verify} messages.
                     * @param message UpdateBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateBackendBucketRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateBackendBucketRequest.verify|verify} messages.
                     * @param message UpdateBackendBucketRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateBackendBucketRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateBackendBucketRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateBackendBucketRequest;

                    /**
                     * Decodes an UpdateBackendBucketRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateBackendBucketRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateBackendBucketRequest;

                    /**
                     * Verifies an UpdateBackendBucketRequest message.
                     * @param message Plain 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 UpdateBackendBucketRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateBackendBucketRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateBackendBucketRequest;

                    /**
                     * Creates a plain object from an UpdateBackendBucketRequest message. Also converts values to other types if specified.
                     * @param message UpdateBackendBucketRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateBackendBucketRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateBackendBucketRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateBackendBucketRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateBackendServiceRequest. */
                interface IUpdateBackendServiceRequest {

                    /** UpdateBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** UpdateBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** UpdateBackendServiceRequest project */
                    project?: (string|null);

                    /** UpdateBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateBackendServiceRequest. */
                class UpdateBackendServiceRequest implements IUpdateBackendServiceRequest {

                    /**
                     * Constructs a new UpdateBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateBackendServiceRequest);

                    /** UpdateBackendServiceRequest backendService. */
                    public backendService: string;

                    /** UpdateBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** UpdateBackendServiceRequest project. */
                    public project: string;

                    /** UpdateBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateBackendServiceRequest): google.cloud.compute.v1beta.UpdateBackendServiceRequest;

                    /**
                     * Encodes the specified UpdateBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateBackendServiceRequest.verify|verify} messages.
                     * @param message UpdateBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateBackendServiceRequest.verify|verify} messages.
                     * @param message UpdateBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateBackendServiceRequest;

                    /**
                     * Decodes an UpdateBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateBackendServiceRequest;

                    /**
                     * Verifies an UpdateBackendServiceRequest message.
                     * @param message Plain 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 UpdateBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateBackendServiceRequest;

                    /**
                     * Creates a plain object from an UpdateBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message UpdateBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateDiskRequest. */
                interface IUpdateDiskRequest {

                    /** UpdateDiskRequest disk */
                    disk?: (string|null);

                    /** UpdateDiskRequest diskResource */
                    diskResource?: (google.cloud.compute.v1beta.IDisk|null);

                    /** UpdateDiskRequest paths */
                    paths?: (string|null);

                    /** UpdateDiskRequest project */
                    project?: (string|null);

                    /** UpdateDiskRequest requestId */
                    requestId?: (string|null);

                    /** UpdateDiskRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateDiskRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateDiskRequest. */
                class UpdateDiskRequest implements IUpdateDiskRequest {

                    /**
                     * Constructs a new UpdateDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateDiskRequest);

                    /** UpdateDiskRequest disk. */
                    public disk: string;

                    /** UpdateDiskRequest diskResource. */
                    public diskResource?: (google.cloud.compute.v1beta.IDisk|null);

                    /** UpdateDiskRequest paths. */
                    public paths?: (string|null);

                    /** UpdateDiskRequest project. */
                    public project: string;

                    /** UpdateDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateDiskRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateDiskRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateDiskRequest): google.cloud.compute.v1beta.UpdateDiskRequest;

                    /**
                     * Encodes the specified UpdateDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateDiskRequest.verify|verify} messages.
                     * @param message UpdateDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateDiskRequest.verify|verify} messages.
                     * @param message UpdateDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateDiskRequest;

                    /**
                     * Decodes an UpdateDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateDiskRequest;

                    /**
                     * Verifies an UpdateDiskRequest message.
                     * @param message Plain 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 UpdateDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateDiskRequest;

                    /**
                     * Creates a plain object from an UpdateDiskRequest message. Also converts values to other types if specified.
                     * @param message UpdateDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateDisplayDeviceInstanceRequest. */
                interface IUpdateDisplayDeviceInstanceRequest {

                    /** UpdateDisplayDeviceInstanceRequest displayDeviceResource */
                    displayDeviceResource?: (google.cloud.compute.v1beta.IDisplayDevice|null);

                    /** UpdateDisplayDeviceInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateDisplayDeviceInstanceRequest project */
                    project?: (string|null);

                    /** UpdateDisplayDeviceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateDisplayDeviceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateDisplayDeviceInstanceRequest. */
                class UpdateDisplayDeviceInstanceRequest implements IUpdateDisplayDeviceInstanceRequest {

                    /**
                     * Constructs a new UpdateDisplayDeviceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest);

                    /** UpdateDisplayDeviceInstanceRequest displayDeviceResource. */
                    public displayDeviceResource?: (google.cloud.compute.v1beta.IDisplayDevice|null);

                    /** UpdateDisplayDeviceInstanceRequest instance. */
                    public instance: string;

                    /** UpdateDisplayDeviceInstanceRequest project. */
                    public project: string;

                    /** UpdateDisplayDeviceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateDisplayDeviceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateDisplayDeviceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateDisplayDeviceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest): google.cloud.compute.v1beta.UpdateDisplayDeviceInstanceRequest;

                    /**
                     * Encodes the specified UpdateDisplayDeviceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateDisplayDeviceInstanceRequest.verify|verify} messages.
                     * @param message UpdateDisplayDeviceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateDisplayDeviceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateDisplayDeviceInstanceRequest.verify|verify} messages.
                     * @param message UpdateDisplayDeviceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateDisplayDeviceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateDisplayDeviceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateDisplayDeviceInstanceRequest;

                    /**
                     * Decodes an UpdateDisplayDeviceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateDisplayDeviceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateDisplayDeviceInstanceRequest;

                    /**
                     * Verifies an UpdateDisplayDeviceInstanceRequest message.
                     * @param message Plain 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 UpdateDisplayDeviceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateDisplayDeviceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateDisplayDeviceInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateDisplayDeviceInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateDisplayDeviceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateDisplayDeviceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateDisplayDeviceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateDisplayDeviceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateFirewallRequest. */
                interface IUpdateFirewallRequest {

                    /** UpdateFirewallRequest firewall */
                    firewall?: (string|null);

                    /** UpdateFirewallRequest firewallResource */
                    firewallResource?: (google.cloud.compute.v1beta.IFirewall|null);

                    /** UpdateFirewallRequest project */
                    project?: (string|null);

                    /** UpdateFirewallRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateFirewallRequest. */
                class UpdateFirewallRequest implements IUpdateFirewallRequest {

                    /**
                     * Constructs a new UpdateFirewallRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateFirewallRequest);

                    /** UpdateFirewallRequest firewall. */
                    public firewall: string;

                    /** UpdateFirewallRequest firewallResource. */
                    public firewallResource?: (google.cloud.compute.v1beta.IFirewall|null);

                    /** UpdateFirewallRequest project. */
                    public project: string;

                    /** UpdateFirewallRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateFirewallRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateFirewallRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateFirewallRequest): google.cloud.compute.v1beta.UpdateFirewallRequest;

                    /**
                     * Encodes the specified UpdateFirewallRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateFirewallRequest.verify|verify} messages.
                     * @param message UpdateFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateFirewallRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateFirewallRequest.verify|verify} messages.
                     * @param message UpdateFirewallRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateFirewallRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateFirewallRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateFirewallRequest;

                    /**
                     * Decodes an UpdateFirewallRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateFirewallRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateFirewallRequest;

                    /**
                     * Verifies an UpdateFirewallRequest message.
                     * @param message Plain 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 UpdateFirewallRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateFirewallRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateFirewallRequest;

                    /**
                     * Creates a plain object from an UpdateFirewallRequest message. Also converts values to other types if specified.
                     * @param message UpdateFirewallRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateFirewallRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateFirewallRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateFirewallRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateFutureReservationRequest. */
                interface IUpdateFutureReservationRequest {

                    /** UpdateFutureReservationRequest futureReservation */
                    futureReservation?: (string|null);

                    /** UpdateFutureReservationRequest futureReservationResource */
                    futureReservationResource?: (google.cloud.compute.v1beta.IFutureReservation|null);

                    /** UpdateFutureReservationRequest project */
                    project?: (string|null);

                    /** UpdateFutureReservationRequest requestId */
                    requestId?: (string|null);

                    /** UpdateFutureReservationRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateFutureReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateFutureReservationRequest. */
                class UpdateFutureReservationRequest implements IUpdateFutureReservationRequest {

                    /**
                     * Constructs a new UpdateFutureReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateFutureReservationRequest);

                    /** UpdateFutureReservationRequest futureReservation. */
                    public futureReservation: string;

                    /** UpdateFutureReservationRequest futureReservationResource. */
                    public futureReservationResource?: (google.cloud.compute.v1beta.IFutureReservation|null);

                    /** UpdateFutureReservationRequest project. */
                    public project: string;

                    /** UpdateFutureReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateFutureReservationRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateFutureReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateFutureReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateFutureReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateFutureReservationRequest): google.cloud.compute.v1beta.UpdateFutureReservationRequest;

                    /**
                     * Encodes the specified UpdateFutureReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateFutureReservationRequest.verify|verify} messages.
                     * @param message UpdateFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateFutureReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateFutureReservationRequest.verify|verify} messages.
                     * @param message UpdateFutureReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateFutureReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateFutureReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateFutureReservationRequest;

                    /**
                     * Decodes an UpdateFutureReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateFutureReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateFutureReservationRequest;

                    /**
                     * Verifies an UpdateFutureReservationRequest message.
                     * @param message Plain 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 UpdateFutureReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateFutureReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateFutureReservationRequest;

                    /**
                     * Creates a plain object from an UpdateFutureReservationRequest message. Also converts values to other types if specified.
                     * @param message UpdateFutureReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateFutureReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateFutureReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateFutureReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateGlobalVmExtensionPolicyRequest. */
                interface IUpdateGlobalVmExtensionPolicyRequest {

                    /** UpdateGlobalVmExtensionPolicyRequest globalVmExtensionPolicy */
                    globalVmExtensionPolicy?: (string|null);

                    /** UpdateGlobalVmExtensionPolicyRequest globalVmExtensionPolicyResource */
                    globalVmExtensionPolicyResource?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicy|null);

                    /** UpdateGlobalVmExtensionPolicyRequest project */
                    project?: (string|null);

                    /** UpdateGlobalVmExtensionPolicyRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateGlobalVmExtensionPolicyRequest. */
                class UpdateGlobalVmExtensionPolicyRequest implements IUpdateGlobalVmExtensionPolicyRequest {

                    /**
                     * Constructs a new UpdateGlobalVmExtensionPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateGlobalVmExtensionPolicyRequest);

                    /** UpdateGlobalVmExtensionPolicyRequest globalVmExtensionPolicy. */
                    public globalVmExtensionPolicy: string;

                    /** UpdateGlobalVmExtensionPolicyRequest globalVmExtensionPolicyResource. */
                    public globalVmExtensionPolicyResource?: (google.cloud.compute.v1beta.IGlobalVmExtensionPolicy|null);

                    /** UpdateGlobalVmExtensionPolicyRequest project. */
                    public project: string;

                    /** UpdateGlobalVmExtensionPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateGlobalVmExtensionPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateGlobalVmExtensionPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateGlobalVmExtensionPolicyRequest): google.cloud.compute.v1beta.UpdateGlobalVmExtensionPolicyRequest;

                    /**
                     * Encodes the specified UpdateGlobalVmExtensionPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateGlobalVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message UpdateGlobalVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateGlobalVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateGlobalVmExtensionPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateGlobalVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message UpdateGlobalVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateGlobalVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateGlobalVmExtensionPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateGlobalVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateGlobalVmExtensionPolicyRequest;

                    /**
                     * Decodes an UpdateGlobalVmExtensionPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateGlobalVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateGlobalVmExtensionPolicyRequest;

                    /**
                     * Verifies an UpdateGlobalVmExtensionPolicyRequest message.
                     * @param message Plain 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 UpdateGlobalVmExtensionPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateGlobalVmExtensionPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateGlobalVmExtensionPolicyRequest;

                    /**
                     * Creates a plain object from an UpdateGlobalVmExtensionPolicyRequest message. Also converts values to other types if specified.
                     * @param message UpdateGlobalVmExtensionPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateGlobalVmExtensionPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateGlobalVmExtensionPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateGlobalVmExtensionPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateHealthCheckRequest. */
                interface IUpdateHealthCheckRequest {

                    /** UpdateHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** UpdateHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** UpdateHealthCheckRequest project */
                    project?: (string|null);

                    /** UpdateHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateHealthCheckRequest. */
                class UpdateHealthCheckRequest implements IUpdateHealthCheckRequest {

                    /**
                     * Constructs a new UpdateHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateHealthCheckRequest);

                    /** UpdateHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** UpdateHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** UpdateHealthCheckRequest project. */
                    public project: string;

                    /** UpdateHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateHealthCheckRequest): google.cloud.compute.v1beta.UpdateHealthCheckRequest;

                    /**
                     * Encodes the specified UpdateHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateHealthCheckRequest.verify|verify} messages.
                     * @param message UpdateHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateHealthCheckRequest.verify|verify} messages.
                     * @param message UpdateHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateHealthCheckRequest;

                    /**
                     * Decodes an UpdateHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateHealthCheckRequest;

                    /**
                     * Verifies an UpdateHealthCheckRequest message.
                     * @param message Plain 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 UpdateHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateHealthCheckRequest;

                    /**
                     * Creates a plain object from an UpdateHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message UpdateHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateInstanceGroupManagerRequest. */
                interface IUpdateInstanceGroupManagerRequest {

                    /** UpdateInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** UpdateInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** UpdateInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** UpdateInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** UpdateInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateInstanceGroupManagerRequest. */
                class UpdateInstanceGroupManagerRequest implements IUpdateInstanceGroupManagerRequest {

                    /**
                     * Constructs a new UpdateInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateInstanceGroupManagerRequest);

                    /** UpdateInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** UpdateInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** UpdateInstanceGroupManagerRequest project. */
                    public project: string;

                    /** UpdateInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateInstanceGroupManagerRequest): google.cloud.compute.v1beta.UpdateInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified UpdateInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdateInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdateInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateInstanceGroupManagerRequest;

                    /**
                     * Decodes an UpdateInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateInstanceGroupManagerRequest;

                    /**
                     * Verifies an UpdateInstanceGroupManagerRequest message.
                     * @param message Plain 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 UpdateInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an UpdateInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message UpdateInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateInstanceRequest. */
                interface IUpdateInstanceRequest {

                    /** UpdateInstanceRequest discardLocalSsd */
                    discardLocalSsd?: (boolean|null);

                    /** UpdateInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateInstanceRequest instanceResource */
                    instanceResource?: (google.cloud.compute.v1beta.IInstance|null);

                    /** UpdateInstanceRequest minimalAction */
                    minimalAction?: (string|null);

                    /** UpdateInstanceRequest mostDisruptiveAllowedAction */
                    mostDisruptiveAllowedAction?: (string|null);

                    /** UpdateInstanceRequest project */
                    project?: (string|null);

                    /** UpdateInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateInstanceRequest. */
                class UpdateInstanceRequest implements IUpdateInstanceRequest {

                    /**
                     * Constructs a new UpdateInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateInstanceRequest);

                    /** UpdateInstanceRequest discardLocalSsd. */
                    public discardLocalSsd?: (boolean|null);

                    /** UpdateInstanceRequest instance. */
                    public instance: string;

                    /** UpdateInstanceRequest instanceResource. */
                    public instanceResource?: (google.cloud.compute.v1beta.IInstance|null);

                    /** UpdateInstanceRequest minimalAction. */
                    public minimalAction?: (string|null);

                    /** UpdateInstanceRequest mostDisruptiveAllowedAction. */
                    public mostDisruptiveAllowedAction?: (string|null);

                    /** UpdateInstanceRequest project. */
                    public project: string;

                    /** UpdateInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateInstanceRequest): google.cloud.compute.v1beta.UpdateInstanceRequest;

                    /**
                     * Encodes the specified UpdateInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateInstanceRequest.verify|verify} messages.
                     * @param message UpdateInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateInstanceRequest.verify|verify} messages.
                     * @param message UpdateInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateInstanceRequest;

                    /**
                     * Decodes an UpdateInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateInstanceRequest;

                    /**
                     * Verifies an UpdateInstanceRequest message.
                     * @param message Plain 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 UpdateInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace UpdateInstanceRequest {

                    /** MinimalAction enum. */
                    enum MinimalAction {
                        UNDEFINED_MINIMAL_ACTION = 0
                    }

                    /** MostDisruptiveAllowedAction enum. */
                    enum MostDisruptiveAllowedAction {
                        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0
                    }
                }

                /** Properties of an UpdateLicenseRequest. */
                interface IUpdateLicenseRequest {

                    /** UpdateLicenseRequest license */
                    license?: (string|null);

                    /** UpdateLicenseRequest licenseResource */
                    licenseResource?: (google.cloud.compute.v1beta.ILicense|null);

                    /** UpdateLicenseRequest project */
                    project?: (string|null);

                    /** UpdateLicenseRequest requestId */
                    requestId?: (string|null);

                    /** UpdateLicenseRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents an UpdateLicenseRequest. */
                class UpdateLicenseRequest implements IUpdateLicenseRequest {

                    /**
                     * Constructs a new UpdateLicenseRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateLicenseRequest);

                    /** UpdateLicenseRequest license. */
                    public license: string;

                    /** UpdateLicenseRequest licenseResource. */
                    public licenseResource?: (google.cloud.compute.v1beta.ILicense|null);

                    /** UpdateLicenseRequest project. */
                    public project: string;

                    /** UpdateLicenseRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateLicenseRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new UpdateLicenseRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateLicenseRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateLicenseRequest): google.cloud.compute.v1beta.UpdateLicenseRequest;

                    /**
                     * Encodes the specified UpdateLicenseRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateLicenseRequest.verify|verify} messages.
                     * @param message UpdateLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateLicenseRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateLicenseRequest.verify|verify} messages.
                     * @param message UpdateLicenseRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateLicenseRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateLicenseRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateLicenseRequest;

                    /**
                     * Decodes an UpdateLicenseRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateLicenseRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateLicenseRequest;

                    /**
                     * Verifies an UpdateLicenseRequest message.
                     * @param message Plain 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 UpdateLicenseRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateLicenseRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateLicenseRequest;

                    /**
                     * Creates a plain object from an UpdateLicenseRequest message. Also converts values to other types if specified.
                     * @param message UpdateLicenseRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateLicenseRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateLicenseRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateLicenseRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateNamedSetRouterRequest. */
                interface IUpdateNamedSetRouterRequest {

                    /** UpdateNamedSetRouterRequest namedSetResource */
                    namedSetResource?: (google.cloud.compute.v1beta.INamedSet|null);

                    /** UpdateNamedSetRouterRequest project */
                    project?: (string|null);

                    /** UpdateNamedSetRouterRequest region */
                    region?: (string|null);

                    /** UpdateNamedSetRouterRequest requestId */
                    requestId?: (string|null);

                    /** UpdateNamedSetRouterRequest router */
                    router?: (string|null);
                }

                /** Represents an UpdateNamedSetRouterRequest. */
                class UpdateNamedSetRouterRequest implements IUpdateNamedSetRouterRequest {

                    /**
                     * Constructs a new UpdateNamedSetRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateNamedSetRouterRequest);

                    /** UpdateNamedSetRouterRequest namedSetResource. */
                    public namedSetResource?: (google.cloud.compute.v1beta.INamedSet|null);

                    /** UpdateNamedSetRouterRequest project. */
                    public project: string;

                    /** UpdateNamedSetRouterRequest region. */
                    public region: string;

                    /** UpdateNamedSetRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateNamedSetRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new UpdateNamedSetRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateNamedSetRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateNamedSetRouterRequest): google.cloud.compute.v1beta.UpdateNamedSetRouterRequest;

                    /**
                     * Encodes the specified UpdateNamedSetRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateNamedSetRouterRequest.verify|verify} messages.
                     * @param message UpdateNamedSetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateNamedSetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateNamedSetRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateNamedSetRouterRequest.verify|verify} messages.
                     * @param message UpdateNamedSetRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateNamedSetRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateNamedSetRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateNamedSetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateNamedSetRouterRequest;

                    /**
                     * Decodes an UpdateNamedSetRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateNamedSetRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateNamedSetRouterRequest;

                    /**
                     * Verifies an UpdateNamedSetRouterRequest message.
                     * @param message Plain 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 UpdateNamedSetRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateNamedSetRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateNamedSetRouterRequest;

                    /**
                     * Creates a plain object from an UpdateNamedSetRouterRequest message. Also converts values to other types if specified.
                     * @param message UpdateNamedSetRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateNamedSetRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateNamedSetRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateNamedSetRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateNetworkInterfaceInstanceRequest. */
                interface IUpdateNetworkInterfaceInstanceRequest {

                    /** UpdateNetworkInterfaceInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest networkInterface */
                    networkInterface?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest networkInterfaceResource */
                    networkInterfaceResource?: (google.cloud.compute.v1beta.INetworkInterface|null);

                    /** UpdateNetworkInterfaceInstanceRequest project */
                    project?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateNetworkInterfaceInstanceRequest. */
                class UpdateNetworkInterfaceInstanceRequest implements IUpdateNetworkInterfaceInstanceRequest {

                    /**
                     * Constructs a new UpdateNetworkInterfaceInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest);

                    /** UpdateNetworkInterfaceInstanceRequest instance. */
                    public instance: string;

                    /** UpdateNetworkInterfaceInstanceRequest networkInterface. */
                    public networkInterface: string;

                    /** UpdateNetworkInterfaceInstanceRequest networkInterfaceResource. */
                    public networkInterfaceResource?: (google.cloud.compute.v1beta.INetworkInterface|null);

                    /** UpdateNetworkInterfaceInstanceRequest project. */
                    public project: string;

                    /** UpdateNetworkInterfaceInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateNetworkInterfaceInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateNetworkInterfaceInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateNetworkInterfaceInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest): google.cloud.compute.v1beta.UpdateNetworkInterfaceInstanceRequest;

                    /**
                     * Encodes the specified UpdateNetworkInterfaceInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message UpdateNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateNetworkInterfaceInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateNetworkInterfaceInstanceRequest.verify|verify} messages.
                     * @param message UpdateNetworkInterfaceInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateNetworkInterfaceInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateNetworkInterfaceInstanceRequest;

                    /**
                     * Decodes an UpdateNetworkInterfaceInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateNetworkInterfaceInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateNetworkInterfaceInstanceRequest;

                    /**
                     * Verifies an UpdateNetworkInterfaceInstanceRequest message.
                     * @param message Plain 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 UpdateNetworkInterfaceInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateNetworkInterfaceInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateNetworkInterfaceInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateNetworkInterfaceInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateNetworkInterfaceInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateNetworkInterfaceInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateNetworkInterfaceInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateNetworkInterfaceInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePeeringNetworkRequest. */
                interface IUpdatePeeringNetworkRequest {

                    /** UpdatePeeringNetworkRequest network */
                    network?: (string|null);

                    /** UpdatePeeringNetworkRequest networksUpdatePeeringRequestResource */
                    networksUpdatePeeringRequestResource?: (google.cloud.compute.v1beta.INetworksUpdatePeeringRequest|null);

                    /** UpdatePeeringNetworkRequest project */
                    project?: (string|null);

                    /** UpdatePeeringNetworkRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdatePeeringNetworkRequest. */
                class UpdatePeeringNetworkRequest implements IUpdatePeeringNetworkRequest {

                    /**
                     * Constructs a new UpdatePeeringNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdatePeeringNetworkRequest);

                    /** UpdatePeeringNetworkRequest network. */
                    public network: string;

                    /** UpdatePeeringNetworkRequest networksUpdatePeeringRequestResource. */
                    public networksUpdatePeeringRequestResource?: (google.cloud.compute.v1beta.INetworksUpdatePeeringRequest|null);

                    /** UpdatePeeringNetworkRequest project. */
                    public project: string;

                    /** UpdatePeeringNetworkRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdatePeeringNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePeeringNetworkRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdatePeeringNetworkRequest): google.cloud.compute.v1beta.UpdatePeeringNetworkRequest;

                    /**
                     * Encodes the specified UpdatePeeringNetworkRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdatePeeringNetworkRequest.verify|verify} messages.
                     * @param message UpdatePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdatePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePeeringNetworkRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdatePeeringNetworkRequest.verify|verify} messages.
                     * @param message UpdatePeeringNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdatePeeringNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePeeringNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdatePeeringNetworkRequest;

                    /**
                     * Decodes an UpdatePeeringNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePeeringNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdatePeeringNetworkRequest;

                    /**
                     * Verifies an UpdatePeeringNetworkRequest message.
                     * @param message Plain 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 UpdatePeeringNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePeeringNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdatePeeringNetworkRequest;

                    /**
                     * Creates a plain object from an UpdatePeeringNetworkRequest message. Also converts values to other types if specified.
                     * @param message UpdatePeeringNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdatePeeringNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePeeringNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePeeringNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePerInstanceConfigsInstanceGroupManagerRequest. */
                interface IUpdatePerInstanceConfigsInstanceGroupManagerRequest {

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersUpdatePerInstanceConfigsReqResource */
                    instanceGroupManagersUpdatePerInstanceConfigsReqResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersUpdatePerInstanceConfigsReq|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdatePerInstanceConfigsInstanceGroupManagerRequest. */
                class UpdatePerInstanceConfigsInstanceGroupManagerRequest implements IUpdatePerInstanceConfigsInstanceGroupManagerRequest {

                    /**
                     * Constructs a new UpdatePerInstanceConfigsInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsInstanceGroupManagerRequest);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest instanceGroupManagersUpdatePerInstanceConfigsReqResource. */
                    public instanceGroupManagersUpdatePerInstanceConfigsReqResource?: (google.cloud.compute.v1beta.IInstanceGroupManagersUpdatePerInstanceConfigsReq|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest project. */
                    public project: string;

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdatePerInstanceConfigsInstanceGroupManagerRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdatePerInstanceConfigsInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePerInstanceConfigsInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsInstanceGroupManagerRequest): google.cloud.compute.v1beta.UpdatePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified UpdatePerInstanceConfigsInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdatePerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdatePerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePerInstanceConfigsInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdatePerInstanceConfigsInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdatePerInstanceConfigsInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdatePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Decodes an UpdatePerInstanceConfigsInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdatePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Verifies an UpdatePerInstanceConfigsInstanceGroupManagerRequest message.
                     * @param message Plain 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 UpdatePerInstanceConfigsInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdatePerInstanceConfigsInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an UpdatePerInstanceConfigsInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdatePerInstanceConfigsInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePerInstanceConfigsInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePerInstanceConfigsInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest. */
                interface IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerUpdateInstanceConfigReqResource */
                    regionInstanceGroupManagerUpdateInstanceConfigReqResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagerUpdateInstanceConfigReq|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest. */
                class UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest implements IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest regionInstanceGroupManagerUpdateInstanceConfigReqResource. */
                    public regionInstanceGroupManagerUpdateInstanceConfigReqResource?: (google.cloud.compute.v1beta.IRegionInstanceGroupManagerUpdateInstanceConfigReq|null);

                    /** UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdatePreviewFeatureRequest. */
                interface IUpdatePreviewFeatureRequest {

                    /** UpdatePreviewFeatureRequest previewFeature */
                    previewFeature?: (string|null);

                    /** UpdatePreviewFeatureRequest previewFeatureResource */
                    previewFeatureResource?: (google.cloud.compute.v1beta.IPreviewFeature|null);

                    /** UpdatePreviewFeatureRequest project */
                    project?: (string|null);

                    /** UpdatePreviewFeatureRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdatePreviewFeatureRequest. */
                class UpdatePreviewFeatureRequest implements IUpdatePreviewFeatureRequest {

                    /**
                     * Constructs a new UpdatePreviewFeatureRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdatePreviewFeatureRequest);

                    /** UpdatePreviewFeatureRequest previewFeature. */
                    public previewFeature: string;

                    /** UpdatePreviewFeatureRequest previewFeatureResource. */
                    public previewFeatureResource?: (google.cloud.compute.v1beta.IPreviewFeature|null);

                    /** UpdatePreviewFeatureRequest project. */
                    public project: string;

                    /** UpdatePreviewFeatureRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdatePreviewFeatureRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdatePreviewFeatureRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdatePreviewFeatureRequest): google.cloud.compute.v1beta.UpdatePreviewFeatureRequest;

                    /**
                     * Encodes the specified UpdatePreviewFeatureRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdatePreviewFeatureRequest.verify|verify} messages.
                     * @param message UpdatePreviewFeatureRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdatePreviewFeatureRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdatePreviewFeatureRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdatePreviewFeatureRequest.verify|verify} messages.
                     * @param message UpdatePreviewFeatureRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdatePreviewFeatureRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdatePreviewFeatureRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdatePreviewFeatureRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdatePreviewFeatureRequest;

                    /**
                     * Decodes an UpdatePreviewFeatureRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdatePreviewFeatureRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdatePreviewFeatureRequest;

                    /**
                     * Verifies an UpdatePreviewFeatureRequest message.
                     * @param message Plain 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 UpdatePreviewFeatureRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdatePreviewFeatureRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdatePreviewFeatureRequest;

                    /**
                     * Creates a plain object from an UpdatePreviewFeatureRequest message. Also converts values to other types if specified.
                     * @param message UpdatePreviewFeatureRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdatePreviewFeatureRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdatePreviewFeatureRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdatePreviewFeatureRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionAutoscalerRequest. */
                interface IUpdateRegionAutoscalerRequest {

                    /** UpdateRegionAutoscalerRequest autoscaler */
                    autoscaler?: (string|null);

                    /** UpdateRegionAutoscalerRequest autoscalerResource */
                    autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** UpdateRegionAutoscalerRequest project */
                    project?: (string|null);

                    /** UpdateRegionAutoscalerRequest region */
                    region?: (string|null);

                    /** UpdateRegionAutoscalerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateRegionAutoscalerRequest. */
                class UpdateRegionAutoscalerRequest implements IUpdateRegionAutoscalerRequest {

                    /**
                     * Constructs a new UpdateRegionAutoscalerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRegionAutoscalerRequest);

                    /** UpdateRegionAutoscalerRequest autoscaler. */
                    public autoscaler?: (string|null);

                    /** UpdateRegionAutoscalerRequest autoscalerResource. */
                    public autoscalerResource?: (google.cloud.compute.v1beta.IAutoscaler|null);

                    /** UpdateRegionAutoscalerRequest project. */
                    public project: string;

                    /** UpdateRegionAutoscalerRequest region. */
                    public region: string;

                    /** UpdateRegionAutoscalerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateRegionAutoscalerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionAutoscalerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRegionAutoscalerRequest): google.cloud.compute.v1beta.UpdateRegionAutoscalerRequest;

                    /**
                     * Encodes the specified UpdateRegionAutoscalerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionAutoscalerRequest.verify|verify} messages.
                     * @param message UpdateRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionAutoscalerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionAutoscalerRequest.verify|verify} messages.
                     * @param message UpdateRegionAutoscalerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRegionAutoscalerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionAutoscalerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRegionAutoscalerRequest;

                    /**
                     * Decodes an UpdateRegionAutoscalerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionAutoscalerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRegionAutoscalerRequest;

                    /**
                     * Verifies an UpdateRegionAutoscalerRequest message.
                     * @param message Plain 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 UpdateRegionAutoscalerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionAutoscalerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRegionAutoscalerRequest;

                    /**
                     * Creates a plain object from an UpdateRegionAutoscalerRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionAutoscalerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRegionAutoscalerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionAutoscalerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionAutoscalerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionBackendServiceRequest. */
                interface IUpdateRegionBackendServiceRequest {

                    /** UpdateRegionBackendServiceRequest backendService */
                    backendService?: (string|null);

                    /** UpdateRegionBackendServiceRequest backendServiceResource */
                    backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** UpdateRegionBackendServiceRequest project */
                    project?: (string|null);

                    /** UpdateRegionBackendServiceRequest region */
                    region?: (string|null);

                    /** UpdateRegionBackendServiceRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateRegionBackendServiceRequest. */
                class UpdateRegionBackendServiceRequest implements IUpdateRegionBackendServiceRequest {

                    /**
                     * Constructs a new UpdateRegionBackendServiceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRegionBackendServiceRequest);

                    /** UpdateRegionBackendServiceRequest backendService. */
                    public backendService: string;

                    /** UpdateRegionBackendServiceRequest backendServiceResource. */
                    public backendServiceResource?: (google.cloud.compute.v1beta.IBackendService|null);

                    /** UpdateRegionBackendServiceRequest project. */
                    public project: string;

                    /** UpdateRegionBackendServiceRequest region. */
                    public region: string;

                    /** UpdateRegionBackendServiceRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateRegionBackendServiceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionBackendServiceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRegionBackendServiceRequest): google.cloud.compute.v1beta.UpdateRegionBackendServiceRequest;

                    /**
                     * Encodes the specified UpdateRegionBackendServiceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionBackendServiceRequest.verify|verify} messages.
                     * @param message UpdateRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionBackendServiceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionBackendServiceRequest.verify|verify} messages.
                     * @param message UpdateRegionBackendServiceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRegionBackendServiceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionBackendServiceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRegionBackendServiceRequest;

                    /**
                     * Decodes an UpdateRegionBackendServiceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionBackendServiceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRegionBackendServiceRequest;

                    /**
                     * Verifies an UpdateRegionBackendServiceRequest message.
                     * @param message Plain 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 UpdateRegionBackendServiceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionBackendServiceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRegionBackendServiceRequest;

                    /**
                     * Creates a plain object from an UpdateRegionBackendServiceRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionBackendServiceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRegionBackendServiceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionBackendServiceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionBackendServiceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionCommitmentRequest. */
                interface IUpdateRegionCommitmentRequest {

                    /** UpdateRegionCommitmentRequest commitment */
                    commitment?: (string|null);

                    /** UpdateRegionCommitmentRequest commitmentResource */
                    commitmentResource?: (google.cloud.compute.v1beta.ICommitment|null);

                    /** UpdateRegionCommitmentRequest paths */
                    paths?: (string|null);

                    /** UpdateRegionCommitmentRequest project */
                    project?: (string|null);

                    /** UpdateRegionCommitmentRequest region */
                    region?: (string|null);

                    /** UpdateRegionCommitmentRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRegionCommitmentRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents an UpdateRegionCommitmentRequest. */
                class UpdateRegionCommitmentRequest implements IUpdateRegionCommitmentRequest {

                    /**
                     * Constructs a new UpdateRegionCommitmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRegionCommitmentRequest);

                    /** UpdateRegionCommitmentRequest commitment. */
                    public commitment: string;

                    /** UpdateRegionCommitmentRequest commitmentResource. */
                    public commitmentResource?: (google.cloud.compute.v1beta.ICommitment|null);

                    /** UpdateRegionCommitmentRequest paths. */
                    public paths?: (string|null);

                    /** UpdateRegionCommitmentRequest project. */
                    public project: string;

                    /** UpdateRegionCommitmentRequest region. */
                    public region: string;

                    /** UpdateRegionCommitmentRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRegionCommitmentRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new UpdateRegionCommitmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionCommitmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRegionCommitmentRequest): google.cloud.compute.v1beta.UpdateRegionCommitmentRequest;

                    /**
                     * Encodes the specified UpdateRegionCommitmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionCommitmentRequest.verify|verify} messages.
                     * @param message UpdateRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionCommitmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionCommitmentRequest.verify|verify} messages.
                     * @param message UpdateRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionCommitmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRegionCommitmentRequest;

                    /**
                     * Decodes an UpdateRegionCommitmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRegionCommitmentRequest;

                    /**
                     * Verifies an UpdateRegionCommitmentRequest message.
                     * @param message Plain 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 UpdateRegionCommitmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionCommitmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRegionCommitmentRequest;

                    /**
                     * Creates a plain object from an UpdateRegionCommitmentRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionCommitmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRegionCommitmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionCommitmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionCommitmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionDiskRequest. */
                interface IUpdateRegionDiskRequest {

                    /** UpdateRegionDiskRequest disk */
                    disk?: (string|null);

                    /** UpdateRegionDiskRequest diskResource */
                    diskResource?: (google.cloud.compute.v1beta.IDisk|null);

                    /** UpdateRegionDiskRequest paths */
                    paths?: (string|null);

                    /** UpdateRegionDiskRequest project */
                    project?: (string|null);

                    /** UpdateRegionDiskRequest region */
                    region?: (string|null);

                    /** UpdateRegionDiskRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRegionDiskRequest updateMask */
                    updateMask?: (string|null);
                }

                /** Represents an UpdateRegionDiskRequest. */
                class UpdateRegionDiskRequest implements IUpdateRegionDiskRequest {

                    /**
                     * Constructs a new UpdateRegionDiskRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRegionDiskRequest);

                    /** UpdateRegionDiskRequest disk. */
                    public disk: string;

                    /** UpdateRegionDiskRequest diskResource. */
                    public diskResource?: (google.cloud.compute.v1beta.IDisk|null);

                    /** UpdateRegionDiskRequest paths. */
                    public paths?: (string|null);

                    /** UpdateRegionDiskRequest project. */
                    public project: string;

                    /** UpdateRegionDiskRequest region. */
                    public region: string;

                    /** UpdateRegionDiskRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRegionDiskRequest updateMask. */
                    public updateMask?: (string|null);

                    /**
                     * Creates a new UpdateRegionDiskRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionDiskRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRegionDiskRequest): google.cloud.compute.v1beta.UpdateRegionDiskRequest;

                    /**
                     * Encodes the specified UpdateRegionDiskRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionDiskRequest.verify|verify} messages.
                     * @param message UpdateRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionDiskRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionDiskRequest.verify|verify} messages.
                     * @param message UpdateRegionDiskRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRegionDiskRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionDiskRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRegionDiskRequest;

                    /**
                     * Decodes an UpdateRegionDiskRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionDiskRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRegionDiskRequest;

                    /**
                     * Verifies an UpdateRegionDiskRequest message.
                     * @param message Plain 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 UpdateRegionDiskRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionDiskRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRegionDiskRequest;

                    /**
                     * Creates a plain object from an UpdateRegionDiskRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionDiskRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRegionDiskRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionDiskRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionDiskRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionHealthCheckRequest. */
                interface IUpdateRegionHealthCheckRequest {

                    /** UpdateRegionHealthCheckRequest healthCheck */
                    healthCheck?: (string|null);

                    /** UpdateRegionHealthCheckRequest healthCheckResource */
                    healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** UpdateRegionHealthCheckRequest project */
                    project?: (string|null);

                    /** UpdateRegionHealthCheckRequest region */
                    region?: (string|null);

                    /** UpdateRegionHealthCheckRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateRegionHealthCheckRequest. */
                class UpdateRegionHealthCheckRequest implements IUpdateRegionHealthCheckRequest {

                    /**
                     * Constructs a new UpdateRegionHealthCheckRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRegionHealthCheckRequest);

                    /** UpdateRegionHealthCheckRequest healthCheck. */
                    public healthCheck: string;

                    /** UpdateRegionHealthCheckRequest healthCheckResource. */
                    public healthCheckResource?: (google.cloud.compute.v1beta.IHealthCheck|null);

                    /** UpdateRegionHealthCheckRequest project. */
                    public project: string;

                    /** UpdateRegionHealthCheckRequest region. */
                    public region: string;

                    /** UpdateRegionHealthCheckRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateRegionHealthCheckRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionHealthCheckRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRegionHealthCheckRequest): google.cloud.compute.v1beta.UpdateRegionHealthCheckRequest;

                    /**
                     * Encodes the specified UpdateRegionHealthCheckRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionHealthCheckRequest.verify|verify} messages.
                     * @param message UpdateRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionHealthCheckRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionHealthCheckRequest.verify|verify} messages.
                     * @param message UpdateRegionHealthCheckRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRegionHealthCheckRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionHealthCheckRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRegionHealthCheckRequest;

                    /**
                     * Decodes an UpdateRegionHealthCheckRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionHealthCheckRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRegionHealthCheckRequest;

                    /**
                     * Verifies an UpdateRegionHealthCheckRequest message.
                     * @param message Plain 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 UpdateRegionHealthCheckRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionHealthCheckRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRegionHealthCheckRequest;

                    /**
                     * Creates a plain object from an UpdateRegionHealthCheckRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionHealthCheckRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRegionHealthCheckRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionHealthCheckRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionHealthCheckRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionInstanceGroupManagerRequest. */
                interface IUpdateRegionInstanceGroupManagerRequest {

                    /** UpdateRegionInstanceGroupManagerRequest instanceGroupManager */
                    instanceGroupManager?: (string|null);

                    /** UpdateRegionInstanceGroupManagerRequest instanceGroupManagerResource */
                    instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** UpdateRegionInstanceGroupManagerRequest project */
                    project?: (string|null);

                    /** UpdateRegionInstanceGroupManagerRequest region */
                    region?: (string|null);

                    /** UpdateRegionInstanceGroupManagerRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateRegionInstanceGroupManagerRequest. */
                class UpdateRegionInstanceGroupManagerRequest implements IUpdateRegionInstanceGroupManagerRequest {

                    /**
                     * Constructs a new UpdateRegionInstanceGroupManagerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRegionInstanceGroupManagerRequest);

                    /** UpdateRegionInstanceGroupManagerRequest instanceGroupManager. */
                    public instanceGroupManager: string;

                    /** UpdateRegionInstanceGroupManagerRequest instanceGroupManagerResource. */
                    public instanceGroupManagerResource?: (google.cloud.compute.v1beta.IInstanceGroupManager|null);

                    /** UpdateRegionInstanceGroupManagerRequest project. */
                    public project: string;

                    /** UpdateRegionInstanceGroupManagerRequest region. */
                    public region: string;

                    /** UpdateRegionInstanceGroupManagerRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateRegionInstanceGroupManagerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionInstanceGroupManagerRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRegionInstanceGroupManagerRequest): google.cloud.compute.v1beta.UpdateRegionInstanceGroupManagerRequest;

                    /**
                     * Encodes the specified UpdateRegionInstanceGroupManagerRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdateRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionInstanceGroupManagerRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionInstanceGroupManagerRequest.verify|verify} messages.
                     * @param message UpdateRegionInstanceGroupManagerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRegionInstanceGroupManagerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionInstanceGroupManagerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRegionInstanceGroupManagerRequest;

                    /**
                     * Decodes an UpdateRegionInstanceGroupManagerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionInstanceGroupManagerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRegionInstanceGroupManagerRequest;

                    /**
                     * Verifies an UpdateRegionInstanceGroupManagerRequest message.
                     * @param message Plain 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 UpdateRegionInstanceGroupManagerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionInstanceGroupManagerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRegionInstanceGroupManagerRequest;

                    /**
                     * Creates a plain object from an UpdateRegionInstanceGroupManagerRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionInstanceGroupManagerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRegionInstanceGroupManagerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionInstanceGroupManagerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionInstanceGroupManagerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRegionUrlMapRequest. */
                interface IUpdateRegionUrlMapRequest {

                    /** UpdateRegionUrlMapRequest project */
                    project?: (string|null);

                    /** UpdateRegionUrlMapRequest region */
                    region?: (string|null);

                    /** UpdateRegionUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** UpdateRegionUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);
                }

                /** Represents an UpdateRegionUrlMapRequest. */
                class UpdateRegionUrlMapRequest implements IUpdateRegionUrlMapRequest {

                    /**
                     * Constructs a new UpdateRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRegionUrlMapRequest);

                    /** UpdateRegionUrlMapRequest project. */
                    public project: string;

                    /** UpdateRegionUrlMapRequest region. */
                    public region: string;

                    /** UpdateRegionUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** UpdateRegionUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);

                    /**
                     * Creates a new UpdateRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRegionUrlMapRequest): google.cloud.compute.v1beta.UpdateRegionUrlMapRequest;

                    /**
                     * Encodes the specified UpdateRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionUrlMapRequest.verify|verify} messages.
                     * @param message UpdateRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRegionUrlMapRequest.verify|verify} messages.
                     * @param message UpdateRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRegionUrlMapRequest;

                    /**
                     * Decodes an UpdateRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRegionUrlMapRequest;

                    /**
                     * Verifies an UpdateRegionUrlMapRequest message.
                     * @param message Plain 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 UpdateRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRegionUrlMapRequest;

                    /**
                     * Creates a plain object from an UpdateRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message UpdateRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateReservationRequest. */
                interface IUpdateReservationRequest {

                    /** UpdateReservationRequest paths */
                    paths?: (string|null);

                    /** UpdateReservationRequest project */
                    project?: (string|null);

                    /** UpdateReservationRequest requestId */
                    requestId?: (string|null);

                    /** UpdateReservationRequest reservation */
                    reservation?: (string|null);

                    /** UpdateReservationRequest reservationResource */
                    reservationResource?: (google.cloud.compute.v1beta.IReservation|null);

                    /** UpdateReservationRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateReservationRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateReservationRequest. */
                class UpdateReservationRequest implements IUpdateReservationRequest {

                    /**
                     * Constructs a new UpdateReservationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateReservationRequest);

                    /** UpdateReservationRequest paths. */
                    public paths?: (string|null);

                    /** UpdateReservationRequest project. */
                    public project: string;

                    /** UpdateReservationRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateReservationRequest reservation. */
                    public reservation: string;

                    /** UpdateReservationRequest reservationResource. */
                    public reservationResource?: (google.cloud.compute.v1beta.IReservation|null);

                    /** UpdateReservationRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateReservationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateReservationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateReservationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateReservationRequest): google.cloud.compute.v1beta.UpdateReservationRequest;

                    /**
                     * Encodes the specified UpdateReservationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateReservationRequest.verify|verify} messages.
                     * @param message UpdateReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateReservationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateReservationRequest.verify|verify} messages.
                     * @param message UpdateReservationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateReservationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateReservationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateReservationRequest;

                    /**
                     * Decodes an UpdateReservationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateReservationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateReservationRequest;

                    /**
                     * Verifies an UpdateReservationRequest message.
                     * @param message Plain 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 UpdateReservationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateReservationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateReservationRequest;

                    /**
                     * Creates a plain object from an UpdateReservationRequest message. Also converts values to other types if specified.
                     * @param message UpdateReservationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateReservationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateReservationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateReservationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateReservationSlotRequest. */
                interface IUpdateReservationSlotRequest {

                    /** UpdateReservationSlotRequest parentName */
                    parentName?: (string|null);

                    /** UpdateReservationSlotRequest project */
                    project?: (string|null);

                    /** UpdateReservationSlotRequest reservationSlot */
                    reservationSlot?: (string|null);

                    /** UpdateReservationSlotRequest reservationSlotResource */
                    reservationSlotResource?: (google.cloud.compute.v1beta.IReservationSlot|null);

                    /** UpdateReservationSlotRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateReservationSlotRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateReservationSlotRequest. */
                class UpdateReservationSlotRequest implements IUpdateReservationSlotRequest {

                    /**
                     * Constructs a new UpdateReservationSlotRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateReservationSlotRequest);

                    /** UpdateReservationSlotRequest parentName. */
                    public parentName: string;

                    /** UpdateReservationSlotRequest project. */
                    public project: string;

                    /** UpdateReservationSlotRequest reservationSlot. */
                    public reservationSlot: string;

                    /** UpdateReservationSlotRequest reservationSlotResource. */
                    public reservationSlotResource?: (google.cloud.compute.v1beta.IReservationSlot|null);

                    /** UpdateReservationSlotRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateReservationSlotRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateReservationSlotRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateReservationSlotRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateReservationSlotRequest): google.cloud.compute.v1beta.UpdateReservationSlotRequest;

                    /**
                     * Encodes the specified UpdateReservationSlotRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateReservationSlotRequest.verify|verify} messages.
                     * @param message UpdateReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateReservationSlotRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateReservationSlotRequest.verify|verify} messages.
                     * @param message UpdateReservationSlotRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateReservationSlotRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateReservationSlotRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateReservationSlotRequest;

                    /**
                     * Decodes an UpdateReservationSlotRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateReservationSlotRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateReservationSlotRequest;

                    /**
                     * Verifies an UpdateReservationSlotRequest message.
                     * @param message Plain 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 UpdateReservationSlotRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateReservationSlotRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateReservationSlotRequest;

                    /**
                     * Creates a plain object from an UpdateReservationSlotRequest message. Also converts values to other types if specified.
                     * @param message UpdateReservationSlotRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateReservationSlotRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateReservationSlotRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateReservationSlotRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateReservationsRegionCommitmentRequest. */
                interface IUpdateReservationsRegionCommitmentRequest {

                    /** UpdateReservationsRegionCommitmentRequest commitment */
                    commitment?: (string|null);

                    /** UpdateReservationsRegionCommitmentRequest project */
                    project?: (string|null);

                    /** UpdateReservationsRegionCommitmentRequest region */
                    region?: (string|null);

                    /** UpdateReservationsRegionCommitmentRequest regionCommitmentsUpdateReservationsRequestResource */
                    regionCommitmentsUpdateReservationsRequestResource?: (google.cloud.compute.v1beta.IRegionCommitmentsUpdateReservationsRequest|null);

                    /** UpdateReservationsRegionCommitmentRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateReservationsRegionCommitmentRequest. */
                class UpdateReservationsRegionCommitmentRequest implements IUpdateReservationsRegionCommitmentRequest {

                    /**
                     * Constructs a new UpdateReservationsRegionCommitmentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateReservationsRegionCommitmentRequest);

                    /** UpdateReservationsRegionCommitmentRequest commitment. */
                    public commitment: string;

                    /** UpdateReservationsRegionCommitmentRequest project. */
                    public project: string;

                    /** UpdateReservationsRegionCommitmentRequest region. */
                    public region: string;

                    /** UpdateReservationsRegionCommitmentRequest regionCommitmentsUpdateReservationsRequestResource. */
                    public regionCommitmentsUpdateReservationsRequestResource?: (google.cloud.compute.v1beta.IRegionCommitmentsUpdateReservationsRequest|null);

                    /** UpdateReservationsRegionCommitmentRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new UpdateReservationsRegionCommitmentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateReservationsRegionCommitmentRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateReservationsRegionCommitmentRequest): google.cloud.compute.v1beta.UpdateReservationsRegionCommitmentRequest;

                    /**
                     * Encodes the specified UpdateReservationsRegionCommitmentRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateReservationsRegionCommitmentRequest.verify|verify} messages.
                     * @param message UpdateReservationsRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateReservationsRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateReservationsRegionCommitmentRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateReservationsRegionCommitmentRequest.verify|verify} messages.
                     * @param message UpdateReservationsRegionCommitmentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateReservationsRegionCommitmentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateReservationsRegionCommitmentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateReservationsRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateReservationsRegionCommitmentRequest;

                    /**
                     * Decodes an UpdateReservationsRegionCommitmentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateReservationsRegionCommitmentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateReservationsRegionCommitmentRequest;

                    /**
                     * Verifies an UpdateReservationsRegionCommitmentRequest message.
                     * @param message Plain 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 UpdateReservationsRegionCommitmentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateReservationsRegionCommitmentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateReservationsRegionCommitmentRequest;

                    /**
                     * Creates a plain object from an UpdateReservationsRegionCommitmentRequest message. Also converts values to other types if specified.
                     * @param message UpdateReservationsRegionCommitmentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateReservationsRegionCommitmentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateReservationsRegionCommitmentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateReservationsRegionCommitmentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRoutePolicyRouterRequest. */
                interface IUpdateRoutePolicyRouterRequest {

                    /** UpdateRoutePolicyRouterRequest project */
                    project?: (string|null);

                    /** UpdateRoutePolicyRouterRequest region */
                    region?: (string|null);

                    /** UpdateRoutePolicyRouterRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRoutePolicyRouterRequest routePolicyResource */
                    routePolicyResource?: (google.cloud.compute.v1beta.IRoutePolicy|null);

                    /** UpdateRoutePolicyRouterRequest router */
                    router?: (string|null);
                }

                /** Represents an UpdateRoutePolicyRouterRequest. */
                class UpdateRoutePolicyRouterRequest implements IUpdateRoutePolicyRouterRequest {

                    /**
                     * Constructs a new UpdateRoutePolicyRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRoutePolicyRouterRequest);

                    /** UpdateRoutePolicyRouterRequest project. */
                    public project: string;

                    /** UpdateRoutePolicyRouterRequest region. */
                    public region: string;

                    /** UpdateRoutePolicyRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRoutePolicyRouterRequest routePolicyResource. */
                    public routePolicyResource?: (google.cloud.compute.v1beta.IRoutePolicy|null);

                    /** UpdateRoutePolicyRouterRequest router. */
                    public router: string;

                    /**
                     * Creates a new UpdateRoutePolicyRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRoutePolicyRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRoutePolicyRouterRequest): google.cloud.compute.v1beta.UpdateRoutePolicyRouterRequest;

                    /**
                     * Encodes the specified UpdateRoutePolicyRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message UpdateRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRoutePolicyRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRoutePolicyRouterRequest.verify|verify} messages.
                     * @param message UpdateRoutePolicyRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRoutePolicyRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRoutePolicyRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRoutePolicyRouterRequest;

                    /**
                     * Decodes an UpdateRoutePolicyRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRoutePolicyRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRoutePolicyRouterRequest;

                    /**
                     * Verifies an UpdateRoutePolicyRouterRequest message.
                     * @param message Plain 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 UpdateRoutePolicyRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRoutePolicyRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRoutePolicyRouterRequest;

                    /**
                     * Creates a plain object from an UpdateRoutePolicyRouterRequest message. Also converts values to other types if specified.
                     * @param message UpdateRoutePolicyRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRoutePolicyRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRoutePolicyRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRoutePolicyRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateRouterRequest. */
                interface IUpdateRouterRequest {

                    /** UpdateRouterRequest project */
                    project?: (string|null);

                    /** UpdateRouterRequest region */
                    region?: (string|null);

                    /** UpdateRouterRequest requestId */
                    requestId?: (string|null);

                    /** UpdateRouterRequest router */
                    router?: (string|null);

                    /** UpdateRouterRequest routerResource */
                    routerResource?: (google.cloud.compute.v1beta.IRouter|null);
                }

                /** Represents an UpdateRouterRequest. */
                class UpdateRouterRequest implements IUpdateRouterRequest {

                    /**
                     * Constructs a new UpdateRouterRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateRouterRequest);

                    /** UpdateRouterRequest project. */
                    public project: string;

                    /** UpdateRouterRequest region. */
                    public region: string;

                    /** UpdateRouterRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateRouterRequest router. */
                    public router: string;

                    /** UpdateRouterRequest routerResource. */
                    public routerResource?: (google.cloud.compute.v1beta.IRouter|null);

                    /**
                     * Creates a new UpdateRouterRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateRouterRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateRouterRequest): google.cloud.compute.v1beta.UpdateRouterRequest;

                    /**
                     * Encodes the specified UpdateRouterRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRouterRequest.verify|verify} messages.
                     * @param message UpdateRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateRouterRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateRouterRequest.verify|verify} messages.
                     * @param message UpdateRouterRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateRouterRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateRouterRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateRouterRequest;

                    /**
                     * Decodes an UpdateRouterRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateRouterRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateRouterRequest;

                    /**
                     * Verifies an UpdateRouterRequest message.
                     * @param message Plain 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 UpdateRouterRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateRouterRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateRouterRequest;

                    /**
                     * Creates a plain object from an UpdateRouterRequest message. Also converts values to other types if specified.
                     * @param message UpdateRouterRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateRouterRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateRouterRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateRouterRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateShieldedInstanceConfigInstanceRequest. */
                interface IUpdateShieldedInstanceConfigInstanceRequest {

                    /** UpdateShieldedInstanceConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest project */
                    project?: (string|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest shieldedInstanceConfigResource */
                    shieldedInstanceConfigResource?: (google.cloud.compute.v1beta.IShieldedInstanceConfig|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateShieldedInstanceConfigInstanceRequest. */
                class UpdateShieldedInstanceConfigInstanceRequest implements IUpdateShieldedInstanceConfigInstanceRequest {

                    /**
                     * Constructs a new UpdateShieldedInstanceConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest);

                    /** UpdateShieldedInstanceConfigInstanceRequest instance. */
                    public instance: string;

                    /** UpdateShieldedInstanceConfigInstanceRequest project. */
                    public project: string;

                    /** UpdateShieldedInstanceConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest shieldedInstanceConfigResource. */
                    public shieldedInstanceConfigResource?: (google.cloud.compute.v1beta.IShieldedInstanceConfig|null);

                    /** UpdateShieldedInstanceConfigInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateShieldedInstanceConfigInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateShieldedInstanceConfigInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest): google.cloud.compute.v1beta.UpdateShieldedInstanceConfigInstanceRequest;

                    /**
                     * Encodes the specified UpdateShieldedInstanceConfigInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateShieldedInstanceConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateShieldedInstanceConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateShieldedInstanceConfigInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateShieldedInstanceConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateShieldedInstanceConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateShieldedInstanceConfigInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateShieldedInstanceConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateShieldedInstanceConfigInstanceRequest;

                    /**
                     * Decodes an UpdateShieldedInstanceConfigInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateShieldedInstanceConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateShieldedInstanceConfigInstanceRequest;

                    /**
                     * Verifies an UpdateShieldedInstanceConfigInstanceRequest message.
                     * @param message Plain 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 UpdateShieldedInstanceConfigInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateShieldedInstanceConfigInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateShieldedInstanceConfigInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateShieldedInstanceConfigInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateShieldedInstanceConfigInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateShieldedInstanceConfigInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateShieldedInstanceConfigInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateShieldedInstanceConfigInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateShieldedVmConfigInstanceRequest. */
                interface IUpdateShieldedVmConfigInstanceRequest {

                    /** UpdateShieldedVmConfigInstanceRequest instance */
                    instance?: (string|null);

                    /** UpdateShieldedVmConfigInstanceRequest project */
                    project?: (string|null);

                    /** UpdateShieldedVmConfigInstanceRequest requestId */
                    requestId?: (string|null);

                    /** UpdateShieldedVmConfigInstanceRequest shieldedVmConfigResource */
                    shieldedVmConfigResource?: (google.cloud.compute.v1beta.IShieldedVmConfig|null);

                    /** UpdateShieldedVmConfigInstanceRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateShieldedVmConfigInstanceRequest. */
                class UpdateShieldedVmConfigInstanceRequest implements IUpdateShieldedVmConfigInstanceRequest {

                    /**
                     * Constructs a new UpdateShieldedVmConfigInstanceRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest);

                    /** UpdateShieldedVmConfigInstanceRequest instance. */
                    public instance: string;

                    /** UpdateShieldedVmConfigInstanceRequest project. */
                    public project: string;

                    /** UpdateShieldedVmConfigInstanceRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateShieldedVmConfigInstanceRequest shieldedVmConfigResource. */
                    public shieldedVmConfigResource?: (google.cloud.compute.v1beta.IShieldedVmConfig|null);

                    /** UpdateShieldedVmConfigInstanceRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateShieldedVmConfigInstanceRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateShieldedVmConfigInstanceRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest): google.cloud.compute.v1beta.UpdateShieldedVmConfigInstanceRequest;

                    /**
                     * Encodes the specified UpdateShieldedVmConfigInstanceRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateShieldedVmConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateShieldedVmConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateShieldedVmConfigInstanceRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateShieldedVmConfigInstanceRequest.verify|verify} messages.
                     * @param message UpdateShieldedVmConfigInstanceRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateShieldedVmConfigInstanceRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateShieldedVmConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateShieldedVmConfigInstanceRequest;

                    /**
                     * Decodes an UpdateShieldedVmConfigInstanceRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateShieldedVmConfigInstanceRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateShieldedVmConfigInstanceRequest;

                    /**
                     * Verifies an UpdateShieldedVmConfigInstanceRequest message.
                     * @param message Plain 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 UpdateShieldedVmConfigInstanceRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateShieldedVmConfigInstanceRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateShieldedVmConfigInstanceRequest;

                    /**
                     * Creates a plain object from an UpdateShieldedVmConfigInstanceRequest message. Also converts values to other types if specified.
                     * @param message UpdateShieldedVmConfigInstanceRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateShieldedVmConfigInstanceRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateShieldedVmConfigInstanceRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateShieldedVmConfigInstanceRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateStoragePoolRequest. */
                interface IUpdateStoragePoolRequest {

                    /** UpdateStoragePoolRequest project */
                    project?: (string|null);

                    /** UpdateStoragePoolRequest requestId */
                    requestId?: (string|null);

                    /** UpdateStoragePoolRequest storagePool */
                    storagePool?: (string|null);

                    /** UpdateStoragePoolRequest storagePoolResource */
                    storagePoolResource?: (google.cloud.compute.v1beta.IStoragePool|null);

                    /** UpdateStoragePoolRequest updateMask */
                    updateMask?: (string|null);

                    /** UpdateStoragePoolRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateStoragePoolRequest. */
                class UpdateStoragePoolRequest implements IUpdateStoragePoolRequest {

                    /**
                     * Constructs a new UpdateStoragePoolRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateStoragePoolRequest);

                    /** UpdateStoragePoolRequest project. */
                    public project: string;

                    /** UpdateStoragePoolRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateStoragePoolRequest storagePool. */
                    public storagePool: string;

                    /** UpdateStoragePoolRequest storagePoolResource. */
                    public storagePoolResource?: (google.cloud.compute.v1beta.IStoragePool|null);

                    /** UpdateStoragePoolRequest updateMask. */
                    public updateMask?: (string|null);

                    /** UpdateStoragePoolRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateStoragePoolRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateStoragePoolRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateStoragePoolRequest): google.cloud.compute.v1beta.UpdateStoragePoolRequest;

                    /**
                     * Encodes the specified UpdateStoragePoolRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateStoragePoolRequest.verify|verify} messages.
                     * @param message UpdateStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateStoragePoolRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateStoragePoolRequest.verify|verify} messages.
                     * @param message UpdateStoragePoolRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateStoragePoolRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateStoragePoolRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateStoragePoolRequest;

                    /**
                     * Decodes an UpdateStoragePoolRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateStoragePoolRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateStoragePoolRequest;

                    /**
                     * Verifies an UpdateStoragePoolRequest message.
                     * @param message Plain 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 UpdateStoragePoolRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateStoragePoolRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateStoragePoolRequest;

                    /**
                     * Creates a plain object from an UpdateStoragePoolRequest message. Also converts values to other types if specified.
                     * @param message UpdateStoragePoolRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateStoragePoolRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateStoragePoolRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateStoragePoolRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateUrlMapRequest. */
                interface IUpdateUrlMapRequest {

                    /** UpdateUrlMapRequest project */
                    project?: (string|null);

                    /** UpdateUrlMapRequest requestId */
                    requestId?: (string|null);

                    /** UpdateUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** UpdateUrlMapRequest urlMapResource */
                    urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);
                }

                /** Represents an UpdateUrlMapRequest. */
                class UpdateUrlMapRequest implements IUpdateUrlMapRequest {

                    /**
                     * Constructs a new UpdateUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateUrlMapRequest);

                    /** UpdateUrlMapRequest project. */
                    public project: string;

                    /** UpdateUrlMapRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** UpdateUrlMapRequest urlMapResource. */
                    public urlMapResource?: (google.cloud.compute.v1beta.IUrlMap|null);

                    /**
                     * Creates a new UpdateUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateUrlMapRequest): google.cloud.compute.v1beta.UpdateUrlMapRequest;

                    /**
                     * Encodes the specified UpdateUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateUrlMapRequest.verify|verify} messages.
                     * @param message UpdateUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateUrlMapRequest.verify|verify} messages.
                     * @param message UpdateUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateUrlMapRequest;

                    /**
                     * Decodes an UpdateUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateUrlMapRequest;

                    /**
                     * Verifies an UpdateUrlMapRequest message.
                     * @param message Plain 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 UpdateUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateUrlMapRequest;

                    /**
                     * Creates a plain object from an UpdateUrlMapRequest message. Also converts values to other types if specified.
                     * @param message UpdateUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateZoneVmExtensionPolicyRequest. */
                interface IUpdateZoneVmExtensionPolicyRequest {

                    /** UpdateZoneVmExtensionPolicyRequest project */
                    project?: (string|null);

                    /** UpdateZoneVmExtensionPolicyRequest requestId */
                    requestId?: (string|null);

                    /** UpdateZoneVmExtensionPolicyRequest vmExtensionPolicy */
                    vmExtensionPolicy?: (string|null);

                    /** UpdateZoneVmExtensionPolicyRequest vmExtensionPolicyResource */
                    vmExtensionPolicyResource?: (google.cloud.compute.v1beta.IVmExtensionPolicy|null);

                    /** UpdateZoneVmExtensionPolicyRequest zone */
                    zone?: (string|null);
                }

                /** Represents an UpdateZoneVmExtensionPolicyRequest. */
                class UpdateZoneVmExtensionPolicyRequest implements IUpdateZoneVmExtensionPolicyRequest {

                    /**
                     * Constructs a new UpdateZoneVmExtensionPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUpdateZoneVmExtensionPolicyRequest);

                    /** UpdateZoneVmExtensionPolicyRequest project. */
                    public project: string;

                    /** UpdateZoneVmExtensionPolicyRequest requestId. */
                    public requestId?: (string|null);

                    /** UpdateZoneVmExtensionPolicyRequest vmExtensionPolicy. */
                    public vmExtensionPolicy: string;

                    /** UpdateZoneVmExtensionPolicyRequest vmExtensionPolicyResource. */
                    public vmExtensionPolicyResource?: (google.cloud.compute.v1beta.IVmExtensionPolicy|null);

                    /** UpdateZoneVmExtensionPolicyRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new UpdateZoneVmExtensionPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateZoneVmExtensionPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUpdateZoneVmExtensionPolicyRequest): google.cloud.compute.v1beta.UpdateZoneVmExtensionPolicyRequest;

                    /**
                     * Encodes the specified UpdateZoneVmExtensionPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UpdateZoneVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message UpdateZoneVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUpdateZoneVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateZoneVmExtensionPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UpdateZoneVmExtensionPolicyRequest.verify|verify} messages.
                     * @param message UpdateZoneVmExtensionPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUpdateZoneVmExtensionPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateZoneVmExtensionPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateZoneVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UpdateZoneVmExtensionPolicyRequest;

                    /**
                     * Decodes an UpdateZoneVmExtensionPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateZoneVmExtensionPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UpdateZoneVmExtensionPolicyRequest;

                    /**
                     * Verifies an UpdateZoneVmExtensionPolicyRequest message.
                     * @param message Plain 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 UpdateZoneVmExtensionPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateZoneVmExtensionPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UpdateZoneVmExtensionPolicyRequest;

                    /**
                     * Creates a plain object from an UpdateZoneVmExtensionPolicyRequest message. Also converts values to other types if specified.
                     * @param message UpdateZoneVmExtensionPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UpdateZoneVmExtensionPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateZoneVmExtensionPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateZoneVmExtensionPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMap. */
                interface IUrlMap {

                    /** UrlMap creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** UrlMap defaultCustomErrorResponsePolicy */
                    defaultCustomErrorResponsePolicy?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicy|null);

                    /** UrlMap defaultRouteAction */
                    defaultRouteAction?: (google.cloud.compute.v1beta.IHttpRouteAction|null);

                    /** UrlMap defaultService */
                    defaultService?: (string|null);

                    /** UrlMap defaultUrlRedirect */
                    defaultUrlRedirect?: (google.cloud.compute.v1beta.IHttpRedirectAction|null);

                    /** UrlMap description */
                    description?: (string|null);

                    /** UrlMap fingerprint */
                    fingerprint?: (string|null);

                    /** UrlMap headerAction */
                    headerAction?: (google.cloud.compute.v1beta.IHttpHeaderAction|null);

                    /** UrlMap hostRules */
                    hostRules?: (google.cloud.compute.v1beta.IHostRule[]|null);

                    /** UrlMap id */
                    id?: (number|Long|string|null);

                    /** UrlMap kind */
                    kind?: (string|null);

                    /** UrlMap name */
                    name?: (string|null);

                    /** UrlMap pathMatchers */
                    pathMatchers?: (google.cloud.compute.v1beta.IPathMatcher[]|null);

                    /** UrlMap region */
                    region?: (string|null);

                    /** UrlMap selfLink */
                    selfLink?: (string|null);

                    /** UrlMap tests */
                    tests?: (google.cloud.compute.v1beta.IUrlMapTest[]|null);
                }

                /** Represents an UrlMap. */
                class UrlMap implements IUrlMap {

                    /**
                     * Constructs a new UrlMap.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMap);

                    /** UrlMap creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** UrlMap defaultCustomErrorResponsePolicy. */
                    public defaultCustomErrorResponsePolicy?: (google.cloud.compute.v1beta.ICustomErrorResponsePolicy|null);

                    /** UrlMap defaultRouteAction. */
                    public defaultRouteAction?: (google.cloud.compute.v1beta.IHttpRouteAction|null);

                    /** UrlMap defaultService. */
                    public defaultService?: (string|null);

                    /** UrlMap defaultUrlRedirect. */
                    public defaultUrlRedirect?: (google.cloud.compute.v1beta.IHttpRedirectAction|null);

                    /** UrlMap description. */
                    public description?: (string|null);

                    /** UrlMap fingerprint. */
                    public fingerprint?: (string|null);

                    /** UrlMap headerAction. */
                    public headerAction?: (google.cloud.compute.v1beta.IHttpHeaderAction|null);

                    /** UrlMap hostRules. */
                    public hostRules: google.cloud.compute.v1beta.IHostRule[];

                    /** UrlMap id. */
                    public id?: (number|Long|string|null);

                    /** UrlMap kind. */
                    public kind?: (string|null);

                    /** UrlMap name. */
                    public name?: (string|null);

                    /** UrlMap pathMatchers. */
                    public pathMatchers: google.cloud.compute.v1beta.IPathMatcher[];

                    /** UrlMap region. */
                    public region?: (string|null);

                    /** UrlMap selfLink. */
                    public selfLink?: (string|null);

                    /** UrlMap tests. */
                    public tests: google.cloud.compute.v1beta.IUrlMapTest[];

                    /**
                     * Creates a new UrlMap instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMap instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMap): google.cloud.compute.v1beta.UrlMap;

                    /**
                     * Encodes the specified UrlMap message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMap.verify|verify} messages.
                     * @param message UrlMap message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMap, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMap message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMap.verify|verify} messages.
                     * @param message UrlMap message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMap, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMap message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMap
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMap;

                    /**
                     * Decodes an UrlMap message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMap
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMap;

                    /**
                     * Verifies an UrlMap message.
                     * @param message Plain 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 UrlMap message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMap
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMap;

                    /**
                     * Creates a plain object from an UrlMap message. Also converts values to other types if specified.
                     * @param message UrlMap
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMap, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMap to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMap
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapList. */
                interface IUrlMapList {

                    /** UrlMapList id */
                    id?: (string|null);

                    /** UrlMapList items */
                    items?: (google.cloud.compute.v1beta.IUrlMap[]|null);

                    /** UrlMapList kind */
                    kind?: (string|null);

                    /** UrlMapList nextPageToken */
                    nextPageToken?: (string|null);

                    /** UrlMapList selfLink */
                    selfLink?: (string|null);

                    /** UrlMapList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an UrlMapList. */
                class UrlMapList implements IUrlMapList {

                    /**
                     * Constructs a new UrlMapList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapList);

                    /** UrlMapList id. */
                    public id?: (string|null);

                    /** UrlMapList items. */
                    public items: google.cloud.compute.v1beta.IUrlMap[];

                    /** UrlMapList kind. */
                    public kind?: (string|null);

                    /** UrlMapList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** UrlMapList selfLink. */
                    public selfLink?: (string|null);

                    /** UrlMapList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new UrlMapList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapList): google.cloud.compute.v1beta.UrlMapList;

                    /**
                     * Encodes the specified UrlMapList message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapList.verify|verify} messages.
                     * @param message UrlMapList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapList.verify|verify} messages.
                     * @param message UrlMapList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapList;

                    /**
                     * Decodes an UrlMapList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapList;

                    /**
                     * Verifies an UrlMapList message.
                     * @param message Plain 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 UrlMapList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapList;

                    /**
                     * Creates a plain object from an UrlMapList message. Also converts values to other types if specified.
                     * @param message UrlMapList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapReference. */
                interface IUrlMapReference {

                    /** UrlMapReference urlMap */
                    urlMap?: (string|null);
                }

                /** Represents an UrlMapReference. */
                class UrlMapReference implements IUrlMapReference {

                    /**
                     * Constructs a new UrlMapReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapReference);

                    /** UrlMapReference urlMap. */
                    public urlMap?: (string|null);

                    /**
                     * Creates a new UrlMapReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapReference instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapReference): google.cloud.compute.v1beta.UrlMapReference;

                    /**
                     * Encodes the specified UrlMapReference message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapReference.verify|verify} messages.
                     * @param message UrlMapReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapReference message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapReference.verify|verify} messages.
                     * @param message UrlMapReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapReference;

                    /**
                     * Decodes an UrlMapReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapReference
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapReference;

                    /**
                     * Verifies an UrlMapReference message.
                     * @param message Plain 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 UrlMapReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapReference;

                    /**
                     * Creates a plain object from an UrlMapReference message. Also converts values to other types if specified.
                     * @param message UrlMapReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapReference
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapTest. */
                interface IUrlMapTest {

                    /** UrlMapTest description */
                    description?: (string|null);

                    /** UrlMapTest expectedOutputUrl */
                    expectedOutputUrl?: (string|null);

                    /** UrlMapTest expectedRedirectResponseCode */
                    expectedRedirectResponseCode?: (number|null);

                    /** UrlMapTest headers */
                    headers?: (google.cloud.compute.v1beta.IUrlMapTestHeader[]|null);

                    /** UrlMapTest host */
                    host?: (string|null);

                    /** UrlMapTest path */
                    path?: (string|null);

                    /** UrlMapTest service */
                    service?: (string|null);
                }

                /** Represents an UrlMapTest. */
                class UrlMapTest implements IUrlMapTest {

                    /**
                     * Constructs a new UrlMapTest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapTest);

                    /** UrlMapTest description. */
                    public description?: (string|null);

                    /** UrlMapTest expectedOutputUrl. */
                    public expectedOutputUrl?: (string|null);

                    /** UrlMapTest expectedRedirectResponseCode. */
                    public expectedRedirectResponseCode?: (number|null);

                    /** UrlMapTest headers. */
                    public headers: google.cloud.compute.v1beta.IUrlMapTestHeader[];

                    /** UrlMapTest host. */
                    public host?: (string|null);

                    /** UrlMapTest path. */
                    public path?: (string|null);

                    /** UrlMapTest service. */
                    public service?: (string|null);

                    /**
                     * Creates a new UrlMapTest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapTest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapTest): google.cloud.compute.v1beta.UrlMapTest;

                    /**
                     * Encodes the specified UrlMapTest message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapTest.verify|verify} messages.
                     * @param message UrlMapTest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapTest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapTest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapTest.verify|verify} messages.
                     * @param message UrlMapTest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapTest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapTest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapTest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapTest;

                    /**
                     * Decodes an UrlMapTest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapTest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapTest;

                    /**
                     * Verifies an UrlMapTest message.
                     * @param message Plain 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 UrlMapTest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapTest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapTest;

                    /**
                     * Creates a plain object from an UrlMapTest message. Also converts values to other types if specified.
                     * @param message UrlMapTest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapTest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapTest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapTest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapTestHeader. */
                interface IUrlMapTestHeader {

                    /** UrlMapTestHeader name */
                    name?: (string|null);

                    /** UrlMapTestHeader value */
                    value?: (string|null);
                }

                /** Represents an UrlMapTestHeader. */
                class UrlMapTestHeader implements IUrlMapTestHeader {

                    /**
                     * Constructs a new UrlMapTestHeader.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapTestHeader);

                    /** UrlMapTestHeader name. */
                    public name?: (string|null);

                    /** UrlMapTestHeader value. */
                    public value?: (string|null);

                    /**
                     * Creates a new UrlMapTestHeader instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapTestHeader instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapTestHeader): google.cloud.compute.v1beta.UrlMapTestHeader;

                    /**
                     * Encodes the specified UrlMapTestHeader message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapTestHeader.verify|verify} messages.
                     * @param message UrlMapTestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapTestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapTestHeader message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapTestHeader.verify|verify} messages.
                     * @param message UrlMapTestHeader message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapTestHeader, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapTestHeader message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapTestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapTestHeader;

                    /**
                     * Decodes an UrlMapTestHeader message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapTestHeader
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapTestHeader;

                    /**
                     * Verifies an UrlMapTestHeader message.
                     * @param message Plain 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 UrlMapTestHeader message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapTestHeader
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapTestHeader;

                    /**
                     * Creates a plain object from an UrlMapTestHeader message. Also converts values to other types if specified.
                     * @param message UrlMapTestHeader
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapTestHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapTestHeader to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapTestHeader
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapValidationResult. */
                interface IUrlMapValidationResult {

                    /** UrlMapValidationResult loadErrors */
                    loadErrors?: (string[]|null);

                    /** UrlMapValidationResult loadSucceeded */
                    loadSucceeded?: (boolean|null);

                    /** UrlMapValidationResult testFailures */
                    testFailures?: (google.cloud.compute.v1beta.ITestFailure[]|null);

                    /** UrlMapValidationResult testPassed */
                    testPassed?: (boolean|null);
                }

                /** Represents an UrlMapValidationResult. */
                class UrlMapValidationResult implements IUrlMapValidationResult {

                    /**
                     * Constructs a new UrlMapValidationResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapValidationResult);

                    /** UrlMapValidationResult loadErrors. */
                    public loadErrors: string[];

                    /** UrlMapValidationResult loadSucceeded. */
                    public loadSucceeded?: (boolean|null);

                    /** UrlMapValidationResult testFailures. */
                    public testFailures: google.cloud.compute.v1beta.ITestFailure[];

                    /** UrlMapValidationResult testPassed. */
                    public testPassed?: (boolean|null);

                    /**
                     * Creates a new UrlMapValidationResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapValidationResult instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapValidationResult): google.cloud.compute.v1beta.UrlMapValidationResult;

                    /**
                     * Encodes the specified UrlMapValidationResult message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapValidationResult.verify|verify} messages.
                     * @param message UrlMapValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapValidationResult message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapValidationResult.verify|verify} messages.
                     * @param message UrlMapValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapValidationResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapValidationResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapValidationResult;

                    /**
                     * Decodes an UrlMapValidationResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapValidationResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapValidationResult;

                    /**
                     * Verifies an UrlMapValidationResult message.
                     * @param message Plain 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 UrlMapValidationResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapValidationResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapValidationResult;

                    /**
                     * Creates a plain object from an UrlMapValidationResult message. Also converts values to other types if specified.
                     * @param message UrlMapValidationResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapValidationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapValidationResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapValidationResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapsAggregatedList. */
                interface IUrlMapsAggregatedList {

                    /** UrlMapsAggregatedList id */
                    id?: (string|null);

                    /** UrlMapsAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IUrlMapsScopedList }|null);

                    /** UrlMapsAggregatedList kind */
                    kind?: (string|null);

                    /** UrlMapsAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** UrlMapsAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** UrlMapsAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** UrlMapsAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an UrlMapsAggregatedList. */
                class UrlMapsAggregatedList implements IUrlMapsAggregatedList {

                    /**
                     * Constructs a new UrlMapsAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapsAggregatedList);

                    /** UrlMapsAggregatedList id. */
                    public id?: (string|null);

                    /** UrlMapsAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IUrlMapsScopedList };

                    /** UrlMapsAggregatedList kind. */
                    public kind?: (string|null);

                    /** UrlMapsAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** UrlMapsAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** UrlMapsAggregatedList unreachables. */
                    public unreachables: string[];

                    /** UrlMapsAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new UrlMapsAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapsAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapsAggregatedList): google.cloud.compute.v1beta.UrlMapsAggregatedList;

                    /**
                     * Encodes the specified UrlMapsAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapsAggregatedList.verify|verify} messages.
                     * @param message UrlMapsAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapsAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapsAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapsAggregatedList.verify|verify} messages.
                     * @param message UrlMapsAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapsAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapsAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapsAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapsAggregatedList;

                    /**
                     * Decodes an UrlMapsAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapsAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapsAggregatedList;

                    /**
                     * Verifies an UrlMapsAggregatedList message.
                     * @param message Plain 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 UrlMapsAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapsAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapsAggregatedList;

                    /**
                     * Creates a plain object from an UrlMapsAggregatedList message. Also converts values to other types if specified.
                     * @param message UrlMapsAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapsAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapsAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapsAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapsScopedList. */
                interface IUrlMapsScopedList {

                    /** UrlMapsScopedList urlMaps */
                    urlMaps?: (google.cloud.compute.v1beta.IUrlMap[]|null);

                    /** UrlMapsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents an UrlMapsScopedList. */
                class UrlMapsScopedList implements IUrlMapsScopedList {

                    /**
                     * Constructs a new UrlMapsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapsScopedList);

                    /** UrlMapsScopedList urlMaps. */
                    public urlMaps: google.cloud.compute.v1beta.IUrlMap[];

                    /** UrlMapsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new UrlMapsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapsScopedList): google.cloud.compute.v1beta.UrlMapsScopedList;

                    /**
                     * Encodes the specified UrlMapsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapsScopedList.verify|verify} messages.
                     * @param message UrlMapsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapsScopedList.verify|verify} messages.
                     * @param message UrlMapsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapsScopedList;

                    /**
                     * Decodes an UrlMapsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapsScopedList;

                    /**
                     * Verifies an UrlMapsScopedList message.
                     * @param message Plain 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 UrlMapsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapsScopedList;

                    /**
                     * Creates a plain object from an UrlMapsScopedList message. Also converts values to other types if specified.
                     * @param message UrlMapsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlMapsValidateRequest. */
                interface IUrlMapsValidateRequest {

                    /** UrlMapsValidateRequest loadBalancingSchemes */
                    loadBalancingSchemes?: (string[]|null);

                    /** UrlMapsValidateRequest resource */
                    resource?: (google.cloud.compute.v1beta.IUrlMap|null);
                }

                /** Represents an UrlMapsValidateRequest. */
                class UrlMapsValidateRequest implements IUrlMapsValidateRequest {

                    /**
                     * Constructs a new UrlMapsValidateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapsValidateRequest);

                    /** UrlMapsValidateRequest loadBalancingSchemes. */
                    public loadBalancingSchemes: string[];

                    /** UrlMapsValidateRequest resource. */
                    public resource?: (google.cloud.compute.v1beta.IUrlMap|null);

                    /**
                     * Creates a new UrlMapsValidateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapsValidateRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapsValidateRequest): google.cloud.compute.v1beta.UrlMapsValidateRequest;

                    /**
                     * Encodes the specified UrlMapsValidateRequest message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapsValidateRequest.verify|verify} messages.
                     * @param message UrlMapsValidateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapsValidateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapsValidateRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapsValidateRequest.verify|verify} messages.
                     * @param message UrlMapsValidateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapsValidateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapsValidateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapsValidateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapsValidateRequest;

                    /**
                     * Decodes an UrlMapsValidateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapsValidateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapsValidateRequest;

                    /**
                     * Verifies an UrlMapsValidateRequest message.
                     * @param message Plain 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 UrlMapsValidateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapsValidateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapsValidateRequest;

                    /**
                     * Creates a plain object from an UrlMapsValidateRequest message. Also converts values to other types if specified.
                     * @param message UrlMapsValidateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapsValidateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapsValidateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapsValidateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace UrlMapsValidateRequest {

                    /** LoadBalancingSchemes enum. */
                    enum LoadBalancingSchemes {
                        UNDEFINED_LOAD_BALANCING_SCHEMES = 0,
                        EXTERNAL = 35607499,
                        EXTERNAL_MANAGED = 512006923,
                        LOAD_BALANCING_SCHEME_UNSPECIFIED = 526507452
                    }
                }

                /** Properties of an UrlMapsValidateResponse. */
                interface IUrlMapsValidateResponse {

                    /** UrlMapsValidateResponse result */
                    result?: (google.cloud.compute.v1beta.IUrlMapValidationResult|null);
                }

                /** Represents an UrlMapsValidateResponse. */
                class UrlMapsValidateResponse implements IUrlMapsValidateResponse {

                    /**
                     * Constructs a new UrlMapsValidateResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlMapsValidateResponse);

                    /** UrlMapsValidateResponse result. */
                    public result?: (google.cloud.compute.v1beta.IUrlMapValidationResult|null);

                    /**
                     * Creates a new UrlMapsValidateResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlMapsValidateResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlMapsValidateResponse): google.cloud.compute.v1beta.UrlMapsValidateResponse;

                    /**
                     * Encodes the specified UrlMapsValidateResponse message. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapsValidateResponse.verify|verify} messages.
                     * @param message UrlMapsValidateResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlMapsValidateResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlMapsValidateResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlMapsValidateResponse.verify|verify} messages.
                     * @param message UrlMapsValidateResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlMapsValidateResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlMapsValidateResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlMapsValidateResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlMapsValidateResponse;

                    /**
                     * Decodes an UrlMapsValidateResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlMapsValidateResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlMapsValidateResponse;

                    /**
                     * Verifies an UrlMapsValidateResponse message.
                     * @param message Plain 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 UrlMapsValidateResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlMapsValidateResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlMapsValidateResponse;

                    /**
                     * Creates a plain object from an UrlMapsValidateResponse message. Also converts values to other types if specified.
                     * @param message UrlMapsValidateResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlMapsValidateResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlMapsValidateResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlMapsValidateResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UrlRewrite. */
                interface IUrlRewrite {

                    /** UrlRewrite hostRewrite */
                    hostRewrite?: (string|null);

                    /** UrlRewrite pathPrefixRewrite */
                    pathPrefixRewrite?: (string|null);

                    /** UrlRewrite pathTemplateRewrite */
                    pathTemplateRewrite?: (string|null);
                }

                /** Represents an UrlRewrite. */
                class UrlRewrite implements IUrlRewrite {

                    /**
                     * Constructs a new UrlRewrite.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUrlRewrite);

                    /** UrlRewrite hostRewrite. */
                    public hostRewrite?: (string|null);

                    /** UrlRewrite pathPrefixRewrite. */
                    public pathPrefixRewrite?: (string|null);

                    /** UrlRewrite pathTemplateRewrite. */
                    public pathTemplateRewrite?: (string|null);

                    /**
                     * Creates a new UrlRewrite instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UrlRewrite instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUrlRewrite): google.cloud.compute.v1beta.UrlRewrite;

                    /**
                     * Encodes the specified UrlRewrite message. Does not implicitly {@link google.cloud.compute.v1beta.UrlRewrite.verify|verify} messages.
                     * @param message UrlRewrite message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUrlRewrite, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UrlRewrite message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UrlRewrite.verify|verify} messages.
                     * @param message UrlRewrite message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUrlRewrite, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UrlRewrite message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UrlRewrite
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UrlRewrite;

                    /**
                     * Decodes an UrlRewrite message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UrlRewrite
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UrlRewrite;

                    /**
                     * Verifies an UrlRewrite message.
                     * @param message Plain 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 UrlRewrite message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UrlRewrite
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UrlRewrite;

                    /**
                     * Creates a plain object from an UrlRewrite message. Also converts values to other types if specified.
                     * @param message UrlRewrite
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UrlRewrite, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UrlRewrite to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UrlRewrite
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a UsableSubnetwork. */
                interface IUsableSubnetwork {

                    /** UsableSubnetwork externalIpv6Prefix */
                    externalIpv6Prefix?: (string|null);

                    /** UsableSubnetwork internalIpv6Prefix */
                    internalIpv6Prefix?: (string|null);

                    /** UsableSubnetwork ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** UsableSubnetwork ipv6AccessType */
                    ipv6AccessType?: (string|null);

                    /** UsableSubnetwork network */
                    network?: (string|null);

                    /** UsableSubnetwork purpose */
                    purpose?: (string|null);

                    /** UsableSubnetwork role */
                    role?: (string|null);

                    /** UsableSubnetwork secondaryIpRanges */
                    secondaryIpRanges?: (google.cloud.compute.v1beta.IUsableSubnetworkSecondaryRange[]|null);

                    /** UsableSubnetwork stackType */
                    stackType?: (string|null);

                    /** UsableSubnetwork subnetwork */
                    subnetwork?: (string|null);
                }

                /** Represents a UsableSubnetwork. */
                class UsableSubnetwork implements IUsableSubnetwork {

                    /**
                     * Constructs a new UsableSubnetwork.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUsableSubnetwork);

                    /** UsableSubnetwork externalIpv6Prefix. */
                    public externalIpv6Prefix?: (string|null);

                    /** UsableSubnetwork internalIpv6Prefix. */
                    public internalIpv6Prefix?: (string|null);

                    /** UsableSubnetwork ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** UsableSubnetwork ipv6AccessType. */
                    public ipv6AccessType?: (string|null);

                    /** UsableSubnetwork network. */
                    public network?: (string|null);

                    /** UsableSubnetwork purpose. */
                    public purpose?: (string|null);

                    /** UsableSubnetwork role. */
                    public role?: (string|null);

                    /** UsableSubnetwork secondaryIpRanges. */
                    public secondaryIpRanges: google.cloud.compute.v1beta.IUsableSubnetworkSecondaryRange[];

                    /** UsableSubnetwork stackType. */
                    public stackType?: (string|null);

                    /** UsableSubnetwork subnetwork. */
                    public subnetwork?: (string|null);

                    /**
                     * Creates a new UsableSubnetwork instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UsableSubnetwork instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUsableSubnetwork): google.cloud.compute.v1beta.UsableSubnetwork;

                    /**
                     * Encodes the specified UsableSubnetwork message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IUsableSubnetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UsableSubnetwork message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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;
                }

                namespace UsableSubnetwork {

                    /** Ipv6AccessType enum. */
                    enum Ipv6AccessType {
                        UNDEFINED_IPV6_ACCESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677
                    }

                    /** Purpose enum. */
                    enum Purpose {
                        UNDEFINED_PURPOSE = 0,
                        GLOBAL_MANAGED_PROXY = 236463602,
                        INTERNAL_HTTPS_LOAD_BALANCER = 248748889,
                        PEER_MIGRATION = 491902225,
                        PRIVATE = 403485027,
                        PRIVATE_NAT = 367764517,
                        PRIVATE_RFC_1918 = 254902107,
                        PRIVATE_SERVICE_CONNECT = 48134724,
                        REGIONAL_MANAGED_PROXY = 153049966
                    }

                    /** Role enum. */
                    enum Role {
                        UNDEFINED_ROLE = 0,
                        ACTIVE = 314733318,
                        BACKUP = 341010882
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100
                    }
                }

                /** Properties of a UsableSubnetworkSecondaryRange. */
                interface IUsableSubnetworkSecondaryRange {

                    /** UsableSubnetworkSecondaryRange ipCidrRange */
                    ipCidrRange?: (string|null);

                    /** UsableSubnetworkSecondaryRange rangeName */
                    rangeName?: (string|null);
                }

                /** Represents a UsableSubnetworkSecondaryRange. */
                class UsableSubnetworkSecondaryRange implements IUsableSubnetworkSecondaryRange {

                    /**
                     * Constructs a new UsableSubnetworkSecondaryRange.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUsableSubnetworkSecondaryRange);

                    /** UsableSubnetworkSecondaryRange ipCidrRange. */
                    public ipCidrRange?: (string|null);

                    /** UsableSubnetworkSecondaryRange rangeName. */
                    public rangeName?: (string|null);

                    /**
                     * Creates a new UsableSubnetworkSecondaryRange instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UsableSubnetworkSecondaryRange instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUsableSubnetworkSecondaryRange): google.cloud.compute.v1beta.UsableSubnetworkSecondaryRange;

                    /**
                     * Encodes the specified UsableSubnetworkSecondaryRange message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IUsableSubnetworkSecondaryRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UsableSubnetworkSecondaryRange message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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;
                }

                /** Properties of a UsableSubnetworksAggregatedList. */
                interface IUsableSubnetworksAggregatedList {

                    /** UsableSubnetworksAggregatedList id */
                    id?: (string|null);

                    /** UsableSubnetworksAggregatedList items */
                    items?: (google.cloud.compute.v1beta.IUsableSubnetwork[]|null);

                    /** UsableSubnetworksAggregatedList kind */
                    kind?: (string|null);

                    /** UsableSubnetworksAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** UsableSubnetworksAggregatedList scopedWarnings */
                    scopedWarnings?: (google.cloud.compute.v1beta.ISubnetworksScopedWarning[]|null);

                    /** UsableSubnetworksAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** UsableSubnetworksAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** UsableSubnetworksAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a UsableSubnetworksAggregatedList. */
                class UsableSubnetworksAggregatedList implements IUsableSubnetworksAggregatedList {

                    /**
                     * Constructs a new UsableSubnetworksAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUsableSubnetworksAggregatedList);

                    /** UsableSubnetworksAggregatedList id. */
                    public id?: (string|null);

                    /** UsableSubnetworksAggregatedList items. */
                    public items: google.cloud.compute.v1beta.IUsableSubnetwork[];

                    /** UsableSubnetworksAggregatedList kind. */
                    public kind?: (string|null);

                    /** UsableSubnetworksAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** UsableSubnetworksAggregatedList scopedWarnings. */
                    public scopedWarnings: google.cloud.compute.v1beta.ISubnetworksScopedWarning[];

                    /** UsableSubnetworksAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** UsableSubnetworksAggregatedList unreachables. */
                    public unreachables: string[];

                    /** UsableSubnetworksAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new UsableSubnetworksAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UsableSubnetworksAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUsableSubnetworksAggregatedList): google.cloud.compute.v1beta.UsableSubnetworksAggregatedList;

                    /**
                     * Encodes the specified UsableSubnetworksAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.UsableSubnetworksAggregatedList.verify|verify} messages.
                     * @param message UsableSubnetworksAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUsableSubnetworksAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UsableSubnetworksAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UsableSubnetworksAggregatedList.verify|verify} messages.
                     * @param message UsableSubnetworksAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUsableSubnetworksAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a UsableSubnetworksAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UsableSubnetworksAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UsableSubnetworksAggregatedList;

                    /**
                     * Decodes a UsableSubnetworksAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UsableSubnetworksAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UsableSubnetworksAggregatedList;

                    /**
                     * Verifies a UsableSubnetworksAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a UsableSubnetworksAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UsableSubnetworksAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UsableSubnetworksAggregatedList;

                    /**
                     * Creates a plain object from a UsableSubnetworksAggregatedList message. Also converts values to other types if specified.
                     * @param message UsableSubnetworksAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UsableSubnetworksAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UsableSubnetworksAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UsableSubnetworksAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a UsageExportLocation. */
                interface IUsageExportLocation {

                    /** UsageExportLocation bucketName */
                    bucketName?: (string|null);

                    /** UsageExportLocation reportNamePrefix */
                    reportNamePrefix?: (string|null);
                }

                /** Represents a UsageExportLocation. */
                class UsageExportLocation implements IUsageExportLocation {

                    /**
                     * Constructs a new UsageExportLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IUsageExportLocation);

                    /** UsageExportLocation bucketName. */
                    public bucketName?: (string|null);

                    /** UsageExportLocation reportNamePrefix. */
                    public reportNamePrefix?: (string|null);

                    /**
                     * Creates a new UsageExportLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UsageExportLocation instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IUsageExportLocation): google.cloud.compute.v1beta.UsageExportLocation;

                    /**
                     * Encodes the specified UsageExportLocation message. Does not implicitly {@link google.cloud.compute.v1beta.UsageExportLocation.verify|verify} messages.
                     * @param message UsageExportLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IUsageExportLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UsageExportLocation message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.UsageExportLocation.verify|verify} messages.
                     * @param message UsageExportLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IUsageExportLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a UsageExportLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UsageExportLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.UsageExportLocation;

                    /**
                     * Decodes a UsageExportLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UsageExportLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.UsageExportLocation;

                    /**
                     * Verifies a UsageExportLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a UsageExportLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UsageExportLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.UsageExportLocation;

                    /**
                     * Creates a plain object from a UsageExportLocation message. Also converts values to other types if specified.
                     * @param message UsageExportLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.UsageExportLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UsageExportLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UsageExportLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ValidateRegionUrlMapRequest. */
                interface IValidateRegionUrlMapRequest {

                    /** ValidateRegionUrlMapRequest project */
                    project?: (string|null);

                    /** ValidateRegionUrlMapRequest region */
                    region?: (string|null);

                    /** ValidateRegionUrlMapRequest regionUrlMapsValidateRequestResource */
                    regionUrlMapsValidateRequestResource?: (google.cloud.compute.v1beta.IRegionUrlMapsValidateRequest|null);

                    /** ValidateRegionUrlMapRequest urlMap */
                    urlMap?: (string|null);
                }

                /** Represents a ValidateRegionUrlMapRequest. */
                class ValidateRegionUrlMapRequest implements IValidateRegionUrlMapRequest {

                    /**
                     * Constructs a new ValidateRegionUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IValidateRegionUrlMapRequest);

                    /** ValidateRegionUrlMapRequest project. */
                    public project: string;

                    /** ValidateRegionUrlMapRequest region. */
                    public region: string;

                    /** ValidateRegionUrlMapRequest regionUrlMapsValidateRequestResource. */
                    public regionUrlMapsValidateRequestResource?: (google.cloud.compute.v1beta.IRegionUrlMapsValidateRequest|null);

                    /** ValidateRegionUrlMapRequest urlMap. */
                    public urlMap: string;

                    /**
                     * Creates a new ValidateRegionUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidateRegionUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IValidateRegionUrlMapRequest): google.cloud.compute.v1beta.ValidateRegionUrlMapRequest;

                    /**
                     * Encodes the specified ValidateRegionUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ValidateRegionUrlMapRequest.verify|verify} messages.
                     * @param message ValidateRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IValidateRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidateRegionUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ValidateRegionUrlMapRequest.verify|verify} messages.
                     * @param message ValidateRegionUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IValidateRegionUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidateRegionUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidateRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ValidateRegionUrlMapRequest;

                    /**
                     * Decodes a ValidateRegionUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidateRegionUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ValidateRegionUrlMapRequest;

                    /**
                     * Verifies a ValidateRegionUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValidateRegionUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidateRegionUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ValidateRegionUrlMapRequest;

                    /**
                     * Creates a plain object from a ValidateRegionUrlMapRequest message. Also converts values to other types if specified.
                     * @param message ValidateRegionUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ValidateRegionUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidateRegionUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidateRegionUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ValidateUrlMapRequest. */
                interface IValidateUrlMapRequest {

                    /** ValidateUrlMapRequest project */
                    project?: (string|null);

                    /** ValidateUrlMapRequest urlMap */
                    urlMap?: (string|null);

                    /** ValidateUrlMapRequest urlMapsValidateRequestResource */
                    urlMapsValidateRequestResource?: (google.cloud.compute.v1beta.IUrlMapsValidateRequest|null);
                }

                /** Represents a ValidateUrlMapRequest. */
                class ValidateUrlMapRequest implements IValidateUrlMapRequest {

                    /**
                     * Constructs a new ValidateUrlMapRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IValidateUrlMapRequest);

                    /** ValidateUrlMapRequest project. */
                    public project: string;

                    /** ValidateUrlMapRequest urlMap. */
                    public urlMap: string;

                    /** ValidateUrlMapRequest urlMapsValidateRequestResource. */
                    public urlMapsValidateRequestResource?: (google.cloud.compute.v1beta.IUrlMapsValidateRequest|null);

                    /**
                     * Creates a new ValidateUrlMapRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidateUrlMapRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IValidateUrlMapRequest): google.cloud.compute.v1beta.ValidateUrlMapRequest;

                    /**
                     * Encodes the specified ValidateUrlMapRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ValidateUrlMapRequest.verify|verify} messages.
                     * @param message ValidateUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IValidateUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidateUrlMapRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ValidateUrlMapRequest.verify|verify} messages.
                     * @param message ValidateUrlMapRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IValidateUrlMapRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidateUrlMapRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidateUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ValidateUrlMapRequest;

                    /**
                     * Decodes a ValidateUrlMapRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidateUrlMapRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ValidateUrlMapRequest;

                    /**
                     * Verifies a ValidateUrlMapRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValidateUrlMapRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidateUrlMapRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ValidateUrlMapRequest;

                    /**
                     * Creates a plain object from a ValidateUrlMapRequest message. Also converts values to other types if specified.
                     * @param message ValidateUrlMapRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ValidateUrlMapRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidateUrlMapRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidateUrlMapRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmEndpointNatMappings. */
                interface IVmEndpointNatMappings {

                    /** VmEndpointNatMappings instanceName */
                    instanceName?: (string|null);

                    /** VmEndpointNatMappings interfaceNatMappings */
                    interfaceNatMappings?: (google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappings[]|null);
                }

                /** Represents a VmEndpointNatMappings. */
                class VmEndpointNatMappings implements IVmEndpointNatMappings {

                    /**
                     * Constructs a new VmEndpointNatMappings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmEndpointNatMappings);

                    /** VmEndpointNatMappings instanceName. */
                    public instanceName?: (string|null);

                    /** VmEndpointNatMappings interfaceNatMappings. */
                    public interfaceNatMappings: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappings[];

                    /**
                     * Creates a new VmEndpointNatMappings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmEndpointNatMappings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmEndpointNatMappings): google.cloud.compute.v1beta.VmEndpointNatMappings;

                    /**
                     * Encodes the specified VmEndpointNatMappings message. Does not implicitly {@link google.cloud.compute.v1beta.VmEndpointNatMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmEndpointNatMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmEndpointNatMappings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmEndpointNatMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmEndpointNatMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmEndpointNatMappings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmEndpointNatMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmEndpointNatMappings;

                    /**
                     * Decodes a VmEndpointNatMappings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmEndpointNatMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmEndpointNatMappings;

                    /**
                     * Verifies a VmEndpointNatMappings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmEndpointNatMappings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmEndpointNatMappings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmEndpointNatMappings;

                    /**
                     * Creates a plain object from a VmEndpointNatMappings message. Also converts values to other types if specified.
                     * @param message VmEndpointNatMappings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmEndpointNatMappings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmEndpointNatMappings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmEndpointNatMappings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmEndpointNatMappingsInterfaceNatMappings. */
                interface IVmEndpointNatMappingsInterfaceNatMappings {

                    /** VmEndpointNatMappingsInterfaceNatMappings drainNatIpPortRanges */
                    drainNatIpPortRanges?: (string[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings natIpPortRanges */
                    natIpPortRanges?: (string[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings numTotalDrainNatPorts */
                    numTotalDrainNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings numTotalNatPorts */
                    numTotalNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings ruleMappings */
                    ruleMappings?: (google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings sourceAliasIpRange */
                    sourceAliasIpRange?: (string|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings sourceVirtualIp */
                    sourceVirtualIp?: (string|null);
                }

                /** Represents a VmEndpointNatMappingsInterfaceNatMappings. */
                class VmEndpointNatMappingsInterfaceNatMappings implements IVmEndpointNatMappingsInterfaceNatMappings {

                    /**
                     * Constructs a new VmEndpointNatMappingsInterfaceNatMappings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappings);

                    /** VmEndpointNatMappingsInterfaceNatMappings drainNatIpPortRanges. */
                    public drainNatIpPortRanges: string[];

                    /** VmEndpointNatMappingsInterfaceNatMappings natIpPortRanges. */
                    public natIpPortRanges: string[];

                    /** VmEndpointNatMappingsInterfaceNatMappings numTotalDrainNatPorts. */
                    public numTotalDrainNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings numTotalNatPorts. */
                    public numTotalNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings ruleMappings. */
                    public ruleMappings: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings[];

                    /** VmEndpointNatMappingsInterfaceNatMappings sourceAliasIpRange. */
                    public sourceAliasIpRange?: (string|null);

                    /** VmEndpointNatMappingsInterfaceNatMappings sourceVirtualIp. */
                    public sourceVirtualIp?: (string|null);

                    /**
                     * Creates a new VmEndpointNatMappingsInterfaceNatMappings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmEndpointNatMappingsInterfaceNatMappings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappings): google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappings;

                    /**
                     * Encodes the specified VmEndpointNatMappingsInterfaceNatMappings message. Does not implicitly {@link google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappingsInterfaceNatMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmEndpointNatMappingsInterfaceNatMappings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappingsInterfaceNatMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmEndpointNatMappingsInterfaceNatMappings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmEndpointNatMappingsInterfaceNatMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappings;

                    /**
                     * Decodes a VmEndpointNatMappingsInterfaceNatMappings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmEndpointNatMappingsInterfaceNatMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappings;

                    /**
                     * Verifies a VmEndpointNatMappingsInterfaceNatMappings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmEndpointNatMappingsInterfaceNatMappings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmEndpointNatMappingsInterfaceNatMappings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappings;

                    /**
                     * Creates a plain object from a VmEndpointNatMappingsInterfaceNatMappings message. Also converts values to other types if specified.
                     * @param message VmEndpointNatMappingsInterfaceNatMappings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmEndpointNatMappingsInterfaceNatMappings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmEndpointNatMappingsInterfaceNatMappings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings. */
                interface IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings {

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings drainNatIpPortRanges */
                    drainNatIpPortRanges?: (string[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings natIpPortRanges */
                    natIpPortRanges?: (string[]|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings numTotalDrainNatPorts */
                    numTotalDrainNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings numTotalNatPorts */
                    numTotalNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings ruleNumber */
                    ruleNumber?: (number|null);
                }

                /** Represents a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings. */
                class VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings implements IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings {

                    /**
                     * Constructs a new VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings drainNatIpPortRanges. */
                    public drainNatIpPortRanges: string[];

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings natIpPortRanges. */
                    public natIpPortRanges: string[];

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings numTotalDrainNatPorts. */
                    public numTotalDrainNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings numTotalNatPorts. */
                    public numTotalNatPorts?: (number|null);

                    /** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings ruleNumber. */
                    public ruleNumber?: (number|null);

                    /**
                     * Creates a new VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings): google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings;

                    /**
                     * Encodes the specified VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message. Does not implicitly {@link google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings.verify|verify} messages.
                     * @param message VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings;

                    /**
                     * Decodes a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings;

                    /**
                     * Verifies a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings;

                    /**
                     * Creates a plain object from a VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings message. Also converts values to other types if specified.
                     * @param message VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmEndpointNatMappingsList. */
                interface IVmEndpointNatMappingsList {

                    /** VmEndpointNatMappingsList id */
                    id?: (string|null);

                    /** VmEndpointNatMappingsList kind */
                    kind?: (string|null);

                    /** VmEndpointNatMappingsList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VmEndpointNatMappingsList result */
                    result?: (google.cloud.compute.v1beta.IVmEndpointNatMappings[]|null);

                    /** VmEndpointNatMappingsList selfLink */
                    selfLink?: (string|null);

                    /** VmEndpointNatMappingsList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VmEndpointNatMappingsList. */
                class VmEndpointNatMappingsList implements IVmEndpointNatMappingsList {

                    /**
                     * Constructs a new VmEndpointNatMappingsList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmEndpointNatMappingsList);

                    /** VmEndpointNatMappingsList id. */
                    public id?: (string|null);

                    /** VmEndpointNatMappingsList kind. */
                    public kind?: (string|null);

                    /** VmEndpointNatMappingsList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VmEndpointNatMappingsList result. */
                    public result: google.cloud.compute.v1beta.IVmEndpointNatMappings[];

                    /** VmEndpointNatMappingsList selfLink. */
                    public selfLink?: (string|null);

                    /** VmEndpointNatMappingsList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VmEndpointNatMappingsList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmEndpointNatMappingsList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmEndpointNatMappingsList): google.cloud.compute.v1beta.VmEndpointNatMappingsList;

                    /**
                     * Encodes the specified VmEndpointNatMappingsList message. Does not implicitly {@link google.cloud.compute.v1beta.VmEndpointNatMappingsList.verify|verify} messages.
                     * @param message VmEndpointNatMappingsList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmEndpointNatMappingsList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmEndpointNatMappingsList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmEndpointNatMappingsList.verify|verify} messages.
                     * @param message VmEndpointNatMappingsList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmEndpointNatMappingsList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmEndpointNatMappingsList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmEndpointNatMappingsList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmEndpointNatMappingsList;

                    /**
                     * Decodes a VmEndpointNatMappingsList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmEndpointNatMappingsList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmEndpointNatMappingsList;

                    /**
                     * Verifies a VmEndpointNatMappingsList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmEndpointNatMappingsList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmEndpointNatMappingsList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmEndpointNatMappingsList;

                    /**
                     * Creates a plain object from a VmEndpointNatMappingsList message. Also converts values to other types if specified.
                     * @param message VmEndpointNatMappingsList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmEndpointNatMappingsList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmEndpointNatMappingsList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmEndpointNatMappingsList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmExtensionPoliciesScopedList. */
                interface IVmExtensionPoliciesScopedList {

                    /** VmExtensionPoliciesScopedList vmExtensionPolicies */
                    vmExtensionPolicies?: (google.cloud.compute.v1beta.IVmExtensionPolicy[]|null);

                    /** VmExtensionPoliciesScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VmExtensionPoliciesScopedList. */
                class VmExtensionPoliciesScopedList implements IVmExtensionPoliciesScopedList {

                    /**
                     * Constructs a new VmExtensionPoliciesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmExtensionPoliciesScopedList);

                    /** VmExtensionPoliciesScopedList vmExtensionPolicies. */
                    public vmExtensionPolicies: google.cloud.compute.v1beta.IVmExtensionPolicy[];

                    /** VmExtensionPoliciesScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VmExtensionPoliciesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmExtensionPoliciesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmExtensionPoliciesScopedList): google.cloud.compute.v1beta.VmExtensionPoliciesScopedList;

                    /**
                     * Encodes the specified VmExtensionPoliciesScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPoliciesScopedList.verify|verify} messages.
                     * @param message VmExtensionPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmExtensionPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmExtensionPoliciesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPoliciesScopedList.verify|verify} messages.
                     * @param message VmExtensionPoliciesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmExtensionPoliciesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmExtensionPoliciesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmExtensionPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmExtensionPoliciesScopedList;

                    /**
                     * Decodes a VmExtensionPoliciesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmExtensionPoliciesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmExtensionPoliciesScopedList;

                    /**
                     * Verifies a VmExtensionPoliciesScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmExtensionPoliciesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmExtensionPoliciesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmExtensionPoliciesScopedList;

                    /**
                     * Creates a plain object from a VmExtensionPoliciesScopedList message. Also converts values to other types if specified.
                     * @param message VmExtensionPoliciesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmExtensionPoliciesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmExtensionPoliciesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmExtensionPoliciesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmExtensionPolicy. */
                interface IVmExtensionPolicy {

                    /** VmExtensionPolicy creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** VmExtensionPolicy description */
                    description?: (string|null);

                    /** VmExtensionPolicy extensionPolicies */
                    extensionPolicies?: ({ [k: string]: google.cloud.compute.v1beta.IVmExtensionPolicyExtensionPolicy }|null);

                    /** VmExtensionPolicy globalResourceLink */
                    globalResourceLink?: (string|null);

                    /** VmExtensionPolicy id */
                    id?: (number|Long|string|null);

                    /** VmExtensionPolicy instanceSelectors */
                    instanceSelectors?: (google.cloud.compute.v1beta.IVmExtensionPolicyInstanceSelector[]|null);

                    /** VmExtensionPolicy kind */
                    kind?: (string|null);

                    /** VmExtensionPolicy managedByGlobal */
                    managedByGlobal?: (boolean|null);

                    /** VmExtensionPolicy name */
                    name?: (string|null);

                    /** VmExtensionPolicy priority */
                    priority?: (number|null);

                    /** VmExtensionPolicy selfLink */
                    selfLink?: (string|null);

                    /** VmExtensionPolicy selfLinkWithId */
                    selfLinkWithId?: (string|null);

                    /** VmExtensionPolicy state */
                    state?: (string|null);

                    /** VmExtensionPolicy updateTimestamp */
                    updateTimestamp?: (string|null);
                }

                /** Represents a VmExtensionPolicy. */
                class VmExtensionPolicy implements IVmExtensionPolicy {

                    /**
                     * Constructs a new VmExtensionPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmExtensionPolicy);

                    /** VmExtensionPolicy creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** VmExtensionPolicy description. */
                    public description?: (string|null);

                    /** VmExtensionPolicy extensionPolicies. */
                    public extensionPolicies: { [k: string]: google.cloud.compute.v1beta.IVmExtensionPolicyExtensionPolicy };

                    /** VmExtensionPolicy globalResourceLink. */
                    public globalResourceLink?: (string|null);

                    /** VmExtensionPolicy id. */
                    public id?: (number|Long|string|null);

                    /** VmExtensionPolicy instanceSelectors. */
                    public instanceSelectors: google.cloud.compute.v1beta.IVmExtensionPolicyInstanceSelector[];

                    /** VmExtensionPolicy kind. */
                    public kind?: (string|null);

                    /** VmExtensionPolicy managedByGlobal. */
                    public managedByGlobal?: (boolean|null);

                    /** VmExtensionPolicy name. */
                    public name?: (string|null);

                    /** VmExtensionPolicy priority. */
                    public priority?: (number|null);

                    /** VmExtensionPolicy selfLink. */
                    public selfLink?: (string|null);

                    /** VmExtensionPolicy selfLinkWithId. */
                    public selfLinkWithId?: (string|null);

                    /** VmExtensionPolicy state. */
                    public state?: (string|null);

                    /** VmExtensionPolicy updateTimestamp. */
                    public updateTimestamp?: (string|null);

                    /**
                     * Creates a new VmExtensionPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmExtensionPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmExtensionPolicy): google.cloud.compute.v1beta.VmExtensionPolicy;

                    /**
                     * Encodes the specified VmExtensionPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicy.verify|verify} messages.
                     * @param message VmExtensionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmExtensionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmExtensionPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicy.verify|verify} messages.
                     * @param message VmExtensionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmExtensionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmExtensionPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmExtensionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmExtensionPolicy;

                    /**
                     * Decodes a VmExtensionPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmExtensionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmExtensionPolicy;

                    /**
                     * Verifies a VmExtensionPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmExtensionPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmExtensionPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmExtensionPolicy;

                    /**
                     * Creates a plain object from a VmExtensionPolicy message. Also converts values to other types if specified.
                     * @param message VmExtensionPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmExtensionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmExtensionPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmExtensionPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace VmExtensionPolicy {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        ACTIVE = 314733318,
                        DELETING = 528602024,
                        STATE_UNSPECIFIED = 470755401
                    }
                }

                /** Properties of a VmExtensionPolicyAggregatedListResponse. */
                interface IVmExtensionPolicyAggregatedListResponse {

                    /** VmExtensionPolicyAggregatedListResponse etag */
                    etag?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse id */
                    id?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IVmExtensionPoliciesScopedList }|null);

                    /** VmExtensionPolicyAggregatedListResponse kind */
                    kind?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse selfLink */
                    selfLink?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse unreachables */
                    unreachables?: (string[]|null);

                    /** VmExtensionPolicyAggregatedListResponse warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VmExtensionPolicyAggregatedListResponse. */
                class VmExtensionPolicyAggregatedListResponse implements IVmExtensionPolicyAggregatedListResponse {

                    /**
                     * Constructs a new VmExtensionPolicyAggregatedListResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyAggregatedListResponse);

                    /** VmExtensionPolicyAggregatedListResponse etag. */
                    public etag?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse id. */
                    public id?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IVmExtensionPoliciesScopedList };

                    /** VmExtensionPolicyAggregatedListResponse kind. */
                    public kind?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse selfLink. */
                    public selfLink?: (string|null);

                    /** VmExtensionPolicyAggregatedListResponse unreachables. */
                    public unreachables: string[];

                    /** VmExtensionPolicyAggregatedListResponse warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VmExtensionPolicyAggregatedListResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmExtensionPolicyAggregatedListResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyAggregatedListResponse): google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse;

                    /**
                     * Encodes the specified VmExtensionPolicyAggregatedListResponse message. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse.verify|verify} messages.
                     * @param message VmExtensionPolicyAggregatedListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmExtensionPolicyAggregatedListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmExtensionPolicyAggregatedListResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse.verify|verify} messages.
                     * @param message VmExtensionPolicyAggregatedListResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmExtensionPolicyAggregatedListResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmExtensionPolicyAggregatedListResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmExtensionPolicyAggregatedListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse;

                    /**
                     * Decodes a VmExtensionPolicyAggregatedListResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmExtensionPolicyAggregatedListResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse;

                    /**
                     * Verifies a VmExtensionPolicyAggregatedListResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmExtensionPolicyAggregatedListResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmExtensionPolicyAggregatedListResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse;

                    /**
                     * Creates a plain object from a VmExtensionPolicyAggregatedListResponse message. Also converts values to other types if specified.
                     * @param message VmExtensionPolicyAggregatedListResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmExtensionPolicyAggregatedListResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmExtensionPolicyAggregatedListResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmExtensionPolicyExtensionPolicy. */
                interface IVmExtensionPolicyExtensionPolicy {

                    /** VmExtensionPolicyExtensionPolicy pinnedVersion */
                    pinnedVersion?: (string|null);

                    /** VmExtensionPolicyExtensionPolicy stringConfig */
                    stringConfig?: (string|null);
                }

                /** Represents a VmExtensionPolicyExtensionPolicy. */
                class VmExtensionPolicyExtensionPolicy implements IVmExtensionPolicyExtensionPolicy {

                    /**
                     * Constructs a new VmExtensionPolicyExtensionPolicy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyExtensionPolicy);

                    /** VmExtensionPolicyExtensionPolicy pinnedVersion. */
                    public pinnedVersion?: (string|null);

                    /** VmExtensionPolicyExtensionPolicy stringConfig. */
                    public stringConfig?: (string|null);

                    /**
                     * Creates a new VmExtensionPolicyExtensionPolicy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmExtensionPolicyExtensionPolicy instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyExtensionPolicy): google.cloud.compute.v1beta.VmExtensionPolicyExtensionPolicy;

                    /**
                     * Encodes the specified VmExtensionPolicyExtensionPolicy message. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyExtensionPolicy.verify|verify} messages.
                     * @param message VmExtensionPolicyExtensionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmExtensionPolicyExtensionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmExtensionPolicyExtensionPolicy message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyExtensionPolicy.verify|verify} messages.
                     * @param message VmExtensionPolicyExtensionPolicy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmExtensionPolicyExtensionPolicy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmExtensionPolicyExtensionPolicy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmExtensionPolicyExtensionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmExtensionPolicyExtensionPolicy;

                    /**
                     * Decodes a VmExtensionPolicyExtensionPolicy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmExtensionPolicyExtensionPolicy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmExtensionPolicyExtensionPolicy;

                    /**
                     * Verifies a VmExtensionPolicyExtensionPolicy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmExtensionPolicyExtensionPolicy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmExtensionPolicyExtensionPolicy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmExtensionPolicyExtensionPolicy;

                    /**
                     * Creates a plain object from a VmExtensionPolicyExtensionPolicy message. Also converts values to other types if specified.
                     * @param message VmExtensionPolicyExtensionPolicy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmExtensionPolicyExtensionPolicy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmExtensionPolicyExtensionPolicy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmExtensionPolicyExtensionPolicy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmExtensionPolicyInstanceSelector. */
                interface IVmExtensionPolicyInstanceSelector {

                    /** VmExtensionPolicyInstanceSelector labelSelector */
                    labelSelector?: (google.cloud.compute.v1beta.IVmExtensionPolicyLabelSelector|null);
                }

                /** Represents a VmExtensionPolicyInstanceSelector. */
                class VmExtensionPolicyInstanceSelector implements IVmExtensionPolicyInstanceSelector {

                    /**
                     * Constructs a new VmExtensionPolicyInstanceSelector.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyInstanceSelector);

                    /** VmExtensionPolicyInstanceSelector labelSelector. */
                    public labelSelector?: (google.cloud.compute.v1beta.IVmExtensionPolicyLabelSelector|null);

                    /**
                     * Creates a new VmExtensionPolicyInstanceSelector instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmExtensionPolicyInstanceSelector instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyInstanceSelector): google.cloud.compute.v1beta.VmExtensionPolicyInstanceSelector;

                    /**
                     * Encodes the specified VmExtensionPolicyInstanceSelector message. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyInstanceSelector.verify|verify} messages.
                     * @param message VmExtensionPolicyInstanceSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmExtensionPolicyInstanceSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmExtensionPolicyInstanceSelector message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyInstanceSelector.verify|verify} messages.
                     * @param message VmExtensionPolicyInstanceSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmExtensionPolicyInstanceSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmExtensionPolicyInstanceSelector message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmExtensionPolicyInstanceSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmExtensionPolicyInstanceSelector;

                    /**
                     * Decodes a VmExtensionPolicyInstanceSelector message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmExtensionPolicyInstanceSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmExtensionPolicyInstanceSelector;

                    /**
                     * Verifies a VmExtensionPolicyInstanceSelector message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmExtensionPolicyInstanceSelector message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmExtensionPolicyInstanceSelector
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmExtensionPolicyInstanceSelector;

                    /**
                     * Creates a plain object from a VmExtensionPolicyInstanceSelector message. Also converts values to other types if specified.
                     * @param message VmExtensionPolicyInstanceSelector
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmExtensionPolicyInstanceSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmExtensionPolicyInstanceSelector to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmExtensionPolicyInstanceSelector
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmExtensionPolicyLabelSelector. */
                interface IVmExtensionPolicyLabelSelector {

                    /** VmExtensionPolicyLabelSelector inclusionLabels */
                    inclusionLabels?: ({ [k: string]: string }|null);
                }

                /** Represents a VmExtensionPolicyLabelSelector. */
                class VmExtensionPolicyLabelSelector implements IVmExtensionPolicyLabelSelector {

                    /**
                     * Constructs a new VmExtensionPolicyLabelSelector.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyLabelSelector);

                    /** VmExtensionPolicyLabelSelector inclusionLabels. */
                    public inclusionLabels: { [k: string]: string };

                    /**
                     * Creates a new VmExtensionPolicyLabelSelector instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmExtensionPolicyLabelSelector instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyLabelSelector): google.cloud.compute.v1beta.VmExtensionPolicyLabelSelector;

                    /**
                     * Encodes the specified VmExtensionPolicyLabelSelector message. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyLabelSelector.verify|verify} messages.
                     * @param message VmExtensionPolicyLabelSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmExtensionPolicyLabelSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmExtensionPolicyLabelSelector message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyLabelSelector.verify|verify} messages.
                     * @param message VmExtensionPolicyLabelSelector message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmExtensionPolicyLabelSelector, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmExtensionPolicyLabelSelector message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmExtensionPolicyLabelSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmExtensionPolicyLabelSelector;

                    /**
                     * Decodes a VmExtensionPolicyLabelSelector message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmExtensionPolicyLabelSelector
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmExtensionPolicyLabelSelector;

                    /**
                     * Verifies a VmExtensionPolicyLabelSelector message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmExtensionPolicyLabelSelector message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmExtensionPolicyLabelSelector
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmExtensionPolicyLabelSelector;

                    /**
                     * Creates a plain object from a VmExtensionPolicyLabelSelector message. Also converts values to other types if specified.
                     * @param message VmExtensionPolicyLabelSelector
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmExtensionPolicyLabelSelector, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmExtensionPolicyLabelSelector to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmExtensionPolicyLabelSelector
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VmExtensionPolicyList. */
                interface IVmExtensionPolicyList {

                    /** VmExtensionPolicyList etag */
                    etag?: (string|null);

                    /** VmExtensionPolicyList id */
                    id?: (string|null);

                    /** VmExtensionPolicyList items */
                    items?: (google.cloud.compute.v1beta.IVmExtensionPolicy[]|null);

                    /** VmExtensionPolicyList kind */
                    kind?: (string|null);

                    /** VmExtensionPolicyList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VmExtensionPolicyList selfLink */
                    selfLink?: (string|null);

                    /** VmExtensionPolicyList unreachables */
                    unreachables?: (string[]|null);

                    /** VmExtensionPolicyList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VmExtensionPolicyList. */
                class VmExtensionPolicyList implements IVmExtensionPolicyList {

                    /**
                     * Constructs a new VmExtensionPolicyList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyList);

                    /** VmExtensionPolicyList etag. */
                    public etag?: (string|null);

                    /** VmExtensionPolicyList id. */
                    public id?: (string|null);

                    /** VmExtensionPolicyList items. */
                    public items: google.cloud.compute.v1beta.IVmExtensionPolicy[];

                    /** VmExtensionPolicyList kind. */
                    public kind?: (string|null);

                    /** VmExtensionPolicyList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VmExtensionPolicyList selfLink. */
                    public selfLink?: (string|null);

                    /** VmExtensionPolicyList unreachables. */
                    public unreachables: string[];

                    /** VmExtensionPolicyList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VmExtensionPolicyList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VmExtensionPolicyList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVmExtensionPolicyList): google.cloud.compute.v1beta.VmExtensionPolicyList;

                    /**
                     * Encodes the specified VmExtensionPolicyList message. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyList.verify|verify} messages.
                     * @param message VmExtensionPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVmExtensionPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VmExtensionPolicyList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VmExtensionPolicyList.verify|verify} messages.
                     * @param message VmExtensionPolicyList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVmExtensionPolicyList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VmExtensionPolicyList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VmExtensionPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VmExtensionPolicyList;

                    /**
                     * Decodes a VmExtensionPolicyList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VmExtensionPolicyList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VmExtensionPolicyList;

                    /**
                     * Verifies a VmExtensionPolicyList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VmExtensionPolicyList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VmExtensionPolicyList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VmExtensionPolicyList;

                    /**
                     * Creates a plain object from a VmExtensionPolicyList message. Also converts values to other types if specified.
                     * @param message VmExtensionPolicyList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VmExtensionPolicyList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VmExtensionPolicyList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VmExtensionPolicyList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGateway. */
                interface IVpnGateway {

                    /** VpnGateway creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** VpnGateway description */
                    description?: (string|null);

                    /** VpnGateway gatewayIpVersion */
                    gatewayIpVersion?: (string|null);

                    /** VpnGateway id */
                    id?: (number|Long|string|null);

                    /** VpnGateway kind */
                    kind?: (string|null);

                    /** VpnGateway labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** VpnGateway labels */
                    labels?: ({ [k: string]: string }|null);

                    /** VpnGateway name */
                    name?: (string|null);

                    /** VpnGateway network */
                    network?: (string|null);

                    /** VpnGateway params */
                    params?: (google.cloud.compute.v1beta.IVpnGatewayParams|null);

                    /** VpnGateway region */
                    region?: (string|null);

                    /** VpnGateway selfLink */
                    selfLink?: (string|null);

                    /** VpnGateway stackType */
                    stackType?: (string|null);

                    /** VpnGateway vpnInterfaces */
                    vpnInterfaces?: (google.cloud.compute.v1beta.IVpnGatewayVpnGatewayInterface[]|null);
                }

                /** Represents a VpnGateway. */
                class VpnGateway implements IVpnGateway {

                    /**
                     * Constructs a new VpnGateway.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGateway);

                    /** VpnGateway creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** VpnGateway description. */
                    public description?: (string|null);

                    /** VpnGateway gatewayIpVersion. */
                    public gatewayIpVersion?: (string|null);

                    /** VpnGateway id. */
                    public id?: (number|Long|string|null);

                    /** VpnGateway kind. */
                    public kind?: (string|null);

                    /** VpnGateway labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** VpnGateway labels. */
                    public labels: { [k: string]: string };

                    /** VpnGateway name. */
                    public name?: (string|null);

                    /** VpnGateway network. */
                    public network?: (string|null);

                    /** VpnGateway params. */
                    public params?: (google.cloud.compute.v1beta.IVpnGatewayParams|null);

                    /** VpnGateway region. */
                    public region?: (string|null);

                    /** VpnGateway selfLink. */
                    public selfLink?: (string|null);

                    /** VpnGateway stackType. */
                    public stackType?: (string|null);

                    /** VpnGateway vpnInterfaces. */
                    public vpnInterfaces: google.cloud.compute.v1beta.IVpnGatewayVpnGatewayInterface[];

                    /**
                     * Creates a new VpnGateway instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGateway instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGateway): google.cloud.compute.v1beta.VpnGateway;

                    /**
                     * Encodes the specified VpnGateway message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGateway.verify|verify} messages.
                     * @param message VpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGateway message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGateway.verify|verify} messages.
                     * @param message VpnGateway message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGateway, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGateway message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGateway;

                    /**
                     * Decodes a VpnGateway message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGateway
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGateway;

                    /**
                     * Verifies a VpnGateway message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGateway message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGateway
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGateway;

                    /**
                     * Creates a plain object from a VpnGateway message. Also converts values to other types if specified.
                     * @param message VpnGateway
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGateway, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGateway to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGateway
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace VpnGateway {

                    /** GatewayIpVersion enum. */
                    enum GatewayIpVersion {
                        UNDEFINED_GATEWAY_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343
                    }

                    /** StackType enum. */
                    enum StackType {
                        UNDEFINED_STACK_TYPE = 0,
                        IPV4_IPV6 = 22197249,
                        IPV4_ONLY = 22373798,
                        IPV6_ONLY = 79632100
                    }
                }

                /** Properties of a VpnGatewayAggregatedList. */
                interface IVpnGatewayAggregatedList {

                    /** VpnGatewayAggregatedList id */
                    id?: (string|null);

                    /** VpnGatewayAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IVpnGatewaysScopedList }|null);

                    /** VpnGatewayAggregatedList kind */
                    kind?: (string|null);

                    /** VpnGatewayAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VpnGatewayAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** VpnGatewayAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** VpnGatewayAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VpnGatewayAggregatedList. */
                class VpnGatewayAggregatedList implements IVpnGatewayAggregatedList {

                    /**
                     * Constructs a new VpnGatewayAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewayAggregatedList);

                    /** VpnGatewayAggregatedList id. */
                    public id?: (string|null);

                    /** VpnGatewayAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IVpnGatewaysScopedList };

                    /** VpnGatewayAggregatedList kind. */
                    public kind?: (string|null);

                    /** VpnGatewayAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VpnGatewayAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** VpnGatewayAggregatedList unreachables. */
                    public unreachables: string[];

                    /** VpnGatewayAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VpnGatewayAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewayAggregatedList): google.cloud.compute.v1beta.VpnGatewayAggregatedList;

                    /**
                     * Encodes the specified VpnGatewayAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayAggregatedList.verify|verify} messages.
                     * @param message VpnGatewayAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewayAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayAggregatedList.verify|verify} messages.
                     * @param message VpnGatewayAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewayAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewayAggregatedList;

                    /**
                     * Decodes a VpnGatewayAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewayAggregatedList;

                    /**
                     * Verifies a VpnGatewayAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewayAggregatedList;

                    /**
                     * Creates a plain object from a VpnGatewayAggregatedList message. Also converts values to other types if specified.
                     * @param message VpnGatewayAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewayAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayList. */
                interface IVpnGatewayList {

                    /** VpnGatewayList id */
                    id?: (string|null);

                    /** VpnGatewayList items */
                    items?: (google.cloud.compute.v1beta.IVpnGateway[]|null);

                    /** VpnGatewayList kind */
                    kind?: (string|null);

                    /** VpnGatewayList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VpnGatewayList selfLink */
                    selfLink?: (string|null);

                    /** VpnGatewayList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VpnGatewayList. */
                class VpnGatewayList implements IVpnGatewayList {

                    /**
                     * Constructs a new VpnGatewayList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewayList);

                    /** VpnGatewayList id. */
                    public id?: (string|null);

                    /** VpnGatewayList items. */
                    public items: google.cloud.compute.v1beta.IVpnGateway[];

                    /** VpnGatewayList kind. */
                    public kind?: (string|null);

                    /** VpnGatewayList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VpnGatewayList selfLink. */
                    public selfLink?: (string|null);

                    /** VpnGatewayList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VpnGatewayList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewayList): google.cloud.compute.v1beta.VpnGatewayList;

                    /**
                     * Encodes the specified VpnGatewayList message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayList.verify|verify} messages.
                     * @param message VpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayList.verify|verify} messages.
                     * @param message VpnGatewayList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewayList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewayList;

                    /**
                     * Decodes a VpnGatewayList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewayList;

                    /**
                     * Verifies a VpnGatewayList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewayList;

                    /**
                     * Creates a plain object from a VpnGatewayList message. Also converts values to other types if specified.
                     * @param message VpnGatewayList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewayList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayParams. */
                interface IVpnGatewayParams {

                    /** VpnGatewayParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a VpnGatewayParams. */
                class VpnGatewayParams implements IVpnGatewayParams {

                    /**
                     * Constructs a new VpnGatewayParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewayParams);

                    /** VpnGatewayParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new VpnGatewayParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewayParams): google.cloud.compute.v1beta.VpnGatewayParams;

                    /**
                     * Encodes the specified VpnGatewayParams message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayParams.verify|verify} messages.
                     * @param message VpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayParams.verify|verify} messages.
                     * @param message VpnGatewayParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewayParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewayParams;

                    /**
                     * Decodes a VpnGatewayParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewayParams;

                    /**
                     * Verifies a VpnGatewayParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewayParams;

                    /**
                     * Creates a plain object from a VpnGatewayParams message. Also converts values to other types if specified.
                     * @param message VpnGatewayParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewayParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayStatus. */
                interface IVpnGatewayStatus {

                    /** VpnGatewayStatus vpnConnections */
                    vpnConnections?: (google.cloud.compute.v1beta.IVpnGatewayStatusVpnConnection[]|null);
                }

                /** Represents a VpnGatewayStatus. */
                class VpnGatewayStatus implements IVpnGatewayStatus {

                    /**
                     * Constructs a new VpnGatewayStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewayStatus);

                    /** VpnGatewayStatus vpnConnections. */
                    public vpnConnections: google.cloud.compute.v1beta.IVpnGatewayStatusVpnConnection[];

                    /**
                     * Creates a new VpnGatewayStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayStatus instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewayStatus): google.cloud.compute.v1beta.VpnGatewayStatus;

                    /**
                     * Encodes the specified VpnGatewayStatus message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayStatus.verify|verify} messages.
                     * @param message VpnGatewayStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewayStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayStatus message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayStatus.verify|verify} messages.
                     * @param message VpnGatewayStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewayStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewayStatus;

                    /**
                     * Decodes a VpnGatewayStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewayStatus;

                    /**
                     * Verifies a VpnGatewayStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewayStatus;

                    /**
                     * Creates a plain object from a VpnGatewayStatus message. Also converts values to other types if specified.
                     * @param message VpnGatewayStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewayStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayStatusHighAvailabilityRequirementState. */
                interface IVpnGatewayStatusHighAvailabilityRequirementState {

                    /** VpnGatewayStatusHighAvailabilityRequirementState state */
                    state?: (string|null);

                    /** VpnGatewayStatusHighAvailabilityRequirementState unsatisfiedReason */
                    unsatisfiedReason?: (string|null);
                }

                /** Represents a VpnGatewayStatusHighAvailabilityRequirementState. */
                class VpnGatewayStatusHighAvailabilityRequirementState implements IVpnGatewayStatusHighAvailabilityRequirementState {

                    /**
                     * Constructs a new VpnGatewayStatusHighAvailabilityRequirementState.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewayStatusHighAvailabilityRequirementState);

                    /** VpnGatewayStatusHighAvailabilityRequirementState state. */
                    public state?: (string|null);

                    /** VpnGatewayStatusHighAvailabilityRequirementState unsatisfiedReason. */
                    public unsatisfiedReason?: (string|null);

                    /**
                     * Creates a new VpnGatewayStatusHighAvailabilityRequirementState instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayStatusHighAvailabilityRequirementState instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewayStatusHighAvailabilityRequirementState): google.cloud.compute.v1beta.VpnGatewayStatusHighAvailabilityRequirementState;

                    /**
                     * Encodes the specified VpnGatewayStatusHighAvailabilityRequirementState message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayStatusHighAvailabilityRequirementState.verify|verify} messages.
                     * @param message VpnGatewayStatusHighAvailabilityRequirementState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewayStatusHighAvailabilityRequirementState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayStatusHighAvailabilityRequirementState message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayStatusHighAvailabilityRequirementState.verify|verify} messages.
                     * @param message VpnGatewayStatusHighAvailabilityRequirementState message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewayStatusHighAvailabilityRequirementState, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayStatusHighAvailabilityRequirementState message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayStatusHighAvailabilityRequirementState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewayStatusHighAvailabilityRequirementState;

                    /**
                     * Decodes a VpnGatewayStatusHighAvailabilityRequirementState message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayStatusHighAvailabilityRequirementState
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewayStatusHighAvailabilityRequirementState;

                    /**
                     * Verifies a VpnGatewayStatusHighAvailabilityRequirementState message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayStatusHighAvailabilityRequirementState message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayStatusHighAvailabilityRequirementState
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewayStatusHighAvailabilityRequirementState;

                    /**
                     * Creates a plain object from a VpnGatewayStatusHighAvailabilityRequirementState message. Also converts values to other types if specified.
                     * @param message VpnGatewayStatusHighAvailabilityRequirementState
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewayStatusHighAvailabilityRequirementState, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayStatusHighAvailabilityRequirementState to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayStatusHighAvailabilityRequirementState
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace VpnGatewayStatusHighAvailabilityRequirementState {

                    /** State enum. */
                    enum State {
                        UNDEFINED_STATE = 0,
                        CONNECTION_REDUNDANCY_MET = 505242907,
                        CONNECTION_REDUNDANCY_NOT_MET = 511863311
                    }

                    /** UnsatisfiedReason enum. */
                    enum UnsatisfiedReason {
                        UNDEFINED_UNSATISFIED_REASON = 0,
                        INCOMPLETE_TUNNELS_COVERAGE = 55917437
                    }
                }

                /** Properties of a VpnGatewayStatusTunnel. */
                interface IVpnGatewayStatusTunnel {

                    /** VpnGatewayStatusTunnel localGatewayInterface */
                    localGatewayInterface?: (number|null);

                    /** VpnGatewayStatusTunnel peerGatewayInterface */
                    peerGatewayInterface?: (number|null);

                    /** VpnGatewayStatusTunnel tunnelUrl */
                    tunnelUrl?: (string|null);
                }

                /** Represents a VpnGatewayStatusTunnel. */
                class VpnGatewayStatusTunnel implements IVpnGatewayStatusTunnel {

                    /**
                     * Constructs a new VpnGatewayStatusTunnel.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewayStatusTunnel);

                    /** VpnGatewayStatusTunnel localGatewayInterface. */
                    public localGatewayInterface?: (number|null);

                    /** VpnGatewayStatusTunnel peerGatewayInterface. */
                    public peerGatewayInterface?: (number|null);

                    /** VpnGatewayStatusTunnel tunnelUrl. */
                    public tunnelUrl?: (string|null);

                    /**
                     * Creates a new VpnGatewayStatusTunnel instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayStatusTunnel instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewayStatusTunnel): google.cloud.compute.v1beta.VpnGatewayStatusTunnel;

                    /**
                     * Encodes the specified VpnGatewayStatusTunnel message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayStatusTunnel.verify|verify} messages.
                     * @param message VpnGatewayStatusTunnel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewayStatusTunnel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayStatusTunnel message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayStatusTunnel.verify|verify} messages.
                     * @param message VpnGatewayStatusTunnel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewayStatusTunnel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayStatusTunnel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayStatusTunnel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewayStatusTunnel;

                    /**
                     * Decodes a VpnGatewayStatusTunnel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayStatusTunnel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewayStatusTunnel;

                    /**
                     * Verifies a VpnGatewayStatusTunnel message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayStatusTunnel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayStatusTunnel
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewayStatusTunnel;

                    /**
                     * Creates a plain object from a VpnGatewayStatusTunnel message. Also converts values to other types if specified.
                     * @param message VpnGatewayStatusTunnel
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewayStatusTunnel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayStatusTunnel to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayStatusTunnel
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayStatusVpnConnection. */
                interface IVpnGatewayStatusVpnConnection {

                    /** VpnGatewayStatusVpnConnection peerExternalGateway */
                    peerExternalGateway?: (string|null);

                    /** VpnGatewayStatusVpnConnection peerGcpGateway */
                    peerGcpGateway?: (string|null);

                    /** VpnGatewayStatusVpnConnection state */
                    state?: (google.cloud.compute.v1beta.IVpnGatewayStatusHighAvailabilityRequirementState|null);

                    /** VpnGatewayStatusVpnConnection tunnels */
                    tunnels?: (google.cloud.compute.v1beta.IVpnGatewayStatusTunnel[]|null);
                }

                /** Represents a VpnGatewayStatusVpnConnection. */
                class VpnGatewayStatusVpnConnection implements IVpnGatewayStatusVpnConnection {

                    /**
                     * Constructs a new VpnGatewayStatusVpnConnection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewayStatusVpnConnection);

                    /** VpnGatewayStatusVpnConnection peerExternalGateway. */
                    public peerExternalGateway?: (string|null);

                    /** VpnGatewayStatusVpnConnection peerGcpGateway. */
                    public peerGcpGateway?: (string|null);

                    /** VpnGatewayStatusVpnConnection state. */
                    public state?: (google.cloud.compute.v1beta.IVpnGatewayStatusHighAvailabilityRequirementState|null);

                    /** VpnGatewayStatusVpnConnection tunnels. */
                    public tunnels: google.cloud.compute.v1beta.IVpnGatewayStatusTunnel[];

                    /**
                     * Creates a new VpnGatewayStatusVpnConnection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayStatusVpnConnection instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewayStatusVpnConnection): google.cloud.compute.v1beta.VpnGatewayStatusVpnConnection;

                    /**
                     * Encodes the specified VpnGatewayStatusVpnConnection message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayStatusVpnConnection.verify|verify} messages.
                     * @param message VpnGatewayStatusVpnConnection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewayStatusVpnConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayStatusVpnConnection message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayStatusVpnConnection.verify|verify} messages.
                     * @param message VpnGatewayStatusVpnConnection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewayStatusVpnConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayStatusVpnConnection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayStatusVpnConnection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewayStatusVpnConnection;

                    /**
                     * Decodes a VpnGatewayStatusVpnConnection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayStatusVpnConnection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewayStatusVpnConnection;

                    /**
                     * Verifies a VpnGatewayStatusVpnConnection message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayStatusVpnConnection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayStatusVpnConnection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewayStatusVpnConnection;

                    /**
                     * Creates a plain object from a VpnGatewayStatusVpnConnection message. Also converts values to other types if specified.
                     * @param message VpnGatewayStatusVpnConnection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewayStatusVpnConnection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayStatusVpnConnection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayStatusVpnConnection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewayVpnGatewayInterface. */
                interface IVpnGatewayVpnGatewayInterface {

                    /** VpnGatewayVpnGatewayInterface id */
                    id?: (number|null);

                    /** VpnGatewayVpnGatewayInterface interconnectAttachment */
                    interconnectAttachment?: (string|null);

                    /** VpnGatewayVpnGatewayInterface ipAddress */
                    ipAddress?: (string|null);

                    /** VpnGatewayVpnGatewayInterface ipv6Address */
                    ipv6Address?: (string|null);
                }

                /** Represents a VpnGatewayVpnGatewayInterface. */
                class VpnGatewayVpnGatewayInterface implements IVpnGatewayVpnGatewayInterface {

                    /**
                     * Constructs a new VpnGatewayVpnGatewayInterface.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewayVpnGatewayInterface);

                    /** VpnGatewayVpnGatewayInterface id. */
                    public id?: (number|null);

                    /** VpnGatewayVpnGatewayInterface interconnectAttachment. */
                    public interconnectAttachment?: (string|null);

                    /** VpnGatewayVpnGatewayInterface ipAddress. */
                    public ipAddress?: (string|null);

                    /** VpnGatewayVpnGatewayInterface ipv6Address. */
                    public ipv6Address?: (string|null);

                    /**
                     * Creates a new VpnGatewayVpnGatewayInterface instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewayVpnGatewayInterface instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewayVpnGatewayInterface): google.cloud.compute.v1beta.VpnGatewayVpnGatewayInterface;

                    /**
                     * Encodes the specified VpnGatewayVpnGatewayInterface message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayVpnGatewayInterface.verify|verify} messages.
                     * @param message VpnGatewayVpnGatewayInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewayVpnGatewayInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewayVpnGatewayInterface message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewayVpnGatewayInterface.verify|verify} messages.
                     * @param message VpnGatewayVpnGatewayInterface message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewayVpnGatewayInterface, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewayVpnGatewayInterface message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewayVpnGatewayInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewayVpnGatewayInterface;

                    /**
                     * Decodes a VpnGatewayVpnGatewayInterface message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewayVpnGatewayInterface
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewayVpnGatewayInterface;

                    /**
                     * Verifies a VpnGatewayVpnGatewayInterface message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewayVpnGatewayInterface message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewayVpnGatewayInterface
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewayVpnGatewayInterface;

                    /**
                     * Creates a plain object from a VpnGatewayVpnGatewayInterface message. Also converts values to other types if specified.
                     * @param message VpnGatewayVpnGatewayInterface
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewayVpnGatewayInterface, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewayVpnGatewayInterface to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewayVpnGatewayInterface
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewaysGetStatusResponse. */
                interface IVpnGatewaysGetStatusResponse {

                    /** VpnGatewaysGetStatusResponse result */
                    result?: (google.cloud.compute.v1beta.IVpnGatewayStatus|null);
                }

                /** Represents a VpnGatewaysGetStatusResponse. */
                class VpnGatewaysGetStatusResponse implements IVpnGatewaysGetStatusResponse {

                    /**
                     * Constructs a new VpnGatewaysGetStatusResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewaysGetStatusResponse);

                    /** VpnGatewaysGetStatusResponse result. */
                    public result?: (google.cloud.compute.v1beta.IVpnGatewayStatus|null);

                    /**
                     * Creates a new VpnGatewaysGetStatusResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewaysGetStatusResponse instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewaysGetStatusResponse): google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse;

                    /**
                     * Encodes the specified VpnGatewaysGetStatusResponse message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse.verify|verify} messages.
                     * @param message VpnGatewaysGetStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewaysGetStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewaysGetStatusResponse message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse.verify|verify} messages.
                     * @param message VpnGatewaysGetStatusResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewaysGetStatusResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewaysGetStatusResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewaysGetStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse;

                    /**
                     * Decodes a VpnGatewaysGetStatusResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewaysGetStatusResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse;

                    /**
                     * Verifies a VpnGatewaysGetStatusResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewaysGetStatusResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewaysGetStatusResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse;

                    /**
                     * Creates a plain object from a VpnGatewaysGetStatusResponse message. Also converts values to other types if specified.
                     * @param message VpnGatewaysGetStatusResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewaysGetStatusResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewaysGetStatusResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnGatewaysScopedList. */
                interface IVpnGatewaysScopedList {

                    /** VpnGatewaysScopedList vpnGateways */
                    vpnGateways?: (google.cloud.compute.v1beta.IVpnGateway[]|null);

                    /** VpnGatewaysScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VpnGatewaysScopedList. */
                class VpnGatewaysScopedList implements IVpnGatewaysScopedList {

                    /**
                     * Constructs a new VpnGatewaysScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnGatewaysScopedList);

                    /** VpnGatewaysScopedList vpnGateways. */
                    public vpnGateways: google.cloud.compute.v1beta.IVpnGateway[];

                    /** VpnGatewaysScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VpnGatewaysScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnGatewaysScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnGatewaysScopedList): google.cloud.compute.v1beta.VpnGatewaysScopedList;

                    /**
                     * Encodes the specified VpnGatewaysScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewaysScopedList.verify|verify} messages.
                     * @param message VpnGatewaysScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnGatewaysScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnGatewaysScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnGatewaysScopedList.verify|verify} messages.
                     * @param message VpnGatewaysScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnGatewaysScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnGatewaysScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnGatewaysScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnGatewaysScopedList;

                    /**
                     * Decodes a VpnGatewaysScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnGatewaysScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnGatewaysScopedList;

                    /**
                     * Verifies a VpnGatewaysScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnGatewaysScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnGatewaysScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnGatewaysScopedList;

                    /**
                     * Creates a plain object from a VpnGatewaysScopedList message. Also converts values to other types if specified.
                     * @param message VpnGatewaysScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnGatewaysScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnGatewaysScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnGatewaysScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnel. */
                interface IVpnTunnel {

                    /** VpnTunnel capacityTier */
                    capacityTier?: (string|null);

                    /** VpnTunnel cipherSuite */
                    cipherSuite?: (google.cloud.compute.v1beta.IVpnTunnelCipherSuite|null);

                    /** VpnTunnel creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** VpnTunnel description */
                    description?: (string|null);

                    /** VpnTunnel detailedStatus */
                    detailedStatus?: (string|null);

                    /** VpnTunnel id */
                    id?: (number|Long|string|null);

                    /** VpnTunnel ikeVersion */
                    ikeVersion?: (number|null);

                    /** VpnTunnel kind */
                    kind?: (string|null);

                    /** VpnTunnel labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** VpnTunnel labels */
                    labels?: ({ [k: string]: string }|null);

                    /** VpnTunnel localTrafficSelector */
                    localTrafficSelector?: (string[]|null);

                    /** VpnTunnel name */
                    name?: (string|null);

                    /** VpnTunnel params */
                    params?: (google.cloud.compute.v1beta.IVpnTunnelParams|null);

                    /** VpnTunnel peerExternalGateway */
                    peerExternalGateway?: (string|null);

                    /** VpnTunnel peerExternalGatewayInterface */
                    peerExternalGatewayInterface?: (number|null);

                    /** VpnTunnel peerGcpGateway */
                    peerGcpGateway?: (string|null);

                    /** VpnTunnel peerIp */
                    peerIp?: (string|null);

                    /** VpnTunnel region */
                    region?: (string|null);

                    /** VpnTunnel remoteTrafficSelector */
                    remoteTrafficSelector?: (string[]|null);

                    /** VpnTunnel router */
                    router?: (string|null);

                    /** VpnTunnel selfLink */
                    selfLink?: (string|null);

                    /** VpnTunnel sharedSecret */
                    sharedSecret?: (string|null);

                    /** VpnTunnel sharedSecretHash */
                    sharedSecretHash?: (string|null);

                    /** VpnTunnel status */
                    status?: (string|null);

                    /** VpnTunnel targetVpnGateway */
                    targetVpnGateway?: (string|null);

                    /** VpnTunnel vpnGateway */
                    vpnGateway?: (string|null);

                    /** VpnTunnel vpnGatewayInterface */
                    vpnGatewayInterface?: (number|null);
                }

                /** Represents a VpnTunnel. */
                class VpnTunnel implements IVpnTunnel {

                    /**
                     * Constructs a new VpnTunnel.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnTunnel);

                    /** VpnTunnel capacityTier. */
                    public capacityTier?: (string|null);

                    /** VpnTunnel cipherSuite. */
                    public cipherSuite?: (google.cloud.compute.v1beta.IVpnTunnelCipherSuite|null);

                    /** VpnTunnel creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** VpnTunnel description. */
                    public description?: (string|null);

                    /** VpnTunnel detailedStatus. */
                    public detailedStatus?: (string|null);

                    /** VpnTunnel id. */
                    public id?: (number|Long|string|null);

                    /** VpnTunnel ikeVersion. */
                    public ikeVersion?: (number|null);

                    /** VpnTunnel kind. */
                    public kind?: (string|null);

                    /** VpnTunnel labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** VpnTunnel labels. */
                    public labels: { [k: string]: string };

                    /** VpnTunnel localTrafficSelector. */
                    public localTrafficSelector: string[];

                    /** VpnTunnel name. */
                    public name?: (string|null);

                    /** VpnTunnel params. */
                    public params?: (google.cloud.compute.v1beta.IVpnTunnelParams|null);

                    /** VpnTunnel peerExternalGateway. */
                    public peerExternalGateway?: (string|null);

                    /** VpnTunnel peerExternalGatewayInterface. */
                    public peerExternalGatewayInterface?: (number|null);

                    /** VpnTunnel peerGcpGateway. */
                    public peerGcpGateway?: (string|null);

                    /** VpnTunnel peerIp. */
                    public peerIp?: (string|null);

                    /** VpnTunnel region. */
                    public region?: (string|null);

                    /** VpnTunnel remoteTrafficSelector. */
                    public remoteTrafficSelector: string[];

                    /** VpnTunnel router. */
                    public router?: (string|null);

                    /** VpnTunnel selfLink. */
                    public selfLink?: (string|null);

                    /** VpnTunnel sharedSecret. */
                    public sharedSecret?: (string|null);

                    /** VpnTunnel sharedSecretHash. */
                    public sharedSecretHash?: (string|null);

                    /** VpnTunnel status. */
                    public status?: (string|null);

                    /** VpnTunnel targetVpnGateway. */
                    public targetVpnGateway?: (string|null);

                    /** VpnTunnel vpnGateway. */
                    public vpnGateway?: (string|null);

                    /** VpnTunnel vpnGatewayInterface. */
                    public vpnGatewayInterface?: (number|null);

                    /**
                     * Creates a new VpnTunnel instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnel instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnTunnel): google.cloud.compute.v1beta.VpnTunnel;

                    /**
                     * Encodes the specified VpnTunnel message. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnel.verify|verify} messages.
                     * @param message VpnTunnel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnTunnel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnel message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnel.verify|verify} messages.
                     * @param message VpnTunnel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnTunnel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnTunnel;

                    /**
                     * Decodes a VpnTunnel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnTunnel;

                    /**
                     * Verifies a VpnTunnel message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnel
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnTunnel;

                    /**
                     * Creates a plain object from a VpnTunnel message. Also converts values to other types if specified.
                     * @param message VpnTunnel
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnTunnel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnel to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnel
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace VpnTunnel {

                    /** CapacityTier enum. */
                    enum CapacityTier {
                        UNDEFINED_CAPACITY_TIER = 0,
                        DEFAULT = 115302945,
                        HIGH = 2217378
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        ALLOCATING_RESOURCES = 320922816,
                        AUTHORIZATION_ERROR = 23580290,
                        DEPROVISIONING = 428935662,
                        ESTABLISHED = 88852344,
                        FAILED = 455706685,
                        FIRST_HANDSHAKE = 191393000,
                        NEGOTIATION_FAILURE = 360325868,
                        NETWORK_ERROR = 193912951,
                        NO_INCOMING_PACKETS = 119983216,
                        PROVISIONING = 290896621,
                        REJECTED = 174130302,
                        STOPPED = 444276141,
                        WAITING_FOR_FULL_CONFIG = 41640522
                    }
                }

                /** Properties of a VpnTunnelAggregatedList. */
                interface IVpnTunnelAggregatedList {

                    /** VpnTunnelAggregatedList id */
                    id?: (string|null);

                    /** VpnTunnelAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1beta.IVpnTunnelsScopedList }|null);

                    /** VpnTunnelAggregatedList kind */
                    kind?: (string|null);

                    /** VpnTunnelAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VpnTunnelAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** VpnTunnelAggregatedList unreachables */
                    unreachables?: (string[]|null);

                    /** VpnTunnelAggregatedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VpnTunnelAggregatedList. */
                class VpnTunnelAggregatedList implements IVpnTunnelAggregatedList {

                    /**
                     * Constructs a new VpnTunnelAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnTunnelAggregatedList);

                    /** VpnTunnelAggregatedList id. */
                    public id?: (string|null);

                    /** VpnTunnelAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1beta.IVpnTunnelsScopedList };

                    /** VpnTunnelAggregatedList kind. */
                    public kind?: (string|null);

                    /** VpnTunnelAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VpnTunnelAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** VpnTunnelAggregatedList unreachables. */
                    public unreachables: string[];

                    /** VpnTunnelAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VpnTunnelAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnTunnelAggregatedList): google.cloud.compute.v1beta.VpnTunnelAggregatedList;

                    /**
                     * Encodes the specified VpnTunnelAggregatedList message. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelAggregatedList.verify|verify} messages.
                     * @param message VpnTunnelAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnTunnelAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelAggregatedList.verify|verify} messages.
                     * @param message VpnTunnelAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnTunnelAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnTunnelAggregatedList;

                    /**
                     * Decodes a VpnTunnelAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnTunnelAggregatedList;

                    /**
                     * Verifies a VpnTunnelAggregatedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnTunnelAggregatedList;

                    /**
                     * Creates a plain object from a VpnTunnelAggregatedList message. Also converts values to other types if specified.
                     * @param message VpnTunnelAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnTunnelAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelCipherSuite. */
                interface IVpnTunnelCipherSuite {

                    /** VpnTunnelCipherSuite phase1 */
                    phase1?: (google.cloud.compute.v1beta.IVpnTunnelPhase1Algorithms|null);

                    /** VpnTunnelCipherSuite phase2 */
                    phase2?: (google.cloud.compute.v1beta.IVpnTunnelPhase2Algorithms|null);
                }

                /** Represents a VpnTunnelCipherSuite. */
                class VpnTunnelCipherSuite implements IVpnTunnelCipherSuite {

                    /**
                     * Constructs a new VpnTunnelCipherSuite.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnTunnelCipherSuite);

                    /** VpnTunnelCipherSuite phase1. */
                    public phase1?: (google.cloud.compute.v1beta.IVpnTunnelPhase1Algorithms|null);

                    /** VpnTunnelCipherSuite phase2. */
                    public phase2?: (google.cloud.compute.v1beta.IVpnTunnelPhase2Algorithms|null);

                    /**
                     * Creates a new VpnTunnelCipherSuite instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelCipherSuite instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnTunnelCipherSuite): google.cloud.compute.v1beta.VpnTunnelCipherSuite;

                    /**
                     * Encodes the specified VpnTunnelCipherSuite message. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelCipherSuite.verify|verify} messages.
                     * @param message VpnTunnelCipherSuite message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnTunnelCipherSuite, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelCipherSuite message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelCipherSuite.verify|verify} messages.
                     * @param message VpnTunnelCipherSuite message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnTunnelCipherSuite, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelCipherSuite message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelCipherSuite
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnTunnelCipherSuite;

                    /**
                     * Decodes a VpnTunnelCipherSuite message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelCipherSuite
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnTunnelCipherSuite;

                    /**
                     * Verifies a VpnTunnelCipherSuite message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelCipherSuite message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelCipherSuite
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnTunnelCipherSuite;

                    /**
                     * Creates a plain object from a VpnTunnelCipherSuite message. Also converts values to other types if specified.
                     * @param message VpnTunnelCipherSuite
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnTunnelCipherSuite, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelCipherSuite to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelCipherSuite
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelList. */
                interface IVpnTunnelList {

                    /** VpnTunnelList id */
                    id?: (string|null);

                    /** VpnTunnelList items */
                    items?: (google.cloud.compute.v1beta.IVpnTunnel[]|null);

                    /** VpnTunnelList kind */
                    kind?: (string|null);

                    /** VpnTunnelList nextPageToken */
                    nextPageToken?: (string|null);

                    /** VpnTunnelList selfLink */
                    selfLink?: (string|null);

                    /** VpnTunnelList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VpnTunnelList. */
                class VpnTunnelList implements IVpnTunnelList {

                    /**
                     * Constructs a new VpnTunnelList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnTunnelList);

                    /** VpnTunnelList id. */
                    public id?: (string|null);

                    /** VpnTunnelList items. */
                    public items: google.cloud.compute.v1beta.IVpnTunnel[];

                    /** VpnTunnelList kind. */
                    public kind?: (string|null);

                    /** VpnTunnelList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** VpnTunnelList selfLink. */
                    public selfLink?: (string|null);

                    /** VpnTunnelList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VpnTunnelList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnTunnelList): google.cloud.compute.v1beta.VpnTunnelList;

                    /**
                     * Encodes the specified VpnTunnelList message. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelList.verify|verify} messages.
                     * @param message VpnTunnelList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnTunnelList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelList.verify|verify} messages.
                     * @param message VpnTunnelList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnTunnelList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnTunnelList;

                    /**
                     * Decodes a VpnTunnelList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnTunnelList;

                    /**
                     * Verifies a VpnTunnelList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnTunnelList;

                    /**
                     * Creates a plain object from a VpnTunnelList message. Also converts values to other types if specified.
                     * @param message VpnTunnelList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnTunnelList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelParams. */
                interface IVpnTunnelParams {

                    /** VpnTunnelParams resourceManagerTags */
                    resourceManagerTags?: ({ [k: string]: string }|null);
                }

                /** Represents a VpnTunnelParams. */
                class VpnTunnelParams implements IVpnTunnelParams {

                    /**
                     * Constructs a new VpnTunnelParams.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnTunnelParams);

                    /** VpnTunnelParams resourceManagerTags. */
                    public resourceManagerTags: { [k: string]: string };

                    /**
                     * Creates a new VpnTunnelParams instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelParams instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnTunnelParams): google.cloud.compute.v1beta.VpnTunnelParams;

                    /**
                     * Encodes the specified VpnTunnelParams message. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelParams.verify|verify} messages.
                     * @param message VpnTunnelParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnTunnelParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelParams message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelParams.verify|verify} messages.
                     * @param message VpnTunnelParams message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnTunnelParams, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelParams message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnTunnelParams;

                    /**
                     * Decodes a VpnTunnelParams message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelParams
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnTunnelParams;

                    /**
                     * Verifies a VpnTunnelParams message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelParams message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelParams
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnTunnelParams;

                    /**
                     * Creates a plain object from a VpnTunnelParams message. Also converts values to other types if specified.
                     * @param message VpnTunnelParams
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnTunnelParams, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelParams to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelParams
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelPhase1Algorithms. */
                interface IVpnTunnelPhase1Algorithms {

                    /** VpnTunnelPhase1Algorithms dh */
                    dh?: (string[]|null);

                    /** VpnTunnelPhase1Algorithms encryption */
                    encryption?: (string[]|null);

                    /** VpnTunnelPhase1Algorithms integrity */
                    integrity?: (string[]|null);

                    /** VpnTunnelPhase1Algorithms prf */
                    prf?: (string[]|null);
                }

                /** Represents a VpnTunnelPhase1Algorithms. */
                class VpnTunnelPhase1Algorithms implements IVpnTunnelPhase1Algorithms {

                    /**
                     * Constructs a new VpnTunnelPhase1Algorithms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnTunnelPhase1Algorithms);

                    /** VpnTunnelPhase1Algorithms dh. */
                    public dh: string[];

                    /** VpnTunnelPhase1Algorithms encryption. */
                    public encryption: string[];

                    /** VpnTunnelPhase1Algorithms integrity. */
                    public integrity: string[];

                    /** VpnTunnelPhase1Algorithms prf. */
                    public prf: string[];

                    /**
                     * Creates a new VpnTunnelPhase1Algorithms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelPhase1Algorithms instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnTunnelPhase1Algorithms): google.cloud.compute.v1beta.VpnTunnelPhase1Algorithms;

                    /**
                     * Encodes the specified VpnTunnelPhase1Algorithms message. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelPhase1Algorithms.verify|verify} messages.
                     * @param message VpnTunnelPhase1Algorithms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnTunnelPhase1Algorithms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelPhase1Algorithms message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelPhase1Algorithms.verify|verify} messages.
                     * @param message VpnTunnelPhase1Algorithms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnTunnelPhase1Algorithms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelPhase1Algorithms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelPhase1Algorithms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnTunnelPhase1Algorithms;

                    /**
                     * Decodes a VpnTunnelPhase1Algorithms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelPhase1Algorithms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnTunnelPhase1Algorithms;

                    /**
                     * Verifies a VpnTunnelPhase1Algorithms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelPhase1Algorithms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelPhase1Algorithms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnTunnelPhase1Algorithms;

                    /**
                     * Creates a plain object from a VpnTunnelPhase1Algorithms message. Also converts values to other types if specified.
                     * @param message VpnTunnelPhase1Algorithms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnTunnelPhase1Algorithms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelPhase1Algorithms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelPhase1Algorithms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelPhase2Algorithms. */
                interface IVpnTunnelPhase2Algorithms {

                    /** VpnTunnelPhase2Algorithms encryption */
                    encryption?: (string[]|null);

                    /** VpnTunnelPhase2Algorithms integrity */
                    integrity?: (string[]|null);

                    /** VpnTunnelPhase2Algorithms pfs */
                    pfs?: (string[]|null);
                }

                /** Represents a VpnTunnelPhase2Algorithms. */
                class VpnTunnelPhase2Algorithms implements IVpnTunnelPhase2Algorithms {

                    /**
                     * Constructs a new VpnTunnelPhase2Algorithms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnTunnelPhase2Algorithms);

                    /** VpnTunnelPhase2Algorithms encryption. */
                    public encryption: string[];

                    /** VpnTunnelPhase2Algorithms integrity. */
                    public integrity: string[];

                    /** VpnTunnelPhase2Algorithms pfs. */
                    public pfs: string[];

                    /**
                     * Creates a new VpnTunnelPhase2Algorithms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelPhase2Algorithms instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnTunnelPhase2Algorithms): google.cloud.compute.v1beta.VpnTunnelPhase2Algorithms;

                    /**
                     * Encodes the specified VpnTunnelPhase2Algorithms message. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelPhase2Algorithms.verify|verify} messages.
                     * @param message VpnTunnelPhase2Algorithms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnTunnelPhase2Algorithms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelPhase2Algorithms message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelPhase2Algorithms.verify|verify} messages.
                     * @param message VpnTunnelPhase2Algorithms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnTunnelPhase2Algorithms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelPhase2Algorithms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelPhase2Algorithms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnTunnelPhase2Algorithms;

                    /**
                     * Decodes a VpnTunnelPhase2Algorithms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelPhase2Algorithms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnTunnelPhase2Algorithms;

                    /**
                     * Verifies a VpnTunnelPhase2Algorithms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelPhase2Algorithms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelPhase2Algorithms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnTunnelPhase2Algorithms;

                    /**
                     * Creates a plain object from a VpnTunnelPhase2Algorithms message. Also converts values to other types if specified.
                     * @param message VpnTunnelPhase2Algorithms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnTunnelPhase2Algorithms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelPhase2Algorithms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelPhase2Algorithms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpnTunnelsScopedList. */
                interface IVpnTunnelsScopedList {

                    /** VpnTunnelsScopedList vpnTunnels */
                    vpnTunnels?: (google.cloud.compute.v1beta.IVpnTunnel[]|null);

                    /** VpnTunnelsScopedList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a VpnTunnelsScopedList. */
                class VpnTunnelsScopedList implements IVpnTunnelsScopedList {

                    /**
                     * Constructs a new VpnTunnelsScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IVpnTunnelsScopedList);

                    /** VpnTunnelsScopedList vpnTunnels. */
                    public vpnTunnels: google.cloud.compute.v1beta.IVpnTunnel[];

                    /** VpnTunnelsScopedList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new VpnTunnelsScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpnTunnelsScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IVpnTunnelsScopedList): google.cloud.compute.v1beta.VpnTunnelsScopedList;

                    /**
                     * Encodes the specified VpnTunnelsScopedList message. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelsScopedList.verify|verify} messages.
                     * @param message VpnTunnelsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IVpnTunnelsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpnTunnelsScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.VpnTunnelsScopedList.verify|verify} messages.
                     * @param message VpnTunnelsScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IVpnTunnelsScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpnTunnelsScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpnTunnelsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.VpnTunnelsScopedList;

                    /**
                     * Decodes a VpnTunnelsScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpnTunnelsScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.VpnTunnelsScopedList;

                    /**
                     * Verifies a VpnTunnelsScopedList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpnTunnelsScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpnTunnelsScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.VpnTunnelsScopedList;

                    /**
                     * Creates a plain object from a VpnTunnelsScopedList message. Also converts values to other types if specified.
                     * @param message VpnTunnelsScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.VpnTunnelsScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpnTunnelsScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpnTunnelsScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WafExpressionSet. */
                interface IWafExpressionSet {

                    /** WafExpressionSet aliases */
                    aliases?: (string[]|null);

                    /** WafExpressionSet expressions */
                    expressions?: (google.cloud.compute.v1beta.IWafExpressionSetExpression[]|null);

                    /** WafExpressionSet id */
                    id?: (string|null);
                }

                /** Represents a WafExpressionSet. */
                class WafExpressionSet implements IWafExpressionSet {

                    /**
                     * Constructs a new WafExpressionSet.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWafExpressionSet);

                    /** WafExpressionSet aliases. */
                    public aliases: string[];

                    /** WafExpressionSet expressions. */
                    public expressions: google.cloud.compute.v1beta.IWafExpressionSetExpression[];

                    /** WafExpressionSet id. */
                    public id?: (string|null);

                    /**
                     * Creates a new WafExpressionSet instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WafExpressionSet instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWafExpressionSet): google.cloud.compute.v1beta.WafExpressionSet;

                    /**
                     * Encodes the specified WafExpressionSet message. Does not implicitly {@link google.cloud.compute.v1beta.WafExpressionSet.verify|verify} messages.
                     * @param message WafExpressionSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWafExpressionSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WafExpressionSet message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WafExpressionSet.verify|verify} messages.
                     * @param message WafExpressionSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWafExpressionSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WafExpressionSet message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WafExpressionSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WafExpressionSet;

                    /**
                     * Decodes a WafExpressionSet message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WafExpressionSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WafExpressionSet;

                    /**
                     * Verifies a WafExpressionSet message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WafExpressionSet message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WafExpressionSet
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WafExpressionSet;

                    /**
                     * Creates a plain object from a WafExpressionSet message. Also converts values to other types if specified.
                     * @param message WafExpressionSet
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WafExpressionSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WafExpressionSet to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WafExpressionSet
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WafExpressionSetExpression. */
                interface IWafExpressionSetExpression {

                    /** WafExpressionSetExpression id */
                    id?: (string|null);

                    /** WafExpressionSetExpression sensitivity */
                    sensitivity?: (number|null);
                }

                /** Represents a WafExpressionSetExpression. */
                class WafExpressionSetExpression implements IWafExpressionSetExpression {

                    /**
                     * Constructs a new WafExpressionSetExpression.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWafExpressionSetExpression);

                    /** WafExpressionSetExpression id. */
                    public id?: (string|null);

                    /** WafExpressionSetExpression sensitivity. */
                    public sensitivity?: (number|null);

                    /**
                     * Creates a new WafExpressionSetExpression instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WafExpressionSetExpression instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWafExpressionSetExpression): google.cloud.compute.v1beta.WafExpressionSetExpression;

                    /**
                     * Encodes the specified WafExpressionSetExpression message. Does not implicitly {@link google.cloud.compute.v1beta.WafExpressionSetExpression.verify|verify} messages.
                     * @param message WafExpressionSetExpression message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWafExpressionSetExpression, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WafExpressionSetExpression message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WafExpressionSetExpression.verify|verify} messages.
                     * @param message WafExpressionSetExpression message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWafExpressionSetExpression, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WafExpressionSetExpression message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WafExpressionSetExpression
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WafExpressionSetExpression;

                    /**
                     * Decodes a WafExpressionSetExpression message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WafExpressionSetExpression
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WafExpressionSetExpression;

                    /**
                     * Verifies a WafExpressionSetExpression message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WafExpressionSetExpression message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WafExpressionSetExpression
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WafExpressionSetExpression;

                    /**
                     * Creates a plain object from a WafExpressionSetExpression message. Also converts values to other types if specified.
                     * @param message WafExpressionSetExpression
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WafExpressionSetExpression, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WafExpressionSetExpression to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WafExpressionSetExpression
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WaitGlobalOperationRequest. */
                interface IWaitGlobalOperationRequest {

                    /** WaitGlobalOperationRequest operation */
                    operation?: (string|null);

                    /** WaitGlobalOperationRequest project */
                    project?: (string|null);
                }

                /** Represents a WaitGlobalOperationRequest. */
                class WaitGlobalOperationRequest implements IWaitGlobalOperationRequest {

                    /**
                     * Constructs a new WaitGlobalOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWaitGlobalOperationRequest);

                    /** WaitGlobalOperationRequest operation. */
                    public operation: string;

                    /** WaitGlobalOperationRequest project. */
                    public project: string;

                    /**
                     * Creates a new WaitGlobalOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WaitGlobalOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWaitGlobalOperationRequest): google.cloud.compute.v1beta.WaitGlobalOperationRequest;

                    /**
                     * Encodes the specified WaitGlobalOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.WaitGlobalOperationRequest.verify|verify} messages.
                     * @param message WaitGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWaitGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WaitGlobalOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WaitGlobalOperationRequest.verify|verify} messages.
                     * @param message WaitGlobalOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWaitGlobalOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WaitGlobalOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WaitGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WaitGlobalOperationRequest;

                    /**
                     * Decodes a WaitGlobalOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WaitGlobalOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WaitGlobalOperationRequest;

                    /**
                     * Verifies a WaitGlobalOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WaitGlobalOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WaitGlobalOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WaitGlobalOperationRequest;

                    /**
                     * Creates a plain object from a WaitGlobalOperationRequest message. Also converts values to other types if specified.
                     * @param message WaitGlobalOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WaitGlobalOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WaitGlobalOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WaitGlobalOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WaitRegionOperationRequest. */
                interface IWaitRegionOperationRequest {

                    /** WaitRegionOperationRequest operation */
                    operation?: (string|null);

                    /** WaitRegionOperationRequest project */
                    project?: (string|null);

                    /** WaitRegionOperationRequest region */
                    region?: (string|null);
                }

                /** Represents a WaitRegionOperationRequest. */
                class WaitRegionOperationRequest implements IWaitRegionOperationRequest {

                    /**
                     * Constructs a new WaitRegionOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWaitRegionOperationRequest);

                    /** WaitRegionOperationRequest operation. */
                    public operation: string;

                    /** WaitRegionOperationRequest project. */
                    public project: string;

                    /** WaitRegionOperationRequest region. */
                    public region: string;

                    /**
                     * Creates a new WaitRegionOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WaitRegionOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWaitRegionOperationRequest): google.cloud.compute.v1beta.WaitRegionOperationRequest;

                    /**
                     * Encodes the specified WaitRegionOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.WaitRegionOperationRequest.verify|verify} messages.
                     * @param message WaitRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWaitRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WaitRegionOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WaitRegionOperationRequest.verify|verify} messages.
                     * @param message WaitRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWaitRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WaitRegionOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WaitRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WaitRegionOperationRequest;

                    /**
                     * Decodes a WaitRegionOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WaitRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WaitRegionOperationRequest;

                    /**
                     * Verifies a WaitRegionOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WaitRegionOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WaitRegionOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WaitRegionOperationRequest;

                    /**
                     * Creates a plain object from a WaitRegionOperationRequest message. Also converts values to other types if specified.
                     * @param message WaitRegionOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WaitRegionOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WaitRegionOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WaitRegionOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WaitZoneOperationRequest. */
                interface IWaitZoneOperationRequest {

                    /** WaitZoneOperationRequest operation */
                    operation?: (string|null);

                    /** WaitZoneOperationRequest project */
                    project?: (string|null);

                    /** WaitZoneOperationRequest zone */
                    zone?: (string|null);
                }

                /** Represents a WaitZoneOperationRequest. */
                class WaitZoneOperationRequest implements IWaitZoneOperationRequest {

                    /**
                     * Constructs a new WaitZoneOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWaitZoneOperationRequest);

                    /** WaitZoneOperationRequest operation. */
                    public operation: string;

                    /** WaitZoneOperationRequest project. */
                    public project: string;

                    /** WaitZoneOperationRequest zone. */
                    public zone: string;

                    /**
                     * Creates a new WaitZoneOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WaitZoneOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWaitZoneOperationRequest): google.cloud.compute.v1beta.WaitZoneOperationRequest;

                    /**
                     * Encodes the specified WaitZoneOperationRequest message. Does not implicitly {@link google.cloud.compute.v1beta.WaitZoneOperationRequest.verify|verify} messages.
                     * @param message WaitZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWaitZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WaitZoneOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WaitZoneOperationRequest.verify|verify} messages.
                     * @param message WaitZoneOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWaitZoneOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WaitZoneOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WaitZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WaitZoneOperationRequest;

                    /**
                     * Decodes a WaitZoneOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WaitZoneOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WaitZoneOperationRequest;

                    /**
                     * Verifies a WaitZoneOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WaitZoneOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WaitZoneOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WaitZoneOperationRequest;

                    /**
                     * Creates a plain object from a WaitZoneOperationRequest message. Also converts values to other types if specified.
                     * @param message WaitZoneOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WaitZoneOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WaitZoneOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WaitZoneOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Warning. */
                interface IWarning {

                    /** Warning code */
                    code?: (string|null);

                    /** Warning data */
                    data?: (google.cloud.compute.v1beta.IData[]|null);

                    /** Warning message */
                    message?: (string|null);
                }

                /** Represents a Warning. */
                class Warning implements IWarning {

                    /**
                     * Constructs a new Warning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWarning);

                    /** Warning code. */
                    public code?: (string|null);

                    /** Warning data. */
                    public data: google.cloud.compute.v1beta.IData[];

                    /** Warning message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Warning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Warning instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWarning): google.cloud.compute.v1beta.Warning;

                    /**
                     * Encodes the specified Warning message. Does not implicitly {@link google.cloud.compute.v1beta.Warning.verify|verify} messages.
                     * @param message Warning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Warning message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Warning.verify|verify} messages.
                     * @param message Warning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Warning message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Warning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Warning;

                    /**
                     * Decodes a Warning message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Warning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Warning;

                    /**
                     * Verifies a Warning message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Warning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Warning
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Warning;

                    /**
                     * Creates a plain object from a Warning message. Also converts values to other types if specified.
                     * @param message Warning
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Warning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Warning to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Warning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Warning {

                    /** Code enum. */
                    enum Code {
                        UNDEFINED_CODE = 0,
                        CLEANUP_FAILED = 150308440,
                        DEPRECATED_RESOURCE_USED = 391835586,
                        DEPRECATED_TYPE_USED = 346526230,
                        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967,
                        EXPERIMENTAL_TYPE_USED = 451954443,
                        EXTERNAL_API_WARNING = 175546307,
                        FIELD_VALUE_OVERRIDEN = 329669423,
                        INJECTED_KERNELS_DEPRECATED = 417377419,
                        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606,
                        LARGE_DEPLOYMENT_WARNING = 481440678,
                        LIST_OVERHEAD_QUOTA_EXCEED = 47618117,
                        MISSING_TYPE_DEPENDENCY = 344505463,
                        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999,
                        NEXT_HOP_CANNOT_IP_FORWARD = 383382887,
                        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434,
                        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446,
                        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146,
                        NEXT_HOP_NOT_RUNNING = 417081265,
                        NOT_CRITICAL_ERROR = 105763924,
                        NO_RESULTS_ON_PAGE = 30036744,
                        PARTIAL_SUCCESS = 39966469,
                        QUOTA_INFO_UNAVAILABLE = 304294182,
                        REQUIRED_TOS_AGREEMENT = 3745539,
                        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641,
                        RESOURCE_NOT_DELETED = 168598460,
                        SCHEMA_VALIDATION_IGNORED = 275245642,
                        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617,
                        UNDECLARED_PROPERTIES = 390513439,
                        UNREACHABLE = 13328052
                    }
                }

                /** Properties of a Warnings. */
                interface IWarnings {

                    /** Warnings code */
                    code?: (string|null);

                    /** Warnings data */
                    data?: (google.cloud.compute.v1beta.IData[]|null);

                    /** Warnings message */
                    message?: (string|null);
                }

                /** Represents a Warnings. */
                class Warnings implements IWarnings {

                    /**
                     * Constructs a new Warnings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWarnings);

                    /** Warnings code. */
                    public code?: (string|null);

                    /** Warnings data. */
                    public data: google.cloud.compute.v1beta.IData[];

                    /** Warnings message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Warnings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Warnings instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWarnings): google.cloud.compute.v1beta.Warnings;

                    /**
                     * Encodes the specified Warnings message. Does not implicitly {@link google.cloud.compute.v1beta.Warnings.verify|verify} messages.
                     * @param message Warnings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWarnings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Warnings message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Warnings.verify|verify} messages.
                     * @param message Warnings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWarnings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Warnings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Warnings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Warnings;

                    /**
                     * Decodes a Warnings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Warnings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Warnings;

                    /**
                     * Verifies a Warnings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Warnings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Warnings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Warnings;

                    /**
                     * Creates a plain object from a Warnings message. Also converts values to other types if specified.
                     * @param message Warnings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Warnings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Warnings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Warnings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Warnings {

                    /** Code enum. */
                    enum Code {
                        UNDEFINED_CODE = 0,
                        CLEANUP_FAILED = 150308440,
                        DEPRECATED_RESOURCE_USED = 391835586,
                        DEPRECATED_TYPE_USED = 346526230,
                        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967,
                        EXPERIMENTAL_TYPE_USED = 451954443,
                        EXTERNAL_API_WARNING = 175546307,
                        FIELD_VALUE_OVERRIDEN = 329669423,
                        INJECTED_KERNELS_DEPRECATED = 417377419,
                        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606,
                        LARGE_DEPLOYMENT_WARNING = 481440678,
                        LIST_OVERHEAD_QUOTA_EXCEED = 47618117,
                        MISSING_TYPE_DEPENDENCY = 344505463,
                        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999,
                        NEXT_HOP_CANNOT_IP_FORWARD = 383382887,
                        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434,
                        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446,
                        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146,
                        NEXT_HOP_NOT_RUNNING = 417081265,
                        NOT_CRITICAL_ERROR = 105763924,
                        NO_RESULTS_ON_PAGE = 30036744,
                        PARTIAL_SUCCESS = 39966469,
                        QUOTA_INFO_UNAVAILABLE = 304294182,
                        REQUIRED_TOS_AGREEMENT = 3745539,
                        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641,
                        RESOURCE_NOT_DELETED = 168598460,
                        SCHEMA_VALIDATION_IGNORED = 275245642,
                        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617,
                        UNDECLARED_PROPERTIES = 390513439,
                        UNREACHABLE = 13328052
                    }
                }

                /** Properties of a WeightedBackendService. */
                interface IWeightedBackendService {

                    /** WeightedBackendService backendService */
                    backendService?: (string|null);

                    /** WeightedBackendService headerAction */
                    headerAction?: (google.cloud.compute.v1beta.IHttpHeaderAction|null);

                    /** WeightedBackendService weight */
                    weight?: (number|null);
                }

                /** Represents a WeightedBackendService. */
                class WeightedBackendService implements IWeightedBackendService {

                    /**
                     * Constructs a new WeightedBackendService.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWeightedBackendService);

                    /** WeightedBackendService backendService. */
                    public backendService?: (string|null);

                    /** WeightedBackendService headerAction. */
                    public headerAction?: (google.cloud.compute.v1beta.IHttpHeaderAction|null);

                    /** WeightedBackendService weight. */
                    public weight?: (number|null);

                    /**
                     * Creates a new WeightedBackendService instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WeightedBackendService instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWeightedBackendService): google.cloud.compute.v1beta.WeightedBackendService;

                    /**
                     * Encodes the specified WeightedBackendService message. Does not implicitly {@link google.cloud.compute.v1beta.WeightedBackendService.verify|verify} messages.
                     * @param message WeightedBackendService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWeightedBackendService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WeightedBackendService message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WeightedBackendService.verify|verify} messages.
                     * @param message WeightedBackendService message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWeightedBackendService, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WeightedBackendService message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WeightedBackendService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WeightedBackendService;

                    /**
                     * Decodes a WeightedBackendService message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WeightedBackendService
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WeightedBackendService;

                    /**
                     * Verifies a WeightedBackendService message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WeightedBackendService message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WeightedBackendService
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WeightedBackendService;

                    /**
                     * Creates a plain object from a WeightedBackendService message. Also converts values to other types if specified.
                     * @param message WeightedBackendService
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WeightedBackendService, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WeightedBackendService to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WeightedBackendService
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Wire. */
                interface IWire {

                    /** Wire adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** Wire endpoints */
                    endpoints?: (google.cloud.compute.v1beta.IWireEndpoint[]|null);

                    /** Wire label */
                    label?: (string|null);

                    /** Wire wireProperties */
                    wireProperties?: (google.cloud.compute.v1beta.IWireProperties|null);
                }

                /** Represents a Wire. */
                class Wire implements IWire {

                    /**
                     * Constructs a new Wire.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWire);

                    /** Wire adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** Wire endpoints. */
                    public endpoints: google.cloud.compute.v1beta.IWireEndpoint[];

                    /** Wire label. */
                    public label?: (string|null);

                    /** Wire wireProperties. */
                    public wireProperties?: (google.cloud.compute.v1beta.IWireProperties|null);

                    /**
                     * Creates a new Wire instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Wire instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWire): google.cloud.compute.v1beta.Wire;

                    /**
                     * Encodes the specified Wire message. Does not implicitly {@link google.cloud.compute.v1beta.Wire.verify|verify} messages.
                     * @param message Wire message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWire, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Wire message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Wire.verify|verify} messages.
                     * @param message Wire message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWire, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Wire message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Wire
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Wire;

                    /**
                     * Decodes a Wire message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Wire
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Wire;

                    /**
                     * Verifies a Wire message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Wire message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Wire
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Wire;

                    /**
                     * Creates a plain object from a Wire message. Also converts values to other types if specified.
                     * @param message Wire
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Wire, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Wire to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Wire
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireEndpoint. */
                interface IWireEndpoint {

                    /** WireEndpoint interconnect */
                    interconnect?: (string|null);

                    /** WireEndpoint vlanTag */
                    vlanTag?: (number|null);
                }

                /** Represents a WireEndpoint. */
                class WireEndpoint implements IWireEndpoint {

                    /**
                     * Constructs a new WireEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireEndpoint);

                    /** WireEndpoint interconnect. */
                    public interconnect?: (string|null);

                    /** WireEndpoint vlanTag. */
                    public vlanTag?: (number|null);

                    /**
                     * Creates a new WireEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireEndpoint): google.cloud.compute.v1beta.WireEndpoint;

                    /**
                     * Encodes the specified WireEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.WireEndpoint.verify|verify} messages.
                     * @param message WireEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireEndpoint.verify|verify} messages.
                     * @param message WireEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireEndpoint;

                    /**
                     * Decodes a WireEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireEndpoint;

                    /**
                     * Verifies a WireEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireEndpoint;

                    /**
                     * Creates a plain object from a WireEndpoint message. Also converts values to other types if specified.
                     * @param message WireEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroup. */
                interface IWireGroup {

                    /** WireGroup adminEnabled */
                    adminEnabled?: (boolean|null);

                    /** WireGroup creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** WireGroup description */
                    description?: (string|null);

                    /** WireGroup endpoints */
                    endpoints?: ({ [k: string]: google.cloud.compute.v1beta.IWireGroupEndpoint }|null);

                    /** WireGroup id */
                    id?: (number|Long|string|null);

                    /** WireGroup kind */
                    kind?: (string|null);

                    /** WireGroup name */
                    name?: (string|null);

                    /** WireGroup reconciling */
                    reconciling?: (boolean|null);

                    /** WireGroup selfLink */
                    selfLink?: (string|null);

                    /** WireGroup topology */
                    topology?: (google.cloud.compute.v1beta.IWireGroupTopology|null);

                    /** WireGroup wireGroupProperties */
                    wireGroupProperties?: (google.cloud.compute.v1beta.IWireGroupProperties|null);

                    /** WireGroup wireProperties */
                    wireProperties?: (google.cloud.compute.v1beta.IWireProperties|null);

                    /** WireGroup wires */
                    wires?: (google.cloud.compute.v1beta.IWire[]|null);
                }

                /** Represents a WireGroup. */
                class WireGroup implements IWireGroup {

                    /**
                     * Constructs a new WireGroup.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireGroup);

                    /** WireGroup adminEnabled. */
                    public adminEnabled?: (boolean|null);

                    /** WireGroup creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** WireGroup description. */
                    public description?: (string|null);

                    /** WireGroup endpoints. */
                    public endpoints: { [k: string]: google.cloud.compute.v1beta.IWireGroupEndpoint };

                    /** WireGroup id. */
                    public id?: (number|Long|string|null);

                    /** WireGroup kind. */
                    public kind?: (string|null);

                    /** WireGroup name. */
                    public name?: (string|null);

                    /** WireGroup reconciling. */
                    public reconciling?: (boolean|null);

                    /** WireGroup selfLink. */
                    public selfLink?: (string|null);

                    /** WireGroup topology. */
                    public topology?: (google.cloud.compute.v1beta.IWireGroupTopology|null);

                    /** WireGroup wireGroupProperties. */
                    public wireGroupProperties?: (google.cloud.compute.v1beta.IWireGroupProperties|null);

                    /** WireGroup wireProperties. */
                    public wireProperties?: (google.cloud.compute.v1beta.IWireProperties|null);

                    /** WireGroup wires. */
                    public wires: google.cloud.compute.v1beta.IWire[];

                    /**
                     * Creates a new WireGroup instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroup instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireGroup): google.cloud.compute.v1beta.WireGroup;

                    /**
                     * Encodes the specified WireGroup message. Does not implicitly {@link google.cloud.compute.v1beta.WireGroup.verify|verify} messages.
                     * @param message WireGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroup message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireGroup.verify|verify} messages.
                     * @param message WireGroup message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroup message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireGroup;

                    /**
                     * Decodes a WireGroup message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroup
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireGroup;

                    /**
                     * Verifies a WireGroup message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroup message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroup
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireGroup;

                    /**
                     * Creates a plain object from a WireGroup message. Also converts values to other types if specified.
                     * @param message WireGroup
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroup to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroup
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupEndpoint. */
                interface IWireGroupEndpoint {

                    /** WireGroupEndpoint interconnects */
                    interconnects?: ({ [k: string]: google.cloud.compute.v1beta.IWireGroupEndpointInterconnect }|null);
                }

                /** Represents a WireGroupEndpoint. */
                class WireGroupEndpoint implements IWireGroupEndpoint {

                    /**
                     * Constructs a new WireGroupEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireGroupEndpoint);

                    /** WireGroupEndpoint interconnects. */
                    public interconnects: { [k: string]: google.cloud.compute.v1beta.IWireGroupEndpointInterconnect };

                    /**
                     * Creates a new WireGroupEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireGroupEndpoint): google.cloud.compute.v1beta.WireGroupEndpoint;

                    /**
                     * Encodes the specified WireGroupEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupEndpoint.verify|verify} messages.
                     * @param message WireGroupEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireGroupEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupEndpoint.verify|verify} messages.
                     * @param message WireGroupEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireGroupEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireGroupEndpoint;

                    /**
                     * Decodes a WireGroupEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireGroupEndpoint;

                    /**
                     * Verifies a WireGroupEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireGroupEndpoint;

                    /**
                     * Creates a plain object from a WireGroupEndpoint message. Also converts values to other types if specified.
                     * @param message WireGroupEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireGroupEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupEndpointInterconnect. */
                interface IWireGroupEndpointInterconnect {

                    /** WireGroupEndpointInterconnect interconnect */
                    interconnect?: (string|null);

                    /** WireGroupEndpointInterconnect vlanTags */
                    vlanTags?: (number[]|null);
                }

                /** Represents a WireGroupEndpointInterconnect. */
                class WireGroupEndpointInterconnect implements IWireGroupEndpointInterconnect {

                    /**
                     * Constructs a new WireGroupEndpointInterconnect.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireGroupEndpointInterconnect);

                    /** WireGroupEndpointInterconnect interconnect. */
                    public interconnect?: (string|null);

                    /** WireGroupEndpointInterconnect vlanTags. */
                    public vlanTags: number[];

                    /**
                     * Creates a new WireGroupEndpointInterconnect instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupEndpointInterconnect instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireGroupEndpointInterconnect): google.cloud.compute.v1beta.WireGroupEndpointInterconnect;

                    /**
                     * Encodes the specified WireGroupEndpointInterconnect message. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupEndpointInterconnect.verify|verify} messages.
                     * @param message WireGroupEndpointInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireGroupEndpointInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupEndpointInterconnect message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupEndpointInterconnect.verify|verify} messages.
                     * @param message WireGroupEndpointInterconnect message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireGroupEndpointInterconnect, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupEndpointInterconnect message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupEndpointInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireGroupEndpointInterconnect;

                    /**
                     * Decodes a WireGroupEndpointInterconnect message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupEndpointInterconnect
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireGroupEndpointInterconnect;

                    /**
                     * Verifies a WireGroupEndpointInterconnect message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupEndpointInterconnect message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupEndpointInterconnect
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireGroupEndpointInterconnect;

                    /**
                     * Creates a plain object from a WireGroupEndpointInterconnect message. Also converts values to other types if specified.
                     * @param message WireGroupEndpointInterconnect
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireGroupEndpointInterconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupEndpointInterconnect to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupEndpointInterconnect
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupList. */
                interface IWireGroupList {

                    /** WireGroupList etag */
                    etag?: (string|null);

                    /** WireGroupList id */
                    id?: (string|null);

                    /** WireGroupList items */
                    items?: (google.cloud.compute.v1beta.IWireGroup[]|null);

                    /** WireGroupList kind */
                    kind?: (string|null);

                    /** WireGroupList nextPageToken */
                    nextPageToken?: (string|null);

                    /** WireGroupList selfLink */
                    selfLink?: (string|null);

                    /** WireGroupList unreachables */
                    unreachables?: (string[]|null);

                    /** WireGroupList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a WireGroupList. */
                class WireGroupList implements IWireGroupList {

                    /**
                     * Constructs a new WireGroupList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireGroupList);

                    /** WireGroupList etag. */
                    public etag?: (string|null);

                    /** WireGroupList id. */
                    public id?: (string|null);

                    /** WireGroupList items. */
                    public items: google.cloud.compute.v1beta.IWireGroup[];

                    /** WireGroupList kind. */
                    public kind?: (string|null);

                    /** WireGroupList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** WireGroupList selfLink. */
                    public selfLink?: (string|null);

                    /** WireGroupList unreachables. */
                    public unreachables: string[];

                    /** WireGroupList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new WireGroupList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireGroupList): google.cloud.compute.v1beta.WireGroupList;

                    /**
                     * Encodes the specified WireGroupList message. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupList.verify|verify} messages.
                     * @param message WireGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupList.verify|verify} messages.
                     * @param message WireGroupList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireGroupList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireGroupList;

                    /**
                     * Decodes a WireGroupList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireGroupList;

                    /**
                     * Verifies a WireGroupList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireGroupList;

                    /**
                     * Creates a plain object from a WireGroupList message. Also converts values to other types if specified.
                     * @param message WireGroupList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireGroupList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupProperties. */
                interface IWireGroupProperties {

                    /** WireGroupProperties type */
                    type?: (string|null);
                }

                /** Represents a WireGroupProperties. */
                class WireGroupProperties implements IWireGroupProperties {

                    /**
                     * Constructs a new WireGroupProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireGroupProperties);

                    /** WireGroupProperties type. */
                    public type?: (string|null);

                    /**
                     * Creates a new WireGroupProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireGroupProperties): google.cloud.compute.v1beta.WireGroupProperties;

                    /**
                     * Encodes the specified WireGroupProperties message. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupProperties.verify|verify} messages.
                     * @param message WireGroupProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireGroupProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupProperties.verify|verify} messages.
                     * @param message WireGroupProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireGroupProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireGroupProperties;

                    /**
                     * Decodes a WireGroupProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireGroupProperties;

                    /**
                     * Verifies a WireGroupProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireGroupProperties;

                    /**
                     * Creates a plain object from a WireGroupProperties message. Also converts values to other types if specified.
                     * @param message WireGroupProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireGroupProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace WireGroupProperties {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        BOX_AND_CROSS = 311344644,
                        REDUNDANT = 3891405,
                        WIRE = 2664581
                    }
                }

                /** Properties of a WireGroupTopology. */
                interface IWireGroupTopology {

                    /** WireGroupTopology endpoints */
                    endpoints?: (google.cloud.compute.v1beta.IWireGroupTopologyEndpoint[]|null);
                }

                /** Represents a WireGroupTopology. */
                class WireGroupTopology implements IWireGroupTopology {

                    /**
                     * Constructs a new WireGroupTopology.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireGroupTopology);

                    /** WireGroupTopology endpoints. */
                    public endpoints: google.cloud.compute.v1beta.IWireGroupTopologyEndpoint[];

                    /**
                     * Creates a new WireGroupTopology instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupTopology instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireGroupTopology): google.cloud.compute.v1beta.WireGroupTopology;

                    /**
                     * Encodes the specified WireGroupTopology message. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupTopology.verify|verify} messages.
                     * @param message WireGroupTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireGroupTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupTopology message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupTopology.verify|verify} messages.
                     * @param message WireGroupTopology message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireGroupTopology, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupTopology message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireGroupTopology;

                    /**
                     * Decodes a WireGroupTopology message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupTopology
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireGroupTopology;

                    /**
                     * Verifies a WireGroupTopology message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupTopology message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupTopology
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireGroupTopology;

                    /**
                     * Creates a plain object from a WireGroupTopology message. Also converts values to other types if specified.
                     * @param message WireGroupTopology
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireGroupTopology, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupTopology to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupTopology
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireGroupTopologyEndpoint. */
                interface IWireGroupTopologyEndpoint {

                    /** WireGroupTopologyEndpoint city */
                    city?: (string|null);

                    /** WireGroupTopologyEndpoint label */
                    label?: (string|null);
                }

                /** Represents a WireGroupTopologyEndpoint. */
                class WireGroupTopologyEndpoint implements IWireGroupTopologyEndpoint {

                    /**
                     * Constructs a new WireGroupTopologyEndpoint.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireGroupTopologyEndpoint);

                    /** WireGroupTopologyEndpoint city. */
                    public city?: (string|null);

                    /** WireGroupTopologyEndpoint label. */
                    public label?: (string|null);

                    /**
                     * Creates a new WireGroupTopologyEndpoint instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireGroupTopologyEndpoint instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireGroupTopologyEndpoint): google.cloud.compute.v1beta.WireGroupTopologyEndpoint;

                    /**
                     * Encodes the specified WireGroupTopologyEndpoint message. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupTopologyEndpoint.verify|verify} messages.
                     * @param message WireGroupTopologyEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireGroupTopologyEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireGroupTopologyEndpoint message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireGroupTopologyEndpoint.verify|verify} messages.
                     * @param message WireGroupTopologyEndpoint message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireGroupTopologyEndpoint, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireGroupTopologyEndpoint message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireGroupTopologyEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireGroupTopologyEndpoint;

                    /**
                     * Decodes a WireGroupTopologyEndpoint message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireGroupTopologyEndpoint
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireGroupTopologyEndpoint;

                    /**
                     * Verifies a WireGroupTopologyEndpoint message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireGroupTopologyEndpoint message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireGroupTopologyEndpoint
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireGroupTopologyEndpoint;

                    /**
                     * Creates a plain object from a WireGroupTopologyEndpoint message. Also converts values to other types if specified.
                     * @param message WireGroupTopologyEndpoint
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireGroupTopologyEndpoint, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireGroupTopologyEndpoint to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireGroupTopologyEndpoint
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WireProperties. */
                interface IWireProperties {

                    /** WireProperties bandwidthAllocation */
                    bandwidthAllocation?: (string|null);

                    /** WireProperties bandwidthUnmetered */
                    bandwidthUnmetered?: (number|Long|string|null);

                    /** WireProperties faultResponse */
                    faultResponse?: (string|null);
                }

                /** Represents a WireProperties. */
                class WireProperties implements IWireProperties {

                    /**
                     * Constructs a new WireProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWireProperties);

                    /** WireProperties bandwidthAllocation. */
                    public bandwidthAllocation?: (string|null);

                    /** WireProperties bandwidthUnmetered. */
                    public bandwidthUnmetered?: (number|Long|string|null);

                    /** WireProperties faultResponse. */
                    public faultResponse?: (string|null);

                    /**
                     * Creates a new WireProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WireProperties instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWireProperties): google.cloud.compute.v1beta.WireProperties;

                    /**
                     * Encodes the specified WireProperties message. Does not implicitly {@link google.cloud.compute.v1beta.WireProperties.verify|verify} messages.
                     * @param message WireProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWireProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WireProperties message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WireProperties.verify|verify} messages.
                     * @param message WireProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWireProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WireProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WireProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WireProperties;

                    /**
                     * Decodes a WireProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WireProperties
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WireProperties;

                    /**
                     * Verifies a WireProperties message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WireProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WireProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WireProperties;

                    /**
                     * Creates a plain object from a WireProperties message. Also converts values to other types if specified.
                     * @param message WireProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WireProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WireProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WireProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace WireProperties {

                    /** BandwidthAllocation enum. */
                    enum BandwidthAllocation {
                        UNDEFINED_BANDWIDTH_ALLOCATION = 0,
                        ALLOCATE_PER_WIRE = 358730057,
                        SHARED_WITH_WIRE_GROUP = 286454628
                    }

                    /** FaultResponse enum. */
                    enum FaultResponse {
                        UNDEFINED_FAULT_RESPONSE = 0,
                        DISABLE_PORT = 287086488,
                        NONE = 2402104
                    }
                }

                /** Properties of a WithdrawPublicAdvertisedPrefixeRequest. */
                interface IWithdrawPublicAdvertisedPrefixeRequest {

                    /** WithdrawPublicAdvertisedPrefixeRequest project */
                    project?: (string|null);

                    /** WithdrawPublicAdvertisedPrefixeRequest publicAdvertisedPrefix */
                    publicAdvertisedPrefix?: (string|null);

                    /** WithdrawPublicAdvertisedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a WithdrawPublicAdvertisedPrefixeRequest. */
                class WithdrawPublicAdvertisedPrefixeRequest implements IWithdrawPublicAdvertisedPrefixeRequest {

                    /**
                     * Constructs a new WithdrawPublicAdvertisedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWithdrawPublicAdvertisedPrefixeRequest);

                    /** WithdrawPublicAdvertisedPrefixeRequest project. */
                    public project: string;

                    /** WithdrawPublicAdvertisedPrefixeRequest publicAdvertisedPrefix. */
                    public publicAdvertisedPrefix: string;

                    /** WithdrawPublicAdvertisedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new WithdrawPublicAdvertisedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WithdrawPublicAdvertisedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWithdrawPublicAdvertisedPrefixeRequest): google.cloud.compute.v1beta.WithdrawPublicAdvertisedPrefixeRequest;

                    /**
                     * Encodes the specified WithdrawPublicAdvertisedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.WithdrawPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message WithdrawPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWithdrawPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WithdrawPublicAdvertisedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WithdrawPublicAdvertisedPrefixeRequest.verify|verify} messages.
                     * @param message WithdrawPublicAdvertisedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWithdrawPublicAdvertisedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WithdrawPublicAdvertisedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WithdrawPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WithdrawPublicAdvertisedPrefixeRequest;

                    /**
                     * Decodes a WithdrawPublicAdvertisedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WithdrawPublicAdvertisedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WithdrawPublicAdvertisedPrefixeRequest;

                    /**
                     * Verifies a WithdrawPublicAdvertisedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WithdrawPublicAdvertisedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WithdrawPublicAdvertisedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WithdrawPublicAdvertisedPrefixeRequest;

                    /**
                     * Creates a plain object from a WithdrawPublicAdvertisedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message WithdrawPublicAdvertisedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WithdrawPublicAdvertisedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WithdrawPublicAdvertisedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WithdrawPublicAdvertisedPrefixeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a WithdrawPublicDelegatedPrefixeRequest. */
                interface IWithdrawPublicDelegatedPrefixeRequest {

                    /** WithdrawPublicDelegatedPrefixeRequest project */
                    project?: (string|null);

                    /** WithdrawPublicDelegatedPrefixeRequest publicDelegatedPrefix */
                    publicDelegatedPrefix?: (string|null);

                    /** WithdrawPublicDelegatedPrefixeRequest region */
                    region?: (string|null);

                    /** WithdrawPublicDelegatedPrefixeRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a WithdrawPublicDelegatedPrefixeRequest. */
                class WithdrawPublicDelegatedPrefixeRequest implements IWithdrawPublicDelegatedPrefixeRequest {

                    /**
                     * Constructs a new WithdrawPublicDelegatedPrefixeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWithdrawPublicDelegatedPrefixeRequest);

                    /** WithdrawPublicDelegatedPrefixeRequest project. */
                    public project: string;

                    /** WithdrawPublicDelegatedPrefixeRequest publicDelegatedPrefix. */
                    public publicDelegatedPrefix: string;

                    /** WithdrawPublicDelegatedPrefixeRequest region. */
                    public region: string;

                    /** WithdrawPublicDelegatedPrefixeRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new WithdrawPublicDelegatedPrefixeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WithdrawPublicDelegatedPrefixeRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWithdrawPublicDelegatedPrefixeRequest): google.cloud.compute.v1beta.WithdrawPublicDelegatedPrefixeRequest;

                    /**
                     * Encodes the specified WithdrawPublicDelegatedPrefixeRequest message. Does not implicitly {@link google.cloud.compute.v1beta.WithdrawPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message WithdrawPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IWithdrawPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WithdrawPublicDelegatedPrefixeRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.WithdrawPublicDelegatedPrefixeRequest.verify|verify} messages.
                     * @param message WithdrawPublicDelegatedPrefixeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IWithdrawPublicDelegatedPrefixeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WithdrawPublicDelegatedPrefixeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WithdrawPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.WithdrawPublicDelegatedPrefixeRequest;

                    /**
                     * Decodes a WithdrawPublicDelegatedPrefixeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WithdrawPublicDelegatedPrefixeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.WithdrawPublicDelegatedPrefixeRequest;

                    /**
                     * Verifies a WithdrawPublicDelegatedPrefixeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WithdrawPublicDelegatedPrefixeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WithdrawPublicDelegatedPrefixeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.WithdrawPublicDelegatedPrefixeRequest;

                    /**
                     * Creates a plain object from a WithdrawPublicDelegatedPrefixeRequest message. Also converts values to other types if specified.
                     * @param message WithdrawPublicDelegatedPrefixeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.WithdrawPublicDelegatedPrefixeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WithdrawPublicDelegatedPrefixeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WithdrawPublicDelegatedPrefixeRequest
                     * @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 identity */
                    identity?: (string|null);

                    /** WorkloadIdentityConfig identityCertificateEnabled */
                    identityCertificateEnabled?: (boolean|null);
                }

                /** Represents a WorkloadIdentityConfig. */
                class WorkloadIdentityConfig implements IWorkloadIdentityConfig {

                    /**
                     * Constructs a new WorkloadIdentityConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IWorkloadIdentityConfig);

                    /** WorkloadIdentityConfig identity. */
                    public identity?: (string|null);

                    /** WorkloadIdentityConfig identityCertificateEnabled. */
                    public identityCertificateEnabled?: (boolean|null);

                    /**
                     * Creates a new WorkloadIdentityConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WorkloadIdentityConfig instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IWorkloadIdentityConfig): google.cloud.compute.v1beta.WorkloadIdentityConfig;

                    /**
                     * Encodes the specified WorkloadIdentityConfig message. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.IWorkloadIdentityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WorkloadIdentityConfig message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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.cloud.compute.v1beta.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 XpnHostList. */
                interface IXpnHostList {

                    /** XpnHostList id */
                    id?: (string|null);

                    /** XpnHostList items */
                    items?: (google.cloud.compute.v1beta.IProject[]|null);

                    /** XpnHostList kind */
                    kind?: (string|null);

                    /** XpnHostList nextPageToken */
                    nextPageToken?: (string|null);

                    /** XpnHostList selfLink */
                    selfLink?: (string|null);

                    /** XpnHostList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a XpnHostList. */
                class XpnHostList implements IXpnHostList {

                    /**
                     * Constructs a new XpnHostList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IXpnHostList);

                    /** XpnHostList id. */
                    public id?: (string|null);

                    /** XpnHostList items. */
                    public items: google.cloud.compute.v1beta.IProject[];

                    /** XpnHostList kind. */
                    public kind?: (string|null);

                    /** XpnHostList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** XpnHostList selfLink. */
                    public selfLink?: (string|null);

                    /** XpnHostList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new XpnHostList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns XpnHostList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IXpnHostList): google.cloud.compute.v1beta.XpnHostList;

                    /**
                     * Encodes the specified XpnHostList message. Does not implicitly {@link google.cloud.compute.v1beta.XpnHostList.verify|verify} messages.
                     * @param message XpnHostList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IXpnHostList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified XpnHostList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.XpnHostList.verify|verify} messages.
                     * @param message XpnHostList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IXpnHostList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a XpnHostList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns XpnHostList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.XpnHostList;

                    /**
                     * Decodes a XpnHostList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns XpnHostList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.XpnHostList;

                    /**
                     * Verifies a XpnHostList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a XpnHostList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns XpnHostList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.XpnHostList;

                    /**
                     * Creates a plain object from a XpnHostList message. Also converts values to other types if specified.
                     * @param message XpnHostList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.XpnHostList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this XpnHostList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for XpnHostList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a XpnResourceId. */
                interface IXpnResourceId {

                    /** XpnResourceId id */
                    id?: (string|null);

                    /** XpnResourceId type */
                    type?: (string|null);
                }

                /** Represents a XpnResourceId. */
                class XpnResourceId implements IXpnResourceId {

                    /**
                     * Constructs a new XpnResourceId.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IXpnResourceId);

                    /** XpnResourceId id. */
                    public id?: (string|null);

                    /** XpnResourceId type. */
                    public type?: (string|null);

                    /**
                     * Creates a new XpnResourceId instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns XpnResourceId instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IXpnResourceId): google.cloud.compute.v1beta.XpnResourceId;

                    /**
                     * Encodes the specified XpnResourceId message. Does not implicitly {@link google.cloud.compute.v1beta.XpnResourceId.verify|verify} messages.
                     * @param message XpnResourceId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IXpnResourceId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified XpnResourceId message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.XpnResourceId.verify|verify} messages.
                     * @param message XpnResourceId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IXpnResourceId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a XpnResourceId message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns XpnResourceId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.XpnResourceId;

                    /**
                     * Decodes a XpnResourceId message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns XpnResourceId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.XpnResourceId;

                    /**
                     * Verifies a XpnResourceId message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a XpnResourceId message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns XpnResourceId
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.XpnResourceId;

                    /**
                     * Creates a plain object from a XpnResourceId message. Also converts values to other types if specified.
                     * @param message XpnResourceId
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.XpnResourceId, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this XpnResourceId to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for XpnResourceId
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace XpnResourceId {

                    /** Type enum. */
                    enum Type {
                        UNDEFINED_TYPE = 0,
                        PROJECT = 408671993,
                        XPN_RESOURCE_TYPE_UNSPECIFIED = 151607034
                    }
                }

                /** Properties of a Zone. */
                interface IZone {

                    /** Zone availableCpuPlatforms */
                    availableCpuPlatforms?: (string[]|null);

                    /** Zone creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Zone deprecated */
                    deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** Zone description */
                    description?: (string|null);

                    /** Zone id */
                    id?: (number|Long|string|null);

                    /** Zone kind */
                    kind?: (string|null);

                    /** Zone name */
                    name?: (string|null);

                    /** Zone region */
                    region?: (string|null);

                    /** Zone selfLink */
                    selfLink?: (string|null);

                    /** Zone status */
                    status?: (string|null);

                    /** Zone supportsPzs */
                    supportsPzs?: (boolean|null);
                }

                /** Represents a Zone. */
                class Zone implements IZone {

                    /**
                     * Constructs a new Zone.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IZone);

                    /** Zone availableCpuPlatforms. */
                    public availableCpuPlatforms: string[];

                    /** Zone creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Zone deprecated. */
                    public deprecated?: (google.cloud.compute.v1beta.IDeprecationStatus|null);

                    /** Zone description. */
                    public description?: (string|null);

                    /** Zone id. */
                    public id?: (number|Long|string|null);

                    /** Zone kind. */
                    public kind?: (string|null);

                    /** Zone name. */
                    public name?: (string|null);

                    /** Zone region. */
                    public region?: (string|null);

                    /** Zone selfLink. */
                    public selfLink?: (string|null);

                    /** Zone status. */
                    public status?: (string|null);

                    /** Zone supportsPzs. */
                    public supportsPzs?: (boolean|null);

                    /**
                     * Creates a new Zone instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Zone instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IZone): google.cloud.compute.v1beta.Zone;

                    /**
                     * Encodes the specified Zone message. Does not implicitly {@link google.cloud.compute.v1beta.Zone.verify|verify} messages.
                     * @param message Zone message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IZone, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Zone message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.Zone.verify|verify} messages.
                     * @param message Zone message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IZone, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Zone message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Zone
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.Zone;

                    /**
                     * Decodes a Zone message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Zone
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.Zone;

                    /**
                     * Verifies a Zone message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Zone message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Zone
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.Zone;

                    /**
                     * Creates a plain object from a Zone message. Also converts values to other types if specified.
                     * @param message Zone
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.Zone, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Zone to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Zone
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Zone {

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        DOWN = 2104482,
                        UP = 2715
                    }
                }

                /** Properties of a ZoneList. */
                interface IZoneList {

                    /** ZoneList id */
                    id?: (string|null);

                    /** ZoneList items */
                    items?: (google.cloud.compute.v1beta.IZone[]|null);

                    /** ZoneList kind */
                    kind?: (string|null);

                    /** ZoneList nextPageToken */
                    nextPageToken?: (string|null);

                    /** ZoneList selfLink */
                    selfLink?: (string|null);

                    /** ZoneList warning */
                    warning?: (google.cloud.compute.v1beta.IWarning|null);
                }

                /** Represents a ZoneList. */
                class ZoneList implements IZoneList {

                    /**
                     * Constructs a new ZoneList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IZoneList);

                    /** ZoneList id. */
                    public id?: (string|null);

                    /** ZoneList items. */
                    public items: google.cloud.compute.v1beta.IZone[];

                    /** ZoneList kind. */
                    public kind?: (string|null);

                    /** ZoneList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** ZoneList selfLink. */
                    public selfLink?: (string|null);

                    /** ZoneList warning. */
                    public warning?: (google.cloud.compute.v1beta.IWarning|null);

                    /**
                     * Creates a new ZoneList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ZoneList instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IZoneList): google.cloud.compute.v1beta.ZoneList;

                    /**
                     * Encodes the specified ZoneList message. Does not implicitly {@link google.cloud.compute.v1beta.ZoneList.verify|verify} messages.
                     * @param message ZoneList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IZoneList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ZoneList message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ZoneList.verify|verify} messages.
                     * @param message ZoneList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IZoneList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ZoneList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ZoneList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ZoneList;

                    /**
                     * Decodes a ZoneList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ZoneList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ZoneList;

                    /**
                     * Verifies a ZoneList message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ZoneList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ZoneList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ZoneList;

                    /**
                     * Creates a plain object from a ZoneList message. Also converts values to other types if specified.
                     * @param message ZoneList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ZoneList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ZoneList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ZoneList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ZoneSetLabelsRequest. */
                interface IZoneSetLabelsRequest {

                    /** ZoneSetLabelsRequest labelFingerprint */
                    labelFingerprint?: (string|null);

                    /** ZoneSetLabelsRequest labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a ZoneSetLabelsRequest. */
                class ZoneSetLabelsRequest implements IZoneSetLabelsRequest {

                    /**
                     * Constructs a new ZoneSetLabelsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IZoneSetLabelsRequest);

                    /** ZoneSetLabelsRequest labelFingerprint. */
                    public labelFingerprint?: (string|null);

                    /** ZoneSetLabelsRequest labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new ZoneSetLabelsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ZoneSetLabelsRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IZoneSetLabelsRequest): google.cloud.compute.v1beta.ZoneSetLabelsRequest;

                    /**
                     * Encodes the specified ZoneSetLabelsRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ZoneSetLabelsRequest.verify|verify} messages.
                     * @param message ZoneSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IZoneSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ZoneSetLabelsRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ZoneSetLabelsRequest.verify|verify} messages.
                     * @param message ZoneSetLabelsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IZoneSetLabelsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ZoneSetLabelsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ZoneSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ZoneSetLabelsRequest;

                    /**
                     * Decodes a ZoneSetLabelsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ZoneSetLabelsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ZoneSetLabelsRequest;

                    /**
                     * Verifies a ZoneSetLabelsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ZoneSetLabelsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ZoneSetLabelsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ZoneSetLabelsRequest;

                    /**
                     * Creates a plain object from a ZoneSetLabelsRequest message. Also converts values to other types if specified.
                     * @param message ZoneSetLabelsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ZoneSetLabelsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ZoneSetLabelsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ZoneSetLabelsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ZoneSetNestedPolicyRequest. */
                interface IZoneSetNestedPolicyRequest {

                    /** ZoneSetNestedPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1beta.IBinding[]|null);

                    /** ZoneSetNestedPolicyRequest etag */
                    etag?: (string|null);

                    /** ZoneSetNestedPolicyRequest policy */
                    policy?: (google.cloud.compute.v1beta.IPolicy|null);
                }

                /** Represents a ZoneSetNestedPolicyRequest. */
                class ZoneSetNestedPolicyRequest implements IZoneSetNestedPolicyRequest {

                    /**
                     * Constructs a new ZoneSetNestedPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IZoneSetNestedPolicyRequest);

                    /** ZoneSetNestedPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1beta.IBinding[];

                    /** ZoneSetNestedPolicyRequest etag. */
                    public etag?: (string|null);

                    /** ZoneSetNestedPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1beta.IPolicy|null);

                    /**
                     * Creates a new ZoneSetNestedPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ZoneSetNestedPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IZoneSetNestedPolicyRequest): google.cloud.compute.v1beta.ZoneSetNestedPolicyRequest;

                    /**
                     * Encodes the specified ZoneSetNestedPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ZoneSetNestedPolicyRequest.verify|verify} messages.
                     * @param message ZoneSetNestedPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IZoneSetNestedPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ZoneSetNestedPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ZoneSetNestedPolicyRequest.verify|verify} messages.
                     * @param message ZoneSetNestedPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IZoneSetNestedPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ZoneSetNestedPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ZoneSetNestedPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ZoneSetNestedPolicyRequest;

                    /**
                     * Decodes a ZoneSetNestedPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ZoneSetNestedPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ZoneSetNestedPolicyRequest;

                    /**
                     * Verifies a ZoneSetNestedPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ZoneSetNestedPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ZoneSetNestedPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ZoneSetNestedPolicyRequest;

                    /**
                     * Creates a plain object from a ZoneSetNestedPolicyRequest message. Also converts values to other types if specified.
                     * @param message ZoneSetNestedPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ZoneSetNestedPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ZoneSetNestedPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ZoneSetNestedPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ZoneSetPolicyRequest. */
                interface IZoneSetPolicyRequest {

                    /** ZoneSetPolicyRequest bindings */
                    bindings?: (google.cloud.compute.v1beta.IBinding[]|null);

                    /** ZoneSetPolicyRequest etag */
                    etag?: (string|null);

                    /** ZoneSetPolicyRequest policy */
                    policy?: (google.cloud.compute.v1beta.IPolicy|null);
                }

                /** Represents a ZoneSetPolicyRequest. */
                class ZoneSetPolicyRequest implements IZoneSetPolicyRequest {

                    /**
                     * Constructs a new ZoneSetPolicyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1beta.IZoneSetPolicyRequest);

                    /** ZoneSetPolicyRequest bindings. */
                    public bindings: google.cloud.compute.v1beta.IBinding[];

                    /** ZoneSetPolicyRequest etag. */
                    public etag?: (string|null);

                    /** ZoneSetPolicyRequest policy. */
                    public policy?: (google.cloud.compute.v1beta.IPolicy|null);

                    /**
                     * Creates a new ZoneSetPolicyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ZoneSetPolicyRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1beta.IZoneSetPolicyRequest): google.cloud.compute.v1beta.ZoneSetPolicyRequest;

                    /**
                     * Encodes the specified ZoneSetPolicyRequest message. Does not implicitly {@link google.cloud.compute.v1beta.ZoneSetPolicyRequest.verify|verify} messages.
                     * @param message ZoneSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1beta.IZoneSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ZoneSetPolicyRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1beta.ZoneSetPolicyRequest.verify|verify} messages.
                     * @param message ZoneSetPolicyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1beta.IZoneSetPolicyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ZoneSetPolicyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ZoneSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1beta.ZoneSetPolicyRequest;

                    /**
                     * Decodes a ZoneSetPolicyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ZoneSetPolicyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1beta.ZoneSetPolicyRequest;

                    /**
                     * Verifies a ZoneSetPolicyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ZoneSetPolicyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ZoneSetPolicyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1beta.ZoneSetPolicyRequest;

                    /**
                     * Creates a plain object from a ZoneSetPolicyRequest message. Also converts values to other types if specified.
                     * @param message ZoneSetPolicyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1beta.ZoneSetPolicyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ZoneSetPolicyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ZoneSetPolicyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an AcceleratorTypes */
                class AcceleratorTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new AcceleratorTypes 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 AcceleratorTypes 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): AcceleratorTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAcceleratorTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AcceleratorTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListAcceleratorTypesRequest, callback: google.cloud.compute.v1beta.AcceleratorTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAcceleratorTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListAcceleratorTypesRequest): Promise<google.cloud.compute.v1beta.AcceleratorTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetAcceleratorTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AcceleratorType
                     */
                    public get(request: google.cloud.compute.v1beta.IGetAcceleratorTypeRequest, callback: google.cloud.compute.v1beta.AcceleratorTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetAcceleratorTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetAcceleratorTypeRequest): Promise<google.cloud.compute.v1beta.AcceleratorType>;

                    /**
                     * Calls List.
                     * @param request ListAcceleratorTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AcceleratorTypeList
                     */
                    public list(request: google.cloud.compute.v1beta.IListAcceleratorTypesRequest, callback: google.cloud.compute.v1beta.AcceleratorTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListAcceleratorTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListAcceleratorTypesRequest): Promise<google.cloud.compute.v1beta.AcceleratorTypeList>;
                }

                namespace AcceleratorTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.AcceleratorTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] AcceleratorTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.AcceleratorTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.AcceleratorTypes|get}.
                     * @param error Error, if any
                     * @param [response] AcceleratorType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.AcceleratorType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.AcceleratorTypes|list}.
                     * @param error Error, if any
                     * @param [response] AcceleratorTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.AcceleratorTypeList) => void;
                }

                /** Represents an Addresses */
                class Addresses extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Addresses 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 Addresses 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): Addresses;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAddressesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AddressAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListAddressesRequest, callback: google.cloud.compute.v1beta.Addresses.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAddressesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListAddressesRequest): Promise<google.cloud.compute.v1beta.AddressAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteAddressRequest, callback: google.cloud.compute.v1beta.Addresses.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteAddressRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteAddressRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Address
                     */
                    public get(request: google.cloud.compute.v1beta.IGetAddressRequest, callback: google.cloud.compute.v1beta.Addresses.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetAddressRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetAddressRequest): Promise<google.cloud.compute.v1beta.Address>;

                    /**
                     * Calls Insert.
                     * @param request InsertAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertAddressRequest, callback: google.cloud.compute.v1beta.Addresses.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertAddressRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertAddressRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListAddressesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AddressList
                     */
                    public list(request: google.cloud.compute.v1beta.IListAddressesRequest, callback: google.cloud.compute.v1beta.Addresses.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListAddressesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListAddressesRequest): Promise<google.cloud.compute.v1beta.AddressList>;

                    /**
                     * Calls Move.
                     * @param request MoveAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public move(request: google.cloud.compute.v1beta.IMoveAddressRequest, callback: google.cloud.compute.v1beta.Addresses.MoveCallback): void;

                    /**
                     * Calls Move.
                     * @param request MoveAddressRequest message or plain object
                     * @returns Promise
                     */
                    public move(request: google.cloud.compute.v1beta.IMoveAddressRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsAddressRequest, callback: google.cloud.compute.v1beta.Addresses.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsAddressRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsAddressRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsAddressRequest, callback: google.cloud.compute.v1beta.Addresses.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsAddressRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsAddressRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace Addresses {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Addresses|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] AddressAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.AddressAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Addresses|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Addresses|get}.
                     * @param error Error, if any
                     * @param [response] Address
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Address) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Addresses|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Addresses|list}.
                     * @param error Error, if any
                     * @param [response] AddressList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.AddressList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Addresses|move}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Addresses|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Addresses|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an Advice */
                class Advice extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Advice 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 Advice 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): Advice;

                    /**
                     * Calls CalendarMode.
                     * @param request CalendarModeAdviceRpcRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CalendarModeAdviceResponse
                     */
                    public calendarMode(request: google.cloud.compute.v1beta.ICalendarModeAdviceRpcRequest, callback: google.cloud.compute.v1beta.Advice.CalendarModeCallback): void;

                    /**
                     * Calls CalendarMode.
                     * @param request CalendarModeAdviceRpcRequest message or plain object
                     * @returns Promise
                     */
                    public calendarMode(request: google.cloud.compute.v1beta.ICalendarModeAdviceRpcRequest): Promise<google.cloud.compute.v1beta.CalendarModeAdviceResponse>;
                }

                namespace Advice {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Advice|calendarMode}.
                     * @param error Error, if any
                     * @param [response] CalendarModeAdviceResponse
                     */
                    type CalendarModeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.CalendarModeAdviceResponse) => void;
                }

                /** Represents an Autoscalers */
                class Autoscalers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Autoscalers 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 Autoscalers 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): Autoscalers;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAutoscalersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AutoscalerAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListAutoscalersRequest, callback: google.cloud.compute.v1beta.Autoscalers.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAutoscalersRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListAutoscalersRequest): Promise<google.cloud.compute.v1beta.AutoscalerAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteAutoscalerRequest, callback: google.cloud.compute.v1beta.Autoscalers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteAutoscalerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Autoscaler
                     */
                    public get(request: google.cloud.compute.v1beta.IGetAutoscalerRequest, callback: google.cloud.compute.v1beta.Autoscalers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetAutoscalerRequest): Promise<google.cloud.compute.v1beta.Autoscaler>;

                    /**
                     * Calls Insert.
                     * @param request InsertAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertAutoscalerRequest, callback: google.cloud.compute.v1beta.Autoscalers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertAutoscalerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListAutoscalersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AutoscalerList
                     */
                    public list(request: google.cloud.compute.v1beta.IListAutoscalersRequest, callback: google.cloud.compute.v1beta.Autoscalers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListAutoscalersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListAutoscalersRequest): Promise<google.cloud.compute.v1beta.AutoscalerList>;

                    /**
                     * Calls Patch.
                     * @param request PatchAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchAutoscalerRequest, callback: google.cloud.compute.v1beta.Autoscalers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchAutoscalerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsAutoscalerRequest, callback: google.cloud.compute.v1beta.Autoscalers.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsAutoscalerRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateAutoscalerRequest, callback: google.cloud.compute.v1beta.Autoscalers.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateAutoscalerRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Autoscalers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Autoscalers|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] AutoscalerAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.AutoscalerAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Autoscalers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Autoscalers|get}.
                     * @param error Error, if any
                     * @param [response] Autoscaler
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Autoscaler) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Autoscalers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Autoscalers|list}.
                     * @param error Error, if any
                     * @param [response] AutoscalerList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.AutoscalerList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Autoscalers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Autoscalers|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Autoscalers|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a BackendBuckets */
                class BackendBuckets extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new BackendBuckets 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 BackendBuckets 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): BackendBuckets;

                    /**
                     * Calls AddSignedUrlKey.
                     * @param request AddSignedUrlKeyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addSignedUrlKey(request: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.AddSignedUrlKeyCallback): void;

                    /**
                     * Calls AddSignedUrlKey.
                     * @param request AddSignedUrlKeyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public addSignedUrlKey(request: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListBackendBucketsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucketAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListBackendBucketsRequest, callback: google.cloud.compute.v1beta.BackendBuckets.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListBackendBucketsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListBackendBucketsRequest): Promise<google.cloud.compute.v1beta.BackendBucketAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteSignedUrlKey.
                     * @param request DeleteSignedUrlKeyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteSignedUrlKey(request: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.DeleteSignedUrlKeyCallback): void;

                    /**
                     * Calls DeleteSignedUrlKey.
                     * @param request DeleteSignedUrlKeyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public deleteSignedUrlKey(request: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucket
                     */
                    public get(request: google.cloud.compute.v1beta.IGetBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetBackendBucketRequest): Promise<google.cloud.compute.v1beta.BackendBucket>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyBackendBucketRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListBackendBucketsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucketList
                     */
                    public list(request: google.cloud.compute.v1beta.IListBackendBucketsRequest, callback: google.cloud.compute.v1beta.BackendBuckets.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListBackendBucketsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListBackendBucketsRequest): Promise<google.cloud.compute.v1beta.BackendBucketList>;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableBackendBucketsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucketListUsable
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableBackendBucketsRequest, callback: google.cloud.compute.v1beta.BackendBuckets.ListUsableCallback): void;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableBackendBucketsRequest message or plain object
                     * @returns Promise
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableBackendBucketsRequest): Promise<google.cloud.compute.v1beta.BackendBucketListUsable>;

                    /**
                     * Calls Patch.
                     * @param request PatchBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetEdgeSecurityPolicy.
                     * @param request SetEdgeSecurityPolicyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setEdgeSecurityPolicy(request: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.SetEdgeSecurityPolicyCallback): void;

                    /**
                     * Calls SetEdgeSecurityPolicy.
                     * @param request SetEdgeSecurityPolicyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public setEdgeSecurityPolicy(request: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyBackendBucketRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsBackendBucketRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateBackendBucketRequest, callback: google.cloud.compute.v1beta.BackendBuckets.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace BackendBuckets {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|addSignedUrlKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddSignedUrlKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] BackendBucketAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendBucketAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|deleteSignedUrlKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteSignedUrlKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|get}.
                     * @param error Error, if any
                     * @param [response] BackendBucket
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendBucket) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|list}.
                     * @param error Error, if any
                     * @param [response] BackendBucketList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendBucketList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|listUsable}.
                     * @param error Error, if any
                     * @param [response] BackendBucketListUsable
                     */
                    type ListUsableCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendBucketListUsable) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|setEdgeSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetEdgeSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendBuckets|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a BackendServices */
                class BackendServices extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new BackendServices 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 BackendServices 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): BackendServices;

                    /**
                     * Calls AddSignedUrlKey.
                     * @param request AddSignedUrlKeyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addSignedUrlKey(request: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.AddSignedUrlKeyCallback): void;

                    /**
                     * Calls AddSignedUrlKey.
                     * @param request AddSignedUrlKeyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public addSignedUrlKey(request: google.cloud.compute.v1beta.IAddSignedUrlKeyBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListBackendServicesRequest, callback: google.cloud.compute.v1beta.BackendServices.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListBackendServicesRequest): Promise<google.cloud.compute.v1beta.BackendServiceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteSignedUrlKey.
                     * @param request DeleteSignedUrlKeyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteSignedUrlKey(request: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.DeleteSignedUrlKeyCallback): void;

                    /**
                     * Calls DeleteSignedUrlKey.
                     * @param request DeleteSignedUrlKeyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public deleteSignedUrlKey(request: google.cloud.compute.v1beta.IDeleteSignedUrlKeyBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendService
                     */
                    public get(request: google.cloud.compute.v1beta.IGetBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetBackendServiceRequest): Promise<google.cloud.compute.v1beta.BackendService>;

                    /**
                     * Calls GetEffectiveSecurityPolicies.
                     * @param request GetEffectiveSecurityPoliciesBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServicesGetEffectiveSecurityPoliciesResponse
                     */
                    public getEffectiveSecurityPolicies(request: google.cloud.compute.v1beta.IGetEffectiveSecurityPoliciesBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.GetEffectiveSecurityPoliciesCallback): void;

                    /**
                     * Calls GetEffectiveSecurityPolicies.
                     * @param request GetEffectiveSecurityPoliciesBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getEffectiveSecurityPolicies(request: google.cloud.compute.v1beta.IGetEffectiveSecurityPoliciesBackendServiceRequest): Promise<google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse>;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceGroupHealth
                     */
                    public getHealth(request: google.cloud.compute.v1beta.IGetHealthBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.GetHealthCallback): void;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getHealth(request: google.cloud.compute.v1beta.IGetHealthBackendServiceRequest): Promise<google.cloud.compute.v1beta.BackendServiceGroupHealth>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyBackendServiceRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceList
                     */
                    public list(request: google.cloud.compute.v1beta.IListBackendServicesRequest, callback: google.cloud.compute.v1beta.BackendServices.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListBackendServicesRequest): Promise<google.cloud.compute.v1beta.BackendServiceList>;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceListUsable
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableBackendServicesRequest, callback: google.cloud.compute.v1beta.BackendServices.ListUsableCallback): void;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableBackendServicesRequest): Promise<google.cloud.compute.v1beta.BackendServiceListUsable>;

                    /**
                     * Calls Patch.
                     * @param request PatchBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetEdgeSecurityPolicy.
                     * @param request SetEdgeSecurityPolicyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setEdgeSecurityPolicy(request: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.SetEdgeSecurityPolicyCallback): void;

                    /**
                     * Calls SetEdgeSecurityPolicy.
                     * @param request SetEdgeSecurityPolicyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setEdgeSecurityPolicy(request: google.cloud.compute.v1beta.ISetEdgeSecurityPolicyBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyBackendServiceRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsBackendServiceRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateBackendServiceRequest, callback: google.cloud.compute.v1beta.BackendServices.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace BackendServices {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|addSignedUrlKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddSignedUrlKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] BackendServiceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendServiceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|deleteSignedUrlKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteSignedUrlKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|get}.
                     * @param error Error, if any
                     * @param [response] BackendService
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendService) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|getEffectiveSecurityPolicies}.
                     * @param error Error, if any
                     * @param [response] BackendServicesGetEffectiveSecurityPoliciesResponse
                     */
                    type GetEffectiveSecurityPoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendServicesGetEffectiveSecurityPoliciesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|getHealth}.
                     * @param error Error, if any
                     * @param [response] BackendServiceGroupHealth
                     */
                    type GetHealthCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendServiceGroupHealth) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|list}.
                     * @param error Error, if any
                     * @param [response] BackendServiceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendServiceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|listUsable}.
                     * @param error Error, if any
                     * @param [response] BackendServiceListUsable
                     */
                    type ListUsableCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendServiceListUsable) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|setEdgeSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetEdgeSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.BackendServices|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a CrossSiteNetworks */
                class CrossSiteNetworks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new CrossSiteNetworks 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 CrossSiteNetworks 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): CrossSiteNetworks;

                    /**
                     * Calls Delete.
                     * @param request DeleteCrossSiteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteCrossSiteNetworkRequest, callback: google.cloud.compute.v1beta.CrossSiteNetworks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteCrossSiteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteCrossSiteNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetCrossSiteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CrossSiteNetwork
                     */
                    public get(request: google.cloud.compute.v1beta.IGetCrossSiteNetworkRequest, callback: google.cloud.compute.v1beta.CrossSiteNetworks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetCrossSiteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetCrossSiteNetworkRequest): Promise<google.cloud.compute.v1beta.CrossSiteNetwork>;

                    /**
                     * Calls Insert.
                     * @param request InsertCrossSiteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertCrossSiteNetworkRequest, callback: google.cloud.compute.v1beta.CrossSiteNetworks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertCrossSiteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertCrossSiteNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListCrossSiteNetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CrossSiteNetworkList
                     */
                    public list(request: google.cloud.compute.v1beta.IListCrossSiteNetworksRequest, callback: google.cloud.compute.v1beta.CrossSiteNetworks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListCrossSiteNetworksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListCrossSiteNetworksRequest): Promise<google.cloud.compute.v1beta.CrossSiteNetworkList>;

                    /**
                     * Calls Patch.
                     * @param request PatchCrossSiteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchCrossSiteNetworkRequest, callback: google.cloud.compute.v1beta.CrossSiteNetworks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchCrossSiteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchCrossSiteNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace CrossSiteNetworks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.CrossSiteNetworks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.CrossSiteNetworks|get}.
                     * @param error Error, if any
                     * @param [response] CrossSiteNetwork
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.CrossSiteNetwork) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.CrossSiteNetworks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.CrossSiteNetworks|list}.
                     * @param error Error, if any
                     * @param [response] CrossSiteNetworkList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.CrossSiteNetworkList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.CrossSiteNetworks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a DiskSettingsService */
                class DiskSettingsService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new DiskSettingsService 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 DiskSettingsService 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): DiskSettingsService;

                    /**
                     * Calls Get.
                     * @param request GetDiskSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskSettings
                     */
                    public get(request: google.cloud.compute.v1beta.IGetDiskSettingRequest, callback: google.cloud.compute.v1beta.DiskSettingsService.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetDiskSettingRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetDiskSettingRequest): Promise<google.cloud.compute.v1beta.DiskSettings>;

                    /**
                     * Calls Patch.
                     * @param request PatchDiskSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchDiskSettingRequest, callback: google.cloud.compute.v1beta.DiskSettingsService.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchDiskSettingRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchDiskSettingRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace DiskSettingsService {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.DiskSettingsService|get}.
                     * @param error Error, if any
                     * @param [response] DiskSettings
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskSettings) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.DiskSettingsService|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a DiskTypes */
                class DiskTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new DiskTypes 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 DiskTypes 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): DiskTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListDiskTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListDiskTypesRequest, callback: google.cloud.compute.v1beta.DiskTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListDiskTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListDiskTypesRequest): Promise<google.cloud.compute.v1beta.DiskTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetDiskTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskType
                     */
                    public get(request: google.cloud.compute.v1beta.IGetDiskTypeRequest, callback: google.cloud.compute.v1beta.DiskTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetDiskTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetDiskTypeRequest): Promise<google.cloud.compute.v1beta.DiskType>;

                    /**
                     * Calls List.
                     * @param request ListDiskTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskTypeList
                     */
                    public list(request: google.cloud.compute.v1beta.IListDiskTypesRequest, callback: google.cloud.compute.v1beta.DiskTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListDiskTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListDiskTypesRequest): Promise<google.cloud.compute.v1beta.DiskTypeList>;
                }

                namespace DiskTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.DiskTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] DiskTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.DiskTypes|get}.
                     * @param error Error, if any
                     * @param [response] DiskType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.DiskTypes|list}.
                     * @param error Error, if any
                     * @param [response] DiskTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskTypeList) => void;
                }

                /** Represents a Disks */
                class Disks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Disks 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 Disks 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): Disks;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1beta.IAddResourcePoliciesDiskRequest, callback: google.cloud.compute.v1beta.Disks.AddResourcePoliciesCallback): void;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesDiskRequest message or plain object
                     * @returns Promise
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1beta.IAddResourcePoliciesDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListDisksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListDisksRequest, callback: google.cloud.compute.v1beta.Disks.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListDisksRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListDisksRequest): Promise<google.cloud.compute.v1beta.DiskAggregatedList>;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkInsert(request: google.cloud.compute.v1beta.IBulkInsertDiskRequest, callback: google.cloud.compute.v1beta.Disks.BulkInsertCallback): void;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertDiskRequest message or plain object
                     * @returns Promise
                     */
                    public bulkInsert(request: google.cloud.compute.v1beta.IBulkInsertDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls BulkSetLabels.
                     * @param request BulkSetLabelsDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkSetLabels(request: google.cloud.compute.v1beta.IBulkSetLabelsDiskRequest, callback: google.cloud.compute.v1beta.Disks.BulkSetLabelsCallback): void;

                    /**
                     * Calls BulkSetLabels.
                     * @param request BulkSetLabelsDiskRequest message or plain object
                     * @returns Promise
                     */
                    public bulkSetLabels(request: google.cloud.compute.v1beta.IBulkSetLabelsDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls CreateSnapshot.
                     * @param request CreateSnapshotDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createSnapshot(request: google.cloud.compute.v1beta.ICreateSnapshotDiskRequest, callback: google.cloud.compute.v1beta.Disks.CreateSnapshotCallback): void;

                    /**
                     * Calls CreateSnapshot.
                     * @param request CreateSnapshotDiskRequest message or plain object
                     * @returns Promise
                     */
                    public createSnapshot(request: google.cloud.compute.v1beta.ICreateSnapshotDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteDiskRequest, callback: google.cloud.compute.v1beta.Disks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteDiskRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Disk
                     */
                    public get(request: google.cloud.compute.v1beta.IGetDiskRequest, callback: google.cloud.compute.v1beta.Disks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetDiskRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetDiskRequest): Promise<google.cloud.compute.v1beta.Disk>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyDiskRequest, callback: google.cloud.compute.v1beta.Disks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyDiskRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyDiskRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertDiskRequest, callback: google.cloud.compute.v1beta.Disks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertDiskRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListDisksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskList
                     */
                    public list(request: google.cloud.compute.v1beta.IListDisksRequest, callback: google.cloud.compute.v1beta.Disks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListDisksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListDisksRequest): Promise<google.cloud.compute.v1beta.DiskList>;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1beta.IRemoveResourcePoliciesDiskRequest, callback: google.cloud.compute.v1beta.Disks.RemoveResourcePoliciesCallback): void;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesDiskRequest message or plain object
                     * @returns Promise
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1beta.IRemoveResourcePoliciesDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeDiskRequest, callback: google.cloud.compute.v1beta.Disks.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeDiskRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyDiskRequest, callback: google.cloud.compute.v1beta.Disks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyDiskRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyDiskRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsDiskRequest, callback: google.cloud.compute.v1beta.Disks.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsDiskRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StartAsyncReplication.
                     * @param request StartAsyncReplicationDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startAsyncReplication(request: google.cloud.compute.v1beta.IStartAsyncReplicationDiskRequest, callback: google.cloud.compute.v1beta.Disks.StartAsyncReplicationCallback): void;

                    /**
                     * Calls StartAsyncReplication.
                     * @param request StartAsyncReplicationDiskRequest message or plain object
                     * @returns Promise
                     */
                    public startAsyncReplication(request: google.cloud.compute.v1beta.IStartAsyncReplicationDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StopAsyncReplication.
                     * @param request StopAsyncReplicationDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopAsyncReplication(request: google.cloud.compute.v1beta.IStopAsyncReplicationDiskRequest, callback: google.cloud.compute.v1beta.Disks.StopAsyncReplicationCallback): void;

                    /**
                     * Calls StopAsyncReplication.
                     * @param request StopAsyncReplicationDiskRequest message or plain object
                     * @returns Promise
                     */
                    public stopAsyncReplication(request: google.cloud.compute.v1beta.IStopAsyncReplicationDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StopGroupAsyncReplication.
                     * @param request StopGroupAsyncReplicationDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopGroupAsyncReplication(request: google.cloud.compute.v1beta.IStopGroupAsyncReplicationDiskRequest, callback: google.cloud.compute.v1beta.Disks.StopGroupAsyncReplicationCallback): void;

                    /**
                     * Calls StopGroupAsyncReplication.
                     * @param request StopGroupAsyncReplicationDiskRequest message or plain object
                     * @returns Promise
                     */
                    public stopGroupAsyncReplication(request: google.cloud.compute.v1beta.IStopGroupAsyncReplicationDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsDiskRequest, callback: google.cloud.compute.v1beta.Disks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsDiskRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsDiskRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateDiskRequest, callback: google.cloud.compute.v1beta.Disks.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateDiskRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Disks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|addResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] DiskAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|bulkInsert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkInsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|bulkSetLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkSetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|createSnapshot}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateSnapshotCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|get}.
                     * @param error Error, if any
                     * @param [response] Disk
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Disk) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|list}.
                     * @param error Error, if any
                     * @param [response] DiskList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|removeResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|startAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|stopAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|stopGroupAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopGroupAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Disks|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents an ExternalVpnGateways */
                class ExternalVpnGateways extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ExternalVpnGateways 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 ExternalVpnGateways 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): ExternalVpnGateways;

                    /**
                     * Calls Delete.
                     * @param request DeleteExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteExternalVpnGatewayRequest, callback: google.cloud.compute.v1beta.ExternalVpnGateways.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteExternalVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ExternalVpnGateway
                     */
                    public get(request: google.cloud.compute.v1beta.IGetExternalVpnGatewayRequest, callback: google.cloud.compute.v1beta.ExternalVpnGateways.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetExternalVpnGatewayRequest): Promise<google.cloud.compute.v1beta.ExternalVpnGateway>;

                    /**
                     * Calls Insert.
                     * @param request InsertExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertExternalVpnGatewayRequest, callback: google.cloud.compute.v1beta.ExternalVpnGateways.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertExternalVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListExternalVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ExternalVpnGatewayList
                     */
                    public list(request: google.cloud.compute.v1beta.IListExternalVpnGatewaysRequest, callback: google.cloud.compute.v1beta.ExternalVpnGateways.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListExternalVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListExternalVpnGatewaysRequest): Promise<google.cloud.compute.v1beta.ExternalVpnGatewayList>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsExternalVpnGatewayRequest, callback: google.cloud.compute.v1beta.ExternalVpnGateways.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsExternalVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsExternalVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsExternalVpnGatewayRequest, callback: google.cloud.compute.v1beta.ExternalVpnGateways.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsExternalVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsExternalVpnGatewayRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace ExternalVpnGateways {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ExternalVpnGateways|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ExternalVpnGateways|get}.
                     * @param error Error, if any
                     * @param [response] ExternalVpnGateway
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ExternalVpnGateway) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ExternalVpnGateways|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ExternalVpnGateways|list}.
                     * @param error Error, if any
                     * @param [response] ExternalVpnGatewayList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ExternalVpnGatewayList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ExternalVpnGateways|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ExternalVpnGateways|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a FirewallPolicies */
                class FirewallPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new FirewallPolicies 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 FirewallPolicies 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): FirewallPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddPacketMirroringRule.
                     * @param request AddPacketMirroringRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addPacketMirroringRule(request: google.cloud.compute.v1beta.IAddPacketMirroringRuleFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.AddPacketMirroringRuleCallback): void;

                    /**
                     * Calls AddPacketMirroringRule.
                     * @param request AddPacketMirroringRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addPacketMirroringRule(request: google.cloud.compute.v1beta.IAddPacketMirroringRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cloneRules(request: google.cloud.compute.v1beta.ICloneRulesFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.CloneRulesCallback): void;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public cloneRules(request: google.cloud.compute.v1beta.ICloneRulesFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyAssociation>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls GetPacketMirroringRule.
                     * @param request GetPacketMirroringRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getPacketMirroringRule(request: google.cloud.compute.v1beta.IGetPacketMirroringRuleFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.GetPacketMirroringRuleCallback): void;

                    /**
                     * Calls GetPacketMirroringRule.
                     * @param request GetPacketMirroringRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getPacketMirroringRule(request: google.cloud.compute.v1beta.IGetPacketMirroringRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyRule>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListFirewallPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListFirewallPoliciesRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListFirewallPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListFirewallPoliciesRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyList>;

                    /**
                     * Calls ListAssociations.
                     * @param request ListAssociationsFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPoliciesListAssociationsResponse
                     */
                    public listAssociations(request: google.cloud.compute.v1beta.IListAssociationsFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.ListAssociationsCallback): void;

                    /**
                     * Calls ListAssociations.
                     * @param request ListAssociationsFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public listAssociations(request: google.cloud.compute.v1beta.IListAssociationsFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse>;

                    /**
                     * Calls Move.
                     * @param request MoveFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public move(request: google.cloud.compute.v1beta.IMoveFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.MoveCallback): void;

                    /**
                     * Calls Move.
                     * @param request MoveFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public move(request: google.cloud.compute.v1beta.IMoveFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Patch.
                     * @param request PatchFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchPacketMirroringRule.
                     * @param request PatchPacketMirroringRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchPacketMirroringRule(request: google.cloud.compute.v1beta.IPatchPacketMirroringRuleFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.PatchPacketMirroringRuleCallback): void;

                    /**
                     * Calls PatchPacketMirroringRule.
                     * @param request PatchPacketMirroringRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchPacketMirroringRule(request: google.cloud.compute.v1beta.IPatchPacketMirroringRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemovePacketMirroringRule.
                     * @param request RemovePacketMirroringRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removePacketMirroringRule(request: google.cloud.compute.v1beta.IRemovePacketMirroringRuleFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.RemovePacketMirroringRuleCallback): void;

                    /**
                     * Calls RemovePacketMirroringRule.
                     * @param request RemovePacketMirroringRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removePacketMirroringRule(request: google.cloud.compute.v1beta.IRemovePacketMirroringRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsFirewallPolicyRequest, callback: google.cloud.compute.v1beta.FirewallPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace FirewallPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|addPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|cloneRules}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CloneRulesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|get}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|getPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|list}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|listAssociations}.
                     * @param error Error, if any
                     * @param [response] FirewallPoliciesListAssociationsResponse
                     */
                    type ListAssociationsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPoliciesListAssociationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|move}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|patchPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|removePacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemovePacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FirewallPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a Firewalls */
                class Firewalls extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Firewalls 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 Firewalls 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): Firewalls;

                    /**
                     * Calls Delete.
                     * @param request DeleteFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteFirewallRequest, callback: google.cloud.compute.v1beta.Firewalls.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteFirewallRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Firewall
                     */
                    public get(request: google.cloud.compute.v1beta.IGetFirewallRequest, callback: google.cloud.compute.v1beta.Firewalls.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetFirewallRequest): Promise<google.cloud.compute.v1beta.Firewall>;

                    /**
                     * Calls Insert.
                     * @param request InsertFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertFirewallRequest, callback: google.cloud.compute.v1beta.Firewalls.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertFirewallRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListFirewallsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallList
                     */
                    public list(request: google.cloud.compute.v1beta.IListFirewallsRequest, callback: google.cloud.compute.v1beta.Firewalls.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListFirewallsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListFirewallsRequest): Promise<google.cloud.compute.v1beta.FirewallList>;

                    /**
                     * Calls Patch.
                     * @param request PatchFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchFirewallRequest, callback: google.cloud.compute.v1beta.Firewalls.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchFirewallRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsFirewallRequest, callback: google.cloud.compute.v1beta.Firewalls.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsFirewallRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateFirewallRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateFirewallRequest, callback: google.cloud.compute.v1beta.Firewalls.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateFirewallRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateFirewallRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Firewalls {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Firewalls|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Firewalls|get}.
                     * @param error Error, if any
                     * @param [response] Firewall
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Firewall) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Firewalls|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Firewalls|list}.
                     * @param error Error, if any
                     * @param [response] FirewallList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Firewalls|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Firewalls|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Firewalls|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a ForwardingRules */
                class ForwardingRules extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ForwardingRules 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 ForwardingRules 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): ForwardingRules;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListForwardingRulesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRuleAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListForwardingRulesRequest, callback: google.cloud.compute.v1beta.ForwardingRules.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListForwardingRulesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListForwardingRulesRequest): Promise<google.cloud.compute.v1beta.ForwardingRuleAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteForwardingRuleRequest, callback: google.cloud.compute.v1beta.ForwardingRules.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRule
                     */
                    public get(request: google.cloud.compute.v1beta.IGetForwardingRuleRequest, callback: google.cloud.compute.v1beta.ForwardingRules.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetForwardingRuleRequest): Promise<google.cloud.compute.v1beta.ForwardingRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertForwardingRuleRequest, callback: google.cloud.compute.v1beta.ForwardingRules.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListForwardingRulesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRuleList
                     */
                    public list(request: google.cloud.compute.v1beta.IListForwardingRulesRequest, callback: google.cloud.compute.v1beta.ForwardingRules.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListForwardingRulesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListForwardingRulesRequest): Promise<google.cloud.compute.v1beta.ForwardingRuleList>;

                    /**
                     * Calls Patch.
                     * @param request PatchForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchForwardingRuleRequest, callback: google.cloud.compute.v1beta.ForwardingRules.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsForwardingRuleRequest, callback: google.cloud.compute.v1beta.ForwardingRules.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetTarget.
                     * @param request SetTargetForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTarget(request: google.cloud.compute.v1beta.ISetTargetForwardingRuleRequest, callback: google.cloud.compute.v1beta.ForwardingRules.SetTargetCallback): void;

                    /**
                     * Calls SetTarget.
                     * @param request SetTargetForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public setTarget(request: google.cloud.compute.v1beta.ISetTargetForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsForwardingRuleRequest, callback: google.cloud.compute.v1beta.ForwardingRules.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsForwardingRuleRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace ForwardingRules {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] ForwardingRuleAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ForwardingRuleAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|get}.
                     * @param error Error, if any
                     * @param [response] ForwardingRule
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ForwardingRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|list}.
                     * @param error Error, if any
                     * @param [response] ForwardingRuleList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ForwardingRuleList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|setTarget}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTargetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ForwardingRules|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a FutureReservations */
                class FutureReservations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new FutureReservations 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 FutureReservations 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): FutureReservations;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListFutureReservationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FutureReservationsAggregatedListResponse
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListFutureReservationsRequest, callback: google.cloud.compute.v1beta.FutureReservations.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListFutureReservationsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListFutureReservationsRequest): Promise<google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse>;

                    /**
                     * Calls Cancel.
                     * @param request CancelFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cancel(request: google.cloud.compute.v1beta.ICancelFutureReservationRequest, callback: google.cloud.compute.v1beta.FutureReservations.CancelCallback): void;

                    /**
                     * Calls Cancel.
                     * @param request CancelFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public cancel(request: google.cloud.compute.v1beta.ICancelFutureReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteFutureReservationRequest, callback: google.cloud.compute.v1beta.FutureReservations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteFutureReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FutureReservation
                     */
                    public get(request: google.cloud.compute.v1beta.IGetFutureReservationRequest, callback: google.cloud.compute.v1beta.FutureReservations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetFutureReservationRequest): Promise<google.cloud.compute.v1beta.FutureReservation>;

                    /**
                     * Calls Insert.
                     * @param request InsertFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertFutureReservationRequest, callback: google.cloud.compute.v1beta.FutureReservations.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertFutureReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListFutureReservationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FutureReservationsListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListFutureReservationsRequest, callback: google.cloud.compute.v1beta.FutureReservations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListFutureReservationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListFutureReservationsRequest): Promise<google.cloud.compute.v1beta.FutureReservationsListResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateFutureReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateFutureReservationRequest, callback: google.cloud.compute.v1beta.FutureReservations.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateFutureReservationRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateFutureReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace FutureReservations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FutureReservations|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] FutureReservationsAggregatedListResponse
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FutureReservationsAggregatedListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FutureReservations|cancel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CancelCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FutureReservations|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FutureReservations|get}.
                     * @param error Error, if any
                     * @param [response] FutureReservation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FutureReservation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FutureReservations|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FutureReservations|list}.
                     * @param error Error, if any
                     * @param [response] FutureReservationsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FutureReservationsListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.FutureReservations|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a GlobalAddresses */
                class GlobalAddresses extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalAddresses 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 GlobalAddresses 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): GlobalAddresses;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalAddressRequest, callback: google.cloud.compute.v1beta.GlobalAddresses.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalAddressRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Address
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalAddressRequest, callback: google.cloud.compute.v1beta.GlobalAddresses.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalAddressRequest): Promise<google.cloud.compute.v1beta.Address>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalAddressRequest, callback: google.cloud.compute.v1beta.GlobalAddresses.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalAddressRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalAddressesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AddressList
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalAddressesRequest, callback: google.cloud.compute.v1beta.GlobalAddresses.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalAddressesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalAddressesRequest): Promise<google.cloud.compute.v1beta.AddressList>;

                    /**
                     * Calls Move.
                     * @param request MoveGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public move(request: google.cloud.compute.v1beta.IMoveGlobalAddressRequest, callback: google.cloud.compute.v1beta.GlobalAddresses.MoveCallback): void;

                    /**
                     * Calls Move.
                     * @param request MoveGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public move(request: google.cloud.compute.v1beta.IMoveGlobalAddressRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsGlobalAddressRequest, callback: google.cloud.compute.v1beta.GlobalAddresses.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsGlobalAddressRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsGlobalAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsGlobalAddressRequest, callback: google.cloud.compute.v1beta.GlobalAddresses.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsGlobalAddressRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsGlobalAddressRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace GlobalAddresses {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalAddresses|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalAddresses|get}.
                     * @param error Error, if any
                     * @param [response] Address
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Address) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalAddresses|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalAddresses|list}.
                     * @param error Error, if any
                     * @param [response] AddressList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.AddressList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalAddresses|move}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalAddresses|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalAddresses|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a GlobalForwardingRules */
                class GlobalForwardingRules extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalForwardingRules 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 GlobalForwardingRules 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): GlobalForwardingRules;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalForwardingRuleRequest, callback: google.cloud.compute.v1beta.GlobalForwardingRules.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRule
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalForwardingRuleRequest, callback: google.cloud.compute.v1beta.GlobalForwardingRules.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1beta.ForwardingRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalForwardingRuleRequest, callback: google.cloud.compute.v1beta.GlobalForwardingRules.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalForwardingRulesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ForwardingRuleList
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalForwardingRulesRequest, callback: google.cloud.compute.v1beta.GlobalForwardingRules.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalForwardingRulesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalForwardingRulesRequest): Promise<google.cloud.compute.v1beta.ForwardingRuleList>;

                    /**
                     * Calls Patch.
                     * @param request PatchGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchGlobalForwardingRuleRequest, callback: google.cloud.compute.v1beta.GlobalForwardingRules.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsGlobalForwardingRuleRequest, callback: google.cloud.compute.v1beta.GlobalForwardingRules.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetTarget.
                     * @param request SetTargetGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTarget(request: google.cloud.compute.v1beta.ISetTargetGlobalForwardingRuleRequest, callback: google.cloud.compute.v1beta.GlobalForwardingRules.SetTargetCallback): void;

                    /**
                     * Calls SetTarget.
                     * @param request SetTargetGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public setTarget(request: google.cloud.compute.v1beta.ISetTargetGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsGlobalForwardingRuleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsGlobalForwardingRuleRequest, callback: google.cloud.compute.v1beta.GlobalForwardingRules.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsGlobalForwardingRuleRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsGlobalForwardingRuleRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace GlobalForwardingRules {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalForwardingRules|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalForwardingRules|get}.
                     * @param error Error, if any
                     * @param [response] ForwardingRule
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ForwardingRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalForwardingRules|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalForwardingRules|list}.
                     * @param error Error, if any
                     * @param [response] ForwardingRuleList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ForwardingRuleList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalForwardingRules|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalForwardingRules|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalForwardingRules|setTarget}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTargetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalForwardingRules|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a GlobalNetworkEndpointGroups */
                class GlobalNetworkEndpointGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalNetworkEndpointGroups 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 GlobalNetworkEndpointGroups 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): GlobalNetworkEndpointGroups;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1beta.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.GlobalNetworkEndpointGroups.AttachNetworkEndpointsCallback): void;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1beta.IAttachNetworkEndpointsGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.GlobalNetworkEndpointGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1beta.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.GlobalNetworkEndpointGroups.DetachNetworkEndpointsCallback): void;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1beta.IDetachNetworkEndpointsGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.GlobalNetworkEndpointGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.GlobalNetworkEndpointGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupList
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1beta.GlobalNetworkEndpointGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroupList>;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupsListNetworkEndpoints
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1beta.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1beta.GlobalNetworkEndpointGroups.ListNetworkEndpointsCallback): void;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1beta.IListNetworkEndpointsGlobalNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints>;
                }

                namespace GlobalNetworkEndpointGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroups|attachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AttachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroups|detachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DetachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroups|get}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroups|list}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalNetworkEndpointGroups|listNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupsListNetworkEndpoints
                     */
                    type ListNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints) => void;
                }

                /** Represents a GlobalOperations */
                class GlobalOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalOperations 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 GlobalOperations 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): GlobalOperations;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListGlobalOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListGlobalOperationsRequest, callback: google.cloud.compute.v1beta.GlobalOperations.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListGlobalOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListGlobalOperationsRequest): Promise<google.cloud.compute.v1beta.OperationAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeleteGlobalOperationResponse
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalOperationRequest, callback: google.cloud.compute.v1beta.GlobalOperations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalOperationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalOperationRequest): Promise<google.cloud.compute.v1beta.DeleteGlobalOperationResponse>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalOperationRequest, callback: google.cloud.compute.v1beta.GlobalOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalOperationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationList
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalOperationsRequest, callback: google.cloud.compute.v1beta.GlobalOperations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalOperationsRequest): Promise<google.cloud.compute.v1beta.OperationList>;

                    /**
                     * Calls Wait.
                     * @param request WaitGlobalOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public wait(request: google.cloud.compute.v1beta.IWaitGlobalOperationRequest, callback: google.cloud.compute.v1beta.GlobalOperations.WaitCallback): void;

                    /**
                     * Calls Wait.
                     * @param request WaitGlobalOperationRequest message or plain object
                     * @returns Promise
                     */
                    public wait(request: google.cloud.compute.v1beta.IWaitGlobalOperationRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace GlobalOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalOperations|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] OperationAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.OperationAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalOperations|delete_}.
                     * @param error Error, if any
                     * @param [response] DeleteGlobalOperationResponse
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DeleteGlobalOperationResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalOperations|list}.
                     * @param error Error, if any
                     * @param [response] OperationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.OperationList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalOperations|wait}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WaitCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a GlobalOrganizationOperations */
                class GlobalOrganizationOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalOrganizationOperations 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 GlobalOrganizationOperations 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): GlobalOrganizationOperations;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalOrganizationOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeleteGlobalOrganizationOperationResponse
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationRequest, callback: google.cloud.compute.v1beta.GlobalOrganizationOperations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalOrganizationOperationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalOrganizationOperationRequest): Promise<google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalOrganizationOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalOrganizationOperationRequest, callback: google.cloud.compute.v1beta.GlobalOrganizationOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalOrganizationOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalOrganizationOperationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalOrganizationOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationList
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalOrganizationOperationsRequest, callback: google.cloud.compute.v1beta.GlobalOrganizationOperations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalOrganizationOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalOrganizationOperationsRequest): Promise<google.cloud.compute.v1beta.OperationList>;
                }

                namespace GlobalOrganizationOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalOrganizationOperations|delete_}.
                     * @param error Error, if any
                     * @param [response] DeleteGlobalOrganizationOperationResponse
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DeleteGlobalOrganizationOperationResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalOrganizationOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalOrganizationOperations|list}.
                     * @param error Error, if any
                     * @param [response] OperationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.OperationList) => void;
                }

                /** Represents a GlobalPublicDelegatedPrefixes */
                class GlobalPublicDelegatedPrefixes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalPublicDelegatedPrefixes 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 GlobalPublicDelegatedPrefixes 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): GlobalPublicDelegatedPrefixes;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefix
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.PublicDelegatedPrefix>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalPublicDelegatedPrefixesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefixList
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalPublicDelegatedPrefixesRequest, callback: google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalPublicDelegatedPrefixesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalPublicDelegatedPrefixesRequest): Promise<google.cloud.compute.v1beta.PublicDelegatedPrefixList>;

                    /**
                     * Calls Patch.
                     * @param request PatchGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchGlobalPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchGlobalPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchGlobalPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace GlobalPublicDelegatedPrefixes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes|get}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefix
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PublicDelegatedPrefix) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes|list}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefixList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PublicDelegatedPrefixList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalPublicDelegatedPrefixes|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a GlobalVmExtensionPolicies */
                class GlobalVmExtensionPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new GlobalVmExtensionPolicies 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 GlobalVmExtensionPolicies 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): GlobalVmExtensionPolicies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListGlobalVmExtensionPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VmExtensionPolicyAggregatedListResponse
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListGlobalVmExtensionPoliciesRequest, callback: google.cloud.compute.v1beta.GlobalVmExtensionPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListGlobalVmExtensionPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListGlobalVmExtensionPoliciesRequest): Promise<google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse>;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalVmExtensionPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalVmExtensionPolicyRequest, callback: google.cloud.compute.v1beta.GlobalVmExtensionPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteGlobalVmExtensionPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteGlobalVmExtensionPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetGlobalVmExtensionPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GlobalVmExtensionPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalVmExtensionPolicyRequest, callback: google.cloud.compute.v1beta.GlobalVmExtensionPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetGlobalVmExtensionPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetGlobalVmExtensionPolicyRequest): Promise<google.cloud.compute.v1beta.GlobalVmExtensionPolicy>;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalVmExtensionPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalVmExtensionPolicyRequest, callback: google.cloud.compute.v1beta.GlobalVmExtensionPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertGlobalVmExtensionPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertGlobalVmExtensionPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListGlobalVmExtensionPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GlobalVmExtensionPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalVmExtensionPoliciesRequest, callback: google.cloud.compute.v1beta.GlobalVmExtensionPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListGlobalVmExtensionPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListGlobalVmExtensionPoliciesRequest): Promise<google.cloud.compute.v1beta.GlobalVmExtensionPolicyList>;

                    /**
                     * Calls Update.
                     * @param request UpdateGlobalVmExtensionPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateGlobalVmExtensionPolicyRequest, callback: google.cloud.compute.v1beta.GlobalVmExtensionPolicies.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateGlobalVmExtensionPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateGlobalVmExtensionPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace GlobalVmExtensionPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] VmExtensionPolicyAggregatedListResponse
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VmExtensionPolicyAggregatedListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicies|get}.
                     * @param error Error, if any
                     * @param [response] GlobalVmExtensionPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.GlobalVmExtensionPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicies|list}.
                     * @param error Error, if any
                     * @param [response] GlobalVmExtensionPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.GlobalVmExtensionPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.GlobalVmExtensionPolicies|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a HealthChecks */
                class HealthChecks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new HealthChecks 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 HealthChecks 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): HealthChecks;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthChecksAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListHealthChecksRequest, callback: google.cloud.compute.v1beta.HealthChecks.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListHealthChecksRequest): Promise<google.cloud.compute.v1beta.HealthChecksAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteHealthCheckRequest, callback: google.cloud.compute.v1beta.HealthChecks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheck
                     */
                    public get(request: google.cloud.compute.v1beta.IGetHealthCheckRequest, callback: google.cloud.compute.v1beta.HealthChecks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetHealthCheckRequest): Promise<google.cloud.compute.v1beta.HealthCheck>;

                    /**
                     * Calls Insert.
                     * @param request InsertHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertHealthCheckRequest, callback: google.cloud.compute.v1beta.HealthChecks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckList
                     */
                    public list(request: google.cloud.compute.v1beta.IListHealthChecksRequest, callback: google.cloud.compute.v1beta.HealthChecks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListHealthChecksRequest): Promise<google.cloud.compute.v1beta.HealthCheckList>;

                    /**
                     * Calls Patch.
                     * @param request PatchHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchHealthCheckRequest, callback: google.cloud.compute.v1beta.HealthChecks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsHealthCheckRequest, callback: google.cloud.compute.v1beta.HealthChecks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsHealthCheckRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateHealthCheckRequest, callback: google.cloud.compute.v1beta.HealthChecks.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace HealthChecks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.HealthChecks|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] HealthChecksAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthChecksAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.HealthChecks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.HealthChecks|get}.
                     * @param error Error, if any
                     * @param [response] HealthCheck
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthCheck) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.HealthChecks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.HealthChecks|list}.
                     * @param error Error, if any
                     * @param [response] HealthCheckList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthCheckList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.HealthChecks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.HealthChecks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.HealthChecks|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents an ImageFamilyViews */
                class ImageFamilyViews extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ImageFamilyViews 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 ImageFamilyViews 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): ImageFamilyViews;

                    /**
                     * Calls Get.
                     * @param request GetImageFamilyViewRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ImageFamilyView
                     */
                    public get(request: google.cloud.compute.v1beta.IGetImageFamilyViewRequest, callback: google.cloud.compute.v1beta.ImageFamilyViews.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetImageFamilyViewRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetImageFamilyViewRequest): Promise<google.cloud.compute.v1beta.ImageFamilyView>;
                }

                namespace ImageFamilyViews {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ImageFamilyViews|get}.
                     * @param error Error, if any
                     * @param [response] ImageFamilyView
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ImageFamilyView) => void;
                }

                /** Represents an Images */
                class Images extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Images 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 Images 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): Images;

                    /**
                     * Calls Delete.
                     * @param request DeleteImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteImageRequest, callback: google.cloud.compute.v1beta.Images.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteImageRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteImageRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Deprecate.
                     * @param request DeprecateImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deprecate(request: google.cloud.compute.v1beta.IDeprecateImageRequest, callback: google.cloud.compute.v1beta.Images.DeprecateCallback): void;

                    /**
                     * Calls Deprecate.
                     * @param request DeprecateImageRequest message or plain object
                     * @returns Promise
                     */
                    public deprecate(request: google.cloud.compute.v1beta.IDeprecateImageRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Image
                     */
                    public get(request: google.cloud.compute.v1beta.IGetImageRequest, callback: google.cloud.compute.v1beta.Images.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetImageRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetImageRequest): Promise<google.cloud.compute.v1beta.Image>;

                    /**
                     * Calls GetFromFamily.
                     * @param request GetFromFamilyImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Image
                     */
                    public getFromFamily(request: google.cloud.compute.v1beta.IGetFromFamilyImageRequest, callback: google.cloud.compute.v1beta.Images.GetFromFamilyCallback): void;

                    /**
                     * Calls GetFromFamily.
                     * @param request GetFromFamilyImageRequest message or plain object
                     * @returns Promise
                     */
                    public getFromFamily(request: google.cloud.compute.v1beta.IGetFromFamilyImageRequest): Promise<google.cloud.compute.v1beta.Image>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyImageRequest, callback: google.cloud.compute.v1beta.Images.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyImageRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyImageRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertImageRequest, callback: google.cloud.compute.v1beta.Images.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertImageRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertImageRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListImagesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ImageList
                     */
                    public list(request: google.cloud.compute.v1beta.IListImagesRequest, callback: google.cloud.compute.v1beta.Images.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListImagesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListImagesRequest): Promise<google.cloud.compute.v1beta.ImageList>;

                    /**
                     * Calls Patch.
                     * @param request PatchImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchImageRequest, callback: google.cloud.compute.v1beta.Images.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchImageRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchImageRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyImageRequest, callback: google.cloud.compute.v1beta.Images.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyImageRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyImageRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsImageRequest, callback: google.cloud.compute.v1beta.Images.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsImageRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsImageRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsImageRequest, callback: google.cloud.compute.v1beta.Images.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsImageRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsImageRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace Images {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|deprecate}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeprecateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|get}.
                     * @param error Error, if any
                     * @param [response] Image
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Image) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|getFromFamily}.
                     * @param error Error, if any
                     * @param [response] Image
                     */
                    type GetFromFamilyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Image) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|list}.
                     * @param error Error, if any
                     * @param [response] ImageList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ImageList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Images|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an InstanceGroupManagerResizeRequests */
                class InstanceGroupManagerResizeRequests extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceGroupManagerResizeRequests 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 InstanceGroupManagerResizeRequests 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): InstanceGroupManagerResizeRequests;

                    /**
                     * Calls Cancel.
                     * @param request CancelInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cancel(request: google.cloud.compute.v1beta.ICancelInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests.CancelCallback): void;

                    /**
                     * Calls Cancel.
                     * @param request CancelInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public cancel(request: google.cloud.compute.v1beta.ICancelInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerResizeRequest
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupManagerResizeRequestsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerResizeRequestsListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstanceGroupManagerResizeRequestsRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupManagerResizeRequestsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstanceGroupManagerResizeRequestsRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse>;
                }

                namespace InstanceGroupManagerResizeRequests {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests|cancel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CancelCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerResizeRequest
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagerResizeRequests|list}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerResizeRequestsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequestsListResponse) => void;
                }

                /** Represents an InstanceGroupManagers */
                class InstanceGroupManagers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceGroupManagers 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 InstanceGroupManagers 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): InstanceGroupManagers;

                    /**
                     * Calls AbandonInstances.
                     * @param request AbandonInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public abandonInstances(request: google.cloud.compute.v1beta.IAbandonInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.AbandonInstancesCallback): void;

                    /**
                     * Calls AbandonInstances.
                     * @param request AbandonInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public abandonInstances(request: google.cloud.compute.v1beta.IAbandonInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList>;

                    /**
                     * Calls ApplyUpdatesToInstances.
                     * @param request ApplyUpdatesToInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public applyUpdatesToInstances(request: google.cloud.compute.v1beta.IApplyUpdatesToInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ApplyUpdatesToInstancesCallback): void;

                    /**
                     * Calls ApplyUpdatesToInstances.
                     * @param request ApplyUpdatesToInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public applyUpdatesToInstances(request: google.cloud.compute.v1beta.IApplyUpdatesToInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ConfigureAcceleratorTopologies.
                     * @param request ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public configureAcceleratorTopologies(request: google.cloud.compute.v1beta.IConfigureAcceleratorTopologiesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ConfigureAcceleratorTopologiesCallback): void;

                    /**
                     * Calls ConfigureAcceleratorTopologies.
                     * @param request ConfigureAcceleratorTopologiesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public configureAcceleratorTopologies(request: google.cloud.compute.v1beta.IConfigureAcceleratorTopologiesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls CreateInstances.
                     * @param request CreateInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createInstances(request: google.cloud.compute.v1beta.ICreateInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.CreateInstancesCallback): void;

                    /**
                     * Calls CreateInstances.
                     * @param request CreateInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public createInstances(request: google.cloud.compute.v1beta.ICreateInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteInstances.
                     * @param request DeleteInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteInstances(request: google.cloud.compute.v1beta.IDeleteInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.DeleteInstancesCallback): void;

                    /**
                     * Calls DeleteInstances.
                     * @param request DeleteInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public deleteInstances(request: google.cloud.compute.v1beta.IDeleteInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeletePerInstanceConfigs.
                     * @param request DeletePerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deletePerInstanceConfigs(request: google.cloud.compute.v1beta.IDeletePerInstanceConfigsInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.DeletePerInstanceConfigsCallback): void;

                    /**
                     * Calls DeletePerInstanceConfigs.
                     * @param request DeletePerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public deletePerInstanceConfigs(request: google.cloud.compute.v1beta.IDeletePerInstanceConfigsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManager
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManager>;

                    /**
                     * Calls GetAvailableAcceleratorTopologies.
                     * @param request GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
                     */
                    public getAvailableAcceleratorTopologies(request: google.cloud.compute.v1beta.IGetAvailableAcceleratorTopologiesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.GetAvailableAcceleratorTopologiesCallback): void;

                    /**
                     * Calls GetAvailableAcceleratorTopologies.
                     * @param request GetAvailableAcceleratorTopologiesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public getAvailableAcceleratorTopologies(request: google.cloud.compute.v1beta.IGetAvailableAcceleratorTopologiesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagerList>;

                    /**
                     * Calls ListErrors.
                     * @param request ListErrorsInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagersListErrorsResponse
                     */
                    public listErrors(request: google.cloud.compute.v1beta.IListErrorsInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ListErrorsCallback): void;

                    /**
                     * Calls ListErrors.
                     * @param request ListErrorsInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listErrors(request: google.cloud.compute.v1beta.IListErrorsInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse>;

                    /**
                     * Calls ListManagedInstances.
                     * @param request ListManagedInstancesInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagersListManagedInstancesResponse
                     */
                    public listManagedInstances(request: google.cloud.compute.v1beta.IListManagedInstancesInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ListManagedInstancesCallback): void;

                    /**
                     * Calls ListManagedInstances.
                     * @param request ListManagedInstancesInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listManagedInstances(request: google.cloud.compute.v1beta.IListManagedInstancesInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse>;

                    /**
                     * Calls ListPerInstanceConfigs.
                     * @param request ListPerInstanceConfigsInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagersListPerInstanceConfigsResp
                     */
                    public listPerInstanceConfigs(request: google.cloud.compute.v1beta.IListPerInstanceConfigsInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ListPerInstanceConfigsCallback): void;

                    /**
                     * Calls ListPerInstanceConfigs.
                     * @param request ListPerInstanceConfigsInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listPerInstanceConfigs(request: google.cloud.compute.v1beta.IListPerInstanceConfigsInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp>;

                    /**
                     * Calls Patch.
                     * @param request PatchInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchPerInstanceConfigs.
                     * @param request PatchPerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchPerInstanceConfigs(request: google.cloud.compute.v1beta.IPatchPerInstanceConfigsInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.PatchPerInstanceConfigsCallback): void;

                    /**
                     * Calls PatchPerInstanceConfigs.
                     * @param request PatchPerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public patchPerInstanceConfigs(request: google.cloud.compute.v1beta.IPatchPerInstanceConfigsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RecreateInstances.
                     * @param request RecreateInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public recreateInstances(request: google.cloud.compute.v1beta.IRecreateInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.RecreateInstancesCallback): void;

                    /**
                     * Calls RecreateInstances.
                     * @param request RecreateInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public recreateInstances(request: google.cloud.compute.v1beta.IRecreateInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ResizeAdvanced.
                     * @param request ResizeAdvancedInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resizeAdvanced(request: google.cloud.compute.v1beta.IResizeAdvancedInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ResizeAdvancedCallback): void;

                    /**
                     * Calls ResizeAdvanced.
                     * @param request ResizeAdvancedInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resizeAdvanced(request: google.cloud.compute.v1beta.IResizeAdvancedInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ResumeInstances.
                     * @param request ResumeInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resumeInstances(request: google.cloud.compute.v1beta.IResumeInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.ResumeInstancesCallback): void;

                    /**
                     * Calls ResumeInstances.
                     * @param request ResumeInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resumeInstances(request: google.cloud.compute.v1beta.IResumeInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetAutoHealingPolicies.
                     * @param request SetAutoHealingPoliciesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setAutoHealingPolicies(request: google.cloud.compute.v1beta.ISetAutoHealingPoliciesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.SetAutoHealingPoliciesCallback): void;

                    /**
                     * Calls SetAutoHealingPolicies.
                     * @param request SetAutoHealingPoliciesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setAutoHealingPolicies(request: google.cloud.compute.v1beta.ISetAutoHealingPoliciesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetInstanceTemplate.
                     * @param request SetInstanceTemplateInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setInstanceTemplate(request: google.cloud.compute.v1beta.ISetInstanceTemplateInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.SetInstanceTemplateCallback): void;

                    /**
                     * Calls SetInstanceTemplate.
                     * @param request SetInstanceTemplateInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setInstanceTemplate(request: google.cloud.compute.v1beta.ISetInstanceTemplateInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetTargetPools.
                     * @param request SetTargetPoolsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTargetPools(request: google.cloud.compute.v1beta.ISetTargetPoolsInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.SetTargetPoolsCallback): void;

                    /**
                     * Calls SetTargetPools.
                     * @param request SetTargetPoolsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setTargetPools(request: google.cloud.compute.v1beta.ISetTargetPoolsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StartInstances.
                     * @param request StartInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startInstances(request: google.cloud.compute.v1beta.IStartInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.StartInstancesCallback): void;

                    /**
                     * Calls StartInstances.
                     * @param request StartInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public startInstances(request: google.cloud.compute.v1beta.IStartInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StopInstances.
                     * @param request StopInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopInstances(request: google.cloud.compute.v1beta.IStopInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.StopInstancesCallback): void;

                    /**
                     * Calls StopInstances.
                     * @param request StopInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public stopInstances(request: google.cloud.compute.v1beta.IStopInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SuspendInstances.
                     * @param request SuspendInstancesInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public suspendInstances(request: google.cloud.compute.v1beta.ISuspendInstancesInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.SuspendInstancesCallback): void;

                    /**
                     * Calls SuspendInstances.
                     * @param request SuspendInstancesInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public suspendInstances(request: google.cloud.compute.v1beta.ISuspendInstancesInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdatePerInstanceConfigs.
                     * @param request UpdatePerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updatePerInstanceConfigs(request: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.InstanceGroupManagers.UpdatePerInstanceConfigsCallback): void;

                    /**
                     * Calls UpdatePerInstanceConfigs.
                     * @param request UpdatePerInstanceConfigsInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public updatePerInstanceConfigs(request: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace InstanceGroupManagers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|abandonInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AbandonInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagerAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|applyUpdatesToInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ApplyUpdatesToInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|configureAcceleratorTopologies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ConfigureAcceleratorTopologiesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|createInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|deleteInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|deletePerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeletePerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManager
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManager) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|getAvailableAcceleratorTopologies}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
                     */
                    type GetAvailableAcceleratorTopologiesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|list}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagerList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|listErrors}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagersListErrorsResponse
                     */
                    type ListErrorsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagersListErrorsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|listManagedInstances}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagersListManagedInstancesResponse
                     */
                    type ListManagedInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagersListManagedInstancesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|listPerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagersListPerInstanceConfigsResp
                     */
                    type ListPerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagersListPerInstanceConfigsResp) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|patchPerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchPerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|recreateInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RecreateInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|resizeAdvanced}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeAdvancedCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|resumeInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResumeInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|setAutoHealingPolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetAutoHealingPoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|setInstanceTemplate}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetInstanceTemplateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|setTargetPools}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTargetPoolsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|startInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|stopInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|suspendInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SuspendInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroupManagers|updatePerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdatePerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents an InstanceGroups */
                class InstanceGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceGroups 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 InstanceGroups 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): InstanceGroups;

                    /**
                     * Calls AddInstances.
                     * @param request AddInstancesInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addInstances(request: google.cloud.compute.v1beta.IAddInstancesInstanceGroupRequest, callback: google.cloud.compute.v1beta.InstanceGroups.AddInstancesCallback): void;

                    /**
                     * Calls AddInstances.
                     * @param request AddInstancesInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public addInstances(request: google.cloud.compute.v1beta.IAddInstancesInstanceGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstanceGroupsRequest, callback: google.cloud.compute.v1beta.InstanceGroups.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstanceGroupsRequest): Promise<google.cloud.compute.v1beta.InstanceGroupAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceGroupRequest, callback: google.cloud.compute.v1beta.InstanceGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceGroupRequest, callback: google.cloud.compute.v1beta.InstanceGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceGroupRequest): Promise<google.cloud.compute.v1beta.InstanceGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceGroupRequest, callback: google.cloud.compute.v1beta.InstanceGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstanceGroupsRequest, callback: google.cloud.compute.v1beta.InstanceGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstanceGroupsRequest): Promise<google.cloud.compute.v1beta.InstanceGroupList>;

                    /**
                     * Calls ListInstances.
                     * @param request ListInstancesInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupsListInstances
                     */
                    public listInstances(request: google.cloud.compute.v1beta.IListInstancesInstanceGroupsRequest, callback: google.cloud.compute.v1beta.InstanceGroups.ListInstancesCallback): void;

                    /**
                     * Calls ListInstances.
                     * @param request ListInstancesInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listInstances(request: google.cloud.compute.v1beta.IListInstancesInstanceGroupsRequest): Promise<google.cloud.compute.v1beta.InstanceGroupsListInstances>;

                    /**
                     * Calls RemoveInstances.
                     * @param request RemoveInstancesInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeInstances(request: google.cloud.compute.v1beta.IRemoveInstancesInstanceGroupRequest, callback: google.cloud.compute.v1beta.InstanceGroups.RemoveInstancesCallback): void;

                    /**
                     * Calls RemoveInstances.
                     * @param request RemoveInstancesInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public removeInstances(request: google.cloud.compute.v1beta.IRemoveInstancesInstanceGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetNamedPorts.
                     * @param request SetNamedPortsInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setNamedPorts(request: google.cloud.compute.v1beta.ISetNamedPortsInstanceGroupRequest, callback: google.cloud.compute.v1beta.InstanceGroups.SetNamedPortsCallback): void;

                    /**
                     * Calls SetNamedPorts.
                     * @param request SetNamedPortsInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setNamedPorts(request: google.cloud.compute.v1beta.ISetNamedPortsInstanceGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupRequest, callback: google.cloud.compute.v1beta.InstanceGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstanceGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace InstanceGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|addInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|list}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|listInstances}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupsListInstances
                     */
                    type ListInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupsListInstances) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|removeInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|setNamedPorts}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetNamedPortsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an InstanceSettingsService */
                class InstanceSettingsService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceSettingsService 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 InstanceSettingsService 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): InstanceSettingsService;

                    /**
                     * Calls Get.
                     * @param request GetInstanceSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceSettings
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceSettingRequest, callback: google.cloud.compute.v1beta.InstanceSettingsService.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceSettingRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceSettingRequest): Promise<google.cloud.compute.v1beta.InstanceSettings>;

                    /**
                     * Calls Patch.
                     * @param request PatchInstanceSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInstanceSettingRequest, callback: google.cloud.compute.v1beta.InstanceSettingsService.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInstanceSettingRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInstanceSettingRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace InstanceSettingsService {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceSettingsService|get}.
                     * @param error Error, if any
                     * @param [response] InstanceSettings
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceSettings) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceSettingsService|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents an InstanceTemplates */
                class InstanceTemplates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstanceTemplates 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 InstanceTemplates 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): InstanceTemplates;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplateAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstanceTemplatesRequest, callback: google.cloud.compute.v1beta.InstanceTemplates.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstanceTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstanceTemplatesRequest): Promise<google.cloud.compute.v1beta.InstanceTemplateAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceTemplateRequest, callback: google.cloud.compute.v1beta.InstanceTemplates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplate
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceTemplateRequest, callback: google.cloud.compute.v1beta.InstanceTemplates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.InstanceTemplate>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInstanceTemplateRequest, callback: google.cloud.compute.v1beta.InstanceTemplates.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceTemplateRequest, callback: google.cloud.compute.v1beta.InstanceTemplates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstanceTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplateList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstanceTemplatesRequest, callback: google.cloud.compute.v1beta.InstanceTemplates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstanceTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstanceTemplatesRequest): Promise<google.cloud.compute.v1beta.InstanceTemplateList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInstanceTemplateRequest, callback: google.cloud.compute.v1beta.InstanceTemplates.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstanceTemplateRequest, callback: google.cloud.compute.v1beta.InstanceTemplates.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace InstanceTemplates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceTemplates|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplateAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceTemplateAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceTemplates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceTemplates|get}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceTemplate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceTemplates|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceTemplates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceTemplates|list}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceTemplateList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceTemplates|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstanceTemplates|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an Instances */
                class Instances extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Instances 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 Instances 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): Instances;

                    /**
                     * Calls AddAccessConfig.
                     * @param request AddAccessConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAccessConfig(request: google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest, callback: google.cloud.compute.v1beta.Instances.AddAccessConfigCallback): void;

                    /**
                     * Calls AddAccessConfig.
                     * @param request AddAccessConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public addAccessConfig(request: google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddNetworkInterface.
                     * @param request AddNetworkInterfaceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addNetworkInterface(request: google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest, callback: google.cloud.compute.v1beta.Instances.AddNetworkInterfaceCallback): void;

                    /**
                     * Calls AddNetworkInterface.
                     * @param request AddNetworkInterfaceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public addNetworkInterface(request: google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest, callback: google.cloud.compute.v1beta.Instances.AddResourcePoliciesCallback): void;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstancesRequest, callback: google.cloud.compute.v1beta.Instances.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstancesRequest): Promise<google.cloud.compute.v1beta.InstanceAggregatedList>;

                    /**
                     * Calls AttachDisk.
                     * @param request AttachDiskInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public attachDisk(request: google.cloud.compute.v1beta.IAttachDiskInstanceRequest, callback: google.cloud.compute.v1beta.Instances.AttachDiskCallback): void;

                    /**
                     * Calls AttachDisk.
                     * @param request AttachDiskInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public attachDisk(request: google.cloud.compute.v1beta.IAttachDiskInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkInsert(request: google.cloud.compute.v1beta.IBulkInsertInstanceRequest, callback: google.cloud.compute.v1beta.Instances.BulkInsertCallback): void;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public bulkInsert(request: google.cloud.compute.v1beta.IBulkInsertInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceRequest, callback: google.cloud.compute.v1beta.Instances.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteAccessConfig.
                     * @param request DeleteAccessConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteAccessConfig(request: google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest, callback: google.cloud.compute.v1beta.Instances.DeleteAccessConfigCallback): void;

                    /**
                     * Calls DeleteAccessConfig.
                     * @param request DeleteAccessConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public deleteAccessConfig(request: google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteNetworkInterface.
                     * @param request DeleteNetworkInterfaceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteNetworkInterface(request: google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest, callback: google.cloud.compute.v1beta.Instances.DeleteNetworkInterfaceCallback): void;

                    /**
                     * Calls DeleteNetworkInterface.
                     * @param request DeleteNetworkInterfaceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public deleteNetworkInterface(request: google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DetachDisk.
                     * @param request DetachDiskInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public detachDisk(request: google.cloud.compute.v1beta.IDetachDiskInstanceRequest, callback: google.cloud.compute.v1beta.Instances.DetachDiskCallback): void;

                    /**
                     * Calls DetachDisk.
                     * @param request DetachDiskInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public detachDisk(request: google.cloud.compute.v1beta.IDetachDiskInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Instance
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstanceRequest): Promise<google.cloud.compute.v1beta.Instance>;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstancesGetEffectiveFirewallsResponse
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetEffectiveFirewallsCallback): void;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest): Promise<google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse>;

                    /**
                     * Calls GetGuestAttributes.
                     * @param request GetGuestAttributesInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and GuestAttributes
                     */
                    public getGuestAttributes(request: google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetGuestAttributesCallback): void;

                    /**
                     * Calls GetGuestAttributes.
                     * @param request GetGuestAttributesInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getGuestAttributes(request: google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest): Promise<google.cloud.compute.v1beta.GuestAttributes>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls GetPartnerMetadata.
                     * @param request GetPartnerMetadataInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PartnerMetadata
                     */
                    public getPartnerMetadata(request: google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetPartnerMetadataCallback): void;

                    /**
                     * Calls GetPartnerMetadata.
                     * @param request GetPartnerMetadataInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getPartnerMetadata(request: google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest): Promise<google.cloud.compute.v1beta.PartnerMetadata>;

                    /**
                     * Calls GetScreenshot.
                     * @param request GetScreenshotInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Screenshot
                     */
                    public getScreenshot(request: google.cloud.compute.v1beta.IGetScreenshotInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetScreenshotCallback): void;

                    /**
                     * Calls GetScreenshot.
                     * @param request GetScreenshotInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getScreenshot(request: google.cloud.compute.v1beta.IGetScreenshotInstanceRequest): Promise<google.cloud.compute.v1beta.Screenshot>;

                    /**
                     * Calls GetSerialPortOutput.
                     * @param request GetSerialPortOutputInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SerialPortOutput
                     */
                    public getSerialPortOutput(request: google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetSerialPortOutputCallback): void;

                    /**
                     * Calls GetSerialPortOutput.
                     * @param request GetSerialPortOutputInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getSerialPortOutput(request: google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest): Promise<google.cloud.compute.v1beta.SerialPortOutput>;

                    /**
                     * Calls GetShieldedInstanceIdentity.
                     * @param request GetShieldedInstanceIdentityInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ShieldedInstanceIdentity
                     */
                    public getShieldedInstanceIdentity(request: google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetShieldedInstanceIdentityCallback): void;

                    /**
                     * Calls GetShieldedInstanceIdentity.
                     * @param request GetShieldedInstanceIdentityInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getShieldedInstanceIdentity(request: google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest): Promise<google.cloud.compute.v1beta.ShieldedInstanceIdentity>;

                    /**
                     * Calls GetShieldedVmIdentity.
                     * @param request GetShieldedVmIdentityInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ShieldedVmIdentity
                     */
                    public getShieldedVmIdentity(request: google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest, callback: google.cloud.compute.v1beta.Instances.GetShieldedVmIdentityCallback): void;

                    /**
                     * Calls GetShieldedVmIdentity.
                     * @param request GetShieldedVmIdentityInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public getShieldedVmIdentity(request: google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest): Promise<google.cloud.compute.v1beta.ShieldedVmIdentity>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceRequest, callback: google.cloud.compute.v1beta.Instances.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstancesRequest, callback: google.cloud.compute.v1beta.Instances.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstancesRequest): Promise<google.cloud.compute.v1beta.InstanceList>;

                    /**
                     * Calls ListReferrers.
                     * @param request ListReferrersInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceListReferrers
                     */
                    public listReferrers(request: google.cloud.compute.v1beta.IListReferrersInstancesRequest, callback: google.cloud.compute.v1beta.Instances.ListReferrersCallback): void;

                    /**
                     * Calls ListReferrers.
                     * @param request ListReferrersInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public listReferrers(request: google.cloud.compute.v1beta.IListReferrersInstancesRequest): Promise<google.cloud.compute.v1beta.InstanceListReferrers>;

                    /**
                     * Calls PatchPartnerMetadata.
                     * @param request PatchPartnerMetadataInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchPartnerMetadata(request: google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest, callback: google.cloud.compute.v1beta.Instances.PatchPartnerMetadataCallback): void;

                    /**
                     * Calls PatchPartnerMetadata.
                     * @param request PatchPartnerMetadataInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public patchPartnerMetadata(request: google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest, callback: google.cloud.compute.v1beta.Instances.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest, callback: google.cloud.compute.v1beta.Instances.RemoveResourcePoliciesCallback): void;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ReportHostAsFaulty.
                     * @param request ReportHostAsFaultyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public reportHostAsFaulty(request: google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest, callback: google.cloud.compute.v1beta.Instances.ReportHostAsFaultyCallback): void;

                    /**
                     * Calls ReportHostAsFaulty.
                     * @param request ReportHostAsFaultyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public reportHostAsFaulty(request: google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Reset.
                     * @param request ResetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public reset(request: google.cloud.compute.v1beta.IResetInstanceRequest, callback: google.cloud.compute.v1beta.Instances.ResetCallback): void;

                    /**
                     * Calls Reset.
                     * @param request ResetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public reset(request: google.cloud.compute.v1beta.IResetInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Resume.
                     * @param request ResumeInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resume(request: google.cloud.compute.v1beta.IResumeInstanceRequest, callback: google.cloud.compute.v1beta.Instances.ResumeCallback): void;

                    /**
                     * Calls Resume.
                     * @param request ResumeInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public resume(request: google.cloud.compute.v1beta.IResumeInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SendDiagnosticInterrupt.
                     * @param request SendDiagnosticInterruptInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SendDiagnosticInterruptInstanceResponse
                     */
                    public sendDiagnosticInterrupt(request: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SendDiagnosticInterruptCallback): void;

                    /**
                     * Calls SendDiagnosticInterrupt.
                     * @param request SendDiagnosticInterruptInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public sendDiagnosticInterrupt(request: google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest): Promise<google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse>;

                    /**
                     * Calls SetDeletionProtection.
                     * @param request SetDeletionProtectionInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setDeletionProtection(request: google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetDeletionProtectionCallback): void;

                    /**
                     * Calls SetDeletionProtection.
                     * @param request SetDeletionProtectionInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setDeletionProtection(request: google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetDiskAutoDelete.
                     * @param request SetDiskAutoDeleteInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setDiskAutoDelete(request: google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetDiskAutoDeleteCallback): void;

                    /**
                     * Calls SetDiskAutoDelete.
                     * @param request SetDiskAutoDeleteInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setDiskAutoDelete(request: google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetMachineResources.
                     * @param request SetMachineResourcesInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setMachineResources(request: google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetMachineResourcesCallback): void;

                    /**
                     * Calls SetMachineResources.
                     * @param request SetMachineResourcesInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setMachineResources(request: google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetMachineType.
                     * @param request SetMachineTypeInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setMachineType(request: google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetMachineTypeCallback): void;

                    /**
                     * Calls SetMachineType.
                     * @param request SetMachineTypeInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setMachineType(request: google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetMetadata.
                     * @param request SetMetadataInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setMetadata(request: google.cloud.compute.v1beta.ISetMetadataInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetMetadataCallback): void;

                    /**
                     * Calls SetMetadata.
                     * @param request SetMetadataInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setMetadata(request: google.cloud.compute.v1beta.ISetMetadataInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetMinCpuPlatform.
                     * @param request SetMinCpuPlatformInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setMinCpuPlatform(request: google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetMinCpuPlatformCallback): void;

                    /**
                     * Calls SetMinCpuPlatform.
                     * @param request SetMinCpuPlatformInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setMinCpuPlatform(request: google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetName.
                     * @param request SetNameInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setName(request: google.cloud.compute.v1beta.ISetNameInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetNameCallback): void;

                    /**
                     * Calls SetName.
                     * @param request SetNameInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setName(request: google.cloud.compute.v1beta.ISetNameInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetScheduling.
                     * @param request SetSchedulingInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setScheduling(request: google.cloud.compute.v1beta.ISetSchedulingInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetSchedulingCallback): void;

                    /**
                     * Calls SetScheduling.
                     * @param request SetSchedulingInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setScheduling(request: google.cloud.compute.v1beta.ISetSchedulingInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetServiceAccount.
                     * @param request SetServiceAccountInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setServiceAccount(request: google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetServiceAccountCallback): void;

                    /**
                     * Calls SetServiceAccount.
                     * @param request SetServiceAccountInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setServiceAccount(request: google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetShieldedInstanceIntegrityPolicy.
                     * @param request SetShieldedInstanceIntegrityPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setShieldedInstanceIntegrityPolicy(request: google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetShieldedInstanceIntegrityPolicyCallback): void;

                    /**
                     * Calls SetShieldedInstanceIntegrityPolicy.
                     * @param request SetShieldedInstanceIntegrityPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setShieldedInstanceIntegrityPolicy(request: google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetShieldedVmIntegrityPolicy.
                     * @param request SetShieldedVmIntegrityPolicyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setShieldedVmIntegrityPolicy(request: google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetShieldedVmIntegrityPolicyCallback): void;

                    /**
                     * Calls SetShieldedVmIntegrityPolicy.
                     * @param request SetShieldedVmIntegrityPolicyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setShieldedVmIntegrityPolicy(request: google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetTags.
                     * @param request SetTagsInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTags(request: google.cloud.compute.v1beta.ISetTagsInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SetTagsCallback): void;

                    /**
                     * Calls SetTags.
                     * @param request SetTagsInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setTags(request: google.cloud.compute.v1beta.ISetTagsInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SimulateMaintenanceEvent.
                     * @param request SimulateMaintenanceEventInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public simulateMaintenanceEvent(request: google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SimulateMaintenanceEventCallback): void;

                    /**
                     * Calls SimulateMaintenanceEvent.
                     * @param request SimulateMaintenanceEventInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public simulateMaintenanceEvent(request: google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Start.
                     * @param request StartInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public start(request: google.cloud.compute.v1beta.IStartInstanceRequest, callback: google.cloud.compute.v1beta.Instances.StartCallback): void;

                    /**
                     * Calls Start.
                     * @param request StartInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public start(request: google.cloud.compute.v1beta.IStartInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StartWithEncryptionKey.
                     * @param request StartWithEncryptionKeyInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startWithEncryptionKey(request: google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest, callback: google.cloud.compute.v1beta.Instances.StartWithEncryptionKeyCallback): void;

                    /**
                     * Calls StartWithEncryptionKey.
                     * @param request StartWithEncryptionKeyInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public startWithEncryptionKey(request: google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Stop.
                     * @param request StopInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stop(request: google.cloud.compute.v1beta.IStopInstanceRequest, callback: google.cloud.compute.v1beta.Instances.StopCallback): void;

                    /**
                     * Calls Stop.
                     * @param request StopInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public stop(request: google.cloud.compute.v1beta.IStopInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Suspend.
                     * @param request SuspendInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public suspend(request: google.cloud.compute.v1beta.ISuspendInstanceRequest, callback: google.cloud.compute.v1beta.Instances.SuspendCallback): void;

                    /**
                     * Calls Suspend.
                     * @param request SuspendInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public suspend(request: google.cloud.compute.v1beta.ISuspendInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest, callback: google.cloud.compute.v1beta.Instances.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateInstanceRequest, callback: google.cloud.compute.v1beta.Instances.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdateAccessConfig.
                     * @param request UpdateAccessConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateAccessConfig(request: google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest, callback: google.cloud.compute.v1beta.Instances.UpdateAccessConfigCallback): void;

                    /**
                     * Calls UpdateAccessConfig.
                     * @param request UpdateAccessConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateAccessConfig(request: google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdateDisplayDevice.
                     * @param request UpdateDisplayDeviceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateDisplayDevice(request: google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest, callback: google.cloud.compute.v1beta.Instances.UpdateDisplayDeviceCallback): void;

                    /**
                     * Calls UpdateDisplayDevice.
                     * @param request UpdateDisplayDeviceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateDisplayDevice(request: google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdateNetworkInterface.
                     * @param request UpdateNetworkInterfaceInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateNetworkInterface(request: google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest, callback: google.cloud.compute.v1beta.Instances.UpdateNetworkInterfaceCallback): void;

                    /**
                     * Calls UpdateNetworkInterface.
                     * @param request UpdateNetworkInterfaceInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateNetworkInterface(request: google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdateShieldedInstanceConfig.
                     * @param request UpdateShieldedInstanceConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateShieldedInstanceConfig(request: google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest, callback: google.cloud.compute.v1beta.Instances.UpdateShieldedInstanceConfigCallback): void;

                    /**
                     * Calls UpdateShieldedInstanceConfig.
                     * @param request UpdateShieldedInstanceConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateShieldedInstanceConfig(request: google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdateShieldedVmConfig.
                     * @param request UpdateShieldedVmConfigInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateShieldedVmConfig(request: google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest, callback: google.cloud.compute.v1beta.Instances.UpdateShieldedVmConfigCallback): void;

                    /**
                     * Calls UpdateShieldedVmConfig.
                     * @param request UpdateShieldedVmConfigInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public updateShieldedVmConfig(request: google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Instances {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|addAccessConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAccessConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|addNetworkInterface}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddNetworkInterfaceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|addResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstanceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|attachDisk}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AttachDiskCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|bulkInsert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkInsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|deleteAccessConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteAccessConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|deleteNetworkInterface}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteNetworkInterfaceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|detachDisk}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DetachDiskCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|get}.
                     * @param error Error, if any
                     * @param [response] Instance
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Instance) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|getEffectiveFirewalls}.
                     * @param error Error, if any
                     * @param [response] InstancesGetEffectiveFirewallsResponse
                     */
                    type GetEffectiveFirewallsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstancesGetEffectiveFirewallsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|getGuestAttributes}.
                     * @param error Error, if any
                     * @param [response] GuestAttributes
                     */
                    type GetGuestAttributesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.GuestAttributes) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|getPartnerMetadata}.
                     * @param error Error, if any
                     * @param [response] PartnerMetadata
                     */
                    type GetPartnerMetadataCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PartnerMetadata) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|getScreenshot}.
                     * @param error Error, if any
                     * @param [response] Screenshot
                     */
                    type GetScreenshotCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Screenshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|getSerialPortOutput}.
                     * @param error Error, if any
                     * @param [response] SerialPortOutput
                     */
                    type GetSerialPortOutputCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SerialPortOutput) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|getShieldedInstanceIdentity}.
                     * @param error Error, if any
                     * @param [response] ShieldedInstanceIdentity
                     */
                    type GetShieldedInstanceIdentityCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ShieldedInstanceIdentity) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|getShieldedVmIdentity}.
                     * @param error Error, if any
                     * @param [response] ShieldedVmIdentity
                     */
                    type GetShieldedVmIdentityCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ShieldedVmIdentity) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|list}.
                     * @param error Error, if any
                     * @param [response] InstanceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|listReferrers}.
                     * @param error Error, if any
                     * @param [response] InstanceListReferrers
                     */
                    type ListReferrersCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceListReferrers) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|patchPartnerMetadata}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchPartnerMetadataCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|removeResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|reportHostAsFaulty}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ReportHostAsFaultyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|reset}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|resume}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResumeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|sendDiagnosticInterrupt}.
                     * @param error Error, if any
                     * @param [response] SendDiagnosticInterruptInstanceResponse
                     */
                    type SendDiagnosticInterruptCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SendDiagnosticInterruptInstanceResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setDeletionProtection}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetDeletionProtectionCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setDiskAutoDelete}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetDiskAutoDeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setMachineResources}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetMachineResourcesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setMachineType}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetMachineTypeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setMetadata}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetMetadataCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setMinCpuPlatform}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetMinCpuPlatformCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setName}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetNameCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setScheduling}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSchedulingCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setServiceAccount}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetServiceAccountCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setShieldedInstanceIntegrityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetShieldedInstanceIntegrityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setShieldedVmIntegrityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetShieldedVmIntegrityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|setTags}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTagsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|simulateMaintenanceEvent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SimulateMaintenanceEventCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|start}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|startWithEncryptionKey}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartWithEncryptionKeyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|stop}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|suspend}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SuspendCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|updateAccessConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateAccessConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|updateDisplayDevice}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateDisplayDeviceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|updateNetworkInterface}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateNetworkInterfaceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|updateShieldedInstanceConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateShieldedInstanceConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Instances|updateShieldedVmConfig}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateShieldedVmConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents an InstantSnapshotGroups */
                class InstantSnapshotGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstantSnapshotGroups 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 InstantSnapshotGroups 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): InstantSnapshotGroups;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.InstantSnapshotGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshotGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.InstantSnapshotGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.InstantSnapshotGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.InstantSnapshotGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.InstantSnapshotGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstantSnapshotGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListInstantSnapshotGroups
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstantSnapshotGroupsRequest, callback: google.cloud.compute.v1beta.InstantSnapshotGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstantSnapshotGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstantSnapshotGroupsRequest): Promise<google.cloud.compute.v1beta.ListInstantSnapshotGroups>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.InstantSnapshotGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.InstantSnapshotGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace InstantSnapshotGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshotGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshotGroups|get}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshotGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstantSnapshotGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshotGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshotGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshotGroups|list}.
                     * @param error Error, if any
                     * @param [response] ListInstantSnapshotGroups
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ListInstantSnapshotGroups) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshotGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshotGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an InstantSnapshots */
                class InstantSnapshots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InstantSnapshots 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 InstantSnapshots 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): InstantSnapshots;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstantSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshotAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstantSnapshotsRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInstantSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInstantSnapshotsRequest): Promise<google.cloud.compute.v1beta.InstantSnapshotAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstantSnapshotRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshot
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstantSnapshotRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.InstantSnapshot>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstantSnapshotRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInstantSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshotList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstantSnapshotsRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInstantSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInstantSnapshotsRequest): Promise<google.cloud.compute.v1beta.InstantSnapshotList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsInstantSnapshotRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotRequest, callback: google.cloud.compute.v1beta.InstantSnapshots.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace InstantSnapshots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshotAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstantSnapshotAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|get}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshot
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstantSnapshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|list}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshotList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstantSnapshotList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InstantSnapshots|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an InterconnectAttachmentGroups */
                class InterconnectAttachmentGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectAttachmentGroups 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 InterconnectAttachmentGroups 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): InterconnectAttachmentGroups;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1beta.InterconnectAttachmentGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls GetOperationalStatus.
                     * @param request GetOperationalStatusInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentGroupsGetOperationalStatusResponse
                     */
                    public getOperationalStatus(request: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.GetOperationalStatusCallback): void;

                    /**
                     * Calls GetOperationalStatus.
                     * @param request GetOperationalStatusInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getOperationalStatus(request: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectAttachmentGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentGroupsListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectAttachmentGroupsRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectAttachmentGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectAttachmentGroupsRequest): Promise<google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectAttachmentGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentGroupRequest, callback: google.cloud.compute.v1beta.InterconnectAttachmentGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectAttachmentGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace InterconnectAttachmentGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectAttachmentGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|getOperationalStatus}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentGroupsGetOperationalStatusResponse
                     */
                    type GetOperationalStatusCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectAttachmentGroupsGetOperationalStatusResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentGroupsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectAttachmentGroupsListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachmentGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an InterconnectAttachments */
                class InterconnectAttachments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectAttachments 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 InterconnectAttachments 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): InterconnectAttachments;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInterconnectAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInterconnectAttachmentsRequest, callback: google.cloud.compute.v1beta.InterconnectAttachments.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListInterconnectAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListInterconnectAttachmentsRequest): Promise<google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentRequest, callback: google.cloud.compute.v1beta.InterconnectAttachments.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInterconnectAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachment
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectAttachmentRequest, callback: google.cloud.compute.v1beta.InterconnectAttachments.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectAttachmentRequest): Promise<google.cloud.compute.v1beta.InterconnectAttachment>;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInterconnectAttachmentRequest, callback: google.cloud.compute.v1beta.InterconnectAttachments.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInterconnectAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectAttachmentList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectAttachmentsRequest, callback: google.cloud.compute.v1beta.InterconnectAttachments.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectAttachmentsRequest): Promise<google.cloud.compute.v1beta.InterconnectAttachmentList>;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInterconnectAttachmentRequest, callback: google.cloud.compute.v1beta.InterconnectAttachments.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInterconnectAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsInterconnectAttachmentRequest, callback: google.cloud.compute.v1beta.InterconnectAttachments.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsInterconnectAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentRequest, callback: google.cloud.compute.v1beta.InterconnectAttachments.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectAttachmentRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace InterconnectAttachments {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachments|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectAttachmentAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachments|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachments|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachment
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectAttachment) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachments|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachments|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectAttachmentList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectAttachmentList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachments|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachments|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectAttachments|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an InterconnectGroups */
                class InterconnectGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectGroups 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 InterconnectGroups 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): InterconnectGroups;

                    /**
                     * Calls CreateMembers.
                     * @param request CreateMembersInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createMembers(request: google.cloud.compute.v1beta.ICreateMembersInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.CreateMembersCallback): void;

                    /**
                     * Calls CreateMembers.
                     * @param request CreateMembersInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public createMembers(request: google.cloud.compute.v1beta.ICreateMembersInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.InterconnectGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls GetOperationalStatus.
                     * @param request GetOperationalStatusInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectGroupsGetOperationalStatusResponse
                     */
                    public getOperationalStatus(request: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.GetOperationalStatusCallback): void;

                    /**
                     * Calls GetOperationalStatus.
                     * @param request GetOperationalStatusInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getOperationalStatus(request: google.cloud.compute.v1beta.IGetOperationalStatusInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectGroupsListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectGroupsRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectGroupsRequest): Promise<google.cloud.compute.v1beta.InterconnectGroupsListResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectGroupRequest, callback: google.cloud.compute.v1beta.InterconnectGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace InterconnectGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|createMembers}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateMembersCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|getOperationalStatus}.
                     * @param error Error, if any
                     * @param [response] InterconnectGroupsGetOperationalStatusResponse
                     */
                    type GetOperationalStatusCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectGroupsGetOperationalStatusResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectGroupsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectGroupsListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an InterconnectLocations */
                class InterconnectLocations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectLocations 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 InterconnectLocations 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): InterconnectLocations;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectLocationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectLocation
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectLocationRequest, callback: google.cloud.compute.v1beta.InterconnectLocations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectLocationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectLocationRequest): Promise<google.cloud.compute.v1beta.InterconnectLocation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectLocationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectLocationList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectLocationsRequest, callback: google.cloud.compute.v1beta.InterconnectLocations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectLocationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectLocationsRequest): Promise<google.cloud.compute.v1beta.InterconnectLocationList>;
                }

                namespace InterconnectLocations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectLocations|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectLocation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectLocation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectLocations|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectLocationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectLocationList) => void;
                }

                /** Represents an InterconnectRemoteLocations */
                class InterconnectRemoteLocations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new InterconnectRemoteLocations 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 InterconnectRemoteLocations 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): InterconnectRemoteLocations;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectRemoteLocationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectRemoteLocation
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectRemoteLocationRequest, callback: google.cloud.compute.v1beta.InterconnectRemoteLocations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectRemoteLocationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectRemoteLocationRequest): Promise<google.cloud.compute.v1beta.InterconnectRemoteLocation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectRemoteLocationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectRemoteLocationList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectRemoteLocationsRequest, callback: google.cloud.compute.v1beta.InterconnectRemoteLocations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectRemoteLocationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectRemoteLocationsRequest): Promise<google.cloud.compute.v1beta.InterconnectRemoteLocationList>;
                }

                namespace InterconnectRemoteLocations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectRemoteLocations|get}.
                     * @param error Error, if any
                     * @param [response] InterconnectRemoteLocation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectRemoteLocation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.InterconnectRemoteLocations|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectRemoteLocationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectRemoteLocationList) => void;
                }

                /** Represents an Interconnects */
                class Interconnects extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Interconnects 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 Interconnects 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): Interconnects;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInterconnectRequest, callback: google.cloud.compute.v1beta.Interconnects.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteInterconnectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Interconnect
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectRequest, callback: google.cloud.compute.v1beta.Interconnects.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetInterconnectRequest): Promise<google.cloud.compute.v1beta.Interconnect>;

                    /**
                     * Calls GetDiagnostics.
                     * @param request GetDiagnosticsInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectsGetDiagnosticsResponse
                     */
                    public getDiagnostics(request: google.cloud.compute.v1beta.IGetDiagnosticsInterconnectRequest, callback: google.cloud.compute.v1beta.Interconnects.GetDiagnosticsCallback): void;

                    /**
                     * Calls GetDiagnostics.
                     * @param request GetDiagnosticsInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public getDiagnostics(request: google.cloud.compute.v1beta.IGetDiagnosticsInterconnectRequest): Promise<google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse>;

                    /**
                     * Calls GetMacsecConfig.
                     * @param request GetMacsecConfigInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectsGetMacsecConfigResponse
                     */
                    public getMacsecConfig(request: google.cloud.compute.v1beta.IGetMacsecConfigInterconnectRequest, callback: google.cloud.compute.v1beta.Interconnects.GetMacsecConfigCallback): void;

                    /**
                     * Calls GetMacsecConfig.
                     * @param request GetMacsecConfigInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public getMacsecConfig(request: google.cloud.compute.v1beta.IGetMacsecConfigInterconnectRequest): Promise<google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInterconnectRequest, callback: google.cloud.compute.v1beta.Interconnects.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertInterconnectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListInterconnectsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InterconnectList
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectsRequest, callback: google.cloud.compute.v1beta.Interconnects.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListInterconnectsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListInterconnectsRequest): Promise<google.cloud.compute.v1beta.InterconnectList>;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInterconnectRequest, callback: google.cloud.compute.v1beta.Interconnects.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchInterconnectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsInterconnectRequest, callback: google.cloud.compute.v1beta.Interconnects.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsInterconnectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectRequest, callback: google.cloud.compute.v1beta.Interconnects.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsInterconnectRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsInterconnectRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace Interconnects {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|get}.
                     * @param error Error, if any
                     * @param [response] Interconnect
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Interconnect) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|getDiagnostics}.
                     * @param error Error, if any
                     * @param [response] InterconnectsGetDiagnosticsResponse
                     */
                    type GetDiagnosticsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectsGetDiagnosticsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|getMacsecConfig}.
                     * @param error Error, if any
                     * @param [response] InterconnectsGetMacsecConfigResponse
                     */
                    type GetMacsecConfigCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectsGetMacsecConfigResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|list}.
                     * @param error Error, if any
                     * @param [response] InterconnectList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InterconnectList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Interconnects|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a LicenseCodes */
                class LicenseCodes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new LicenseCodes 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 LicenseCodes 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): LicenseCodes;

                    /**
                     * Calls Get.
                     * @param request GetLicenseCodeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and LicenseCode
                     */
                    public get(request: google.cloud.compute.v1beta.IGetLicenseCodeRequest, callback: google.cloud.compute.v1beta.LicenseCodes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetLicenseCodeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetLicenseCodeRequest): Promise<google.cloud.compute.v1beta.LicenseCode>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsLicenseCodeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsLicenseCodeRequest, callback: google.cloud.compute.v1beta.LicenseCodes.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsLicenseCodeRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsLicenseCodeRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace LicenseCodes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.LicenseCodes|get}.
                     * @param error Error, if any
                     * @param [response] LicenseCode
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.LicenseCode) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.LicenseCodes|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a Licenses */
                class Licenses extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Licenses 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 Licenses 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): Licenses;

                    /**
                     * Calls Delete.
                     * @param request DeleteLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteLicenseRequest, callback: google.cloud.compute.v1beta.Licenses.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteLicenseRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and License
                     */
                    public get(request: google.cloud.compute.v1beta.IGetLicenseRequest, callback: google.cloud.compute.v1beta.Licenses.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetLicenseRequest): Promise<google.cloud.compute.v1beta.License>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyLicenseRequest, callback: google.cloud.compute.v1beta.Licenses.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyLicenseRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertLicenseRequest, callback: google.cloud.compute.v1beta.Licenses.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertLicenseRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListLicensesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and LicensesListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListLicensesRequest, callback: google.cloud.compute.v1beta.Licenses.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListLicensesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListLicensesRequest): Promise<google.cloud.compute.v1beta.LicensesListResponse>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyLicenseRequest, callback: google.cloud.compute.v1beta.Licenses.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyLicenseRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsLicenseRequest, callback: google.cloud.compute.v1beta.Licenses.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsLicenseRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateLicenseRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateLicenseRequest, callback: google.cloud.compute.v1beta.Licenses.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateLicenseRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateLicenseRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Licenses {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Licenses|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Licenses|get}.
                     * @param error Error, if any
                     * @param [response] License
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.License) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Licenses|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Licenses|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Licenses|list}.
                     * @param error Error, if any
                     * @param [response] LicensesListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.LicensesListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Licenses|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Licenses|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Licenses|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a MachineImages */
                class MachineImages extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new MachineImages 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 MachineImages 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): MachineImages;

                    /**
                     * Calls Delete.
                     * @param request DeleteMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteMachineImageRequest, callback: google.cloud.compute.v1beta.MachineImages.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteMachineImageRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineImage
                     */
                    public get(request: google.cloud.compute.v1beta.IGetMachineImageRequest, callback: google.cloud.compute.v1beta.MachineImages.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetMachineImageRequest): Promise<google.cloud.compute.v1beta.MachineImage>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyMachineImageRequest, callback: google.cloud.compute.v1beta.MachineImages.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyMachineImageRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertMachineImageRequest, callback: google.cloud.compute.v1beta.MachineImages.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertMachineImageRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListMachineImagesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineImageList
                     */
                    public list(request: google.cloud.compute.v1beta.IListMachineImagesRequest, callback: google.cloud.compute.v1beta.MachineImages.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListMachineImagesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListMachineImagesRequest): Promise<google.cloud.compute.v1beta.MachineImageList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyMachineImageRequest, callback: google.cloud.compute.v1beta.MachineImages.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyMachineImageRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsMachineImageRequest, callback: google.cloud.compute.v1beta.MachineImages.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsMachineImageRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsMachineImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsMachineImageRequest, callback: google.cloud.compute.v1beta.MachineImages.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsMachineImageRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsMachineImageRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace MachineImages {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineImages|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineImages|get}.
                     * @param error Error, if any
                     * @param [response] MachineImage
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MachineImage) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineImages|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineImages|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineImages|list}.
                     * @param error Error, if any
                     * @param [response] MachineImageList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MachineImageList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineImages|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineImages|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineImages|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a MachineTypes */
                class MachineTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new MachineTypes 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 MachineTypes 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): MachineTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListMachineTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListMachineTypesRequest, callback: google.cloud.compute.v1beta.MachineTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListMachineTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListMachineTypesRequest): Promise<google.cloud.compute.v1beta.MachineTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetMachineTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineType
                     */
                    public get(request: google.cloud.compute.v1beta.IGetMachineTypeRequest, callback: google.cloud.compute.v1beta.MachineTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetMachineTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetMachineTypeRequest): Promise<google.cloud.compute.v1beta.MachineType>;

                    /**
                     * Calls List.
                     * @param request ListMachineTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MachineTypeList
                     */
                    public list(request: google.cloud.compute.v1beta.IListMachineTypesRequest, callback: google.cloud.compute.v1beta.MachineTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListMachineTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListMachineTypesRequest): Promise<google.cloud.compute.v1beta.MachineTypeList>;
                }

                namespace MachineTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] MachineTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MachineTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineTypes|get}.
                     * @param error Error, if any
                     * @param [response] MachineType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MachineType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.MachineTypes|list}.
                     * @param error Error, if any
                     * @param [response] MachineTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MachineTypeList) => void;
                }

                /** Represents a NetworkAttachments */
                class NetworkAttachments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkAttachments 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 NetworkAttachments 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): NetworkAttachments;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkAttachmentAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNetworkAttachmentsRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNetworkAttachmentsRequest): Promise<google.cloud.compute.v1beta.NetworkAttachmentAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkAttachmentRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkAttachment
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkAttachmentRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkAttachmentRequest): Promise<google.cloud.compute.v1beta.NetworkAttachment>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyNetworkAttachmentRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyNetworkAttachmentRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkAttachmentRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNetworkAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkAttachmentList
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworkAttachmentsRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworkAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworkAttachmentsRequest): Promise<google.cloud.compute.v1beta.NetworkAttachmentList>;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNetworkAttachmentRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNetworkAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyNetworkAttachmentRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyNetworkAttachmentRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNetworkAttachmentRequest, callback: google.cloud.compute.v1beta.NetworkAttachments.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNetworkAttachmentRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace NetworkAttachments {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkAttachmentAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkAttachmentAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|get}.
                     * @param error Error, if any
                     * @param [response] NetworkAttachment
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkAttachment) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|list}.
                     * @param error Error, if any
                     * @param [response] NetworkAttachmentList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkAttachmentList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkAttachments|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a NetworkEdgeSecurityServices */
                class NetworkEdgeSecurityServices extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkEdgeSecurityServices 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 NetworkEdgeSecurityServices 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): NetworkEdgeSecurityServices;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkEdgeSecurityServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEdgeSecurityServiceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNetworkEdgeSecurityServicesRequest, callback: google.cloud.compute.v1beta.NetworkEdgeSecurityServices.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkEdgeSecurityServicesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNetworkEdgeSecurityServicesRequest): Promise<google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkEdgeSecurityServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkEdgeSecurityServiceRequest, callback: google.cloud.compute.v1beta.NetworkEdgeSecurityServices.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkEdgeSecurityServiceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkEdgeSecurityServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkEdgeSecurityServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEdgeSecurityService
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkEdgeSecurityServiceRequest, callback: google.cloud.compute.v1beta.NetworkEdgeSecurityServices.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkEdgeSecurityServiceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkEdgeSecurityServiceRequest): Promise<google.cloud.compute.v1beta.NetworkEdgeSecurityService>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkEdgeSecurityServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkEdgeSecurityServiceRequest, callback: google.cloud.compute.v1beta.NetworkEdgeSecurityServices.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkEdgeSecurityServiceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkEdgeSecurityServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkEdgeSecurityServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNetworkEdgeSecurityServiceRequest, callback: google.cloud.compute.v1beta.NetworkEdgeSecurityServices.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkEdgeSecurityServiceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNetworkEdgeSecurityServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace NetworkEdgeSecurityServices {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServices|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkEdgeSecurityServiceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEdgeSecurityServiceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServices|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServices|get}.
                     * @param error Error, if any
                     * @param [response] NetworkEdgeSecurityService
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEdgeSecurityService) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServices|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEdgeSecurityServices|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a NetworkEndpointGroups */
                class NetworkEndpointGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkEndpointGroups 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 NetworkEndpointGroups 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): NetworkEndpointGroups;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList>;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1beta.IAttachNetworkEndpointsNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.AttachNetworkEndpointsCallback): void;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1beta.IAttachNetworkEndpointsNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1beta.IDetachNetworkEndpointsNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.DetachNetworkEndpointsCallback): void;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1beta.IDetachNetworkEndpointsNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupList
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroupList>;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupsListNetworkEndpoints
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1beta.IListNetworkEndpointsNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.ListNetworkEndpointsCallback): void;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1beta.IListNetworkEndpointsNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.NetworkEndpointGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace NetworkEndpointGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroupAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|attachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AttachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|detachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DetachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|get}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|list}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|listNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupsListNetworkEndpoints
                     */
                    type ListNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkEndpointGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a NetworkFirewallPolicies */
                class NetworkFirewallPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkFirewallPolicies 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 NetworkFirewallPolicies 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): NetworkFirewallPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddPacketMirroringRule.
                     * @param request AddPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addPacketMirroringRule(request: google.cloud.compute.v1beta.IAddPacketMirroringRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.AddPacketMirroringRuleCallback): void;

                    /**
                     * Calls AddPacketMirroringRule.
                     * @param request AddPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addPacketMirroringRule(request: google.cloud.compute.v1beta.IAddPacketMirroringRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkFirewallPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkFirewallPolicyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNetworkFirewallPoliciesRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNetworkFirewallPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNetworkFirewallPoliciesRequest): Promise<google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList>;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cloneRules(request: google.cloud.compute.v1beta.ICloneRulesNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.CloneRulesCallback): void;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public cloneRules(request: google.cloud.compute.v1beta.ICloneRulesNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyAssociation>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls GetPacketMirroringRule.
                     * @param request GetPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getPacketMirroringRule(request: google.cloud.compute.v1beta.IGetPacketMirroringRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.GetPacketMirroringRuleCallback): void;

                    /**
                     * Calls GetPacketMirroringRule.
                     * @param request GetPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getPacketMirroringRule(request: google.cloud.compute.v1beta.IGetPacketMirroringRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyRule>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNetworkFirewallPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworkFirewallPoliciesRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworkFirewallPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworkFirewallPoliciesRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchPacketMirroringRule.
                     * @param request PatchPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchPacketMirroringRule(request: google.cloud.compute.v1beta.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.PatchPacketMirroringRuleCallback): void;

                    /**
                     * Calls PatchPacketMirroringRule.
                     * @param request PatchPacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchPacketMirroringRule(request: google.cloud.compute.v1beta.IPatchPacketMirroringRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemovePacketMirroringRule.
                     * @param request RemovePacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removePacketMirroringRule(request: google.cloud.compute.v1beta.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.RemovePacketMirroringRuleCallback): void;

                    /**
                     * Calls RemovePacketMirroringRule.
                     * @param request RemovePacketMirroringRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removePacketMirroringRule(request: google.cloud.compute.v1beta.IRemovePacketMirroringRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.NetworkFirewallPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace NetworkFirewallPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|addPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkFirewallPolicyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkFirewallPolicyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|cloneRules}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CloneRulesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|get}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|getPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|list}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|patchPacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchPacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|removePacketMirroringRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemovePacketMirroringRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkFirewallPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a NetworkProfiles */
                class NetworkProfiles extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkProfiles 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 NetworkProfiles 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): NetworkProfiles;

                    /**
                     * Calls Get.
                     * @param request GetNetworkProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkProfile
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkProfileRequest, callback: google.cloud.compute.v1beta.NetworkProfiles.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkProfileRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkProfileRequest): Promise<google.cloud.compute.v1beta.NetworkProfile>;

                    /**
                     * Calls List.
                     * @param request ListNetworkProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkProfilesListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworkProfilesRequest, callback: google.cloud.compute.v1beta.NetworkProfiles.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworkProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworkProfilesRequest): Promise<google.cloud.compute.v1beta.NetworkProfilesListResponse>;
                }

                namespace NetworkProfiles {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkProfiles|get}.
                     * @param error Error, if any
                     * @param [response] NetworkProfile
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NetworkProfiles|list}.
                     * @param error Error, if any
                     * @param [response] NetworkProfilesListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkProfilesListResponse) => void;
                }

                /** Represents a Networks */
                class Networks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Networks 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 Networks 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): Networks;

                    /**
                     * Calls AddPeering.
                     * @param request AddPeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addPeering(request: google.cloud.compute.v1beta.IAddPeeringNetworkRequest, callback: google.cloud.compute.v1beta.Networks.AddPeeringCallback): void;

                    /**
                     * Calls AddPeering.
                     * @param request AddPeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public addPeering(request: google.cloud.compute.v1beta.IAddPeeringNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls CancelRequestRemovePeering.
                     * @param request CancelRequestRemovePeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cancelRequestRemovePeering(request: google.cloud.compute.v1beta.ICancelRequestRemovePeeringNetworkRequest, callback: google.cloud.compute.v1beta.Networks.CancelRequestRemovePeeringCallback): void;

                    /**
                     * Calls CancelRequestRemovePeering.
                     * @param request CancelRequestRemovePeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public cancelRequestRemovePeering(request: google.cloud.compute.v1beta.ICancelRequestRemovePeeringNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkRequest, callback: google.cloud.compute.v1beta.Networks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Network
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkRequest, callback: google.cloud.compute.v1beta.Networks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNetworkRequest): Promise<google.cloud.compute.v1beta.Network>;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworksGetEffectiveFirewallsResponse
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1beta.IGetEffectiveFirewallsNetworkRequest, callback: google.cloud.compute.v1beta.Networks.GetEffectiveFirewallsCallback): void;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1beta.IGetEffectiveFirewallsNetworkRequest): Promise<google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkRequest, callback: google.cloud.compute.v1beta.Networks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkList
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworksRequest, callback: google.cloud.compute.v1beta.Networks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNetworksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListNetworksRequest): Promise<google.cloud.compute.v1beta.NetworkList>;

                    /**
                     * Calls ListPeeringRoutes.
                     * @param request ListPeeringRoutesNetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ExchangedPeeringRoutesList
                     */
                    public listPeeringRoutes(request: google.cloud.compute.v1beta.IListPeeringRoutesNetworksRequest, callback: google.cloud.compute.v1beta.Networks.ListPeeringRoutesCallback): void;

                    /**
                     * Calls ListPeeringRoutes.
                     * @param request ListPeeringRoutesNetworksRequest message or plain object
                     * @returns Promise
                     */
                    public listPeeringRoutes(request: google.cloud.compute.v1beta.IListPeeringRoutesNetworksRequest): Promise<google.cloud.compute.v1beta.ExchangedPeeringRoutesList>;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNetworkRequest, callback: google.cloud.compute.v1beta.Networks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemovePeering.
                     * @param request RemovePeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removePeering(request: google.cloud.compute.v1beta.IRemovePeeringNetworkRequest, callback: google.cloud.compute.v1beta.Networks.RemovePeeringCallback): void;

                    /**
                     * Calls RemovePeering.
                     * @param request RemovePeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public removePeering(request: google.cloud.compute.v1beta.IRemovePeeringNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RequestRemovePeering.
                     * @param request RequestRemovePeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public requestRemovePeering(request: google.cloud.compute.v1beta.IRequestRemovePeeringNetworkRequest, callback: google.cloud.compute.v1beta.Networks.RequestRemovePeeringCallback): void;

                    /**
                     * Calls RequestRemovePeering.
                     * @param request RequestRemovePeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public requestRemovePeering(request: google.cloud.compute.v1beta.IRequestRemovePeeringNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SwitchToCustomMode.
                     * @param request SwitchToCustomModeNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public switchToCustomMode(request: google.cloud.compute.v1beta.ISwitchToCustomModeNetworkRequest, callback: google.cloud.compute.v1beta.Networks.SwitchToCustomModeCallback): void;

                    /**
                     * Calls SwitchToCustomMode.
                     * @param request SwitchToCustomModeNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public switchToCustomMode(request: google.cloud.compute.v1beta.ISwitchToCustomModeNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNetworkRequest, callback: google.cloud.compute.v1beta.Networks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNetworkRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls UpdatePeering.
                     * @param request UpdatePeeringNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updatePeering(request: google.cloud.compute.v1beta.IUpdatePeeringNetworkRequest, callback: google.cloud.compute.v1beta.Networks.UpdatePeeringCallback): void;

                    /**
                     * Calls UpdatePeering.
                     * @param request UpdatePeeringNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public updatePeering(request: google.cloud.compute.v1beta.IUpdatePeeringNetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Networks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|addPeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddPeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|cancelRequestRemovePeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CancelRequestRemovePeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|get}.
                     * @param error Error, if any
                     * @param [response] Network
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Network) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|getEffectiveFirewalls}.
                     * @param error Error, if any
                     * @param [response] NetworksGetEffectiveFirewallsResponse
                     */
                    type GetEffectiveFirewallsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworksGetEffectiveFirewallsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|list}.
                     * @param error Error, if any
                     * @param [response] NetworkList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|listPeeringRoutes}.
                     * @param error Error, if any
                     * @param [response] ExchangedPeeringRoutesList
                     */
                    type ListPeeringRoutesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ExchangedPeeringRoutesList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|removePeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemovePeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|requestRemovePeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RequestRemovePeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|switchToCustomMode}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SwitchToCustomModeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Networks|updatePeering}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdatePeeringCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a NodeGroups */
                class NodeGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NodeGroups 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 NodeGroups 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): NodeGroups;

                    /**
                     * Calls AddNodes.
                     * @param request AddNodesNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addNodes(request: google.cloud.compute.v1beta.IAddNodesNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.AddNodesCallback): void;

                    /**
                     * Calls AddNodes.
                     * @param request AddNodesNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public addNodes(request: google.cloud.compute.v1beta.IAddNodesNodeGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeGroupAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNodeGroupsRequest, callback: google.cloud.compute.v1beta.NodeGroups.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNodeGroupsRequest): Promise<google.cloud.compute.v1beta.NodeGroupAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNodeGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteNodes.
                     * @param request DeleteNodesNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteNodes(request: google.cloud.compute.v1beta.IDeleteNodesNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.DeleteNodesCallback): void;

                    /**
                     * Calls DeleteNodes.
                     * @param request DeleteNodesNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public deleteNodes(request: google.cloud.compute.v1beta.IDeleteNodesNodeGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNodeGroupRequest): Promise<google.cloud.compute.v1beta.NodeGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyNodeGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNodeGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNodeGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeGroupList
                     */
                    public list(request: google.cloud.compute.v1beta.IListNodeGroupsRequest, callback: google.cloud.compute.v1beta.NodeGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNodeGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListNodeGroupsRequest): Promise<google.cloud.compute.v1beta.NodeGroupList>;

                    /**
                     * Calls ListNodes.
                     * @param request ListNodesNodeGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeGroupsListNodes
                     */
                    public listNodes(request: google.cloud.compute.v1beta.IListNodesNodeGroupsRequest, callback: google.cloud.compute.v1beta.NodeGroups.ListNodesCallback): void;

                    /**
                     * Calls ListNodes.
                     * @param request ListNodesNodeGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listNodes(request: google.cloud.compute.v1beta.IListNodesNodeGroupsRequest): Promise<google.cloud.compute.v1beta.NodeGroupsListNodes>;

                    /**
                     * Calls Patch.
                     * @param request PatchNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchNodeGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceNodeGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyNodeGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetNodeTemplate.
                     * @param request SetNodeTemplateNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setNodeTemplate(request: google.cloud.compute.v1beta.ISetNodeTemplateNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.SetNodeTemplateCallback): void;

                    /**
                     * Calls SetNodeTemplate.
                     * @param request SetNodeTemplateNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setNodeTemplate(request: google.cloud.compute.v1beta.ISetNodeTemplateNodeGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SimulateMaintenanceEvent.
                     * @param request SimulateMaintenanceEventNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public simulateMaintenanceEvent(request: google.cloud.compute.v1beta.ISimulateMaintenanceEventNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.SimulateMaintenanceEventCallback): void;

                    /**
                     * Calls SimulateMaintenanceEvent.
                     * @param request SimulateMaintenanceEventNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public simulateMaintenanceEvent(request: google.cloud.compute.v1beta.ISimulateMaintenanceEventNodeGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNodeGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNodeGroupRequest, callback: google.cloud.compute.v1beta.NodeGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNodeGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNodeGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace NodeGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|addNodes}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddNodesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NodeGroupAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeGroupAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|deleteNodes}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteNodesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|get}.
                     * @param error Error, if any
                     * @param [response] NodeGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|list}.
                     * @param error Error, if any
                     * @param [response] NodeGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|listNodes}.
                     * @param error Error, if any
                     * @param [response] NodeGroupsListNodes
                     */
                    type ListNodesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeGroupsListNodes) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|setNodeTemplate}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetNodeTemplateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|simulateMaintenanceEvent}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SimulateMaintenanceEventCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a NodeTemplates */
                class NodeTemplates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NodeTemplates 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 NodeTemplates 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): NodeTemplates;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTemplateAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNodeTemplatesRequest, callback: google.cloud.compute.v1beta.NodeTemplates.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNodeTemplatesRequest): Promise<google.cloud.compute.v1beta.NodeTemplateAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNodeTemplateRequest, callback: google.cloud.compute.v1beta.NodeTemplates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteNodeTemplateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTemplate
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNodeTemplateRequest, callback: google.cloud.compute.v1beta.NodeTemplates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNodeTemplateRequest): Promise<google.cloud.compute.v1beta.NodeTemplate>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyNodeTemplateRequest, callback: google.cloud.compute.v1beta.NodeTemplates.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyNodeTemplateRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNodeTemplateRequest, callback: google.cloud.compute.v1beta.NodeTemplates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertNodeTemplateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListNodeTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTemplateList
                     */
                    public list(request: google.cloud.compute.v1beta.IListNodeTemplatesRequest, callback: google.cloud.compute.v1beta.NodeTemplates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNodeTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListNodeTemplatesRequest): Promise<google.cloud.compute.v1beta.NodeTemplateList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyNodeTemplateRequest, callback: google.cloud.compute.v1beta.NodeTemplates.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyNodeTemplateRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNodeTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNodeTemplateRequest, callback: google.cloud.compute.v1beta.NodeTemplates.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsNodeTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsNodeTemplateRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace NodeTemplates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTemplates|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NodeTemplateAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeTemplateAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTemplates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTemplates|get}.
                     * @param error Error, if any
                     * @param [response] NodeTemplate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeTemplate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTemplates|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTemplates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTemplates|list}.
                     * @param error Error, if any
                     * @param [response] NodeTemplateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeTemplateList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTemplates|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTemplates|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a NodeTypes */
                class NodeTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NodeTypes 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 NodeTypes 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): NodeTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNodeTypesRequest, callback: google.cloud.compute.v1beta.NodeTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListNodeTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListNodeTypesRequest): Promise<google.cloud.compute.v1beta.NodeTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetNodeTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeType
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNodeTypeRequest, callback: google.cloud.compute.v1beta.NodeTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetNodeTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetNodeTypeRequest): Promise<google.cloud.compute.v1beta.NodeType>;

                    /**
                     * Calls List.
                     * @param request ListNodeTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NodeTypeList
                     */
                    public list(request: google.cloud.compute.v1beta.IListNodeTypesRequest, callback: google.cloud.compute.v1beta.NodeTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListNodeTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListNodeTypesRequest): Promise<google.cloud.compute.v1beta.NodeTypeList>;
                }

                namespace NodeTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NodeTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTypes|get}.
                     * @param error Error, if any
                     * @param [response] NodeType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.NodeTypes|list}.
                     * @param error Error, if any
                     * @param [response] NodeTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NodeTypeList) => void;
                }

                /** Represents an OrganizationSecurityPolicies */
                class OrganizationSecurityPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new OrganizationSecurityPolicies 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 OrganizationSecurityPolicies 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): OrganizationSecurityPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls CopyRules.
                     * @param request CopyRulesOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public copyRules(request: google.cloud.compute.v1beta.ICopyRulesOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.CopyRulesCallback): void;

                    /**
                     * Calls CopyRules.
                     * @param request CopyRulesOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public copyRules(request: google.cloud.compute.v1beta.ICopyRulesOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.SecurityPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.SecurityPolicyAssociation>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.SecurityPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListOrganizationSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListOrganizationSecurityPoliciesRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListOrganizationSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListOrganizationSecurityPoliciesRequest): Promise<google.cloud.compute.v1beta.SecurityPolicyList>;

                    /**
                     * Calls ListAssociations.
                     * @param request ListAssociationsOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OrganizationSecurityPoliciesListAssociationsResponse
                     */
                    public listAssociations(request: google.cloud.compute.v1beta.IListAssociationsOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.ListAssociationsCallback): void;

                    /**
                     * Calls ListAssociations.
                     * @param request ListAssociationsOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public listAssociations(request: google.cloud.compute.v1beta.IListAssociationsOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse>;

                    /**
                     * Calls ListPreconfiguredExpressionSets.
                     * @param request ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    public listPreconfiguredExpressionSets(request: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.ListPreconfiguredExpressionSetsCallback): void;

                    /**
                     * Calls ListPreconfiguredExpressionSets.
                     * @param request ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public listPreconfiguredExpressionSets(request: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest): Promise<google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse>;

                    /**
                     * Calls Move.
                     * @param request MoveOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public move(request: google.cloud.compute.v1beta.IMoveOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.MoveCallback): void;

                    /**
                     * Calls Move.
                     * @param request MoveOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public move(request: google.cloud.compute.v1beta.IMoveOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Patch.
                     * @param request PatchOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleOrganizationSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleOrganizationSecurityPolicyRequest, callback: google.cloud.compute.v1beta.OrganizationSecurityPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleOrganizationSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleOrganizationSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace OrganizationSecurityPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|copyRules}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CopyRulesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|listAssociations}.
                     * @param error Error, if any
                     * @param [response] OrganizationSecurityPoliciesListAssociationsResponse
                     */
                    type ListAssociationsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.OrganizationSecurityPoliciesListAssociationsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|listPreconfiguredExpressionSets}.
                     * @param error Error, if any
                     * @param [response] SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    type ListPreconfiguredExpressionSetsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|move}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.OrganizationSecurityPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a PacketMirrorings */
                class PacketMirrorings extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PacketMirrorings 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 PacketMirrorings 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): PacketMirrorings;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListPacketMirroringsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PacketMirroringAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListPacketMirroringsRequest, callback: google.cloud.compute.v1beta.PacketMirrorings.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListPacketMirroringsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListPacketMirroringsRequest): Promise<google.cloud.compute.v1beta.PacketMirroringAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeletePacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeletePacketMirroringRequest, callback: google.cloud.compute.v1beta.PacketMirrorings.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeletePacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeletePacketMirroringRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetPacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PacketMirroring
                     */
                    public get(request: google.cloud.compute.v1beta.IGetPacketMirroringRequest, callback: google.cloud.compute.v1beta.PacketMirrorings.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetPacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetPacketMirroringRequest): Promise<google.cloud.compute.v1beta.PacketMirroring>;

                    /**
                     * Calls Insert.
                     * @param request InsertPacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertPacketMirroringRequest, callback: google.cloud.compute.v1beta.PacketMirrorings.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertPacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertPacketMirroringRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListPacketMirroringsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PacketMirroringList
                     */
                    public list(request: google.cloud.compute.v1beta.IListPacketMirroringsRequest, callback: google.cloud.compute.v1beta.PacketMirrorings.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListPacketMirroringsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListPacketMirroringsRequest): Promise<google.cloud.compute.v1beta.PacketMirroringList>;

                    /**
                     * Calls Patch.
                     * @param request PatchPacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchPacketMirroringRequest, callback: google.cloud.compute.v1beta.PacketMirrorings.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchPacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchPacketMirroringRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsPacketMirroringRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsPacketMirroringRequest, callback: google.cloud.compute.v1beta.PacketMirrorings.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsPacketMirroringRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsPacketMirroringRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace PacketMirrorings {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PacketMirrorings|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] PacketMirroringAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PacketMirroringAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PacketMirrorings|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PacketMirrorings|get}.
                     * @param error Error, if any
                     * @param [response] PacketMirroring
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PacketMirroring) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PacketMirrorings|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PacketMirrorings|list}.
                     * @param error Error, if any
                     * @param [response] PacketMirroringList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PacketMirroringList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PacketMirrorings|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PacketMirrorings|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a PreviewFeatures */
                class PreviewFeatures extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PreviewFeatures 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 PreviewFeatures 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): PreviewFeatures;

                    /**
                     * Calls Get.
                     * @param request GetPreviewFeatureRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PreviewFeature
                     */
                    public get(request: google.cloud.compute.v1beta.IGetPreviewFeatureRequest, callback: google.cloud.compute.v1beta.PreviewFeatures.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetPreviewFeatureRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetPreviewFeatureRequest): Promise<google.cloud.compute.v1beta.PreviewFeature>;

                    /**
                     * Calls List.
                     * @param request ListPreviewFeaturesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PreviewFeatureList
                     */
                    public list(request: google.cloud.compute.v1beta.IListPreviewFeaturesRequest, callback: google.cloud.compute.v1beta.PreviewFeatures.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListPreviewFeaturesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListPreviewFeaturesRequest): Promise<google.cloud.compute.v1beta.PreviewFeatureList>;

                    /**
                     * Calls Update.
                     * @param request UpdatePreviewFeatureRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdatePreviewFeatureRequest, callback: google.cloud.compute.v1beta.PreviewFeatures.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdatePreviewFeatureRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdatePreviewFeatureRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace PreviewFeatures {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PreviewFeatures|get}.
                     * @param error Error, if any
                     * @param [response] PreviewFeature
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PreviewFeature) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PreviewFeatures|list}.
                     * @param error Error, if any
                     * @param [response] PreviewFeatureList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PreviewFeatureList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PreviewFeatures|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a Projects */
                class Projects extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Projects 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 Projects 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): Projects;

                    /**
                     * Calls DisableXpnHost.
                     * @param request DisableXpnHostProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public disableXpnHost(request: google.cloud.compute.v1beta.IDisableXpnHostProjectRequest, callback: google.cloud.compute.v1beta.Projects.DisableXpnHostCallback): void;

                    /**
                     * Calls DisableXpnHost.
                     * @param request DisableXpnHostProjectRequest message or plain object
                     * @returns Promise
                     */
                    public disableXpnHost(request: google.cloud.compute.v1beta.IDisableXpnHostProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DisableXpnResource.
                     * @param request DisableXpnResourceProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public disableXpnResource(request: google.cloud.compute.v1beta.IDisableXpnResourceProjectRequest, callback: google.cloud.compute.v1beta.Projects.DisableXpnResourceCallback): void;

                    /**
                     * Calls DisableXpnResource.
                     * @param request DisableXpnResourceProjectRequest message or plain object
                     * @returns Promise
                     */
                    public disableXpnResource(request: google.cloud.compute.v1beta.IDisableXpnResourceProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls EnableXpnHost.
                     * @param request EnableXpnHostProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public enableXpnHost(request: google.cloud.compute.v1beta.IEnableXpnHostProjectRequest, callback: google.cloud.compute.v1beta.Projects.EnableXpnHostCallback): void;

                    /**
                     * Calls EnableXpnHost.
                     * @param request EnableXpnHostProjectRequest message or plain object
                     * @returns Promise
                     */
                    public enableXpnHost(request: google.cloud.compute.v1beta.IEnableXpnHostProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls EnableXpnResource.
                     * @param request EnableXpnResourceProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public enableXpnResource(request: google.cloud.compute.v1beta.IEnableXpnResourceProjectRequest, callback: google.cloud.compute.v1beta.Projects.EnableXpnResourceCallback): void;

                    /**
                     * Calls EnableXpnResource.
                     * @param request EnableXpnResourceProjectRequest message or plain object
                     * @returns Promise
                     */
                    public enableXpnResource(request: google.cloud.compute.v1beta.IEnableXpnResourceProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Project
                     */
                    public get(request: google.cloud.compute.v1beta.IGetProjectRequest, callback: google.cloud.compute.v1beta.Projects.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetProjectRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetProjectRequest): Promise<google.cloud.compute.v1beta.Project>;

                    /**
                     * Calls GetXpnHost.
                     * @param request GetXpnHostProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Project
                     */
                    public getXpnHost(request: google.cloud.compute.v1beta.IGetXpnHostProjectRequest, callback: google.cloud.compute.v1beta.Projects.GetXpnHostCallback): void;

                    /**
                     * Calls GetXpnHost.
                     * @param request GetXpnHostProjectRequest message or plain object
                     * @returns Promise
                     */
                    public getXpnHost(request: google.cloud.compute.v1beta.IGetXpnHostProjectRequest): Promise<google.cloud.compute.v1beta.Project>;

                    /**
                     * Calls GetXpnResources.
                     * @param request GetXpnResourcesProjectsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ProjectsGetXpnResources
                     */
                    public getXpnResources(request: google.cloud.compute.v1beta.IGetXpnResourcesProjectsRequest, callback: google.cloud.compute.v1beta.Projects.GetXpnResourcesCallback): void;

                    /**
                     * Calls GetXpnResources.
                     * @param request GetXpnResourcesProjectsRequest message or plain object
                     * @returns Promise
                     */
                    public getXpnResources(request: google.cloud.compute.v1beta.IGetXpnResourcesProjectsRequest): Promise<google.cloud.compute.v1beta.ProjectsGetXpnResources>;

                    /**
                     * Calls ListXpnHosts.
                     * @param request ListXpnHostsProjectsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and XpnHostList
                     */
                    public listXpnHosts(request: google.cloud.compute.v1beta.IListXpnHostsProjectsRequest, callback: google.cloud.compute.v1beta.Projects.ListXpnHostsCallback): void;

                    /**
                     * Calls ListXpnHosts.
                     * @param request ListXpnHostsProjectsRequest message or plain object
                     * @returns Promise
                     */
                    public listXpnHosts(request: google.cloud.compute.v1beta.IListXpnHostsProjectsRequest): Promise<google.cloud.compute.v1beta.XpnHostList>;

                    /**
                     * Calls MoveDisk.
                     * @param request MoveDiskProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public moveDisk(request: google.cloud.compute.v1beta.IMoveDiskProjectRequest, callback: google.cloud.compute.v1beta.Projects.MoveDiskCallback): void;

                    /**
                     * Calls MoveDisk.
                     * @param request MoveDiskProjectRequest message or plain object
                     * @returns Promise
                     */
                    public moveDisk(request: google.cloud.compute.v1beta.IMoveDiskProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls MoveInstance.
                     * @param request MoveInstanceProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public moveInstance(request: google.cloud.compute.v1beta.IMoveInstanceProjectRequest, callback: google.cloud.compute.v1beta.Projects.MoveInstanceCallback): void;

                    /**
                     * Calls MoveInstance.
                     * @param request MoveInstanceProjectRequest message or plain object
                     * @returns Promise
                     */
                    public moveInstance(request: google.cloud.compute.v1beta.IMoveInstanceProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetCloudArmorTier.
                     * @param request SetCloudArmorTierProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setCloudArmorTier(request: google.cloud.compute.v1beta.ISetCloudArmorTierProjectRequest, callback: google.cloud.compute.v1beta.Projects.SetCloudArmorTierCallback): void;

                    /**
                     * Calls SetCloudArmorTier.
                     * @param request SetCloudArmorTierProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setCloudArmorTier(request: google.cloud.compute.v1beta.ISetCloudArmorTierProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetCommonInstanceMetadata.
                     * @param request SetCommonInstanceMetadataProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setCommonInstanceMetadata(request: google.cloud.compute.v1beta.ISetCommonInstanceMetadataProjectRequest, callback: google.cloud.compute.v1beta.Projects.SetCommonInstanceMetadataCallback): void;

                    /**
                     * Calls SetCommonInstanceMetadata.
                     * @param request SetCommonInstanceMetadataProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setCommonInstanceMetadata(request: google.cloud.compute.v1beta.ISetCommonInstanceMetadataProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetDefaultNetworkTier.
                     * @param request SetDefaultNetworkTierProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setDefaultNetworkTier(request: google.cloud.compute.v1beta.ISetDefaultNetworkTierProjectRequest, callback: google.cloud.compute.v1beta.Projects.SetDefaultNetworkTierCallback): void;

                    /**
                     * Calls SetDefaultNetworkTier.
                     * @param request SetDefaultNetworkTierProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setDefaultNetworkTier(request: google.cloud.compute.v1beta.ISetDefaultNetworkTierProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetManagedProtectionTier.
                     * @param request SetManagedProtectionTierProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setManagedProtectionTier(request: google.cloud.compute.v1beta.ISetManagedProtectionTierProjectRequest, callback: google.cloud.compute.v1beta.Projects.SetManagedProtectionTierCallback): void;

                    /**
                     * Calls SetManagedProtectionTier.
                     * @param request SetManagedProtectionTierProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setManagedProtectionTier(request: google.cloud.compute.v1beta.ISetManagedProtectionTierProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetUsageExportBucket.
                     * @param request SetUsageExportBucketProjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUsageExportBucket(request: google.cloud.compute.v1beta.ISetUsageExportBucketProjectRequest, callback: google.cloud.compute.v1beta.Projects.SetUsageExportBucketCallback): void;

                    /**
                     * Calls SetUsageExportBucket.
                     * @param request SetUsageExportBucketProjectRequest message or plain object
                     * @returns Promise
                     */
                    public setUsageExportBucket(request: google.cloud.compute.v1beta.ISetUsageExportBucketProjectRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Projects {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|disableXpnHost}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DisableXpnHostCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|disableXpnResource}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DisableXpnResourceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|enableXpnHost}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type EnableXpnHostCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|enableXpnResource}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type EnableXpnResourceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|get}.
                     * @param error Error, if any
                     * @param [response] Project
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Project) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|getXpnHost}.
                     * @param error Error, if any
                     * @param [response] Project
                     */
                    type GetXpnHostCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Project) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|getXpnResources}.
                     * @param error Error, if any
                     * @param [response] ProjectsGetXpnResources
                     */
                    type GetXpnResourcesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ProjectsGetXpnResources) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|listXpnHosts}.
                     * @param error Error, if any
                     * @param [response] XpnHostList
                     */
                    type ListXpnHostsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.XpnHostList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|moveDisk}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveDiskCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|moveInstance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type MoveInstanceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|setCloudArmorTier}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetCloudArmorTierCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|setCommonInstanceMetadata}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetCommonInstanceMetadataCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|setDefaultNetworkTier}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetDefaultNetworkTierCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|setManagedProtectionTier}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetManagedProtectionTierCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Projects|setUsageExportBucket}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUsageExportBucketCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a PublicAdvertisedPrefixes */
                class PublicAdvertisedPrefixes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PublicAdvertisedPrefixes 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 PublicAdvertisedPrefixes 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): PublicAdvertisedPrefixes;

                    /**
                     * Calls Announce.
                     * @param request AnnouncePublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public announce(request: google.cloud.compute.v1beta.IAnnouncePublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicAdvertisedPrefixes.AnnounceCallback): void;

                    /**
                     * Calls Announce.
                     * @param request AnnouncePublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public announce(request: google.cloud.compute.v1beta.IAnnouncePublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeletePublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeletePublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicAdvertisedPrefixes.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeletePublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeletePublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetPublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicAdvertisedPrefix
                     */
                    public get(request: google.cloud.compute.v1beta.IGetPublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicAdvertisedPrefixes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetPublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetPublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1beta.PublicAdvertisedPrefix>;

                    /**
                     * Calls Insert.
                     * @param request InsertPublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertPublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicAdvertisedPrefixes.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertPublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertPublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListPublicAdvertisedPrefixesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicAdvertisedPrefixList
                     */
                    public list(request: google.cloud.compute.v1beta.IListPublicAdvertisedPrefixesRequest, callback: google.cloud.compute.v1beta.PublicAdvertisedPrefixes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListPublicAdvertisedPrefixesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListPublicAdvertisedPrefixesRequest): Promise<google.cloud.compute.v1beta.PublicAdvertisedPrefixList>;

                    /**
                     * Calls Patch.
                     * @param request PatchPublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchPublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicAdvertisedPrefixes.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchPublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchPublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Withdraw.
                     * @param request WithdrawPublicAdvertisedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public withdraw(request: google.cloud.compute.v1beta.IWithdrawPublicAdvertisedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicAdvertisedPrefixes.WithdrawCallback): void;

                    /**
                     * Calls Withdraw.
                     * @param request WithdrawPublicAdvertisedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public withdraw(request: google.cloud.compute.v1beta.IWithdrawPublicAdvertisedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace PublicAdvertisedPrefixes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixes|announce}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AnnounceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixes|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixes|get}.
                     * @param error Error, if any
                     * @param [response] PublicAdvertisedPrefix
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PublicAdvertisedPrefix) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixes|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixes|list}.
                     * @param error Error, if any
                     * @param [response] PublicAdvertisedPrefixList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PublicAdvertisedPrefixList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixes|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicAdvertisedPrefixes|withdraw}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WithdrawCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a PublicDelegatedPrefixes */
                class PublicDelegatedPrefixes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PublicDelegatedPrefixes 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 PublicDelegatedPrefixes 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): PublicDelegatedPrefixes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListPublicDelegatedPrefixesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefixAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListPublicDelegatedPrefixesRequest, callback: google.cloud.compute.v1beta.PublicDelegatedPrefixes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListPublicDelegatedPrefixesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListPublicDelegatedPrefixesRequest): Promise<google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList>;

                    /**
                     * Calls Announce.
                     * @param request AnnouncePublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public announce(request: google.cloud.compute.v1beta.IAnnouncePublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicDelegatedPrefixes.AnnounceCallback): void;

                    /**
                     * Calls Announce.
                     * @param request AnnouncePublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public announce(request: google.cloud.compute.v1beta.IAnnouncePublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeletePublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeletePublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicDelegatedPrefixes.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeletePublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeletePublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefix
                     */
                    public get(request: google.cloud.compute.v1beta.IGetPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicDelegatedPrefixes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.PublicDelegatedPrefix>;

                    /**
                     * Calls Insert.
                     * @param request InsertPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicDelegatedPrefixes.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListPublicDelegatedPrefixesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PublicDelegatedPrefixList
                     */
                    public list(request: google.cloud.compute.v1beta.IListPublicDelegatedPrefixesRequest, callback: google.cloud.compute.v1beta.PublicDelegatedPrefixes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListPublicDelegatedPrefixesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListPublicDelegatedPrefixesRequest): Promise<google.cloud.compute.v1beta.PublicDelegatedPrefixList>;

                    /**
                     * Calls Patch.
                     * @param request PatchPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicDelegatedPrefixes.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Withdraw.
                     * @param request WithdrawPublicDelegatedPrefixeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public withdraw(request: google.cloud.compute.v1beta.IWithdrawPublicDelegatedPrefixeRequest, callback: google.cloud.compute.v1beta.PublicDelegatedPrefixes.WithdrawCallback): void;

                    /**
                     * Calls Withdraw.
                     * @param request WithdrawPublicDelegatedPrefixeRequest message or plain object
                     * @returns Promise
                     */
                    public withdraw(request: google.cloud.compute.v1beta.IWithdrawPublicDelegatedPrefixeRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace PublicDelegatedPrefixes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicDelegatedPrefixes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefixAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PublicDelegatedPrefixAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicDelegatedPrefixes|announce}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AnnounceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicDelegatedPrefixes|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicDelegatedPrefixes|get}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefix
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PublicDelegatedPrefix) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicDelegatedPrefixes|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicDelegatedPrefixes|list}.
                     * @param error Error, if any
                     * @param [response] PublicDelegatedPrefixList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.PublicDelegatedPrefixList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicDelegatedPrefixes|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.PublicDelegatedPrefixes|withdraw}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WithdrawCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionAutoscalers */
                class RegionAutoscalers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionAutoscalers 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 RegionAutoscalers 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): RegionAutoscalers;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionAutoscalerRequest, callback: google.cloud.compute.v1beta.RegionAutoscalers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionAutoscalerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Autoscaler
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionAutoscalerRequest, callback: google.cloud.compute.v1beta.RegionAutoscalers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionAutoscalerRequest): Promise<google.cloud.compute.v1beta.Autoscaler>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionAutoscalerRequest, callback: google.cloud.compute.v1beta.RegionAutoscalers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionAutoscalerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionAutoscalersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionAutoscalerList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionAutoscalersRequest, callback: google.cloud.compute.v1beta.RegionAutoscalers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionAutoscalersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionAutoscalersRequest): Promise<google.cloud.compute.v1beta.RegionAutoscalerList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionAutoscalerRequest, callback: google.cloud.compute.v1beta.RegionAutoscalers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionAutoscalerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionAutoscalerRequest, callback: google.cloud.compute.v1beta.RegionAutoscalers.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionAutoscalerRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionAutoscalerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionAutoscalerRequest, callback: google.cloud.compute.v1beta.RegionAutoscalers.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionAutoscalerRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionAutoscalerRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionAutoscalers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionAutoscalers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionAutoscalers|get}.
                     * @param error Error, if any
                     * @param [response] Autoscaler
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Autoscaler) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionAutoscalers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionAutoscalers|list}.
                     * @param error Error, if any
                     * @param [response] RegionAutoscalerList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionAutoscalerList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionAutoscalers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionAutoscalers|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionAutoscalers|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionBackendBuckets */
                class RegionBackendBuckets extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionBackendBuckets 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 RegionBackendBuckets 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): RegionBackendBuckets;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionBackendBucketRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucket
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionBackendBucketRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionBackendBucketRequest): Promise<google.cloud.compute.v1beta.BackendBucket>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendBucketRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendBucketRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionBackendBucketRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionBackendBucketsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucketList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionBackendBucketsRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionBackendBucketsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionBackendBucketsRequest): Promise<google.cloud.compute.v1beta.BackendBucketList>;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableRegionBackendBucketsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendBucketListUsable
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableRegionBackendBucketsRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.ListUsableCallback): void;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableRegionBackendBucketsRequest message or plain object
                     * @returns Promise
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableRegionBackendBucketsRequest): Promise<google.cloud.compute.v1beta.BackendBucketListUsable>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionBackendBucketRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionBackendBucketRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendBucketRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendBucketRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionBackendBucketRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendBucketRequest, callback: google.cloud.compute.v1beta.RegionBackendBuckets.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionBackendBucketRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendBucketRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionBackendBuckets {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|get}.
                     * @param error Error, if any
                     * @param [response] BackendBucket
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendBucket) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|list}.
                     * @param error Error, if any
                     * @param [response] BackendBucketList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendBucketList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|listUsable}.
                     * @param error Error, if any
                     * @param [response] BackendBucketListUsable
                     */
                    type ListUsableCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendBucketListUsable) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendBuckets|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionBackendServices */
                class RegionBackendServices extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionBackendServices 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 RegionBackendServices 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): RegionBackendServices;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendService
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.BackendService>;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceGroupHealth
                     */
                    public getHealth(request: google.cloud.compute.v1beta.IGetHealthRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.GetHealthCallback): void;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getHealth(request: google.cloud.compute.v1beta.IGetHealthRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.BackendServiceGroupHealth>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionBackendServicesRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionBackendServicesRequest): Promise<google.cloud.compute.v1beta.BackendServiceList>;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableRegionBackendServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BackendServiceListUsable
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableRegionBackendServicesRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.ListUsableCallback): void;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableRegionBackendServicesRequest message or plain object
                     * @returns Promise
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableRegionBackendServicesRequest): Promise<google.cloud.compute.v1beta.BackendServiceListUsable>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionBackendServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionBackendServiceRequest, callback: google.cloud.compute.v1beta.RegionBackendServices.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionBackendServiceRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionBackendServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionBackendServices {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|get}.
                     * @param error Error, if any
                     * @param [response] BackendService
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendService) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|getHealth}.
                     * @param error Error, if any
                     * @param [response] BackendServiceGroupHealth
                     */
                    type GetHealthCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendServiceGroupHealth) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|list}.
                     * @param error Error, if any
                     * @param [response] BackendServiceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendServiceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|listUsable}.
                     * @param error Error, if any
                     * @param [response] BackendServiceListUsable
                     */
                    type ListUsableCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.BackendServiceListUsable) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionBackendServices|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionCommitments */
                class RegionCommitments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionCommitments 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 RegionCommitments 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): RegionCommitments;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionCommitmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CommitmentAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionCommitmentsRequest, callback: google.cloud.compute.v1beta.RegionCommitments.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionCommitmentsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionCommitmentsRequest): Promise<google.cloud.compute.v1beta.CommitmentAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetRegionCommitmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Commitment
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionCommitmentRequest, callback: google.cloud.compute.v1beta.RegionCommitments.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionCommitmentRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionCommitmentRequest): Promise<google.cloud.compute.v1beta.Commitment>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionCommitmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionCommitmentRequest, callback: google.cloud.compute.v1beta.RegionCommitments.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionCommitmentRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionCommitmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionCommitmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CommitmentList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionCommitmentsRequest, callback: google.cloud.compute.v1beta.RegionCommitments.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionCommitmentsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionCommitmentsRequest): Promise<google.cloud.compute.v1beta.CommitmentList>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionCommitmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionCommitmentRequest, callback: google.cloud.compute.v1beta.RegionCommitments.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionCommitmentRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionCommitmentRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionCommitmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionCommitmentRequest, callback: google.cloud.compute.v1beta.RegionCommitments.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionCommitmentRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionCommitmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdateReservations.
                     * @param request UpdateReservationsRegionCommitmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateReservations(request: google.cloud.compute.v1beta.IUpdateReservationsRegionCommitmentRequest, callback: google.cloud.compute.v1beta.RegionCommitments.UpdateReservationsCallback): void;

                    /**
                     * Calls UpdateReservations.
                     * @param request UpdateReservationsRegionCommitmentRequest message or plain object
                     * @returns Promise
                     */
                    public updateReservations(request: google.cloud.compute.v1beta.IUpdateReservationsRegionCommitmentRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionCommitments {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCommitments|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] CommitmentAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.CommitmentAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCommitments|get}.
                     * @param error Error, if any
                     * @param [response] Commitment
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Commitment) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCommitments|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCommitments|list}.
                     * @param error Error, if any
                     * @param [response] CommitmentList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.CommitmentList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCommitments|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCommitments|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCommitments|updateReservations}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateReservationsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionCompositeHealthChecks */
                class RegionCompositeHealthChecks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionCompositeHealthChecks 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 RegionCompositeHealthChecks 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): RegionCompositeHealthChecks;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionCompositeHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CompositeHealthCheckAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionCompositeHealthChecksRequest, callback: google.cloud.compute.v1beta.RegionCompositeHealthChecks.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionCompositeHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionCompositeHealthChecksRequest): Promise<google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionCompositeHealthChecks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CompositeHealthCheck
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionCompositeHealthChecks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1beta.CompositeHealthCheck>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionCompositeHealthChecks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionCompositeHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CompositeHealthCheckList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionCompositeHealthChecksRequest, callback: google.cloud.compute.v1beta.RegionCompositeHealthChecks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionCompositeHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionCompositeHealthChecksRequest): Promise<google.cloud.compute.v1beta.CompositeHealthCheckList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionCompositeHealthChecks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionCompositeHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionCompositeHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionCompositeHealthChecks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionCompositeHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionCompositeHealthCheckRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionCompositeHealthChecks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCompositeHealthChecks|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] CompositeHealthCheckAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.CompositeHealthCheckAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCompositeHealthChecks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCompositeHealthChecks|get}.
                     * @param error Error, if any
                     * @param [response] CompositeHealthCheck
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.CompositeHealthCheck) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCompositeHealthChecks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCompositeHealthChecks|list}.
                     * @param error Error, if any
                     * @param [response] CompositeHealthCheckList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.CompositeHealthCheckList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCompositeHealthChecks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionCompositeHealthChecks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionDiskSettings */
                class RegionDiskSettings extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionDiskSettings 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 RegionDiskSettings 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): RegionDiskSettings;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskSettings
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionDiskSettingRequest, callback: google.cloud.compute.v1beta.RegionDiskSettings.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskSettingRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionDiskSettingRequest): Promise<google.cloud.compute.v1beta.DiskSettings>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionDiskSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionDiskSettingRequest, callback: google.cloud.compute.v1beta.RegionDiskSettings.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionDiskSettingRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionDiskSettingRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionDiskSettings {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDiskSettings|get}.
                     * @param error Error, if any
                     * @param [response] DiskSettings
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskSettings) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDiskSettings|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionDiskTypes */
                class RegionDiskTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionDiskTypes 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 RegionDiskTypes 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): RegionDiskTypes;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskType
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionDiskTypeRequest, callback: google.cloud.compute.v1beta.RegionDiskTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionDiskTypeRequest): Promise<google.cloud.compute.v1beta.DiskType>;

                    /**
                     * Calls List.
                     * @param request ListRegionDiskTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionDiskTypeList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionDiskTypesRequest, callback: google.cloud.compute.v1beta.RegionDiskTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionDiskTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionDiskTypesRequest): Promise<google.cloud.compute.v1beta.RegionDiskTypeList>;
                }

                namespace RegionDiskTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDiskTypes|get}.
                     * @param error Error, if any
                     * @param [response] DiskType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDiskTypes|list}.
                     * @param error Error, if any
                     * @param [response] RegionDiskTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionDiskTypeList) => void;
                }

                /** Represents a RegionDisks */
                class RegionDisks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionDisks 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 RegionDisks 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): RegionDisks;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1beta.IAddResourcePoliciesRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.AddResourcePoliciesCallback): void;

                    /**
                     * Calls AddResourcePolicies.
                     * @param request AddResourcePoliciesRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public addResourcePolicies(request: google.cloud.compute.v1beta.IAddResourcePoliciesRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkInsert(request: google.cloud.compute.v1beta.IBulkInsertRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.BulkInsertCallback): void;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public bulkInsert(request: google.cloud.compute.v1beta.IBulkInsertRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls CreateSnapshot.
                     * @param request CreateSnapshotRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createSnapshot(request: google.cloud.compute.v1beta.ICreateSnapshotRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.CreateSnapshotCallback): void;

                    /**
                     * Calls CreateSnapshot.
                     * @param request CreateSnapshotRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public createSnapshot(request: google.cloud.compute.v1beta.ICreateSnapshotRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Disk
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionDiskRequest): Promise<google.cloud.compute.v1beta.Disk>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionDiskRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionDisksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiskList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionDisksRequest, callback: google.cloud.compute.v1beta.RegionDisks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionDisksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionDisksRequest): Promise<google.cloud.compute.v1beta.DiskList>;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1beta.IRemoveResourcePoliciesRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.RemoveResourcePoliciesCallback): void;

                    /**
                     * Calls RemoveResourcePolicies.
                     * @param request RemoveResourcePoliciesRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public removeResourcePolicies(request: google.cloud.compute.v1beta.IRemoveResourcePoliciesRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionDiskRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StartAsyncReplication.
                     * @param request StartAsyncReplicationRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startAsyncReplication(request: google.cloud.compute.v1beta.IStartAsyncReplicationRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.StartAsyncReplicationCallback): void;

                    /**
                     * Calls StartAsyncReplication.
                     * @param request StartAsyncReplicationRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public startAsyncReplication(request: google.cloud.compute.v1beta.IStartAsyncReplicationRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StopAsyncReplication.
                     * @param request StopAsyncReplicationRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopAsyncReplication(request: google.cloud.compute.v1beta.IStopAsyncReplicationRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.StopAsyncReplicationCallback): void;

                    /**
                     * Calls StopAsyncReplication.
                     * @param request StopAsyncReplicationRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public stopAsyncReplication(request: google.cloud.compute.v1beta.IStopAsyncReplicationRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StopGroupAsyncReplication.
                     * @param request StopGroupAsyncReplicationRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopGroupAsyncReplication(request: google.cloud.compute.v1beta.IStopGroupAsyncReplicationRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.StopGroupAsyncReplicationCallback): void;

                    /**
                     * Calls StopGroupAsyncReplication.
                     * @param request StopGroupAsyncReplicationRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public stopGroupAsyncReplication(request: google.cloud.compute.v1beta.IStopGroupAsyncReplicationRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionDiskRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionDiskRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionDiskRequest, callback: google.cloud.compute.v1beta.RegionDisks.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionDiskRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionDiskRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionDisks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|addResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|bulkInsert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkInsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|createSnapshot}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateSnapshotCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|get}.
                     * @param error Error, if any
                     * @param [response] Disk
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Disk) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|list}.
                     * @param error Error, if any
                     * @param [response] DiskList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DiskList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|removeResourcePolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveResourcePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|startAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|stopAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|stopGroupAsyncReplication}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopGroupAsyncReplicationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionDisks|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionHealthAggregationPolicies */
                class RegionHealthAggregationPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionHealthAggregationPolicies 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 RegionHealthAggregationPolicies 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): RegionHealthAggregationPolicies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthAggregationPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthAggregationPolicyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionHealthAggregationPoliciesRequest, callback: google.cloud.compute.v1beta.RegionHealthAggregationPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthAggregationPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionHealthAggregationPoliciesRequest): Promise<google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1beta.RegionHealthAggregationPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthAggregationPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1beta.RegionHealthAggregationPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1beta.HealthAggregationPolicy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1beta.RegionHealthAggregationPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthAggregationPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthAggregationPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionHealthAggregationPoliciesRequest, callback: google.cloud.compute.v1beta.RegionHealthAggregationPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthAggregationPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionHealthAggregationPoliciesRequest): Promise<google.cloud.compute.v1beta.HealthAggregationPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1beta.RegionHealthAggregationPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthAggregationPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthAggregationPolicyRequest, callback: google.cloud.compute.v1beta.RegionHealthAggregationPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthAggregationPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthAggregationPolicyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionHealthAggregationPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthAggregationPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] HealthAggregationPolicyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthAggregationPolicyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthAggregationPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthAggregationPolicies|get}.
                     * @param error Error, if any
                     * @param [response] HealthAggregationPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthAggregationPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthAggregationPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthAggregationPolicies|list}.
                     * @param error Error, if any
                     * @param [response] HealthAggregationPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthAggregationPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthAggregationPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthAggregationPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionHealthCheckServices */
                class RegionHealthCheckServices extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionHealthCheckServices 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 RegionHealthCheckServices 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): RegionHealthCheckServices;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthCheckServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckServiceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionHealthCheckServicesRequest, callback: google.cloud.compute.v1beta.RegionHealthCheckServices.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthCheckServicesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionHealthCheckServicesRequest): Promise<google.cloud.compute.v1beta.HealthCheckServiceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1beta.RegionHealthCheckServices.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckService
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1beta.RegionHealthCheckServices.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1beta.HealthCheckService>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1beta.RegionHealthCheckServices.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthCheckServicesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckServicesList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionHealthCheckServicesRequest, callback: google.cloud.compute.v1beta.RegionHealthCheckServices.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthCheckServicesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionHealthCheckServicesRequest): Promise<google.cloud.compute.v1beta.HealthCheckServicesList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1beta.RegionHealthCheckServices.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthCheckServiceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckServiceRequest, callback: google.cloud.compute.v1beta.RegionHealthCheckServices.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthCheckServiceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckServiceRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionHealthCheckServices {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthCheckServices|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] HealthCheckServiceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthCheckServiceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthCheckServices|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthCheckServices|get}.
                     * @param error Error, if any
                     * @param [response] HealthCheckService
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthCheckService) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthCheckServices|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthCheckServices|list}.
                     * @param error Error, if any
                     * @param [response] HealthCheckServicesList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthCheckServicesList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthCheckServices|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthCheckServices|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionHealthChecks */
                class RegionHealthChecks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionHealthChecks 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 RegionHealthChecks 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): RegionHealthChecks;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionHealthChecks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheck
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionHealthChecks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionHealthCheckRequest): Promise<google.cloud.compute.v1beta.HealthCheck>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionHealthChecks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthChecksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthCheckList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionHealthChecksRequest, callback: google.cloud.compute.v1beta.RegionHealthChecks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthChecksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionHealthChecksRequest): Promise<google.cloud.compute.v1beta.HealthCheckList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionHealthChecks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionHealthChecks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthCheckRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionHealthCheckRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionHealthCheckRequest, callback: google.cloud.compute.v1beta.RegionHealthChecks.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionHealthCheckRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionHealthCheckRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionHealthChecks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthChecks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthChecks|get}.
                     * @param error Error, if any
                     * @param [response] HealthCheck
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthCheck) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthChecks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthChecks|list}.
                     * @param error Error, if any
                     * @param [response] HealthCheckList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthCheckList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthChecks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthChecks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthChecks|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionHealthSources */
                class RegionHealthSources extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionHealthSources 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 RegionHealthSources 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): RegionHealthSources;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthSourcesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthSourceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionHealthSourcesRequest, callback: google.cloud.compute.v1beta.RegionHealthSources.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionHealthSourcesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionHealthSourcesRequest): Promise<google.cloud.compute.v1beta.HealthSourceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionHealthSourceRequest, callback: google.cloud.compute.v1beta.RegionHealthSources.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionHealthSourceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthSource
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionHealthSourceRequest, callback: google.cloud.compute.v1beta.RegionHealthSources.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionHealthSourceRequest): Promise<google.cloud.compute.v1beta.HealthSource>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionHealthSourceRequest, callback: google.cloud.compute.v1beta.RegionHealthSources.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionHealthSourceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthSourcesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HealthSourceList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionHealthSourcesRequest, callback: google.cloud.compute.v1beta.RegionHealthSources.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionHealthSourcesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionHealthSourcesRequest): Promise<google.cloud.compute.v1beta.HealthSourceList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionHealthSourceRequest, callback: google.cloud.compute.v1beta.RegionHealthSources.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionHealthSourceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthSourceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthSourceRequest, callback: google.cloud.compute.v1beta.RegionHealthSources.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionHealthSourceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionHealthSourceRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionHealthSources {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthSources|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] HealthSourceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthSourceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthSources|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthSources|get}.
                     * @param error Error, if any
                     * @param [response] HealthSource
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthSource) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthSources|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthSources|list}.
                     * @param error Error, if any
                     * @param [response] HealthSourceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.HealthSourceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthSources|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionHealthSources|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionInstanceGroupManagerResizeRequests */
                class RegionInstanceGroupManagerResizeRequests extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstanceGroupManagerResizeRequests 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 RegionInstanceGroupManagerResizeRequests 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): RegionInstanceGroupManagerResizeRequests;

                    /**
                     * Calls Cancel.
                     * @param request CancelRegionInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cancel(request: google.cloud.compute.v1beta.ICancelRegionInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests.CancelCallback): void;

                    /**
                     * Calls Cancel.
                     * @param request CancelRegionInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public cancel(request: google.cloud.compute.v1beta.ICancelRegionInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManagerResizeRequest
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceGroupManagerResizeRequestRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerResizeRequestRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceGroupManagerResizeRequestRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerResizeRequestRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupManagerResizeRequestsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagerResizeRequestsListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstanceGroupManagerResizeRequestsRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupManagerResizeRequestsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstanceGroupManagerResizeRequestsRequest): Promise<google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse>;
                }

                namespace RegionInstanceGroupManagerResizeRequests {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests|cancel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CancelCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManagerResizeRequest
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManagerResizeRequest) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequests|list}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagerResizeRequestsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionInstanceGroupManagerResizeRequestsListResponse) => void;
                }

                /** Represents a RegionInstanceGroupManagers */
                class RegionInstanceGroupManagers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstanceGroupManagers 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 RegionInstanceGroupManagers 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): RegionInstanceGroupManagers;

                    /**
                     * Calls AbandonInstances.
                     * @param request AbandonInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public abandonInstances(request: google.cloud.compute.v1beta.IAbandonInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.AbandonInstancesCallback): void;

                    /**
                     * Calls AbandonInstances.
                     * @param request AbandonInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public abandonInstances(request: google.cloud.compute.v1beta.IAbandonInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AdoptInstances.
                     * @param request AdoptInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public adoptInstances(request: google.cloud.compute.v1beta.IAdoptInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.AdoptInstancesCallback): void;

                    /**
                     * Calls AdoptInstances.
                     * @param request AdoptInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public adoptInstances(request: google.cloud.compute.v1beta.IAdoptInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ApplyUpdatesToInstances.
                     * @param request ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public applyUpdatesToInstances(request: google.cloud.compute.v1beta.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.ApplyUpdatesToInstancesCallback): void;

                    /**
                     * Calls ApplyUpdatesToInstances.
                     * @param request ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public applyUpdatesToInstances(request: google.cloud.compute.v1beta.IApplyUpdatesToInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls CreateInstances.
                     * @param request CreateInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createInstances(request: google.cloud.compute.v1beta.ICreateInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.CreateInstancesCallback): void;

                    /**
                     * Calls CreateInstances.
                     * @param request CreateInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public createInstances(request: google.cloud.compute.v1beta.ICreateInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteInstances.
                     * @param request DeleteInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteInstances(request: google.cloud.compute.v1beta.IDeleteInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.DeleteInstancesCallback): void;

                    /**
                     * Calls DeleteInstances.
                     * @param request DeleteInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public deleteInstances(request: google.cloud.compute.v1beta.IDeleteInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeletePerInstanceConfigs.
                     * @param request DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deletePerInstanceConfigs(request: google.cloud.compute.v1beta.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.DeletePerInstanceConfigsCallback): void;

                    /**
                     * Calls DeletePerInstanceConfigs.
                     * @param request DeletePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public deletePerInstanceConfigs(request: google.cloud.compute.v1beta.IDeletePerInstanceConfigsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroupManager
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.InstanceGroupManager>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagerList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.RegionInstanceGroupManagerList>;

                    /**
                     * Calls ListErrors.
                     * @param request ListErrorsRegionInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagersListErrorsResponse
                     */
                    public listErrors(request: google.cloud.compute.v1beta.IListErrorsRegionInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.ListErrorsCallback): void;

                    /**
                     * Calls ListErrors.
                     * @param request ListErrorsRegionInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listErrors(request: google.cloud.compute.v1beta.IListErrorsRegionInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse>;

                    /**
                     * Calls ListManagedInstances.
                     * @param request ListManagedInstancesRegionInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagersListInstancesResponse
                     */
                    public listManagedInstances(request: google.cloud.compute.v1beta.IListManagedInstancesRegionInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.ListManagedInstancesCallback): void;

                    /**
                     * Calls ListManagedInstances.
                     * @param request ListManagedInstancesRegionInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listManagedInstances(request: google.cloud.compute.v1beta.IListManagedInstancesRegionInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse>;

                    /**
                     * Calls ListPerInstanceConfigs.
                     * @param request ListPerInstanceConfigsRegionInstanceGroupManagersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupManagersListInstanceConfigsResp
                     */
                    public listPerInstanceConfigs(request: google.cloud.compute.v1beta.IListPerInstanceConfigsRegionInstanceGroupManagersRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.ListPerInstanceConfigsCallback): void;

                    /**
                     * Calls ListPerInstanceConfigs.
                     * @param request ListPerInstanceConfigsRegionInstanceGroupManagersRequest message or plain object
                     * @returns Promise
                     */
                    public listPerInstanceConfigs(request: google.cloud.compute.v1beta.IListPerInstanceConfigsRegionInstanceGroupManagersRequest): Promise<google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchPerInstanceConfigs.
                     * @param request PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchPerInstanceConfigs(request: google.cloud.compute.v1beta.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.PatchPerInstanceConfigsCallback): void;

                    /**
                     * Calls PatchPerInstanceConfigs.
                     * @param request PatchPerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public patchPerInstanceConfigs(request: google.cloud.compute.v1beta.IPatchPerInstanceConfigsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RecreateInstances.
                     * @param request RecreateInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public recreateInstances(request: google.cloud.compute.v1beta.IRecreateInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.RecreateInstancesCallback): void;

                    /**
                     * Calls RecreateInstances.
                     * @param request RecreateInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public recreateInstances(request: google.cloud.compute.v1beta.IRecreateInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ResizeAdvanced.
                     * @param request ResizeAdvancedRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resizeAdvanced(request: google.cloud.compute.v1beta.IResizeAdvancedRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.ResizeAdvancedCallback): void;

                    /**
                     * Calls ResizeAdvanced.
                     * @param request ResizeAdvancedRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resizeAdvanced(request: google.cloud.compute.v1beta.IResizeAdvancedRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ResumeInstances.
                     * @param request ResumeInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resumeInstances(request: google.cloud.compute.v1beta.IResumeInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.ResumeInstancesCallback): void;

                    /**
                     * Calls ResumeInstances.
                     * @param request ResumeInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public resumeInstances(request: google.cloud.compute.v1beta.IResumeInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetAutoHealingPolicies.
                     * @param request SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setAutoHealingPolicies(request: google.cloud.compute.v1beta.ISetAutoHealingPoliciesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.SetAutoHealingPoliciesCallback): void;

                    /**
                     * Calls SetAutoHealingPolicies.
                     * @param request SetAutoHealingPoliciesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setAutoHealingPolicies(request: google.cloud.compute.v1beta.ISetAutoHealingPoliciesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetInstanceTemplate.
                     * @param request SetInstanceTemplateRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setInstanceTemplate(request: google.cloud.compute.v1beta.ISetInstanceTemplateRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.SetInstanceTemplateCallback): void;

                    /**
                     * Calls SetInstanceTemplate.
                     * @param request SetInstanceTemplateRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setInstanceTemplate(request: google.cloud.compute.v1beta.ISetInstanceTemplateRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetTargetPools.
                     * @param request SetTargetPoolsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setTargetPools(request: google.cloud.compute.v1beta.ISetTargetPoolsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.SetTargetPoolsCallback): void;

                    /**
                     * Calls SetTargetPools.
                     * @param request SetTargetPoolsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public setTargetPools(request: google.cloud.compute.v1beta.ISetTargetPoolsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StartInstances.
                     * @param request StartInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public startInstances(request: google.cloud.compute.v1beta.IStartInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.StartInstancesCallback): void;

                    /**
                     * Calls StartInstances.
                     * @param request StartInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public startInstances(request: google.cloud.compute.v1beta.IStartInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls StopInstances.
                     * @param request StopInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public stopInstances(request: google.cloud.compute.v1beta.IStopInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.StopInstancesCallback): void;

                    /**
                     * Calls StopInstances.
                     * @param request StopInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public stopInstances(request: google.cloud.compute.v1beta.IStopInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SuspendInstances.
                     * @param request SuspendInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public suspendInstances(request: google.cloud.compute.v1beta.ISuspendInstancesRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.SuspendInstancesCallback): void;

                    /**
                     * Calls SuspendInstances.
                     * @param request SuspendInstancesRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public suspendInstances(request: google.cloud.compute.v1beta.ISuspendInstancesRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdatePerInstanceConfigs.
                     * @param request UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updatePerInstanceConfigs(request: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroupManagers.UpdatePerInstanceConfigsCallback): void;

                    /**
                     * Calls UpdatePerInstanceConfigs.
                     * @param request UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest message or plain object
                     * @returns Promise
                     */
                    public updatePerInstanceConfigs(request: google.cloud.compute.v1beta.IUpdatePerInstanceConfigsRegionInstanceGroupManagerRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionInstanceGroupManagers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|abandonInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AbandonInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|adoptInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AdoptInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|applyUpdatesToInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ApplyUpdatesToInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|createInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|deleteInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|deletePerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeletePerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroupManager
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroupManager) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|list}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagerList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionInstanceGroupManagerList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|listErrors}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagersListErrorsResponse
                     */
                    type ListErrorsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionInstanceGroupManagersListErrorsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|listManagedInstances}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagersListInstancesResponse
                     */
                    type ListManagedInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstancesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|listPerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupManagersListInstanceConfigsResp
                     */
                    type ListPerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionInstanceGroupManagersListInstanceConfigsResp) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|patchPerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchPerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|recreateInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RecreateInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|resizeAdvanced}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeAdvancedCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|resumeInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResumeInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|setAutoHealingPolicies}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetAutoHealingPoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|setInstanceTemplate}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetInstanceTemplateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|setTargetPools}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetTargetPoolsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|startInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StartInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|stopInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type StopInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|suspendInstances}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SuspendInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroupManagers|updatePerInstanceConfigs}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdatePerInstanceConfigsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionInstanceGroups */
                class RegionInstanceGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstanceGroups 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 RegionInstanceGroups 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): RegionInstanceGroups;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstanceGroupRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstanceGroupRequest): Promise<google.cloud.compute.v1beta.InstanceGroup>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstanceGroupsRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstanceGroupsRequest): Promise<google.cloud.compute.v1beta.RegionInstanceGroupList>;

                    /**
                     * Calls ListInstances.
                     * @param request ListInstancesRegionInstanceGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionInstanceGroupsListInstances
                     */
                    public listInstances(request: google.cloud.compute.v1beta.IListInstancesRegionInstanceGroupsRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroups.ListInstancesCallback): void;

                    /**
                     * Calls ListInstances.
                     * @param request ListInstancesRegionInstanceGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listInstances(request: google.cloud.compute.v1beta.IListInstancesRegionInstanceGroupsRequest): Promise<google.cloud.compute.v1beta.RegionInstanceGroupsListInstances>;

                    /**
                     * Calls SetNamedPorts.
                     * @param request SetNamedPortsRegionInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setNamedPorts(request: google.cloud.compute.v1beta.ISetNamedPortsRegionInstanceGroupRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroups.SetNamedPortsCallback): void;

                    /**
                     * Calls SetNamedPorts.
                     * @param request SetNamedPortsRegionInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setNamedPorts(request: google.cloud.compute.v1beta.ISetNamedPortsRegionInstanceGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstanceGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupRequest, callback: google.cloud.compute.v1beta.RegionInstanceGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstanceGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstanceGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionInstanceGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroups|get}.
                     * @param error Error, if any
                     * @param [response] InstanceGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroups|list}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionInstanceGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroups|listInstances}.
                     * @param error Error, if any
                     * @param [response] RegionInstanceGroupsListInstances
                     */
                    type ListInstancesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionInstanceGroupsListInstances) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroups|setNamedPorts}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetNamedPortsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionInstanceTemplates */
                class RegionInstanceTemplates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstanceTemplates 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 RegionInstanceTemplates 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): RegionInstanceTemplates;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstanceTemplateRequest, callback: google.cloud.compute.v1beta.RegionInstanceTemplates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplate
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstanceTemplateRequest, callback: google.cloud.compute.v1beta.RegionInstanceTemplates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.InstanceTemplate>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstanceTemplateRequest, callback: google.cloud.compute.v1beta.RegionInstanceTemplates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstanceTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstanceTemplateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstanceTemplateList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstanceTemplatesRequest, callback: google.cloud.compute.v1beta.RegionInstanceTemplates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstanceTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstanceTemplatesRequest): Promise<google.cloud.compute.v1beta.InstanceTemplateList>;
                }

                namespace RegionInstanceTemplates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceTemplates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceTemplates|get}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceTemplate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceTemplates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstanceTemplates|list}.
                     * @param error Error, if any
                     * @param [response] InstanceTemplateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstanceTemplateList) => void;
                }

                /** Represents a RegionInstances */
                class RegionInstances extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstances 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 RegionInstances 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): RegionInstances;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertRegionInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public bulkInsert(request: google.cloud.compute.v1beta.IBulkInsertRegionInstanceRequest, callback: google.cloud.compute.v1beta.RegionInstances.BulkInsertCallback): void;

                    /**
                     * Calls BulkInsert.
                     * @param request BulkInsertRegionInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public bulkInsert(request: google.cloud.compute.v1beta.IBulkInsertRegionInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionInstances {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstances|bulkInsert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type BulkInsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionInstantSnapshotGroups */
                class RegionInstantSnapshotGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstantSnapshotGroups 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 RegionInstantSnapshotGroups 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): RegionInstantSnapshotGroups;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshotGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshotGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshotGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.InstantSnapshotGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshotGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshotGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstantSnapshotGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListInstantSnapshotGroups
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstantSnapshotGroupsRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshotGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstantSnapshotGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstantSnapshotGroupsRequest): Promise<google.cloud.compute.v1beta.ListInstantSnapshotGroups>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshotGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstantSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotGroupRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshotGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstantSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionInstantSnapshotGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshotGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshotGroups|get}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshotGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstantSnapshotGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshotGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshotGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshotGroups|list}.
                     * @param error Error, if any
                     * @param [response] ListInstantSnapshotGroups
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ListInstantSnapshotGroups) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshotGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshotGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionInstantSnapshots */
                class RegionInstantSnapshots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionInstantSnapshots 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 RegionInstantSnapshots 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): RegionInstantSnapshots;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshots.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshot
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstantSnapshotRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.InstantSnapshot>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshots.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshots.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionInstantSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InstantSnapshotList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstantSnapshotsRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionInstantSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionInstantSnapshotsRequest): Promise<google.cloud.compute.v1beta.InstantSnapshotList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshots.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsRegionInstantSnapshotRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshots.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstantSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotRequest, callback: google.cloud.compute.v1beta.RegionInstantSnapshots.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionInstantSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionInstantSnapshotRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionInstantSnapshots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshots|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshots|get}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshot
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstantSnapshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshots|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshots|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshots|list}.
                     * @param error Error, if any
                     * @param [response] InstantSnapshotList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.InstantSnapshotList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshots|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshots|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionInstantSnapshots|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionMultiMigMembers */
                class RegionMultiMigMembers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionMultiMigMembers 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 RegionMultiMigMembers 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): RegionMultiMigMembers;

                    /**
                     * Calls Get.
                     * @param request GetRegionMultiMigMemberRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MultiMigMember
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionMultiMigMemberRequest, callback: google.cloud.compute.v1beta.RegionMultiMigMembers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionMultiMigMemberRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionMultiMigMemberRequest): Promise<google.cloud.compute.v1beta.MultiMigMember>;

                    /**
                     * Calls List.
                     * @param request ListRegionMultiMigMembersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MultiMigMemberList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionMultiMigMembersRequest, callback: google.cloud.compute.v1beta.RegionMultiMigMembers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionMultiMigMembersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionMultiMigMembersRequest): Promise<google.cloud.compute.v1beta.MultiMigMemberList>;
                }

                namespace RegionMultiMigMembers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionMultiMigMembers|get}.
                     * @param error Error, if any
                     * @param [response] MultiMigMember
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MultiMigMember) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionMultiMigMembers|list}.
                     * @param error Error, if any
                     * @param [response] MultiMigMemberList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MultiMigMemberList) => void;
                }

                /** Represents a RegionMultiMigs */
                class RegionMultiMigs extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionMultiMigs 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 RegionMultiMigs 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): RegionMultiMigs;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionMultiMigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionMultiMigRequest, callback: google.cloud.compute.v1beta.RegionMultiMigs.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionMultiMigRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionMultiMigRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionMultiMigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MultiMig
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionMultiMigRequest, callback: google.cloud.compute.v1beta.RegionMultiMigs.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionMultiMigRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionMultiMigRequest): Promise<google.cloud.compute.v1beta.MultiMig>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionMultiMigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionMultiMigRequest, callback: google.cloud.compute.v1beta.RegionMultiMigs.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionMultiMigRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionMultiMigRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionMultiMigsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and MultiMigsList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionMultiMigsRequest, callback: google.cloud.compute.v1beta.RegionMultiMigs.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionMultiMigsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionMultiMigsRequest): Promise<google.cloud.compute.v1beta.MultiMigsList>;
                }

                namespace RegionMultiMigs {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionMultiMigs|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionMultiMigs|get}.
                     * @param error Error, if any
                     * @param [response] MultiMig
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MultiMig) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionMultiMigs|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionMultiMigs|list}.
                     * @param error Error, if any
                     * @param [response] MultiMigsList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.MultiMigsList) => void;
                }

                /** Represents a RegionNetworkEndpointGroups */
                class RegionNetworkEndpointGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionNetworkEndpointGroups 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 RegionNetworkEndpointGroups 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): RegionNetworkEndpointGroups;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1beta.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.RegionNetworkEndpointGroups.AttachNetworkEndpointsCallback): void;

                    /**
                     * Calls AttachNetworkEndpoints.
                     * @param request AttachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public attachNetworkEndpoints(request: google.cloud.compute.v1beta.IAttachNetworkEndpointsRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.RegionNetworkEndpointGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1beta.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.RegionNetworkEndpointGroups.DetachNetworkEndpointsCallback): void;

                    /**
                     * Calls DetachNetworkEndpoints.
                     * @param request DetachNetworkEndpointsRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public detachNetworkEndpoints(request: google.cloud.compute.v1beta.IDetachNetworkEndpointsRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.RegionNetworkEndpointGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkEndpointGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionNetworkEndpointGroupRequest, callback: google.cloud.compute.v1beta.RegionNetworkEndpointGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkEndpointGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionNetworkEndpointGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1beta.RegionNetworkEndpointGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroupList>;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkEndpointGroupsListNetworkEndpoints
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1beta.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest, callback: google.cloud.compute.v1beta.RegionNetworkEndpointGroups.ListNetworkEndpointsCallback): void;

                    /**
                     * Calls ListNetworkEndpoints.
                     * @param request ListNetworkEndpointsRegionNetworkEndpointGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public listNetworkEndpoints(request: google.cloud.compute.v1beta.IListNetworkEndpointsRegionNetworkEndpointGroupsRequest): Promise<google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints>;
                }

                namespace RegionNetworkEndpointGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroups|attachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AttachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroups|detachNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DetachNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroups|get}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroups|list}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkEndpointGroups|listNetworkEndpoints}.
                     * @param error Error, if any
                     * @param [response] NetworkEndpointGroupsListNetworkEndpoints
                     */
                    type ListNetworkEndpointsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkEndpointGroupsListNetworkEndpoints) => void;
                }

                /** Represents a RegionNetworkFirewallPolicies */
                class RegionNetworkFirewallPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionNetworkFirewallPolicies 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 RegionNetworkFirewallPolicies 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): RegionNetworkFirewallPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cloneRules(request: google.cloud.compute.v1beta.ICloneRulesRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.CloneRulesCallback): void;

                    /**
                     * Calls CloneRules.
                     * @param request CloneRulesRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public cloneRules(request: google.cloud.compute.v1beta.ICloneRulesRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyAssociation>;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1beta.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.GetEffectiveFirewallsCallback): void;

                    /**
                     * Calls GetEffectiveFirewalls.
                     * @param request GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getEffectiveFirewalls(request: google.cloud.compute.v1beta.IGetEffectiveFirewallsRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkFirewallPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FirewallPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionNetworkFirewallPoliciesRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkFirewallPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionNetworkFirewallPoliciesRequest): Promise<google.cloud.compute.v1beta.FirewallPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchAssociation.
                     * @param request PatchAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchAssociation(request: google.cloud.compute.v1beta.IPatchAssociationRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.PatchAssociationCallback): void;

                    /**
                     * Calls PatchAssociation.
                     * @param request PatchAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchAssociation(request: google.cloud.compute.v1beta.IPatchAssociationRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionNetworkFirewallPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionNetworkFirewallPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkFirewallPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionNetworkFirewallPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionNetworkFirewallPolicyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionNetworkFirewallPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|cloneRules}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CloneRulesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|get}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|getEffectiveFirewalls}.
                     * @param error Error, if any
                     * @param [response] RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
                     */
                    type GetEffectiveFirewallsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|list}.
                     * @param error Error, if any
                     * @param [response] FirewallPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.FirewallPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|patchAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkFirewallPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionNetworkPolicies */
                class RegionNetworkPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionNetworkPolicies 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 RegionNetworkPolicies 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): RegionNetworkPolicies;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.AddAssociationCallback): void;

                    /**
                     * Calls AddAssociation.
                     * @param request AddAssociationRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addAssociation(request: google.cloud.compute.v1beta.IAddAssociationRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddTrafficClassificationRule.
                     * @param request AddTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addTrafficClassificationRule(request: google.cloud.compute.v1beta.IAddTrafficClassificationRuleRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.AddTrafficClassificationRuleCallback): void;

                    /**
                     * Calls AddTrafficClassificationRule.
                     * @param request AddTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addTrafficClassificationRule(request: google.cloud.compute.v1beta.IAddTrafficClassificationRuleRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionNetworkPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkPolicyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionNetworkPoliciesRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionNetworkPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionNetworkPoliciesRequest): Promise<google.cloud.compute.v1beta.NetworkPolicyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.NetworkPolicy>;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkPolicyAssociation
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.GetAssociationCallback): void;

                    /**
                     * Calls GetAssociation.
                     * @param request GetAssociationRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getAssociation(request: google.cloud.compute.v1beta.IGetAssociationRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.NetworkPolicyAssociation>;

                    /**
                     * Calls GetTrafficClassificationRule.
                     * @param request GetTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkPolicyTrafficClassificationRule
                     */
                    public getTrafficClassificationRule(request: google.cloud.compute.v1beta.IGetTrafficClassificationRuleRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.GetTrafficClassificationRuleCallback): void;

                    /**
                     * Calls GetTrafficClassificationRule.
                     * @param request GetTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getTrafficClassificationRule(request: google.cloud.compute.v1beta.IGetTrafficClassificationRuleRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NetworkPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionNetworkPoliciesRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionNetworkPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionNetworkPoliciesRequest): Promise<google.cloud.compute.v1beta.NetworkPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchTrafficClassificationRule.
                     * @param request PatchTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchTrafficClassificationRule(request: google.cloud.compute.v1beta.IPatchTrafficClassificationRuleRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.PatchTrafficClassificationRuleCallback): void;

                    /**
                     * Calls PatchTrafficClassificationRule.
                     * @param request PatchTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchTrafficClassificationRule(request: google.cloud.compute.v1beta.IPatchTrafficClassificationRuleRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.RemoveAssociationCallback): void;

                    /**
                     * Calls RemoveAssociation.
                     * @param request RemoveAssociationRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeAssociation(request: google.cloud.compute.v1beta.IRemoveAssociationRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveTrafficClassificationRule.
                     * @param request RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeTrafficClassificationRule(request: google.cloud.compute.v1beta.IRemoveTrafficClassificationRuleRegionNetworkPolicyRequest, callback: google.cloud.compute.v1beta.RegionNetworkPolicies.RemoveTrafficClassificationRuleCallback): void;

                    /**
                     * Calls RemoveTrafficClassificationRule.
                     * @param request RemoveTrafficClassificationRuleRegionNetworkPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeTrafficClassificationRule(request: google.cloud.compute.v1beta.IRemoveTrafficClassificationRuleRegionNetworkPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionNetworkPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|addAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|addTrafficClassificationRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddTrafficClassificationRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NetworkPolicyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkPolicyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|get}.
                     * @param error Error, if any
                     * @param [response] NetworkPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|getAssociation}.
                     * @param error Error, if any
                     * @param [response] NetworkPolicyAssociation
                     */
                    type GetAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkPolicyAssociation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|getTrafficClassificationRule}.
                     * @param error Error, if any
                     * @param [response] NetworkPolicyTrafficClassificationRule
                     */
                    type GetTrafficClassificationRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkPolicyTrafficClassificationRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|list}.
                     * @param error Error, if any
                     * @param [response] NetworkPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NetworkPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|patchTrafficClassificationRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchTrafficClassificationRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|removeAssociation}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveAssociationCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNetworkPolicies|removeTrafficClassificationRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveTrafficClassificationRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionNotificationEndpoints */
                class RegionNotificationEndpoints extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionNotificationEndpoints 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 RegionNotificationEndpoints 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): RegionNotificationEndpoints;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionNotificationEndpointsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NotificationEndpointAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionNotificationEndpointsRequest, callback: google.cloud.compute.v1beta.RegionNotificationEndpoints.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRegionNotificationEndpointsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRegionNotificationEndpointsRequest): Promise<google.cloud.compute.v1beta.NotificationEndpointAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNotificationEndpointRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionNotificationEndpointRequest, callback: google.cloud.compute.v1beta.RegionNotificationEndpoints.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionNotificationEndpointRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionNotificationEndpointRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionNotificationEndpointRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NotificationEndpoint
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionNotificationEndpointRequest, callback: google.cloud.compute.v1beta.RegionNotificationEndpoints.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionNotificationEndpointRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionNotificationEndpointRequest): Promise<google.cloud.compute.v1beta.NotificationEndpoint>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNotificationEndpointRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionNotificationEndpointRequest, callback: google.cloud.compute.v1beta.RegionNotificationEndpoints.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionNotificationEndpointRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionNotificationEndpointRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionNotificationEndpointsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NotificationEndpointList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionNotificationEndpointsRequest, callback: google.cloud.compute.v1beta.RegionNotificationEndpoints.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionNotificationEndpointsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionNotificationEndpointsRequest): Promise<google.cloud.compute.v1beta.NotificationEndpointList>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionNotificationEndpointRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionNotificationEndpointRequest, callback: google.cloud.compute.v1beta.RegionNotificationEndpoints.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionNotificationEndpointRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionNotificationEndpointRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionNotificationEndpoints {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNotificationEndpoints|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] NotificationEndpointAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NotificationEndpointAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNotificationEndpoints|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNotificationEndpoints|get}.
                     * @param error Error, if any
                     * @param [response] NotificationEndpoint
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NotificationEndpoint) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNotificationEndpoints|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNotificationEndpoints|list}.
                     * @param error Error, if any
                     * @param [response] NotificationEndpointList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NotificationEndpointList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionNotificationEndpoints|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionOperations */
                class RegionOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionOperations 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 RegionOperations 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): RegionOperations;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeleteRegionOperationResponse
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionOperationRequest, callback: google.cloud.compute.v1beta.RegionOperations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionOperationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionOperationRequest): Promise<google.cloud.compute.v1beta.DeleteRegionOperationResponse>;

                    /**
                     * Calls Get.
                     * @param request GetRegionOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionOperationRequest, callback: google.cloud.compute.v1beta.RegionOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionOperationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionOperationsRequest, callback: google.cloud.compute.v1beta.RegionOperations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionOperationsRequest): Promise<google.cloud.compute.v1beta.OperationList>;

                    /**
                     * Calls Wait.
                     * @param request WaitRegionOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public wait(request: google.cloud.compute.v1beta.IWaitRegionOperationRequest, callback: google.cloud.compute.v1beta.RegionOperations.WaitCallback): void;

                    /**
                     * Calls Wait.
                     * @param request WaitRegionOperationRequest message or plain object
                     * @returns Promise
                     */
                    public wait(request: google.cloud.compute.v1beta.IWaitRegionOperationRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionOperations|delete_}.
                     * @param error Error, if any
                     * @param [response] DeleteRegionOperationResponse
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DeleteRegionOperationResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionOperations|list}.
                     * @param error Error, if any
                     * @param [response] OperationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.OperationList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionOperations|wait}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WaitCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionSecurityPolicies */
                class RegionSecurityPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionSecurityPolicies 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 RegionSecurityPolicies 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): RegionSecurityPolicies;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.SecurityPolicy>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.SecurityPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionSecurityPoliciesRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionSecurityPoliciesRequest): Promise<google.cloud.compute.v1beta.SecurityPolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsRegionSecurityPolicyRequest, callback: google.cloud.compute.v1beta.RegionSecurityPolicies.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsRegionSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionSecurityPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSecurityPolicies|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionSnapshotSettings */
                class RegionSnapshotSettings extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionSnapshotSettings 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 RegionSnapshotSettings 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): RegionSnapshotSettings;

                    /**
                     * Calls Get.
                     * @param request GetRegionSnapshotSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SnapshotSettings
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSnapshotSettingRequest, callback: google.cloud.compute.v1beta.RegionSnapshotSettings.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionSnapshotSettingRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSnapshotSettingRequest): Promise<google.cloud.compute.v1beta.SnapshotSettings>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSnapshotSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionSnapshotSettingRequest, callback: google.cloud.compute.v1beta.RegionSnapshotSettings.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSnapshotSettingRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionSnapshotSettingRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace RegionSnapshotSettings {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshotSettings|get}.
                     * @param error Error, if any
                     * @param [response] SnapshotSettings
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SnapshotSettings) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshotSettings|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a RegionSnapshots */
                class RegionSnapshots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionSnapshots 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 RegionSnapshots 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): RegionSnapshots;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionSnapshotRequest, callback: google.cloud.compute.v1beta.RegionSnapshots.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Snapshot
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSnapshotRequest, callback: google.cloud.compute.v1beta.RegionSnapshots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSnapshotRequest): Promise<google.cloud.compute.v1beta.Snapshot>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionSnapshotRequest, callback: google.cloud.compute.v1beta.RegionSnapshots.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyRegionSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyRegionSnapshotRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionSnapshotRequest, callback: google.cloud.compute.v1beta.RegionSnapshots.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SnapshotList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionSnapshotsRequest, callback: google.cloud.compute.v1beta.RegionSnapshots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionSnapshotsRequest): Promise<google.cloud.compute.v1beta.SnapshotList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionSnapshotRequest, callback: google.cloud.compute.v1beta.RegionSnapshots.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyRegionSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyRegionSnapshotRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsRegionSnapshotRequest, callback: google.cloud.compute.v1beta.RegionSnapshots.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsRegionSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsRegionSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionSnapshotRequest, callback: google.cloud.compute.v1beta.RegionSnapshots.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionSnapshotRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionSnapshots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshots|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshots|get}.
                     * @param error Error, if any
                     * @param [response] Snapshot
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Snapshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshots|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshots|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshots|list}.
                     * @param error Error, if any
                     * @param [response] SnapshotList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SnapshotList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshots|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshots|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSnapshots|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionSslCertificates */
                class RegionSslCertificates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionSslCertificates 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 RegionSslCertificates 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): RegionSslCertificates;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionSslCertificateRequest, callback: google.cloud.compute.v1beta.RegionSslCertificates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionSslCertificateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificate
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSslCertificateRequest, callback: google.cloud.compute.v1beta.RegionSslCertificates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSslCertificateRequest): Promise<google.cloud.compute.v1beta.SslCertificate>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionSslCertificateRequest, callback: google.cloud.compute.v1beta.RegionSslCertificates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionSslCertificateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionSslCertificatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificateList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionSslCertificatesRequest, callback: google.cloud.compute.v1beta.RegionSslCertificates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionSslCertificatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionSslCertificatesRequest): Promise<google.cloud.compute.v1beta.SslCertificateList>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslCertificateRequest, callback: google.cloud.compute.v1beta.RegionSslCertificates.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslCertificateRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionSslCertificates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslCertificates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslCertificates|get}.
                     * @param error Error, if any
                     * @param [response] SslCertificate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslCertificate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslCertificates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslCertificates|list}.
                     * @param error Error, if any
                     * @param [response] SslCertificateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslCertificateList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslCertificates|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionSslPolicies */
                class RegionSslPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionSslPolicies 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 RegionSslPolicies 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): RegionSslPolicies;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionSslPolicyRequest, callback: google.cloud.compute.v1beta.RegionSslPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionSslPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSslPolicyRequest, callback: google.cloud.compute.v1beta.RegionSslPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionSslPolicyRequest): Promise<google.cloud.compute.v1beta.SslPolicy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionSslPolicyRequest, callback: google.cloud.compute.v1beta.RegionSslPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionSslPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionSslPoliciesRequest, callback: google.cloud.compute.v1beta.RegionSslPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionSslPoliciesRequest): Promise<google.cloud.compute.v1beta.SslPoliciesList>;

                    /**
                     * Calls ListAvailableFeatures.
                     * @param request ListAvailableFeaturesRegionSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesListAvailableFeaturesResponse
                     */
                    public listAvailableFeatures(request: google.cloud.compute.v1beta.IListAvailableFeaturesRegionSslPoliciesRequest, callback: google.cloud.compute.v1beta.RegionSslPolicies.ListAvailableFeaturesCallback): void;

                    /**
                     * Calls ListAvailableFeatures.
                     * @param request ListAvailableFeaturesRegionSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public listAvailableFeatures(request: google.cloud.compute.v1beta.IListAvailableFeaturesRegionSslPoliciesRequest): Promise<google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionSslPolicyRequest, callback: google.cloud.compute.v1beta.RegionSslPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionSslPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslPolicyRequest, callback: google.cloud.compute.v1beta.RegionSslPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionSslPolicyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionSslPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SslPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslPoliciesList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslPolicies|listAvailableFeatures}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesListAvailableFeaturesResponse
                     */
                    type ListAvailableFeaturesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionSslPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionTargetHttpProxies */
                class RegionTargetHttpProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionTargetHttpProxies 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 RegionTargetHttpProxies 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): RegionTargetHttpProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.TargetHttpProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetHttpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionTargetHttpProxiesRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetHttpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionTargetHttpProxiesRequest): Promise<google.cloud.compute.v1beta.TargetHttpProxyList>;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUrlMap(request: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpProxies.SetUrlMapCallback): void;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setUrlMap(request: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionTargetHttpProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpProxies|setUrlMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUrlMapCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionTargetHttpsProxies */
                class RegionTargetHttpsProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionTargetHttpsProxies 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 RegionTargetHttpsProxies 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): RegionTargetHttpsProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpsProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpsProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.TargetHttpsProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpsProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetHttpsProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionTargetHttpsProxiesRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpsProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetHttpsProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionTargetHttpsProxiesRequest): Promise<google.cloud.compute.v1beta.TargetHttpsProxyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpsProxies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslCertificates(request: google.cloud.compute.v1beta.ISetSslCertificatesRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpsProxies.SetSslCertificatesCallback): void;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslCertificates(request: google.cloud.compute.v1beta.ISetSslCertificatesRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUrlMap(request: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpsProxies.SetUrlMapCallback): void;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setUrlMap(request: google.cloud.compute.v1beta.ISetUrlMapRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetHttpsProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionTargetHttpsProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpsProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpsProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpsProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpsProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpsProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpsProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpsProxies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpsProxies|setSslCertificates}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslCertificatesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpsProxies|setUrlMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUrlMapCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetHttpsProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionTargetTcpProxies */
                class RegionTargetTcpProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionTargetTcpProxies 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 RegionTargetTcpProxies 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): RegionTargetTcpProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetTcpProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetTcpProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.TargetTcpProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetTcpProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetTcpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionTargetTcpProxiesRequest, callback: google.cloud.compute.v1beta.RegionTargetTcpProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionTargetTcpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionTargetTcpProxiesRequest): Promise<google.cloud.compute.v1beta.TargetTcpProxyList>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.RegionTargetTcpProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace RegionTargetTcpProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetTcpProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetTcpProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetTcpProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetTcpProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetTcpProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetTcpProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionTargetTcpProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RegionUrlMaps */
                class RegionUrlMaps extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionUrlMaps 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 RegionUrlMaps 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): RegionUrlMaps;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionUrlMapRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRegionUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMap
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionUrlMapRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionUrlMapRequest): Promise<google.cloud.compute.v1beta.UrlMap>;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionUrlMapRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRegionUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls InvalidateCache.
                     * @param request InvalidateCacheRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public invalidateCache(request: google.cloud.compute.v1beta.IInvalidateCacheRegionUrlMapRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.InvalidateCacheCallback): void;

                    /**
                     * Calls InvalidateCache.
                     * @param request InvalidateCacheRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public invalidateCache(request: google.cloud.compute.v1beta.IInvalidateCacheRegionUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRegionUrlMapsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionUrlMapsRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionUrlMapsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionUrlMapsRequest): Promise<google.cloud.compute.v1beta.UrlMapList>;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionUrlMapRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRegionUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionUrlMapRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRegionUrlMapRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionUrlMapRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRegionUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Validate.
                     * @param request ValidateRegionUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapsValidateResponse
                     */
                    public validate(request: google.cloud.compute.v1beta.IValidateRegionUrlMapRequest, callback: google.cloud.compute.v1beta.RegionUrlMaps.ValidateCallback): void;

                    /**
                     * Calls Validate.
                     * @param request ValidateRegionUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public validate(request: google.cloud.compute.v1beta.IValidateRegionUrlMapRequest): Promise<google.cloud.compute.v1beta.UrlMapsValidateResponse>;
                }

                namespace RegionUrlMaps {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|get}.
                     * @param error Error, if any
                     * @param [response] UrlMap
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.UrlMap) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|invalidateCache}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InvalidateCacheCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|list}.
                     * @param error Error, if any
                     * @param [response] UrlMapList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.UrlMapList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionUrlMaps|validate}.
                     * @param error Error, if any
                     * @param [response] UrlMapsValidateResponse
                     */
                    type ValidateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.UrlMapsValidateResponse) => void;
                }

                /** Represents a RegionZones */
                class RegionZones extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionZones 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 RegionZones 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): RegionZones;

                    /**
                     * Calls List.
                     * @param request ListRegionZonesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ZoneList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionZonesRequest, callback: google.cloud.compute.v1beta.RegionZones.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionZonesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionZonesRequest): Promise<google.cloud.compute.v1beta.ZoneList>;
                }

                namespace RegionZones {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RegionZones|list}.
                     * @param error Error, if any
                     * @param [response] ZoneList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ZoneList) => void;
                }

                /** Represents a Regions */
                class Regions extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Regions 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 Regions 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): Regions;

                    /**
                     * Calls Get.
                     * @param request GetRegionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Region
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionRequest, callback: google.cloud.compute.v1beta.Regions.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRegionRequest): Promise<google.cloud.compute.v1beta.Region>;

                    /**
                     * Calls List.
                     * @param request ListRegionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RegionList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionsRequest, callback: google.cloud.compute.v1beta.Regions.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRegionsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRegionsRequest): Promise<google.cloud.compute.v1beta.RegionList>;
                }

                namespace Regions {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Regions|get}.
                     * @param error Error, if any
                     * @param [response] Region
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Region) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Regions|list}.
                     * @param error Error, if any
                     * @param [response] RegionList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RegionList) => void;
                }

                /** Represents a ReservationBlocks */
                class ReservationBlocks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ReservationBlocks 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 ReservationBlocks 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): ReservationBlocks;

                    /**
                     * Calls Get.
                     * @param request GetReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationBlocksGetResponse
                     */
                    public get(request: google.cloud.compute.v1beta.IGetReservationBlockRequest, callback: google.cloud.compute.v1beta.ReservationBlocks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetReservationBlockRequest): Promise<google.cloud.compute.v1beta.ReservationBlocksGetResponse>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyReservationBlockRequest, callback: google.cloud.compute.v1beta.ReservationBlocks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyReservationBlockRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls List.
                     * @param request ListReservationBlocksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationBlocksListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListReservationBlocksRequest, callback: google.cloud.compute.v1beta.ReservationBlocks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListReservationBlocksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListReservationBlocksRequest): Promise<google.cloud.compute.v1beta.ReservationBlocksListResponse>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceReservationBlockRequest, callback: google.cloud.compute.v1beta.ReservationBlocks.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceReservationBlockRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyReservationBlockRequest, callback: google.cloud.compute.v1beta.ReservationBlocks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyReservationBlockRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsReservationBlockRequest, callback: google.cloud.compute.v1beta.ReservationBlocks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationBlockRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsReservationBlockRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace ReservationBlocks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationBlocks|get}.
                     * @param error Error, if any
                     * @param [response] ReservationBlocksGetResponse
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ReservationBlocksGetResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationBlocks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationBlocks|list}.
                     * @param error Error, if any
                     * @param [response] ReservationBlocksListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ReservationBlocksListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationBlocks|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationBlocks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationBlocks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a ReservationSlots */
                class ReservationSlots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ReservationSlots 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 ReservationSlots 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): ReservationSlots;

                    /**
                     * Calls Get.
                     * @param request GetReservationSlotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationSlotsGetResponse
                     */
                    public get(request: google.cloud.compute.v1beta.IGetReservationSlotRequest, callback: google.cloud.compute.v1beta.ReservationSlots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetReservationSlotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetReservationSlotRequest): Promise<google.cloud.compute.v1beta.ReservationSlotsGetResponse>;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionReservationSlotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public getVersion(request: google.cloud.compute.v1beta.IGetVersionReservationSlotRequest, callback: google.cloud.compute.v1beta.ReservationSlots.GetVersionCallback): void;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionReservationSlotRequest message or plain object
                     * @returns Promise
                     */
                    public getVersion(request: google.cloud.compute.v1beta.IGetVersionReservationSlotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListReservationSlotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationSlotsListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListReservationSlotsRequest, callback: google.cloud.compute.v1beta.ReservationSlots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListReservationSlotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListReservationSlotsRequest): Promise<google.cloud.compute.v1beta.ReservationSlotsListResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateReservationSlotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateReservationSlotRequest, callback: google.cloud.compute.v1beta.ReservationSlots.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateReservationSlotRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateReservationSlotRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace ReservationSlots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSlots|get}.
                     * @param error Error, if any
                     * @param [response] ReservationSlotsGetResponse
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ReservationSlotsGetResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSlots|getVersion}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetVersionCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSlots|list}.
                     * @param error Error, if any
                     * @param [response] ReservationSlotsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ReservationSlotsListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSlots|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a ReservationSubBlocks */
                class ReservationSubBlocks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ReservationSubBlocks 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 ReservationSubBlocks 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): ReservationSubBlocks;

                    /**
                     * Calls Get.
                     * @param request GetReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationSubBlocksGetResponse
                     */
                    public get(request: google.cloud.compute.v1beta.IGetReservationSubBlockRequest, callback: google.cloud.compute.v1beta.ReservationSubBlocks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetReservationSubBlockRequest): Promise<google.cloud.compute.v1beta.ReservationSubBlocksGetResponse>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyReservationSubBlockRequest, callback: google.cloud.compute.v1beta.ReservationSubBlocks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyReservationSubBlockRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public getVersion(request: google.cloud.compute.v1beta.IGetVersionReservationSubBlockRequest, callback: google.cloud.compute.v1beta.ReservationSubBlocks.GetVersionCallback): void;

                    /**
                     * Calls GetVersion.
                     * @param request GetVersionReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public getVersion(request: google.cloud.compute.v1beta.IGetVersionReservationSubBlockRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListReservationSubBlocksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationSubBlocksListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListReservationSubBlocksRequest, callback: google.cloud.compute.v1beta.ReservationSubBlocks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListReservationSubBlocksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListReservationSubBlocksRequest): Promise<google.cloud.compute.v1beta.ReservationSubBlocksListResponse>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceReservationSubBlockRequest, callback: google.cloud.compute.v1beta.ReservationSubBlocks.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceReservationSubBlockRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ReportFaulty.
                     * @param request ReportFaultyReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public reportFaulty(request: google.cloud.compute.v1beta.IReportFaultyReservationSubBlockRequest, callback: google.cloud.compute.v1beta.ReservationSubBlocks.ReportFaultyCallback): void;

                    /**
                     * Calls ReportFaulty.
                     * @param request ReportFaultyReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public reportFaulty(request: google.cloud.compute.v1beta.IReportFaultyReservationSubBlockRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyReservationSubBlockRequest, callback: google.cloud.compute.v1beta.ReservationSubBlocks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyReservationSubBlockRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationSubBlockRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsReservationSubBlockRequest, callback: google.cloud.compute.v1beta.ReservationSubBlocks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationSubBlockRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsReservationSubBlockRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace ReservationSubBlocks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSubBlocks|get}.
                     * @param error Error, if any
                     * @param [response] ReservationSubBlocksGetResponse
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ReservationSubBlocksGetResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSubBlocks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSubBlocks|getVersion}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetVersionCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSubBlocks|list}.
                     * @param error Error, if any
                     * @param [response] ReservationSubBlocksListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ReservationSubBlocksListResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSubBlocks|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSubBlocks|reportFaulty}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ReportFaultyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSubBlocks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ReservationSubBlocks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a Reservations */
                class Reservations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Reservations 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 Reservations 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): Reservations;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListReservationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListReservationsRequest, callback: google.cloud.compute.v1beta.Reservations.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListReservationsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListReservationsRequest): Promise<google.cloud.compute.v1beta.ReservationAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteReservationRequest, callback: google.cloud.compute.v1beta.Reservations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteReservationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Reservation
                     */
                    public get(request: google.cloud.compute.v1beta.IGetReservationRequest, callback: google.cloud.compute.v1beta.Reservations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetReservationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetReservationRequest): Promise<google.cloud.compute.v1beta.Reservation>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyReservationRequest, callback: google.cloud.compute.v1beta.Reservations.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyReservationRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyReservationRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertReservationRequest, callback: google.cloud.compute.v1beta.Reservations.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertReservationRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListReservationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReservationList
                     */
                    public list(request: google.cloud.compute.v1beta.IListReservationsRequest, callback: google.cloud.compute.v1beta.Reservations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListReservationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListReservationsRequest): Promise<google.cloud.compute.v1beta.ReservationList>;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceReservationRequest, callback: google.cloud.compute.v1beta.Reservations.PerformMaintenanceCallback): void;

                    /**
                     * Calls PerformMaintenance.
                     * @param request PerformMaintenanceReservationRequest message or plain object
                     * @returns Promise
                     */
                    public performMaintenance(request: google.cloud.compute.v1beta.IPerformMaintenanceReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Resize.
                     * @param request ResizeReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeReservationRequest, callback: google.cloud.compute.v1beta.Reservations.ResizeCallback): void;

                    /**
                     * Calls Resize.
                     * @param request ResizeReservationRequest message or plain object
                     * @returns Promise
                     */
                    public resize(request: google.cloud.compute.v1beta.IResizeReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyReservationRequest, callback: google.cloud.compute.v1beta.Reservations.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyReservationRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyReservationRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsReservationRequest, callback: google.cloud.compute.v1beta.Reservations.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsReservationRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsReservationRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateReservationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateReservationRequest, callback: google.cloud.compute.v1beta.Reservations.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateReservationRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateReservationRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Reservations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] ReservationAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ReservationAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|get}.
                     * @param error Error, if any
                     * @param [response] Reservation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Reservation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|list}.
                     * @param error Error, if any
                     * @param [response] ReservationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ReservationList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|performMaintenance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PerformMaintenanceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|resize}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ResizeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Reservations|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a ResourcePolicies */
                class ResourcePolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ResourcePolicies 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 ResourcePolicies 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): ResourcePolicies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListResourcePoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ResourcePolicyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListResourcePoliciesRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListResourcePoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListResourcePoliciesRequest): Promise<google.cloud.compute.v1beta.ResourcePolicyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteResourcePolicyRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteResourcePolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ResourcePolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetResourcePolicyRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetResourcePolicyRequest): Promise<google.cloud.compute.v1beta.ResourcePolicy>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyResourcePolicyRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyResourcePolicyRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertResourcePolicyRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertResourcePolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListResourcePoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ResourcePolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListResourcePoliciesRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListResourcePoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListResourcePoliciesRequest): Promise<google.cloud.compute.v1beta.ResourcePolicyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchResourcePolicyRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchResourcePolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyResourcePolicyRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyResourcePolicyRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsResourcePolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsResourcePolicyRequest, callback: google.cloud.compute.v1beta.ResourcePolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsResourcePolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsResourcePolicyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace ResourcePolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] ResourcePolicyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ResourcePolicyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|get}.
                     * @param error Error, if any
                     * @param [response] ResourcePolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ResourcePolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|list}.
                     * @param error Error, if any
                     * @param [response] ResourcePolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ResourcePolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ResourcePolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a RolloutPlans */
                class RolloutPlans extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RolloutPlans 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 RolloutPlans 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): RolloutPlans;

                    /**
                     * Calls Delete.
                     * @param request DeleteRolloutPlanRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRolloutPlanRequest, callback: google.cloud.compute.v1beta.RolloutPlans.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRolloutPlanRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRolloutPlanRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRolloutPlanRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RolloutPlan
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRolloutPlanRequest, callback: google.cloud.compute.v1beta.RolloutPlans.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRolloutPlanRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRolloutPlanRequest): Promise<google.cloud.compute.v1beta.RolloutPlan>;

                    /**
                     * Calls Insert.
                     * @param request InsertRolloutPlanRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRolloutPlanRequest, callback: google.cloud.compute.v1beta.RolloutPlans.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRolloutPlanRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRolloutPlanRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRolloutPlansRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RolloutPlansListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListRolloutPlansRequest, callback: google.cloud.compute.v1beta.RolloutPlans.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRolloutPlansRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRolloutPlansRequest): Promise<google.cloud.compute.v1beta.RolloutPlansListResponse>;
                }

                namespace RolloutPlans {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RolloutPlans|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RolloutPlans|get}.
                     * @param error Error, if any
                     * @param [response] RolloutPlan
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RolloutPlan) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RolloutPlans|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.RolloutPlans|list}.
                     * @param error Error, if any
                     * @param [response] RolloutPlansListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RolloutPlansListResponse) => void;
                }

                /** Represents a Rollouts */
                class Rollouts extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Rollouts 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 Rollouts 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): Rollouts;

                    /**
                     * Calls Cancel.
                     * @param request CancelRolloutRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public cancel(request: google.cloud.compute.v1beta.ICancelRolloutRequest, callback: google.cloud.compute.v1beta.Rollouts.CancelCallback): void;

                    /**
                     * Calls Cancel.
                     * @param request CancelRolloutRequest message or plain object
                     * @returns Promise
                     */
                    public cancel(request: google.cloud.compute.v1beta.ICancelRolloutRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRolloutRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRolloutRequest, callback: google.cloud.compute.v1beta.Rollouts.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRolloutRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRolloutRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRolloutRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Rollout
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRolloutRequest, callback: google.cloud.compute.v1beta.Rollouts.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRolloutRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRolloutRequest): Promise<google.cloud.compute.v1beta.Rollout>;

                    /**
                     * Calls List.
                     * @param request ListRolloutsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RolloutsListResponse
                     */
                    public list(request: google.cloud.compute.v1beta.IListRolloutsRequest, callback: google.cloud.compute.v1beta.Rollouts.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRolloutsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRolloutsRequest): Promise<google.cloud.compute.v1beta.RolloutsListResponse>;
                }

                namespace Rollouts {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Rollouts|cancel}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CancelCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Rollouts|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Rollouts|get}.
                     * @param error Error, if any
                     * @param [response] Rollout
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Rollout) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Rollouts|list}.
                     * @param error Error, if any
                     * @param [response] RolloutsListResponse
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RolloutsListResponse) => void;
                }

                /** Represents a Routers */
                class Routers extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Routers 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 Routers 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): Routers;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RouterAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRoutersRequest, callback: google.cloud.compute.v1beta.Routers.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListRoutersRequest): Promise<google.cloud.compute.v1beta.RouterAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRouterRequest, callback: google.cloud.compute.v1beta.Routers.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRouterRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteNamedSet.
                     * @param request DeleteNamedSetRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteNamedSet(request: google.cloud.compute.v1beta.IDeleteNamedSetRouterRequest, callback: google.cloud.compute.v1beta.Routers.DeleteNamedSetCallback): void;

                    /**
                     * Calls DeleteNamedSet.
                     * @param request DeleteNamedSetRouterRequest message or plain object
                     * @returns Promise
                     */
                    public deleteNamedSet(request: google.cloud.compute.v1beta.IDeleteNamedSetRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls DeleteRoutePolicy.
                     * @param request DeleteRoutePolicyRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteRoutePolicy(request: google.cloud.compute.v1beta.IDeleteRoutePolicyRouterRequest, callback: google.cloud.compute.v1beta.Routers.DeleteRoutePolicyCallback): void;

                    /**
                     * Calls DeleteRoutePolicy.
                     * @param request DeleteRoutePolicyRouterRequest message or plain object
                     * @returns Promise
                     */
                    public deleteRoutePolicy(request: google.cloud.compute.v1beta.IDeleteRoutePolicyRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Router
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRouterRequest, callback: google.cloud.compute.v1beta.Routers.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRouterRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRouterRequest): Promise<google.cloud.compute.v1beta.Router>;

                    /**
                     * Calls GetNamedSet.
                     * @param request GetNamedSetRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersGetNamedSetResponse
                     */
                    public getNamedSet(request: google.cloud.compute.v1beta.IGetNamedSetRouterRequest, callback: google.cloud.compute.v1beta.Routers.GetNamedSetCallback): void;

                    /**
                     * Calls GetNamedSet.
                     * @param request GetNamedSetRouterRequest message or plain object
                     * @returns Promise
                     */
                    public getNamedSet(request: google.cloud.compute.v1beta.IGetNamedSetRouterRequest): Promise<google.cloud.compute.v1beta.RoutersGetNamedSetResponse>;

                    /**
                     * Calls GetNatIpInfo.
                     * @param request GetNatIpInfoRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and NatIpInfoResponse
                     */
                    public getNatIpInfo(request: google.cloud.compute.v1beta.IGetNatIpInfoRouterRequest, callback: google.cloud.compute.v1beta.Routers.GetNatIpInfoCallback): void;

                    /**
                     * Calls GetNatIpInfo.
                     * @param request GetNatIpInfoRouterRequest message or plain object
                     * @returns Promise
                     */
                    public getNatIpInfo(request: google.cloud.compute.v1beta.IGetNatIpInfoRouterRequest): Promise<google.cloud.compute.v1beta.NatIpInfoResponse>;

                    /**
                     * Calls GetNatMappingInfo.
                     * @param request GetNatMappingInfoRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VmEndpointNatMappingsList
                     */
                    public getNatMappingInfo(request: google.cloud.compute.v1beta.IGetNatMappingInfoRoutersRequest, callback: google.cloud.compute.v1beta.Routers.GetNatMappingInfoCallback): void;

                    /**
                     * Calls GetNatMappingInfo.
                     * @param request GetNatMappingInfoRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public getNatMappingInfo(request: google.cloud.compute.v1beta.IGetNatMappingInfoRoutersRequest): Promise<google.cloud.compute.v1beta.VmEndpointNatMappingsList>;

                    /**
                     * Calls GetRoutePolicy.
                     * @param request GetRoutePolicyRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersGetRoutePolicyResponse
                     */
                    public getRoutePolicy(request: google.cloud.compute.v1beta.IGetRoutePolicyRouterRequest, callback: google.cloud.compute.v1beta.Routers.GetRoutePolicyCallback): void;

                    /**
                     * Calls GetRoutePolicy.
                     * @param request GetRoutePolicyRouterRequest message or plain object
                     * @returns Promise
                     */
                    public getRoutePolicy(request: google.cloud.compute.v1beta.IGetRoutePolicyRouterRequest): Promise<google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse>;

                    /**
                     * Calls GetRouterStatus.
                     * @param request GetRouterStatusRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RouterStatusResponse
                     */
                    public getRouterStatus(request: google.cloud.compute.v1beta.IGetRouterStatusRouterRequest, callback: google.cloud.compute.v1beta.Routers.GetRouterStatusCallback): void;

                    /**
                     * Calls GetRouterStatus.
                     * @param request GetRouterStatusRouterRequest message or plain object
                     * @returns Promise
                     */
                    public getRouterStatus(request: google.cloud.compute.v1beta.IGetRouterStatusRouterRequest): Promise<google.cloud.compute.v1beta.RouterStatusResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRouterRequest, callback: google.cloud.compute.v1beta.Routers.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRouterRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RouterList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRoutersRequest, callback: google.cloud.compute.v1beta.Routers.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRoutersRequest): Promise<google.cloud.compute.v1beta.RouterList>;

                    /**
                     * Calls ListBgpRoutes.
                     * @param request ListBgpRoutesRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersListBgpRoutes
                     */
                    public listBgpRoutes(request: google.cloud.compute.v1beta.IListBgpRoutesRoutersRequest, callback: google.cloud.compute.v1beta.Routers.ListBgpRoutesCallback): void;

                    /**
                     * Calls ListBgpRoutes.
                     * @param request ListBgpRoutesRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public listBgpRoutes(request: google.cloud.compute.v1beta.IListBgpRoutesRoutersRequest): Promise<google.cloud.compute.v1beta.RoutersListBgpRoutes>;

                    /**
                     * Calls ListNamedSets.
                     * @param request ListNamedSetsRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersListNamedSets
                     */
                    public listNamedSets(request: google.cloud.compute.v1beta.IListNamedSetsRoutersRequest, callback: google.cloud.compute.v1beta.Routers.ListNamedSetsCallback): void;

                    /**
                     * Calls ListNamedSets.
                     * @param request ListNamedSetsRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public listNamedSets(request: google.cloud.compute.v1beta.IListNamedSetsRoutersRequest): Promise<google.cloud.compute.v1beta.RoutersListNamedSets>;

                    /**
                     * Calls ListRoutePolicies.
                     * @param request ListRoutePoliciesRoutersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersListRoutePolicies
                     */
                    public listRoutePolicies(request: google.cloud.compute.v1beta.IListRoutePoliciesRoutersRequest, callback: google.cloud.compute.v1beta.Routers.ListRoutePoliciesCallback): void;

                    /**
                     * Calls ListRoutePolicies.
                     * @param request ListRoutePoliciesRoutersRequest message or plain object
                     * @returns Promise
                     */
                    public listRoutePolicies(request: google.cloud.compute.v1beta.IListRoutePoliciesRoutersRequest): Promise<google.cloud.compute.v1beta.RoutersListRoutePolicies>;

                    /**
                     * Calls Patch.
                     * @param request PatchRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRouterRequest, callback: google.cloud.compute.v1beta.Routers.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchRouterRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchNamedSet.
                     * @param request PatchNamedSetRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchNamedSet(request: google.cloud.compute.v1beta.IPatchNamedSetRouterRequest, callback: google.cloud.compute.v1beta.Routers.PatchNamedSetCallback): void;

                    /**
                     * Calls PatchNamedSet.
                     * @param request PatchNamedSetRouterRequest message or plain object
                     * @returns Promise
                     */
                    public patchNamedSet(request: google.cloud.compute.v1beta.IPatchNamedSetRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchRoutePolicy.
                     * @param request PatchRoutePolicyRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRoutePolicy(request: google.cloud.compute.v1beta.IPatchRoutePolicyRouterRequest, callback: google.cloud.compute.v1beta.Routers.PatchRoutePolicyCallback): void;

                    /**
                     * Calls PatchRoutePolicy.
                     * @param request PatchRoutePolicyRouterRequest message or plain object
                     * @returns Promise
                     */
                    public patchRoutePolicy(request: google.cloud.compute.v1beta.IPatchRoutePolicyRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Preview.
                     * @param request PreviewRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RoutersPreviewResponse
                     */
                    public preview(request: google.cloud.compute.v1beta.IPreviewRouterRequest, callback: google.cloud.compute.v1beta.Routers.PreviewCallback): void;

                    /**
                     * Calls Preview.
                     * @param request PreviewRouterRequest message or plain object
                     * @returns Promise
                     */
                    public preview(request: google.cloud.compute.v1beta.IPreviewRouterRequest): Promise<google.cloud.compute.v1beta.RoutersPreviewResponse>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRouterRequest, callback: google.cloud.compute.v1beta.Routers.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRouterRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRouterRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRouterRequest, callback: google.cloud.compute.v1beta.Routers.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateRouterRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdateNamedSet.
                     * @param request UpdateNamedSetRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateNamedSet(request: google.cloud.compute.v1beta.IUpdateNamedSetRouterRequest, callback: google.cloud.compute.v1beta.Routers.UpdateNamedSetCallback): void;

                    /**
                     * Calls UpdateNamedSet.
                     * @param request UpdateNamedSetRouterRequest message or plain object
                     * @returns Promise
                     */
                    public updateNamedSet(request: google.cloud.compute.v1beta.IUpdateNamedSetRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls UpdateRoutePolicy.
                     * @param request UpdateRoutePolicyRouterRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateRoutePolicy(request: google.cloud.compute.v1beta.IUpdateRoutePolicyRouterRequest, callback: google.cloud.compute.v1beta.Routers.UpdateRoutePolicyCallback): void;

                    /**
                     * Calls UpdateRoutePolicy.
                     * @param request UpdateRoutePolicyRouterRequest message or plain object
                     * @returns Promise
                     */
                    public updateRoutePolicy(request: google.cloud.compute.v1beta.IUpdateRoutePolicyRouterRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace Routers {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] RouterAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RouterAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|deleteNamedSet}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteNamedSetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|deleteRoutePolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteRoutePolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|get}.
                     * @param error Error, if any
                     * @param [response] Router
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Router) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|getNamedSet}.
                     * @param error Error, if any
                     * @param [response] RoutersGetNamedSetResponse
                     */
                    type GetNamedSetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RoutersGetNamedSetResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|getNatIpInfo}.
                     * @param error Error, if any
                     * @param [response] NatIpInfoResponse
                     */
                    type GetNatIpInfoCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.NatIpInfoResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|getNatMappingInfo}.
                     * @param error Error, if any
                     * @param [response] VmEndpointNatMappingsList
                     */
                    type GetNatMappingInfoCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VmEndpointNatMappingsList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|getRoutePolicy}.
                     * @param error Error, if any
                     * @param [response] RoutersGetRoutePolicyResponse
                     */
                    type GetRoutePolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RoutersGetRoutePolicyResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|getRouterStatus}.
                     * @param error Error, if any
                     * @param [response] RouterStatusResponse
                     */
                    type GetRouterStatusCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RouterStatusResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|list}.
                     * @param error Error, if any
                     * @param [response] RouterList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RouterList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|listBgpRoutes}.
                     * @param error Error, if any
                     * @param [response] RoutersListBgpRoutes
                     */
                    type ListBgpRoutesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RoutersListBgpRoutes) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|listNamedSets}.
                     * @param error Error, if any
                     * @param [response] RoutersListNamedSets
                     */
                    type ListNamedSetsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RoutersListNamedSets) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|listRoutePolicies}.
                     * @param error Error, if any
                     * @param [response] RoutersListRoutePolicies
                     */
                    type ListRoutePoliciesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RoutersListRoutePolicies) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|patchNamedSet}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchNamedSetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|patchRoutePolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRoutePolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|preview}.
                     * @param error Error, if any
                     * @param [response] RoutersPreviewResponse
                     */
                    type PreviewCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RoutersPreviewResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|updateNamedSet}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateNamedSetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routers|updateRoutePolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateRoutePolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a Routes */
                class Routes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Routes 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 Routes 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): Routes;

                    /**
                     * Calls Delete.
                     * @param request DeleteRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRouteRequest, callback: google.cloud.compute.v1beta.Routes.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteRouteRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteRouteRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Route
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRouteRequest, callback: google.cloud.compute.v1beta.Routes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRouteRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetRouteRequest): Promise<google.cloud.compute.v1beta.Route>;

                    /**
                     * Calls Insert.
                     * @param request InsertRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRouteRequest, callback: google.cloud.compute.v1beta.Routes.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertRouteRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertRouteRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListRoutesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RouteList
                     */
                    public list(request: google.cloud.compute.v1beta.IListRoutesRequest, callback: google.cloud.compute.v1beta.Routes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListRoutesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListRoutesRequest): Promise<google.cloud.compute.v1beta.RouteList>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRouteRequest, callback: google.cloud.compute.v1beta.Routes.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsRouteRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsRouteRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace Routes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routes|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routes|get}.
                     * @param error Error, if any
                     * @param [response] Route
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Route) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routes|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routes|list}.
                     * @param error Error, if any
                     * @param [response] RouteList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.RouteList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Routes|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a SecurityPolicies */
                class SecurityPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SecurityPolicies 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 SecurityPolicies 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): SecurityPolicies;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.AddRuleCallback): void;

                    /**
                     * Calls AddRule.
                     * @param request AddRuleSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public addRule(request: google.cloud.compute.v1beta.IAddRuleSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPoliciesAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSecurityPoliciesRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSecurityPoliciesRequest): Promise<google.cloud.compute.v1beta.SecurityPoliciesAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.SecurityPolicy>;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyRule
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.GetRuleCallback): void;

                    /**
                     * Calls GetRule.
                     * @param request GetRuleSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public getRule(request: google.cloud.compute.v1beta.IGetRuleSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.SecurityPolicyRule>;

                    /**
                     * Calls Insert.
                     * @param request InsertSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListSecurityPoliciesRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListSecurityPoliciesRequest): Promise<google.cloud.compute.v1beta.SecurityPolicyList>;

                    /**
                     * Calls ListPreconfiguredExpressionSets.
                     * @param request ListPreconfiguredExpressionSetsSecurityPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    public listPreconfiguredExpressionSets(request: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsSecurityPoliciesRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.ListPreconfiguredExpressionSetsCallback): void;

                    /**
                     * Calls ListPreconfiguredExpressionSets.
                     * @param request ListPreconfiguredExpressionSetsSecurityPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public listPreconfiguredExpressionSets(request: google.cloud.compute.v1beta.IListPreconfiguredExpressionSetsSecurityPoliciesRequest): Promise<google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.PatchRuleCallback): void;

                    /**
                     * Calls PatchRule.
                     * @param request PatchRuleSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patchRule(request: google.cloud.compute.v1beta.IPatchRuleSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.RemoveRuleCallback): void;

                    /**
                     * Calls RemoveRule.
                     * @param request RemoveRuleSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public removeRule(request: google.cloud.compute.v1beta.IRemoveRuleSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSecurityPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSecurityPolicyRequest, callback: google.cloud.compute.v1beta.SecurityPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSecurityPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSecurityPolicyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace SecurityPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|addRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SecurityPoliciesAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPoliciesAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|getRule}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyRule
                     */
                    type GetRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicyRule) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SecurityPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|listPreconfiguredExpressionSets}.
                     * @param error Error, if any
                     * @param [response] SecurityPoliciesListPreconfiguredExpressionSetsResponse
                     */
                    type ListPreconfiguredExpressionSetsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SecurityPoliciesListPreconfiguredExpressionSetsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|patchRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|removeRule}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveRuleCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SecurityPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a ServiceAttachments */
                class ServiceAttachments extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ServiceAttachments 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 ServiceAttachments 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): ServiceAttachments;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListServiceAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ServiceAttachmentAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListServiceAttachmentsRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListServiceAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListServiceAttachmentsRequest): Promise<google.cloud.compute.v1beta.ServiceAttachmentAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteServiceAttachmentRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteServiceAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ServiceAttachment
                     */
                    public get(request: google.cloud.compute.v1beta.IGetServiceAttachmentRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetServiceAttachmentRequest): Promise<google.cloud.compute.v1beta.ServiceAttachment>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyServiceAttachmentRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyServiceAttachmentRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertServiceAttachmentRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertServiceAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListServiceAttachmentsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ServiceAttachmentList
                     */
                    public list(request: google.cloud.compute.v1beta.IListServiceAttachmentsRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListServiceAttachmentsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListServiceAttachmentsRequest): Promise<google.cloud.compute.v1beta.ServiceAttachmentList>;

                    /**
                     * Calls Patch.
                     * @param request PatchServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchServiceAttachmentRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchServiceAttachmentRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyServiceAttachmentRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyServiceAttachmentRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsServiceAttachmentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsServiceAttachmentRequest, callback: google.cloud.compute.v1beta.ServiceAttachments.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsServiceAttachmentRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsServiceAttachmentRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace ServiceAttachments {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] ServiceAttachmentAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ServiceAttachmentAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|get}.
                     * @param error Error, if any
                     * @param [response] ServiceAttachment
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ServiceAttachment) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|list}.
                     * @param error Error, if any
                     * @param [response] ServiceAttachmentList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ServiceAttachmentList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ServiceAttachments|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a SnapshotGroups */
                class SnapshotGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SnapshotGroups 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 SnapshotGroups 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): SnapshotGroups;

                    /**
                     * Calls Delete.
                     * @param request DeleteSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSnapshotGroupRequest, callback: google.cloud.compute.v1beta.SnapshotGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SnapshotGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSnapshotGroupRequest, callback: google.cloud.compute.v1beta.SnapshotGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.SnapshotGroup>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicySnapshotGroupRequest, callback: google.cloud.compute.v1beta.SnapshotGroups.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicySnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSnapshotGroupRequest, callback: google.cloud.compute.v1beta.SnapshotGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSnapshotGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListSnapshotGroups
                     */
                    public list(request: google.cloud.compute.v1beta.IListSnapshotGroupsRequest, callback: google.cloud.compute.v1beta.SnapshotGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSnapshotGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListSnapshotGroupsRequest): Promise<google.cloud.compute.v1beta.ListSnapshotGroups>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicySnapshotGroupRequest, callback: google.cloud.compute.v1beta.SnapshotGroups.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicySnapshotGroupRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSnapshotGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotGroupRequest, callback: google.cloud.compute.v1beta.SnapshotGroups.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSnapshotGroupRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotGroupRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace SnapshotGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotGroups|get}.
                     * @param error Error, if any
                     * @param [response] SnapshotGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SnapshotGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotGroups|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotGroups|list}.
                     * @param error Error, if any
                     * @param [response] ListSnapshotGroups
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ListSnapshotGroups) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotGroups|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotGroups|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a SnapshotSettingsService */
                class SnapshotSettingsService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SnapshotSettingsService 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 SnapshotSettingsService 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): SnapshotSettingsService;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SnapshotSettings
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSnapshotSettingRequest, callback: google.cloud.compute.v1beta.SnapshotSettingsService.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotSettingRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSnapshotSettingRequest): Promise<google.cloud.compute.v1beta.SnapshotSettings>;

                    /**
                     * Calls Patch.
                     * @param request PatchSnapshotSettingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchSnapshotSettingRequest, callback: google.cloud.compute.v1beta.SnapshotSettingsService.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchSnapshotSettingRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchSnapshotSettingRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace SnapshotSettingsService {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotSettingsService|get}.
                     * @param error Error, if any
                     * @param [response] SnapshotSettings
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SnapshotSettings) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SnapshotSettingsService|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a Snapshots */
                class Snapshots extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Snapshots 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 Snapshots 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): Snapshots;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SnapshotAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSnapshotsRequest, callback: google.cloud.compute.v1beta.Snapshots.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSnapshotsRequest): Promise<google.cloud.compute.v1beta.SnapshotAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSnapshotRequest, callback: google.cloud.compute.v1beta.Snapshots.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Snapshot
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSnapshotRequest, callback: google.cloud.compute.v1beta.Snapshots.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSnapshotRequest): Promise<google.cloud.compute.v1beta.Snapshot>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicySnapshotRequest, callback: google.cloud.compute.v1beta.Snapshots.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicySnapshotRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSnapshotRequest, callback: google.cloud.compute.v1beta.Snapshots.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSnapshotsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SnapshotList
                     */
                    public list(request: google.cloud.compute.v1beta.IListSnapshotsRequest, callback: google.cloud.compute.v1beta.Snapshots.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSnapshotsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListSnapshotsRequest): Promise<google.cloud.compute.v1beta.SnapshotList>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicySnapshotRequest, callback: google.cloud.compute.v1beta.Snapshots.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicySnapshotRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsSnapshotRequest, callback: google.cloud.compute.v1beta.Snapshots.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsSnapshotRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSnapshotRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotRequest, callback: google.cloud.compute.v1beta.Snapshots.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSnapshotRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSnapshotRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace Snapshots {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SnapshotAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SnapshotAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|get}.
                     * @param error Error, if any
                     * @param [response] Snapshot
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Snapshot) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|list}.
                     * @param error Error, if any
                     * @param [response] SnapshotList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SnapshotList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Snapshots|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a SslCertificates */
                class SslCertificates extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SslCertificates 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 SslCertificates 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): SslCertificates;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSslCertificatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificateAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSslCertificatesRequest, callback: google.cloud.compute.v1beta.SslCertificates.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSslCertificatesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSslCertificatesRequest): Promise<google.cloud.compute.v1beta.SslCertificateAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSslCertificateRequest, callback: google.cloud.compute.v1beta.SslCertificates.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSslCertificateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificate
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSslCertificateRequest, callback: google.cloud.compute.v1beta.SslCertificates.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSslCertificateRequest): Promise<google.cloud.compute.v1beta.SslCertificate>;

                    /**
                     * Calls Insert.
                     * @param request InsertSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSslCertificateRequest, callback: google.cloud.compute.v1beta.SslCertificates.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSslCertificateRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSslCertificatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslCertificateList
                     */
                    public list(request: google.cloud.compute.v1beta.IListSslCertificatesRequest, callback: google.cloud.compute.v1beta.SslCertificates.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSslCertificatesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListSslCertificatesRequest): Promise<google.cloud.compute.v1beta.SslCertificateList>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSslCertificateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSslCertificateRequest, callback: google.cloud.compute.v1beta.SslCertificates.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSslCertificateRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSslCertificateRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace SslCertificates {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslCertificates|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SslCertificateAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslCertificateAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslCertificates|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslCertificates|get}.
                     * @param error Error, if any
                     * @param [response] SslCertificate
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslCertificate) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslCertificates|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslCertificates|list}.
                     * @param error Error, if any
                     * @param [response] SslCertificateList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslCertificateList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslCertificates|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a SslPolicies */
                class SslPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new SslPolicies 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 SslPolicies 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): SslPolicies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSslPoliciesRequest, callback: google.cloud.compute.v1beta.SslPolicies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSslPoliciesRequest): Promise<google.cloud.compute.v1beta.SslPoliciesAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSslPolicyRequest, callback: google.cloud.compute.v1beta.SslPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSslPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSslPolicyRequest, callback: google.cloud.compute.v1beta.SslPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSslPolicyRequest): Promise<google.cloud.compute.v1beta.SslPolicy>;

                    /**
                     * Calls Insert.
                     * @param request InsertSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSslPolicyRequest, callback: google.cloud.compute.v1beta.SslPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSslPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesList
                     */
                    public list(request: google.cloud.compute.v1beta.IListSslPoliciesRequest, callback: google.cloud.compute.v1beta.SslPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListSslPoliciesRequest): Promise<google.cloud.compute.v1beta.SslPoliciesList>;

                    /**
                     * Calls ListAvailableFeatures.
                     * @param request ListAvailableFeaturesSslPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SslPoliciesListAvailableFeaturesResponse
                     */
                    public listAvailableFeatures(request: google.cloud.compute.v1beta.IListAvailableFeaturesSslPoliciesRequest, callback: google.cloud.compute.v1beta.SslPolicies.ListAvailableFeaturesCallback): void;

                    /**
                     * Calls ListAvailableFeatures.
                     * @param request ListAvailableFeaturesSslPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public listAvailableFeatures(request: google.cloud.compute.v1beta.IListAvailableFeaturesSslPoliciesRequest): Promise<google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse>;

                    /**
                     * Calls Patch.
                     * @param request PatchSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchSslPolicyRequest, callback: google.cloud.compute.v1beta.SslPolicies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchSslPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSslPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSslPolicyRequest, callback: google.cloud.compute.v1beta.SslPolicies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSslPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSslPolicyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace SslPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslPolicies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslPoliciesAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslPolicies|get}.
                     * @param error Error, if any
                     * @param [response] SslPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslPolicies|list}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslPoliciesList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslPolicies|listAvailableFeatures}.
                     * @param error Error, if any
                     * @param [response] SslPoliciesListAvailableFeaturesResponse
                     */
                    type ListAvailableFeaturesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SslPoliciesListAvailableFeaturesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslPolicies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.SslPolicies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a StoragePoolTypes */
                class StoragePoolTypes extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new StoragePoolTypes 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 StoragePoolTypes 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): StoragePoolTypes;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListStoragePoolTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolTypeAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListStoragePoolTypesRequest, callback: google.cloud.compute.v1beta.StoragePoolTypes.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListStoragePoolTypesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListStoragePoolTypesRequest): Promise<google.cloud.compute.v1beta.StoragePoolTypeAggregatedList>;

                    /**
                     * Calls Get.
                     * @param request GetStoragePoolTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolType
                     */
                    public get(request: google.cloud.compute.v1beta.IGetStoragePoolTypeRequest, callback: google.cloud.compute.v1beta.StoragePoolTypes.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetStoragePoolTypeRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetStoragePoolTypeRequest): Promise<google.cloud.compute.v1beta.StoragePoolType>;

                    /**
                     * Calls List.
                     * @param request ListStoragePoolTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolTypeList
                     */
                    public list(request: google.cloud.compute.v1beta.IListStoragePoolTypesRequest, callback: google.cloud.compute.v1beta.StoragePoolTypes.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListStoragePoolTypesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListStoragePoolTypesRequest): Promise<google.cloud.compute.v1beta.StoragePoolTypeList>;
                }

                namespace StoragePoolTypes {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePoolTypes|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] StoragePoolTypeAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.StoragePoolTypeAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePoolTypes|get}.
                     * @param error Error, if any
                     * @param [response] StoragePoolType
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.StoragePoolType) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePoolTypes|list}.
                     * @param error Error, if any
                     * @param [response] StoragePoolTypeList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.StoragePoolTypeList) => void;
                }

                /** Represents a StoragePools */
                class StoragePools extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new StoragePools 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 StoragePools 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): StoragePools;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListStoragePoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListStoragePoolsRequest, callback: google.cloud.compute.v1beta.StoragePools.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListStoragePoolsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListStoragePoolsRequest): Promise<google.cloud.compute.v1beta.StoragePoolAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteStoragePoolRequest, callback: google.cloud.compute.v1beta.StoragePools.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteStoragePoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePool
                     */
                    public get(request: google.cloud.compute.v1beta.IGetStoragePoolRequest, callback: google.cloud.compute.v1beta.StoragePools.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetStoragePoolRequest): Promise<google.cloud.compute.v1beta.StoragePool>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyStoragePoolRequest, callback: google.cloud.compute.v1beta.StoragePools.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicyStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicyStoragePoolRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertStoragePoolRequest, callback: google.cloud.compute.v1beta.StoragePools.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertStoragePoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListStoragePoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolList
                     */
                    public list(request: google.cloud.compute.v1beta.IListStoragePoolsRequest, callback: google.cloud.compute.v1beta.StoragePools.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListStoragePoolsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListStoragePoolsRequest): Promise<google.cloud.compute.v1beta.StoragePoolList>;

                    /**
                     * Calls ListDisks.
                     * @param request ListDisksStoragePoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoragePoolListDisks
                     */
                    public listDisks(request: google.cloud.compute.v1beta.IListDisksStoragePoolsRequest, callback: google.cloud.compute.v1beta.StoragePools.ListDisksCallback): void;

                    /**
                     * Calls ListDisks.
                     * @param request ListDisksStoragePoolsRequest message or plain object
                     * @returns Promise
                     */
                    public listDisks(request: google.cloud.compute.v1beta.IListDisksStoragePoolsRequest): Promise<google.cloud.compute.v1beta.StoragePoolListDisks>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyStoragePoolRequest, callback: google.cloud.compute.v1beta.StoragePools.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicyStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicyStoragePoolRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsStoragePoolRequest, callback: google.cloud.compute.v1beta.StoragePools.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsStoragePoolRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateStoragePoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateStoragePoolRequest, callback: google.cloud.compute.v1beta.StoragePools.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateStoragePoolRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateStoragePoolRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace StoragePools {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] StoragePoolAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.StoragePoolAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|get}.
                     * @param error Error, if any
                     * @param [response] StoragePool
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.StoragePool) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|list}.
                     * @param error Error, if any
                     * @param [response] StoragePoolList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.StoragePoolList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|listDisks}.
                     * @param error Error, if any
                     * @param [response] StoragePoolListDisks
                     */
                    type ListDisksCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.StoragePoolListDisks) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.StoragePools|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a Subnetworks */
                class Subnetworks extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Subnetworks 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 Subnetworks 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): Subnetworks;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSubnetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SubnetworkAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSubnetworksRequest, callback: google.cloud.compute.v1beta.Subnetworks.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListSubnetworksRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListSubnetworksRequest): Promise<google.cloud.compute.v1beta.SubnetworkAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteSubnetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls ExpandIpCidrRange.
                     * @param request ExpandIpCidrRangeSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public expandIpCidrRange(request: google.cloud.compute.v1beta.IExpandIpCidrRangeSubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.ExpandIpCidrRangeCallback): void;

                    /**
                     * Calls ExpandIpCidrRange.
                     * @param request ExpandIpCidrRangeSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public expandIpCidrRange(request: google.cloud.compute.v1beta.IExpandIpCidrRangeSubnetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Subnetwork
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetSubnetworkRequest): Promise<google.cloud.compute.v1beta.Subnetwork>;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicySubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.GetIamPolicyCallback): void;

                    /**
                     * Calls GetIamPolicy.
                     * @param request GetIamPolicySubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public getIamPolicy(request: google.cloud.compute.v1beta.IGetIamPolicySubnetworkRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls Insert.
                     * @param request InsertSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertSubnetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListSubnetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SubnetworkList
                     */
                    public list(request: google.cloud.compute.v1beta.IListSubnetworksRequest, callback: google.cloud.compute.v1beta.Subnetworks.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListSubnetworksRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListSubnetworksRequest): Promise<google.cloud.compute.v1beta.SubnetworkList>;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableSubnetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UsableSubnetworksAggregatedList
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableSubnetworksRequest, callback: google.cloud.compute.v1beta.Subnetworks.ListUsableCallback): void;

                    /**
                     * Calls ListUsable.
                     * @param request ListUsableSubnetworksRequest message or plain object
                     * @returns Promise
                     */
                    public listUsable(request: google.cloud.compute.v1beta.IListUsableSubnetworksRequest): Promise<google.cloud.compute.v1beta.UsableSubnetworksAggregatedList>;

                    /**
                     * Calls Patch.
                     * @param request PatchSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchSubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchSubnetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Policy
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicySubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.SetIamPolicyCallback): void;

                    /**
                     * Calls SetIamPolicy.
                     * @param request SetIamPolicySubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public setIamPolicy(request: google.cloud.compute.v1beta.ISetIamPolicySubnetworkRequest): Promise<google.cloud.compute.v1beta.Policy>;

                    /**
                     * Calls SetPrivateIpGoogleAccess.
                     * @param request SetPrivateIpGoogleAccessSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setPrivateIpGoogleAccess(request: google.cloud.compute.v1beta.ISetPrivateIpGoogleAccessSubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.SetPrivateIpGoogleAccessCallback): void;

                    /**
                     * Calls SetPrivateIpGoogleAccess.
                     * @param request SetPrivateIpGoogleAccessSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public setPrivateIpGoogleAccess(request: google.cloud.compute.v1beta.ISetPrivateIpGoogleAccessSubnetworkRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSubnetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSubnetworkRequest, callback: google.cloud.compute.v1beta.Subnetworks.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsSubnetworkRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsSubnetworkRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace Subnetworks {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] SubnetworkAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SubnetworkAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|expandIpCidrRange}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type ExpandIpCidrRangeCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|get}.
                     * @param error Error, if any
                     * @param [response] Subnetwork
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Subnetwork) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|getIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type GetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|list}.
                     * @param error Error, if any
                     * @param [response] SubnetworkList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.SubnetworkList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|listUsable}.
                     * @param error Error, if any
                     * @param [response] UsableSubnetworksAggregatedList
                     */
                    type ListUsableCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.UsableSubnetworksAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|setIamPolicy}.
                     * @param error Error, if any
                     * @param [response] Policy
                     */
                    type SetIamPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Policy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|setPrivateIpGoogleAccess}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetPrivateIpGoogleAccessCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Subnetworks|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a TargetGrpcProxies */
                class TargetGrpcProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetGrpcProxies 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 TargetGrpcProxies 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): TargetGrpcProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetGrpcProxyRequest, callback: google.cloud.compute.v1beta.TargetGrpcProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetGrpcProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetGrpcProxy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetGrpcProxyRequest, callback: google.cloud.compute.v1beta.TargetGrpcProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetGrpcProxyRequest): Promise<google.cloud.compute.v1beta.TargetGrpcProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetGrpcProxyRequest, callback: google.cloud.compute.v1beta.TargetGrpcProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetGrpcProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetGrpcProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetGrpcProxyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetGrpcProxiesRequest, callback: google.cloud.compute.v1beta.TargetGrpcProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetGrpcProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetGrpcProxiesRequest): Promise<google.cloud.compute.v1beta.TargetGrpcProxyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchTargetGrpcProxyRequest, callback: google.cloud.compute.v1beta.TargetGrpcProxies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchTargetGrpcProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetGrpcProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetGrpcProxyRequest, callback: google.cloud.compute.v1beta.TargetGrpcProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetGrpcProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetGrpcProxyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace TargetGrpcProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetGrpcProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetGrpcProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetGrpcProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetGrpcProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetGrpcProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetGrpcProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetGrpcProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetGrpcProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetGrpcProxies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetGrpcProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a TargetHttpProxies */
                class TargetHttpProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetHttpProxies 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 TargetHttpProxies 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): TargetHttpProxies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetHttpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetHttpProxiesRequest, callback: google.cloud.compute.v1beta.TargetHttpProxies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetHttpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetHttpProxiesRequest): Promise<google.cloud.compute.v1beta.TargetHttpProxyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.TargetHttpProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetHttpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpProxyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetHttpProxiesRequest, callback: google.cloud.compute.v1beta.TargetHttpProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetHttpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetHttpProxiesRequest): Promise<google.cloud.compute.v1beta.TargetHttpProxyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpProxies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUrlMap(request: google.cloud.compute.v1beta.ISetUrlMapTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpProxies.SetUrlMapCallback): void;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setUrlMap(request: google.cloud.compute.v1beta.ISetUrlMapTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetHttpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetHttpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpProxyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace TargetHttpProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpProxies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpProxyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetHttpProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpProxies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpProxies|setUrlMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUrlMapCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a TargetHttpsProxies */
                class TargetHttpsProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetHttpsProxies 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 TargetHttpsProxies 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): TargetHttpsProxies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetHttpsProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetHttpsProxiesRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetHttpsProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetHttpsProxiesRequest): Promise<google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.TargetHttpsProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetHttpsProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetHttpsProxyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetHttpsProxiesRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetHttpsProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetHttpsProxiesRequest): Promise<google.cloud.compute.v1beta.TargetHttpsProxyList>;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetCertificateMap.
                     * @param request SetCertificateMapTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setCertificateMap(request: google.cloud.compute.v1beta.ISetCertificateMapTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.SetCertificateMapCallback): void;

                    /**
                     * Calls SetCertificateMap.
                     * @param request SetCertificateMapTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setCertificateMap(request: google.cloud.compute.v1beta.ISetCertificateMapTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetQuicOverride.
                     * @param request SetQuicOverrideTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setQuicOverride(request: google.cloud.compute.v1beta.ISetQuicOverrideTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.SetQuicOverrideCallback): void;

                    /**
                     * Calls SetQuicOverride.
                     * @param request SetQuicOverrideTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setQuicOverride(request: google.cloud.compute.v1beta.ISetQuicOverrideTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslCertificates(request: google.cloud.compute.v1beta.ISetSslCertificatesTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.SetSslCertificatesCallback): void;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslCertificates(request: google.cloud.compute.v1beta.ISetSslCertificatesTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetSslPolicy.
                     * @param request SetSslPolicyTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslPolicy(request: google.cloud.compute.v1beta.ISetSslPolicyTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.SetSslPolicyCallback): void;

                    /**
                     * Calls SetSslPolicy.
                     * @param request SetSslPolicyTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslPolicy(request: google.cloud.compute.v1beta.ISetSslPolicyTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setUrlMap(request: google.cloud.compute.v1beta.ISetUrlMapTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.SetUrlMapCallback): void;

                    /**
                     * Calls SetUrlMap.
                     * @param request SetUrlMapTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setUrlMap(request: google.cloud.compute.v1beta.ISetUrlMapTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetHttpsProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpsProxyRequest, callback: google.cloud.compute.v1beta.TargetHttpsProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetHttpsProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetHttpsProxyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace TargetHttpsProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpsProxyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpsProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetHttpsProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetHttpsProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|setCertificateMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetCertificateMapCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|setQuicOverride}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetQuicOverrideCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|setSslCertificates}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslCertificatesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|setSslPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|setUrlMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetUrlMapCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetHttpsProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a TargetInstances */
                class TargetInstances extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetInstances 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 TargetInstances 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): TargetInstances;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetInstanceAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetInstancesRequest, callback: google.cloud.compute.v1beta.TargetInstances.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetInstancesRequest): Promise<google.cloud.compute.v1beta.TargetInstanceAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetInstanceRequest, callback: google.cloud.compute.v1beta.TargetInstances.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetInstance
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetInstanceRequest, callback: google.cloud.compute.v1beta.TargetInstances.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetInstanceRequest): Promise<google.cloud.compute.v1beta.TargetInstance>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetInstanceRequest, callback: google.cloud.compute.v1beta.TargetInstances.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetInstancesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetInstanceList
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetInstancesRequest, callback: google.cloud.compute.v1beta.TargetInstances.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetInstancesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetInstancesRequest): Promise<google.cloud.compute.v1beta.TargetInstanceList>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyTargetInstanceRequest, callback: google.cloud.compute.v1beta.TargetInstances.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyTargetInstanceRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetInstanceRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetInstanceRequest, callback: google.cloud.compute.v1beta.TargetInstances.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetInstanceRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetInstanceRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace TargetInstances {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetInstances|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetInstanceAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetInstanceAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetInstances|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetInstances|get}.
                     * @param error Error, if any
                     * @param [response] TargetInstance
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetInstance) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetInstances|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetInstances|list}.
                     * @param error Error, if any
                     * @param [response] TargetInstanceList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetInstanceList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetInstances|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetInstances|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a TargetPools */
                class TargetPools extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetPools 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 TargetPools 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): TargetPools;

                    /**
                     * Calls AddHealthCheck.
                     * @param request AddHealthCheckTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addHealthCheck(request: google.cloud.compute.v1beta.IAddHealthCheckTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.AddHealthCheckCallback): void;

                    /**
                     * Calls AddHealthCheck.
                     * @param request AddHealthCheckTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public addHealthCheck(request: google.cloud.compute.v1beta.IAddHealthCheckTargetPoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AddInstance.
                     * @param request AddInstanceTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public addInstance(request: google.cloud.compute.v1beta.IAddInstanceTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.AddInstanceCallback): void;

                    /**
                     * Calls AddInstance.
                     * @param request AddInstanceTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public addInstance(request: google.cloud.compute.v1beta.IAddInstanceTargetPoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetPoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetPoolAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetPoolsRequest, callback: google.cloud.compute.v1beta.TargetPools.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetPoolsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetPoolsRequest): Promise<google.cloud.compute.v1beta.TargetPoolAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetPoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetPool
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetPoolRequest): Promise<google.cloud.compute.v1beta.TargetPool>;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetPoolInstanceHealth
                     */
                    public getHealth(request: google.cloud.compute.v1beta.IGetHealthTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.GetHealthCallback): void;

                    /**
                     * Calls GetHealth.
                     * @param request GetHealthTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public getHealth(request: google.cloud.compute.v1beta.IGetHealthTargetPoolRequest): Promise<google.cloud.compute.v1beta.TargetPoolInstanceHealth>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetPoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetPoolsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetPoolList
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetPoolsRequest, callback: google.cloud.compute.v1beta.TargetPools.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetPoolsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetPoolsRequest): Promise<google.cloud.compute.v1beta.TargetPoolList>;

                    /**
                     * Calls RemoveHealthCheck.
                     * @param request RemoveHealthCheckTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeHealthCheck(request: google.cloud.compute.v1beta.IRemoveHealthCheckTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.RemoveHealthCheckCallback): void;

                    /**
                     * Calls RemoveHealthCheck.
                     * @param request RemoveHealthCheckTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public removeHealthCheck(request: google.cloud.compute.v1beta.IRemoveHealthCheckTargetPoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls RemoveInstance.
                     * @param request RemoveInstanceTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public removeInstance(request: google.cloud.compute.v1beta.IRemoveInstanceTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.RemoveInstanceCallback): void;

                    /**
                     * Calls RemoveInstance.
                     * @param request RemoveInstanceTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public removeInstance(request: google.cloud.compute.v1beta.IRemoveInstanceTargetPoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetBackup.
                     * @param request SetBackupTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setBackup(request: google.cloud.compute.v1beta.ISetBackupTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.SetBackupCallback): void;

                    /**
                     * Calls SetBackup.
                     * @param request SetBackupTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public setBackup(request: google.cloud.compute.v1beta.ISetBackupTargetPoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.SetSecurityPolicyCallback): void;

                    /**
                     * Calls SetSecurityPolicy.
                     * @param request SetSecurityPolicyTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public setSecurityPolicy(request: google.cloud.compute.v1beta.ISetSecurityPolicyTargetPoolRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetPoolRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetPoolRequest, callback: google.cloud.compute.v1beta.TargetPools.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetPoolRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetPoolRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace TargetPools {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|addHealthCheck}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddHealthCheckCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|addInstance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type AddInstanceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetPoolAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetPoolAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|get}.
                     * @param error Error, if any
                     * @param [response] TargetPool
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetPool) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|getHealth}.
                     * @param error Error, if any
                     * @param [response] TargetPoolInstanceHealth
                     */
                    type GetHealthCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetPoolInstanceHealth) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|list}.
                     * @param error Error, if any
                     * @param [response] TargetPoolList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetPoolList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|removeHealthCheck}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveHealthCheckCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|removeInstance}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RemoveInstanceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|setBackup}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetBackupCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|setSecurityPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSecurityPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetPools|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a TargetSslProxies */
                class TargetSslProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetSslProxies 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 TargetSslProxies 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): TargetSslProxies;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetSslProxy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.TargetSslProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetSslProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetSslProxyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetSslProxiesRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetSslProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetSslProxiesRequest): Promise<google.cloud.compute.v1beta.TargetSslProxyList>;

                    /**
                     * Calls SetBackendService.
                     * @param request SetBackendServiceTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setBackendService(request: google.cloud.compute.v1beta.ISetBackendServiceTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.SetBackendServiceCallback): void;

                    /**
                     * Calls SetBackendService.
                     * @param request SetBackendServiceTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setBackendService(request: google.cloud.compute.v1beta.ISetBackendServiceTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetCertificateMap.
                     * @param request SetCertificateMapTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setCertificateMap(request: google.cloud.compute.v1beta.ISetCertificateMapTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.SetCertificateMapCallback): void;

                    /**
                     * Calls SetCertificateMap.
                     * @param request SetCertificateMapTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setCertificateMap(request: google.cloud.compute.v1beta.ISetCertificateMapTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetProxyHeader.
                     * @param request SetProxyHeaderTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setProxyHeader(request: google.cloud.compute.v1beta.ISetProxyHeaderTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.SetProxyHeaderCallback): void;

                    /**
                     * Calls SetProxyHeader.
                     * @param request SetProxyHeaderTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setProxyHeader(request: google.cloud.compute.v1beta.ISetProxyHeaderTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslCertificates(request: google.cloud.compute.v1beta.ISetSslCertificatesTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.SetSslCertificatesCallback): void;

                    /**
                     * Calls SetSslCertificates.
                     * @param request SetSslCertificatesTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslCertificates(request: google.cloud.compute.v1beta.ISetSslCertificatesTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetSslPolicy.
                     * @param request SetSslPolicyTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setSslPolicy(request: google.cloud.compute.v1beta.ISetSslPolicyTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.SetSslPolicyCallback): void;

                    /**
                     * Calls SetSslPolicy.
                     * @param request SetSslPolicyTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setSslPolicy(request: google.cloud.compute.v1beta.ISetSslPolicyTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetSslProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetSslProxyRequest, callback: google.cloud.compute.v1beta.TargetSslProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetSslProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetSslProxyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace TargetSslProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetSslProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetSslProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetSslProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetSslProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|setBackendService}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetBackendServiceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|setCertificateMap}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetCertificateMapCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|setProxyHeader}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetProxyHeaderCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|setSslCertificates}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslCertificatesCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|setSslPolicy}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetSslPolicyCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetSslProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a TargetTcpProxies */
                class TargetTcpProxies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetTcpProxies 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 TargetTcpProxies 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): TargetTcpProxies;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetTcpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxyAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetTcpProxiesRequest, callback: google.cloud.compute.v1beta.TargetTcpProxies.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetTcpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetTcpProxiesRequest): Promise<google.cloud.compute.v1beta.TargetTcpProxyAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.TargetTcpProxies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.TargetTcpProxies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.TargetTcpProxy>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.TargetTcpProxies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetTcpProxiesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetTcpProxyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetTcpProxiesRequest, callback: google.cloud.compute.v1beta.TargetTcpProxies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetTcpProxiesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetTcpProxiesRequest): Promise<google.cloud.compute.v1beta.TargetTcpProxyList>;

                    /**
                     * Calls SetBackendService.
                     * @param request SetBackendServiceTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setBackendService(request: google.cloud.compute.v1beta.ISetBackendServiceTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.TargetTcpProxies.SetBackendServiceCallback): void;

                    /**
                     * Calls SetBackendService.
                     * @param request SetBackendServiceTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setBackendService(request: google.cloud.compute.v1beta.ISetBackendServiceTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls SetProxyHeader.
                     * @param request SetProxyHeaderTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setProxyHeader(request: google.cloud.compute.v1beta.ISetProxyHeaderTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.TargetTcpProxies.SetProxyHeaderCallback): void;

                    /**
                     * Calls SetProxyHeader.
                     * @param request SetProxyHeaderTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public setProxyHeader(request: google.cloud.compute.v1beta.ISetProxyHeaderTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetTcpProxyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetTcpProxyRequest, callback: google.cloud.compute.v1beta.TargetTcpProxies.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetTcpProxyRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetTcpProxyRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace TargetTcpProxies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetTcpProxies|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxyAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetTcpProxyAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetTcpProxies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetTcpProxies|get}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetTcpProxy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetTcpProxies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetTcpProxies|list}.
                     * @param error Error, if any
                     * @param [response] TargetTcpProxyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetTcpProxyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetTcpProxies|setBackendService}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetBackendServiceCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetTcpProxies|setProxyHeader}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetProxyHeaderCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetTcpProxies|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a TargetVpnGateways */
                class TargetVpnGateways extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TargetVpnGateways 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 TargetVpnGateways 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): TargetVpnGateways;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetVpnGatewayAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetVpnGatewaysRequest, callback: google.cloud.compute.v1beta.TargetVpnGateways.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListTargetVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListTargetVpnGatewaysRequest): Promise<google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetVpnGatewayRequest, callback: google.cloud.compute.v1beta.TargetVpnGateways.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteTargetVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetVpnGateway
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetVpnGatewayRequest, callback: google.cloud.compute.v1beta.TargetVpnGateways.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetTargetVpnGatewayRequest): Promise<google.cloud.compute.v1beta.TargetVpnGateway>;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetVpnGatewayRequest, callback: google.cloud.compute.v1beta.TargetVpnGateways.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertTargetVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListTargetVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TargetVpnGatewayList
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetVpnGatewaysRequest, callback: google.cloud.compute.v1beta.TargetVpnGateways.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListTargetVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListTargetVpnGatewaysRequest): Promise<google.cloud.compute.v1beta.TargetVpnGatewayList>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsTargetVpnGatewayRequest, callback: google.cloud.compute.v1beta.TargetVpnGateways.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsTargetVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetVpnGatewayRequest, callback: google.cloud.compute.v1beta.TargetVpnGateways.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsTargetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsTargetVpnGatewayRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace TargetVpnGateways {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetVpnGateways|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] TargetVpnGatewayAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetVpnGatewayAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetVpnGateways|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetVpnGateways|get}.
                     * @param error Error, if any
                     * @param [response] TargetVpnGateway
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetVpnGateway) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetVpnGateways|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetVpnGateways|list}.
                     * @param error Error, if any
                     * @param [response] TargetVpnGatewayList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TargetVpnGatewayList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetVpnGateways|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.TargetVpnGateways|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents an UrlMaps */
                class UrlMaps extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new UrlMaps 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 UrlMaps 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): UrlMaps;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListUrlMapsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapsAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListUrlMapsRequest, callback: google.cloud.compute.v1beta.UrlMaps.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListUrlMapsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListUrlMapsRequest): Promise<google.cloud.compute.v1beta.UrlMapsAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteUrlMapRequest, callback: google.cloud.compute.v1beta.UrlMaps.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMap
                     */
                    public get(request: google.cloud.compute.v1beta.IGetUrlMapRequest, callback: google.cloud.compute.v1beta.UrlMaps.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetUrlMapRequest): Promise<google.cloud.compute.v1beta.UrlMap>;

                    /**
                     * Calls Insert.
                     * @param request InsertUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertUrlMapRequest, callback: google.cloud.compute.v1beta.UrlMaps.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls InvalidateCache.
                     * @param request InvalidateCacheUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public invalidateCache(request: google.cloud.compute.v1beta.IInvalidateCacheUrlMapRequest, callback: google.cloud.compute.v1beta.UrlMaps.InvalidateCacheCallback): void;

                    /**
                     * Calls InvalidateCache.
                     * @param request InvalidateCacheUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public invalidateCache(request: google.cloud.compute.v1beta.IInvalidateCacheUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListUrlMapsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapList
                     */
                    public list(request: google.cloud.compute.v1beta.IListUrlMapsRequest, callback: google.cloud.compute.v1beta.UrlMaps.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListUrlMapsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListUrlMapsRequest): Promise<google.cloud.compute.v1beta.UrlMapList>;

                    /**
                     * Calls Patch.
                     * @param request PatchUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchUrlMapRequest, callback: google.cloud.compute.v1beta.UrlMaps.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsUrlMapRequest, callback: google.cloud.compute.v1beta.UrlMaps.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsUrlMapRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;

                    /**
                     * Calls Update.
                     * @param request UpdateUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateUrlMapRequest, callback: google.cloud.compute.v1beta.UrlMaps.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateUrlMapRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Validate.
                     * @param request ValidateUrlMapRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and UrlMapsValidateResponse
                     */
                    public validate(request: google.cloud.compute.v1beta.IValidateUrlMapRequest, callback: google.cloud.compute.v1beta.UrlMaps.ValidateCallback): void;

                    /**
                     * Calls Validate.
                     * @param request ValidateUrlMapRequest message or plain object
                     * @returns Promise
                     */
                    public validate(request: google.cloud.compute.v1beta.IValidateUrlMapRequest): Promise<google.cloud.compute.v1beta.UrlMapsValidateResponse>;
                }

                namespace UrlMaps {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] UrlMapsAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.UrlMapsAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|get}.
                     * @param error Error, if any
                     * @param [response] UrlMap
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.UrlMap) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|invalidateCache}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InvalidateCacheCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|list}.
                     * @param error Error, if any
                     * @param [response] UrlMapList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.UrlMapList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.UrlMaps|validate}.
                     * @param error Error, if any
                     * @param [response] UrlMapsValidateResponse
                     */
                    type ValidateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.UrlMapsValidateResponse) => void;
                }

                /** Represents a VpnGateways */
                class VpnGateways extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new VpnGateways 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 VpnGateways 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): VpnGateways;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnGatewayAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListVpnGatewaysRequest, callback: google.cloud.compute.v1beta.VpnGateways.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListVpnGatewaysRequest): Promise<google.cloud.compute.v1beta.VpnGatewayAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteVpnGatewayRequest, callback: google.cloud.compute.v1beta.VpnGateways.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnGateway
                     */
                    public get(request: google.cloud.compute.v1beta.IGetVpnGatewayRequest, callback: google.cloud.compute.v1beta.VpnGateways.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetVpnGatewayRequest): Promise<google.cloud.compute.v1beta.VpnGateway>;

                    /**
                     * Calls GetStatus.
                     * @param request GetStatusVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnGatewaysGetStatusResponse
                     */
                    public getStatus(request: google.cloud.compute.v1beta.IGetStatusVpnGatewayRequest, callback: google.cloud.compute.v1beta.VpnGateways.GetStatusCallback): void;

                    /**
                     * Calls GetStatus.
                     * @param request GetStatusVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public getStatus(request: google.cloud.compute.v1beta.IGetStatusVpnGatewayRequest): Promise<google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse>;

                    /**
                     * Calls Insert.
                     * @param request InsertVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertVpnGatewayRequest, callback: google.cloud.compute.v1beta.VpnGateways.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListVpnGatewaysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnGatewayList
                     */
                    public list(request: google.cloud.compute.v1beta.IListVpnGatewaysRequest, callback: google.cloud.compute.v1beta.VpnGateways.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListVpnGatewaysRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListVpnGatewaysRequest): Promise<google.cloud.compute.v1beta.VpnGatewayList>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsVpnGatewayRequest, callback: google.cloud.compute.v1beta.VpnGateways.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsVpnGatewayRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsVpnGatewayRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsVpnGatewayRequest, callback: google.cloud.compute.v1beta.VpnGateways.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsVpnGatewayRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsVpnGatewayRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace VpnGateways {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnGateways|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] VpnGatewayAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VpnGatewayAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnGateways|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnGateways|get}.
                     * @param error Error, if any
                     * @param [response] VpnGateway
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VpnGateway) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnGateways|getStatus}.
                     * @param error Error, if any
                     * @param [response] VpnGatewaysGetStatusResponse
                     */
                    type GetStatusCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VpnGatewaysGetStatusResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnGateways|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnGateways|list}.
                     * @param error Error, if any
                     * @param [response] VpnGatewayList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VpnGatewayList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnGateways|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnGateways|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a VpnTunnels */
                class VpnTunnels extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new VpnTunnels 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 VpnTunnels 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): VpnTunnels;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListVpnTunnelsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnTunnelAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListVpnTunnelsRequest, callback: google.cloud.compute.v1beta.VpnTunnels.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListVpnTunnelsRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1beta.IAggregatedListVpnTunnelsRequest): Promise<google.cloud.compute.v1beta.VpnTunnelAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteVpnTunnelRequest, callback: google.cloud.compute.v1beta.VpnTunnels.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteVpnTunnelRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnTunnel
                     */
                    public get(request: google.cloud.compute.v1beta.IGetVpnTunnelRequest, callback: google.cloud.compute.v1beta.VpnTunnels.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetVpnTunnelRequest): Promise<google.cloud.compute.v1beta.VpnTunnel>;

                    /**
                     * Calls Insert.
                     * @param request InsertVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertVpnTunnelRequest, callback: google.cloud.compute.v1beta.VpnTunnels.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertVpnTunnelRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListVpnTunnelsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VpnTunnelList
                     */
                    public list(request: google.cloud.compute.v1beta.IListVpnTunnelsRequest, callback: google.cloud.compute.v1beta.VpnTunnels.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListVpnTunnelsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListVpnTunnelsRequest): Promise<google.cloud.compute.v1beta.VpnTunnelList>;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsVpnTunnelRequest, callback: google.cloud.compute.v1beta.VpnTunnels.SetLabelsCallback): void;

                    /**
                     * Calls SetLabels.
                     * @param request SetLabelsVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public setLabels(request: google.cloud.compute.v1beta.ISetLabelsVpnTunnelRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsVpnTunnelRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TestPermissionsResponse
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsVpnTunnelRequest, callback: google.cloud.compute.v1beta.VpnTunnels.TestIamPermissionsCallback): void;

                    /**
                     * Calls TestIamPermissions.
                     * @param request TestIamPermissionsVpnTunnelRequest message or plain object
                     * @returns Promise
                     */
                    public testIamPermissions(request: google.cloud.compute.v1beta.ITestIamPermissionsVpnTunnelRequest): Promise<google.cloud.compute.v1beta.TestPermissionsResponse>;
                }

                namespace VpnTunnels {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnTunnels|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] VpnTunnelAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VpnTunnelAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnTunnels|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnTunnels|get}.
                     * @param error Error, if any
                     * @param [response] VpnTunnel
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VpnTunnel) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnTunnels|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnTunnels|list}.
                     * @param error Error, if any
                     * @param [response] VpnTunnelList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VpnTunnelList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnTunnels|setLabels}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type SetLabelsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.VpnTunnels|testIamPermissions}.
                     * @param error Error, if any
                     * @param [response] TestPermissionsResponse
                     */
                    type TestIamPermissionsCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.TestPermissionsResponse) => void;
                }

                /** Represents a WireGroups */
                class WireGroups extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new WireGroups 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 WireGroups 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): WireGroups;

                    /**
                     * Calls Delete.
                     * @param request DeleteWireGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteWireGroupRequest, callback: google.cloud.compute.v1beta.WireGroups.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteWireGroupRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteWireGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetWireGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and WireGroup
                     */
                    public get(request: google.cloud.compute.v1beta.IGetWireGroupRequest, callback: google.cloud.compute.v1beta.WireGroups.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetWireGroupRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetWireGroupRequest): Promise<google.cloud.compute.v1beta.WireGroup>;

                    /**
                     * Calls Insert.
                     * @param request InsertWireGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertWireGroupRequest, callback: google.cloud.compute.v1beta.WireGroups.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertWireGroupRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertWireGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListWireGroupsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and WireGroupList
                     */
                    public list(request: google.cloud.compute.v1beta.IListWireGroupsRequest, callback: google.cloud.compute.v1beta.WireGroups.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListWireGroupsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListWireGroupsRequest): Promise<google.cloud.compute.v1beta.WireGroupList>;

                    /**
                     * Calls Patch.
                     * @param request PatchWireGroupRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchWireGroupRequest, callback: google.cloud.compute.v1beta.WireGroups.PatchCallback): void;

                    /**
                     * Calls Patch.
                     * @param request PatchWireGroupRequest message or plain object
                     * @returns Promise
                     */
                    public patch(request: google.cloud.compute.v1beta.IPatchWireGroupRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace WireGroups {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.WireGroups|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.WireGroups|get}.
                     * @param error Error, if any
                     * @param [response] WireGroup
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.WireGroup) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.WireGroups|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.WireGroups|list}.
                     * @param error Error, if any
                     * @param [response] WireGroupList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.WireGroupList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.WireGroups|patch}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type PatchCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a ZoneOperations */
                class ZoneOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ZoneOperations 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 ZoneOperations 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): ZoneOperations;

                    /**
                     * Calls Delete.
                     * @param request DeleteZoneOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeleteZoneOperationResponse
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteZoneOperationRequest, callback: google.cloud.compute.v1beta.ZoneOperations.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteZoneOperationRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteZoneOperationRequest): Promise<google.cloud.compute.v1beta.DeleteZoneOperationResponse>;

                    /**
                     * Calls Get.
                     * @param request GetZoneOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1beta.IGetZoneOperationRequest, callback: google.cloud.compute.v1beta.ZoneOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetZoneOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetZoneOperationRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListZoneOperationsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and OperationList
                     */
                    public list(request: google.cloud.compute.v1beta.IListZoneOperationsRequest, callback: google.cloud.compute.v1beta.ZoneOperations.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListZoneOperationsRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListZoneOperationsRequest): Promise<google.cloud.compute.v1beta.OperationList>;

                    /**
                     * Calls Wait.
                     * @param request WaitZoneOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public wait(request: google.cloud.compute.v1beta.IWaitZoneOperationRequest, callback: google.cloud.compute.v1beta.ZoneOperations.WaitCallback): void;

                    /**
                     * Calls Wait.
                     * @param request WaitZoneOperationRequest message or plain object
                     * @returns Promise
                     */
                    public wait(request: google.cloud.compute.v1beta.IWaitZoneOperationRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace ZoneOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneOperations|delete_}.
                     * @param error Error, if any
                     * @param [response] DeleteZoneOperationResponse
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.DeleteZoneOperationResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneOperations|list}.
                     * @param error Error, if any
                     * @param [response] OperationList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.OperationList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneOperations|wait}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WaitCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a ZoneVmExtensionPolicies */
                class ZoneVmExtensionPolicies extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ZoneVmExtensionPolicies 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 ZoneVmExtensionPolicies 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): ZoneVmExtensionPolicies;

                    /**
                     * Calls Delete.
                     * @param request DeleteZoneVmExtensionPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteZoneVmExtensionPolicyRequest, callback: google.cloud.compute.v1beta.ZoneVmExtensionPolicies.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteZoneVmExtensionPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1beta.IDeleteZoneVmExtensionPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls Get.
                     * @param request GetZoneVmExtensionPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VmExtensionPolicy
                     */
                    public get(request: google.cloud.compute.v1beta.IGetZoneVmExtensionPolicyRequest, callback: google.cloud.compute.v1beta.ZoneVmExtensionPolicies.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetZoneVmExtensionPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetZoneVmExtensionPolicyRequest): Promise<google.cloud.compute.v1beta.VmExtensionPolicy>;

                    /**
                     * Calls Insert.
                     * @param request InsertZoneVmExtensionPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertZoneVmExtensionPolicyRequest, callback: google.cloud.compute.v1beta.ZoneVmExtensionPolicies.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertZoneVmExtensionPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1beta.IInsertZoneVmExtensionPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;

                    /**
                     * Calls List.
                     * @param request ListZoneVmExtensionPoliciesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and VmExtensionPolicyList
                     */
                    public list(request: google.cloud.compute.v1beta.IListZoneVmExtensionPoliciesRequest, callback: google.cloud.compute.v1beta.ZoneVmExtensionPolicies.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListZoneVmExtensionPoliciesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListZoneVmExtensionPoliciesRequest): Promise<google.cloud.compute.v1beta.VmExtensionPolicyList>;

                    /**
                     * Calls Update.
                     * @param request UpdateZoneVmExtensionPolicyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateZoneVmExtensionPolicyRequest, callback: google.cloud.compute.v1beta.ZoneVmExtensionPolicies.UpdateCallback): void;

                    /**
                     * Calls Update.
                     * @param request UpdateZoneVmExtensionPolicyRequest message or plain object
                     * @returns Promise
                     */
                    public update(request: google.cloud.compute.v1beta.IUpdateZoneVmExtensionPolicyRequest): Promise<google.cloud.compute.v1beta.Operation>;
                }

                namespace ZoneVmExtensionPolicies {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneVmExtensionPolicies|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneVmExtensionPolicies|get}.
                     * @param error Error, if any
                     * @param [response] VmExtensionPolicy
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VmExtensionPolicy) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneVmExtensionPolicies|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneVmExtensionPolicies|list}.
                     * @param error Error, if any
                     * @param [response] VmExtensionPolicyList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.VmExtensionPolicyList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.ZoneVmExtensionPolicies|update}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Operation) => void;
                }

                /** Represents a Zones */
                class Zones extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Zones 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 Zones 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): Zones;

                    /**
                     * Calls Get.
                     * @param request GetZoneRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Zone
                     */
                    public get(request: google.cloud.compute.v1beta.IGetZoneRequest, callback: google.cloud.compute.v1beta.Zones.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetZoneRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1beta.IGetZoneRequest): Promise<google.cloud.compute.v1beta.Zone>;

                    /**
                     * Calls List.
                     * @param request ListZonesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ZoneList
                     */
                    public list(request: google.cloud.compute.v1beta.IListZonesRequest, callback: google.cloud.compute.v1beta.Zones.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListZonesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1beta.IListZonesRequest): Promise<google.cloud.compute.v1beta.ZoneList>;
                }

                namespace Zones {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Zones|get}.
                     * @param error Error, if any
                     * @param [response] Zone
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.Zone) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1beta.Zones|list}.
                     * @param error Error, if any
                     * @param [response] ZoneList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1beta.ZoneList) => void;
                }
            }

            /** Namespace v1small. */
            namespace v1small {

                /** Properties of an Address. */
                interface IAddress {

                    /** Address address */
                    address?: (string|null);

                    /** Address addressType */
                    addressType?: (string|null);

                    /** Address creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Address description */
                    description?: (string|null);

                    /** Address id */
                    id?: (number|Long|string|null);

                    /** Address ipVersion */
                    ipVersion?: (string|null);

                    /** Address kind */
                    kind?: (string|null);

                    /** Address name */
                    name?: (string|null);

                    /** Address network */
                    network?: (string|null);

                    /** Address networkTier */
                    networkTier?: (string|null);

                    /** Address prefixLength */
                    prefixLength?: (number|null);

                    /** Address purpose */
                    purpose?: (string|null);

                    /** Address region */
                    region?: (string|null);

                    /** Address selfLink */
                    selfLink?: (string|null);

                    /** Address status */
                    status?: (string|null);

                    /** Address subnetwork */
                    subnetwork?: (string|null);

                    /** Address users */
                    users?: (string[]|null);
                }

                /** Represents an Address. */
                class Address implements IAddress {

                    /**
                     * Constructs a new Address.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IAddress);

                    /** Address address. */
                    public address?: (string|null);

                    /** Address addressType. */
                    public addressType?: (string|null);

                    /** Address creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Address description. */
                    public description?: (string|null);

                    /** Address id. */
                    public id?: (number|Long|string|null);

                    /** Address ipVersion. */
                    public ipVersion?: (string|null);

                    /** Address kind. */
                    public kind?: (string|null);

                    /** Address name. */
                    public name?: (string|null);

                    /** Address network. */
                    public network?: (string|null);

                    /** Address networkTier. */
                    public networkTier?: (string|null);

                    /** Address prefixLength. */
                    public prefixLength?: (number|null);

                    /** Address purpose. */
                    public purpose?: (string|null);

                    /** Address region. */
                    public region?: (string|null);

                    /** Address selfLink. */
                    public selfLink?: (string|null);

                    /** Address status. */
                    public status?: (string|null);

                    /** Address subnetwork. */
                    public subnetwork?: (string|null);

                    /** Address users. */
                    public users: string[];

                    /**
                     * Creates a new Address instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Address instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IAddress): google.cloud.compute.v1small.Address;

                    /**
                     * Encodes the specified Address message. Does not implicitly {@link google.cloud.compute.v1small.Address.verify|verify} messages.
                     * @param message Address message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Address message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.Address.verify|verify} messages.
                     * @param message Address message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Address message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Address
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.Address;

                    /**
                     * Decodes an Address message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Address
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.Address;

                    /**
                     * Verifies an Address message.
                     * @param message Plain 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 Address message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Address
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.Address;

                    /**
                     * Creates a plain object from an Address message. Also converts values to other types if specified.
                     * @param message Address
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.Address, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Address to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Address
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Address {

                    /** AddressType enum. */
                    enum AddressType {
                        UNDEFINED_ADDRESS_TYPE = 0,
                        EXTERNAL = 35607499,
                        INTERNAL = 279295677,
                        UNSPECIFIED_TYPE = 53933922
                    }

                    /** IpVersion enum. */
                    enum IpVersion {
                        UNDEFINED_IP_VERSION = 0,
                        IPV4 = 2254341,
                        IPV6 = 2254343,
                        UNSPECIFIED_VERSION = 21850000
                    }

                    /** NetworkTier enum. */
                    enum NetworkTier {
                        UNDEFINED_NETWORK_TIER = 0,
                        PREMIUM = 399530551,
                        STANDARD = 484642493
                    }

                    /** Purpose enum. */
                    enum Purpose {
                        UNDEFINED_PURPOSE = 0,
                        DNS_RESOLVER = 476114556,
                        GCE_ENDPOINT = 230515243,
                        NAT_AUTO = 163666477,
                        VPC_PEERING = 400800170
                    }

                    /** Status enum. */
                    enum Status {
                        UNDEFINED_STATUS = 0,
                        IN_USE = 17393485,
                        RESERVED = 432241448,
                        RESERVING = 514587225
                    }
                }

                /** Properties of an AddressAggregatedList. */
                interface IAddressAggregatedList {

                    /** AddressAggregatedList id */
                    id?: (string|null);

                    /** AddressAggregatedList items */
                    items?: ({ [k: string]: google.cloud.compute.v1small.IAddressesScopedList }|null);

                    /** AddressAggregatedList kind */
                    kind?: (string|null);

                    /** AddressAggregatedList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AddressAggregatedList selfLink */
                    selfLink?: (string|null);

                    /** AddressAggregatedList warning */
                    warning?: (google.cloud.compute.v1small.IWarning|null);
                }

                /** Represents an AddressAggregatedList. */
                class AddressAggregatedList implements IAddressAggregatedList {

                    /**
                     * Constructs a new AddressAggregatedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IAddressAggregatedList);

                    /** AddressAggregatedList id. */
                    public id?: (string|null);

                    /** AddressAggregatedList items. */
                    public items: { [k: string]: google.cloud.compute.v1small.IAddressesScopedList };

                    /** AddressAggregatedList kind. */
                    public kind?: (string|null);

                    /** AddressAggregatedList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AddressAggregatedList selfLink. */
                    public selfLink?: (string|null);

                    /** AddressAggregatedList warning. */
                    public warning?: (google.cloud.compute.v1small.IWarning|null);

                    /**
                     * Creates a new AddressAggregatedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddressAggregatedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IAddressAggregatedList): google.cloud.compute.v1small.AddressAggregatedList;

                    /**
                     * Encodes the specified AddressAggregatedList message. Does not implicitly {@link google.cloud.compute.v1small.AddressAggregatedList.verify|verify} messages.
                     * @param message AddressAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IAddressAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddressAggregatedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.AddressAggregatedList.verify|verify} messages.
                     * @param message AddressAggregatedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IAddressAggregatedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddressAggregatedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddressAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.AddressAggregatedList;

                    /**
                     * Decodes an AddressAggregatedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddressAggregatedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.AddressAggregatedList;

                    /**
                     * Verifies an AddressAggregatedList message.
                     * @param message Plain 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 AddressAggregatedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddressAggregatedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.AddressAggregatedList;

                    /**
                     * Creates a plain object from an AddressAggregatedList message. Also converts values to other types if specified.
                     * @param message AddressAggregatedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.AddressAggregatedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddressAggregatedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddressAggregatedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddressList. */
                interface IAddressList {

                    /** AddressList id */
                    id?: (string|null);

                    /** AddressList items */
                    items?: (google.cloud.compute.v1small.IAddress[]|null);

                    /** AddressList kind */
                    kind?: (string|null);

                    /** AddressList nextPageToken */
                    nextPageToken?: (string|null);

                    /** AddressList selfLink */
                    selfLink?: (string|null);

                    /** AddressList warning */
                    warning?: (google.cloud.compute.v1small.IWarning|null);
                }

                /** Represents an AddressList. */
                class AddressList implements IAddressList {

                    /**
                     * Constructs a new AddressList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IAddressList);

                    /** AddressList id. */
                    public id?: (string|null);

                    /** AddressList items. */
                    public items: google.cloud.compute.v1small.IAddress[];

                    /** AddressList kind. */
                    public kind?: (string|null);

                    /** AddressList nextPageToken. */
                    public nextPageToken?: (string|null);

                    /** AddressList selfLink. */
                    public selfLink?: (string|null);

                    /** AddressList warning. */
                    public warning?: (google.cloud.compute.v1small.IWarning|null);

                    /**
                     * Creates a new AddressList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddressList instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IAddressList): google.cloud.compute.v1small.AddressList;

                    /**
                     * Encodes the specified AddressList message. Does not implicitly {@link google.cloud.compute.v1small.AddressList.verify|verify} messages.
                     * @param message AddressList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IAddressList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddressList message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.AddressList.verify|verify} messages.
                     * @param message AddressList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IAddressList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddressList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddressList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.AddressList;

                    /**
                     * Decodes an AddressList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddressList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.AddressList;

                    /**
                     * Verifies an AddressList message.
                     * @param message Plain 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 AddressList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddressList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.AddressList;

                    /**
                     * Creates a plain object from an AddressList message. Also converts values to other types if specified.
                     * @param message AddressList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.AddressList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddressList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddressList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AddressesScopedList. */
                interface IAddressesScopedList {

                    /** AddressesScopedList addresses */
                    addresses?: (google.cloud.compute.v1small.IAddress[]|null);

                    /** AddressesScopedList warning */
                    warning?: (google.cloud.compute.v1small.IWarning|null);
                }

                /** Represents an AddressesScopedList. */
                class AddressesScopedList implements IAddressesScopedList {

                    /**
                     * Constructs a new AddressesScopedList.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IAddressesScopedList);

                    /** AddressesScopedList addresses. */
                    public addresses: google.cloud.compute.v1small.IAddress[];

                    /** AddressesScopedList warning. */
                    public warning?: (google.cloud.compute.v1small.IWarning|null);

                    /**
                     * Creates a new AddressesScopedList instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AddressesScopedList instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IAddressesScopedList): google.cloud.compute.v1small.AddressesScopedList;

                    /**
                     * Encodes the specified AddressesScopedList message. Does not implicitly {@link google.cloud.compute.v1small.AddressesScopedList.verify|verify} messages.
                     * @param message AddressesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IAddressesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AddressesScopedList message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.AddressesScopedList.verify|verify} messages.
                     * @param message AddressesScopedList message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IAddressesScopedList, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AddressesScopedList message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AddressesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.AddressesScopedList;

                    /**
                     * Decodes an AddressesScopedList message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AddressesScopedList
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.AddressesScopedList;

                    /**
                     * Verifies an AddressesScopedList message.
                     * @param message Plain 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 AddressesScopedList message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AddressesScopedList
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.AddressesScopedList;

                    /**
                     * Creates a plain object from an AddressesScopedList message. Also converts values to other types if specified.
                     * @param message AddressesScopedList
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.AddressesScopedList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AddressesScopedList to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AddressesScopedList
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AggregatedListAddressesRequest. */
                interface IAggregatedListAddressesRequest {

                    /** AggregatedListAddressesRequest filter */
                    filter?: (string|null);

                    /** AggregatedListAddressesRequest includeAllScopes */
                    includeAllScopes?: (boolean|null);

                    /** AggregatedListAddressesRequest maxResults */
                    maxResults?: (number|null);

                    /** AggregatedListAddressesRequest orderBy */
                    orderBy?: (string|null);

                    /** AggregatedListAddressesRequest pageToken */
                    pageToken?: (string|null);

                    /** AggregatedListAddressesRequest project */
                    project?: (string|null);
                }

                /** Represents an AggregatedListAddressesRequest. */
                class AggregatedListAddressesRequest implements IAggregatedListAddressesRequest {

                    /**
                     * Constructs a new AggregatedListAddressesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IAggregatedListAddressesRequest);

                    /** AggregatedListAddressesRequest filter. */
                    public filter?: (string|null);

                    /** AggregatedListAddressesRequest includeAllScopes. */
                    public includeAllScopes?: (boolean|null);

                    /** AggregatedListAddressesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** AggregatedListAddressesRequest orderBy. */
                    public orderBy?: (string|null);

                    /** AggregatedListAddressesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** AggregatedListAddressesRequest project. */
                    public project: string;

                    /**
                     * Creates a new AggregatedListAddressesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AggregatedListAddressesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IAggregatedListAddressesRequest): google.cloud.compute.v1small.AggregatedListAddressesRequest;

                    /**
                     * Encodes the specified AggregatedListAddressesRequest message. Does not implicitly {@link google.cloud.compute.v1small.AggregatedListAddressesRequest.verify|verify} messages.
                     * @param message AggregatedListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IAggregatedListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AggregatedListAddressesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.AggregatedListAddressesRequest.verify|verify} messages.
                     * @param message AggregatedListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IAggregatedListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AggregatedListAddressesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AggregatedListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.AggregatedListAddressesRequest;

                    /**
                     * Decodes an AggregatedListAddressesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AggregatedListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.AggregatedListAddressesRequest;

                    /**
                     * Verifies an AggregatedListAddressesRequest message.
                     * @param message Plain 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 AggregatedListAddressesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AggregatedListAddressesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.AggregatedListAddressesRequest;

                    /**
                     * Creates a plain object from an AggregatedListAddressesRequest message. Also converts values to other types if specified.
                     * @param message AggregatedListAddressesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.AggregatedListAddressesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AggregatedListAddressesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AggregatedListAddressesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Data. */
                interface IData {

                    /** Data key */
                    key?: (string|null);

                    /** Data value */
                    value?: (string|null);
                }

                /** Represents a Data. */
                class Data implements IData {

                    /**
                     * Constructs a new Data.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IData);

                    /** Data key. */
                    public key?: (string|null);

                    /** Data value. */
                    public value?: (string|null);

                    /**
                     * Creates a new Data instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Data instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IData): google.cloud.compute.v1small.Data;

                    /**
                     * Encodes the specified Data message. Does not implicitly {@link google.cloud.compute.v1small.Data.verify|verify} messages.
                     * @param message Data message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Data message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.Data.verify|verify} messages.
                     * @param message Data message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IData, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Data message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Data
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.Data;

                    /**
                     * Decodes a Data message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Data
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.Data;

                    /**
                     * Verifies a Data message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Data message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Data
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.Data;

                    /**
                     * Creates a plain object from a Data message. Also converts values to other types if specified.
                     * @param message Data
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.Data, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Data to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Data
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteAddressRequest. */
                interface IDeleteAddressRequest {

                    /** DeleteAddressRequest address */
                    address?: (string|null);

                    /** DeleteAddressRequest project */
                    project?: (string|null);

                    /** DeleteAddressRequest region */
                    region?: (string|null);

                    /** DeleteAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteAddressRequest. */
                class DeleteAddressRequest implements IDeleteAddressRequest {

                    /**
                     * Constructs a new DeleteAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IDeleteAddressRequest);

                    /** DeleteAddressRequest address. */
                    public address: string;

                    /** DeleteAddressRequest project. */
                    public project: string;

                    /** DeleteAddressRequest region. */
                    public region: string;

                    /** DeleteAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new DeleteAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IDeleteAddressRequest): google.cloud.compute.v1small.DeleteAddressRequest;

                    /**
                     * Encodes the specified DeleteAddressRequest message. Does not implicitly {@link google.cloud.compute.v1small.DeleteAddressRequest.verify|verify} messages.
                     * @param message DeleteAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IDeleteAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.DeleteAddressRequest.verify|verify} messages.
                     * @param message DeleteAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IDeleteAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.DeleteAddressRequest;

                    /**
                     * Decodes a DeleteAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.DeleteAddressRequest;

                    /**
                     * Verifies a DeleteAddressRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.DeleteAddressRequest;

                    /**
                     * Creates a plain object from a DeleteAddressRequest message. Also converts values to other types if specified.
                     * @param message DeleteAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.DeleteAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Error. */
                interface IError {

                    /** Error errors */
                    errors?: (google.cloud.compute.v1small.IErrors[]|null);
                }

                /** Represents an Error. */
                class Error implements IError {

                    /**
                     * Constructs a new Error.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IError);

                    /** Error errors. */
                    public errors: google.cloud.compute.v1small.IErrors[];

                    /**
                     * Creates a new Error instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Error instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IError): google.cloud.compute.v1small.Error;

                    /**
                     * Encodes the specified Error message. Does not implicitly {@link google.cloud.compute.v1small.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Error message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Error message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.Error;

                    /**
                     * Decodes an Error message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.Error;

                    /**
                     * Verifies an Error message.
                     * @param message Plain 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 Error message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Error
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.Error;

                    /**
                     * Creates a plain object from an Error message. Also converts values to other types if specified.
                     * @param message Error
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.Error, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Error to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Error
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Errors. */
                interface IErrors {

                    /** Errors code */
                    code?: (string|null);

                    /** Errors location */
                    location?: (string|null);

                    /** Errors message */
                    message?: (string|null);
                }

                /** Represents an Errors. */
                class Errors implements IErrors {

                    /**
                     * Constructs a new Errors.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IErrors);

                    /** Errors code. */
                    public code?: (string|null);

                    /** Errors location. */
                    public location?: (string|null);

                    /** Errors message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Errors instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Errors instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IErrors): google.cloud.compute.v1small.Errors;

                    /**
                     * Encodes the specified Errors message. Does not implicitly {@link google.cloud.compute.v1small.Errors.verify|verify} messages.
                     * @param message Errors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Errors message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.Errors.verify|verify} messages.
                     * @param message Errors message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IErrors, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Errors message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Errors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.Errors;

                    /**
                     * Decodes an Errors message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Errors
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.Errors;

                    /**
                     * Verifies an Errors message.
                     * @param message Plain 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 Errors message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Errors
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.Errors;

                    /**
                     * Creates a plain object from an Errors message. Also converts values to other types if specified.
                     * @param message Errors
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.Errors, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Errors to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Errors
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRegionOperationRequest. */
                interface IGetRegionOperationRequest {

                    /** GetRegionOperationRequest operation */
                    operation?: (string|null);

                    /** GetRegionOperationRequest project */
                    project?: (string|null);

                    /** GetRegionOperationRequest region */
                    region?: (string|null);
                }

                /** Represents a GetRegionOperationRequest. */
                class GetRegionOperationRequest implements IGetRegionOperationRequest {

                    /**
                     * Constructs a new GetRegionOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IGetRegionOperationRequest);

                    /** GetRegionOperationRequest operation. */
                    public operation: string;

                    /** GetRegionOperationRequest project. */
                    public project: string;

                    /** GetRegionOperationRequest region. */
                    public region: string;

                    /**
                     * Creates a new GetRegionOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRegionOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IGetRegionOperationRequest): google.cloud.compute.v1small.GetRegionOperationRequest;

                    /**
                     * Encodes the specified GetRegionOperationRequest message. Does not implicitly {@link google.cloud.compute.v1small.GetRegionOperationRequest.verify|verify} messages.
                     * @param message GetRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IGetRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRegionOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.GetRegionOperationRequest.verify|verify} messages.
                     * @param message GetRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IGetRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRegionOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.GetRegionOperationRequest;

                    /**
                     * Decodes a GetRegionOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.GetRegionOperationRequest;

                    /**
                     * Verifies a GetRegionOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRegionOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRegionOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.GetRegionOperationRequest;

                    /**
                     * Creates a plain object from a GetRegionOperationRequest message. Also converts values to other types if specified.
                     * @param message GetRegionOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.GetRegionOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRegionOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRegionOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InsertAddressRequest. */
                interface IInsertAddressRequest {

                    /** InsertAddressRequest addressResource */
                    addressResource?: (google.cloud.compute.v1small.IAddress|null);

                    /** InsertAddressRequest project */
                    project?: (string|null);

                    /** InsertAddressRequest region */
                    region?: (string|null);

                    /** InsertAddressRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an InsertAddressRequest. */
                class InsertAddressRequest implements IInsertAddressRequest {

                    /**
                     * Constructs a new InsertAddressRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IInsertAddressRequest);

                    /** InsertAddressRequest addressResource. */
                    public addressResource?: (google.cloud.compute.v1small.IAddress|null);

                    /** InsertAddressRequest project. */
                    public project: string;

                    /** InsertAddressRequest region. */
                    public region: string;

                    /** InsertAddressRequest requestId. */
                    public requestId?: (string|null);

                    /**
                     * Creates a new InsertAddressRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InsertAddressRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IInsertAddressRequest): google.cloud.compute.v1small.InsertAddressRequest;

                    /**
                     * Encodes the specified InsertAddressRequest message. Does not implicitly {@link google.cloud.compute.v1small.InsertAddressRequest.verify|verify} messages.
                     * @param message InsertAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IInsertAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InsertAddressRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.InsertAddressRequest.verify|verify} messages.
                     * @param message InsertAddressRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IInsertAddressRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InsertAddressRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InsertAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.InsertAddressRequest;

                    /**
                     * Decodes an InsertAddressRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InsertAddressRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.InsertAddressRequest;

                    /**
                     * Verifies an InsertAddressRequest message.
                     * @param message Plain 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 InsertAddressRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InsertAddressRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.InsertAddressRequest;

                    /**
                     * Creates a plain object from an InsertAddressRequest message. Also converts values to other types if specified.
                     * @param message InsertAddressRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.InsertAddressRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InsertAddressRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InsertAddressRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAddressesRequest. */
                interface IListAddressesRequest {

                    /** ListAddressesRequest filter */
                    filter?: (string|null);

                    /** ListAddressesRequest maxResults */
                    maxResults?: (number|null);

                    /** ListAddressesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAddressesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAddressesRequest project */
                    project?: (string|null);

                    /** ListAddressesRequest region */
                    region?: (string|null);
                }

                /** Represents a ListAddressesRequest. */
                class ListAddressesRequest implements IListAddressesRequest {

                    /**
                     * Constructs a new ListAddressesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IListAddressesRequest);

                    /** ListAddressesRequest filter. */
                    public filter?: (string|null);

                    /** ListAddressesRequest maxResults. */
                    public maxResults?: (number|null);

                    /** ListAddressesRequest orderBy. */
                    public orderBy: string;

                    /** ListAddressesRequest pageToken. */
                    public pageToken?: (string|null);

                    /** ListAddressesRequest project. */
                    public project: string;

                    /** ListAddressesRequest region. */
                    public region: string;

                    /**
                     * Creates a new ListAddressesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAddressesRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IListAddressesRequest): google.cloud.compute.v1small.ListAddressesRequest;

                    /**
                     * Encodes the specified ListAddressesRequest message. Does not implicitly {@link google.cloud.compute.v1small.ListAddressesRequest.verify|verify} messages.
                     * @param message ListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAddressesRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.ListAddressesRequest.verify|verify} messages.
                     * @param message ListAddressesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IListAddressesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAddressesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.ListAddressesRequest;

                    /**
                     * Decodes a ListAddressesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAddressesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.ListAddressesRequest;

                    /**
                     * Verifies a ListAddressesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAddressesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAddressesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.ListAddressesRequest;

                    /**
                     * Creates a plain object from a ListAddressesRequest message. Also converts values to other types if specified.
                     * @param message ListAddressesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.ListAddressesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAddressesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAddressesRequest
                     * @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 clientOperationId */
                    clientOperationId?: (string|null);

                    /** Operation creationTimestamp */
                    creationTimestamp?: (string|null);

                    /** Operation description */
                    description?: (string|null);

                    /** Operation endTime */
                    endTime?: (string|null);

                    /** Operation error */
                    error?: (google.cloud.compute.v1small.IError|null);

                    /** Operation httpErrorMessage */
                    httpErrorMessage?: (string|null);

                    /** Operation httpErrorStatusCode */
                    httpErrorStatusCode?: (number|null);

                    /** Operation id */
                    id?: (number|Long|string|null);

                    /** Operation insertTime */
                    insertTime?: (string|null);

                    /** Operation kind */
                    kind?: (string|null);

                    /** Operation name */
                    name?: (string|null);

                    /** Operation operationType */
                    operationType?: (string|null);

                    /** Operation progress */
                    progress?: (number|null);

                    /** Operation region */
                    region?: (string|null);

                    /** Operation selfLink */
                    selfLink?: (string|null);

                    /** Operation startTime */
                    startTime?: (string|null);

                    /** Operation status */
                    status?: (google.cloud.compute.v1small.Operation.Status|keyof typeof google.cloud.compute.v1small.Operation.Status|null);

                    /** Operation statusMessage */
                    statusMessage?: (string|null);

                    /** Operation targetId */
                    targetId?: (number|Long|string|null);

                    /** Operation targetLink */
                    targetLink?: (string|null);

                    /** Operation user */
                    user?: (string|null);

                    /** Operation warnings */
                    warnings?: (google.cloud.compute.v1small.IWarnings[]|null);

                    /** Operation zone */
                    zone?: (string|null);
                }

                /** Represents an Operation. */
                class Operation implements IOperation {

                    /**
                     * Constructs a new Operation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IOperation);

                    /** Operation clientOperationId. */
                    public clientOperationId?: (string|null);

                    /** Operation creationTimestamp. */
                    public creationTimestamp?: (string|null);

                    /** Operation description. */
                    public description?: (string|null);

                    /** Operation endTime. */
                    public endTime?: (string|null);

                    /** Operation error. */
                    public error?: (google.cloud.compute.v1small.IError|null);

                    /** Operation httpErrorMessage. */
                    public httpErrorMessage?: (string|null);

                    /** Operation httpErrorStatusCode. */
                    public httpErrorStatusCode?: (number|null);

                    /** Operation id. */
                    public id?: (number|Long|string|null);

                    /** Operation insertTime. */
                    public insertTime?: (string|null);

                    /** Operation kind. */
                    public kind?: (string|null);

                    /** Operation name. */
                    public name?: (string|null);

                    /** Operation operationType. */
                    public operationType?: (string|null);

                    /** Operation progress. */
                    public progress?: (number|null);

                    /** Operation region. */
                    public region?: (string|null);

                    /** Operation selfLink. */
                    public selfLink?: (string|null);

                    /** Operation startTime. */
                    public startTime?: (string|null);

                    /** Operation status. */
                    public status?: (google.cloud.compute.v1small.Operation.Status|keyof typeof google.cloud.compute.v1small.Operation.Status|null);

                    /** Operation statusMessage. */
                    public statusMessage?: (string|null);

                    /** Operation targetId. */
                    public targetId?: (number|Long|string|null);

                    /** Operation targetLink. */
                    public targetLink?: (string|null);

                    /** Operation user. */
                    public user?: (string|null);

                    /** Operation warnings. */
                    public warnings: google.cloud.compute.v1small.IWarnings[];

                    /** Operation zone. */
                    public zone?: (string|null);

                    /**
                     * Creates a new Operation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Operation instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IOperation): google.cloud.compute.v1small.Operation;

                    /**
                     * Encodes the specified Operation message. Does not implicitly {@link google.cloud.compute.v1small.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.cloud.compute.v1small.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.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.cloud.compute.v1small.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.cloud.compute.v1small.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.cloud.compute.v1small.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.cloud.compute.v1small.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.cloud.compute.v1small.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 {
                        UNDEFINED_STATUS = 0,
                        DONE = 2104194,
                        PENDING = 35394935,
                        RUNNING = 121282975
                    }
                }

                /** Properties of a WaitRegionOperationRequest. */
                interface IWaitRegionOperationRequest {

                    /** WaitRegionOperationRequest operation */
                    operation?: (string|null);

                    /** WaitRegionOperationRequest project */
                    project?: (string|null);

                    /** WaitRegionOperationRequest region */
                    region?: (string|null);
                }

                /** Represents a WaitRegionOperationRequest. */
                class WaitRegionOperationRequest implements IWaitRegionOperationRequest {

                    /**
                     * Constructs a new WaitRegionOperationRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IWaitRegionOperationRequest);

                    /** WaitRegionOperationRequest operation. */
                    public operation: string;

                    /** WaitRegionOperationRequest project. */
                    public project: string;

                    /** WaitRegionOperationRequest region. */
                    public region: string;

                    /**
                     * Creates a new WaitRegionOperationRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns WaitRegionOperationRequest instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IWaitRegionOperationRequest): google.cloud.compute.v1small.WaitRegionOperationRequest;

                    /**
                     * Encodes the specified WaitRegionOperationRequest message. Does not implicitly {@link google.cloud.compute.v1small.WaitRegionOperationRequest.verify|verify} messages.
                     * @param message WaitRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IWaitRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified WaitRegionOperationRequest message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.WaitRegionOperationRequest.verify|verify} messages.
                     * @param message WaitRegionOperationRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IWaitRegionOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a WaitRegionOperationRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns WaitRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.WaitRegionOperationRequest;

                    /**
                     * Decodes a WaitRegionOperationRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns WaitRegionOperationRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.WaitRegionOperationRequest;

                    /**
                     * Verifies a WaitRegionOperationRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a WaitRegionOperationRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns WaitRegionOperationRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.WaitRegionOperationRequest;

                    /**
                     * Creates a plain object from a WaitRegionOperationRequest message. Also converts values to other types if specified.
                     * @param message WaitRegionOperationRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.WaitRegionOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this WaitRegionOperationRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for WaitRegionOperationRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Warning. */
                interface IWarning {

                    /** Warning code */
                    code?: (string|null);

                    /** Warning data */
                    data?: (google.cloud.compute.v1small.IData[]|null);

                    /** Warning message */
                    message?: (string|null);
                }

                /** Represents a Warning. */
                class Warning implements IWarning {

                    /**
                     * Constructs a new Warning.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IWarning);

                    /** Warning code. */
                    public code?: (string|null);

                    /** Warning data. */
                    public data: google.cloud.compute.v1small.IData[];

                    /** Warning message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Warning instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Warning instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IWarning): google.cloud.compute.v1small.Warning;

                    /**
                     * Encodes the specified Warning message. Does not implicitly {@link google.cloud.compute.v1small.Warning.verify|verify} messages.
                     * @param message Warning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Warning message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.Warning.verify|verify} messages.
                     * @param message Warning message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IWarning, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Warning message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Warning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.Warning;

                    /**
                     * Decodes a Warning message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Warning
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.Warning;

                    /**
                     * Verifies a Warning message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Warning message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Warning
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.Warning;

                    /**
                     * Creates a plain object from a Warning message. Also converts values to other types if specified.
                     * @param message Warning
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.Warning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Warning to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Warning
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Warning {

                    /** Code enum. */
                    enum Code {
                        UNDEFINED_CODE = 0,
                        CLEANUP_FAILED = 150308440,
                        DEPRECATED_RESOURCE_USED = 391835586,
                        DEPRECATED_TYPE_USED = 346526230,
                        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967,
                        EXPERIMENTAL_TYPE_USED = 451954443,
                        EXTERNAL_API_WARNING = 175546307,
                        FIELD_VALUE_OVERRIDEN = 329669423,
                        INJECTED_KERNELS_DEPRECATED = 417377419,
                        MISSING_TYPE_DEPENDENCY = 344505463,
                        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999,
                        NEXT_HOP_CANNOT_IP_FORWARD = 383382887,
                        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446,
                        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146,
                        NEXT_HOP_NOT_RUNNING = 417081265,
                        NOT_CRITICAL_ERROR = 105763924,
                        NO_RESULTS_ON_PAGE = 30036744,
                        REQUIRED_TOS_AGREEMENT = 3745539,
                        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641,
                        RESOURCE_NOT_DELETED = 168598460,
                        SCHEMA_VALIDATION_IGNORED = 275245642,
                        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617,
                        UNDECLARED_PROPERTIES = 390513439,
                        UNREACHABLE = 13328052
                    }
                }

                /** Properties of a Warnings. */
                interface IWarnings {

                    /** Warnings code */
                    code?: (string|null);

                    /** Warnings data */
                    data?: (google.cloud.compute.v1small.IData[]|null);

                    /** Warnings message */
                    message?: (string|null);
                }

                /** Represents a Warnings. */
                class Warnings implements IWarnings {

                    /**
                     * Constructs a new Warnings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.compute.v1small.IWarnings);

                    /** Warnings code. */
                    public code?: (string|null);

                    /** Warnings data. */
                    public data: google.cloud.compute.v1small.IData[];

                    /** Warnings message. */
                    public message?: (string|null);

                    /**
                     * Creates a new Warnings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Warnings instance
                     */
                    public static create(properties?: google.cloud.compute.v1small.IWarnings): google.cloud.compute.v1small.Warnings;

                    /**
                     * Encodes the specified Warnings message. Does not implicitly {@link google.cloud.compute.v1small.Warnings.verify|verify} messages.
                     * @param message Warnings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.compute.v1small.IWarnings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Warnings message, length delimited. Does not implicitly {@link google.cloud.compute.v1small.Warnings.verify|verify} messages.
                     * @param message Warnings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.compute.v1small.IWarnings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Warnings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Warnings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.compute.v1small.Warnings;

                    /**
                     * Decodes a Warnings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Warnings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.compute.v1small.Warnings;

                    /**
                     * Verifies a Warnings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Warnings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Warnings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.compute.v1small.Warnings;

                    /**
                     * Creates a plain object from a Warnings message. Also converts values to other types if specified.
                     * @param message Warnings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.compute.v1small.Warnings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Warnings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Warnings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Warnings {

                    /** Code enum. */
                    enum Code {
                        UNDEFINED_CODE = 0,
                        CLEANUP_FAILED = 150308440,
                        DEPRECATED_RESOURCE_USED = 391835586,
                        DEPRECATED_TYPE_USED = 346526230,
                        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967,
                        EXPERIMENTAL_TYPE_USED = 451954443,
                        EXTERNAL_API_WARNING = 175546307,
                        FIELD_VALUE_OVERRIDEN = 329669423,
                        INJECTED_KERNELS_DEPRECATED = 417377419,
                        MISSING_TYPE_DEPENDENCY = 344505463,
                        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999,
                        NEXT_HOP_CANNOT_IP_FORWARD = 383382887,
                        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446,
                        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146,
                        NEXT_HOP_NOT_RUNNING = 417081265,
                        NOT_CRITICAL_ERROR = 105763924,
                        NO_RESULTS_ON_PAGE = 30036744,
                        REQUIRED_TOS_AGREEMENT = 3745539,
                        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641,
                        RESOURCE_NOT_DELETED = 168598460,
                        SCHEMA_VALIDATION_IGNORED = 275245642,
                        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617,
                        UNDECLARED_PROPERTIES = 390513439,
                        UNREACHABLE = 13328052
                    }
                }

                /** Represents an Addresses */
                class Addresses extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Addresses 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 Addresses 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): Addresses;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAddressesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AddressAggregatedList
                     */
                    public aggregatedList(request: google.cloud.compute.v1small.IAggregatedListAddressesRequest, callback: google.cloud.compute.v1small.Addresses.AggregatedListCallback): void;

                    /**
                     * Calls AggregatedList.
                     * @param request AggregatedListAddressesRequest message or plain object
                     * @returns Promise
                     */
                    public aggregatedList(request: google.cloud.compute.v1small.IAggregatedListAddressesRequest): Promise<google.cloud.compute.v1small.AddressAggregatedList>;

                    /**
                     * Calls Delete.
                     * @param request DeleteAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public delete(request: google.cloud.compute.v1small.IDeleteAddressRequest, callback: google.cloud.compute.v1small.Addresses.DeleteCallback): void;

                    /**
                     * Calls Delete.
                     * @param request DeleteAddressRequest message or plain object
                     * @returns Promise
                     */
                    public delete(request: google.cloud.compute.v1small.IDeleteAddressRequest): Promise<google.cloud.compute.v1small.Operation>;

                    /**
                     * Calls Insert.
                     * @param request InsertAddressRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public insert(request: google.cloud.compute.v1small.IInsertAddressRequest, callback: google.cloud.compute.v1small.Addresses.InsertCallback): void;

                    /**
                     * Calls Insert.
                     * @param request InsertAddressRequest message or plain object
                     * @returns Promise
                     */
                    public insert(request: google.cloud.compute.v1small.IInsertAddressRequest): Promise<google.cloud.compute.v1small.Operation>;

                    /**
                     * Calls List.
                     * @param request ListAddressesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AddressList
                     */
                    public list(request: google.cloud.compute.v1small.IListAddressesRequest, callback: google.cloud.compute.v1small.Addresses.ListCallback): void;

                    /**
                     * Calls List.
                     * @param request ListAddressesRequest message or plain object
                     * @returns Promise
                     */
                    public list(request: google.cloud.compute.v1small.IListAddressesRequest): Promise<google.cloud.compute.v1small.AddressList>;
                }

                namespace Addresses {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1small.Addresses|aggregatedList}.
                     * @param error Error, if any
                     * @param [response] AddressAggregatedList
                     */
                    type AggregatedListCallback = (error: (Error|null), response?: google.cloud.compute.v1small.AddressAggregatedList) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1small.Addresses|delete_}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteCallback = (error: (Error|null), response?: google.cloud.compute.v1small.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1small.Addresses|insert}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type InsertCallback = (error: (Error|null), response?: google.cloud.compute.v1small.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1small.Addresses|list}.
                     * @param error Error, if any
                     * @param [response] AddressList
                     */
                    type ListCallback = (error: (Error|null), response?: google.cloud.compute.v1small.AddressList) => void;
                }

                /** Represents a RegionOperations */
                class RegionOperations extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RegionOperations 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 RegionOperations 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): RegionOperations;

                    /**
                     * Calls Get.
                     * @param request GetRegionOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public get(request: google.cloud.compute.v1small.IGetRegionOperationRequest, callback: google.cloud.compute.v1small.RegionOperations.GetCallback): void;

                    /**
                     * Calls Get.
                     * @param request GetRegionOperationRequest message or plain object
                     * @returns Promise
                     */
                    public get(request: google.cloud.compute.v1small.IGetRegionOperationRequest): Promise<google.cloud.compute.v1small.Operation>;

                    /**
                     * Calls Wait.
                     * @param request WaitRegionOperationRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public wait(request: google.cloud.compute.v1small.IWaitRegionOperationRequest, callback: google.cloud.compute.v1small.RegionOperations.WaitCallback): void;

                    /**
                     * Calls Wait.
                     * @param request WaitRegionOperationRequest message or plain object
                     * @returns Promise
                     */
                    public wait(request: google.cloud.compute.v1small.IWaitRegionOperationRequest): Promise<google.cloud.compute.v1small.Operation>;
                }

                namespace RegionOperations {

                    /**
                     * Callback as used by {@link google.cloud.compute.v1small.RegionOperations|get}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type GetCallback = (error: (Error|null), response?: google.cloud.compute.v1small.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.compute.v1small.RegionOperations|wait}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type WaitCallback = (error: (Error|null), response?: google.cloud.compute.v1small.Operation) => void;
                }
            }
        }

        /** OperationResponseMapping enum. */
        enum OperationResponseMapping {
            UNDEFINED = 0,
            NAME = 1,
            STATUS = 2,
            ERROR_CODE = 3,
            ERROR_MESSAGE = 4
        }
    }

    /** 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 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.cloud.operationField */
            ".google.cloud.operationField"?: (google.cloud.OperationResponseMapping|keyof typeof google.cloud.OperationResponseMapping|null);

            /** FieldOptions .google.cloud.operationRequestField */
            ".google.cloud.operationRequestField"?: (string|null);

            /** FieldOptions .google.cloud.operationResponseField */
            ".google.cloud.operationResponseField"?: (string|null);

            /** FieldOptions .google.api.fieldBehavior */
            ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|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.cloud.operationService */
            ".google.cloud.operationService"?: (string|null);

            /** MethodOptions .google.cloud.operationPollingMethod */
            ".google.cloud.operationPollingMethod"?: (boolean|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 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;
        }

        /** Properties of a Struct. */
        interface IStruct {

            /** Struct fields */
            fields?: ({ [k: string]: google.protobuf.IValue }|null);
        }

        /** Represents a Struct. */
        class Struct implements IStruct {

            /**
             * Constructs a new Struct.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IStruct);

            /** Struct fields. */
            public fields: { [k: string]: google.protobuf.IValue };

            /**
             * Creates a new Struct instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Struct instance
             */
            public static create(properties?: google.protobuf.IStruct): google.protobuf.Struct;

            /**
             * Encodes the specified Struct message. Does not implicitly {@link google.protobuf.Struct.verify|verify} messages.
             * @param message Struct message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IStruct, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Struct message, length delimited. Does not implicitly {@link google.protobuf.Struct.verify|verify} messages.
             * @param message Struct message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IStruct, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Struct message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Struct
             * @throws {Error} If the payload is not 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.Struct;

            /**
             * Decodes a Struct message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Struct
             * @throws {Error} If the payload 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.Struct;

            /**
             * Verifies a Struct message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Struct message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Struct
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Struct;

            /**
             * Creates a plain object from a Struct message. Also converts values to other types if specified.
             * @param message Struct
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Struct, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Struct to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Struct
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Value. */
        interface IValue {

            /** Value nullValue */
            nullValue?: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue|null);

            /** Value numberValue */
            numberValue?: (number|null);

            /** Value stringValue */
            stringValue?: (string|null);

            /** Value boolValue */
            boolValue?: (boolean|null);

            /** Value structValue */
            structValue?: (google.protobuf.IStruct|null);

            /** Value listValue */
            listValue?: (google.protobuf.IListValue|null);
        }

        /** Represents a Value. */
        class Value implements IValue {

            /**
             * Constructs a new Value.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IValue);

            /** Value nullValue. */
            public nullValue?: (google.protobuf.NullValue|keyof typeof google.protobuf.NullValue|null);

            /** Value numberValue. */
            public numberValue?: (number|null);

            /** Value stringValue. */
            public stringValue?: (string|null);

            /** Value boolValue. */
            public boolValue?: (boolean|null);

            /** Value structValue. */
            public structValue?: (google.protobuf.IStruct|null);

            /** Value listValue. */
            public listValue?: (google.protobuf.IListValue|null);

            /** Value kind. */
            public kind?: ("nullValue"|"numberValue"|"stringValue"|"boolValue"|"structValue"|"listValue");

            /**
             * Creates a new Value instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Value instance
             */
            public static create(properties?: google.protobuf.IValue): google.protobuf.Value;

            /**
             * Encodes the specified Value message. Does not implicitly {@link google.protobuf.Value.verify|verify} messages.
             * @param message Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Value message, length delimited. Does not implicitly {@link google.protobuf.Value.verify|verify} messages.
             * @param message Value message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Value message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Value
             * @throws {Error} If the payload is not 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.Value;

            /**
             * Decodes a Value message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Value
             * @throws {Error} If the payload 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.Value;

            /**
             * Verifies a Value message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Value message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Value
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Value;

            /**
             * Creates a plain object from a Value message. Also converts values to other types if specified.
             * @param message Value
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Value to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Value
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** NullValue enum. */
        enum NullValue {
            NULL_VALUE = 0
        }

        /** Properties of a ListValue. */
        interface IListValue {

            /** ListValue values */
            values?: (google.protobuf.IValue[]|null);
        }

        /** Represents a ListValue. */
        class ListValue implements IListValue {

            /**
             * Constructs a new ListValue.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IListValue);

            /** ListValue values. */
            public values: google.protobuf.IValue[];

            /**
             * Creates a new ListValue instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListValue instance
             */
            public static create(properties?: google.protobuf.IListValue): google.protobuf.ListValue;

            /**
             * Encodes the specified ListValue message. Does not implicitly {@link google.protobuf.ListValue.verify|verify} messages.
             * @param message ListValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IListValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListValue message, length delimited. Does not implicitly {@link google.protobuf.ListValue.verify|verify} messages.
             * @param message ListValue message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IListValue, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListValue message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListValue
             * @throws {Error} If the payload is not 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.ListValue;

            /**
             * Decodes a ListValue message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListValue
             * @throws {Error} If the payload 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.ListValue;

            /**
             * Verifies a ListValue message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListValue message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListValue
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ListValue;

            /**
             * Creates a plain object from a ListValue message. Also converts values to other types if specified.
             * @param message ListValue
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ListValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListValue to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ListValue
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }
}
